SlideShare una empresa de Scribd logo
1 de 26
Chapter 1 – Architectural Design
Mutah University
Faculty of IT
Department of Software Engineering
Dr. Ra’Fat A. AL-Msie’Deen
rafatalmsiedeen@mutah.edu.jo
https://rafat66.github.io/Al-Msie-Deen/
Software Architecture and Design
Reference - Text Book:
 Chapter 6 of Software Engineering book - by Ian
Sommerville. l0th Edition. Addison Wesley, 2015, ISBN-
10: 0137035152.
2
Objectives
 The objective of this chapter is to introduce the concepts
of software architecture and architectural design. When
you have read the chapter, you will:
 understand why the architectural design of software is important;
 understand the decisions that have to be made about the
software architecture during the architectural design process;
 have been introduced to the idea of Architectural patterns, well-
tried ways of organizing software architectures that can be
reused in system designs;
 understand how Application-Specific Architectural patterns may
be used in transaction processing and language processing
systems.
24/02/2020 3
Topics covered
 Architectural design decisions
 Architectural views
 Architectural patterns
 Application architectures
424/02/2020
Architectural design
 Architectural design is concerned with understanding
how a software system should be organized and
designing the overall structure of that system.
 Architectural design is the critical link between design
and requirements engineering, as it identifies the main
structural components in a system and the relationships
between them.
 The output of the architectural design process is an
architectural model that describes how the system is
organized as a set of communicating components.
524/02/2020
Architectural design … cont.
 In the model of the
software development
process, architectural
design is the first stage in
the software design
process.
Figure 0.
A general model of the design process.
Agility and architecture
 In agile processes, it is generally accepted that an early
stage of an agile development process should focus on
designing an overall system architecture.
 Incremental development of architectures is not usually
successful. Refactoring components response to
changes is usually relatively easy. However, refactoring
the system architecture is expensive because you may
need to modify most system components to adapt them
to the architectural changes.
7
Agility and architecture … cont.
 In practice, there is a significant overlap between the
processes of requirements engineering and architectural
design.
 Ideally, a system specification should not include any design
information. This ideal is unrealistic, however, except for very
small systems.
 You need to identify the main architectural components as
these reflect the high-level features of the system.
 Therefore, as part of the requirements engineering process,
you might propose an abstract system architecture where you
associate groups of system functions or features with large-
scale components or sub-systems.
 You then use this decomposition to discuss the requirements
and more detailed features of the system with stakeholders. 8
The architecture of a packing robot control
system
 To help you understand what I mean by system
architecture, look at Figure 1. This diagram shows an
abstract model of the architecture for a packing robot
system.
 This robotic system can pack different kinds of objects.
 It uses a vision component to pick out objects on a conveyor,
identify the type of object, and select the right kind of
packaging.
 The system then moves objects from the delivery conveyor to
be packaged. It places packaged objects on another
conveyor.
 The architectural model shows these components and the
links between them. 9
The architecture of a packing robot control
system … cont.
1024/02/2020
Architectural abstraction
 You can design software architectures at two levels of
abstraction, which I call architecture in the small and
architecture in the large:
1. Architecture in the small is concerned with the
architecture of individual programs.
 At this level, we are concerned with the way that an individual
program is decomposed into components.
 This chapter is mostly concerned with program architectures.
1124/02/2020
Architectural abstraction … cont.
 You can design software architectures at two levels of
abstraction, which I call architecture in the small and
architecture in the large:
2. Architecture in the large is concerned with the
architecture of complex enterprise systems that include
other systems, programs, and program components.
 These enterprise systems may be distributed over different
computers, which may be owned and managed by different
companies.
1224/02/2020
Architectural abstraction … cont.
 Software architecture is important because it affects the
performance, robustness, distributability, and
maintainability of a system.
 Individual components implement the functional system
requirements, but the dominant influence on the non-
functional system characteristics is the system’s
architecture.
 Chen et al. confirmed this in a study of “architecturally
