SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
MedTech
Chapter 5 – Software Architecture
How to define the architecture of your software product
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 1
MedTech – Mediterranean Institute of Technology
CS321-Software Engineering
MedTech
MedTech
SOFTWARE ARCHITECTURE - DEFINITION
Software Architecture
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 2
MedTech
Software Architecture
• Architecture
• « Architecture is the fundamental organization of a system, embodied in its
components, their relationships to each other and the environment, and the
principles governing its design and evolution. » [ANSI/IEEE Std 1471-2000]
• Software Architecture
• « The software architecture of a program or computing system is the
structure or structures of the system, which comprise software elements,
the externally visible properties of those elements, and the relationships
among them. »[SEI]
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 3
Software Architecture - Definition
MedTech
Software Architecture
• Mainly: Architecture Defines Structure
• Decomposition of system into :
• Software Elements
• Elements are captured as abstractions
• Correspond to high level system modules or components
• Component interfaces
• External visible properties of elements
• Describe element features exposed to others
• Typically represent services provided to other elements
• Component responsibilities
• What does a component precisely do?
• Relationships of elements
• How do elements interact with others?
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 4
Software Architecture - Definition
MedTech
Software Architecture Structures Examples
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 5
Software Architecture - Definition
Modules Components and Connections
MedTech
Software Architecture Structures Examples
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 6
Software Architecture - Definition
Distribution
MedTech
Structures from Multiple Views
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 7
Software Architecture - Definition
• Large software systems require structures from multiple perspectives
(views)
• A single view is not sufficient to address all the requirements
• Examples of views
• Context View
• Focuses on the system’s functionality
• Deployment View
• Reflects the physical deployment of software components to computing
hardware
MedTech
Analogy : Building Architecture Views
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 8
Software Architecture - Definition
2D Front View
Floor Plan View
Room Plan View
MedTech
Why Using Software Architecture?
• Crucial changes in software engineering
have increased the importance of
architecture
• Scale
• Distribution
• Security
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 9
Software Architecture - Definition
Minimally Distributed System
Highly Distributed System
MedTech
A Good Software Architecture…
• Considers for the system:
• The functional requirements
• The non functional requirements
• The entire system lifecycle
• Helps us understand the system:
• Divides the system meaningfully
• Abstract complicated details
• Provides the framework for:
• Realization
• Project Planning
• Project Organization
• Integrate all the development artefacts
• Provide documentation
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 10
Software Architecture - Definition
MedTech
Software Architect
The ideal Software Architect should be a man of letters, a
mathematician, familiar with historical studies, a dilifent
student of philosophy, acquainted with music, not ignorant of
medicine, learned in the responses of juriconsults, familiar with
astronomy and astronomical calculations.
Vitrivus (Roman author, architect and civil engineer, during the 1st century BC)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 11
Software Architecture - Definition
MedTech
Software Architect and Others
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 12
Software Architecture - Definition
MedTech
SOFTWARE ARCHITECTURE PATTERNS
Software Architecture
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 13
MedTech
Architectural Patterns
• An architectural pattern in a proven structural organization schema for
software systems
• Architectural Patterns vs Design Patterns (already seen in chapter 4)
• Design Patterns offer a common solution for a common problem in the form
of classes working together
• Smaller in scale than architectural patterns, where the components are
subsystems rather than classes
• Design Patterns do not influence the fundamental structure of a system
• Only affect a single subsystem
• They may help implementing an architectural pattern
• Some (not all) architectural patterns are described here-after
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 14
Software Architecture Patterns
MedTech
Pattern 1: Layers Pattern
• Helps structure applications that can be decomposed into groups of
subtasks, each of which is at a particular level of abstraction
• Each layer provides services to the next higher layer
• Services in a layer are implemented using services from the next lower
layer
• Service requests are frequently done by using synchronus procedure
calls
• Most famous example of layered systems: networking protocols
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 15
Software Architecture Patterns
MedTech
Pattern 1: Layers Pattern (Example 1)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 16
Software Architecture Patterns
Networking Protocol
(OSI Model)
MedTech
Pattern 1: Layers Pattern (Example 2)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 17
Software Architecture Patterns
MedTech
Pattern 2: Client-Server Pattern
• A server component provides services to multiple client components
• A client component requests services from the server component
• Servers are permanently active, listening for clients
• Client and server may reside in different machines
• This pattern can be considered as a form of the layered pattern with
two layers, the clients being the higher level and the server the lower
level
• Examples
• Remote database access
• Remote file systems access
• Web-based applications (browsers request from a web server)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 18
Software Architecture Patterns
MedTech
Pattern 2: Client-Server Pattern (Example)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 19
Software Architecture Patterns
MedTech
Pattern 3: Master-Slave Pattern
• Supports fault-tolerance and parallel computation
• The master component distributes the work among identical slave
components, and computes a final result from the results they return
• Applied for instance in :
• Process control
• Embedded systems
• Large scale parallel computations
• Fault-tolerant systems
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 20
Software Architecture Patterns
MedTech
Pattern 3: Master-Slave Pattern (Example)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 21
Software Architecture Patterns
MedTech
Pattern 4: Pipe-Filter Pattern
• Provides a structure for systems that produce a stream of data
• Each processing step is encapsulated in a filter component
• Data is passed through pipes
• Pipes can be used for buffering or for synchronization
• This pattern divides the task of a system into several processing steps
• The steps are connected by the data flow
• The output of a step is the input for the next step
• Common examples:
• Pipe-filter in the unix shell commands
• cat file | grep xyz | sort | uniq > out
• Compilers
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 22
Software Architecture Patterns
MedTech
Pattern 4: Pipe-Filter Pattern (Example)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 23
Software Architecture Patterns
Compiler
MedTech
Pattern 5: MVC Pattern
• Model-View-Controller Pattern
• An interactive application is divided into three parts:
• Model
• Contains core fundtionality and data
• View
• Displays the information to the user
• Controller
• Handles the input from the user
• Often uses the Observer design pattern
• User input can invoke a change in the model, and in the displayed view
• Makes it easy to have multiple views of the same model
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 24
Software Architecture Patterns
MedTech
Pattern 5: MVC Pattern
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 25
Software Architecture Patterns
MedTech
Pattern 5: MVC Pattern
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 26
Software Architecture Patterns

