14:332:452            Software Engineering



Project Proposal



1.   How to Write a Project Proposal

To write and submit a project proposal, please follow these steps:
  1. Read carefully the projects described in the class lecture notes in Section 1.5, starting on page 29.
    Additional information on these projects is available here.
  2. If you like one of the projects described therein, go to Section 3: Proposal Format, Submission, and Feedback.
  3. If you would rather come up with your own idea for a project, go to Section 2: Proposing Your Own Idea for a Project.

2.   Proposing Your Own Idea for a Project

Read this section only if you prefer to work on a project based on your own idea. Conversely, if you decided to work on one of the projects described in the class lecture notes in Section 1.5, you can skip this section and go immediately to Section 3: Proposal Format, Submission, and Feedback.

When thinking about a new project, please keep in mind that the project must be equivalent in terms of difficulty to the projects described in the class lecture notes in Section 1.5.

Required Project Components
The goal of the project is develop software for an online service -- for example, an online auction, online book/music/video store, online backup service, online collaboration service, etc. (use your imagination). Key components that the project must include are:
  1. Data Input
    Mechanism of input, manual or read a dataset from a file, or from a web site (via RSS feeds)
  2. Archiving
    Examples include: SQL database (e.g., mySQL), flat file, or an online data storage (search the Web)
  3. Analysis
    Such as data search (discovering specific services/products among those available), sorting, regression analysis, other statistical analysis, etc. (see more about this below)
  4. Display
    Visualization of the analysis results using graphs and charts
Other important characteristics:

Project Must Include Programming

When deciding about the project, the most important thing to keep in mind is that the software product you will develop should require lot of programming. This is a design rather than a programming course. However, in order to learn good design, the process must include actual implementation of the design. Therefore, the project must include programming.

For example, creating a data-bank and processing this data is a programming task. If your system just allows the user to set or modify values of different database records, that is not data processing. Examples of programming (data processing) include, data-bank re-organization, keyword-based search and retrieval, filtering and summarization of the data-bank, selecting a small group of users for notification, etc. However, just saying: The system will provide search facilities, may mean that you are using SQL database calls and doing no programming at all. And, programming is done in a programming language, such as C, C++, Java, or C#.

Note: Designing web pages passive web pages which contain only HTML is not programming. Therefore, your project can include web page design, but that is not enough.
On the other hand, designing active webpages using AJAX, Flash, etc., is programming and is perfectly acceptable for the class project.

Focus more on automatic data processing: not what what user can manually do , but what system does automatically to save the user's effort. For example, suppose you are designing a system for online purchasing of airline tickets. You could incorporate the following data processing features:

Strive to reduce the user's manual interaction with the system and increase the system "smarts"! Let the system do the work for the user! Nobody is impressed with a system where the user has to invest hard work to get even simple tasks accomplished.Make every effort to reduce the number of clicks and keystrokes necessary for task completion.

Keep in mind that the key purpose of this course is that you learn how to do modular design of software and how to document the design using symbolic representations, i.e., UML diagrams. Thus, you should avoid flashy user interfaces and proprietary software. These will definitely not contribute positively to your grade, and may have negative effects. Limit your software to the tools commonly and freely available on the Web.

It is a good idea to review the first demo and second demo descriptions to see how your project will be graded.

Choice of the Topic

The proposed topic can be almost anything; however, it is advisable to come up with something novel and innovative to keep you interested in its realization, and because innovativeness tends to make impression on the reviewers.

You could get an idea for interesting service(s) by exploring these web-sites:

Your project may or may not be Web based, but it must include programming.

The process of casting out the right-size project for a given period of performance can be very frustrating. You cannot ever know what you'll encounter while working on it. I believe that it's better to start more ambitious and later scale down, if necessary. Start with an initial idea of desirable services and discuss as much details as possible with your partners to figure out whether or not you asa team can develop it in the given time frame. Of course, you'll have chance to adjust your goals during the semester, as you learn more details about your target product.

3.   Proposal Format, Submission, and Feedback

Proposal Format
Each proposal should contain the following:
  1. Project title, Group number
  2. URL of the project web-site
  3. Team profile:
    1. Individual qualifications and strengths (such as: programming, design, presentation, documentation, management and organization)
      Note: It is expected that every team member shall be involved in all project activities; this only indicates individual strengths, not their sole responsibilities
    2. Name of the elected team leader, if any (having a team leader is optional)
      The team leader should act as facilitator, to organize group meetings and generally keep track of project activities (check here details about the role of team leaders)
  4. Proposed project description
    1. If you are proposing one of the projects described in class lecture notes, write down the project name and describe briefly if you plan to modify the project in any way, relative to the original description.
      STOP HERE AND SUBMIT THE PROPOSAL AS DESCRIBED BELOW
    2. If you are proposing your own idea for a project, your project description must be equivalent in the level of detail to the project descriptions provided in the class lecture notes in Section 1.5.
      Make sure to include the following:
      1. Statement of the goal
      2. List of the services to be provided by the proposed system (describe each service very briefly)
        For every feature, state whether you will write the programs to support it, or you will use existing programs.
        For example, if you state: The system will provide search facilities, will you write the program to perform the search, or you plan to use existing software?
      3. Description of the programming part of your project
        Explain what kind of data processing/analysis you will do. Tell us exactly why we should consider your project as programming. Just saying: The system will provide search facilities, may mean that you are using SQL database calls and doing no programming at all.
      4. Description of the typical system customers
      5. Mention also if you already have a customer (somebody interested in the end product that you will develop)

In case of novel project proposals (not based on the projects described in the class lecture notes), make sure that it is obvious to the reviewer that the proposed project includes programming. Note that Item 4.b.ii (list of the services) is not use cases; do not show those as a use case diagram. Rather, describe what value they offer to the customer. In general, avoid technical details of how you plan to develop it; rather, focus on what you're planning to develop. The proposal is more of a marketing document, and less of a technical document. However, it must be clear from the proposal what value is in your proposed project for the potential customers.

The document should be prepared on computer (special negative points for handwriting and hand-drawn figures).

Proposal Submission

Since the project should is team work, each team submits a single document to the TA. Bring a printed copy of the document to the TA's office on or before the due date.
Submission deadline: 5:00 p.m. on the due date

In case of novel project proposals (not based on the projects described in the class lecture notes), email immediately the breakdown of the individual contributions to the proposal.

Feedback

We will provide written feedback only for novel project proposals via email in case we feel the proposal should be revised. No feedback will be provided for proposals based on the projects described in the class lecture notes. The only two reasons for revision could be:

The students are encouraged to be ambitious in the first iteration of the project. You will have chance to revise your project objectives at the end of the first iteration, by the time of Demo #1. At that time, you must be realistic and you may have decide that you need to scale down the project scope, so to be able to finish it by the end of the semester.


BACK TO:

Ivan Marsic
Fri Dec 15 15:19:00 EST 2006