significant requirements” where they found that non-
functional requirements had the most significant effect
on the system’s architecture.
24/02/2020 13
Advantages of explicit architecture
 Bass et al. suggest that explicitly designing and
documenting software architecture has three
advantages:
 Stakeholder communication
 The architecture is a high-level presentation of the system
that may be used as a focus for discussion by a range of
different stakeholders.
14
Advantages of explicit architecture … cont.
 System analysis
 Making the system architecture explicit at an early stage
in the system development requires some analysis.
 Architectural design decisions have a profound effect on
whether or not the system can meet critical
requirements such as performance, reliability, and
maintainability.
15
Advantages of explicit architecture … cont.
 Large-scale reuse
 An architectural model is a compact, manageable
description of how a system is organized and how the
components interoperate.
 The architecture may be reusable across a range of
systems.
• The system architecture is often the same for systems with
similar requirements and so can support large-scale
software reuse.
 Product-line architectures may be developed.
• Product-line architectures are an approach to reuse where
the same architecture is reused across a range of related
systems.
16
Architectural representations
 Simple, informal block diagrams showing entities and
relationships are the most frequently used method for
documenting software architectures.
 But these have been criticised because they lack
semantics, do not show the types of relationships
between entities nor the visible properties of entities in
the architecture.
 Depends on the use of architectural models. The
requirements for model semantics depends on how the
models are used.
1724/02/2020
Block diagram
 System architectures are often modeled informally using
simple block diagrams, as in Figure 1.
 Each box in the diagram represents a component.
 Boxes within boxes indicate that the component has
been decomposed to subcomponents.
 Arrows mean that data and or control signals are passed
from component to component in the direction of the
arrows.
24/02/2020 18
Block diagram … cont.
 Block diagrams present a high-level picture of the
system structure, which people from different disciplines,
who are involved in the system development process,
can readily understand.
 In spite of their widespread use, Bass et al. dislike
informal block diagrams for describing an architecture.
 They claim that these informal diagrams are poor
architectural representations, as they show neither the
type of the relationships among system components nor
the components’ externally visible properties.
24/02/2020 19
Block diagram … cont.
 Very abstract - they do not show the nature of
component relationships nor the externally visible
properties of the sub-systems.
 However, useful for communication with stakeholders
and for project planning.
2024/02/2020
Block diagram … cont.
 Block diagrams are a good way of supporting
communications between the people involved in the
software design process. They are intuitive, and domain
experts and software engineers can relate to them and
participate in discussions about the system.
 Managers find them helpful in planning the project. For
many projects, block diagrams are the only architectural
description.
24/02/2020 21
Use of architectural models
 The apparent contradictions between architectural theory
and industrial practice arise because there are two ways
in which an architectural model of a program is used:
 As a way of facilitating discussion about the system
design.
 As a way of documenting an architecture that has
been designed.
24/02/2020 22
Use of architectural models … cont.
 As a way of facilitating discussion about the system
design
 A high-level architectural view of a system is useful for
communication with system stakeholders and project planning
because it is not cluttered with detail.
 Stakeholders can relate to it and understand an abstract view of
the system. They can then discuss the system as a whole
without being confused by detail.
 The architectural model identifies the key components that are to
be developed so that managers can start assigning people to
plan the development of these systems.
23
Use of architectural models … cont.
 As a way of documenting an architecture that has been
designed
 The aim here is to produce a complete system model that
shows the different components in a system, their
interfaces and their connections.
 The argument for such a model is that such a detailed
architectural description makes it easier to understand and
evolve the system.
24/02/2020 24
Key points
 A software architecture is a description of how a software
system is organized.
2524/02/2020
Chapter 1 – Architectural Design
Mutah University
Faculty of IT
Department of Software Engineering
Dr. Ra’Fat A. AL-Msie’Deen
rafatalmsiedeen@mutah.edu.jo
https://rafat66.github.io/Al-Msie-Deen/
Software Architecture and Design

Más contenido relacionado

La actualidad más candente

Software architectural patterns - A Quick Understanding Guide
Software architectural patterns - A Quick Understanding GuideSoftware architectural patterns - A Quick Understanding Guide
Software architectural patterns - A Quick Understanding GuideMohammed Fazuluddin
 
An Introduction to Software Architecture
An Introduction to Software ArchitectureAn Introduction to Software Architecture
An Introduction to Software ArchitectureRahimLotfi
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)Simran Kaur
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
Design and Implementation in Software Engineering
Design and Implementation in Software EngineeringDesign and Implementation in Software Engineering
Design and Implementation in Software EngineeringKourosh Sajjadi
 
Architecture business cycle
Architecture business cycleArchitecture business cycle
Architecture business cycleHimanshu
 
Overview of UML Diagrams
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML DiagramsManish Kumar
 
UML diagrams and symbols
UML diagrams and symbolsUML diagrams and symbols
UML diagrams and symbolsKumar
 
Slide 4 Interaction Diagram
Slide 4 Interaction DiagramSlide 4 Interaction Diagram
Slide 4 Interaction DiagramNiloy Rocker
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12koolkampus
 
Architecture business cycle ( abc )
Architecture business cycle ( abc )Architecture business cycle ( abc )
Architecture business cycle ( abc )Dr Reeja S R
 
Requirements analysis
Requirements analysisRequirements analysis
Requirements analysisasimnawaz54
 
Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Sudarshan Dhondaley
 

La actualidad más candente (20)

Software architectural patterns - A Quick Understanding Guide
Software architectural patterns - A Quick Understanding GuideSoftware architectural patterns - A Quick Understanding Guide
Software architectural patterns - A Quick Understanding Guide
 
An Introduction to Software Architecture
An Introduction to Software ArchitectureAn Introduction to Software Architecture
An Introduction to Software Architecture
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)
 
System Modelling
System ModellingSystem Modelling
System Modelling
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Design and Implementation in Software Engineering
Design and Implementation in Software EngineeringDesign and Implementation in Software Engineering
Design and Implementation in Software Engineering
 
Architecture business cycle
Architecture business cycleArchitecture business cycle
Architecture business cycle
 
UML
UMLUML
UML
 
Overview of UML Diagrams
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML Diagrams
 
UML diagrams and symbols
UML diagrams and symbolsUML diagrams and symbols
UML diagrams and symbols
 
Slide 4 Interaction Diagram
Slide 4 Interaction DiagramSlide 4 Interaction Diagram
Slide 4 Interaction Diagram
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
PROTOTYPE MODEL
PROTOTYPE MODELPROTOTYPE MODEL
PROTOTYPE MODEL
 
Software design
Software designSoftware design
Software design
 
Use case diagram
Use case diagramUse case diagram
Use case diagram
 
Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12
 
Architecture business cycle ( abc )
Architecture business cycle ( abc )Architecture business cycle ( abc )
Architecture business cycle ( abc )
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Requirements analysis
Requirements analysisRequirements analysis
Requirements analysis
 
Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5
 

Similar a Software Architecture and Design

chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptxchapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptxMahmoudZidan53
 
Lecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.docLecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.docesrabilgic2
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfputtipavan23022023
 
software engineering Architecture and design Unit 3.pptx
software engineering Architecture and design Unit 3.pptxsoftware engineering Architecture and design Unit 3.pptx
software engineering Architecture and design Unit 3.pptxSomnathMule5
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notesSudarshan Dhondaley
 
Software requirement specification Unit 3.pptx
Software requirement specification Unit 3.pptxSoftware requirement specification Unit 3.pptx
Software requirement specification Unit 3.pptxSomnathMule5
 
Ch6-Software Engineering 9
Ch6-Software Engineering 9Ch6-Software Engineering 9
Ch6-Software Engineering 9Ian Sommerville
 
