Introduction to PSPa – PSPa Design

Introduction to PSPa

Personal Software Process Alternate
PSPa Design

A. Winsor Brown

Presentation Objectives and Outline

PSP Design RepresentationQuality Management Processes: PSP2s

·  PSP2s' code and design reviews

·  PSP's design templates

·  PSP2s' focus on yield management:defect removal and prevention strategies

Cyclic Personal Process – PSP3 & Personal Process Definition & Development

·  Development strategies to support cycle selection

·  Design verification approaches

·  PSP's approach for defining & evolving processes

Outline

PSP2

·  Personal PSP Reviews

-  Code Reviews
-  Design Reviews

·  Design Templates: Four views; used as needed

·  Yield management

-  Defect removal strategies
-  Prevention strategies

·  Design verification approaches

PSP3

·  Design and development strategies

PSPa Methods, Techniques and Technologies

PSP levels

PPMP+PSP Methods, Techniques and Technologies

PSP2 Process – Personal Quality Management

Design Review

Principles

·  Produce designs that can be reviewed.

·  Follow an explicit review strategy.

·  Review the design in stages.

·  Verify logic correctly implements the requirements.

Designs that can be Reviewed A reviewable design has

·  a defined context

·  a precise representation

·  a consistent and clear structure

This suggests that

·  Design’s purpose and function be explicitly stated

·  Criteria for design completeness

·  Design is structured in logical elements

Design

The Design Framework

Requirements-Specification-Design Cycle Fig. 10.4, pg. 320

System Development Framework

WH Lect 10 page 10: The PSP Design Process PSP & Design (cont.)

PSP focus: design content/representationwhen completed because

·  Provides criteria for determining when a given design phase is completed

·  Provides a basis for reviewing the design

·  Capable of supporting multiple methods:since there is no single best design method; must support all

Levels of design

·  Obvious design concepts may not be obvious during implementation

·  Reconstructing design context during implementation is time consuming and error prone

·  To save time and prevent defects, the design should be precisely recorded when it is conceived

PSP & Design (cont.) WH Lect 10 page 13

Design Representation – Requirements The design representation must

·  precisely define all significant design aspects

·  include all important details

·  communicate the designers’ intent

·  help identify design problems and omissions

Design Representation – Requirements Also

·  the design should be compact and easy to use

·  the design topics must be readily located

·  redundancy must be avoided

PSP & Design (cont.)

The Design Dimensions

PSP DesignCritical Information for Implementation

The critical materials that must be Provided by the designers before implementation

·  a clear statement of the program’s logic

·  a specification of all external calls and references

·  a list of all external variables, parameters, and constants

·  a specification for all related objects and classes

·  a picture of where and how the program fits into the system

·  a structural view of the product

Design (cont.)

Design Templates: WH Lect 10 page 20 Four design templates are used in PSP

·  Logic specification template - static, internal

·  State specification template - dynamic, internal

·  Functional specification template - dynamic and static, external

·  Operational scenario template - dynamic, external

Examples shown later

PSP & Design (cont.)

Template Dimensions

The Design Hierarchy

Design: The Implementation Hierarchy

Original PSP Design Notation

Class & Set Properties: Logical Operators – Mathematical Notation

Original PSP Design Notation (cont.)

Other Useful Basic Mathematical Symbols

Functional Specification Example

[Note: Original PSP Notation]Template WH Lect 10 page 27

Example State Machine WH Lect 10 page 30

Partial State Specification WH Lect 10 page 31

[Note: Original PSP Notation]

Design Verification (cont.)

Watt's Class Exercise – State Diagram WH Lect 12 page 28

PSP Original Design Verification (cont.)

Exercise – State Template: WH Lect 12 page 29

The "Personal Software Process" PSPPSP3 – Cyclic Development Lect 11 Page 36

PSP3: The cyclic PSP provides

·  A framework for using a cyclic development strategy

·  Used to develop modest sized programs.

·  A larger process

·  Contains multiple PSP2.1-like cyclic elements

High-overhead PSP phases done once for total program

·  Requirements

·  Planning

·  Postmortem

PSP3 – Cyclic Development: Process Flow

PSP3 – Cyclic Development: Process Flow with Details

PSP3 Design & Development WH Lect 11 page 28 & 29

Development Strategies

·  Required when system is too large to be built in one piece

-  it must then be partitioned into elements
-  these elements must then be developed
-  the developed elements are then integrated into the finished system

·  The strategy Provides

-  definition of the smaller elements
-  establishes the order in which they are developed
-  establishes the way in which they are integrated

With appropriate strategy & properly developed elements

-  the development process will scale up
-  the total development is the sum of the parts plus system design and integration

PSP3 Design & Development (cont.)

  Some Development Strategies WH Lect 11 page 29

  Many development strategies are possible.

  The objective is to incrementally build the system so as to identify key problems at the earliest point in the process.

  Some example strategies are

·  the progressive strategy

·  the functional enhancement strategy

·  the fast path enhancement strategy

·  the dummy strategy

PSP3 Design & Development (cont.)

  The Progressive Strategy WH Lect 11 page 29

PSP3 Design & Development (cont.)

  The Functional Enhancement Strategy WH L11 p29

PSP3 Design & Development (cont.)

  The Fast Path Enhancement Strategy WH L11 p29

PSP3 Design & Development (cont.)

  The Dummy Strategy WH Lect 11 page 29

© 1903 A. Winsor Brown BES/MSEE PSPa--DesignV3.DOC–5 v1.0 - 04/09/03