Assignment 5: Design Doc

Grade Value: 75 points

Due: Tuesday October 14, in class

Target Time: This exercise should take around 2-5 hours as a group.


hand drawn uml diagram

Sketch of a conceptual class diagram from

another example diagram

Architecture diagram from

A fundamental step in any implementation is designing the system architecture. This is an important process that will allow you to plan ahead, save rewriting time, and communicate with both the members of your group, and to us.


Feel free to make use of design patterns, either in describing parts of the architecture (in pattern format), or for referring to elements of the architecture that employ them.

Notes on Scheduling

As you're aware, you only have a couple weeks to build your application. This is a very short time, so proper planning is incredibly important. Break your application development into three stages: alpha, beta, and launch. (The schedule for the course has been updated to reflect this new schedule.)

Alpha release: This is a release just for your group members, so it does not need to be completely functional. The point is to have the basic skeleton, as well as the core feature(s) implemented. Since you'll be using it yourself, you'll get some valuable insight into the pain points for power-users. You'll also start catching some of the early show-stopper bugs.

Beta release: This release is for "friends and family," so you'll want most of the functionality finished. However, make sure you don't over-commit; as Getting Real puts it, Fix Time and Budget, Flex Scope.

Launch: This is the public release. We'll be offering CS147 students experiment hours in return for testing your projects, so you could sizable traffic. This is when you start running A/B tests, analyzing logs, and putting on polish. Again, It's better to make half a product than a half-assed product.

More detail is coming on each of the releases, but use these notes to lay out a schedule. The schedule you submit is not set in stone; it's for us to be able to discuss with you, and for your planning.

We suggest you break down tasks to 1-8 hours, so that your planning will be sufficiently granular.

in studio

Create a diagram of your application. This diagram can be a class diagram, like the above example. If you're not using classes, the diagram should convey an overview of your data, as well as functions/methods being called to act upon the data.

You'll have 10 minutes to present your diagram and explain your architecture to the class.