SlideShare a Scribd company logo
1 of 22
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 1
Chapter 2
 Architectural Design
2
Definitions
 The software architecture of a program or computing system is the
structure or structures of the system which comprise
 The software components
 The externally visible properties of those components
 The relationships among the components
 Software architectural design represents the structure of the data and
program components that are required to build a computer-based
system
 An architectural design model is transferable
 It can be applied to the design of other systems
 It represents a set of abstractions that enable software engineers to
describe architecture in predictable ways
3
Architectural Design Process
 Basic Steps
 Creation of the data design
 Derivation of one or more representations of the architectural structure of
the system
 Analysis of alternative architectural styles to choose the one best suited to
customer requirements and quality attributes
 Elaboration of the architecture based on the selected architectural style
 A database designer creates the data architecture for a system to
represent the data components
 A system architect selects an appropriate architectural style derived
during system engineering and software requirements analysis
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 4
Why Architecture?
The architecture is not the operational software. Rather,The architecture is not the operational software. Rather,
it is a representation that enables a software engineerit is a representation that enables a software engineer
to:to:
(1)(1) analyze the effectiveness of the design in meeting itsin meeting its
stated requirements,stated requirements,
(2)(2) consider architectural alternatives at a stage whenat a stage when
making design changes is still relatively easy, andmaking design changes is still relatively easy, and
(3)(3) reduce the risks associated with the construction ofassociated with the construction of
the software.the software.
Focus is placed on the software component
•A program module
•An object-oriented class
•A database
•Middleware
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 5
Why is Architecture Important?
 Representations of software architecture are an enabler
for communication between all parties (stakeholders)
interested in the development of a computer-based
system.
 The architecture highlights early design decisions that
will have a profound impact on all software engineering
work that follows and, as important, on the ultimate
success of the system as an operational entity.
 Architecture “constitutes a relatively small, intellectually
graspable mode of how the system is structured and
how its components work together” [BAS03].
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 6
Architectural Descriptions
 The IEEE Computer Society has proposed IEEE-Std-
1471-2000, Recommended Practice for Architectural
Description of Software-Intensive System, [IEE00]
 to establish a conceptual framework and vocabulary for use
during the design of software architecture,
 to provide detailed guidelines for representing an architectural
description, and
 to encourage sound architectural design practices.
 The IEEE Standard defines an architectural description (AD)
as a “a collection of products to document an architecture.”
 The description itself is represented using multiple views, where
each view is “a representation of a whole system from the
perspective of a related set of [stakeholder] concerns.”
Architectural Decisions
 Architectural description addresses a specific
stakeholder concern.
 Among multiple views the system architect
considers a variety of alternatives and
ultimately decides the specific architectural
feature that best meet the concern.
 Therefore, architecture decisions themselves
can be considered to be one view of the
architecture.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 7
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 8
Architectural Styles
 Data-centered architectures
 Data flow architectures
 Call and return architectures
 Object-oriented architectures
 Layered architectures
Each style describes a system category that encompasses: (1) aEach style describes a system category that encompasses: (1) a
set of components (e.g., a database, computational modules)(e.g., a database, computational modules)
that perform a function required by a system, (2) athat perform a function required by a system, (2) a set of
connectors that enable “communication, coordination andthat enable “communication, coordination and
cooperation” among components, (3)cooperation” among components, (3) constraints that definethat define
how components can be integrated to form the system, andhow components can be integrated to form the system, and
(4)(4) semantic models that enable a designer to understand thethat enable a designer to understand the
overall properties of a system by analyzing the knownoverall properties of a system by analyzing the known
properties of its constituent parts.properties of its constituent parts.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 9
Data-Centered Architecture
10
Data-Centered Style (continued)
 A data store resides at the center of the architecture and is accessed
frequently by other components that update, add, delete data within
the store
 In some case data repository is passive. i.e. client software access the
data independent of any changes to the data or actions of other client
software
 A variation on this approach transforms the repository into a
