CSC 454 Project

Our term analysis and design project

Project blog: csc454-ncc.blogspot.com


Goals

Through this project experience, the goal is to improve your understanding of:

  •  The Unified Process (UP) and agile development methods,
  •  Object-oriented analysis and design principles, and
  •  Design patterns

The primary obstacles to this goal (IMHO) are time, apathy, and a lack of real users... not necessarily in that order.


Logistics

The project is worth 20 points, 20% of your total grade for the course.

The tentative schedule is:

  •  Iteration 1; 4 points; 1 week; due Saturday Oct 28
  •  Iteration 2; 8 points; 2 weeks; due Saturday Nov 11
  •  Iteration 3; 8 points; 1 week; due Sunday Nov 19

Deliverables

I will look for the following artifacts from your project:

Deliverables Table

Discipline Artifact Inception

Iteration 1

Elaboration

Iteration 2

Elaboration

Iteration 3

Business Modeling Domain Model   s r
Requirements Use-case model s r r
  Vision s r r
  Glossary s r r
Design Design model   s r
Implementation Code   s r

[ s = start, r = refine ]

This table is almost a straight steal from Larman, page 118. It describes the artifacts created through three iterations of a UP/agile development methodology.


Iteration 1

As your project manager, I am happy to announce the beginning of Iteration 1 (ITER1), the inception phase. Details:

  1.  ITER1 will end Saturday October 28th

  2.  See the Deliverables table above for what artifacts are due

  3.  The deliverables for ITER1 will be worth 4 points

You should consult your notes and the Larman text for elaboration on what your deliverables should look like. I would pay especially close attention to Larman's guidelines that he is so fond of passing on to you. This should help guide you in making decisions about each artifact. I would also email me early, rather than later, with your questions.

My short notes/comment regarding the ITER1 deliverables:

  • The Vision artifact shouldn't be more than a paragraph or two.

  • For the Use Case Model, remember that Use Cases are text. Do some together, preferably. Each team member should then pick one use case to flush out in greater detail. Toward the end of Iteration, the team should create a Use Case UML diagram showing the use cases you have so far, the actors, etc.

  • Your Glossary is just a dictionary... nothing fancy. Use these terms liberally in your other artifacts.


Iteration 2

Iteration 2 (ITER2) starts the elaboration phase and commences Saturday October 28th.

The deliverables for ITER2:

  1. ITER2 will end in 2 weeks on Saturday November 11.

  2. See the deliverables table for artifacts of ITER2. Read on for a more detailed description of the Design Model below.

  3. Each team will have a 3-4 hour pair-programming session in the spirit of Extreme Programming (XP). I will be available on Saturday November 11th from 8:00 to noon, if that time works for everyone. Select a small portion of your design to implement and test. If you can't make the 11th, then please email me and we'll try to arrange a different time. Check out www.extremeprogramming.org (or even better www.extremeprogramming.org/rules.html ) and your notes to brush up on your XP practices. In fact, maybe I could play the role of the customer, instead of moping around and answering Java questions. An ideal program chunk to work on would be something involving a pattern application, eh, though that is not a requirement.

I think the Domain Model artifact is pretty well flushed out in Larman's Chapter 9.

The Design Model is less clear. So, for your design model, please include the following:

Artifact Description
UML class diagrams A series of class diagrams showing the classes that comprise your design and their relationships.
UML sequence diagrams Each team member should complete one UML sequence diagram to show me that you can do it, then move on.
Technical notes A text description that ties your technical documents together. Please include a special section describing the patterns that you believe may be applied to your design. Any discussion of how you got to this point is needed for me to evaluate where you are.

On each artifact, please indicate the roles of each team member, either as creator of reviewer.

What will I be looking for?

  •  When in doubt, follow Larman's nice guidelines.
  •  When in doubt about Larman, then email me.
  •  Your glossary terms should be consistent throughout all artifacts... use cases, domain model, design model, code!
  •  Artifacts are for communication, not documentation. So:

    • Hand-drawn diagrams are preferred in our current agile state. Yes?

    • Use your glossary terms throughout

    • You can use your technical notes to communicate special cases or frustrations to me, your project manager

I will meet with each team at the end of ITER2, where you can walk me through the current state of your project. Again, the 11th would be ideal, but we'll see. I can provide copying services on the 11th for teams that have hand-drawn stuff.

If something is missing or confusing, then please email me. Otherwise, RUN!

thanks... yow, bill


Iteration 3

For iteration 3 (ITER3), we will use two guides: Larman Chapter 40 and the www.extremeprogramming.org web site. Here are some specific, interesting links:

I'll have some handouts from these sources for emphasis as well.

As project manager, I will have an iteration planning meeting with each team when you come in for your pairs programming on Saturday. We will:

  •  Review the current suite of use cases and target which ones we feel need "improvement" or elaboration. Any artifact may be up for revision as the team see fit.

  •  We'll select one or two use cases to implement in this iteration.

  •  Each team will then decide how the work from use case to working, tested code will happen... as in iteration 2. You'll want to flesh out a UML class diagram for the new stuff. You don't have to do pairs programming for this iteration, but you can if you like. Please use the other aspects XP methodology, like unit test first, where you can.

  •  I'll ask that you try and apply at least one pattern in your solution this time. Identify the pattern in your code documentation please. Speaking of documentation... please continue using Javadoc.

  •  Please integrate your pieces of code into a single "system" along with your unit tests.

  •  Email me the final decisions on what will be done on iteration 3 for your team... the specific of who's doing what over the next week.

Iteration 3 is the end of the road for our project, alas. I'll ask that the final versions of all your documents and code be on the k: drive by the deadline. Please leave me lots of README files and descriptions so that I can understand what you are doing. You will be graded on the final state of all your artifacts and your code.


Notes: Oct 7, 2006

We'll pair off and each team will complete a separate project.

I will do my "Graphical Programming Tutor" idea in class as an example to demonstrate concepts.

Today we'll get the blog going for everyone (or die in the attempt). There we'll banter project ideas. I'll start the fire.

Next week I'll firm up the specifics of what I want you to deliver. A sneak peek:

  •  Use an agile development approach (where possible)
  •  I hedge my bets because our circumstances (meeting only every other week) are work against us. We won't go all the way down to code, and I won't require that you scurry up users. Sigh.
  •  Deliverables? I will whittle Larman's RUP down to what I expect you guys to produce. But we will start with a requirements statement, then use cases, then domain model, then CRC cards, and so on, until you can create some "nice" class diagrams. I believe that UML class diagrams will be the endpoint of this particular journey.

There is more "coming soon."

stay tuned... yow, bill