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

More Related Content

What's hot

Software architecture
Software architectureSoftware architecture
Software architecturenazn
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)IIUI
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural designdevika g
 
Software Architecture and Design Introduction
Software Architecture and Design IntroductionSoftware Architecture and Design Introduction
Software Architecture and Design IntroductionUsman Khan
 
Software requirements engineering lecture 01
Software requirements engineering   lecture 01Software requirements engineering   lecture 01
Software requirements engineering lecture 01Abdul Basit
 
Analysis concepts and principles
Analysis concepts and principlesAnalysis concepts and principles
Analysis concepts and principlessaurabhshertukde
 
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
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineeringRupesh Vaishnav
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineeringHitesh Mohapatra
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineeringDarshit Metaliya
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering arvind pandey
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design PatternSanae BEKKAR
 

What's hot (20)

Software architecture
Software architectureSoftware architecture
Software architecture
 
Ch 6
Ch 6Ch 6
Ch 6
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural design
 
Software Architecture and Design Introduction
Software Architecture and Design IntroductionSoftware Architecture and Design Introduction
Software Architecture and Design Introduction
 
Software process
Software processSoftware process
Software process
 
Software requirements engineering lecture 01
Software requirements engineering   lecture 01Software requirements engineering   lecture 01
Software requirements engineering lecture 01
 
Sdlc models
Sdlc modelsSdlc models
Sdlc models
 
Analysis concepts and principles
Analysis concepts and principlesAnalysis concepts and principles
Analysis concepts and principles
 
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
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
 
Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
 
Chapter 12 user interface design
Chapter 12 user interface designChapter 12 user interface design
Chapter 12 user interface design
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
Ch16 component based software engineering
Ch16 component based software engineeringCh16 component based software engineering
Ch16 component based software engineering
 
Ch15 software reuse
Ch15 software reuseCh15 software reuse
Ch15 software reuse
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design Pattern
 

Similar to 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
 
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
 
Ch6 archtchure design in software en.pptx
Ch6 archtchure design in software en.pptxCh6 archtchure design in software en.pptx
Ch6 archtchure design in software en.pptxubaidullah75790
 

Similar to 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
 
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
 
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
 
SA_UNIT_1.pptx
SA_UNIT_1.pptxSA_UNIT_1.pptx
SA_UNIT_1.pptx
 
Ch6 archtchure design in software en.pptx
Ch6 archtchure design in software en.pptxCh6 archtchure design in software en.pptx
Ch6 archtchure design in software en.pptx
 

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

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

Recently uploaded

Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxnelietumpap1
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxDr.Ibrahim Hassaan
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxMaryGraceBautista27
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 

Recently uploaded (20)

Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptx
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptx
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptx
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 

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