3.6 Exercises

Solutions to these exercises are supplied in Section B.1.1

  1. Describe Figure 3-44: identify the class and describe its attributes and operations.

    Figure 3-44. Report class
    figs/Luml_0344.gif
  2. Describe Figure 3-45: identify the object and describe its attribute values.

    Figure 3-45. Report object
    figs/Luml_0345.gif
  3. Describe Figure 3-46: identify the classes and their associations.

    Figure 3-46. Workers, skills, projects, and activities
    figs/Luml_0346.gif

    Update the diagram stepwise to show the following details. After each step, check your answers against the solutions shown in Appendix B:

    1. When a worker has a skill, the years of experience is maintained for the relationship.

    2. A worker may have another worker as a manager, and a worker who is a manager must manage five or more workers. Given a manager, you can determine whom she manages, but given a worker, you are unable to determine who his manager is.

    3. An activity may have no more than one previous activity and any number of next activities. Using these rolenames, we can show how activities are ordered. Given an activity, you can only determine its next activities (if it has any) but not its previous activity (it if has one). This is similar to how a team may be made of subteams in that you have to have a team before you can have a subteam.

    4. A worker is not simply associated with a set of skills, but a worker has skills. Specifically, a worker must have three or more skills, and any number of workers may have the same skill.

    5. A project is not simply associated with a set of activities, but a project contains activities. Specifically, a project must have one or more activities, and an activity must belong only to one project.

    6. Projects and activities are specific types of work.

  4. Describe Figure 3-47: identify the classes and their associations.

    Figure 3-47. Plans, workers, projects, and activities
    figs/Luml_0347.gif

    Update the diagram stepwise (check your answers after each step in Appendix B):

    1. A plan pertains to a single project and involves one or more workers and one or more activities.

    2. A worker may have zero or more plans, and a plan must belong to a single worker.

    3. Each plan contains a single schedule. Given a plan, you can determine its schedule, but given a schedule, you are unable to determine the plan to which it pertains.

    4. When an activity is on a schedule, it is called a scheduled activity, and the start date, end date, and duration are maintained for the scheduled activity. Each schedule may have zero or more activities, but an activity must be associated with a single schedule.

    5. A milestone, a major point in project, is a special type of scheduled activity where it has zero or more work products that have a specific status. A milestone has any number of work products associated with it, and a work product may be related to any number of milestones.

  5. Given the solutions to questions 3 and 4, create a diagram to communicate the following:

    1. Nora manages Andy and Jonathan, who are all workers. You are interested in the following skills: project management, requirements gathering, analysis, design, implementation, testing, deployment, Extensible Markup Language (XML), Structured Query Language (SQL), Java, C#, and C++. Nora has 10 years of project management skills, 5 years of analysis skills, and 3 years of design skills. Andy has 3 years of experience in each of the following skills: XML, SQL, Java, and C#. Jonathan has 10 years of experience in SQL, 5 years of experience in C++, 2 years of experience in Java, and 6 months of experience in C#.

    2. A project named Eagle contains the following activities: requirements gathering, analysis, design, implementation, testing, and deployment. The requirements gathering activity is associated with the analysis activity where the requirements gathering activity plays the role of the previous activity and the analysis activity plays the role of the next activity. The analysis activity is associated with the design activity where the analysis activity plays the role of the previous activity and the design activity plays the role of the next activity. The design activity is associated with the implementation activity where the design activity plays the role of the previous activity and the implementation activity plays the role of the next activity. The design activity is associated with the implementation activity where the design activity plays the role of the previous activity and the implementation activity plays the role of the next activity. The implementation activity is associated with the testing activity where the implementation activity plays the role of the previous activity and the testing activity plays the role of the next activity. The testing activity is associated with the deployment activity where the testing activity plays the role of the previous activity and the deployment activity plays the role of the next activity.

    3. Nora and Phillip, who are workers, are on a project named Hawk. This project involves acquisition activities followed by implementation activities. Nora has 10 years of acquisition skills and 5 years of implementation skills. Phillip has 5 years of implementation skills. Nora and Phillip are associated with those activities that correspond to their skills. The project also has a plan, and Nora is the manager for the project.

  6. Describe Figure 3-48: identify types, interfaces, undifferentiated classes, and implementation classes; and describe their attributes and operations. Update the diagram to reflect that a report is a type of documentation that may be viewed or printed, and is actually implemented as an artifact.

    Figure 3-48. Report-related classes
    figs/Luml_0348.gif
  7. Describe Figure 3-49: identify the subsystem and describe its specification elements and realization elements.

    Figure 3-49. Security subsystem
    figs/Luml_0349.gif
  8. Using Figure 3-48, create a diagram to communicate that the undifferentiated classes and implementation classes make up a reporting subsystem that provides the view and print interfaces, and that the Printer class that is used by the print interface is located inside a printing package.