“blackboard” that sends a notification to client software when data of
interest to the client changes
(More on next slide)
11
Data-Centered Style (continued)
 Data-centered architectures promotes integrability i.e. existing
components can be changed and new client components added to the
architecture without concern about other clients
 Client components independently execute processes
12
Data Flow Style
Validate Sort Update Report
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 13
Data Flow Architecture
14
Data Flow Style
• It is applied when input data are to be transformed through a
series of computational or manipulative components into o/p
data
• A pipe and filter pattern has set of components , called
filter , connected by pipes that transmits data from one
component to the next
• Each filter works independently and is designed to expect
data input of a certain form, and produces data output of a
specified form
• Batch sequential approach: This structure accepts a batch of
data and then applies a series of sequential components to
transform it
(More on next slide)
15
Call-and-Return Style
Main module
Subroutine A
Subroutine B
Subroutine A-1 Subroutine A-2
Physical layer
Data layer
Network layer
Transport layer
Application layer Class WClass V
Class X
Class Z
Class Y
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 16
Call and Return Architecture
17
Call-and-Return Style
• Has the goal of modifiability and scalability
• A number of sub styles exist within this category
Categories
• Main / sub program architecture:
– it decomposes function into a control hierarchy where a
“main” program invokes a no of program components ,
which in turn may invoke still other components
• RPC architecture:
– the components of main program / sub program architecture
are distributed across multiple computers on a network
(More on next slide)
18
Object-oriented Architecture
• The components of a system encapsulate
data and the operations that must be applied
to manipulate the data
• Communication and coordination between
the components are accomplished via
message passing.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 19
Layered Architecture
20
Layered system
 A number of different layers are defined, each accomplishing
operations that progressively become closer to the machine
instruction set
 At the outer layer, components are used to serve user
interface operations
 At the inner layer, components perform operating system
interfacing
 Intermediate layers provides utility services and application
software functions
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 21
Architectural Patterns
 Architectural patterns address an
application-specific problem within a
specific context and under a set of
limitations and constraints.
 The pattern proposes an architectural
solution that can serve as the basis for
architectural design
.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 22
Organization and Refinement
 Set of design criteria can be used to access an
architectural design that is derived
 Control: How is control managed within the
architecture?
 Data: How are data communicated between
components? What is a mode of transfer? etc.

More Related Content

What's hot

4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-daniellerouxIBM
 
Design process and concepts
Design process and conceptsDesign process and concepts
Design process and conceptsSlideshare
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-designOliver Cheng
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software EngineeringVarsha Ajith
 
Software engineering 17 architectural design
Software engineering 17 architectural designSoftware engineering 17 architectural design
Software engineering 17 architectural designVaibhav Khanna
 
Architectural Design
Architectural DesignArchitectural Design
Architectural DesignJay Thakkar
 
Software architecture by Dr.C.R.Dhivyaa, Assistant Professor,Kongu Engineerin...
Software architecture by Dr.C.R.Dhivyaa, Assistant Professor,Kongu Engineerin...Software architecture by Dr.C.R.Dhivyaa, Assistant Professor,Kongu Engineerin...
Software architecture by Dr.C.R.Dhivyaa, Assistant Professor,Kongu Engineerin...Dhivyaa C.R
 
07 software design
07   software design07   software design
07 software designkebsterz
 
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
 
Essential Software Architecture - Chapter 1 Understanding Software Architectu...
Essential Software Architecture - Chapter 1 Understanding Software Architectu...Essential Software Architecture - Chapter 1 Understanding Software Architectu...
Essential Software Architecture - Chapter 1 Understanding Software Architectu...John Ortiz
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patternsHimanshu
 
Cs8092 computer graphics and multimedia unit 5
Cs8092 computer graphics and multimedia unit 5Cs8092 computer graphics and multimedia unit 5
Cs8092 computer graphics and multimedia unit 5SIMONTHOMAS S
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patternsdeep sharma
 
Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10koolkampus
 
Seii unit7 component-level-design
Seii unit7 component-level-designSeii unit7 component-level-design
Seii unit7 component-level-designAhmad sohail Kakar
 
