Semester Project
Tom Kelliher, CS 245
Sept. 8, 2010
ACM Programming Contest.
Read Ch. 2. Online essay.
Why software engineering?
- Teams.
- Deliverable due dates.
- Operational aspects.
- Comments.
- Initial team meeting.
Overview of object-oriented paradigm.
- Team Cairn: Jessica, Ari, Tim, Julian, Owen, Roz.
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/17: Refined requirements specification (3.4-3.9).
- 9/22: Scenarios (2.2).
- 9/17: Primary class list (3.10).
- 9/29: Class diagrams (3.10).
- 9/29: Use case descriptions and diagrams (3.10).
- 10/1: Structured walk-through (in class) (3.8).
- 10/6: Object diagrams (5.3).
- 10/6: Revised class diagrams (5.2, 5.3).
- 10/13: User interface mock-ups.
- 10/6: State machines (4.7).
- 10/13: Collaboration diagrams (5.3).
- 10/20: Sequence diagrams (5.3).
- 10/20: Object diagrams (5.3).
- 10/27: Refined class diagrams (5.2, 5.3).
- 10/27: Class skeletons (5.2).
- 10/29: Informal walk-through/design refinement (in class).
- 10/27: Implementation plan (7.4, 7.5).
- 11/22: Source code.
- 11/3: Test plan (8.4, 8.7).
- 11/29: Test analysis report (8.5).
- 12/8: System Integration (7.4).
- 12/10: Code Freeze (no more work permitted).
- Final: System delivery and demo.
Pages, documents left in TRAC.
- 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 the rest of your team, be up
front about it and bring it to my attention.
- Meet regularly with your team -- good communication is a key.
- Always create an agenda for every team meeting -- be as effective as
possible.
Distribute agenda, reports, etc. in advance of the meeting.
- Rotate responsibility for chairing team meetings -- give everyone a
chance to manage; don't let one person dominate.
Or, have one manager. Advantages/disadvantages.
- Technologies for use:
- Phoenix/personal workstations for server and client development
(Java). Individual, group accounts.
- TRAC 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.
- JUDE Community 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
2010-09-08
Tom Kelliher