SlideShare a Scribd company logo
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
Ad

More Related Content

What's hot (20)

Software myths | Software Engineering Notes
Software myths | Software Engineering NotesSoftware myths | Software Engineering Notes
Software myths | Software Engineering Notes
Navjyotsinh Jadeja
 
Functional vs Non-functional Requirements - Which comes first?
Functional vs Non-functional Requirements - Which comes first?Functional vs Non-functional Requirements - Which comes first?
Functional vs Non-functional Requirements - Which comes first?
Evgeniy Labunskiy
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement Specification
Niraj Kumar
 
Incremental model
Incremental modelIncremental model
Incremental model
COMSATS Institute of Information and Technology
 
Incremental model
Incremental modelIncremental model
Incremental model
Hpibmx
 
Incremental model
Incremental modelIncremental model
Incremental model
Sajid Ali Laghari
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
Preeti Mishra
 
Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5
koolkampus
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
Muhammad Asim
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
Slideshare
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
Saqib Raza
 
Software design principles
Software design principlesSoftware design principles
Software design principles
Ritesh Singh
 
Software Engineering concept
Software Engineering concept Software Engineering concept
Software Engineering concept
Atamjitsingh92
 
Software design
Software designSoftware design
Software design
Benazir Fathima
 
INTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMSINTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMS
Ashita Agrawal
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
Md. Shafiuzzaman Hira
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)
IIUI
 
Evolving role of Software
Evolving role of SoftwareEvolving role of Software
Evolving role of Software
Shankar Dahal
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and Design
Ra'Fat Al-Msie'deen
 
Software Project Management (lecture 3)
Software Project Management (lecture 3)Software Project Management (lecture 3)
Software Project Management (lecture 3)
Syed Muhammad Hammad
 
Software myths | Software Engineering Notes
Software myths | Software Engineering NotesSoftware myths | Software Engineering Notes
Software myths | Software Engineering Notes
Navjyotsinh Jadeja
 
Functional vs Non-functional Requirements - Which comes first?
Functional vs Non-functional Requirements - Which comes first?Functional vs Non-functional Requirements - Which comes first?
Functional vs Non-functional Requirements - Which comes first?
Evgeniy Labunskiy
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement Specification
Niraj Kumar
 
Incremental model
Incremental modelIncremental model
Incremental model
Hpibmx
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
Preeti Mishra
 
Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5
koolkampus
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
Slideshare
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
Saqib Raza
 
Software design principles
Software design principlesSoftware design principles
Software design principles
Ritesh Singh
 
Software Engineering concept
Software Engineering concept Software Engineering concept
Software Engineering concept
Atamjitsingh92
 
INTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMSINTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMS
Ashita Agrawal
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)
IIUI
 
Evolving role of Software
Evolving role of SoftwareEvolving role of Software
Evolving role of Software
Shankar Dahal
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and Design
Ra'Fat Al-Msie'deen
 
Software Project Management (lecture 3)
Software Project Management (lecture 3)Software Project Management (lecture 3)
Software Project Management (lecture 3)
Syed Muhammad Hammad
 

Viewers also liked (9)

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

Similar to Software Engineering - chp5- software architecture (20)

A Presentation on Architectual Design by Students of Engineering
A Presentation on Architectual Design by Students of EngineeringA Presentation on Architectual Design by Students of Engineering
A Presentation on Architectual Design by Students of Engineering
VisibleDrishya
 
Architectural design
Architectural designArchitectural design
Architectural design
SHREEHARI WADAWADAGI
 
Structured Logic Design With Very Higspeed Integrated Circuit Hardware Descri...
Structured Logic Design With Very Higspeed Integrated Circuit Hardware Descri...Structured Logic Design With Very Higspeed Integrated Circuit Hardware Descri...
Structured Logic Design With Very Higspeed Integrated Circuit Hardware Descri...
ssuser5fb79d
 
Thesis presentation
Thesis presentationThesis presentation
Thesis presentation
Alexios Lekidis
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural design
devika g
 
NISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckNISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide Deck
Utrecht University
 
Ch01
Ch01Ch01
Ch01
vijaybichu
 
This is about systems development methodology designed and prepared by A prof...
This is about systems development methodology designed and prepared by A prof...This is about systems development methodology designed and prepared by A prof...
This is about systems development methodology designed and prepared by A prof...
ANTONY682703
 
9 requirements engineering2
9 requirements engineering29 requirements engineering2
9 requirements engineering2
Lilia Sfaxi
 
Unit 4colorcolorcolorcolorcolorcolorcolor.pptx
Unit 4colorcolorcolorcolorcolorcolorcolor.pptxUnit 4colorcolorcolorcolorcolorcolorcolor.pptx
Unit 4colorcolorcolorcolorcolorcolorcolor.pptx
SsdSsd5
 
Systematic Architecture Design
Systematic Architecture DesignSystematic Architecture Design
Systematic Architecture Design
GESSI UPC
 
Software architecture simplified
Software architecture simplifiedSoftware architecture simplified
Software architecture simplified
Prasad Chitta
 
Developing Digital Twins
Developing Digital TwinsDeveloping Digital Twins
Developing Digital Twins
Elizabeth Steiner
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
Ahmed 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 Fildebrandt
mfrancis
 
Chapter1
Chapter1Chapter1
Chapter1
Hoang Vu Dinh
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdf
AkilaGamage2
 
Architectural design of software
Architectural  design of softwareArchitectural  design of software
Architectural design of software
Tawhidur Rahman Bhuiyan
 
UNIT-3_SE_PPT1.pptx software engineering
UNIT-3_SE_PPT1.pptx software engineeringUNIT-3_SE_PPT1.pptx software engineering
UNIT-3_SE_PPT1.pptx software engineering
David Raju N
 
A Presentation on Architectual Design by Students of Engineering
A Presentation on Architectual Design by Students of EngineeringA Presentation on Architectual Design by Students of Engineering
A Presentation on Architectual Design by Students of Engineering
VisibleDrishya
 
Structured Logic Design With Very Higspeed Integrated Circuit Hardware Descri...
Structured Logic Design With Very Higspeed Integrated Circuit Hardware Descri...Structured Logic Design With Very Higspeed Integrated Circuit Hardware Descri...
Structured Logic Design With Very Higspeed Integrated Circuit Hardware Descri...
ssuser5fb79d
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural design
devika g
 
NISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckNISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide Deck
Utrecht University
 
This is about systems development methodology designed and prepared by A prof...
This is about systems development methodology designed and prepared by A prof...This is about systems development methodology designed and prepared by A prof...
This is about systems development methodology designed and prepared by A prof...
ANTONY682703
 
9 requirements engineering2
9 requirements engineering29 requirements engineering2
9 requirements engineering2
Lilia Sfaxi
 
Unit 4colorcolorcolorcolorcolorcolorcolor.pptx
Unit 4colorcolorcolorcolorcolorcolorcolor.pptxUnit 4colorcolorcolorcolorcolorcolorcolor.pptx
Unit 4colorcolorcolorcolorcolorcolorcolor.pptx
SsdSsd5
 
Systematic Architecture Design
Systematic Architecture DesignSystematic Architecture Design
Systematic Architecture Design
GESSI UPC
 
Software architecture simplified
Software architecture simplifiedSoftware architecture simplified
Software architecture simplified
Prasad Chitta
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
Ahmed 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 Fildebrandt
mfrancis
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdf
AkilaGamage2
 
UNIT-3_SE_PPT1.pptx software engineering
UNIT-3_SE_PPT1.pptx software engineeringUNIT-3_SE_PPT1.pptx software engineering
UNIT-3_SE_PPT1.pptx software engineering
David Raju N
 
Ad

More from 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
Lilia 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.pdf
Lilia Sfaxi
 
Lab3-DB_Neo4j
Lab3-DB_Neo4jLab3-DB_Neo4j
Lab3-DB_Neo4j
Lilia Sfaxi
 
Lab2-DB-Mongodb
Lab2-DB-MongodbLab2-DB-Mongodb
Lab2-DB-Mongodb
Lilia Sfaxi
 
Lab1-DB-Cassandra
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-Cassandra
Lilia Sfaxi
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
Lilia Sfaxi
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
Lilia Sfaxi
 
TP0-UML-Correction
TP0-UML-CorrectionTP0-UML-Correction
TP0-UML-Correction
Lilia Sfaxi
 
TD4-UML
TD4-UMLTD4-UML
TD4-UML
Lilia Sfaxi
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
Lilia Sfaxi
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-Séquences
Lilia Sfaxi
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-Correction
Lilia Sfaxi
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
Lilia Sfaxi
 
TD1 - UML - DCU
TD1 - UML - DCUTD1 - UML - DCU
TD1 - UML - DCU
Lilia Sfaxi
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
Lilia Sfaxi
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrage
Lilia 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 - intents
Lilia Sfaxi
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
Lilia Sfaxi
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancés
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.pdf
Lilia 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.pdf
Lilia Sfaxi
 
Lab1-DB-Cassandra
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-Cassandra
Lilia Sfaxi
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
Lilia Sfaxi
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
Lilia Sfaxi
 
TP0-UML-Correction
TP0-UML-CorrectionTP0-UML-Correction
TP0-UML-Correction
Lilia Sfaxi
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
Lilia Sfaxi
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-Séquences
Lilia Sfaxi
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-Correction
Lilia Sfaxi
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
Lilia Sfaxi
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
Lilia Sfaxi
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrage
Lilia 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 - intents
Lilia Sfaxi
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
Lilia Sfaxi
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancés
Lilia Sfaxi
 

Recently uploaded (20)

Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Alan Dix
 
Cybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and MitigationCybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and Mitigation
VICTOR MAESTRE RAMIREZ
 
Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?
Eric Torreborre
 
Mastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B LandscapeMastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B Landscape
marketing943205
 
Top 5 Qualities to Look for in Salesforce Partners in 2025
Top 5 Qualities to Look for in Salesforce Partners in 2025Top 5 Qualities to Look for in Salesforce Partners in 2025
Top 5 Qualities to Look for in Salesforce Partners in 2025
Damco Salesforce Services
 
Dark Dynamism: drones, dark factories and deurbanization
Dark Dynamism: drones, dark factories and deurbanizationDark Dynamism: drones, dark factories and deurbanization
Dark Dynamism: drones, dark factories and deurbanization
Jakub Šimek
 
Secondary Storage for a microcontroller system
Secondary Storage for a microcontroller systemSecondary Storage for a microcontroller system
Secondary Storage for a microcontroller system
fizarcse
 
Slack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teamsSlack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teams
Nacho Cougil
 
Refactoring meta-rauc-community: Cleaner Code, Better Maintenance, More Machines
Refactoring meta-rauc-community: Cleaner Code, Better Maintenance, More MachinesRefactoring meta-rauc-community: Cleaner Code, Better Maintenance, More Machines
Refactoring meta-rauc-community: Cleaner Code, Better Maintenance, More Machines
Leon Anavi
 
UiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptx
UiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptxUiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptx
UiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptx
anabulhac
 
Understanding SEO in the Age of AI.pdf
Understanding SEO in the Age of AI.pdfUnderstanding SEO in the Age of AI.pdf
Understanding SEO in the Age of AI.pdf
Fulcrum Concepts, LLC
 
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
ICT Frame Magazine Pvt. Ltd.
 
Cybersecurity Tools and Technologies - Microsoft Certificate
Cybersecurity Tools and Technologies - Microsoft CertificateCybersecurity Tools and Technologies - Microsoft Certificate
Cybersecurity Tools and Technologies - Microsoft Certificate
VICTOR MAESTRE RAMIREZ
 
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier VroomAI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
UXPA Boston
 
