SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineeringRupesh Vaishnav
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
Distributed Systems Architecture in Software Engineering SE11
Distributed Systems Architecture in Software Engineering SE11Distributed Systems Architecture in Software Engineering SE11
Distributed Systems Architecture in Software Engineering SE11koolkampus
 
Software Engineering Solved Past Paper 2020
Software Engineering Solved Past Paper 2020 Software Engineering Solved Past Paper 2020
Software Engineering Solved Past Paper 2020 MuhammadTalha436
 
Software Engineering - chp5- software architecture
Software Engineering - chp5- software architectureSoftware Engineering - chp5- software architecture
Software Engineering - chp5- software architectureLilia Sfaxi
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and DesignHaitham El-Ghareeb
 
Software Engineering - Ch11
Software Engineering - Ch11Software Engineering - Ch11
Software Engineering - Ch11Siddharth Ayer
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software EngineeringVarsha Ajith
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Drusilla918
 
Software maintenance
Software maintenance Software maintenance
Software maintenance Rajeev Sharan
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and DesignDr. C.V. Suresh Babu
 

Tendances (20)

Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
UML
UMLUML
UML
 
Distributed Systems Architecture in Software Engineering SE11
Distributed Systems Architecture in Software Engineering SE11Distributed Systems Architecture in Software Engineering SE11
Distributed Systems Architecture in Software Engineering SE11
 
Software Engineering Solved Past Paper 2020
Software Engineering Solved Past Paper 2020 Software Engineering Solved Past Paper 2020
Software Engineering Solved Past Paper 2020
 
Software Engineering - chp5- software architecture
Software Engineering - chp5- software architectureSoftware Engineering - chp5- software architecture
Software Engineering - chp5- software architecture
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Software process
Software processSoftware process
Software process
 
Software Engineering - Ch11
Software Engineering - Ch11Software Engineering - Ch11
Software Engineering - Ch11
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software Engineering
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...
 
Software maintenance
Software maintenance Software maintenance
Software maintenance
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
Waterfall model in SDLC
Waterfall model in SDLCWaterfall model in SDLC
Waterfall model in SDLC
 
Use Case Modeling
Use Case ModelingUse Case Modeling
Use Case Modeling
 
Software process
Software processSoftware process
Software process
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 

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

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

Plus 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
 

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

Dernier

Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
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
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
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
 
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
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhikauryashika82
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 

Dernier (20)

Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
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
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
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
 
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
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 

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