Click here for clarifications on the project.
Project: Phase 1The projects should be done in teams of 3-5 people. Your team will develop and implement a simple system with a GUI front end, a middle business logic layer, and a simple database (e.g. file system with a front end). The project will be done in 2 phases. The first will have limited functionality, and the second full functionality. The language of choice is Java. The modeling language is UML. UML diagrams can be drawn using MS Visio, which is available in the lab. The lectures will use a (very) simple dating system as an example. You can use this as a guideline for the kind of functionality we are looking for in your system. Your team should come up with a project of similar difficulty and functionality. The point is to try out the basic methods and ideas that will be introduced, and not get bogged down in programming in the short amount of time available to us. The following is a brief overview of the dating system example.
Note: Project deliverables for each phase are all due at the same time, as part of the documentation for that phase. Note Well: You will get the most benefit from the project if you do the non-code documents as they are assigned, and then modify them later as your understanding develops. Project: Phase 21. You will develop and implement the second part of the project. This will involve taking the first part and adding additional functionality. The full functionality will have been specified in the use cases for the first part of the project, and at that time a decision about what to implement first. The documents from the domain model on were for the first part functionality only. In the second part, we will produce similar kinds of deliverables as for the first part, but for the full functionality. In addition, we will be introducing additional kinds of models and patterns. If you failed to make the distinction between the first and second increments, and your first program implemented all the use cases, then create some additional augmented functionality for the second phase. 2. In some cases, we will artificially introduce new features into our phase 2 in order to experiment with new design patterns. These are specified in the project exercise steps for each lecture. Project Clarifications:1. Deliverable: For each phase you will submit the following:
2. Sequence/Colaboration diagrams: Your sequence diagram should show how the layers interact. Both sequence and collaboration diagrams are tied to use cases. You will have atleast 1 seqeunce diagram for each use case. In this project you will use collaboration diargams to show the interactions within a layer. Since you have 3 layers, you will need atleast 3 collaboration diagrams for each use case. 3. Use cases: For phase 1 you will implement 3 or more use cases. If you implement more than 3, make sure you provide design artifacts (use case description, sequence & collaboration diagrams) for all of them. 4. Sample Format: Here is sample organization of your write up. It omits many details that you need to fill up (like your system architecture, patterns, ...) Concept description: Provide a one or two paragraph description of your proposed project. Use cases: Describe all use cases that you will implement, including the ones for phase 2. Scope of phase 1: Decribe which use cases you are implementing for phase 1. Interaction diagrams (i.e., sequence and collaboration diagrams): you should organize your sequence and
collaboration diagrams by corresponding use cases
Deliverables for Phase 21. Same as phase 1, but for new functionalitye.g. - hard copy of the write up and code on CD for whole system - models for new phase 2 functionality: domain models, interaction sequence diagrams, collaboration diagrams, class diagrams (with visibility) - also include programming by contract specs for subsystems and use is-a and has-a notation in the class diagrams 2. New UML models - state diagram model for GUI: graphical or tabular format 3. Patterns - for each pattern that you incorporated into your design, briefly describe how it was used. As per the lectures, the patterns to be used are: callback, singleton, wrapper, state (optional, but discuss why you did not use it if you did not incorporate this pattern), and framework/factory methods for data base. - if you had additional patterns from the second part of the course, include a brief description of how you used them, but it is not necessary to use these patterns - you do not need to include anything on anti-patterns or refactoring |