Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Design Copyright, 1999 © Jerzy R. Nawrocki Personal Software Process Lecture 8

Similar presentations


Presentation on theme: "Software Design Copyright, 1999 © Jerzy R. Nawrocki Personal Software Process Lecture 8"— Presentation transcript:

1 Software Design Copyright, 1999 © Jerzy R. Nawrocki Personal Software Process Lecture 8

2 J. Nawrocki, PSP, Lecture 8 Plan of the lecture IntroductionIntroduction Conceptual design documentConceptual design document Design rolesDesign roles PSP design phasesPSP design phases Design notationsDesign notations HRT HOODHRT HOOD

3 J. Nawrocki, PSP, Lecture 8 Introduction Design quality: the design contentthe design content the design representationthe design representation Representation -> implementation Design as a learning process Freezing the design

4 J. Nawrocki, PSP, Lecture 8 PSP design framework Gathering the requirements Requirements analysis High-level design Design documentation DesignvalidationDesignvalidation Requirem.negotiationRequirem.negotiation

5 J. Nawrocki, PSP, Lecture 8 Plan of the lecture IntroductionIntroduction Conceptual design documentConceptual design document Design rolesDesign roles PSP design phasesPSP design phases Design notationsDesign notations HRT HOODHRT HOOD

6 J. Nawrocki, PSP, Lecture 8 Conceptual design 1. Study the requirements 2. Produce the overall conceptual design 3. Complete and document the conceptual design 4. Prepare the development plan 5. Check the conceptual design against the likely scenarios of use

7 J. Nawrocki, PSP, Lecture 8 Conceptual design document (1) Conceptual design document (1) Software Development Studio Faculty of Electrical Engineering Poznan University of Technology Project title. Conceptual Design Version: SRSver-1.0x/date by manager1, manager2 Document status: Draft | Submitted | Under revision | Checked | Accepted | Frozen Checked | Accepted | Frozen

8 J. Nawrocki, PSP, Lecture 8 Conceptual design document (1) Conceptual design document (1) 1. Introduction 1.1 Purpose of the document and project’s 1.1 Purpose of the document and project’s stakeholders stakeholders 1.2 Scope of the product 1.2 Scope of the product 1.3 Definitions, acronyms and 1.3 Definitions, acronyms and abbreviations abbreviations 1.4 References 1.4 References 1.5 Overview of the document 1.5 Overview of the document 1.6 History of the document 1.6 History of the document

9 J. Nawrocki, PSP, Lecture 8 Conceptual design document(2) 2. Use scenarios 2.1 Objective Objective Internal architecture 3.1 Introduction 3.2 Component Type Type Component description Component description 3.3 Component Type Type

10 J. Nawrocki, PSP, Lecture 8 Conceptual design document(3) 4. Graphical user interface 4.1 View View 2 Index

11 J. Nawrocki, PSP, Lecture 8 Plan of the lecture IntroductionIntroduction Conceptual design documentConceptual design document Design rolesDesign roles PSP design phasesPSP design phases Design notationsDesign notations HRT HOODHRT HOOD

12 J. Nawrocki, PSP, Lecture 8 Design roles Productmanager Systemengineer Softwareengineer

13 J. Nawrocki, PSP, Lecture 8 Product manager’s information Issues tracking log (a running list of open questions and their resolutions)Issues tracking log (a running list of open questions and their resolutions) Specification of implementation constraints (coding standards, configuration management procedures etc.)Specification of implementation constraints (coding standards, configuration management procedures etc.) Product’s specification (requirements)Product’s specification (requirements) Productmanager

14 J. Nawrocki, PSP, Lecture 8 Product manager’s information Application notes (how the product is to be used)Application notes (how the product is to be used) System-level user scenariosSystem-level user scenarios System constraints (timing, size, security, error handling, interface specification for components)System constraints (timing, size, security, error handling, interface specification for components) Productmanager

15 J. Nawrocki, PSP, Lecture 8 System engineer’s information A description of all the filesA description of all the files A description of system messagesA description of system messages Any special error checks or conditionsAny special error checks or conditions The reasons for the system design choicesThe reasons for the system design choices Systemengineer

