CS414 – Homework 4
The Object Constraint Language (OCL) and Activity Models
Due Monday, November 8, 2010 by Midnight
Submit via RamCT
- (50 pts) The following is a requirements class diagram for a scientific manuscript submission and review system (MSRS) for a journal. Authors submit papers (called submissions) to the system. A submitted paper is assigned to an editor who is responsible for finding at least three scientists (reviewers) to review the paper. Each reviewer prepares and submits a review for the paper. In the class model, an EditorAssignment object represents an assignment of a submission to an editor and tracks the reviewer assignments for the paper. A ReviewerAssignment object tracks the reviewer an editor assigns to a paper. CalDate is a date data type with the following operations:
- d1.isAfter(d2) returns true if d1 is a date after d2, and false otherwise.
- d1.isBefore(d2) returns true if d1 is a date before d2, and false otherwise. (Note from the lecturer: someone is going to point out that one of these two operations is unnecessary – you can ignore one of them if you feel strongly about it)
- d1.equal(d2) returns true if d1 is the same date as d2 and false otherwise
- d1.duration(d2) returns the number of days in the period d1 and d2 (including d1 and d2) - (20 pts) State the following invariants using the Object Constraint Language (OCL).
- The date that a reviewer completes an assignment (completionDate) must occur after the date the paper is assigned to the reviewer (revassignmentDate). (3 pts)
- The date a reviewer is assigned to a paper (revassignmentDate) must occur after or on the same date an editor is assigned to the paper (edassignmentDate). (3 pts)
- A completed reviewer assignment must have a review associated with it. (4 pts)
- If the status of a submission is UnderReview then at least one reviewer has been assigned to the paper and less than three reviews have been submitted. (5 pts)
- If the status of a submission is Completed then the submission must be linked to a completion date and at least three reviews must be available. (5 pts)
- (30 pts) Define the following query operations using the OCL.
- Return all the reviewers assigned to a paper that completed their reviews in 14 days or less (i.e., the duration from the review assignment date to the review completion date is 14 days or less). (10 pts)
- Return all the reviewers assigned by an editor who have not yet completed a review. (10 pts)
- Return the number of papers assigned to an editor for which the duration between the editor assignment date and the reviewer assignment date is 2 days or less for ALL the paper’s reviewer assignments. (10 pts)
- (50 pts) Draw an activity diagram describing the MSRS workflow for submitting, reviewing, and notifying authors of review results. The following are requirements for the workflow.
- After an author submits a manuscript the editor-in-chief must invite an editor to supervise the review of the manuscript. If an invitation is not sent within 1 week then the editor-in-chief is sent a reminder. A reminder is sent out each week until an invitation is sent.
- Editors are invited to manage the review of manuscripts by the editor-in-chief. If an editor does not respond to an invitation within 1 week a reminder is sent out to the editor. If after 2 weeks has elapsed and the editor still has not responded, then the editor-in-chief invites another editor.
- Reviewers are reminded that their reviews are due 1 week before the review deadline. If a review is not received within 1 week after the review deadline a reminder that the review is past due is sent to the reviewer. This reminder is sent each week after the deadline until either the review is received or 3 weeks have elapsed. After 3 weeks, the editor must find another reviewer to complete the review within 2 weeks.
- When an editor receives all reviews, he/she makes a recommendation to accept/reject the manuscript based on the reviews. This recommendation is sent to the editor-in-chief.
- When an editor-in-chief receives a recommendation from an editor, he/she makes a final accept/reject decision and notifies the author of the decision. The final decision is also sent to the editor and the reviewers in separate emails.