U.Minho MFP-II/0001: Lab. Project
[ DI/UM ]

[ Project requirements - overview | Your task
Project requirements - details | tinynew.gifFunctionality required | Links | Deliverables and deadlines ]

  Project requirements - overview

XYZ Ltd. is a software company which plans to design a comprehensive project budget control system (PBCS) for internal use. This system should replace the current system (loosely structured on spread-sheets) and be able to provide on-line information about the state of any on-going project with respect to a set of indicators, namely, project schedule, human resource allocation so far, amount of effort still needed, budget deviation, deadline offset etc..

The architecture of the system to be designed should include at least two components:

  Your task

Your group is part of the team of software designers which XYZ Ltd. has selected internally for developing the PBCS system. Company XYZ Ltd. is a client of VDMTOOLS® and so the project should start - as is the rule in XYZ Ltd. - by the development of a formal model of the whole system in VDM-SL notation. Later you should design a graphical user interface (GUI) and connect it to the model so as to animate it and obtain early feedback from XYZ Ltd managing directors who, despite investing in formal modelling, are unable to read raw VDM-SL notation.

Some details about the project follow. You should be able to filter ambiguities and inconsistencies from the requirements. You are welcome to complete these (e.g. by adding to the system's overall design structure) if convenient, provided you justify and report your own design decisions carefully.

  Project requirements - details

  About HRM

Time cards will be communicated to the HRM subsystem every week by email, in textual format. (Starting in a semi-automatic way, this process should in the future become fully automated in some standard way (cf. email list management). Detailing this part of the system is, however, irrelevant at this early stage of system specification. ). Each line in a time-card email message is a sequence of strings separated by spaces following the format:
	name@xyz.com date task1 time1 task2 time2 ... task n time n
Strings name@xyz.com and date uniquely identify a time card. Tasks task1 to task n indicate project tasks as recorded in the PMBC subsystem (see below). Time spans are measured as multiples of 1 hour.

Once these email messages are processed, time-cards are recorded in the HRM subsystem under the following (draft!) format, already in VDM-SL notation:

        types

        Db = map HRId to HResource;

        HResource :: profile: HRprofile
                     tcards: map Day  to Effort;

        Effort = map Task to Hours;

        Task :: project: PId
                subtask: TId;

        Hours = nat1;
        HRprofile = token;
        HRId = seq of char;
        PId = seq of char;
        TId = seq of char;
        Day = nat1;
You are welcome to discuss the adequacy of this model with your colleagues and to improve it. Don't hesitate to change it but please record and justify your own design decisions.

  About PMBC

-
A project in the system will be regarded as a collection of tasks.
-
A task is uniquely identified by its name and is further specified by providing the following attributes: a textual description of its purpose/contents, the collection of tasks which it depends upon (antecedent tasks), its classification (a collection of attributes used for management purposes) and its monitor record.
-
This record is a pair of data recording both the expected and the actual behaviour of the task wrt. its deadline and human resource allocation.
-
This allocation is measured in man-hour (mh) units of resources of a certain type (e.g. 40 mh of management, 80 mh of GUI programming). This means that each empolyee in XYZ Ltd. is «typed», i.e the system associates to each empolyee a set of competences (e.g. project leader, GUI programmer, etc.)

  Functionality required

The system should be prepared to answer to the user queries concerning the data either of a particular project or of a particular employee. The following are examples of queries to be specified. Allways structure your specifications in terms of query functions and auxiliary functions. Eeach group should add to this set any other functions regarded as useful for the project demo.

  1. Project Queries

    1. The total number of hours spent in a given project.
    2. The total number of hours spent by the employees in a given project.
    3. The total number of hours spent in a given task of a specific project by a given employee.

  2. Employee Queries

    1. The histogram of tasks carried out by a given employee. Graphical data displaying at GUI-level should be considered.
    2. The set of profiles of a given employee according to the tasks he/she had been involved into.

  3. Others

    1. Exporting mechanisms to CSV (Common Separated Values) to be applied to the project queries above. Interfacing with Microsoft EXCEL spreadsheet should be considered.

    2. By adding an extra subsystem which records the price per hour of a given human resource profile (HRprofile), the system should be able to calculate the total cost involved in the above mentioned results. Note that for calculating the total amount for a given project, the system should be able to calculate an average price to be applied.

  Links

It may help to click here and visit a project which has something in common with this one.


Voltar à pįgina principal de MFP-II.
Outras disciplinas leccionadas pelo DIUM


J. N. Oliveira
2001-05-29