16 J. Nawrocki, PSP, Lecture 8 Software designer’s information The software requirements specificationThe software requirements specification A list of all related objects: scope, structure, functions provided, where initialised, where distructedA list of all related objects: scope, structure, functions provided, where initialised, where distructed A description of all external calls and referencesA description of all external calls and references A description of program’s logic (pseudo-code)A description of program’s logic (pseudo-code) Softwareengineer

17 J. Nawrocki, PSP, Lecture 8 Designer’s temptation Anyone would know how to do it. I don’t have to write it down. Consequence: Design must be completed at the implementation phase. Drawback: Doing this can be highly error prone

18 J. Nawrocki, PSP, Lecture 8 Plan of the lecture IntroductionIntroduction Conceptual design documentConceptual design document Design rolesDesign roles PSP design phasesPSP design phases Design notationsDesign notations HRT HOODHRT HOOD

19 J. Nawrocki, PSP, Lecture 8 PSP design phases (1) 1. Define the need (requirements) 2. Define the solution (the system specification) 3. Conceptualise the solution (the system high-level design) 4. Divide up the work (the product specification) 5. Define the product design (product high-level design)

20 J. Nawrocki, PSP, Lecture 8 PSP design phases (2) 6. Break the products into components (the component specifications) 7. Define the component design 8. Break the components into modules (module specifications) 9. Detail the solution (module detailed design) 10. Implement the solution (includes testing)

21 J. Nawrocki, PSP, Lecture 8 Plan of the lecture IntroductionIntroduction Conceptual design documentConceptual design document Design rolesDesign roles PSP design phasesPSP design phases Design notationsDesign notations HRT HOODHRT HOOD

22 J. Nawrocki, PSP, Lecture 8 Design notation Types of design notation: A natural language (e.g. Polish)A natural language (e.g. Polish) Graphical notations (e.g. HRT HOOD)Graphical notations (e.g. HRT HOOD) Mathematical notations (e.g. VDM)Mathematical notations (e.g. VDM) TemplatesTemplates

23 J. Nawrocki, PSP, Lecture 8 Choosing a design method Using PSP collect data about your current design methodsUsing PSP collect data about your current design methods Observe a number of projects. Gather data about the number of defects, their types and fix time.Observe a number of projects. Gather data about the number of defects, their types and fix time. Identify defect types that cause you most troubleIdentify defect types that cause you most trouble Adjust your design methods accordingly or choose a new oneAdjust your design methods accordingly or choose a new one Collect PSP data on a number of projects - your productivity and quality can initially declineCollect PSP data on a number of projects - your productivity and quality can initially decline Make your design notation compatible with the implementation languageMake your design notation compatible with the implementation language

24 J. Nawrocki, PSP, Lecture 8 De Champeaux matrix for PSP Internal External Internal External Static Logic specification Function specification template template template template Dynamic State specification Operational scenario template templates template templates

25 J. Nawrocki, PSP, Lecture 8 Functional specification condition :: action (cond1 :: act1) v (cond2 :: act2) (cond1 v cond2) :: action1  action2 :: action

26 J. Nawrocki, PSP, Lecture 8 Functional specification template Class name: Parent classes: Attributes: Cdata base class ListState (0 to 4) ListPosition (0 to N) ListPosition (0 to N) int Empty() :: return ListState == 0 int Clear() :: set Cdata pointers to null  ListState= 0  ListPosition=0  return 1 ListState= 0  ListPosition=0  return 1 int Last() (ListState==1 v ListState==4) :: return 1 v (ListState==2 v ListState==3):: return 0 v (ListState==2 v ListState==3):: return 0

27 J. Nawrocki, PSP, Lecture 8 Cdata states State Description State Description 0 EmptySet 0 EmptySet 1 First&Only 1 First&Only 2 FirstOfSeveral 2 FirstOfSeveral 3 MiddleOfSeveral 3 MiddleOfSeveral 4 LastOfSeveral 4 LastOfSeveral

28 J. Nawrocki, PSP, Lecture 8 State specification template State: Description: Attributes: EmptySet The set has no members ListState==0 N==0 ListPosition==0 N==0 ListPosition==0 EmptySet Empty v Clear v Last v Pop First&Only Push v AddSet FirstOfSeveral Impossible MiddleOfSeveral Impossible LastOfSeveral Impossible 12345