Mais conteúdo relacionado

Mais procurados

Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture PatternsAssaf Gannon
 
11 deployment diagrams
11 deployment diagrams11 deployment diagrams
11 deployment diagramsBaskarkncet
 
Architecture Design in Software Engineering
Architecture Design in Software EngineeringArchitecture Design in Software Engineering
Architecture Design in Software Engineeringcricket2ime
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and DesignRa'Fat Al-Msie'deen
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models Satya P. Joshi
 
Uml deployment diagram
Uml deployment diagramUml deployment diagram
Uml deployment diagramAsraa Batool
 
Software Engineering - chp3- design
Software Engineering - chp3- designSoftware Engineering - chp3- design
Software Engineering - chp3- designLilia Sfaxi
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software designMr. Swapnil G. Thaware
 
Software Engineering - chp8- deployment
Software Engineering - chp8- deploymentSoftware Engineering - chp8- deployment
Software Engineering - chp8- deploymentLilia Sfaxi
 
Uml diagrams
Uml diagramsUml diagrams
Uml diagramsbarney92
 
UML diagrams and symbols
UML diagrams and symbolsUML diagrams and symbols
UML diagrams and symbolsKumar
 
Software Requirements and Specifications
Software Requirements and SpecificationsSoftware Requirements and Specifications
Software Requirements and Specificationsvustudent1
 

Mais procurados (20)

Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture Patterns
 
