Skip to content
Permalink
f747bf3177
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
39 lines (27 sloc) 2.59 KB

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. Describe the domain depicted in your scenario. This should be in the form of between 6 and 12 sentences in plain English that include the key terms commonly used in the domain but no technical language at all. There is an example on lecture slide 45 (the link to the presentation can be found at the top of this lab). This simulates the notes you would be taking in an early meeting with your client.
  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.
  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.

This exercise will probably take one complete lab. For the rest of the week you should ensure you have completed the core labs from previous weeks in readyness for the start of the build next week. These labs are:

  1. Setup (plus local setup if you plan on using your own laptop).
  2. Templates and forms.
  3. Dynamic websites.
  4. TDD and Express.

The extra labs will help you during the build and, if time allows, you should complete the following:

  1. TDD and APIs (especially if you are studying 304CEM).
  2. TDD and JavaScript, to help you implement TDD for code running in the browser.
  3. Async JavaScript which will improve your code structure and layout by introducing some of the more advanced JavaScript asynchronous constructs.

Soft Systems Methodology

Can you 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