Course Project Description and Deliverables
Note: This course component constitutes 40% of your course grade.
Purpose: The purpose of this assignment is to familiarize you with the employment of object-oriented analysis and design techniques using the Unified Modeling Language (UML) to an application sized appropriately for a one semester course.
Choice of Application : Pick an application in an area in of interest to you. This should be an area that either you are quite familiar with, or for which you can obtain detailed information via interviews, documentation, etc.
Requirements: Begin your project by defining the requirements and scope of the project. Use the UML to develop the use case model, class model, interaction , state and activity diagrams of the system. We will not be implementing the design in this class.
Note: You will submit each of your project phases to the WebCT site, using the "assignment dropbox" tool there. Due dates are firm.
Project Phases:
Proposal Phase : (5 % of course grade) Due Date - Thursday, February 22. This is the first step of the project. You will turn in a proposal with 5 deliverables -
general background and description of the application area
a preliminary requirements definition in narrative form
a preliminary set of use cases, diagrammed
a preliminary set of Class, Responsibility, and Collaboration (CRC) cards
a preliminary conceptual/class model with a preliminary set of associations and attributes.
This proposal phase is to establish a 'first cut' at your design model. It is expected to change significantly through the iterations of Version 1 and Version 2.
Version 1 Phase: ( 10 % of course grade) Due Date - Thursday, April 5. If any of your project deliverables has changed since the proposal phase, be sure to include with that deliverable an explanation of the changes and why they were necessary. You will turn in a Version 1 of your design with the following deliverables -
general background statement, refined as needed from proposal phase
a requirements definition in narrative form, refined as needed from the proposal phase
a set of use cases, documented and diagrammed and refined as needed from the proposal phase
a set of CRC cards, refined as needed from the proposal phase
a conceptual/class model with a refined set of associations and attributes. You will include with this model narrative explanations which justify any uses of inheritance, aggregation and association.
a set of (at least 2) collaboration diagrams and simple scenarios.
Again, this version is not expected to be perfect. Your model is expected to change again in Version 2.
Version 2 and Final Phase: (25% of course grade) Due Date - Thursday, May 17. If any of your project deliverables has changed since the proposal phase, be sure to include with that deliverable an explanation of the changes and why they were necessary. You will turn in the Version 2 - Final Phase of your project with the following deliverables -
Be sure to have a bullet in your Version 2 for each of the deliverables below. Also, be sure that you have enhanced each deliverable as appropriate from the previous Version 1 -
general background statement, refined as needed from Version 1.
a requirements definition in narrative form, refined as needed from Version 1.
a set of use cases, documented and diagrammed and refined as needed from Version 1. Be sure to use the tabular format used in the Larman text.
a set of CRC cards, refined as needed from Version 1.
a conceptual/class model with a further refined set of associations and attributes. You will include with this model narrative explanations which justify any uses of inheritance, aggregation and association. Be sure to add any design classes necessary for implementing associations and aggregations. Be sure that all functions from collaboration/sequence diagrams are represented in this final class model. Be sure to include both your collaboration and sequence diagrams.
a set of all project collaboration diagrams, scenarios, sequence diagrams, and state diagrams. You will need to have 8-12 use cases in your project. Also, you need one scenario per use case - a "success" scenario. You will correspondingly need one collaboration diagram and sequence diagram per scenario. It is optional if for you to submit more scenarios than just the one success scenario per use case. Note that activity diagrams have been eliminated from this description - you do *not* need to submit activity diagrams. Be sure to show for all function calls documented in the collaboration and sequence diagrams the precise set of parameters for each call.
an explanation/justification of which patterns you applied in formulating your collaboration diagrams and conceptual/class model. Be sure to include this section as a separate bullet, as in this bulleted Version 2 assignment listing. You can find information about patterns in your Larman text, in Chapters 18, 34, and 35 and in my notes on the web.