ch6 ArchitecturalDesign (NTU)
ch6 ArchitecturalDesign (NTU)ch6 ArchitecturalDesign (NTU)
ch6 ArchitecturalDesign (NTU)Rida Sajid
 
Architectural Design
Architectural DesignArchitectural Design
Architectural DesignJay Thakkar
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part iBisrat Girma
 
Architectural Styles And The Design Of Network-Based Software Architectures
Architectural Styles And The Design Of Network-Based Software ArchitecturesArchitectural Styles And The Design Of Network-Based Software Architectures
Architectural Styles And The Design Of Network-Based Software ArchitecturesAndrea Porter
 
Architectural Design.pptx
Architectural Design.pptxArchitectural Design.pptx
Architectural Design.pptxssuser8c0d24
 

Similar a Software Architecture and Design (20)

chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptxchapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
 
Lecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.docLecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.doc
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
 
software engineering Architecture and design Unit 3.pptx
software engineering Architecture and design Unit 3.pptxsoftware engineering Architecture and design Unit 3.pptx
software engineering Architecture and design Unit 3.pptx
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
 
Ch6 architectural design
Ch6 architectural designCh6 architectural design
Ch6 architectural design
 
Ch6 - Architectural Design
Ch6 - Architectural DesignCh6 - Architectural Design
Ch6 - Architectural Design
 
Software requirement specification Unit 3.pptx
Software requirement specification Unit 3.pptxSoftware requirement specification Unit 3.pptx
Software requirement specification Unit 3.pptx
 
Unit-3.doc
Unit-3.docUnit-3.doc
Unit-3.doc
 
Lecture 6 se
Lecture 6 seLecture 6 se
Lecture 6 se
 
Ch6.ppt
Ch6.pptCh6.ppt
Ch6.ppt
 
Ch 6
Ch 6Ch 6
Ch 6
 
Ch6-Software Engineering 9
Ch6-Software Engineering 9Ch6-Software Engineering 9
Ch6-Software Engineering 9
 
Ch6
Ch6Ch6
Ch6
 
Ch6
Ch6Ch6
Ch6
 
ch6 ArchitecturalDesign (NTU)
ch6 ArchitecturalDesign (NTU)ch6 ArchitecturalDesign (NTU)
ch6 ArchitecturalDesign (NTU)
 
Architectural Design
Architectural DesignArchitectural Design
Architectural Design
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
 
Architectural Styles And The Design Of Network-Based Software Architectures
Architectural Styles And The Design Of Network-Based Software ArchitecturesArchitectural Styles And The Design Of Network-Based Software Architectures
Architectural Styles And The Design Of Network-Based Software Architectures
 
Architectural Design.pptx
Architectural Design.pptxArchitectural Design.pptx
Architectural Design.pptx
 

Más de Ra'Fat Al-Msie'deen

SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdfSoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdfRa'Fat Al-Msie'deen
 
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdfBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdfRa'Fat Al-Msie'deen
 
Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...Ra'Fat Al-Msie'deen
 
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsRa'Fat Al-Msie'deen
 
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...Ra'Fat Al-Msie'deen
 
YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...
YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...
YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...Ra'Fat Al-Msie'deen
 
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...Ra'Fat Al-Msie'deen
 
Automatic Labeling of the Object-oriented Source Code: The Lotus Approach
Automatic Labeling of the Object-oriented Source Code: The Lotus ApproachAutomatic Labeling of the Object-oriented Source Code: The Lotus Approach
Automatic Labeling of the Object-oriented Source Code: The Lotus ApproachRa'Fat Al-Msie'deen
 
Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...Ra'Fat Al-Msie'deen
 
Detecting commonality and variability in use-case diagram variants
Detecting commonality and variability in use-case diagram variantsDetecting commonality and variability in use-case diagram variants
Detecting commonality and variability in use-case diagram variantsRa'Fat Al-Msie'deen
 
