Software Engineering
Project 5 - User Interface Design (Preparation for Next Semester's Project)
20 Points Total
Due: Part 1 (10 Points) - Domain Analysis and System Domain Model, Tuesday, Nov. 26, 2013 at 11:59:59pm,
Part 2 (10 Points) - Requirements Gathering, Use Cases, and UI design, Tuesday, Dec. 3, 2013 at 11:59:59pm

+2 Bonus Points for submitting both parts 1 and 2 by Monday, Nov. 25, 2013 at 11:59:59pm

Topic

For this project, you will work on the front end and back end designs for a website or a networked application that makes use of a database, an artificial intelligence, or another complex tool. Choose a topic to work on and clear it with your instructor. Be aware that your choice of a topic may be something you will work on in a group, next semester. Clear your topic with your instructor via email on Friday, Nov. 22, 2013. For example, you could choose to work on an Automotive Repair Shop Billing and Inventory System, a Veterinary Client Scheduling System, a 3D Chess Game, a Movie Ratings Application, a Job Application System for Students, or an Airline Booking System.  You are encouraged to discuss your ideas with your classmates to inspire creativity.

Domain Analysis

Perform background research into your topic. Complete and document this research before continuing to the next step. You must provide a brief introduction to your topic and provide general knowledge about the domain and possible users. Describe potential choices for front-end design software and for a back-end AI and/or database. Find at least one software system that performs a similar task and describe it. Additionally, describe the reason you wish to create a competing software system. Relate any existing experience you have to your topic. Note that it is expected that you will complete a one to two page domain analysis for your topic.

System Domain Model

Create a system domain model for your system. This will be a set of UML diagrams for your domain, in which you will represent classes that are part of the domain. You should not include any of the classes that will represent the user interface or any helper classes. Instead, you should model classes that would be represented in the database or within the back end of your program. That is, based upon what you have learned from the domain analysis, identify a set of candidate classes for your domain, add any associations and attributes that are clearly needed, work out any necessary generalizations, and list the main responsibilities (i.e. operations or methods) of each class. You must create at least 3 classes for this project.

Requirements Gathering and Use Cases

Define the system scope and the basic inputs, outputs, data stored, computations performed, any synchronization requirements, and any platform requirements. Determine two to three central use cases for your project. You must document and submit these use cases. Your use cases must include a title, description, and user/system steps, at minimum. Include preconditions and postconditions as necessary.  Additionally, provide UML style use cases using stick figures and the possible actions each user might perform.

Provide a UML activity diagram (i.e. a flowchart) of at least one complex set of operations that will occur within your project.

User Interface Design

Create at least 4 paper prototypes for your application and create screenshots of a static user interface. The paper prototypes may be hand drawn.

Submission

Submit your topic, domain analysis document, system domain model UML diagrams, requirements list, use cases, activity diagram, and user interface design for both parts to the eCompanion dropbox for project 5 by the deadlines listed above.