SlideShare a Scribd company logo
Software Architecture
and Specification
Derived from Dr. Fawcett’s slides
Phil Pratt-Szeliga
Fall 2010
Definitions - Synonyms






A Level Specifications
 Customer’s Requirement Specification
 A Spec
 Engineering Specifications
B Level Specifications
 Developer’s Requirement Specification
 B Spec
 Software Requirements Specification (SRS)
C Level Specifications
 “As Built” Product Specification
 C Spec
 Software Design Document (SDD)
Software Architecture




Architectural Model = Top level structure + organizing
principles
 Top level structure: partitioning system into high level
components (usually resulting in modules)
 Organizing principles: a few concepts and design
decisions which set the course of implementation
 The model includes an operational description of
each component and the system as a whole
 Critical Issues
Architectural Model Purpose:
 Help focus on dominant design mechanisms
 Channel design activities toward implementation
Software Architecture



Architectural Model bridges between
requirements and implementation
An initial architectural model is:
 Created

for the contract’s proposal
 Elaborated in requirements analysis
 Completed during preliminary design



All requirements analyses should result in
an architectural model
All designs should begin with a top down
phase, guided by the architectural model
Software Architecture
Life Cycle
- Developed during requirements
analysis
- Guides top level design and evolves
with design
- Should be fairly static during
implementation and testing
Software Components


Software Components: Parts of the
physical structure of a software
system
 Programs

are components of a
software system
 Modules are components of a
program
 Lower level modules, classes and
functions are components of a module
Software Components


The representation of a software
component consists of:
 Logical

Model: summary description of its
operation
 Behaviors: specific operations that a
component performs. Behaviors are
characterized by:
• Pre and Post conditions
• Invariants
 State:




values of internal data

Logical Models and Behaviors defined in BSpec
State and Control defined in C-Spec
Decomposition




All but the smallest and simplest software
systems need to be decomposed into
partitions
Partitioning is based on one or more
criteria:
 Logical

– identify important objects and the
processing for each
 Data Driven – decompose processing to
minimize data coupling. Promotes
robustness under change
 Requirements Design – Decompose along
A-Spec boundaries. Makes qualification
easier and boosts customer confidence
Decomposition


Partitioning is based on one or more
criteria:
 Usability

– Configure processing for simple,
model driven user interfaces
 Reuse – Partition into components so that
boundaries match existing software to be
reused
 Device Independence – Isolate all platform
processing
 Performance – Minimize data transport,
contention for resources, operator
intervention and balance workload in
distributed systems
Breaking Down


Software Requirements Analysis and
preliminary design are processes of
decomposition in the application domain
 Requirements

decomposed into processes

and data flows
 Process – logical model of some activity
necessary to satisfy part of requirements
 Data flows – represent information
necessary to sustain activities allocated to
the process
Breaking Down


Each process is allocated part of
application’s requirements model
 May

derive additional requirements to
complete or disambiguate processing model



Design Structure
 Developed

by associating major processes
with modules




Public interface of major modules represent
associated process and data flow
Each stage of decomposition needs to
allocate requirements to its component
parts to prove correctness of the design
Building Up


Detailed design and testing
 Process

domain







of recomposition in the solution

A logical module becomes a physical
module when its implementation is filled in
using functions and private data
Each function and class is tested for
conformance to its process model
Modules are populated in order of their
dependencies
This process continues until all system
requirements are met
Breaking Down, Building Up
A-Specification

logical behavioral model of
software system

Architectural Concept

organizing principles
high level structure
design issues

decomposition
in application domain
B-Specification

C-Specification
Re composition
in solution domain

logical models of
major processing
components
with data flows
logical process models
--> logical modules
--> functions, classes
--> physical modules

Integration & Test

physical modules
--> physical programs
--> physical system

Qualification Test

logical behavioral model of
software system
Requirements Specifications


Specification Purpose:
 Describe

the contractual obligations of the
developer to the customer
 Describe the allowable context –
programming language, platform, testing
scope, required reviews, schedule


Specification Goals:
 Completeness

- must describe all processing
 Unambiguous – must clearly state each
requirement
 Brief – no redundancy or extraneous
descriptors (no adjectives, no adverbs)
Requirements Specifications


Specification Topics:
 Requirements

should describe the
functioning and performance of a software
component but should not describe design
 For example:
