| Type | Basis | Description | Value |
|---|---|---|---|
| team | work product | Index of Work Products | 2 |
| team | work product | Work Plan | 5 |
| team | work product | Architectural Overview | 8 |
| team | work product | Architectural Diagrams | 4 |
| team | work product | Component Specifications | 8 |
| team | work product | Architectural Rationale | 4 |
| team | work product | Architectural Issues | 4 |
| individual | work product | Component Design Analyses | 16 |
| team | whole submission | Quality of Architecture | 8 |
| team | work product | Post Mortem Analysis | 8 |
| team | methodology | Use of Version Control | 4 |
| team | methodology | Planning and Management | 4 |
| individual | work product | Quality of Individual Work | 15 |
| individual | methodology | Share of Work | 5 |
| individual | methodology | Schedule Adherence | 5 |
For this project you will:
Standard project activities (like plan development, post-mortem,
and index of work products) should be assigned to different
people (than in the previous project), so that everyone
gets an opportunity to do each of these tasks.
In doing this, you will discover what the hard parts of each
component are. In coming to understand those problems, you
will come up with changes to the architecture that would make
them easier to implement. You will also discover unforseen
interactions between components. Take these lessons back to
the group, enumerate them, and go back to step 2 again.
If your system has more major components than team members, some
team members will have to do designs for multiple components. They
will receive the average grade for the quality of their designs,
but this will credit them with a larger share of work (to balance
the work among team members).
It is unlikely that your product will have fewer major components
than your team has members ... but if you find this to be the case,
pick the largest of your components and recursively decompose it
into major sub-components (with specified functionality and interfaces)
until you create enough components to enable each team member to
at least one preliminary design.
WARNING
This is a team project, and most of your individual grades will
be determined by the quality of the team's results. This means that all
of you should be concerned about the quality of all of the work products.
Some of the assigned tasks are intrinsically whole-group activities
(review, architectural response, post-mortem).
Many others, while in principle doable by one person,
will probably have significant input from other team members.
Each major work product should have a primary author,
who works up the basic organization
and personally writes most of the prose.
The author of a work product is expected to gather and
synthesize tributary work from other team members.
Note, however, that since the whole team will be graded
on the quality of each work product, it is only prudent
for the entire team to review any high-value work product
before it is submitted.
The contributions (e.g. measured in hours) of each team member
to each work product should be reflected in the index of
work products, as should be the primary author of each
work product. To be counted as the primary author, you must
have personally written at least 2/3 of the text in the
submitted work-product.
In addition to an overall team grade, a portion of each
individual's grade will be determined by:
This project requires the same general project index, plans
and post-mortems that are part of every project in this class:
This will tell us where to find the files we will grade.
If you use (different versions of)
a single file for multiple deliverables, tell us
which revision number to use for each.
It is expected that this plan will be revised many times
(as your understanding of the problem evolves, and you
respond to unanticipated events). Feel free to update
the plan (with new subversion check-ins) as often as
necessary.
Your plan will be graded on the basis of:
A good plan will ensure that all work is done before the
due date, but allow people a reasonable amount of slack
in when they have to do each particular task. An overly
agressive plan that people won't be able to achieve is
no better than a realistic plan to get the work done late.
Experience has shown that vague plans are easier to create
up-front, but create problems down-stream (when people
turn out to have been unclear about exactly what they were
supposed to do, by when, and in what form they were to
deliver their output). Similarly if you do not specifically
map out the dependency relationships among the tasks, you
may find that your schedule is unrealistic, because it
does not allow sufficient time for sequential tasks.
Individuals will be graded on the extent to which they
were able to perform their work according to the plan
of record.
The project specific grade-ables for this project are:
You will be graded on the basis of:
You will be graded on the basis of:
You will be graded on the basis of:
If the architecture is obvious, explain why it is obvious.
If the architecture is non-obvious, describe the issues that
drove it to its current form.
You will be graded on the basis of:
On the off chance that your architecture is rock solid, explain
(point-by-point) why if fully satisfies all requirements and all
of the characteristics of a good architecture.
You will be graded on the basis of:
I grade for content and not style, and would prefer that
you spend your time organizing your thoughts rather than
formatting documents. My preferred file type for most
work-products is ASCII text (with a reasonable line length).
Some deliverables may be awkward to prepare as ASCII text:
I am telling you the criteria on which I will grade submissions.
I will not, however, give you samples for most of the work products
I expect:
I will, however, suggest a layout for your
Index of Work Products.
I make an exception here because:
3. Assignment
This project involves a great many activities, most of which
require the participation of others and are sequential in nature
(one task cannot be started until other tasks are completed).
If you are to be successful, you will need to devise, and follow
a schedule that spreads this work out over the entire alloted
time.
A group can propose an architecture in about an hour, and
an individual can probably consider its implications on the
design of a component in a similar period of time. But
architectures do not spring fully formed from your imagination.
elaborating and refining an architecture takes many iterations
of proposal, elaboration, and problem analysis. You should
expect to have to go through 3-6 such cycles before you have
a viable architecture.
Make sure you schedule your work accordingly.
4.Grading
4.1 General Criteria
It should also describe, for each work product:
breaking the project down into sub-tasks, and describing
the interdependencies between them, and who will do which when.
This could be as simple as a dozen tasks with names, dates,
and simple descriptions ... but may find that a more
detailed elaboration gives you a better understanding of
the work to be done and how you will do it.
The team will be graded, as a whole, on its ability to
We will determine when work was done by looking
at the dates of the final subversion check-ins.
Monitoring plans should be included in your
project plan. Problems that come up should be
discussed in your post-mortem.
Detected problems and responses should be discussed
in your post-mortem, and reflected in revisions to
the plan.
4.2 Project Specific Grade-ables
Briefly describe the way the system is structured and how
the components cooperate to achieve the requirements.
If your architecture is an obvious one, a few sentences
may suffice. Otherwise, you need to describe it well
enough to make it obvious.
One or more UML diagrams illustrating the major system components,
their relationships to one another, and the key system interfaces.
For each major component, describe its functionality (in the system),
its major external interfaces (to other components, and outside the
system), and the requirements it must satisfy.
Enumerate and briefly describe all of the major concerns you have
about your final architecture. A "major concern" is anything that
causes you to doubt that you would be able to successfully build a
working product in a reasonable schedule.
4.3 Work Product Formats
File Types
If you prepare these using Microsoft Office tools, you can
submit those files as your work-products. If you use other
tools:
The packages you submit for review, and the review report you
return to the team whose product you reviewed should be in a
directly readable form (e.g. pdf and/or ascii text).
Document Format