Sept. 18, 2003CS WPI1 CS 509 Design of Software Systems Lecture #3 Thursday, Sept. 18, 2003
Sept. 18, 2003CS WPI2 §Term Project administration §Return Quiz #1 – well done! §Questions §Phase 2 – Functional Specifications §Specifications Exercises §Review Chapter 5 §Analysis Exercises Class Format for Today
Sept. 18, 2003CS WPI3 Meeting Coordinator Project §Turn in Phase 1 (Requirements) document and group evaluation forms l An was sent out to the class mailing list to remind students about the evaluation forms. Did everyone receive the message? §Hand out Phase 2 document
Sept. 18, 2003CS WPI4 Return Quiz #1 Solutions are available on Course Web Site
Sept. 18, 2003CS WPI5 Questions? §From last week’s class §From the reading §Anything else?
Sept. 18, 2003CS WPI6 Phase 2 Functional Specifications
Sept. 18, 2003CS WPI7 Discussion §What is a Functional Specification? §What purpose does it serve? §What goes into a FS document?
Sept. 18, 2003CS WPI8 Introduction §One of the most common documents used in commercial software industry §Developers might not have much input into requirements §Often your only chance to negotiate features §May need to be updated if requirements change
Sept. 18, 2003CS WPI9 Purpose §Further define goals and scope of the system by detailing functionality §Determine which features impact usability §Distinguish between necessary features and “wish list” features §Get client to sign-off l Consider FS to be like a contract
Sept. 18, 2003CS WPI10 Contents §Introduction l State purpose, scope and objectives §Detailed Functionality l Explain how requirements will be covered §Glossary §Mock-up or Prototype l Show what features will look like l Pictures often worth more than words
Sept. 18, 2003CS WPI11 Specifications Exercises
Sept. 18, 2003CS WPI12 Exercise #1 – Functionality Design and build a “chair” §Definition – what is a chair? l What is its purpose? l What are its salient characteristics? §Functional decisions: l What choices are there? l How do you choose?
Sept. 18, 2003CS WPI13 Exercise #2 – Content Index §Review functional requirements l Configure which types of files to include in Index l Provide editable text box for query input l Remember previous queries for later recall l Provide mechanism to initiate execution of a query l Provide mechanism to cancel execution of a query l Switch between case-sensitive and -insensitive queries l Display query results as a list of files §Choose a few to describe in more detail
Sept. 18, 2003CS WPI14 Analysis Chapter 5
Sept. 18, 2003CS WPI15 Purpose of Analysis §Preliminary stage of Design activities: l Identifying various objects & object types l Identifying associations l Modeling Interactions between objects l Identifying Attributes l Modeling Nontrivial Behavior l Modeling Generalization Relationships
Sept. 18, 2003CS WPI16 Terminology §Entity Object §Boundary Object §Control Object §Association §Nontrivial Behavior (typo in book)
Sept. 18, 2003CS WPI17 Identifying Object Types §Entity Object: l Persistent information tracked by system l E.g. Month, Day, Year §Boundary Object: l Interactions between actors & system l E.g. Button, Display §Control Object: l Tasks performed by User, supported by System l E.g. ChangeDate
Sept. 18, 2003CS WPI18 Heuristics for Object Types §Entity objects: l Box on page 141 §Boundary objects: l Box on page 143 §Control objects: l Box on page 145
Sept. 18, 2003CS WPI19 Associations & Multiplicity §Types of associations: (Example on p. 136) l one-to-one l one-to-many l many-to-many §Symbols used to represent multiplicity: l 1 - may be assumed by default, 2 … n l * - zero or more l + - one or more l ? - zero or one
Sept. 18, 2003CS WPI20 Qualified Associations §Technique for reducing multiplicity, thereby reducing complexity filename DirectoryFile Directory File filename 1* Figure 5-9 (page 138). Example of how a qualified association rule reduces multiplicity
Sept. 18, 2003CS WPI21 Modeling Interactions §Interactions between objects can be modeled using UML Sequence Diagrams l Heuristics for drawing sequence diagrams on page 146 l Points 4 & 5: do these make sense? §New objects may be identified during the Sequence Diagramming activity
Sept. 18, 2003CS WPI22 Identifying Attributes §Properties of individual objects §Each attribute should have: l name identifying it within an object l description to remember what it’s for l type defining legal values it can take on §Heuristics for identifying attributes on page 152
Sept. 18, 2003CS WPI23 Modeling Nontrivial Behavior §Statechart diagrams represent behavior of a single object §Gives a different perspective when compared to Sequence diagrams §How do we know what behavior is “Nontrivial”? l Examples of trivial vs. nontrivial behavior?
Sept. 18, 2003CS WPI24 Generalization Relationships §Generalization relationships between objects can be modeling using UML Class diagrams §Organize concepts into hierarchies from most general to most specific §Eliminate redundancy §Not to be confused with Inheritance: l For organizational purposes only, not reuse l Inheritance comes in during Object Design
Sept. 18, 2003CS WPI25 Analysis Model §Is this a useful activity? l Identifying object types – terminology, concepts l Constructing sequence & state-chart diagrams l Associations and generalizations §At what point does analysis apply to a software development project? §Is it required for this course?
Sept. 18, 2003CS WPI26 Analysis Exercise Identifying Objects & Object Types
Sept. 18, 2003CS WPI27 Exercise #3 – File System (From textbook, exercises #1-5, page 164) §File system with GUI – e.g., File Explorer §Activity: copy file from floppy to hard disk l How is this accomplished? §Tasks: l Identify objects & object types l Identify associations, attributes, generalizations
Sept. 18, 2003CS WPI28 For Next Time UML – Chapter 2