11 deployment diagrams
11 deployment diagrams11 deployment diagrams
11 deployment diagrams
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Architecture Design in Software Engineering
Architecture Design in Software EngineeringArchitecture Design in Software Engineering
Architecture Design in Software Engineering
 
System Modelling
System ModellingSystem Modelling
System Modelling
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and Design
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models
 
Uml deployment diagram
Uml deployment diagramUml deployment diagram
Uml deployment diagram
 
Uml
UmlUml
Uml
 
Use case diagram
Use case diagramUse case diagram
Use case diagram
 
Software Engineering - chp3- design
Software Engineering - chp3- designSoftware Engineering - chp3- design
Software Engineering - chp3- design
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software design
 
Software Design Patterns
Software Design PatternsSoftware Design Patterns
Software Design Patterns
 
Software Engineering - chp8- deployment
Software Engineering - chp8- deploymentSoftware Engineering - chp8- deployment
Software Engineering - chp8- deployment
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Uml diagrams
Uml diagramsUml diagrams
Uml diagrams
 
Ch3. agile sw dev
Ch3. agile sw devCh3. agile sw dev
Ch3. agile sw dev
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
UML diagrams and symbols
UML diagrams and symbolsUML diagrams and symbols
UML diagrams and symbols
 
Software Requirements and Specifications
Software Requirements and SpecificationsSoftware Requirements and Specifications
Software Requirements and Specifications
 

Destaque

software testing strategies
software testing strategiessoftware testing strategies
software testing strategiesHemanth Gajula
 
Software Architecture: Styles
Software Architecture: StylesSoftware Architecture: Styles
Software Architecture: StylesHenry Muccini
 
Software Engineering - chp7- tests
Software Engineering - chp7- testsSoftware Engineering - chp7- tests
Software Engineering - chp7- testsLilia Sfaxi
 
Software Engineering - chp0- introduction
Software Engineering - chp0- introductionSoftware Engineering - chp0- introduction
Software Engineering - chp0- introductionLilia Sfaxi
 
Software Engineering - chp1- software dev methodologies
Software Engineering - chp1- software dev methodologiesSoftware Engineering - chp1- software dev methodologies
Software Engineering - chp1- software dev methodologiesLilia Sfaxi
 
Software Engineering - chp2- requirements specification
Software Engineering - chp2- requirements specificationSoftware Engineering - chp2- requirements specification
Software Engineering - chp2- requirements specificationLilia Sfaxi
 
Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patternsLilia Sfaxi
 
Software Engineering - chp6- development phase
Software Engineering - chp6- development phaseSoftware Engineering - chp6- development phase
Software Engineering - chp6- development phaseLilia Sfaxi
 

Destaque (9)

software testing strategies
software testing strategiessoftware testing strategies
software testing strategies
 
Software Architecture: Styles
Software Architecture: StylesSoftware Architecture: Styles
Software Architecture: Styles
 
Software Engineering - chp7- tests
Software Engineering - chp7- testsSoftware Engineering - chp7- tests
Software Engineering - chp7- tests
 
Software Engineering - chp0- introduction
Software Engineering - chp0- introductionSoftware Engineering - chp0- introduction
Software Engineering - chp0- introduction
 
Software Engineering - chp1- software dev methodologies
Software Engineering - chp1- software dev methodologiesSoftware Engineering - chp1- software dev methodologies
Software Engineering - chp1- software dev methodologies
 
Software Engineering - chp2- requirements specification
Software Engineering - chp2- requirements specificationSoftware Engineering - chp2- requirements specification
Software Engineering - chp2- requirements specification
 
Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patterns
 
Software Engineering - chp6- development phase
Software Engineering - chp6- development phaseSoftware Engineering - chp6- development phase
Software Engineering - chp6- development phase
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 

Semelhante a Software Engineering - chp5- software architecture

unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural designdevika g
 
NISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckNISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckUtrecht University
 