DNF 2.0 Implementations Challenges in Nepal
DNF 2.0 Implementations Challenges in NepalDNF 2.0 Implementations Challenges in Nepal
DNF 2.0 Implementations Challenges in Nepal
ICT Frame Magazine Pvt. Ltd.
 
AI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamsonAI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamson
UXPA Boston
 
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Wonjun Hwang
 
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
Toru Tamaki
 
Building the Customer Identity Community, Together.pdf
Building the Customer Identity Community, Together.pdfBuilding the Customer Identity Community, Together.pdf
Building the Customer Identity Community, Together.pdf
Cheryl Hung
 
Computer Systems Quiz Presentation in Purple Bold Style (4).pdf
Computer Systems Quiz Presentation in Purple Bold Style (4).pdfComputer Systems Quiz Presentation in Purple Bold Style (4).pdf
Computer Systems Quiz Presentation in Purple Bold Style (4).pdf
fizarcse
 
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Alan Dix
 
Cybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and MitigationCybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and Mitigation
VICTOR MAESTRE RAMIREZ
 
Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?
Eric Torreborre
 
Mastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B LandscapeMastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B Landscape
marketing943205
 
Top 5 Qualities to Look for in Salesforce Partners in 2025
Top 5 Qualities to Look for in Salesforce Partners in 2025Top 5 Qualities to Look for in Salesforce Partners in 2025
Top 5 Qualities to Look for in Salesforce Partners in 2025
Damco Salesforce Services
 
Dark Dynamism: drones, dark factories and deurbanization
Dark Dynamism: drones, dark factories and deurbanizationDark Dynamism: drones, dark factories and deurbanization
Dark Dynamism: drones, dark factories and deurbanization
Jakub Šimek
 
Secondary Storage for a microcontroller system
Secondary Storage for a microcontroller systemSecondary Storage for a microcontroller system
Secondary Storage for a microcontroller system
fizarcse
 
Slack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teamsSlack like a pro: strategies for 10x engineering teams
Slack like a pro: strategies for 10x engineering teams
Nacho Cougil
 
Refactoring meta-rauc-community: Cleaner Code, Better Maintenance, More Machines
Refactoring meta-rauc-community: Cleaner Code, Better Maintenance, More MachinesRefactoring meta-rauc-community: Cleaner Code, Better Maintenance, More Machines
Refactoring meta-rauc-community: Cleaner Code, Better Maintenance, More Machines
Leon Anavi
 
UiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptx
UiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptxUiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptx
UiPath AgentHack - Build the AI agents of tomorrow_Enablement 1.pptx
anabulhac
 
Understanding SEO in the Age of AI.pdf
Understanding SEO in the Age of AI.pdfUnderstanding SEO in the Age of AI.pdf
Understanding SEO in the Age of AI.pdf
Fulcrum Concepts, LLC
 
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
ICT Frame Magazine Pvt. Ltd.
 
Cybersecurity Tools and Technologies - Microsoft Certificate
Cybersecurity Tools and Technologies - Microsoft CertificateCybersecurity Tools and Technologies - Microsoft Certificate
Cybersecurity Tools and Technologies - Microsoft Certificate
VICTOR MAESTRE RAMIREZ
 
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier VroomAI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
UXPA Boston
 
AI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamsonAI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamson
UXPA Boston
 
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Wonjun Hwang
 
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
Toru Tamaki
 
Building the Customer Identity Community, Together.pdf
Building the Customer Identity Community, Together.pdfBuilding the Customer Identity Community, Together.pdf
Building the Customer Identity Community, Together.pdf
Cheryl Hung
 
Computer Systems Quiz Presentation in Purple Bold Style (4).pdf
Computer Systems Quiz Presentation in Purple Bold Style (4).pdfComputer Systems Quiz Presentation in Purple Bold Style (4).pdf
Computer Systems Quiz Presentation in Purple Bold Style (4).pdf
fizarcse
 

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
  翻译: