Due (see your project schedule):
- Privilege Walk Project Assignment Schedule
- RevMetrix Project Assignment Schedule
- YCPHacks Website Project Assignment Schedule
This is a Team assignment.
Your Task
For existing projects (Privilege Walk, YCPHacks), your task is to identify and indicate modifications to the existing analysis and design models (and create whatever new models might be necessary) which identify the important classes in your system, and their relationships. Include the database schema changes, showing the tables and fields of the database. Use textual analysis from your Use Cases to identify the classes and attributes (nouns) and the methods and interfaces (verbs) for your UML diagram.
For new projects (RevMetrix), your task is to develop your analysis and design models which identify the important classes in your system, and their relationships, as well as the interfaces that allow the various components of our system to communicate. Include the database schema, showing the tables and fields of the database. Use textual analysis from your Use Cases to identify the classes and attributes (nouns) and the methods and interfaces (verbs) for your UML diagram.
For all teams, show how the designs from the various sub-teams communicate (interfaces) and interact (system level block diagram). Also, create a Google document summarizing your analysis and design.
Your goal is to create UML design model(s) and database schema(s) that provide a good framework to build upon. Your initial design model will:
- A high-level system architecture block diagram that indicates the purpose of your major sub-systems of your design, and how they relate, interact, and/or communicate
- Include all important core data model classes (the classes representing the most important concepts in the problem domain), include interface classes that facilitate communication between system components
- Include basic user interface classes for the minimal working system
- Have sufficient methods to adequately describe the behaviors of each class
- Have an architecture which cleanly separates the data model classes from the user interface classes (MVC architecture)
- Follow design principles, such as the LSP (Liskov Substitution Principle), OCP (Open-Closed Principle), and the Single Responsibility Principle.
- A database schema that reflects the content and interaction of the tables in your DB, derived from your UML class diagrams.
Use Violet UML, or some other UML modeling tool to create your model.
If your UML and/or OO modeling skills are rusty, please see us. The ability to create a model of a system is hugely important, and potential employers are likely to ask OO modeling questions in job interviews.
Grading
Your work will be graded as follows:
- High level system block diagram: 5%
- Includes most important classes (model, view, and controller): 20%
- Shows relationships between classes: 15%
- Separates model classes from UI classes: 10%
- Appropriate methods to indicate behavior: 10%
- Database Schema: 20%
- Writing quality and organization of Design Document: 10%
- Analysis and Design presentation: 10%
Submitting
Post you model to your team’s folder on the project’s Google Drive in PDF form. You should also post your source files for your model - but you also have to provide a PDF version.