29 J. Nawrocki, PSP, Lecture 8 Logic specification Done=0 if !Empty if D == first item if D == first item delete first item delete first item reset set pointer and next item pointer reset set pointer and next item pointer Done++ Done++ while !Done  !Last 123 Object: Aset (Cdata) Function: SubtractSet(data D)

30 J. Nawrocki, PSP, Lecture 8 Operational scenario Scenario #1 User objective: To create a new file Scenario objective: To identify program response to incorrect user actions Source Step Action Comment user 1 start program program 2 display main menu request selection request selection user 3 enter selection improper value

31 J. Nawrocki, PSP, Lecture 8 Plan of the lecture IntroductionIntroduction Conceptual design documentConceptual design document Design rolesDesign roles PSP design phasesPSP design phases Design notationsDesign notations HRT HOODHRT HOOD

32 J. Nawrocki, PSP, Lecture 8 HRT-HOOD HOOD= Hierarchical Object-Oriented Design HRT-HOOD= Hard Real-Time HOOD European Space Agency A. Burns, A. Wellings, University of York

33 J. Nawrocki, PSP, Lecture 8 HRT-HOOD Pr Buffor InsertGet Object name Kind Operations

34 J. Nawrocki, PSP, Lecture 8 HRT-HOOD Pr Buffor InsertGet Data

35 J. Nawrocki, PSP, Lecture 8 Metoda HRT-HOOD Kinds of objects: cyclic - C cyclic - C sporadic - S sporadic - S pasive - Pa pasive - Pa protected - Pr protected - Pr active - A active - A Pr Kind

36 J. Nawrocki, PSP, Lecture 8 HRT-HOOD A cyclic object - C period Activated by a clock

37 J. Nawrocki, PSP, Lecture 8 HRT-HOOD Sporadic object - S max frequency Activated by a signal (interrupt)

38 J. Nawrocki, PSP, Lecture 8 HRT-HOOD Passive object - P Activated by another object Joe! Go and and bring me..

39 J. Nawrocki, PSP, Lecture 8 HRT-HOOD Protected - Pr Joe! Go and bring me.. Joe! Send this letter!

40 J. Nawrocki, PSP, Lecture 8 HRT-HOOD X:= Z; X:= X + 1; Z:= X Y:= Z; Y:= Y + 3; Z:= Y X: Y: Z: 7

41 J. Nawrocki, PSP, Lecture 8 HRT-HOOD Protected - Pr Activated by another object + protection mechanism Joe! Go and bring me.. Joe! Send this letter!

42 J. Nawrocki, PSP, Lecture 8 HRT-HOOD Co-operation schemas: Asynchronous - ASERAsynchronous - ASER Loosely synchronous - LSERLoosely synchronous - LSER Highly synchronous - HSERHighly synchronous - HSER

43 J. Nawrocki, PSP, Lecture 8 HRT-HOOD A ReceptionDesk A ReceptionDesk LeaveAKey*TakeAKeyRegisterAProblemPayAGetADocument ASER HSER LSERHSER

44 J. Nawrocki, PSP, Lecture 8 HRT-HOOD S Producer S Consumer InElemOutElem Pr Store *InsertElem*GetElem HSER HSER

45 J. Nawrocki, PSP, Lecture 8 Summary Design phases de Champeaux matrix PSP templates: functional specification state specification logic specification operational scenario Other useful methods: HRT HOOD

46 J. Nawrocki, PSP, Lecture 8 Further readings W.Complak, A.Czajka, J.Nawrocki, HRT- HOOD: metoda projektowania systemów uwarunkowanych czasowo, Informatyka, 1, 1998,

47 J. Nawrocki, PSP, Lecture 8 Quality assessment 1. What is your general impression ? (1 - 6) 2. Was it too slow or too fast ? 3. Did you learn something important to you ? 4. What to improve and how ?


Download ppt "Software Design Copyright, 1999 © Jerzy R. Nawrocki Personal Software Process Lecture 8"

Similar presentations


Ads by Google