Software Architecture and Specification

advertisement
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


Design Structure



May derive additional requirements to
complete or disambiguate processing model
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 of recomposition in the solution
domain
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
Pspec 3
shall display name of
each file processed
displayHeader
3
Pspec 1
shall accept a sequence
of filename patterns and
commands
TOP Executive
1
commands
filename,
parameters
file handle,
processCL
5
Pspec 5
shall recognize -n
command, set number of
lines to n, otherwise set
number of lines to 5
displayFile
4
Pspec 4
shall display first
few lines of file text
B-Specification Structure
1.
A r c h it e c t u r e :
u s e s , t a s k s , v ie w s ,
o b je c t s , e v e n t s , in t e r a c t io n s
2.
R e fe r e n c e d D o c u m e n ts
3.
R e q u ir e m e n t s :
D a t a F lo w D ia g r a m s
P r o c e s s S p e c if ic a t io n s
4.
D a t a D ic t io n a r y :
D a t a F lo w N a m e s , D e s c r ip t io n s
5.
R e q u ir e m e n t s T r a c a b ilit y M a t r ix :
B - r e q , A - r e q o r d e r iv e d , d e s c r ip t io n
6.
N o te s
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
Download