Unit iii(part d - component level design)
Unit   iii(part d - component level design)Unit   iii(part d - component level design)
Unit iii(part d - component level design)BALAJI A
 

What's hot (20)

4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux
 
Design process and concepts
Design process and conceptsDesign process and concepts
Design process and concepts
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-design
 
Design techniques
Design techniquesDesign techniques
Design techniques
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software Engineering
 
Software engineering 17 architectural design
Software engineering 17 architectural designSoftware engineering 17 architectural design
Software engineering 17 architectural design
 
Architectural Design
Architectural DesignArchitectural Design
Architectural Design
 
Software architecture by Dr.C.R.Dhivyaa, Assistant Professor,Kongu Engineerin...
Software architecture by Dr.C.R.Dhivyaa, Assistant Professor,Kongu Engineerin...Software architecture by Dr.C.R.Dhivyaa, Assistant Professor,Kongu Engineerin...
Software architecture by Dr.C.R.Dhivyaa, Assistant Professor,Kongu Engineerin...
 
07 software design
07   software design07   software design
07 software design
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
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
 
Essential Software Architecture - Chapter 1 Understanding Software Architectu...
Essential Software Architecture - Chapter 1 Understanding Software Architectu...Essential Software Architecture - Chapter 1 Understanding Software Architectu...
Essential Software Architecture - Chapter 1 Understanding Software Architectu...
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
 
Cs8092 computer graphics and multimedia unit 5
Cs8092 computer graphics and multimedia unit 5Cs8092 computer graphics and multimedia unit 5
Cs8092 computer graphics and multimedia unit 5
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
 
Architectural design of software
Architectural  design of softwareArchitectural  design of software
Architectural design of software
 
Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10
 
Seii unit7 component-level-design
Seii unit7 component-level-designSeii unit7 component-level-design
Seii unit7 component-level-design
 
Ch06
Ch06Ch06
Ch06
 
Unit iii(part d - component level design)
Unit   iii(part d - component level design)Unit   iii(part d - component level design)
Unit iii(part d - component level design)
 

Similar to Fundamentals of Software Engineering

Unit iii(part b - architectural design)
Unit   iii(part b - architectural design)Unit   iii(part b - architectural design)
Unit iii(part b - architectural design)BALAJI A
 
Chapter 08
Chapter 08Chapter 08
Chapter 08guru3188
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptxtaxegap762
 
Software engg. pressman_ch-10
Software engg. pressman_ch-10Software engg. pressman_ch-10
Software engg. pressman_ch-10Dhairya Joshi
 
Design Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software EngineeringDesign Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software EngineeringMeghaj Mallick
 
Introduction to Modern Software Architecture
Introduction to Modern Software ArchitectureIntroduction to Modern Software Architecture
Introduction to Modern Software ArchitectureJérôme Kehrli
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
HW/SW Partitioning Approach on Reconfigurable Multimedia System on Chip
HW/SW Partitioning Approach on Reconfigurable Multimedia System on ChipHW/SW Partitioning Approach on Reconfigurable Multimedia System on Chip
HW/SW Partitioning Approach on Reconfigurable Multimedia System on ChipCSCJournals
 
Slides 6 design of sw arch using add
Slides 6 design of sw arch using addSlides 6 design of sw arch using add
Slides 6 design of sw arch using addJavid iqbal hashmi
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyModel-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyEditor IJCATR
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey Editor IJCATR
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyModel-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyEditor IJCATR
 
07 software design
07   software design07   software design
07 software designkebsterz
 

Similar to Fundamentals of Software Engineering (20)

Unit iii(part b - architectural design)
Unit   iii(part b - architectural design)Unit   iii(part b - architectural design)
Unit iii(part b - architectural design)
 
Chapter 08
Chapter 08Chapter 08
Chapter 08
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Software engg. pressman_ch-10
Software engg. pressman_ch-10Software engg. pressman_ch-10
Software engg. pressman_ch-10
 
Ch10
Ch10Ch10
Ch10
 
Design Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software EngineeringDesign Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software Engineering
 
