Semester Project
Tom Kelliher, CS 245
Sept. 8, 2008
Read Ch. 2. Online essay.
Why software engineering?
- Teams.
- Deliverable due dates.
- Operational aspects.
- Comments.
- Initial team meeting.
Overview of object-oriented paradigm.
- Team Peregrine: Jon, Melissa, Russ, Zach, Mike.
Determine your own group name (eight characters or fewer) and let me know.
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/19: Refined requirements specification (3.4-3.9).
- 9/24: Scenarios (2.2).
- 9/19: Primary class list (3.10).
- 10/1: Class diagrams (3.10).
- 10/1: Use case descriptions and diagrams (3.10).
- 10/3: Structured walk-through (in class) (3.8).
- 10/8: Object diagrams (5.3).
- 10/8: Revised class diagrams (5.2, 5.3).
- 10/15: User interface mock-ups.
- 10/8: State machines (4.7).
- 10/15: Collaboration diagrams (5.3).
- 10/22: Sequence diagrams (5.3).
- 10/22: Object diagrams (5.3).
- 10/29: Refined class diagrams (5.2, 5.3).
- 10/29: Class skeletons (5.2).
- 10/31: Informal walk-through/design refinement (in class).
- 10/29: Implementation plan (7.4, 7.5).
- 11/24: Source code.
- 11/5: Test plan (8.4, 8.7).
- 12/1: Test analysis report (8.5).
- 12/10: System Integration (7.4).
- 12/12: 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 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/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.
- GanttProject for project management.
- 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
2008-09-05
Tom Kelliher