Unit 5 Flashcards
What are the 3 agile modelling principles?
- Lightness and simplicity take precedence over completeness and complexity
- Models should only be pursued while they are of use
- Ease of change and adaptibility also need to be part of the modelling process
(b2, p7)
What are the 4 useful sources of relevant objects?
- Tangible objects
- Physical things in the domain, such as rooms, books and vehicles
- Roles
- Roles played by people in the domain, such as employees, guests and members of some organisation
- Business transactions
- Activities, episodes and interactions, such as room reservations, vehicle registrations, orders, deliveries and transactions
- Organisational units
- Groups to which people belong, such as accounts department, production teams and maintenance crews
(b2, p8)
What are the 4 guidelines suggested for choosing which concepts to discard?
- The same concept is given different names (e.g. account, posting code, ledger may be all the same concept)
- The same name may be used for different concepts (e.g. policy may mean a piece of paper, a legal agreement, or a person’s insurance cover)
- Many names are not important or independant enough to be considered concepts on their own, and may be better represented as properties of another concept
- Exclude names that refer to concepts not relevant to the situation being considered
(b2, p9)
What is a class model?
A class model indicates which classes are in the system and describes associations between those classes. It describes what is true about the entire system at all times.
(b2, p13)
What is an object model?
An object model is a collection of objects, where every object in the model is an instance of a class in the class model. The object model represents one specific configuration of the system - a snapshot of the system at one instant in time. An object may be thought of as an instance of a class model.
(b2, p13)
What is a navigation expression?
A navigation expression provides a way of naming another object or its attributes relative to a starting object by referring to intermediate role names.
(b2, p27)
What is a recursive association?
A recursive association is an association where both ends terminate at the same class.
(b2, p27)
What is a qualified association?
A qualified association is an association at one end of which there is a qualifier, consisting of one or more attributes. The values of the attributes (taken together) uniquely identify the objects in the class at the other end of the association.
(b2, p41)
What is the difference between inheritance and generalisation?
Inheritance is the consequence of a generalisation/specialisation relationship - a subclass inherits the features of the superclass.
The term inheritance tends to be used by programmers, whereas the terms generalisation and specialisation are used by analysts and modellers.
(b2, p52)
What is an invariant?
An invariant is something that must be true about the system at all times.
(b2, p56)
What are 3 common kinds of constraint?
- Constraints on the values of the attributes
- Constraints on associations
- Uniqueness constraints (which can sometimes be converted to qualified associations
(b2, p56)
What is OCL and what does it stand for?
OCL (Object Constraint Language) is a formal notation defined by UML which combines logical expressions with set notation to allow a more rigorous specification of a constraint.
(b2, p57)
What are the 2 risks involved with trying to record all possible constraints on a model?
- Complexity - if too many constraints are recorded on a model, that model will become difficult to read or comprehend
- Increased number and complexity of dependencies that would arise for each additional constraint, especially those among two or more model elements
(b2, p57-58)
Give the following invariant in OCL format:
A child must be younger than both father and mother
**context** Child **inv**: self.age \< self.father.age and self.age \< self.mother.age age
(b2, p60)
Give the following invariant in natural format:
**context** Child **inv**: self.age \< self.father.age and self.age \< self.mother.age age
A child must be younger than both father and mother.
(b2, p60)