9 requirements engineering2
9 requirements engineering29 requirements engineering2
9 requirements engineering2Lilia Sfaxi
 
Systematic Architecture Design
Systematic Architecture DesignSystematic Architecture Design
Systematic Architecture DesignGESSI UPC
 
Software architecture simplified
Software architecture simplifiedSoftware architecture simplified
Software architecture simplifiedPrasad Chitta
 
Software Architecture
Software ArchitectureSoftware Architecture
Software ArchitectureAhmed Misbah
 
Andrii Sliusar "Module Architecture of React-Redux Applications"
Andrii Sliusar "Module Architecture of React-Redux Applications"Andrii Sliusar "Module Architecture of React-Redux Applications"
Andrii Sliusar "Module Architecture of React-Redux Applications"LogeekNightUkraine
 
Building modular software with OSGi - Ulf Fildebrandt
Building modular software with OSGi - Ulf FildebrandtBuilding modular software with OSGi - Ulf Fildebrandt
Building modular software with OSGi - Ulf Fildebrandtmfrancis
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfAkilaGamage2
 
IncQuery Group's presentation for the INCOSE Polish Chapter 20220310
IncQuery Group's presentation for the INCOSE Polish Chapter 20220310IncQuery Group's presentation for the INCOSE Polish Chapter 20220310
IncQuery Group's presentation for the INCOSE Polish Chapter 20220310IncQuery Labs
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesnimmik4u
 
Software engg. pressman_ch-10
Software engg. pressman_ch-10Software engg. pressman_ch-10
Software engg. pressman_ch-10Dhairya Joshi
 
IncQuery Suite demo for INCOSE 2022IW
IncQuery Suite demo for INCOSE 2022IWIncQuery Suite demo for INCOSE 2022IW
IncQuery Suite demo for INCOSE 2022IWIncQuery Labs
 

Semelhante a Software Engineering - chp5- software architecture (20)

Architectural design
Architectural designArchitectural design
Architectural design
 
Thesis presentation
Thesis presentationThesis presentation
Thesis presentation
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural design
 
NISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckNISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide Deck
 
Ch01
Ch01Ch01
Ch01
 
9 requirements engineering2
9 requirements engineering29 requirements engineering2
9 requirements engineering2
 
Systematic Architecture Design
Systematic Architecture DesignSystematic Architecture Design
Systematic Architecture Design
 
Software architecture simplified
Software architecture simplifiedSoftware architecture simplified
Software architecture simplified
 
Developing Digital Twins
Developing Digital TwinsDeveloping Digital Twins
Developing Digital Twins
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Andrii Sliusar "Module Architecture of React-Redux Applications"
Andrii Sliusar "Module Architecture of React-Redux Applications"Andrii Sliusar "Module Architecture of React-Redux Applications"
Andrii Sliusar "Module Architecture of React-Redux Applications"
 
Building modular software with OSGi - Ulf Fildebrandt
Building modular software with OSGi - Ulf FildebrandtBuilding modular software with OSGi - Ulf Fildebrandt
Building modular software with OSGi - Ulf Fildebrandt
 
Chapter1
Chapter1Chapter1
Chapter1
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdf
 
Architectural design of software
Architectural  design of softwareArchitectural  design of software
Architectural design of software
 
IncQuery Group's presentation for the INCOSE Polish Chapter 20220310
IncQuery Group's presentation for the INCOSE Polish Chapter 20220310IncQuery Group's presentation for the INCOSE Polish Chapter 20220310
IncQuery Group's presentation for the INCOSE Polish Chapter 20220310
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniques
 
Software engg. pressman_ch-10
Software engg. pressman_ch-10Software engg. pressman_ch-10
Software engg. pressman_ch-10
 
IncQuery Suite demo for INCOSE 2022IW
IncQuery Suite demo for INCOSE 2022IWIncQuery Suite demo for INCOSE 2022IW
IncQuery Suite demo for INCOSE 2022IW
 