• Good: The swarm computing module shall accept
commands from peers. The commands that it
shall accept are create variable, set value of
variable and add two variables.
• Bad: The swarm computing module shall have a
blocking queue for each peer and then merge the
communication from the blocking queue of each
peer into another blocking queue.
 Information

flow is shown in data flow
diagrams but not specified because the flow
may change
A-Level Requirements
Specification




Written by the customer often with
significant help from developers
Describes requirements from customer’s
point of view
Defines what software must do to satisfy
developer’s obligations to the customer
 Usually

accompanied with the required
schedule, reviews and process requirements
 Each “shall” in the A-Spec represents a
contractually binding requirement which is
demonstrated during Qualification Testing
A-Level Requirements
Specification


A-Level Specification Contains
 Logical

description of software’s operation
 A context diagram which shows developed
software as one process with external inputs
and outputs shown as rectangles
 A function and performance requirements
section
 Data dictionary which summarizes all
information flow into and out of the
developed software, only if it is quite
complex
A-Level Requirements
Specification Example


Duplicates A-Spec
 On

website – lecture 1
B-Level Requirements
Specification






Written by the developers, approved by the
customer
Describes the software requirements from
developer’s point of view
Describes contractual requirements on
software functionality and performance in
terms of architectural components
The logical structure and behavior of each
component is specified along with the
interfaces between each
B-Level Requirements
Specification


A B-Level Specification consists of:
 Architecture

Description – logical descriptions for
each software component’s operation
 Top Level Modules
 Dataflow diagrams – show the information
transferred between components
 PSpecs – describe the inputs, processing and
outputs for each process (e.g. public interface)
• Processing descriptions contain the requirements
• The basis of qualification testing
 Data

dictionary (next slide)
 Requirements Traceability Matrix (next slide)
B-Level Requirements
Specification
Data dictionary – lists each data flow
between components and to/from the
environment
 Requirement Traceability Matrix –
shows the allocation and derivation
relationships between A and B spec
requirements

B-Level Requirements
Specification


DFDs are constructed in a hierarchical
manner
 PSpec

matches a DFD process
 PSpec contains a HIPO (hierarchical
input, processing, output) section
which becomes the prologue for the
corresponding module which
implements it
Data Flow Diagram Example
Pspec 2
derived requirement:
shall find names of files in
default directory that match a
given filename pattern
getUniqueFileName
2

file
na
me

l
er
ad
he

s,
rn
tte
pa s
e nd
m a
na mm
file co

file
pat
ter

n

displayHeader
3

e
in

me
na
file

Pspec 1
shall accept a sequence
of filename patterns and
commands

TOP Executive
1

commands
filename,

parameters
file handle,

f
nu ile h
mb an
er dle
,
of
lin
es
file

processCL
5

Pspec 4
shall display first
few lines of file text
er
ro
r

xt
te

m
es
sa
ge

file

ha
nd
le

xt
te

displayFile
4

me
na
file

Pspec 5
shall recognize -n
command, set number of
lines to n, otherwise set
number of lines to 5
file

Pspec 3
shall display name of
each file processed
B-Specification Structure
1.

Architecture:
uses, tasks, views,
objects, events, interactions

2.

Referenced Documents

3.

Requirements:
Data Flow Diagrams
Process Specifications

4.

Data Dictionary:
Data Flow Names, Descriptions

5.

Requirements Tracability Matrix:
B-req, A-req or derived, description

6.

Notes
B-Level Specification
Example


Duplicates B-Spec
 On

website, lecture 1
B-Specification Hints






Specify what the software shall do, not how
Make testable requirements.
Be complete and unambiguous with shalls
Explicitly use the word “shall” for something
that must be done
Effective use of Context and DFD
Diagrams:
 Balance

– the outputs of the context diagram
are matched to the inputs of the top level
DFD. the inputs to a top level process match
up to a diagram of a lower level process
 Leveling – creating a hierarchy of data flow
diagrams



Numbers on DFD Processes must match
PSpecs
DD and RTM must be complete

More Related Content

What's hot

Software design principles
Software design principlesSoftware design principles
Software design principlesRitesh Singh
 
EC8791 Requirement-Specifications-Quality assurance techniques
EC8791 Requirement-Specifications-Quality assurance techniquesEC8791 Requirement-Specifications-Quality assurance techniques
EC8791 Requirement-Specifications-Quality assurance techniques
RajalakshmiSermadurai
 
