Computer Science 121 - Project 1c

Architectural Review

Fall 2007

$Id: proj_1c.m4 108 2007-10-23 19:42:10Z Mark $

Critical Dates

Project Description

  1. Introduction
  2. Deliverables Table
  3. Assignement Details
  4. Grading
  5. Rules and Submission

1. Introduction

This is the last part of a three part project. In this part, you will continue with the same teams and product concepts you had in Project 1A. You will take the product description and requirements developed in project 1A, and the architecture developed in project 1B, conduct an architectural review of that design, and revise the architecture to address any issues that are raised in the course of that review. Once an architecture has passed this preliminary review, it is reasonable to move on to developing detailed designs, project plans and test plans based on that architecture.

This project complements and builds on the materials presented in the lectures on:

The primary goal of this project is to give you real experience with the preparation and performance of a design review. A secondary goal is to provide you with detailed feedback on the quality of your architectural designs, and help you to understand how well prepared such designs must be. And, as always, we hope to further develop your abilities to intelligently plan and carry out a group endeavor, and to critically evaluate the completed effort.

2. Deliverables

The graded deliverables for this project are summarized in the following table. All are described in greater detail in the assignment descriptions and grading criteria.

Type Basis Description Value
team work product Index of Work Products 2
team work product Work Plan 5
team methodology Review Meeting 16
team work product Review Report 10
team work product Architectural Response 4
team work product Updated Architecture 12
team work product Post Mortem Analysis 8
team methodology Use of Version Control 4
team methodology Planning and Management 4
individual work product Prepared Review Notes 11
individual work product Updated Component Design 12
individual work product Quality of Individual Work 3
individual methodology Share of Work 6
individual methodology Schedule Adherence 3

3. Assignment

For this project you will:

  1. come up with a plan and schedule for reviewing and revising your architecture, creating the required work products, and dividing that work among your team members.

    Standard project activities (like plan development, post-mortem, and index of work products) should be assigned to different people (than performed them in previous projects), so that everyone gets an opportunity to do each of these tasks.

  2. Get another team to agree to review your project. This may be a reciprocal arrangement.

  3. Prepare a package containing:
    • the product description you developed for your requirements project.
    • the final requirements you developed for your requirements project.
    • the architectural overview, diagrams, specification, rationale, and issues you developed for your architecture project.
    • the preliminary component design analyses you prepared for your architecture project.
    • a note overviewing those documents and suggesting the order in which they should be read.

  4. Schedule a formal review session, where the selected team will review that package.

  5. As individuals, study the package you obtain from another team, preparing detailed notes on issues to be discussed during the review meeting.

  6. Conduct a formal review of the package you have studied.

    The team that designed that product will be present to observe and to answer questions, but will have no other formal role in the process.

  7. Write up a report of that review, carefully enumerating all action items, and return it to the team whose product you reviewed.

  8. Meet with your own team to understand the feedback you got from the review of your product, and figure out how to address all of the must-do and should-do action items.

  9. Update your architectural specifications accordingly.

  10. Meet with your team again to confirm that the updated specifications correctly respond to all of the raised issues, and do not introduce new problems.

  11. Prepare a description, for each component, and for the overall architecture, of what problems were discovered and how they were addressed (an overview to the issues and changes).

  12. conduct a post-mortem of the entire project, and write up a report of that review.

WARNING

SPECIAL WARNING

4.Grading

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:

4.1 General Criteria

This project requires the same general project index, plans and post-mortems that are part of every project in this class:

4.2 Project Specific Grade-ables

The project specific grade-ables for this project are:

4.3 Work Product Formats

File Types

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:

If you prepare these using Microsoft Office tools, you can submit those files as your work-products. If you use other tools:
  1. develop the work-product under subversion.
  2. produce a pdf output of your final version.
  3. check that final version of the output into subversion in a reports directory.
  4. We will use the pdf to grade the work-product, and the subversion history of the original source to grade your use of version control.
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

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:

  1. very little creativity goes into this work-product.
  2. a good layout makes projects much easier to grade.

5. Rules and Submissions

When you are done, create a message that includes:

And submit all of these things to me in an e-mail with the subject "cs 121 - Project 1c".

If you will be submitting your project late, please let me know (so that I know I haven't lost your submission message).

Collaboration and Citation

This is a team project, but different individuals will have primary responsibility for different processes or work products (or different parts of a single work product or process). Each team will be working on a different type of product. You are free to talk your team members (and for that matter other teams) about the processes you are following. You may review your work products with your own team members, and revise them based on their feedback ... but ...

  1. If you are the primary author of a work-product, you must cite the source of text you did not write (if it is more than a sentence), or any information that did not originate within your team or from your interviews.

    You will be doing research to develop your product definition and requirements. I expect that many of the ideas for your product will come from this research. Cite all of your sources for each work product, and explain how each source contributed to your work products.

  2. You may not share any of your work products (other than as required for reviews) with members of other teams.