The design case study is the Concordia University Work Management Environment (CU WME). The CU WME provides support for an organisation of people who produce and publish documents.
There are several components which comprise the CU WME, namely:
The basic work pattern of CU publication team is as follows.
They upload files with images, text, etc that they will use in documents into the WME.
These files may be moved, copied, deleted, changed, backed-up, archived duirng the
course of the work.
Documents are produced using the information in files, as well as new information
entered into documents. They go through an iterative lifecycle of review and revision
before they are accepted and published. Several versions of a document may be published
over the course of years.
Documents may be treated as a collection of document parts, each part having its own lifecycle.
Document production is a collaborative activity.
Of course, documents are files too.
Good management of the publication process needs to track the location of files and documents, make sure they are backed up, and to log who does what with each document.
The group may wish to organise the publication of a document as a project. It may wish to define a specific workflow for the process of production and publishing the document. And if this needs to be charged to an internal or external account then the use of physical resources and personnel resources needs to be tracked.
Our aim is to produce a clean conceptual design and working proof-of-concept.
Note: Feature bloat will not be tolerated. This is an exercise in producing a clean design where it is obvious how additional features can be added to the design. However, there are many key issues that you need to identify as important for the CU WME and hence handle them in the design. These relate to collaborative concurrent work as well as resource access control in a distributed setting. These also relate to ensuring the different components work well together (using the abstractions consistently).
Note: We will not concern ourselves with design of user interfaces nor with the design of the database schema for persistency. We will design APIs to hide these concerns.
Note: In each assignment, a team member will be reponsible for one specific component: a different component for each assignment. The work for individual components must be consistent with each other, so the CU WME as a whole is consistent. Hence, you must understand the work done by every member of your team.
2006-01-23 Week 3: Assignment 1 due at 18:00 on 2006-01-25.
Assignment 1 delivers a two-page problem statement for the requirements
of each component.
Marking Schema for Assignment 1 (out of 10)
For each component deliver a two-page well organized document containing the following:
Look at Role-Based Access Control, Open Source Java Software, and other open source projects for inspiration.
Marks
StudentID Mark/10 Team Component 3955141 10.0 1 1 4439449 10.0 3 1 4440358 5.5 3 5 4561139 8.3 7 1 4562577 10.0 6 3 4798821 8.3 5 3 4812298 9.8 3 6 5132290 7.0 3 4 5297478 8.15 3 3 5315239 8.5 2 5 5315298 7.0 5 4 5317665 9.5 1 3 5357896 5.0 2 3 5374049 - - - 5404967 10.0 6 5 5511186 10.0 7 3 5544351 9.5 6 4 5548934 10.0 2 1 5599644 8.5 5 1 5611458 8.5 4 1 5632242 9.0 6 2 5653622 10.0 5 2 5696569 8.5 7 2 5758246 9.0 2 2 5761549 9.5 7 6 5763134 9.0 7 5 5763320 9.0 1 2 5775221 9.0 6 1 5787084 9.0 3 2 5788250 5.0 6 6 5789877 8.5 7 4 5798558 5.0 1 4 5812984 10.0 4 3 5847745 7.0 4 4 5946565 9.8 2 4
Sample solutions
Here are some of the best solutions. I have provided commentary.
2006-02-06 Week 5: Assignment 2 due at 18:00 on 2006-02-08.
Assignment 2 documents the domain model (of each component and the system as a whole).
Marking Schema for Assignment 2 (out of 10)
For each component deliver a five-page well organized document containing the following:
Marks
StudentID Mark/10 Component 3955141 8 3 4439449 7.5 3 4440358 8 1 4561139 7.25 6 4562577 10 4 4798821 7.25 4 4812298 10 2 5132290 7 6 5297478 5.5 5 5315239 8.75 1 5315298 6.5 1 5317665 8.75 6 5357896 7.5 2 5374049 5404967 7.75 6 5511186 8.75 2 5544351 8.75 5 5548934 6.75 4 5599644 8.5 2 5611458 9.5 4 5632242 8.25 3 5653622 10 3 5696569 8.5 2 5758246 9.25 3 5761549 9 5 5763134 8.25 4 5763320 9.25 5 5775221 8.75 2 5787084 8.25 4 5788250 7.75 1 5789877 8 3 5798558 6.5 1 5812984 9.5 2 5847745 8 5? 5946565 8.75 6
Sample solutions
Here are some of the best solutions. I will provide commentary.
Overall System
2006-02-27 Week 7: Assignment 3 due at 18:00 on 2006-02-29.
Assignment 3 documents the use cases of each component and the system.
Marking Schema for Assignment 3 (out of 10)
For each component deliver a five-page well organized document containing the following:
Marks
StudentID Mark/10 Component 3955141 8.25 2 4439449 9.0 4 4440358 9.5 2 4561139 7.75 5 4562577 8.75 5 4798821 4812298 9.25 3 5132290 6.0 1 5297478 9.25 6 5315239 9.5 3 5315298 8.5 2 5317665 6.0 1 5357896 9.0 4 5374049 5404967 5511186 9.75 1 5544351 8.5 6 5548934 9.0 2 5599644 6.75 3 5611458 6.0 6 5632242 8.75 4 5653622 7.5 4 5696569 8.5 6 5758246 8.0 6 5761549 8.25 4 5763134 7.5 3 5763320 8.0 4 5775221 8.5 3 5787084 8.75 5 5788250 8.0 2 5789877 7.0 2 5798558 5812984 7.25 5 5847745 7.5 1 5946565 9.0 5
Sample solutions
Here are some of the best solutions. I will provide commentary.
2006-03-13 Week 9: Assignment 4 due at 18:00 on 2006-03-15.
Assignment 4 produces a design of the basic system and Java code for a proof-of-concept.
Figure 13.1 shows you the information that the design model contains: a logical architecture showing the layers of the system; interaction diagrams which are the use case realizations; and the class diagram of the design.
As a team you should decide on a logical architecture (ie layers) for the system as a whole. In the package diagram, show where each component is located within the layers.
Each component should have a facade class which provides the interface for the services offered by the component. Clearly document this interface.
Develop a use case realization for two or three main use cases which carry out work activities related to the main goal of the system which is the publication of documents. Do not spend time on CRUD use case. Assume that you have facilities which can carry out CRUD and store the information in appropriate files (which are accessible to components).
Note that all commands should be invoked within the Activity Manager.
Do develop a class diagram for the design of your component.
Do create code skeleton and code stubs for your proof-of-concept. The code only needs to handle the two or three use case realizations described in your design model.
Marking Schema for Assignment 4 (out of 10)
Each person should submit a zip file containing a pdf file of the design model,
and a source directory containing your java proof-of-concept.
The design model will be a five-page document containing:
Marks
StudentID Mark/10 Component 3955141 7 6 4439449 10 5 4440358 8 3 4561139 9.5 4 4562577 8 2 4798821 4812298 10 4 5132290 5.75 2 5297478 8.75 1 5315239 9 2 5315298 6 3 5317665 9.75 4 5357896 8.75 1 5374049 5404967 5511186 9.5 6 5544351 8 3 5548934 9 5 5599644 8.75 2 5611458 7 5 5632242 9.5 1 5653622 8.25 1 5696569 8.5 5 5758246 10 4 5761549 8.5 3 5763134 9 2 5763320 5775221 8.25 4 5787084 9.5 6 5788250 6.25 5 5789877 9.75 1 5798558 8 2 5812984 9.25 1 5847745 5946565 10 3
Sample solutions
Here are some of the best solutions. I will provide commentary.
2006-03-27 Week 11: Assignment 5 due at 18:00 on 2006-03-29.
Assignment 5 is a refinement of Assignment 4 which includes special features
in the design and code. Concentrate on getting the proof-of-concept working.
If the design of the component needs improvement then iterate the design process
as well.
Marking Schema for Assignment 5 (out of 10)
Each person should submit a zip file containing a pdf file of the design model,
and a source directory containing your Java proof-of-concept including data files.
Submit a five-page document containing:
Marks
StudentID Mark/10 Component 3955141 8 4 4439449 5 6 4440358 9.5 4 4561139 8.5 3 4562577 9.5 1 4798821 4812298 7.5 5 5132290 7 3 5297478 8.25 2 5315239 9.75 4 5315298 8.25 1 5317665 9.5 2 5357896 8.5 6 5374049 5404967 5511186 7 5 5544351 8 2 5548934 9 2 5599644 9 3 5611458 7.75 1 5632242 8.5 3 5653622 9 2 5696569 8.5 4 5758246 8.25 5 5761549 7.5 2 5763134 7.5 1 5763320 5775221 6.5 5 5787084 7.5 1 5788250 9 4 5789877 8 6 5798558 9 5 5812984 8 3 5847745 5946565 10 1
2006-04-10 Week 13: Assignment 6 due at 18:00 on 2006-04-10.
Assignment 6 due at 18:00 on 2006-04-10 (note Monday deadline rather than Wednesday).
Assignment 6 is a refinement of Assignment 4 which includes exceptions and failures
in the design and code. Create a test infrastructure for your proof-of-concept; include JUnit
tests in the proof-of-concept; and present a final design. Your tests should include some
failure cases.
Marking Schema for Assignment 6 (out of 10)
Each person should submit a zip file containing a pdf file of the design model,
and a source directory containing your Java proof-of-concept including data files and test
infrastructure.
Submit a five-page document containing: