The strength of UML is that you only have te understand 3 modeltypes. The same models are used for stepwise refinement of requirements all the way down the system development process.

Within the workshops the accent is on making a UML class diagram. Use case scenario's s are used to make UML sequence diagrams en UML sequence diagrams are used to complete class diagrams. Not only completion of data attributes, also completion of assigned functionality. 

The third UML modeltype is a state transition diagram. Such a diagram models state dependent behavior of an instance of a class, that's an object. An example is the state transition of a proposal object to a contract, where the behavior changes from "sales behavior" to "delivery behavior".

Upon completion of the workshop, the partipant:

  • understands how to make a UML class diagram
  • understands how to make a UML sequence diagram
  • understands how to make a UML state transition diagram
  • understands how to identify relevant objects
  • understands how a use case step can be worked out with a UML sequence diagram
  • understands how a UML class diagram can be erriched with additional data atributes and functions
  • understands how a UML class diagram evolves gradually to a detailed system specification

 

 

Software architecture encompasses:
• Working out functional requirements that cut across use cases
• Working out non-functional requirements
• Description system components

Class diagram Sudoku

This diagram shows the so called domain model for the Sudoku app. A class is an abstraction of a number of objects with the same characteristics and behaviour. A board for instance has 81 cells, each of them is an object, but all cells have the same characteristics (digit, isGiven) and behaviour (the list of operations AddCandidateCentre(), AddCandidateCorner(), ConvertDigitToBitmask() and so on). The operations of a class indicate the main responsibilty of that class.

In many cases objects of classes collaborate with each other to perform an operation. The lines between the classes indicate the flow of the message traffic. A board delegates CheckIsValid() to 27 houses to do the work. Note that the triangle under House means that a Row, Column and Box are subtypes of a House. A row IS A house, a column IS A house and a box IS A house, they inherit all attributes and operations of the house.

It is important to understand that most messages in UML sequence diagrams become operations in the class diagram. In other words, when you refine requirements using UML sequence diagrams you enrich the class diagram with operations automatically. And when you refine all relevant use cases, you get a complete class diagram.

Also note that in this way the complexity of the app is divided among the classes.