Software Design.pptx
Software Design.pptxSoftware Design.pptx
Software Design.pptx
 
Introduction to Modern Software Architecture
Introduction to Modern Software ArchitectureIntroduction to Modern Software Architecture
Introduction to Modern Software Architecture
 
Unit-3.doc
Unit-3.docUnit-3.doc
Unit-3.doc
 
06 fse design
06 fse design06 fse design
06 fse design
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
UNIT 3 SE.pptx
UNIT 3 SE.pptxUNIT 3 SE.pptx
UNIT 3 SE.pptx
 
Full Paper
Full PaperFull Paper
Full Paper
 
HW/SW Partitioning Approach on Reconfigurable Multimedia System on Chip
HW/SW Partitioning Approach on Reconfigurable Multimedia System on ChipHW/SW Partitioning Approach on Reconfigurable Multimedia System on Chip
HW/SW Partitioning Approach on Reconfigurable Multimedia System on Chip
 
Slides 6 design of sw arch using add
Slides 6 design of sw arch using addSlides 6 design of sw arch using add
Slides 6 design of sw arch using add
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyModel-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey
 
Model-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A surveyModel-Driven Architecture for Cloud Applications Development, A survey
Model-Driven Architecture for Cloud Applications Development, A survey
 
07 software design
07   software design07   software design
07 software design
 

More from Madhar Khan Pathan

Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringMadhar Khan Pathan
 
Software applications and challenges
Software applications and challenges Software applications and challenges
Software applications and challenges Madhar Khan Pathan
 

More from Madhar Khan Pathan (20)

Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Generic process model
Generic process modelGeneric process model
Generic process model
 
Software Myths
Software MythsSoftware Myths
Software Myths
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Software applications and challenges
Software applications and challenges Software applications and challenges
Software applications and challenges
 

Recently uploaded

buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutionsmonugehlot87
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?Watsoo Telematics
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutions
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 

