Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
foundation-1/08 Domain-Driven Design.md
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
29 lines (21 sloc)
2.13 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Domain-Driven Design | |
In this lab you will be exploring the software domain for your assignment scenario. By the end of the lab you will have build a detailed model of the domain to that shows your understanding. | |
You should complete the following steps, either in a small group or on your own: | |
1. Read the details of the assignment you have been allocated. This contains a number of statements in plain English that describe the domain as understood by the _client_ depicted in your scenario. This simulates the notes you would be taking in an early meeting with your client. Note that there are no computing-related technical terms. | |
2. Extract the **Domain Language** and carefully define what is meant by each of the terms and expressions _in the context your your domain_. Be sure you remove any ambiguity. This simulates a detailed and probing discussion with the client. | |
1. Write the terms down. | |
2. For each of these describe what they mean so that a software engineer will understand. | |
3. Finally you should use the information you have recorded so far to build a class diagram. This should include: | |
1. The domain classes (or artefacts). | |
2. Key attributes of each class (but only list the ones that directly relate to the domain discussed, this is not meant to be a database schema!). | |
3. The associations between each class or artefact. Optionally you can also specify the multiplicity of each. | |
4. From this information you should be able to produce a domain model to describe your scenario. Remember that this will include the _domain language_ but no other technical terms. | |
## Soft Systems Methodology | |
In your second lab try and apply the 7 step **Soft Systems Methodology** to the assignment scenario. Refer both to the lecture slides, including the bibliography at the end. | |
1. Enter the situation considered problematic | |
2. Express the problem situation in a rich picture | |
3. Formulate rich definitions of relevant systems of purposeful behaviour | |
4. Build conceptual models of human activity systems | |
5. Compare the models with the real world | |
6. Define changes that are desirable and feasible | |
7. Take action to improve the problem situation | |