lec06 - 2/24/2009 CPS406: Introduction to Software...

Info iconThis preview shows pages 1–5. Sign up to view the full content.

View Full Document Right Arrow Icon
2/24/2009 1 CPS406: Introduction to Software Engineering Design Adapted from: Object-Oriented Software Engineering, T. Lethbridge and R. Laganiere, 2005, Object-Oriented & Classical Software Engineering, S. Schach, 2006, Software Engineering, I. Sommerville, 2006, Software Engineering: An Object-Oriented Perspective, E. Braude, 2001 Overview The definition of design Design roadmap How to write SDD Components, modules and sub-systems Design strategies and steps The principle of good design 2 11 principles How to make good design decisions
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
2/24/2009 2 The Process of Design Definition Design is a problem-solving process whose objective is to find and describe a way: To implement the system’s functional requirements ... While respecting the constraints imposed by the quality, platform and process requirements. .. including the budget and deadlines 3 And while adhering to general principles of good quality Design as a Series of Decisions A designer is faced with a series of design issues These are sub-problems of the overall design problem Each issue normally has several alternative solutions: design options 4 The designer makes a design decision to resolve each issue This process involves choosing the best option from among the alternatives
Background image of page 2
2/24/2009 3 Design Space The space of possible designs that could be achieved by choosing different sets of alternatives achieved by choosing different sets of alternatives is often called the design space For example: 5 Different Aspects of Design Architecture design The division into subsystems and components How these will be connected How they will interact Their interfaces Class design The various features of classes User interface design Algorithm design 6 The design of computational mechanisms Protocol design The design of communications protocol
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
2/24/2009 4 Typical Roadmap 1. Begin with architectural models class model: domain & architectural classes overall state model* overall data flow model* use case model * 3. Refine models, make consistent, ensure complete 5 Specify methods with pre and pos conditions 2. Introduce classes & design patterns* which connect the architecture classes with the domain classes concentrate on riskiest parts first; try alternatives 4. Specify class invariants* For each class . .. For each method 7 8.Release for implementation 6. Sketch unit test plans 7. Inspect test plans & design 5. Specify methods with pre- and post-conditions, flowcharts* & pseudo-code* * if applicable For each method . .. For each unit . .. Writing a Good Design Document Design documents as an aid to making better designs They force you to be explicit and consider the important issues before starting implementation They allow a group of people to review the design and therefore to improve it Design documents as a means of communication To those who will be implementing the design 8 To those who will need, in the future, to modify the
Background image of page 4
Image of page 5
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 31

lec06 - 2/24/2009 CPS406: Introduction to Software...

This preview shows document pages 1 - 5. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online