Week 5 Flashcards
Why should requirements be analysed?
Use cases give little information about structure of software.
Some parts may already exist as standard components
What does requirements analysis aim to identify?
Structure that can meet the requirements
Common elements that are only needed once
Pre-existing elements that can be reused
Interaction between requirements
What does an analysis model do?
Confirm what the client wants the system to do
Be understandable and correctly detailed
What is the main technique to analyse requirements?
Class diagram
What two ways can a class diagram be produced?
Directly based on knowledge of application domain
By producing separate class diagram for each use case, and then combining them (analysis class model)
What is realization?
Going from use case to working software implementation (and all the steps between)
What is the communication diagram approach?
Analyse one use case at a time
Identify likely classes involved
Draw communication diagram that fulfils the needs of the use case
Translate into use case class diagram
Repeat for all use cases
Assemble all the diagrams into a single analysis class diagram
What does robustness analysis aim to do?
Produce a set of classes robust enough to meet the requirements of a use case
What assumptions does robustness analysis make?
A class or classes are needed to handle user interface
Logic of the use case is abstracted away from entity classes
What are entity classes?
Classes that store persistent data
What do boundary objects model?
Interaction between system and actors
What do control objects do?
Co-ordinate and control other objects
Boundary and Control classes are likely to be
a) unique to one application
b) reusable in multiple applications
a) unique to one application
What are the three steps in realization of class diagrams?
1) Define entity objects
2) Add control objects
3) Add boundary objects
What are 8 reasonability checks for candidate classes?
Is it beyond the scope of the system?
Does it refer to the system as a whole?
Does it duplicate another class?
Is it too vague?
Is it too tied up with physical inputs and outputs?
Is it really an attribute?
Is it really an operation?
Is it really an association?