SlideShare a Scribd company logo
1 of 26
Download to read 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

More Related Content

What's hot

Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patternsLilia Sfaxi
 
Ch4-Software Engineering 9
Ch4-Software Engineering 9Ch4-Software Engineering 9
Ch4-Software Engineering 9Ian Sommerville
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software designMr. Swapnil G. Thaware
 
Incremental model
Incremental modelIncremental model
Incremental modelHpibmx
 
Software engineering rogers pressman chapter 7
Software engineering rogers pressman chapter 7Software engineering rogers pressman chapter 7
Software engineering rogers pressman chapter 7mohammad hossein Jalili
 
Requirements engineering for agile methods
Requirements engineering for agile methodsRequirements engineering for agile methods
Requirements engineering for agile methodsSyed Zaid Irshad
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design pptfarazimlak
 
software development life cycle(SDLC)
software development life cycle(SDLC)software development life cycle(SDLC)
software development life cycle(SDLC)sanoop s
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Angelin R
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLAjit Nayak
 
Se2 lec 13 uml state machines
Se2 lec 13  uml state machinesSe2 lec 13  uml state machines
Se2 lec 13 uml state machinesAmr E. Mohamed
 
Lecture 14 requirements modeling - flow and behavior
Lecture 14   requirements modeling - flow and  behaviorLecture 14   requirements modeling - flow and  behavior
Lecture 14 requirements modeling - flow and behaviorIIUI
 
Requirements prioritization
Requirements prioritizationRequirements prioritization
Requirements prioritizationSyed Zaid Irshad
 

What's hot (20)

Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patterns
 
Ch4-Software Engineering 9
Ch4-Software Engineering 9Ch4-Software Engineering 9
Ch4-Software Engineering 9
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software design
 
Incremental model
Incremental modelIncremental model
Incremental model
 
Software engineering rogers pressman chapter 7
Software engineering rogers pressman chapter 7Software engineering rogers pressman chapter 7
Software engineering rogers pressman chapter 7
 
Requirements engineering for agile methods
Requirements engineering for agile methodsRequirements engineering for agile methods
Requirements engineering for agile methods
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
 
Domain object model
Domain object modelDomain object model
Domain object model
 
software development life cycle(SDLC)
software development life cycle(SDLC)software development life cycle(SDLC)
software development life cycle(SDLC)
 
The Software Development Process
The Software Development ProcessThe Software Development Process
The Software Development Process
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UML
 
Design Principles
Design PrinciplesDesign Principles
Design Principles
 
Documenting Software Architectures
Documenting Software ArchitecturesDocumenting Software Architectures
Documenting Software Architectures
 
Se2 lec 13 uml state machines
Se2 lec 13  uml state machinesSe2 lec 13  uml state machines
Se2 lec 13 uml state machines
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
 
Lecture 14 requirements modeling - flow and behavior
Lecture 14   requirements modeling - flow and  behaviorLecture 14   requirements modeling - flow and  behavior
Lecture 14 requirements modeling - flow and behavior
 
What is agile model
What is agile modelWhat is agile model
What is agile model
 
Software design
Software designSoftware design
Software design
 
Requirements prioritization
Requirements prioritizationRequirements prioritization
Requirements prioritization
 

Viewers also liked

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 - chp6- development phase
Software Engineering - chp6- development phaseSoftware Engineering - chp6- development phase
Software Engineering - chp6- development phaseLilia Sfaxi
 
Software Engineering - chp8- deployment
Software Engineering - chp8- deploymentSoftware Engineering - chp8- deployment
Software Engineering - chp8- deploymentLilia Sfaxi
 

Viewers also liked (8)

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 - chp6- development phase
Software Engineering - chp6- development phaseSoftware Engineering - chp6- development phase
Software Engineering - chp6- development phase
 
Software Engineering - chp8- deployment
Software Engineering - chp8- deploymentSoftware Engineering - chp8- deployment
Software Engineering - chp8- deployment
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 

Similar to 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
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering arvind pandey
 
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
 

Similar to 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
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering
 
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 architecture
Software architectureSoftware architecture
Software architecture
 
Software engg. pressman_ch-10
Software engg. pressman_ch-10Software engg. pressman_ch-10
Software engg. pressman_ch-10
 

More from 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
 

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
 
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
 

Recently uploaded

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
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
 
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
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
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
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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
 

Recently uploaded (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
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
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
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...
 

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