Week 7 Flashcards
What are 4 advantages of the iterative life cycle?
risk mitigation - identify risks earlier
change management - changes to requirements are expected & managed
Team learning - all the team is involved from the start
improved quality - testing begins early
What is the difference between logical and physical design?
Logical design is independent of language and platform
Physical design is based on the actual implementation platform and language
What does system design deal with?
high level architecture, e.g.
structure of sub systems
communication between subsystems
standards for screens, reports, help etc
job design for the people who will use the system
What activities does traditional detailed design consist of?
What does detailed design try to maximise and minimise?
designing inputs, outputs, processes, files and database structures
Maximise cohesion - within one module all bits of code all contribute to one function
Minimise coupling - least possible linkages between modules
Object oriented design adds what detail to the analysis model?
types of attributes
operation signatures
responsibilities as operations
classes for UI
classes for data management
reusable components
packages
What are the 12 qualities of design?
Functional
Efficient
Economical
Reliable
Secure
Flexible
General
Buildable
Manageable
Maintainable
Usable
Reusable
Why should design be modular?
Comprehensibility
Parallel development
Easier to test, verify, validate, mesaure reliability
Easer to maintain, locate faults, change, enhance
Reusable
What is modular decomposition?
Taking a large part or module and breaking it down into smaller modules
What is the difference between functional decomposition and object oriented decomposition?
Functional is concerned with modules corresponding to major functions
Object-oriented refers to things like packages, classes and objects
What is coupling?
Do we want to minimise or maximise it?
Dependencies between modules
Minimise
What are the formulae for the maximal and minimal number of dependencies?
Maximal: n(n-1)/2 (every node connected to every node)
Minimal: n-1 (star or tree)
How can low coupling between a calling and called class be achieved?
The calling class does not know about the internals of the called class
What is cohesion?
Do we want to maximise or minimise it?
how tightly bound or related the internal elements of a module are
Maximise
What are the 6 levels of cohesion?
Coincidental
Logical
Temporal
Data item
Functional
Data
How can high cohesion be achieved?
If interaction occurs within subsystems, rather than between subsystems