What does a conceptual model represent?
The conceptual model represents elements of the problem domain.
What does an analysis model represent?
The analysis model represents entities from the software solution.
What is the first step in building a conceptual model?
To identify objects in the problem domain that may eventually be relevant to a solution
Describe four categories that provide a useful source for possible objects for a conceptual model.
What document should be created at the beginning of a project?
A glossary of terms, or data dictionary.
What is the purpose of a glossary?
It cross-references the different words that are to be used on the project and explains how they interrelate – particularly important for establishing your understanding of key concepts in the problem domain.
What is a good starting point when considering candidate concepts for a conceptual model?
A list of nouns from a written description of a problem, such as a use case.
Why do object modellers concentrate on nouns?
The nouns represent the things in the domain being modelled, and things are more stable than actions, which are expressed as verbs.
What are the main criteria for filtering a list of nouns in order to remove inappropriate ones and settle upon a suitable set of candidate concepts?
There are basic filtering criteria that can be applied as follows:
In addition to these basic criteria, you should pay particular attention to events. Will an instance of that kind of event have state, behaviour and identity that are significant in the problem domain? A loan of a book from a friend might not be worth modelling, for example, but a library loan is significant – it has a time limit and may incur a charge if that limit is exceeded.
In all cases, you should clear up any ambiguity with a domain expert or the users themselves.
In object-oriented modelling what is the main difference between an object and a class?
An object stands for something real in the problem domain, such as a specific customer or a specific room in a hotel. The properties of an object have values that can be tested. A class describes all possible objects of that kind, defining what the objects have in common.
What is one way to determine whether or not something should be modelled as a distinct class?
You should consider the life histories of instances (objects) and how their behaviour may change over time.
What does a class model demonstrate?
A class model indicates which classes are in the system and describes the associations between those classes. In the same way that a class describes what is true for all objects of that class, a class model describes what is true about the entire system at all times.
What does an object model demonstrate?
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.
No object can have attributes that are not in the class model and neither can objects have relationships that are not in the class model.
Just as an object is an instance of a class, an object model may be thought of as an instance of a class model.
How is an object model visually represented?
By an object diagram.
How is a class model visually represented?
By a class diagram.
What do links between objects represent on an object diagram?
They represent particular cases of one object ‘knowing about’ another object.
What are three benefits of an object diagram?
Explain why object diagrams cannot form the basis for a software specification.
Object diagrams represent particular states of the system at particular moments in time, whereas a specification must describe all valid states of the system at all possible times.
In a windowing system, a window may be converted to an icon and back to a full window. What operations can be performed on full windows but not on iconised windows? Would a model containing the classes Icon and FullWindow be able to capture the distinction adequately?
Scrolling and maximising can be done on full windows but not on iconised ones. It would be difficult to model the distinction between a full window and its iconised version adequately by using two different classes, since an object (in this case the window) cannot dynamically change its class. One solution would be to have a single class with an attribute that distinguishes between a window being iconised or fully open.
In connection with rooms, the hotel manager’s vocabulary includes the words ‘occupied’ and ‘free’. How might such words be represented in a class diagram?
Two ways come immediately to mind:
Either is acceptable as a way of recording the information.
What characterises the state of an object at a particular point in time?
The state of an object is characterised by the value of each of its attributes at that point in time.
What does an attribute of a class represent?
An attribute represents a particular property (a named value) of the class that each instance of that class will have. At any one time they collectively define the state of an instance of the class.
What is meant by the multiplicity of an association in a class diagram?
A specification of how many objects of one class are related to one object of another class.
How are multiplicities between associated classes usually expressed?
The general form for multiplicities uses two integers to express the range of allowable values:
minimum..maximum