Semester Project
Tom Kelliher, CS 245
Sept. 6, 2006
Read Ch. 2. Online essay.
Why software engineering?
- Teams.
- Deliverable due dates.
- Operational aspects.
- Comments.
- Initial team meeting.
Overview of object-oriented paradigm.
- Team Cardinal: Chris, Christine, Justin, Noah.
- Team BlueJay: Caren, Dan, Dave, Evan, Jon.
Determine your own group name (eight characters or fewer) and let me know.
I won't create your Wiki until you inform me of your team name.
Chapter 6 contains a complete example. All deliverables have equal weight,
with the exception of source code, which is weighted six times as much as
any other deliverable.
- 9/15: Refined requirements specification (3.4-3.9).
- 9/20: Scenarios (2.2).
- 9/17: Primary class list (3.10).
- 9/27: Class diagrams (3.10).
- 9/27: Use case diagrams (3.10).
- 9/29: Structured walk-through (in class) (3.8).
- 10/4: Object diagrams (5.3).
- 10/4: Revised class diagrams (5.2, 5.3).
- 10/11: User interface mock-ups.
- 10/4: State machines (4.7).
- 10/11: Collaboration diagrams (5.3).
- 10/18: Sequence diagrams (5.3).
- 10/18: Object diagrams (5.3).
- 10/25: Refined class diagrams (5.2, 5.3).
- 10/25: Class skeletons (5.2).
- 10/27: Informal walk-through/design refinement (in class).
- 10/25: Implementation plan (7.4, 7.5).
- 11/20: Source code.
- 11/1: Test plan (8.4, 8.7).
- 11/27: Test analysis report (8.5).
- 12/6: System Integration (7.4).
- 12/8: Code Freeze (no more work permitted).
- Final: System delivery and demo.
Pages, documents left in team Wiki.
I also expect each of you to create and maintain a work journal in your
team's Wiki.
Spelling and grammar matter a great deal. If necessary, use the Writing
Center.
- Don't let technical or personnel problems fester -- keep me in the
loop.
- Be conscientious about due dates -- there are no back-ups for anyone
on a team.
- If you aren't willing to work as hard as others, be up front about
it. The team will have to adjust. I think it would be fair to adjust
grades as a result. What do you think?
- Meet regularly with your team -- good communication is a key.
- Always create an agenda for every team meeting -- be as effective as
possible.
- Rotate responsibility for chairing team meetings -- give everyone a
chance to manage; don't let one person dominate.
- Technologies for use:
- Phoenix for server and client development (Java). Individual,
group accounts.
- Wiki for deliverables. Automatic versioning of everything except
attachments (?).
- Subversion repository for code files. Also keep versions of
documents here?
- Eclipse on phoenix for Java development. Subclipse plug-in for
access to Subversion repository.
- Visual Paradigm for UML for diagram production.
- New technologies ripe for developing small-scale prototyping: Java
applications (server), threads (client and server), networking (client and
server).
- Keep in mind that you will be producing a client/server system.
(Feedback from a previous semester.)
- The functional requirements speak for themselves.
- Expect some ambiguities.
- I will serve as the ``domain expert'' -- resolve ambiguities with
me.
Things to address now or at next meeting:
- Establish common meeting time.
- Assign meeting chair and rotation mechanism. Chair responsible for
agenda.
- Assign meeting secretary and rotation mechanism. Secretary
responsible for recording and distributing minutes.
- Discuss tool preferences and areas of expertise.
- Discuss how to share work products.
Thomas P. Kelliher
2006-09-02
Tom Kelliher