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

More Related Content

What's hot

Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software design
Mr. Swapnil G. Thaware
 
Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patterns
Lilia Sfaxi
 
Software requirements engineering lecture 01
Software requirements engineering   lecture 01Software requirements engineering   lecture 01
Software requirements engineering lecture 01Abdul Basit
 
Architectural Design & Patterns
Architectural Design&PatternsArchitectural Design&Patterns
Architectural Design & Patterns
Inocentshuja Ahmad
 
Software Engineering - chp8- deployment
Software Engineering - chp8- deploymentSoftware Engineering - chp8- deployment
Software Engineering - chp8- deployment
Lilia Sfaxi
 
Non Functional Requirement.
Non Functional Requirement.Non Functional Requirement.
Non Functional Requirement.
Khushboo Shaukat
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
Dharmalingam Ganesan
 
Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified Process
Kumar
 
Advanced topics in software engineering
Advanced topics in software engineeringAdvanced topics in software engineering
Advanced topics in software engineering
Rupesh Vaishnav
 
Requirements analysis and modeling
Requirements analysis and modelingRequirements analysis and modeling
Requirements analysis and modeling
Syed Zaid Irshad
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
Ashesh R
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models
Satya P. Joshi
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
Saqib Raza
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life CycleSlideshare
 
Requirements engineering process in software engineering
Requirements engineering process in software engineeringRequirements engineering process in software engineering
Requirements engineering process in software engineering
Preeti Mishra
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural design
devika g
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
Ivano Malavolta
 
Let us understand design pattern
Let us understand design patternLet us understand design pattern
Let us understand design pattern
Mindfire Solutions
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
Aman Adhikari
 

What's hot (20)

Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software design
 
Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patterns
 
Software requirements engineering lecture 01
Software requirements engineering   lecture 01Software requirements engineering   lecture 01
Software requirements engineering lecture 01
 
Architectural Design & Patterns
Architectural Design&PatternsArchitectural Design&Patterns
Architectural Design & Patterns
 
Software Engineering - chp8- deployment
Software Engineering - chp8- deploymentSoftware Engineering - chp8- deployment
Software Engineering - chp8- deployment
 
Non Functional Requirement.
Non Functional Requirement.Non Functional Requirement.
Non Functional Requirement.
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified Process
 
Advanced topics in software engineering
Advanced topics in software engineeringAdvanced topics in software engineering
Advanced topics in software engineering
 
Requirements analysis and modeling
Requirements analysis and modelingRequirements analysis and modeling
Requirements analysis and modeling
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Requirements engineering process in software engineering
Requirements engineering process in software engineeringRequirements engineering process in software engineering
Requirements engineering process in software engineering
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural design
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
 
Let us understand design pattern
Let us understand design patternLet us understand design pattern
Let us understand design pattern
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
 

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: 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 - chp6- development phase
Software Engineering - chp6- development phaseSoftware Engineering - chp6- development phase
Software Engineering - chp6- development phase
Lilia 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 - chp2- requirements specification
Software Engineering - chp2- requirements specificationSoftware Engineering - chp2- requirements specification
Software Engineering - chp2- requirements specification
 
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
 

Similar to Software Engineering - chp5- software architecture

Architectural design
Architectural designArchitectural design
Architectural design
SHREEHARI WADAWADAGI
 
Thesis presentation
Thesis presentationThesis presentation
Thesis presentation
Alexios Lekidis
 
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
 
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 engineering2
Lilia 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
 
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
 
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
IncQuery 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 techniques
nimmik4u
 
Software architecture
Software architectureSoftware architecture
Software architecture
Sweta Kumari Barnwal
 
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 2022IW
IncQuery Labs
 

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

Architectural design
Architectural designArchitectural design
Architectural design
 
Thesis presentation
Thesis presentationThesis presentation
Thesis presentation
 
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
 
IncQuery Suite demo for INCOSE 2022IW
IncQuery Suite demo for INCOSE 2022IWIncQuery Suite demo for INCOSE 2022IW
IncQuery Suite demo for INCOSE 2022IW
 

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

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

Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 

Recently uploaded (20)

Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 

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