What is ‘design by contract’?
Design by contract is the process of developing software based on the notion of contracts between objects, which are expressed as assertions.
(b2, p80)
What is an assertion?
An assertion is a statement that is either true or false.
(b2, p79)
What are the four main advantages to the DbC approach for adding assertions?
(b2, p79)
To what extent can DbC help with traceability, and hence be used to improve the quality of a software system?
DbC allows the development of a software system to be traced from requirements through to code.
(b2, p81)
What are the two basic ways in which classes relate to each other?
(b2, p85)
What three sets of items should be investigated when searching for possible postconditions for an operation?
(b2, p87)
What is an interaction diagram?
An interaction diagram is a UML diagram that shows the sequencing of messages in an interaction.
(glossary)
What is a sequence diagram?
A sequence diagram is a UML interaction diagram that focuses on the time-ordering of the messages.
(glossary)
What is a communication diagram?
A communication diagram is a UML interaction diagram that focuses on the structural aspect (instances and links) of an interaction.
(glossary)
What is GRASP?
GRASP stands for General Responsibility Assignment Software Patterns, and is a collections of patterns which may help the designer assign responsibilities in commonly recurring design scenarios.
(glossary)
What is GRASP Creator?
GRASP Creator is a pattern that provides guidance on which class should be responsible for creating new objects.
(glossary)
What is GRASP Expert?
GRASP Expert is a pattern that provides guidance on which class should be responsible for initialising or changing the state of an object.
(glossary)
What is a CRC card?
A CRC (class-responsibility-collaboration) card is a way of modelling how classes interact.
(b2, p108)
What are the three components of a CRC card?
(b2, p108)
What is the difference in emphasis between sequence diagrams and communication diagrams?
Sequence diagrams emphasise the flow of messages from object to object over time.
Communication diagrams emphasise the message traffic across links in a particular configuration of objects.
(b2 p114)
How is time represented in communication diagrams?
Time is represented by the sequential numbering of messages.
(b2 p114)
How do you represent the creation and deletion of an object in a sequence diagram?
(b2, p118)
How can parameters be used in sequence diagrams?
(b2, p115)
How would you represent navigability (direction of association) in a class diagram?
(b2, p124)
When describing the shape of a communication diagram, what is the difference between the fork and cascade patterns?
The fork pattern centralises control in the sender.
The cascade pattern delegates responsibility to another object along a single thread of control.
(b2, p130)
(glossary)
What is the Law of Demeter?
The Law of Demeter states that a method m in a class A should not send a message to another object unless that object is one of the following:
An object should avoid invoking methods on another object returned by some method, where the returned objct does not qualify under one of the above situations.
(b2, p131)