Naming the Identified Feature Implementation Blocks from Software Source Code
Naming the Identified Feature Implementation Blocks from Software Source CodeNaming the Identified Feature Implementation Blocks from Software Source Code
Naming the Identified Feature Implementation Blocks from Software Source CodeRa'Fat Al-Msie'deen
 
Application architectures - Software Architecture and Design
Application architectures - Software Architecture and DesignApplication architectures - Software Architecture and Design
Application architectures - Software Architecture and DesignRa'Fat Al-Msie'deen
 
Planning and writing your documents - Software documentation
Planning and writing your documents - Software documentationPlanning and writing your documents - Software documentation
Planning and writing your documents - Software documentationRa'Fat Al-Msie'deen
 
Requirements management planning & Requirements change management
Requirements management planning & Requirements change managementRequirements management planning & Requirements change management
Requirements management planning & Requirements change managementRa'Fat Al-Msie'deen
 
Requirements change - requirements engineering
Requirements change - requirements engineeringRequirements change - requirements engineering
Requirements change - requirements engineeringRa'Fat Al-Msie'deen
 
Requirements validation - requirements engineering
Requirements validation - requirements engineeringRequirements validation - requirements engineering
Requirements validation - requirements engineeringRa'Fat Al-Msie'deen
 
Software Documentation - writing to support - references
Software Documentation - writing to support - referencesSoftware Documentation - writing to support - references
Software Documentation - writing to support - referencesRa'Fat Al-Msie'deen
 

Más de Ra'Fat Al-Msie'deen (20)

SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdfSoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
 
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdfBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
 
Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...
 
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
 
Source Code Summarization
Source Code SummarizationSource Code Summarization
Source Code Summarization
 
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...
 
YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...
YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...
YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...
 
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
 
Automatic Labeling of the Object-oriented Source Code: The Lotus Approach
Automatic Labeling of the Object-oriented Source Code: The Lotus ApproachAutomatic Labeling of the Object-oriented Source Code: The Lotus Approach
Automatic Labeling of the Object-oriented Source Code: The Lotus Approach
 
Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...
 
Detecting commonality and variability in use-case diagram variants
Detecting commonality and variability in use-case diagram variantsDetecting commonality and variability in use-case diagram variants
Detecting commonality and variability in use-case diagram variants
 
Naming the Identified Feature Implementation Blocks from Software Source Code
Naming the Identified Feature Implementation Blocks from Software Source CodeNaming the Identified Feature Implementation Blocks from Software Source Code
Naming the Identified Feature Implementation Blocks from Software Source Code
 
Application architectures - Software Architecture and Design
Application architectures - Software Architecture and DesignApplication architectures - Software Architecture and Design
Application architectures - Software Architecture and Design
 
Planning and writing your documents - Software documentation
Planning and writing your documents - Software documentationPlanning and writing your documents - Software documentation
Planning and writing your documents - Software documentation
 
Requirements management planning & Requirements change management
Requirements management planning & Requirements change managementRequirements management planning & Requirements change management
Requirements management planning & Requirements change management
 
Requirements change - requirements engineering
Requirements change - requirements engineeringRequirements change - requirements engineering
Requirements change - requirements engineering
 
Requirements validation - requirements engineering
Requirements validation - requirements engineeringRequirements validation - requirements engineering
Requirements validation - requirements engineering
 
Software Documentation - writing to support - references
Software Documentation - writing to support - referencesSoftware Documentation - writing to support - references
Software Documentation - writing to support - references
 
Algorithms - "heap sort"
Algorithms - "heap sort"Algorithms - "heap sort"
Algorithms - "heap sort"
 
Algorithms - "quicksort"
Algorithms - "quicksort"Algorithms - "quicksort"
Algorithms - "quicksort"
 

Último

Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxnegromaestrong
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docxPoojaSen20
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxVishalSingh1417
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin ClassesCeline George
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.MateoGardella
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingTeacherCyreneCayanan
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfAyushMahapatra5
 
Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterMateoGardella
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Shubhangi Sonawane
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 