Unit 3 3 architectural design
Unit 3 3 architectural designUnit 3 3 architectural design
Unit 3 3 architectural designHiren Selani
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
Darshit Metaliya
 
SWE-401 - 7. Software Design Strategies
SWE-401 - 7. Software Design StrategiesSWE-401 - 7. Software Design Strategies
SWE-401 - 7. Software Design Strategies
ghayour abbas
 
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
Dhivyaa C.R
 
Software Design and Modularity
Software Design and ModularitySoftware Design and Modularity
Software Design and Modularity
Danyal Ahmad
 
Unit v -Construction and Evaluation
Unit v -Construction and EvaluationUnit v -Construction and Evaluation
Unit v -Construction and Evaluation
Dhivyaa C.R
 
4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-daniellerouxIBM
 
Strategy of software design
Strategy of software designStrategy of software design
Strategy of software design
Self-employed
 
Design concepts and design principles
Design concepts and design principlesDesign concepts and design principles
Design concepts and design principles
Dhruvin Nakrani
 
Software design presentation
Software design presentationSoftware design presentation
Software design presentation
bit allahabad
 
Unit i software design principles 9
Unit i software design principles 9Unit i software design principles 9
Unit i software design principles 9
kiruthikamurugesan2628
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniques
nimmik4u
 
Design Principles
Design PrinciplesDesign Principles
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software Engineering
Purvik Rana
 
Design Engineering and Design concepts
Design Engineering and Design conceptsDesign Engineering and Design concepts
Design Engineering and Design concepts
JigyasaAgrawal7
 

What's hot (20)

Software design principles
Software design principlesSoftware design principles
Software design principles
 
EC8791 Requirement-Specifications-Quality assurance techniques
EC8791 Requirement-Specifications-Quality assurance techniquesEC8791 Requirement-Specifications-Quality assurance techniques
EC8791 Requirement-Specifications-Quality assurance techniques
 
Unit 3 3 architectural design
Unit 3 3 architectural designUnit 3 3 architectural design
Unit 3 3 architectural design
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
SWE-401 - 7. Software Design Strategies
SWE-401 - 7. Software Design StrategiesSWE-401 - 7. Software Design Strategies
SWE-401 - 7. Software Design Strategies
 
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
Quality attributes in software architecture by Dr.C.R.Dhivyaa, Assistant prof...
 
Software Design and Modularity
Software Design and ModularitySoftware Design and Modularity
Software Design and Modularity
 
Unit 5
Unit 5Unit 5
Unit 5
 
Software design
Software designSoftware design
Software design
 
Unit v -Construction and Evaluation
Unit v -Construction and EvaluationUnit v -Construction and Evaluation
Unit v -Construction and Evaluation
 
4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux
 
Strategy of software design
Strategy of software designStrategy of software design
Strategy of software design
 
Design concepts and design principles
Design concepts and design principlesDesign concepts and design principles
Design concepts and design principles
 
Software design presentation
Software design presentationSoftware design presentation
Software design presentation
 
Unit i software design principles 9
Unit i software design principles 9Unit i software design principles 9
Unit i software design principles 9
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniques
 
Design Principles
Design PrinciplesDesign Principles
Design Principles
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software Engineering
 
Design techniques
Design techniquesDesign techniques
Design techniques
 
Design Engineering and Design concepts
Design Engineering and Design conceptsDesign Engineering and Design concepts
Design Engineering and Design concepts
 

Similar to Pressman ch-11-component-level-design

SE UNIT 2.pdf
SE UNIT 2.pdfSE UNIT 2.pdf
SE UNIT 2.pdf
udhayaveenaa
 
CS8494 SOFTWARE ENGINEERING Unit-2
CS8494 SOFTWARE ENGINEERING Unit-2CS8494 SOFTWARE ENGINEERING Unit-2
CS8494 SOFTWARE ENGINEERING Unit-2
SIMONTHOMAS S
 
Software architecture
Software architectureSoftware architecture
Software architecture
Ahmad Raza Aslam
 
Hirschmann: Automotive SPICE Requirements for development process and tools
Hirschmann: Automotive SPICE Requirements for development process and tools Hirschmann: Automotive SPICE Requirements for development process and tools
Hirschmann: Automotive SPICE Requirements for development process and tools
Intland Software GmbH
 
