| 6.170 | Laboratory in Software Engineering Spring 2002 Problem Set 6: Foliotracker, Part 2 PS 6 due: Tuesday, April 2, 2002 at 4:00pm |
Through a front-end GUI, Foliotracker enables the user to track the contents and value of multiple stock portfolios. A Foliotracker can be used to manage and maintain multiple stock portfolios where a portfolio is a collection of stock holdings. A portfolio could also contain meta-data about a person's transaction history, statistics, etc. Your first task is to determine what functionality the front-end should support. At the minimum, it should be possible to:
(a) Overview (15 pts) [One page or less]
A terse and precise
description of what the application's purpose is; what kinds of
functionality it supports; what your GUI looks like and how it is to
be used. Think of this section as a compressed user manual: the kind
of summary of an application often found on marketing flyers.
(b) MDD (15 pts)
Draw a module dependency diagram
showing the classes in Foliotracker, consisting of both front-end and
back-end parts, with complete depends and meets relationships. You can
treat all classes in javax.swing as just one box. Also, just include
relevant and important modules of your GUI--those that interact with the back-end API.
(c) Concrete Object Model (15 pts)
An object model of
Foliotracker, consisting of both front-end and back-end parts, at the
level of abstraction of the implementation. The objects in the model
should include all those involved in the representation. Make sure you
include information about mutability and about which references may be
null.
(d) Screen-shots of GUI (15 pts)
A set of screen-shots
of your GUI showing how it is organized and what functions it
offers. You should include those shots which reveal the functionality
you described in the Overview section.
athena% add graphics athena% man xvOr, if on a Windows machine, you can use Alt-PrtScn.
(e) Implementation (20 pts)
An overview design of your
implementation and the specifications of all methods and classes used
in your front-end implementation. Turn in the html files
generated by javadocs or in plain-text. Do not turn in your
source code. Also, turn in the specifications for your back-end
API (i.e. interfaces that the front-end accesses). You should also
tell us what you feel are important design decisions and how the
integration process of the front-end and back-end parts went. For
instance, you should tell us how the stock price is fetched and
updated and how modules interact during this process. Think of this as
an internal document that a colleague of yours can read to understand
how your code works so that he can maintain the software when you get
promoted to a managerial position.
(f) Testing (20 pts)
A terse but convincing overview of your
testing strategy, what kind of testing you performed, and what test
cases you used. List the functionality of Foliotracker as seen by the
user through the GUI and for each functionality, tell us how you
tested it.
This section will list clarifications and answers to common questions about the exercises. We'll try to keep it as up-to-date as possible, so this should be the first place to look (after carefully rereading the handout) when you have a problem.