DTSC 5900/INFO 4900: Software Engineering for Data Scientists


Project

Project Deliverables
Iteration 1 Iteration 2
Proposal Report 1 Demo 1 Report 2 Demo 2

1.   Purpose and Method

The purpose of the course project is to provide the students with the knowledge of software engineering methodology and the skills to apply it. The project consists of two iterations, both focused around the same software product. The first iteration is exploratory and represents the first attempt at developing the proposed software product. The instructor will provide feedback and the students should reconsider and possibly revise the project goals before going on to the second iteration. Keep in mind that it's acceptable to modify your objective in the middle of the semester, once you learn more about the project and have better understanding of what you can accomplish within the semester timeframe.

Projects will also introduce students to team work, which is a most important for large-scale software development. The challenge is to make possible group efforts that discern contributions of each individual. The second iteration is development and also includes revision of the project goals. The deliverables for the first and second iteration are reports and demos.

 

2. Team Work and Project Management

Each team consists of 4 to 5 students. All students in a team work on the same project. Team work is required since team work is an integral part of large-scale software development.

You should form a team by Sept 19 and notify by email the instructor about the following:

  1. Team member names and email addresses
  2. Team leader name
  3. Project proposal

All team members should be part of all project activities. Saying that "nobody asked me to do this or that, or, I did everything that I was asked to do" is an unacceptable excuse. Each member should take the initiative to get the work done. Remember, All team members are equally responsible for all aspects of the project.

What if your team is not functioning well?

If you notice that your team does not function well or the team leader tries to misuse his or her role, and this could negatively impact your project performance, you should make every effort to discuss this with other team members. If the “problematic” team members (including the team leader) refuse to cooperate, you should discuss your concerns with the instructor. Complaints about poor team functioning expressed at the end of semester will be ignored.

3. Required Project Components

The goal of the project is develop software -- 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
  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. (Explain what kind of data processing/analysis you will do?)
  4. Display
    Visualization of the analysis results using graphs and charts
  5. Unique Capability
    Security, privacy, data encryption, Algorithim implementation, data mining, predicting, etc.

Project Must Include Programming

Number of Stakeholders (users, mangers, etc.). Have atleast 3-4 actors for your project.

Choose a target audience? The software should be targeted towards the audeince. Come up with a set of requirements and use case scenarios for each actor.

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.  Programming language, such as C, C++, Java, or C# should be used.
Note: Designing web pages which contain only HTML is not programming.
Your project can include web page design. But it should include designing active webpages using AJAX, Flash, etc.

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

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

You can develop a mobile application if it covers the above 4 reqirements (project components).

4. Proposal Format, Submission, and Feedback

Proposal Format
Each proposal should contain the following:

  1. Project title, Group number
  2. Team profile:
    1. Individual qualifications and strengths (such as: programming, design, presentation, documentation, management and organization)
      Note: It is expected that every team member would be involved in all project activities
    2. Name of the elected team leader
      Note: The team leader should act as catalyst, to organize group meetings and keep track of activities.
  3. Proposed project description
    1. If you are proposing one of the projects described in class or elsewhere on internet, write down the project name (with link as reference) and describe briefly, how you plan to modify the project.
    2. If you are proposing your own idea for a project, your project description must have the level of detail
      Make sure to include the following:
      1. Statement of the goal
      2. Target Audience
      3. List of the services to be provided by the proposed system. For each feature that you propose, write the details of how you plan to execute them. Also list the software used.
      4. Description of the programming part of your project.
      5. Description of the typical customers. Also give a scenario of a person who would be using your system. Why does he need to use the system? What features will he used to get his/her work done?
      6. 3-4 actors who would be using the software. An example user profile of an actor.
      7. Describe how Key components of the project will be implemented in terms of Data Input, Archiving, Analysis, Display, and the Unique Capability.

The document should be prepared on a computer.