Software Architecture and Specification Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga Fall 2010.

Slides:



Advertisements
Similar presentations
Software Design Fundamentals
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
S Y S T E M S E N G I N E E R I N G.
Chapter 2 – Software Processes
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Design Concepts and Principles
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
Software Design Deriving a solution which satisfies software requirements.
Data Flow Diagrams Levelling Them; Process Modelling Using Function Decomposition CSE Information Systems 1.
Software Requirements Specification Quality Measures Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga Fall 2009.
CSE 784 Software Studio Phil Pratt-Szeliga Fall 2010 Slides Derived From: Dr. Fawcett.
CSE 111: Object Oriented Design. Design “To program is human but to design is divine” (WEH)
Chapter 7 Using Data Flow Diagrams
Analysis Concepts and Principles
Chapter 9 Using Data Flow Diagrams
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
SE 555 Software Requirements & Specification Requirements Analysis.
Lesson-21Process Modeling Define systems modeling and differentiate between logical and physical system models. Define process modeling and explain its.
IV&V Facility Model-based Design Verification IVV Annual Workshop September, 2009 Tom Hempler.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Design Description (SDD) Diagram Samples
6 Systems Analysis and Design in a Changing World, Fourth Edition.
Traditional Approach to Requirements Data Flow Diagram (DFD)
Chapter 6: The Traditional Approach to Requirements
System Analysis Overview Document functional requirements by creating models Two concepts help identify functional requirements in the traditional approach.
Systems Analysis and Design in a Changing World, Fifth Edition
PROCESS MODELING Chapter 8 - Process Modeling
Chapter 6 The Traditional Approach to Requirements
The Software Development Life Cycle: An Overview
Chapter 10 Architectural Design
Systems Analysis and Design in a Changing World, Fifth Edition
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Lesson 7 Guide for Software Design Description (SDD)
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
An Introduction to Software Architecture
1 Lecture 5.2a: SEF Ch 8 SE Outputs Dr. John MacCarthy UMBC CMSC 615 Fall, 2006.
CS 360 Lecture 6.  A model is a simplification of reality  We build models to better understand the system being developed.  We build models of complex.
Engineering System Design
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
SOFTWARE DESIGN.
Large Scale Software Systems Derived from Dr. Fawcett’s Notes Phil Pratt-Szeliga Fall 2010.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
1 6 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 6 The Traditional Approach to Requirements.
Design Concepts By Deepika Chaudhary.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Software Architecture and Specification 2 Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga Fall 2009.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
Context Process0. student Data Flow Diagram Progression.
CS223: Software Engineering
6 Systems Analysis and Design in a Changing World, Fourth Edition.
SOFTWARE DESIGN & SOFTWARE ENGINEERING Software design is a process in which data, program structure, interface and their details are represented by well.
 System Requirement Specification and System Planning.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
CSE784 – Software Studio Jim Fawcett Fall 2002.
Chapter 6 The Traditional Approach to Requirements.
Chapter ? Quality Assessment
Architecture Concept Documents
Lecture 9- Design Concepts and Principles
CSE784 – Software Studio Jim Fawcett Fall 2006.
Lecture 9- Design Concepts and Principles
An Introduction to Software Architecture
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Chapter 9 Architectural Design.
Chapter 3 Software Architecture and Specification
Software Architecture
Presentation transcript:

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 B- Spec 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 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 Architectural Concept B-Specification C-Specification Integration & Test Qualification Test logical behavioral model of software system organizing principles high level structure design issues logical models of major processing components with data flows logical process models --> logical modules --> functions, classes --> physical modules physical modules --> physical programs --> physical system logical behavioral model of software system decomposition in application domain Re composition in solution domain

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 TOP Executive 1 getUniqueFileName 2 displayHeader 3 displayFile 4 file pattern filename file handle, parameters filename, commands filename file handle, number of lines header line file text filename patterns, commands error message file handle processCL 5 filename Pspec 2 derived requirement: shall find names of files in default directory that match a given filename pattern Pspec 1 shall accept a sequence of filename patterns and commands Pspec 3 shall display name of each file processed Pspec 4 shall display first few lines of file text Pspec 5 shall recognize -n command, set number of lines to n, otherwise set number of lines to 5

B-Specification Structure

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