Domain Modelling Flashcards
(23 cards)
What is the domain of a software program?
The subject area to which the user applies a program.
What is considered the hardest part of software development?
Understanding the domain (critical complexity).
Define problem domain.
The area of expertise that needs to be examined to solve a problem.
Example for domain vs software implementation
In measuring KPI on sales, your
Ability to pick up rubbish shouldn’t be recorded
What do Domain Models illustrate?
The conceptual classes in the problem domain.
What do concepts discovered in domain modeling tend to lead to?
Design classes.
True or False: Domain models are real-world conceptual classes.
False.
What is the purpose of decomposing the domain of interest?
To break it down into individual classes or objects of the real world.
How are domain models visually represented?
Using class diagrams through domain conceptual classes, associations between classes, and attributes of conceptual classes.
What is a domain model a visual dictionary of?
The noteworthy abstractions, domain vocab, and information around the general domain.
What does the domain model ignore?
Software artifacts such as a window or database.
What is one advantage of domain models?
They provide a stable basis for subsequent development of applications in the problem domain.
How can domain models be used among stakeholders?
To verify and validate understanding of the problem domain.
What is a central distinction between OO analysis and structured analysis?
Dividing by classes rather than by functions.
List the three strategies to find classes.
- Reuse or modify existing models
- Use a category list
- Identify noun phrases
What should be done if a concept is not found during initial domain modeling?
It can be found later on new iterations.
What is a description class?
A class that contains information describing something else.
Why should descriptions be kept separate from items?
To reduce duplication and retain descriptions for items even after they are removed.
What is the difference between a conceptual class and a software class?
A conceptual class belongs to the domain model; a software class represents an implementation of software components.
Define semantic gap.
The gap between the mental model of the domain and its representation in software.
What are attributes in the context of a class?
Logical data values of an object.
What does an association represent?
The relationship between classes.
What do constraints express in the specification model?
Rules of the problem domain, restricting possible instances of the model.