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

Slides:



Advertisements
Similar presentations
Extreme Programming Copyright, 1999 © Jerzy R. Nawrocki Personal Software Process Lecture.
Advertisements

Effort and Schedule Estimation Copyright, 1999 © Jerzy R. Nawrocki Personal Software.
Configuration Management
Planning at CMM level 2 Copyright, 2000 © Jerzy R. Nawrocki Requirements Engineering.
Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Personal Software Process Lecture.
Software Quality Assurance Plan
The Baseline Personal Process Copyright, 1999 © Jerzy R. Nawrocki Jerzy Nawrocki Personal Software Process Lecture 3.
Procedures for CMM Level 2 Copyright, 2000 © Jerzy R. Nawrocki Quality Management.
CS 411W - Notes Product Development Documentation.
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
RequisitePro (1) Copyright, 2001 © Jerzy R. Nawrocki Quality Management Lecture.
Quality Assurance Copyright, 2002 © Jerzy R. Nawrocki Quality Management Auxiliary.
July 11 th, 2005 Software Engineering with Reusable Components RiSE’s Seminars Sametinger’s book :: Chapters 16, 17 and 18 Fred Durão.
8/28/2005ECEN5543 Req Elicitation1 Targets of Requirements Engineering ECEN 5543 SW Engineering of Standalone Programs University of Colorado, Boulder.
1 REQUIREMENTS ENGINEERING and SYSTEMS ANALYSIS Elements and Definitions.
Configuration Management Avoiding Costly Confusion mostly stolen from Chapter 27 of Pressman.
Chapter 6– Artifacts of the process
CS 4310: Software Engineering Lecture 3 Requirements and Design.
Rational Suite and CMM Level 2 Copyright, 2000 © Jerzy R. Nawrocki Requirements.
Managing the development and purchase of information systems (Part 1)
Requirements specification Copyright, 2001 © Jerzy R. Nawrocki Quality Management.
Requirements Analysis
The Planning Process Copyright, 2006 © L. Ouyang Liubo Ouyang Personal Software Process Lecture 11.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
HRT-HOOD Real-Time Systems Lecture 4 Copyright, 2002 © Adam Czajka.
OHTO -99 SOFTWARE ENGINEERING LECTURE 5 Today: - An overview to OO Analysis and OO Design - Introduction of Assignment 2.
Standard SRS Copyright, 2001 © Jerzy R. Nawrocki Requirements Engineering Lecture.
Software Requirements Engineering CSE 305 Lecture-2.
2/6/01D-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Using PARTS to Illustrate Requirements Concepts.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Good Practices of Requirements Eng. Copyright, 2000 © Jerzy R. Nawrocki Requirements.
Copyright © Jerzy R. Nawrocki The Requirements Document and IEEE 830 Requirements Engineering.
ISM 5316 Week 3 Learning Objectives You should be able to: u Define and list issues and steps in Project Integration u List and describe the components.
Introduction to Rational Robot Copyright, 2001 © Jerzy R. Nawrocki Quality Management.
CMM Level 2: Repeatable Copyright, 2000 © Jerzy R. Nawrocki Quality Management.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Lecture 7: Requirements Engineering
INFO 637Lecture #101 Software Engineering Process II Review INFO 637 Glenn Booker.
Quality of Usage Scenarios Copyright, 2000 © Jerzy R. Nawrocki Quality Management.
Methodology - Conceptual Database Design
Introduction to SoDA Copyright, 2001 © Jerzy R. Nawrocki Requirements Engineering.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
Requirement Handling
0 eCPIC Admin Training: OMB Submission Packages and Annual Submissions These training materials are owned by the Federal Government. They can be used or.
Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented.
RequisitePro (1) Copyright, 2001 © Jerzy R. Nawrocki Requirements Engineering.
Disciplined Software Engineering Lecture #10 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Configuration Management at CMM Level 2 Copyright, 2000 © Jerzy R. Nawrocki Requirements.
Configuration Management (II) Copyright, 2000 © Jerzy R. Nawrocki Requirements.
Copyright (c) 2014 Pearson Education, Inc. Introduction to DBMS.
Introduction to the Personal Software Process. Overview Process Fundamentals PSP Concepts and Structure PSP Planning and Measurement PSP Quality Management.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Quality Assurance at CMM Level 2 Copyright, 2000 © Jerzy R. Nawrocki Requirements.
SwCDR (Peer) Review 1 UCB MAVEN Particles and Fields Flight Software Critical Design Review Peter R. Harvey.
Requirements Management and Changes Copyright, 2003 © Jerzy R. Nawrocki Requirements.
Welcome: To the fifth learning sequence “ Data Models “ Recap : In the previous learning sequence, we discussed The Database concepts. Present learning:
Scenario use cases Szymon Mueller PSNC. Agenda 1.General description of experiment use case. 2.Detailed description of use cases: 1.Preparation for observation.
Programming Logic and Design Fourth Edition, Comprehensive Chapter 10 Using Menus and Validating Input.
- The most common types of data models.
Requirements Engineering Lecture 4
Requirements Engineering Lecture 2
Software Verification and Validation
Disciplined Software Engineering Lecture #10
Gary Hughes, South Oakleigh College
A possible solution: Personal Software Process (PSP)
Chapter 6: Principles of Requirements Analysis
Requirements Document
A partially automated class scheduling system
Requirements Engineering Lecture 6
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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)

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

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

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

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

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

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

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 ?