Sw Requirements Engineering
Sw Requirements EngineeringSw Requirements Engineering
Sw Requirements Engineeringjonathan077070
 
Using Doors® And Taug2® To Support A Simplified
Using Doors® And Taug2® To Support A SimplifiedUsing Doors® And Taug2® To Support A Simplified
Using Doors® And Taug2® To Support A Simplified
cbb010
 
DoDAF Overview Using Innoslate Webinar
DoDAF Overview Using Innoslate WebinarDoDAF Overview Using Innoslate Webinar
DoDAF Overview Using Innoslate Webinar
Elizabeth Steiner
 
Software Development Process
Software Development ProcessSoftware Development Process
Software Development Process
SabahtHussein
 
Software Development Process
Software Development ProcessSoftware Development Process
Software Development Process
SabahtHussein
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
UMA PARAMESWARI
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
UMA PARAMESWARI
 
Overview of DoDAF with Innoslate
Overview of DoDAF with InnoslateOverview of DoDAF with Innoslate
Overview of DoDAF with Innoslate
Elizabeth Steiner
 
Technical Architecture
Technical ArchitectureTechnical Architecture
Technical Architecture
scmiyer
 
Ch5 software imprementation1.0
Ch5 software imprementation1.0Ch5 software imprementation1.0
Ch5 software imprementation1.0Kittitouch Suteeca
 
VTU - MIS Module 4 - SDLC
VTU - MIS Module 4 - SDLCVTU - MIS Module 4 - SDLC
VTU - MIS Module 4 - SDLC
Priya Diana Mercy
 
Ssad system design
Ssad system designSsad system design
Ssad system design
Ravi Shekhar
 
Software Requirements
Software RequirementsSoftware Requirements
Software RequirementsBala Ganesh
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software development
Pratik Devmurari
 
Embedded system
Embedded systemEmbedded system
Embedded system
mangal das
 

Similar to Pressman ch-11-component-level-design (20)

SE UNIT 2.pdf
SE UNIT 2.pdfSE UNIT 2.pdf
SE UNIT 2.pdf
 
CS8494 SOFTWARE ENGINEERING Unit-2
CS8494 SOFTWARE ENGINEERING Unit-2CS8494 SOFTWARE ENGINEERING Unit-2
CS8494 SOFTWARE ENGINEERING Unit-2
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Hirschmann: Automotive SPICE Requirements for development process and tools
Hirschmann: Automotive SPICE Requirements for development process and tools Hirschmann: Automotive SPICE Requirements for development process and tools
Hirschmann: Automotive SPICE Requirements for development process and tools
 
Sw Requirements Engineering
Sw Requirements EngineeringSw Requirements Engineering
Sw Requirements Engineering
 
Using Doors® And Taug2® To Support A Simplified
Using Doors® And Taug2® To Support A SimplifiedUsing Doors® And Taug2® To Support A Simplified
Using Doors® And Taug2® To Support A Simplified
 
DoDAF Overview Using Innoslate Webinar
DoDAF Overview Using Innoslate WebinarDoDAF Overview Using Innoslate Webinar
DoDAF Overview Using Innoslate Webinar
 
Software Development Process
Software Development ProcessSoftware Development Process
Software Development Process
 
Software Development Process
Software Development ProcessSoftware Development Process
Software Development Process
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Overview of DoDAF with Innoslate
Overview of DoDAF with InnoslateOverview of DoDAF with Innoslate
Overview of DoDAF with Innoslate
 
10 srs
10 srs10 srs
10 srs
 
Technical Architecture
Technical ArchitectureTechnical Architecture
Technical Architecture
 
Ch5 software imprementation1.0
Ch5 software imprementation1.0Ch5 software imprementation1.0
Ch5 software imprementation1.0
 
VTU - MIS Module 4 - SDLC
VTU - MIS Module 4 - SDLCVTU - MIS Module 4 - SDLC
VTU - MIS Module 4 - SDLC
 
Ssad system design
Ssad system designSsad system design
Ssad system design
 
Software Requirements
Software RequirementsSoftware Requirements
Software Requirements
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software development
 
Embedded system
Embedded systemEmbedded system
Embedded system
 

Recently uploaded

1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
JosvitaDsouza2
 
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBCSTRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
kimdan468
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
vaibhavrinwa19
 
Multithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race conditionMultithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race condition
Mohammed Sikander
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
TechSoup
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
EduSkills OECD
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
DhatriParmar
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
siemaillard
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
TechSoup
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
MysoreMuleSoftMeetup
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
timhan337
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
Pavel ( NSTU)
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
tarandeep35
 
A Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptxA Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptx
thanhdowork
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
Jisc
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
DeeptiGupta154
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
Vikramjit Singh
 
Chapter -12, Antibiotics (One Page Notes).pdf
Chapter -12, Antibiotics (One Page Notes).pdfChapter -12, Antibiotics (One Page Notes).pdf
Chapter -12, Antibiotics (One Page Notes).pdf
Kartik Tiwari
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
Peter Windle
 

Recently uploaded (20)

1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
 
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBCSTRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
 
Multithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race conditionMultithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race condition
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
 
A Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptxA Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptx
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
 
Chapter -12, Antibiotics (One Page Notes).pdf
Chapter -12, Antibiotics (One Page Notes).pdfChapter -12, Antibiotics (One Page Notes).pdf
Chapter -12, Antibiotics (One Page Notes).pdf
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
 

Pressman ch-11-component-level-design

  • 1. Software Architecture and Specification Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga Fall 2010
  • 2. Definitions - Synonyms    A Level Specifications  Customer’s Requirement Specification  A Spec  Engineering Specifications B Level Specifications  Developer’s Requirement Specification  B Spec  Software Requirements Specification (SRS) C Level Specifications  “As Built” Product Specification  C Spec  Software Design Document (SDD)
  • 3. Software Architecture   Architectural Model = Top level structure + organizing principles  Top level structure: partitioning system into high level components (usually resulting in modules)  Organizing principles: a few concepts and design decisions which set the course of implementation  The model includes an operational description of each component and the system as a whole  Critical Issues Architectural Model Purpose:  Help focus on dominant design mechanisms  Channel design activities toward implementation
  • 4. Software Architecture   Architectural Model bridges between requirements and implementation An initial architectural model is:  Created for the contract’s proposal  Elaborated in requirements analysis  Completed during preliminary design   All requirements analyses should result in an architectural model All designs should begin with a top down phase, guided by the architectural model
  • 5. Software Architecture Life Cycle - Developed during requirements analysis - Guides top level design and evolves with design - Should be fairly static during implementation and testing
  • 6. Software Components  Software Components: Parts of the physical structure of a software system  Programs are components of a software system  Modules are components of a program  Lower level modules, classes and functions are components of a module
  • 7. Software Components  The representation of a software component consists of:  Logical Model: summary description of its operation  Behaviors: specific operations that a component performs. Behaviors are characterized by: • Pre and Post conditions • Invariants  State:   values of internal data Logical Models and Behaviors defined in BSpec State and Control defined in C-Spec
  • 8. Decomposition   All but the smallest and simplest software systems need to be decomposed into partitions Partitioning is based on one or more criteria:  Logical – identify important objects and the processing for each  Data Driven – decompose processing to minimize data coupling. Promotes robustness under change  Requirements Design – Decompose along A-Spec boundaries. Makes qualification easier and boosts customer confidence
  • 9. Decomposition  Partitioning is based on one or more criteria:  Usability – Configure processing for simple, model driven user interfaces  Reuse – Partition into components so that boundaries match existing software to be reused  Device Independence – Isolate all platform processing  Performance – Minimize data transport, contention for resources, operator intervention and balance workload in distributed systems
  • 10. Breaking Down  Software Requirements Analysis and preliminary design are processes of decomposition in the application domain  Requirements decomposed into processes and data flows  Process – logical model of some activity necessary to satisfy part of requirements  Data flows – represent information necessary to sustain activities allocated to the process
  • 11. Breaking Down  Each process is allocated part of application’s requirements model  May derive additional requirements to complete or disambiguate processing model  Design Structure  Developed by associating major processes with modules   Public interface of major modules represent associated process and data flow Each stage of decomposition needs to allocate requirements to its component parts to prove correctness of the design
  • 12. Building Up  Detailed design and testing  Process domain     of recomposition in the solution A logical module becomes a physical module when its implementation is filled in using functions and private data Each function and class is tested for conformance to its process model Modules are populated in order of their dependencies This process continues until all system requirements are met
  • 13. Breaking Down, Building Up A-Specification logical behavioral model of software system Architectural Concept organizing principles high level structure design issues decomposition in application domain B-Specification C-Specification Re composition in solution domain logical models of major processing components with data flows logical process models --> logical modules --> functions, classes --> physical modules Integration & Test physical modules --> physical programs --> physical system Qualification Test logical behavioral model of software system
  • 14. Requirements Specifications  Specification Purpose:  Describe the contractual obligations of the developer to the customer  Describe the allowable context – programming language, platform, testing scope, required reviews, schedule  Specification Goals:  Completeness - must describe all processing  Unambiguous – must clearly state each requirement  Brief – no redundancy or extraneous descriptors (no adjectives, no adverbs)
  • 15. Requirements Specifications  Specification Topics:  Requirements should describe the functioning and performance of a software component but should not describe design  For example: • Good: The swarm computing module shall accept commands from peers. The commands that it shall accept are create variable, set value of variable and add two variables. • Bad: The swarm computing module shall have a blocking queue for each peer and then merge the communication from the blocking queue of each peer into another blocking queue.  Information flow is shown in data flow diagrams but not specified because the flow may change
  • 16. A-Level Requirements Specification    Written by the customer often with significant help from developers Describes requirements from customer’s point of view Defines what software must do to satisfy developer’s obligations to the customer  Usually accompanied with the required schedule, reviews and process requirements  Each “shall” in the A-Spec represents a contractually binding requirement which is demonstrated during Qualification Testing
  • 17. A-Level Requirements Specification  A-Level Specification Contains  Logical description of software’s operation  A context diagram which shows developed software as one process with external inputs and outputs shown as rectangles  A function and performance requirements section  Data dictionary which summarizes all information flow into and out of the developed software, only if it is quite complex
  • 18. A-Level Requirements Specification Example  Duplicates A-Spec  On website – lecture 1
  • 19. B-Level Requirements Specification     Written by the developers, approved by the customer Describes the software requirements from developer’s point of view Describes contractual requirements on software functionality and performance in terms of architectural components The logical structure and behavior of each component is specified along with the interfaces between each
  • 20. B-Level Requirements Specification  A B-Level Specification consists of:  Architecture Description – logical descriptions for each software component’s operation  Top Level Modules  Dataflow diagrams – show the information transferred between components  PSpecs – describe the inputs, processing and outputs for each process (e.g. public interface) • Processing descriptions contain the requirements • The basis of qualification testing  Data dictionary (next slide)  Requirements Traceability Matrix (next slide)
  • 21. B-Level Requirements Specification Data dictionary – lists each data flow between components and to/from the environment  Requirement Traceability Matrix – shows the allocation and derivation relationships between A and B spec requirements 
  • 22. B-Level Requirements Specification  DFDs are constructed in a hierarchical manner  PSpec matches a DFD process  PSpec contains a HIPO (hierarchical input, processing, output) section which becomes the prologue for the corresponding module which implements it
  • 23. Data Flow Diagram Example Pspec 2 derived requirement: shall find names of files in default directory that match a given filename pattern getUniqueFileName 2 file na me l er ad he s, rn tte pa s e nd m a na mm file co file pat ter n displayHeader 3 e in me na file Pspec 1 shall accept a sequence of filename patterns and commands TOP Executive 1 commands filename, parameters file handle, f nu ile h mb an er dle , of lin es file processCL 5 Pspec 4 shall display first few lines of file text er ro r xt te m es sa ge file ha nd le xt te displayFile 4 me na file Pspec 5 shall recognize -n command, set number of lines to n, otherwise set number of lines to 5 file Pspec 3 shall display name of each file processed
  • 24. B-Specification Structure 1. Architecture: uses, tasks, views, objects, events, interactions 2. Referenced Documents 3. Requirements: Data Flow Diagrams Process Specifications 4. Data Dictionary: Data Flow Names, Descriptions 5. Requirements Tracability Matrix: B-req, A-req or derived, description 6. Notes
  • 26. B-Specification Hints      Specify what the software shall do, not how Make testable requirements. Be complete and unambiguous with shalls Explicitly use the word “shall” for something that must be done Effective use of Context and DFD Diagrams:  Balance – the outputs of the context diagram are matched to the inputs of the top level DFD. the inputs to a top level process match up to a diagram of a lower level process  Leveling – creating a hierarchy of data flow diagrams   Numbers on DFD Processes must match PSpecs DD and RTM must be complete