Software Design - SDLC Model
Software Design - SDLC ModelSoftware Design - SDLC Model
Software Design - SDLC Model
 

Mais de Lilia Sfaxi

chp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfLilia Sfaxi
 
Plan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfLilia Sfaxi
 
Lab1-DB-Cassandra
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-CassandraLilia Sfaxi
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-CorrectionLilia Sfaxi
 
TP0-UML-Correction
TP0-UML-CorrectionTP0-UML-Correction
TP0-UML-CorrectionLilia Sfaxi
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-CorrectionLilia Sfaxi
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-SéquencesLilia Sfaxi
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-CorrectionLilia Sfaxi
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - CorrectionLilia Sfaxi
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correctionLilia Sfaxi
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrageLilia Sfaxi
 
Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Lilia Sfaxi
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intentsLilia Sfaxi
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web servicesLilia Sfaxi
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésLilia Sfaxi
 

Mais de Lilia Sfaxi (20)

chp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdf
 
Plan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdf
 
Lab3-DB_Neo4j
Lab3-DB_Neo4jLab3-DB_Neo4j
Lab3-DB_Neo4j
 
Lab2-DB-Mongodb
Lab2-DB-MongodbLab2-DB-Mongodb
Lab2-DB-Mongodb
 
Lab1-DB-Cassandra
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-Cassandra
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
 
TP0-UML-Correction
TP0-UML-CorrectionTP0-UML-Correction
TP0-UML-Correction
 
TD4-UML
TD4-UMLTD4-UML
TD4-UML
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-Séquences
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-Correction
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
TD1 - UML - DCU
TD1 - UML - DCUTD1 - UML - DCU
TD1 - UML - DCU
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrage
 
Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intents
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancés
 

Último

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 

