After a weeks break David presented an introductory lecture on the Object Oriented Analysis Phase [PADIS]. As we had already covered Class Diagrams in the previous lecture we moved straight into Use Case Modeling. All of the diagrams used in the Object Oriented Analysis phase (and discussed in this week) are members of the Unified Modeling Language:

Source: Paulo Merson

The Diagrams/Models covered in the Object Oriented Analysis phase are:

  1. Class Diagram – Discussed last week –
  2. Use Case Diagram – Actors (outside system boundaries) use Functions (inside system boundaries). Starting point and salient end point.

    Source: Original Kishorekumar 62, redrawn by Marcel Douwe Dekker
  3. Use Case Narrative – Brief -> Intermediate -> Fully Developed
  4. Activity Diagram -Document work flows, vertical swim lanes for actors and system.

    Source: http://www.agilemodeling.com/style/activityDiagram.htm
  5. Sequence Diagram / System Sequence Diagram  [SSD] – Shows flow of events and interactions (inputs and outputs) in a single use case.

    source: http://en.wikipedia.org/wiki/File:CheckEmail.png
  6. StateChart Diagram –  We did not get into these in any details, mentioning only that they are for State driven programs such as lifts.

It is important to not that there is not a set order of completion to these models. In fact David recommended that to reflect the iterative approach to Object Oriented Development the models should be created and updated concurrently.

In the tut we had a brief introduction to Visual Paradigm, a CASE tool for UML modeling. When doing the assignment for this subject over the Easter break I had a look for some tools to make a Class Model and ended up deciding on Umbrello. Umbrello is a bit ‘lite-er’ and I found it easier to understand, it is however still a little bit buggy and is only supported on Linux. A comparison for your options in UML modelling tools can be found at the following Wikipedia page: http://en.wikipedia.org/wiki/Comparison_of_Unified_Modeling_Language_tools

The only point where I feel a little unclear on the Analysis phase is determining the level of abstraction. For example in the Use Case diagrams would on include separate us cases for cash purchases and credit card purchases? I asked David this in the lecture and he initially responded ‘No, don’t deconstruction during the Analysis phase’ then added that there was not a strict rule and levels of abstraction could vary between Analysts. My perception of this is that as long as the models created in the Analysis phase are technologically neutral and understandable for non-technical readers then they would meet the requirements.

Pearl of the week:

Use UML modeling tools such as Visual Paradigm or Umbrello to generate the source code template and files. This will significantly speed up the design and implementation phases.