170 likes | 273 Views
CSci 250 Software Design & Development. Lecture #11 Tuesday, Feb. 20, 2001. Class Format for Today. Announcements Questions Lecture on Chapter 6 Design Exercise. Announcements. EMC Career Fair @ Museum of Science in Boston: Weds., Feb. 28th, 4-7pm Technology Research: JNI
E N D
CSci 250Software Design & Development Lecture #11 Tuesday, Feb. 20, 2001 CSci 250 - Clark University
Class Format for Today • Announcements • Questions • Lecture on Chapter 6 • Design Exercise CSci 250 - Clark University
Announcements • EMC Career Fair @ Museum of Science in Boston: Weds., Feb. 28th, 4-7pm • Technology Research: • JNI • File system change notification • Filtering - see link on course web page • Reminder: Functional Specs due Thursday CSci 250 - Clark University
Questions? • From last week: • Analysis • Rational Rose - How did installation go? • About Content Index • Anything else? CSci 250 - Clark University
Chapter 6 System Design CSci 250 - Clark University
System Design Terminology • Decomposition • Subsystem (Vs. Class) • Control Flow • Access Control • Services Vs. Interfaces • Coupling Vs. Coherence / Cohesion • Layers & Partitions CSci 250 - Clark University
System Design • Focus: • Processes • Data Structures • Components • Challenges: • Managing conflicting criteria • Managing constraints CSci 250 - Clark University
Impact on Implementation • Coding complexity of subsystems • Cost of rework if design changes • Design of individual components should be delayed - Why? CSci 250 - Clark University
Software Architecture • Subsystem decomposition in terms of responsibilities • Dependencies among subsystems • Subsystem mapping to hardware • Policy decisions • Read & understand bullet list on page 171 CSci 250 - Clark University
Subsystems Vs. Classes • Decompose system into simpler parts • Subsystems are composed of some number of classes • Complex subsystems may be further decomposed into smaller subsystems • How do you know when to stop? CSci 250 - Clark University
Services Vs. Interfaces • Service is a set of related operations that share a common purpose (Example?) • Interface is a specification (API) that includes: • Names of operations • Parameter names & types • Return values CSci 250 - Clark University
Focus of System Design • System Design focuses on defining services • Object Design focuses on defining interfaces • During System Design, keep it high level - focus on services rather than implementation. • Why? CSci 250 - Clark University
Trade-off of conflicting goals • Sometimes increasing coherence also increases coupling - why? • Want a balance between high coherence and low coupling - how can we do both? CSci 250 - Clark University
Layers Vs. Partitions • Both are ways to manage complexity • Layers are hierarchical; Partitions are not • Each layer uses services provided by which other layer(s)? • Define: Closed Architecture Vs. Open • See diagrams on pages 180, 181 • Layers have no knowledge of which other layer(s)? CSci 250 - Clark University
Layers & Partitions Cont’d • Partitions are responsible for different classes of services • Which to use: Layers or Partitions? • Usually both • How do we know which to use when? • How much is too much? “Excessive partitioning or layering can lead to increased complexity.” Explain. CSci 250 - Clark University
System Design Exercise Another look at The Car That Drives Itself CSci 250 - Clark University
For Next Time: Object Design Chapter 7 CSci 250 - Clark University