Skip to content
Permalink
master
Switch branches/tags

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?
Go to file
 
 
Cannot retrieve contributors at this time

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