Assignment 1

This describes the task for the first assignment. Read the full instructions before starting to work, then perform all the steps in order. Be sure to document all assumptions and changes you are making.

Please use English in your models and documents.

All files should be viewable in gitlab and not need download, linking to external tools etc. Do not use word documents etc.

All projects will be generated on gitlab.

Goals

In this assignment you show that you:

  • grasp the use of conceptual classes in domain modeling
  • know how to use attributes in conceptual classes
  • know how to relate conceptual classes with eachother
  • know the difference between analysis and design
  • know the difference between a UML design class diagram and a UML domain model class diagram
  • can create a model for a basic problem

Requirements for Grade 2 (Passing Grade)

Working Process

  • You work with this grade in your project A1_2 in the main branch.
  • Commit and push to your work regularly.
  • When done you create a merge request for merging your main-branch to the release-branch and select the A1 Grade 2 milestone.
  • Tick the corresponding check-boxes in the merge request. Do not close or merge, this is done by the course administration when the assignment is done.

Tasks

  • Read problem description for the Stuff Lending System

  • Perform an object-oriented analysis using domain modeling based on the problem description and the use cases. These requirements delimit the domain model. Remember that the only thing certain about requirements is that they are contradictory, has too few details and are generally incorrect :)

  • You should create a stuff_lending_system.md file where you show your diagram(s) and any accompanying notes.

Common Misstakes

  • UML Notation Issues: A domain model uses a subset of the UML class diagram notation. Only attributes, associations and generalization notation is used. The notation for the associtaion is limited to using association name (not role name) and multiplicitiy.
  • Use of Key/IDs: Classes should be related via associations not keys or IDs
  • Flowchart Thinking: A domain model is a static model it does not show a flow or sequence of events (this is shown in the use cases). The domain model should show what information is needed and how the information needs to be connected to perform the requirements.
  • Time/History: It is easy to forget about things that needs to be remembered over time, check the requirements carefully.
  • Reflecting the Requirements: Showing that someone can do something is not the purpose of the domain model, you should focus on what information is needed so that the requirments can be performed.

Requirements for Grade 3

Working Process

  • You work with this grade in your project A1_3 in the main branch.
  • Commit to your work regularly to your working branch
  • When done you create a merge request for merging your final main-branch to the release-branch and select the A1 Grade 3 milestone.
  • Tick the corresponding check-boxes in the merge request. Do not close or merge, this is done by the course administration when the assignment is done.

Tasks

  • Grade 2 tasks must be done

  • Read problem description for the Yacht Club System

  • Perform an object-oriented analysis using domain modeling based on the problem description and the use cases. These requirements delimit the domain model. Remember that the only thing certain about requirements is that they are contradictory, has too few details and are generally incorrect :)

  • You should create a yacht_club_system.md file where you show your diagram(s) and any accompanying notes.

Requirements for Grade 4

Working Process

  • You work with this grade in your project A1_4 in the main branch.
  • Commit and push to your work regularly.
  • When done you create a merge request for merging your main-branch to the release-branch and select the A1 Grade 4 milestone.
  • Tick the corresponding check-boxes in the merge request. Do not close or merge, this is done by the course administration when the assignment is done.

Tasks

  • Grade 2 and Grade 3 tasks must be done

  • Construct a comprehensive domain model for any of the following, the domain model should be reasonably general, but also capture the unique. Please visit in real life and study how it works (maybe even an interview with a domain expert if / when you discover ambiguities), to get a deeper understanding. Document carefully any assumptions you make.

  • Online-media/book store (bokus, amazon, cdon, …)

  • E-commerce site for computer stuff (netonnet, komplett, dustin, …)

  • A library

  • Fast food restaurant (mcdonalds, burger king, sibylla, max)

  • Your own suggestion (please contact Tobias for approval BEFORE you start)

  • You should create a domain_model.md file where you show your diagram(s) and any accompanying notes.