UML and Domain modelling (Week 2) Flashcards
What is UML?
It is a standardized graphical modelling language for communicating software design.
What does UML allow?
Allows implementation-independent specification of:
- User/system interactions(required behaviours)
- Partitioning of responsibility(OO)
- Integration with larger or existing systems
- Data flow and dependency
- Operation orderings (algorithms)
What are the motivations for UML?
This modelling language was created to
- help develop efficient, effective and correct designs, particularly object oriented designs.
- Communicate clearly with project stakeholders (developers,customers,etc)
- Give us the big picture view of the project
Types of UML diagrams
Structure diagrams:
- Class diagrams
- profile diagrams
- component diagrams
- composite structure diagrams
- object diagrams
- deployment diagrams
- package diagrams
Behaviour diagrams (dynamic, changes to the system over time):
- Activity diagram
- Use case diagram
- State machine diagram
- interaction diagram
- sequence diagram
- communication diagram
- interaction overview diagram
- timing diagram
What is a class diagram?
A central modelling technique that runs through nearly all object-oriented methods.
Describes the types of objects in the system and various kind of static relationships which exist between them
- Class diagram partitions the system into areas of responsibility (classes) and shows associations (dependencies) between them.
- Attributes (data), operations(methods), constraints, type-of (inheritance) relationships, access and cardinality (1 to many) may all be noted.
What is a component diagram?
Component diagram shows dependencies between high-level system components
- The software in two distinct components/packages is separated; Components only interact through well-defined interfaces, there is no direct sharing of data or code
- Component is usually a collection of related classes, and will usually be specified by it’s own class diagram
Why use a domain model?
It helps us to identify the relevant concepts and ideas of a domain. We decompose the domain into concepts or objects in the real world, it’s the basis for the design of the software.
When is domain modelling done?
During object-oriented analysis
What is the guideline for creating domain models?
Only create a domain model for the tasks at hand
How to create a domain model?
- Find conceptual classes:
- reuse or modify an existing model
- use a category list
- identify noun phrases - Draw them as classes in a UML class diagram
- Add associations and attributes