Último (20)

Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch Letter
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 

Software Architecture and Design

  • 1. Chapter 1 – Architectural Design Mutah University Faculty of IT Department of Software Engineering Dr. Ra’Fat A. AL-Msie’Deen rafatalmsiedeen@mutah.edu.jo https://rafat66.github.io/Al-Msie-Deen/ Software Architecture and Design
  • 2. Reference - Text Book:  Chapter 6 of Software Engineering book - by Ian Sommerville. l0th Edition. Addison Wesley, 2015, ISBN- 10: 0137035152. 2
  • 3. Objectives  The objective of this chapter is to introduce the concepts of software architecture and architectural design. When you have read the chapter, you will:  understand why the architectural design of software is important;  understand the decisions that have to be made about the software architecture during the architectural design process;  have been introduced to the idea of Architectural patterns, well- tried ways of organizing software architectures that can be reused in system designs;  understand how Application-Specific Architectural patterns may be used in transaction processing and language processing systems. 24/02/2020 3
  • 4. Topics covered  Architectural design decisions  Architectural views  Architectural patterns  Application architectures 424/02/2020
  • 5. Architectural design  Architectural design is concerned with understanding how a software system should be organized and designing the overall structure of that system.  Architectural design is the critical link between design and requirements engineering, as it identifies the main structural components in a system and the relationships between them.  The output of the architectural design process is an architectural model that describes how the system is organized as a set of communicating components. 524/02/2020
  • 6. Architectural design … cont.  In the model of the software development process, architectural design is the first stage in the software design process. Figure 0. A general model of the design process.
  • 7. Agility and architecture  In agile processes, it is generally accepted that an early stage of an agile development process should focus on designing an overall system architecture.  Incremental development of architectures is not usually successful. Refactoring components response to changes is usually relatively easy. However, refactoring the system architecture is expensive because you may need to modify most system components to adapt them to the architectural changes. 7
  • 8. Agility and architecture … cont.  In practice, there is a significant overlap between the processes of requirements engineering and architectural design.  Ideally, a system specification should not include any design information. This ideal is unrealistic, however, except for very small systems.  You need to identify the main architectural components as these reflect the high-level features of the system.  Therefore, as part of the requirements engineering process, you might propose an abstract system architecture where you associate groups of system functions or features with large- scale components or sub-systems.  You then use this decomposition to discuss the requirements and more detailed features of the system with stakeholders. 8
  • 9. The architecture of a packing robot control system  To help you understand what I mean by system architecture, look at Figure 1. This diagram shows an abstract model of the architecture for a packing robot system.  This robotic system can pack different kinds of objects.  It uses a vision component to pick out objects on a conveyor, identify the type of object, and select the right kind of packaging.  The system then moves objects from the delivery conveyor to be packaged. It places packaged objects on another conveyor.  The architectural model shows these components and the links between them. 9
  • 10. The architecture of a packing robot control system … cont. 1024/02/2020
  • 11. Architectural abstraction  You can design software architectures at two levels of abstraction, which I call architecture in the small and architecture in the large: 1. Architecture in the small is concerned with the architecture of individual programs.  At this level, we are concerned with the way that an individual program is decomposed into components.  This chapter is mostly concerned with program architectures. 1124/02/2020
  • 12. Architectural abstraction … cont.  You can design software architectures at two levels of abstraction, which I call architecture in the small and architecture in the large: 2. Architecture in the large is concerned with the architecture of complex enterprise systems that include other systems, programs, and program components.  These enterprise systems may be distributed over different computers, which may be owned and managed by different companies. 1224/02/2020
  • 13. Architectural abstraction … cont.  Software architecture is important because it affects the performance, robustness, distributability, and maintainability of a system.  Individual components implement the functional system requirements, but the dominant influence on the non- functional system characteristics is the system’s architecture.  Chen et al. confirmed this in a study of “architecturally significant requirements” where they found that non- functional requirements had the most significant effect on the system’s architecture. 24/02/2020 13
  • 14. Advantages of explicit architecture  Bass et al. suggest that explicitly designing and documenting software architecture has three advantages:  Stakeholder communication  The architecture is a high-level presentation of the system that may be used as a focus for discussion by a range of different stakeholders. 14
  • 15. Advantages of explicit architecture … cont.  System analysis  Making the system architecture explicit at an early stage in the system development requires some analysis.  Architectural design decisions have a profound effect on whether or not the system can meet critical requirements such as performance, reliability, and maintainability. 15
  • 16. Advantages of explicit architecture … cont.  Large-scale reuse  An architectural model is a compact, manageable description of how a system is organized and how the components interoperate.  The architecture may be reusable across a range of systems. • The system architecture is often the same for systems with similar requirements and so can support large-scale software reuse.  Product-line architectures may be developed. • Product-line architectures are an approach to reuse where the same architecture is reused across a range of related systems. 16
  • 17. Architectural representations  Simple, informal block diagrams showing entities and relationships are the most frequently used method for documenting software architectures.  But these have been criticised because they lack semantics, do not show the types of relationships between entities nor the visible properties of entities in the architecture.  Depends on the use of architectural models. The requirements for model semantics depends on how the models are used. 1724/02/2020
  • 18. Block diagram  System architectures are often modeled informally using simple block diagrams, as in Figure 1.  Each box in the diagram represents a component.  Boxes within boxes indicate that the component has been decomposed to subcomponents.  Arrows mean that data and or control signals are passed from component to component in the direction of the arrows. 24/02/2020 18
  • 19. Block diagram … cont.  Block diagrams present a high-level picture of the system structure, which people from different disciplines, who are involved in the system development process, can readily understand.  In spite of their widespread use, Bass et al. dislike informal block diagrams for describing an architecture.  They claim that these informal diagrams are poor architectural representations, as they show neither the type of the relationships among system components nor the components’ externally visible properties. 24/02/2020 19
  • 20. Block diagram … cont.  Very abstract - they do not show the nature of component relationships nor the externally visible properties of the sub-systems.  However, useful for communication with stakeholders and for project planning. 2024/02/2020
  • 21. Block diagram … cont.  Block diagrams are a good way of supporting communications between the people involved in the software design process. They are intuitive, and domain experts and software engineers can relate to them and participate in discussions about the system.  Managers find them helpful in planning the project. For many projects, block diagrams are the only architectural description. 24/02/2020 21
  • 22. Use of architectural models  The apparent contradictions between architectural theory and industrial practice arise because there are two ways in which an architectural model of a program is used:  As a way of facilitating discussion about the system design.  As a way of documenting an architecture that has been designed. 24/02/2020 22
  • 23. Use of architectural models … cont.  As a way of facilitating discussion about the system design  A high-level architectural view of a system is useful for communication with system stakeholders and project planning because it is not cluttered with detail.  Stakeholders can relate to it and understand an abstract view of the system. They can then discuss the system as a whole without being confused by detail.  The architectural model identifies the key components that are to be developed so that managers can start assigning people to plan the development of these systems. 23
  • 24. Use of architectural models … cont.  As a way of documenting an architecture that has been designed  The aim here is to produce a complete system model that shows the different components in a system, their interfaces and their connections.  The argument for such a model is that such a detailed architectural description makes it easier to understand and evolve the system. 24/02/2020 24
  • 25. Key points  A software architecture is a description of how a software system is organized. 2524/02/2020
  • 26. Chapter 1 – Architectural Design Mutah University Faculty of IT Department of Software Engineering Dr. Ra’Fat A. AL-Msie’Deen rafatalmsiedeen@mutah.edu.jo https://rafat66.github.io/Al-Msie-Deen/ Software Architecture and Design