Presentation is loading. Please wait.

Presentation is loading. Please wait.

Oct. 16, 2003CS 509 - WPI1 CS 509 Design of Software Systems Lecture #7 Thursday, Oct. 16, 2003.

Similar presentations


Presentation on theme: "Oct. 16, 2003CS 509 - WPI1 CS 509 Design of Software Systems Lecture #7 Thursday, Oct. 16, 2003."— Presentation transcript:

1 Oct. 16, 2003CS 509 - WPI1 CS 509 Design of Software Systems Lecture #7 Thursday, Oct. 16, 2003

2 Oct. 16, 2003CS 509 - WPI2 §Term Project administration §Return Quiz #3 §Questions §Review of Chapter 7 §Preview of Chapter 9 §Get Student Feedback: l How is this course going so far? Class Format for Today

3 Oct. 16, 2003CS 509 - WPI3 MC Project & Quiz #3 §Turn in Phase 3 (Design) document §Hand out Phase 4 Assignment §Return Quiz #3 l Solutions available on course web site

4 Oct. 16, 2003CS 509 - WPI4 Questions? §About Term Project §From last week’s class §From the reading §Anything else?

5 Oct. 16, 2003CS 509 - WPI5 Chapter 7 Object Design

6 Oct. 16, 2003CS 509 - WPI6 Object Design §Focus: l Individual objects & hierarchies l Interfaces §Challenges: l Increasing reuse wherever possible l Eliminating as many dependencies as possible l Optimizations to address performance criteria such as response time or memory usage

7 Oct. 16, 2003CS 509 - WPI7 Object Design Activities §Refine analysis & system design models §Identify new objects §Close the gap between application objects and off-the-shelf components: l Identify custom objects l Adjust of off-the-shelf components l Specify interfaces between classes

8 Oct. 16, 2003CS 509 - WPI8 Service Specification §Specify subsystem services identified during system design: l Class interfaces l Operations, arguments l Type signatures l Exceptions §Find missing operations and objects

9 Oct. 16, 2003CS 509 - WPI9 Component Selection §Find, adapt and use off-the-shelf components §Class libraries & 3 rd party packages l Data structures l Services §May need to adjust: l Wrap with custom objects l Refine using inheritance §Buy vs. build trade-offs

10 Oct. 16, 2003CS 509 - WPI10 Restructuring §Manipulate system model to increase code reuse or meet other design goals l Maintainability, readability, understandability §Merge similar classes §Collapse simple classes into attributes §Split complex classes into simpler ones §Rearrange classes & operations to increase inheritance relationships

11 Oct. 16, 2003CS 509 - WPI11 Optimization §Address performance requirements: l Algorithms to improve speed or memory usage l Reduce multiplicity to speed up queries l Add redundancy for efficiency l Add derived attributes to improve access time l Rearrange execution order l Open up a “closed” architecture for performance improvements

12 Oct. 16, 2003CS 509 - WPI12 Figure 7-2. Activities of object design (UML activity diagram).

13 Oct. 16, 2003CS 509 - WPI13 Object Design Terminology §Application vs. Solution Domain Objects §Types & Signatures §Visibility §Contracts, constraints: l Invariants, Preconditions, Postconditions §Exceptions

14 Oct. 16, 2003CS 509 - WPI14 Example Object Design Geographical Information JEWEL Modeling System

15 Oct. 16, 2003CS 509 - WPI15 Figure 7-7. Object model for the GIS of JEWEL (UML class diagram). ** ** ** ** ** * * PoliticalLayer WaterLayer RoadLayer HighwaySecondaryRoad RiverLake StateCounty PolyLine Polygon Layer label

16 Oct. 16, 2003CS 509 - WPI16 Figure 7-12. Adding operations to the object model of the JEWEL GIS to realize zooming and clipping (UML class diagram). Layer getOutline(bbox, detail) LayerElement label Political Layer Water Layer Road Layer label HighwaySecondary road RiverLake StateCounty LayerElement(polyline) LayerElement(polygon) getOutline(bbox, detail) elements *

17 Oct. 16, 2003CS 509 - WPI17 Figure 7-14. Additional attributes and methods for the Point class to support intelligent point selection and zooming (UML class diagram). Point x, y Point(x, y) includeInLevel(level) excludeFromLevel(level) notInDetailLevels ** PolyLine addPoint(point) getPoints(bbox) Polygon addPoint(point) getPoints(bbox) inDetailLevels **

18 Oct. 16, 2003CS 509 - WPI18 Figure 7-15. Adding type information to the object model of the GIS (UML class diagram). Only selected classes shown for brevity. Layer LayerElement +label:String Point +Point(x, y:double) +includeInLevel(level:double) +excludeFromLevel(level:double) +LayerElement(polyline:PolyLine) +getOutline(bbox:Rectangle2D, detail:double):Enumeration +Layer(label:String) detail:double):Enumeration +getOutline(bbox:Rectangle2D, * points * elements +x, y:double +notInDetailLevels:Set +inDetailLevels:Set PolyLine +label:String +PolyLine() +getPoints():Enumeration 1 1 * 1 polyline

19 Oct. 16, 2003CS 509 - WPI19 Managing Object Design §Increased communication complexity l Result of collaboration among many people l Scope of project grows §Consistency with prior information l Revisit analysis & system design decisions l Keep project & design goals in mind l Maintain change history l Ensure documents reflect current state

20 Oct. 16, 2003CS 509 - WPI20 Preview of Chapter 9 Testing “The software is done. We are just trying to get it to work.”

21 Oct. 16, 2003CS 509 - WPI21 Opposing Goals of Testing §To ensure/demonstrate proper functioning §To “break” the system, find defects §What constitutes success/failure in each of the above approaches? §Which approach is easier? (Possible?)

22 Oct. 16, 2003CS 509 - WPI22 Quality Assurance Techniques §Fault Avoidance l Development processes & methodologies l Throughout analysis, design & implementation §Fault Detection l Testing & debugging l After code has been written §Fault Tolerance l Recovery from failures l Post-delivery, run-time activities

23 Oct. 16, 2003CS 509 - WPI23 Types of tests – Part 1 §Unit tests l Find faults in an individual object §Integration tests l Find faults in a subsystem l Multiple objects working together §System tests l Further integration, all components together

24 Oct. 16, 2003CS 509 - WPI24 Types of tests – Part 2 §Functional testing l Conformance to functional requirements §Performance testing l Conformance to non-functional requirements §Acceptance & installation testing l Done by client, with support by developers

25 Oct. 16, 2003CS 509 - WPI25 For Next Time Chapter 9 – Testing Pay special attention to Stubs & Drivers


Download ppt "Oct. 16, 2003CS 509 - WPI1 CS 509 Design of Software Systems Lecture #7 Thursday, Oct. 16, 2003."

Similar presentations


Ads by Google