Download presentation
Presentation is loading. Please wait.
Published byLarry Wesson Modified over 9 years ago
1
Software Design Copyright, 1999 © Jerzy R. Nawrocki Personal Software Process Lecture 8 Jerzy.Nawrocki@put.poznan.plwww.cs.put.poznan.pl/jnawrocki/mse/psp/
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 1 2.2 Objective 2... 3. Internal architecture 3.1 Introduction 3.2 Component 1 3.2.1 Type 3.2.1 Type 3.2.2 Component description 3.2.2 Component description 3.3 Component 2 3.3.1 Type 3.3.1 Type
10
J. Nawrocki, PSP, Lecture 8 Conceptual design document(3) 4. Graphical user interface 4.1 View 1 4.2 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 1990-1995 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, 42 - 47.
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 ?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.