Unit 5 Flashcards
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.
- Tangible objects – the physical things in the domain, such as rooms, bills, books and vehicles
- Roles – the roles played by people in the domain, such as employees, guests and members of some organisation
- Business transactions – the activities, episodes and interactions, such as room reservations, vehicle registrations, orders, deliveries and transactions
- Organisational units – the groups to which people belong, such as accounts departments, production teams and maintenance crews.
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:
- different concepts that are expressed using the same name
- redundancy, the same concept, given different names
- not important or independent enough, such as an attribute of another concept rather than a concept in its own right
- lack of relevance to the problem domain, being either beyond the scope of the desired system
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?
- Object diagrams are extremely useful for checking your understanding of concepts and relationships. For example, you can use one or more of the object models to walk through the different scenarios for each use case.
- Since an object diagram is a snapshot of the domain or the system at a particular moment in time, pairs of them can be useful in showing the domain or the system before and after some operation has been carried out.
- An object diagram can be very useful for determining whether some configuration of objects is valid.
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:
- as an attribute of the Room class
- as an association between the Room and Guest classes.
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.