Week 3 Flashcards
What is the purpose of software modelling?
Manage complexity
Abstraction
Communication between all parties involved
What types of software models are there? Give examples.
Object models - classes, objects, messages
Functional models - what it does - flow charts, state charts
Physical models
Task models - units of work, schedule, etc - e.g. Gantt chart
What notations are there for software modelling?
OMT - Object modelling techniques
UML - Unified modeling language
State charts
flow diagrams
type diagrams
What are some reasons you might use a model?
Quicker and easier to build than the real thing
Can be used in a simulation
Can evolve as we learn
Can choose how much detail to include
Can represent real or imaginary things
What is the difference between diagrams and models?
Diagram illustrates some aspect of a system
Model provides complete view of a system at a particular stage, from a particular perspective
Model may consist of one or more diagrams
What do different models present in UML? examples
Views of the system, e.g.
Use case view
Design view
Process view
Implementation view
deployment view
With each iteration, models become more:
Concrete - less abstract
Formally specified
Detailed
What is the purpose of Activity Diagrams?
To model a task
Describe a function of a system
Describe the logic of an operation
How do you draw an activity diagram?
Identify the actions
Organise them in order
Draw arrows between them
Activity diagrams may contain ____________ if some actions are carried out by different people
swimlanes
What is the difference between static models and dynamic models/
Static models describe structural aspects
Dynamic models describe behavioural aspects
Give 3 examples of static models
Class diagrams
Package diagrams
Type diagrams
give 4 examples of dynamic models
Use case diagrams
Sequence diagrams
Collaboration diagrams
Activity diagrams
What do use case diagrams show?
User view of essential system behaviour
Does NOT specify the flow of processes
How is inheritance represented on UML class diagrams?
Empty triangle pointing towards the inherited class
What does aggregation mean?
The class uses some other classes which have meaning on their own
What does composition mean?
A class uses other classes which would have no meaning without the class using them
What are the pros of UML?
De facto industry standard (or not as the case may be)
A standard of communication - commonly accepted
What are the cons of UML?
Not really unified - little integration between sub notations
Not a great model - low level of abstraction
Not really a language - no well-defined semantics
What are some of the top factors that cause projects to fail?
Incomplete requirements
Lack of user Involvement
Unrealistic expectations
What are the 3 types of requirement?
Functional requirement - what the system does - e.g. must play music
Non-functional requirement - other requirements, e.g. must have 1MB memory
Constraints - legal, financial etc. constraints - e.g. all data must be removed after customer leaves
What is requirements elicitation?
Gathering requirements from clients
Bridging the gap between non-technical people and technical people (users and software engineers)
One of the biggest parts of building a new system to replace an old system is ______________
Understanding the old system and why it needs replacing
What is the purpose of requirements languages and notations
To represent the requirements in an explicit, structured form
What is the input to requirements languages and notations?
A report on elicited requirements
What is the output of requirements languages and notations?
Formal requirement’s specifications - mathematical languages and state charts
Informal requirement specifcations - use case diagrams, class diagrams, etc.
What should a requirements specification include?
Problem Definition - what is the problem
Viewpoint structure - what is the scope, who’s involved
Functional and non functional requirements
How are <<extend>> and <<include>> used on use case diagrams?</include></extend>
<<include>> - a task that must be done before the current task - dotted arrow drawn towards the included task</include>
<may>
</may>
What is the purpose of a use case diagram?
Document the functionality of the system from users perspective
What is the difference between requirements verification and validation?
Verification: compare one document to another
Validation: check requirements with customer
What are the 5 criteria for requirements validation?
Correctness - requirements represent clients view
Completeness: All possible scenarious are described
Consistency - No functional or non functional requirements contradict each other
Realism - Can be implemented and delivered
Traceability - each function can be traced to a functional requirement