Post on 18-Jan-2016
Conceptual designConceptual design Tells the customer what the system will doTells the customer what the system will do Answers:Answers:
Where will the data come from?Where will the data come from? What will happen to the data in the system?What will happen to the data in the system? What will the system look like to users?What will the system look like to users? What choices will be offered to users?What choices will be offered to users? What is the timing of events?What is the timing of events? What will the reports and screens look like?What will the reports and screens look like?
Characteristics of good conceptual designCharacteristics of good conceptual design in customer language with no technical jargonin customer language with no technical jargon describes system functionsdescribes system functions independent of implementationindependent of implementation linked to requirementslinked to requirements
Technical designTechnical design
Tells the programmers what the system Tells the programmers what the system will dowill do
Includes:Includes: major hardware components and their major hardware components and their
functionfunction hierarchy and function of software hierarchy and function of software
componentscomponents data structuresdata structures data flowdata flow
Five ways to create designsFive ways to create designs
Modular decompositionModular decomposition Data-oriented decompositionData-oriented decomposition Event-oriented decompositionEvent-oriented decomposition Outside-in designOutside-in design Object-oriented designObject-oriented design
Three design levelsThree design levels
Architecture: associates system Architecture: associates system components with capabilitiescomponents with capabilities
Code design: specifies algorithms Code design: specifies algorithms and data structures for each and data structures for each componentcomponent
Executable design: lowest level of Executable design: lowest level of design, including memory allocation, design, including memory allocation, data formats, bit patternsdata formats, bit patterns
Implementation & Coding Implementation & Coding ProcessProcess
Level I DesignLevel I Design Basic FunctionalityBasic Functionality Single-PC useSingle-PC use
Level II DesignLevel II Design Local Network AccessLocal Network Access Access RestrictionsAccess Restrictions
Level III DesignLevel III Design Database ImplementationDatabase Implementation Interest-Bearing AccountsInterest-Bearing Accounts
Home LoansHome Loans Retirement AccountsRetirement Accounts
Alien ProfessorsAlien Professors©©
Character DesignCharacter Design
Important design issuesImportant design issues Modularity and levels of abstractionModularity and levels of abstraction Collaborative designCollaborative design Designing the user interfaceDesigning the user interface
metaphors, mental model, navigation rules, metaphors, mental model, navigation rules, look and feellook and feel
cultural issuescultural issues user preferencesuser preferences
ConcurrencyConcurrency Design patterns and reuseDesign patterns and reuse
Characteristics of good Characteristics of good designdesign
Component independenceComponent independence couplingcoupling cohesioncohesion
Exception identification and handlingException identification and handling Fault prevention and toleranceFault prevention and tolerance
activeactive passivepassive
Design evaluation and Design evaluation and validationvalidation
Mathematical validationMathematical validation Measuring design qualityMeasuring design quality Comparing designsComparing designs
one specification, many designsone specification, many designs comparison tablecomparison table
Design reviewsDesign reviews
Design reviewsDesign reviews
Preliminary design reviewPreliminary design review examines conceptual design with examines conceptual design with
customer and userscustomer and users Critical design reviewCritical design review
presents technical design to developerspresents technical design to developers Program design reviewProgram design review
programmers get feedback on their programmers get feedback on their designs before implementationdesigns before implementation
Questions for any design Questions for any design reviewreviewIs it a solution to the problem?
Is it modular, well-structured, and easy to understand?Can we improve the structure and understandability?Is it portable to other platforms?Is it reusable?Is it easy to modify or expand?Does it support ease of testing?Does it maximize performance, where appropriate?Does it reuse components from other projects, where appropriate?Are the algorithms appropriate, or can they be improved?If this system is to have a phased development, are the phases interfaced sufficiently so that there is an easy transition from one phase to the next?Is it well-documented, including design choices and rationale?Does it cross-reference the components and data with the requirements?Does it use appropriate techniques for handling faults and preventing failures?
Documenting the designDocumenting the design• design rationale• menus and other display-screen formats• human interfaces: function keys, touch screen descriptions, keyboard layouts, use of a mouse or joystick• report formats• input: where data come from, how they are formatted, on what media they are stored• output: where data are sent, how they are formatted, on what media they are stored• general functional characteristics• performance constraints• archival procedures• fault-handling approach
State DiagramState Diagram
Isolated Being Chased
Chasing Villian
Villian Near Student
Student Far AwayStudent Caught
Player Has Extra Lives
Student Gets A
TimeoutGets A
TimeoutDead
Slides are based (sometimes solely, Slides are based (sometimes solely, sometimes partially, and sometimes sometimes partially, and sometimes not-at-all) on copyrighted Prentice not-at-all) on copyrighted Prentice Hall materials associated with Hall materials associated with Software Engineering Theory and Software Engineering Theory and Practice by Shari Lawrence Pfleeger.Practice by Shari Lawrence Pfleeger.