COMP 6471: Software Design Methodologies

Winter 2006

Assignment 4

Component 5

Collaborative Publication System

Nick Simmons

Team 3

ID# 4439449

Package Diagram for CU WME System

The Presentation layer contains the Activity Management component. This component is the interface for the GUI layer. It receives all user input and forwards it to the appropriate application layer component (sometimes the user management component as well, when changes to users are being made). The activity management component also accesses the user management component for authentication purposes.

The Application layer components all receive commands from the presentation layer (Which in this iteration only contains the activity management component). They do the actual work and contain all of the high level business logic. Some lower level logic is passed on down to the services layer.

The services layer handles mid level, application independent functions, such as managing the users of the system, and file handling. The Services layer uses the Foundation layer to carry out any low level operating system calls.

Sequence Diagrams

Add a comment

Publish Document

Class Diagram

The Controller class is the façade for the component. It is responsible for redirecting all messages external to the component. It contains an array of document objects that can be referenced by an ID (array index).

The document class is the only class that currently receives messages from the controller in this iteration. Each document has a list of document components as well as a comment list. It is responsible for creating the objects it is logically composed of (comment list and document components) and redirection of all messages related to its objects.

The document component class represents a part of a document that can be checked in/out independently by a user. It is responsible for asking the change manager to open a version of itself.

The comment list class is responsible for managing all comments for a specific document. It adds and retrieves comments by communicating with the file manager component.

Description of interface

The interface provided by the collaborative publication system component is as follows:

CommentDoc(docID, userID, commentText)

This function is used to add a comment to a specific document by a specific user. It is assumed when the function is invoked that the user has already been authenticated and has the proper permission to perform the operation.

The function takes as parameters the ID of the document to comment (comes from the UI), the ID of the user who is entering the comment (comes from user manager) and the text of the comment.

The post condition of the function is that the comment has been added to the document, or an error message is returned and displayed for the user.

PublishDoc(docID, format, location)

This function is used to publish (export) a finished document. It is assumed when the function is invoked that the user has already been authenticated and has the proper permission to perform the operation.

The function takes as parameters the ID of the document to publish (comes from the UI), the format to save the final publication in (doc, pdf, etc) and the location to export it.

The post condition of the function is that the document components have been compiled together into the final document and it has been exported, or an error message is returned and displayed for the user.

ChangeDocComponent(docID, componentID, version)

This function is used to open a document component for modification. It is assumed when the function is invoked that the user has already been authenticated and has the proper permission to perform the operation.

The function takes as parameters the ID of the document that contains the component, the component ID itself and the version number of the component to open (all come from the UI).

The post condition of the function is that the document component has been checked out and opened in edit mode, or an error message is returned and displayed for the user.

ReviewDocComponent(docID, componentID, version)

This function is used to open a document component for review (read-only). It is assumed when the function is invoked that the user has already been authenticated and has the proper permission to perform the operation.

The function takes as parameters the ID of the document that contains the component, the component ID itself and the version number of the component to open (all come from the UI).

The post condition of the function is that the document component has been opened in read-only mode, or an error message is returned and displayed for the user.

1