- Tips and Tricks
Release date: Monday 04.11.13 - Due date: Sunday, 10.11.13, 23:59
|8 = 2*4 points|
In the lecture we suggested to use genus–differentia definitions1). To understand this format deeper, we want to apply it on the definitions of the glossary of the DDD book. The glossary is available online at dddcommunity.org or at Google Books.
Find two of the entries of the glossary that are genus–differentia definitions and analyze them with respect to the following questions:
Side note: The primary goal of a glossary is to offer a reference for the most important terms used in a certain context. The main criterion is whether everyone involved in the context can agree on what a term means based on the glossary entry. Our suggestion to use “genus-differentia definitions” is only a means to that goal. You might have a look at some and ask yourself, whether you understand them and whether you see a chance to improve them.
|9 = 3+2*3 points|
The fictive service “YourPurse” offers customers to manage their payments on-line. Because of recent security incidents they are taking counter measures like calculating abuse indicators for the accounts.
One sentence from their requirements reads as follows:
“Once abuse indicators are higher, accounts may not be viewed anymore.”
a) Demonstrate how to identify implicit assumptions (presuppositions) using this sentence.
b) Demonstrate in detail, how to apply rules of the REgelwerk. Find two rules that apply to this sentence. For each of these two rules answer the following questions:
Here are some preliminary requirements for a Time Tracking Application:
You should roughly understand what the Time Tracking Application is meant to be. Nevertheless, there are many issues with these requirements.
Give us eight issues of at least three different types. The first row of the table gives you one example.
A03_T18_Airportsin your repository.
We are creating a passenger flight information system following the Modeling in Color approach. You can find the first nine classes of the domain object model here:
a) Add to each of the nine classes an appropriate archetype and explain your choice. It is enough to explain it for one class of every color (1-2 sentences each).
b) Add multiplicities to the associations.
c) Some of the classes of this model can be reused in different applications. Besides the Passenger Flight Information System we are developing as well a Cargo Flight Information System and an Airport Shop Administration System. Find the corresponding layered package structure here:
d) Your colleague argues that a pilot and a passenger is a person and therefore
Pilot as well as
Passenger should be a subclasses of
Person. Do you agree? Explain why you agree or disagree. (2-3 sentences)
|12 = 1+2+2+2+3+2 points|
A03_T19_Hotelsin your repository.
Below you find a new domain model created by your colleague.
He already expressed that
Payment take place at separate moments or time intervals.
a) Add the appropriate archetypes to the classes
Room. If later on required you may add further classes with appropriate archetype.
b) It should be possible that the person who reserves rooms and receives the invoice is different from the persons who actually stay there. Express this in the model by adding appropriate classes and associations.
c) Till now only the
Invoice has details, but it makes sense for almost all other
moment-interval classes: Add the missing
mi-detail classes. Review your model and add missing classes and associations.
d) Sometimes a request for reservation occurs even before the reservation. Add a class
WaitingReservationRequest with the appropriate archetype and the associations.
e) Add the missing multiplicities to the associations.
f) Review another class diagram of the hotel domain:
The following class diagram for a hotel domain was created by another colleague.
It was not used because someone had the feeling that it is not correct. Can you support this gut feeling with some arguments? We suggest that you apply the archetypes to the classes and argue based on these. (3-5 sentences)