Project Definition Template

Set up your project on www.github.com or similar.

Except for the summary email, each section should be a separate Wiki Page or screen in your project repository.

Be brief.  It is not important to cover every last detail.  Focus on what is most important and relevant to your project.

Email Summary

1.     Provide a short name that will be used to identify and refer to your project and your team and a link to the repository (Github) where it is hosted.

2.     For each member of your team, list their full name, student number, and email address.  Assign each team member a primary role or responsibility from the following list. Each role below can be assigned to only one person (you may have several lead developers, each responsible for a different component). However, a single person may be responsible for more than one role. All roles must be assigned. 

Project Manager. Manages project plan, risks, and assignment of tasks to individuals. Primary contact with instructor.

Business Analyst. Manages customer environment, requirements, and traceability. Primary contact with customer.

QA Manager. Manages test plan, test environment, and overall quality assurance, defect tracking and release stabilization.

Build Manager. Manages configuration management, system and developer builds, automated build and test , installation script.

Architect. Manages system architecture, component interfaces, key mechanisms, coding guidelines and technology choices.

Lead Developer for Component X. Manages design choices, algorithms, implementation details for a particular component.

3.     Identify the person or organization wants the system built. What "business" are they in?  Identify a single person who will be filling out and signing your customer evaluation form. Include a phone number or email address where they can be reached and provide a brief justification of why they are suitable for this role.

4.     State why this project is important or useful to your customer? What benefits will result? State why your team is interested in this project.  What skills or experience or benefits does your team expect to gain as a result of this project.  This is the most critical aspect of your project to grasp right now ... and it is something you should keep in mind every time you face a critical decision or issue as you go through your project. In a single paragraph you are defining the guiding vision for what you want to achieve and how you want to work together as a team and with your customer

Actors and Use Cases Page

Draw a simple use case diagram that identifies the key actors which interact with the system and identifies the main functionality the system will provide. Write a short sentence to define each actor, use case and interface.

System Demo Page

Illustrate what it will be like to interact with the system when completed, by mocking up a storyboard or sequence of user interface screen shots of the most important scenario. Keep it simple, but make sure it reflects what the customer thinks is the essence of the system.  Write a short paragraph to explain the sequence of steps in the demo.

Architecture Page

What type of system will this be (client-server, device driver, web server...)? What are the key components of the system and how will they be deployed? Illustrate with a deployment diagram that shows what processes and/or components will run on what machines and how they will be connected. Keep it simple, you will go into much more detail later on in your design report, but make sure it reflects what the customer thinks is the essence of the system.

Development Environment Page

Simple instructions for installation and set up of the development environment(s) for the project.

Risk Management Page (Issues flagged with a Risk label)

A history of risks in a table format that can track their status (identified, investigating, managing, closed). What engineering challenges  need to be addressed or managed in building the system? What organizational challenges, in terms of your group and working environment need to be addressed or managed in order to build the system? What deployment challenges need to be addressed or managed in order to demonstrate progress and deploy the system to your customer?

Impact Assessment Page

The items you identify here show that you have taken into account the potential impact of the system you are building in a manner that would be expected of someone who has been licensed as a professional engineer (P. Eng.).  As graduates of a certified software engineering program you will be eligible to apply for the P. Eng. designation (see http://www.peo.on.ca for details). Consider each of the following and identify what is relevant to your project briefly (you will go into much more detail in your final report).

Legal Issues – Are there any applicable laws or legislation that will be relevant to the use and/or the construction of the system you are building? 

Standards – What technical standards are relevant to the software system you will build?  These could be government standards, industry standards, or even just conventions that are followed in the market for your system.  Be sure to clearly identify what type of standard you are talking about and who is the relevant authority for the standard.

Liability Issues – What is the potential for liability either to yourself or your customer or users of the system, if it is misused or has flaws?

Societal Issues – What is the potential for this system to be beneficial or detrimental to society as a whole? 

User Community – What impact will this system have on the intended user community? 

Financial Impact – What are the financial costs of deploying and supporting the system for yourself, the customer, users, and society as a whole?

Project Plan Page (Issues flagged with a Feature, Environment or Documentation label)

Briefly identify the main deliverables at each milestone in terms of system features, development environment, and documentation. Indicate which person (only one) has responsibility for each deliverable.