Self-test OOAD/UML
Document: E0767Test.fm
10/02/2006
ABIS Training & Consulting
P.O. Box 220
B-3000 Leuven
Belgium
TRAINING & CONSULTING
INTRODUCTION TO THE SELF-TEST OOAD/UML
With this test you can see for yourself if you attained the objectives of the OOAD/UML
course (or if you will profit from following it).
This test contains 20 questions. For each question you should mark only one choice,
unless indicated otherwise. A question is answered correctly, if only all correct choices
are marked.
You can find the right answers and guidelines for the evaluation at the end of this docu-
ment.
10/02/2006 Self-test OOAD/UML 2
QUESTIONS SELF-TEST OOAD/UML
1. If you want to plan project activities such as developing new functionalities or test cases, which
of the following OOAD artifacts is the most useful?
O (a) Sequence diagrams
O (b) Use cases
O (c) Domain model
O (d) Package diagrams
2. Which of the following is iterative, incremental, use case driven and architecture centric?
O (a) V-method
O (b) UML
O (c) Component Based Development
O (d) RUP
3. What is true about UML stereotypes?
O (a) A stereotype is used for extending the UML language.
O (b) A stereotyped class must be abstract.
O (c) The stereotype {frozen} indicates that the UML element cannot be changed.
O (d) UML Profiles can be stereotyped for backward compatibility.
4. Consider a beverage machine. If the actor is ‘customer’, and the scope is ‘machine’, what is
most likely to be found in the main scenario of the use case ‘get drink’?
O (a) - enter choice
- if drink available then show price
- put in coins
- if paid enough then deliver drink
O (b) - customer enters choice
- machine shows price
- customer puts in coins
- machine delivers drink
O (c) - enter choice
- show price
- put in coins
- deliver drink
O (d) - ...
- machine sends price to LCD display
- customer puts in coins
- coin mechanism verifies amount and tells machine controller
- machine controller activates boiler
- ...
10/02/2006 Self-test OOAD/UML 3
5. Consider the following situation.
A company realizes projects. Each project is executed by a team of employees.
Which would be a suitable conceptual UML diagram?
Company
* Employee Company
* Employee
A 1..* B 1..*
* *
Team 1
Project 1 Project Team
Company
* Employees * Employee
Company
1..* 1..*
C D
* *
1 1
Projects Team Project Team
O (a) diagram A
O (b) diagram B
O (c) diagram C
O (d) diagram D
6. How do you express that some persons keep animals as pets?
0..* pet 0..*
Person Animal Person Animal
pet
A B
0..* 0..*
Person Pet Person Animal
animal keeps as pet
C D
O (a) diagram A
O (b) diagram B
O (c) diagram C
O (d) diagram D
10/02/2006 Self-test OOAD/UML 4
7. What can UML interfaces be used for?
O (a) to provide concrete classes with the stereotype <<interface>>
O (b) to program in Java and C++, but not in C#
O (c) to define executable logic that can be reused in several classes
O (d) to specify required services for types of objects
8. Consider the following design.
for all my OrderLines ol: Order OrderLine Article
tot =
tot + ol.getArticle().getPrice()
* 1
getQuantity()
* ol.getQuantity() getArticle()
total() getPrice()
How would the introduction of a subtotal() method in OrderLine improve the design?
O (a) It enhances the coherence of Article.
O (b) It reduces the coupling of Order.
O (c) It reduces the coherence of Order.
O (d) It enhances the coupling of Article.
9. What is correct about the following Statechart Diagram?
ON
H Idle
play
rew
stop
stop
Rewinding Playing
O (a) ‘ON’ is a concurrent state.
O (b) This Statechart is invalid because it contains no final state.
O (c) ‘play’, ‘stop’ and ‘rew’ are actions.
O (d) ‘ON’ is a superstate.
10/02/2006 Self-test OOAD/UML 5
10. Which of these activities COULD occur simultaneously?
a22
a33 [x>5] a55
H a11
a44 a66
[x<=5]
a77 H
[2 answers]
[_] [a] a44 and a66
[_] [b] a44, a33 and a22
[_] [c] a22 and a77
[_] [d] a77 and a66
11. Which are valid events in a State diagram? [2 answers]
[_] [a] if()
[_] [b] when()
[_] [c] close()
[_] [d] after()
12. This is the structure of a well-known GoF pattern; which one?
Component
*
Client
operation()
Leaf Composite
operation() operation()
O (a) Component
O (b) Delegation
O (c) Polymorphism
O (d) Composite
10/02/2006 Self-test OOAD/UML 6
13. Which of the following are known refactorings (according to Fowler)?[2 answers]
[_] [a] Protect Variations
[_] [b] Replace Inheritance with Delegation
[_] [c] Replace Delegation with Inheritance
[_] [d] Introduce Association Class
14. If you need to show the physical relationship between software components and the hardware
in the delivered system, which diagram can you use?
O (a) component diagram
O (b) deployment diagram
O (c) class diagram
O (d) network diagram
15. What is a true statement about the following packages?
A B C
O (a) If package C changes, package B must be inspected for necessary changes, and if there
are any, package A may have to be adapted as well.
O (b) If package B changes, package A and package C must be inspected for necessary
changes.
O (c) Packages should be designed so that a change in one package does not have an effect
to other packages.
O (d) If package C changes, package A has to be examined (as well as B), because depend-
encies are transitive.
10/02/2006 Self-test OOAD/UML 7
16. Given the following diagram, which method(s) should be implemented for the Account class?
a1:Account a2:Account john:Person
xfer(m:Money, a2)
check()
evaluation
[OK] minus(m)
plus(m)
O (a) xfer()
O (b) xfer(), plus(), minus()
O (c) check(), plus(), minus()
O (d) xfer(), evaluation(), plus(), minus()
17. Which is true about the method doIt()?
<<interface>>
Thing1
doIt()
Thing2 Thing3
Thing4 Thing5
O (a) The method doIt() must be implemented by Thing3 and possibly also by Thing4.
O (b) The method doIt() must be implemented only by Thing5.
O (c) The method doIt() must be implemented by Thing2, Thing3, Thing4 and Thing5.
O (d) There is no need for any class to implement doIt(),
because it is already implemented by Thing1.
10/02/2006 Self-test OOAD/UML 8
18. What is true about a Sequence Diagram? [2 answers]
[_] [a] It describes the behaviour of many Use Cases.
[_] [b] It describes the behaviour of a single Use Case.
[_] [c] It describes the behaviour of a single object.
[_] [d] It describes the behaviour of several objects.
19. Which GRASP pattern do you use to decide who is going to handle the incoming system
events?
O (a) Controller
O (b) Low coupling
O (c) Adapter
O (d) Information Expert
20. Which diagram is NOT commonly used for illustrating use cases?
O (a) system sequence diagram
O (b) activity diagram
O (c) use case diagram
O (d) collaboration diagram
10/02/2006 Self-test OOAD/UML 9
EVALUATION.
Here are the correct answers to all questions:
1. b
2. d
3. a
4. b
5. b
6. a
7. d
8. b
9. d
10. b c
11. b d
12. d
13. b c
14. b
15. a
16. b
17. a
18. b d
19. a
20. d
Give yourself 1 point for each correctly answered question (for multiple answer ques-
tions, this means that all correct answers must be marked and no other choices).
If you answered less than 50% of the questions correctly, you will definitely profit from
following the OO analysis and design with UML course.
If you answered between 50% and 75% of the questions correctly, you know already
some concepts, but you will still learn a lot in the OO analysis and design with UML
course.
If you answered more than 75% correctly, then the OO analysis and design with UML
course is probably not useful for you any more: maybe you should consider the Patterns
in practice course.
10/02/2006 Self-test OOAD/UML 10