-
Notifications
You must be signed in to change notification settings - Fork 0
Projects
(Adapted from http://pl.cs.jhu.edu/oose/index.shtml)
- Aim for 4 people in a project group.
- There are no limits placed on the topic of the project, but there are some limits on the software structure, described below.
- Innovate! Your project must include some significant original ideas. Feel free to borrow cool ideas from others, but give them credit and make your idea better. You learn to innovate by doing it. It also must serve a real purpose, not some hypothetical need that does not exist.
- Large software is difficult to produce without organization; we will follow a common timeline of six iterations, one every two weeks.
- Communication is an important element of team programming. There will be several class sessions devoted to individual team work and discussion with the professor. There will also be presentations (see below) to give you an opportunity to describe your project and to allow for critiquing by the whole class.
- Initial project proposals will be reviewed, and if your project seems non-innovative or too simple or difficult, you will either be encouraged to switch topics or to make significant changes.
Project development is broken down into a sequence of six two-week iterations. Certain milestones need to be hit by each iteration. Starting with the coding in Iteration 3, you need to turn in an iteration report describing what was accomplished compared to what you planned to do, and your plans for the next iteration, by Wednesday (class day) of that week.
Week 4:
Declare who will be in your project group and propose an initial idea for a topic. Post a message to course piazza forum under project proposals discussion, when you have your group, with your group name, all of your team members’ names, emails, and a paragraph or two giving your initial idea(s) for your project topic.
Week 5:
Give an analysis of the requirements your project must meet for it to fulfill its intended function. The main things you need to produce are feature lists, UML use case model, and UI sketches.
Week 7:
Elaborating on your requirements, flesh out a design proposal, including a draft of data structures via UML class diagram. You will also need to have fixed your chosen frameworks/tools and submit some initial prototyping code in your chosen framework.
Week 9:
Some core functionality is coded, and at least a few tests are passing.
Week 11:
Core functionality of the project is working, and there are a good set of tests for that core.
Week 13:
Alpha release: the project generally works but has some bugs and is missing some desired features.
Week 15:
Beta release: Submission of code, and demonstration of your final project.
Being a good software developer also means being able to communicate what you did and will do to clients, management, and your peers. The oral presentation component of the projects helps to give you practice in this arena.
There will be two presentations: each group will present an overview in April, and there will be a presentation at the final demo. We will give details about how to present later.
Some project webpages from JHU course are very helpful to see what a good scope of a project is, and what must be done for the first two iterations.
- 2018 Group 21: Scalez (full project also available for viewing including project boards, changelog, etc)
- 2018 Group 3: RHYM (full project also available for viewing including project boards, changelog, etc)