DTSC 5900/INFO 4900: Software Engineering for Data Scientists
Project
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.
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:
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.
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.
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:
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.
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).
Proposal Format
Each proposal should contain the following:
The document should be prepared on a computer.