Modeling With UML: Solutions
Modeling With UML: Solutions
Time-Out
TransactionAborted
BuyMonthlyCard
DistributorOutOfChange
UpdateTariff CentralComputerSystem
DistributorOutOfPaper
This questions can have several correct answers, Figure 2-1 being a possible answer. The following elements should be present: The relationship between an actor and a use case is a communication relationship (undirected solid line). The relationship between exceptional use cases and common use cases is an <<extend>> relationship. The exceptional use cases described in the exercise only apply to the use cases invoked by the traveler. All exceptions apply to all traveler use cases. Instead of drawing 3x4 relationships between these use cases, an abstract use case from which the exceptional use case inherit can be used, thus reducing the number of <<extend>> relationships to3 at the cost of introducing 4 generalization relationships. The student can introduce exceptional use cases not specied in the exercise that apply to the CentralComputerSystem use cases.
Object-Oriented Software Engineering: Conquering Complex and Changing Systems: Solutions to Exercises
2.2. Draw a class diagram representing a book dened by the following statement: A book is composed of a number of parts, which in turn are composed of a number of chapters. Chapters are composed of sections. Focus only on classes and relationships.
Book 1 * Part 1 * Chapter 1 * Section
This exercise checks the students understanding of basic aspects of class diagrams, including: Classes are represented with rectangles. The attribute and operations compartment can be omitted. Aggregation relationships are represented with diamonds. Aggregation does not imply multiplicity, thus the 1:* multiplicity is necessary for expressing a hierarchy. Class names start with a capital letter and are singular.
Object-Oriented Software Engineering: Conquering Complex and Changing Systems: Solutions to Exercises
2.3. Draw an object diagram representing the rst part of this book (i.e., Part I, Getting Started). Make sure that the object diagram you draw is consistent with the class diagram of Exercise 2.2..
oose:Book
gettingStarted:Part
introduction:Chapter
uml:Chapter
communication:Chapter
This exercise checks the students understanding of basic aspects of object diagrams, including: Objects are represented with rectangles and underlined labels. The class of an object is included in the label of the object (e.g., uml:Chapter is of class Chapter). Links are represented with solid lines
Class and object diagrams are described on pages 4550. 2.4. Extend the class diagram of Exercise 2.2. to include the following attributes: a book includes a publisher, publication date, and an ISBN a part includes a title and a number a chapter includes a title, a number, and an abstract a section includes a title and a number
Book publisher:Person publicationDate:Date ISBN:Integer[4] 1 Part title:String number:Integer Chapter title:String number:Integer abstract:String * 1 Section title:String number:Integer
This exercises checks the students knowledge of attributes and their representation in UML (page 45).
Object-Oriented Software Engineering: Conquering Complex and Changing Systems: Solutions to Exercises
2.5. Consider the class diagram of Exercise 2.4.. Note that the Part, Chapter, and Section classes all include a title and a number attribute. Add an abstract class and a generalization relationship to factor out these two attributes into the abstract class.
NumberedComponent title:String number:Integer abstract:String
Part
Chapter abstract:String
Section
This exercise checks the students knowledge of abstract classes and inheritance (pages 48 and 49). 2.6. Draw a sequence diagram for the warehouseOnFire scenario of Figure 2-17 on page 42 in the book. Include the objects bob, alice, john, FRIEND, and instances of other classes you may need. Draw only the rst ve message sends. This exercise checks the students knowledge of sequence diagrams when using instances. This exercise can have several correct answers. In addition to the UML rules on sequence diagrams, all correct sequence diagrams for this exercise should include one or more actors on the left of the diagram who initiate the scenario, one or more objects in the center of the diagram which represent the system, and a dispatcher actor on the right of the diagram who is notied of the emergency. All actors and objects should be instances. Figure 2-6 depicts a possible answer. Sequence diagrams are described on pages 50 and 51
:FRIEND bob alice new EmergencyForm() reportEmergency() :EmergencyForm specifyIncident() requestResource(fireTruck) john
commit()
notifyDispatcher()
Object-Oriented Software Engineering: Conquering Complex and Changing Systems: Solutions to Exercises
2.7. Draw a sequence diagram for the ReportIncident use case of Figure 2-16 on page 41 in the book. Draw only the rst ve message sends. Make sure it is consistent with the sequence diagram of Exercise 2.6.. This exercise tests the students knowledge of sequence diagram when using classes. Like the previous exercise, this exercise can have several correct solutions. A correct solution should include a FieldOfcer actor on the left, a Dispatcher actor on the right, and one or more classes in the middle representing the FRIEND system. The answer to this exercise should be consistent with the answer to the previous exercise, in the sense that all class and operation names should be the same. Figure 2-7 depicts a possible answer. Sequence diagrams are described on pages 50 and 51.
commit()
notifyDispatcher()
2.8. Consider the software development activities which we described in Section 1.4 on page 14 in the book. Draw an activity diagram depicting these activities, assuming they are executed strictly sequentially. Draw a second activity diagram depicting the same activities occurring incrementally (i.e., one part of the system is analyzed, designed, implemented, and tested completely before the next part of the system is developed). Draw a third activity diagram depicting the same activities occurring concurrently. This exercise tests the students knowledge of the activity diagram syntax, not the knowledge of software engineering activities. In the sample solution provided in Figure 2-8, we assumed that requirements elicitation need to be completed before any subsystem decomposition can be done. This leads to a splitting of the ow of control in the third diagram where all remaining activities occur concurrently. The instructor could accept a solution where requirements elicitation also occurs incrementally or concurrently with the other development activities. Activity diagrams are described on pages 5456.
Object-Oriented Software Engineering: Conquering Complex and Changing Systems: Solutions to Exercises
Sequential activities
Requirements Elicitation
Analysis
System Design
Object Design
Implementation
Incremental activities Requirements Elicitation Analysis 1 System Design 1 Object Design 1 Implementation 1
Analysis 2
System Design 2
Object Design 2
Implementation 2
Analysis 3
System Design 3
Object Design 3
Implementation 3
Requirements Elicitation
Analysis 2
System Design 2
Object Design 2
Implementation 2
Analysis 3
System Design 3
Object Design 3
Implementation 3