Último (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

Software Engineering - chp5- software architecture

  • 1. MedTech Chapter 5 – Software Architecture How to define the architecture of your software product Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 1 MedTech – Mediterranean Institute of Technology CS321-Software Engineering MedTech
  • 2. MedTech SOFTWARE ARCHITECTURE - DEFINITION Software Architecture Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 2
  • 3. MedTech Software Architecture • Architecture • « Architecture is the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution. » [ANSI/IEEE Std 1471-2000] • Software Architecture • « The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. »[SEI] Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 3 Software Architecture - Definition
  • 4. MedTech Software Architecture • Mainly: Architecture Defines Structure • Decomposition of system into : • Software Elements • Elements are captured as abstractions • Correspond to high level system modules or components • Component interfaces • External visible properties of elements • Describe element features exposed to others • Typically represent services provided to other elements • Component responsibilities • What does a component precisely do? • Relationships of elements • How do elements interact with others? Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 4 Software Architecture - Definition
  • 5. MedTech Software Architecture Structures Examples Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 5 Software Architecture - Definition Modules Components and Connections
  • 6. MedTech Software Architecture Structures Examples Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 6 Software Architecture - Definition Distribution
  • 7. MedTech Structures from Multiple Views Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 7 Software Architecture - Definition • Large software systems require structures from multiple perspectives (views) • A single view is not sufficient to address all the requirements • Examples of views • Context View • Focuses on the system’s functionality • Deployment View • Reflects the physical deployment of software components to computing hardware
  • 8. MedTech Analogy : Building Architecture Views Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 8 Software Architecture - Definition 2D Front View Floor Plan View Room Plan View
  • 9. MedTech Why Using Software Architecture? • Crucial changes in software engineering have increased the importance of architecture • Scale • Distribution • Security Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 9 Software Architecture - Definition Minimally Distributed System Highly Distributed System
  • 10. MedTech A Good Software Architecture… • Considers for the system: • The functional requirements • The non functional requirements • The entire system lifecycle • Helps us understand the system: • Divides the system meaningfully • Abstract complicated details • Provides the framework for: • Realization • Project Planning • Project Organization • Integrate all the development artefacts • Provide documentation Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 10 Software Architecture - Definition
  • 11. MedTech Software Architect The ideal Software Architect should be a man of letters, a mathematician, familiar with historical studies, a dilifent student of philosophy, acquainted with music, not ignorant of medicine, learned in the responses of juriconsults, familiar with astronomy and astronomical calculations. Vitrivus (Roman author, architect and civil engineer, during the 1st century BC) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 11 Software Architecture - Definition
  • 12. MedTech Software Architect and Others Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 12 Software Architecture - Definition
  • 13. MedTech SOFTWARE ARCHITECTURE PATTERNS Software Architecture Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 13
  • 14. MedTech Architectural Patterns • An architectural pattern in a proven structural organization schema for software systems • Architectural Patterns vs Design Patterns (already seen in chapter 4) • Design Patterns offer a common solution for a common problem in the form of classes working together • Smaller in scale than architectural patterns, where the components are subsystems rather than classes • Design Patterns do not influence the fundamental structure of a system • Only affect a single subsystem • They may help implementing an architectural pattern • Some (not all) architectural patterns are described here-after Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 14 Software Architecture Patterns
  • 15. MedTech Pattern 1: Layers Pattern • Helps structure applications that can be decomposed into groups of subtasks, each of which is at a particular level of abstraction • Each layer provides services to the next higher layer • Services in a layer are implemented using services from the next lower layer • Service requests are frequently done by using synchronus procedure calls • Most famous example of layered systems: networking protocols Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 15 Software Architecture Patterns
  • 16. MedTech Pattern 1: Layers Pattern (Example 1) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 16 Software Architecture Patterns Networking Protocol (OSI Model)
  • 17. MedTech Pattern 1: Layers Pattern (Example 2) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 17 Software Architecture Patterns
  • 18. MedTech Pattern 2: Client-Server Pattern • A server component provides services to multiple client components • A client component requests services from the server component • Servers are permanently active, listening for clients • Client and server may reside in different machines • This pattern can be considered as a form of the layered pattern with two layers, the clients being the higher level and the server the lower level • Examples • Remote database access • Remote file systems access • Web-based applications (browsers request from a web server) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 18 Software Architecture Patterns
  • 19. MedTech Pattern 2: Client-Server Pattern (Example) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 19 Software Architecture Patterns
  • 20. MedTech Pattern 3: Master-Slave Pattern • Supports fault-tolerance and parallel computation • The master component distributes the work among identical slave components, and computes a final result from the results they return • Applied for instance in : • Process control • Embedded systems • Large scale parallel computations • Fault-tolerant systems Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 20 Software Architecture Patterns
  • 21. MedTech Pattern 3: Master-Slave Pattern (Example) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 21 Software Architecture Patterns
  • 22. MedTech Pattern 4: Pipe-Filter Pattern • Provides a structure for systems that produce a stream of data • Each processing step is encapsulated in a filter component • Data is passed through pipes • Pipes can be used for buffering or for synchronization • This pattern divides the task of a system into several processing steps • The steps are connected by the data flow • The output of a step is the input for the next step • Common examples: • Pipe-filter in the unix shell commands • cat file | grep xyz | sort | uniq > out • Compilers Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 22 Software Architecture Patterns
  • 23. MedTech Pattern 4: Pipe-Filter Pattern (Example) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 23 Software Architecture Patterns Compiler
  • 24. MedTech Pattern 5: MVC Pattern • Model-View-Controller Pattern • An interactive application is divided into three parts: • Model • Contains core fundtionality and data • View • Displays the information to the user • Controller • Handles the input from the user • Often uses the Observer design pattern • User input can invoke a change in the model, and in the displayed view • Makes it easy to have multiple views of the same model Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 24 Software Architecture Patterns
  • 25. MedTech Pattern 5: MVC Pattern Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 25 Software Architecture Patterns
  • 26. MedTech Pattern 5: MVC Pattern Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 26 Software Architecture Patterns