Fundamentals of Software Engineering

  • 1. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 1 Chapter 2  Architectural Design
  • 2. 2 Definitions  The software architecture of a program or computing system is the structure or structures of the system which comprise  The software components  The externally visible properties of those components  The relationships among the components  Software architectural design represents the structure of the data and program components that are required to build a computer-based system  An architectural design model is transferable  It can be applied to the design of other systems  It represents a set of abstractions that enable software engineers to describe architecture in predictable ways
  • 3. 3 Architectural Design Process  Basic Steps  Creation of the data design  Derivation of one or more representations of the architectural structure of the system  Analysis of alternative architectural styles to choose the one best suited to customer requirements and quality attributes  Elaboration of the architecture based on the selected architectural style  A database designer creates the data architecture for a system to represent the data components  A system architect selects an appropriate architectural style derived during system engineering and software requirements analysis
  • 4. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 4 Why Architecture? The architecture is not the operational software. Rather,The architecture is not the operational software. Rather, it is a representation that enables a software engineerit is a representation that enables a software engineer to:to: (1)(1) analyze the effectiveness of the design in meeting itsin meeting its stated requirements,stated requirements, (2)(2) consider architectural alternatives at a stage whenat a stage when making design changes is still relatively easy, andmaking design changes is still relatively easy, and (3)(3) reduce the risks associated with the construction ofassociated with the construction of the software.the software. Focus is placed on the software component •A program module •An object-oriented class •A database •Middleware
  • 5. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 5 Why is Architecture Important?  Representations of software architecture are an enabler for communication between all parties (stakeholders) interested in the development of a computer-based system.  The architecture highlights early design decisions that will have a profound impact on all software engineering work that follows and, as important, on the ultimate success of the system as an operational entity.  Architecture “constitutes a relatively small, intellectually graspable mode of how the system is structured and how its components work together” [BAS03].
  • 6. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 6 Architectural Descriptions  The IEEE Computer Society has proposed IEEE-Std- 1471-2000, Recommended Practice for Architectural Description of Software-Intensive System, [IEE00]  to establish a conceptual framework and vocabulary for use during the design of software architecture,  to provide detailed guidelines for representing an architectural description, and  to encourage sound architectural design practices.  The IEEE Standard defines an architectural description (AD) as a “a collection of products to document an architecture.”  The description itself is represented using multiple views, where each view is “a representation of a whole system from the perspective of a related set of [stakeholder] concerns.”
  • 7. Architectural Decisions  Architectural description addresses a specific stakeholder concern.  Among multiple views the system architect considers a variety of alternatives and ultimately decides the specific architectural feature that best meet the concern.  Therefore, architecture decisions themselves can be considered to be one view of the architecture. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 7
  • 8. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 8 Architectural Styles  Data-centered architectures  Data flow architectures  Call and return architectures  Object-oriented architectures  Layered architectures Each style describes a system category that encompasses: (1) aEach style describes a system category that encompasses: (1) a set of components (e.g., a database, computational modules)(e.g., a database, computational modules) that perform a function required by a system, (2) athat perform a function required by a system, (2) a set of connectors that enable “communication, coordination andthat enable “communication, coordination and cooperation” among components, (3)cooperation” among components, (3) constraints that definethat define how components can be integrated to form the system, andhow components can be integrated to form the system, and (4)(4) semantic models that enable a designer to understand thethat enable a designer to understand the overall properties of a system by analyzing the knownoverall properties of a system by analyzing the known properties of its constituent parts.properties of its constituent parts.
  • 9. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 9 Data-Centered Architecture
  • 10. 10 Data-Centered Style (continued)  A data store resides at the center of the architecture and is accessed frequently by other components that update, add, delete data within the store  In some case data repository is passive. i.e. client software access the data independent of any changes to the data or actions of other client software  A variation on this approach transforms the repository into a “blackboard” that sends a notification to client software when data of interest to the client changes (More on next slide)
  • 11. 11 Data-Centered Style (continued)  Data-centered architectures promotes integrability i.e. existing components can be changed and new client components added to the architecture without concern about other clients  Client components independently execute processes
  • 12. 12 Data Flow Style Validate Sort Update Report
  • 13. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 13 Data Flow Architecture
  • 14. 14 Data Flow Style • It is applied when input data are to be transformed through a series of computational or manipulative components into o/p data • A pipe and filter pattern has set of components , called filter , connected by pipes that transmits data from one component to the next • Each filter works independently and is designed to expect data input of a certain form, and produces data output of a specified form • Batch sequential approach: This structure accepts a batch of data and then applies a series of sequential components to transform it (More on next slide)
  • 15. 15 Call-and-Return Style Main module Subroutine A Subroutine B Subroutine A-1 Subroutine A-2 Physical layer Data layer Network layer Transport layer Application layer Class WClass V Class X Class Z Class Y
  • 16. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 16 Call and Return Architecture
  • 17. 17 Call-and-Return Style • Has the goal of modifiability and scalability • A number of sub styles exist within this category Categories • Main / sub program architecture: – it decomposes function into a control hierarchy where a “main” program invokes a no of program components , which in turn may invoke still other components • RPC architecture: – the components of main program / sub program architecture are distributed across multiple computers on a network (More on next slide)
  • 18. 18 Object-oriented Architecture • The components of a system encapsulate data and the operations that must be applied to manipulate the data • Communication and coordination between the components are accomplished via message passing.
  • 19. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 19 Layered Architecture
  • 20. 20 Layered system  A number of different layers are defined, each accomplishing operations that progressively become closer to the machine instruction set  At the outer layer, components are used to serve user interface operations  At the inner layer, components perform operating system interfacing  Intermediate layers provides utility services and application software functions
  • 21. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 21 Architectural Patterns  Architectural patterns address an application-specific problem within a specific context and under a set of limitations and constraints.  The pattern proposes an architectural solution that can serve as the basis for architectural design .
  • 22. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 22 Organization and Refinement  Set of design criteria can be used to access an architectural design that is derived  Control: How is control managed within the architecture?  Data: How are data communicated between components? What is a mode of transfer? etc.