A little about UML
UML is a Standard Modelling Language for system design. It allows for the visual modelling of business processes, software and systems and is made up of:
– Notation (Symbols, Connectors, Notes and Values)
– Diagrams (The visual make up of a system).
UML is a set of specifications managed by the Object Management Group (www.omg.org). UML is extensible and it has been designed to be flexible and scalable (UML can be used to model a huge system or a quick business process sketch). UML can be used to model the following:
– Business Processes
– Application Structure
– Software behaviour (workflow)
– Model data structures
– Sketch out general structured idea’s
– Communication workflow
– Deployment workflow
The technology evolved from object orientated system design using classes and objects as the basis for components of the workflows. This concept is not only applied to programming however, business processes are made up of components that can be represented as objects. Lets cover some Object Orientation basics…
What is a system?
A related set of objects and instructions that together provide a working process.
What is an object?
Something (a component) that exists in the context of a system. An object is an instance of a class. A repeat product of a prototype / template idea (Class).
What is a Class?
Classes are templates that can create objects.
Classes have attributes (properties) and Methods (how it operates) associated with them that allow object instances to use.
Classes can inherit properties and methods from other classes, this is called class inheritence.
Relationships : Object Orientation
Created Objects do not always exist in isolation. They have relationships with other objects (ARE ASSOCIATED). For example, a speaker object and cd player object are working in associated to provide you with music. In the example of a fish bowl, The bowl object has a relationship with each individual fish object.
SubClasses:Center, Forward, Guard
Methods: Dribble the ball, take a 3 point shot.
Properties:Black Shorts, White Shoes.
Each object created from the subclasses hold a relationship with other objects in that they work together as a basketball team.
The 4+1 approach to modelling systems
When looking at an entire system as a whole, it can seem complicated at first and a good starting point if to create a 4+1 model diagram by breaking it down into 5 parts or Views. This model ensures you have considered and documented these 5 high level important aspects of any system. This approach breaks down the modelling of any system into the following views (inclusive of a use case view):
Each segment of the above offers its own perspective on the system architecture. Each of these views are clearly offering different information and so each view has a different UML diagram associated with it. As you can see its made up of 4+1 parts:
Logical View : The logical objects (parts) of the system.
Process View: The process (workflow) of operation of these objects.
Physical View: The physical hardware and software the systems runs on.
Development View : The packages, run-time environments and class libraries used.
Use Case View : What the system does (functionality) from the perspective of a user (scenarios). Used in combination with requirement / specification documents.
Lets break these 5 system views down some more:
Logical View (The Systems Objects)
This view shows the components (objects) of the system as well as their interactions / relationships. So effectively is the object model layout. It comprises the classes and objects within the system. UML diagrams that illustrate a systems logical view include :
– Class Diagrams (Most common UML diagram)
– State Diagrams
– Object Diagrams
– Sequence Diagrams
– Communication Diagrams
Process View (The Systems Workflow)
The process view shows the processes / workflow rules of a system and how those processes communicate with each other. It explores ‘what needs to happen’ in a system. UML diagrams that illustrate a systems process view include :
– Activity Diagram
Physical View (The System Environment)
This view shows the systems execution environment (hardware / software platforms). UML diagrams that illustrate a systems physical view include :
– Deployment Diagram
Development View (The Systems Software Hierarchy)
This view shows the parts of a system used in its operation (its layers of operation). It gives a building block view of the system. For example Packages Used, Execution Environments (i.e JVM or .NET), Class Libraries and Sub systems utilized. UML Diagrams that illustrate a systems process view include :
– Component Diagrams
– Package Diagrams
Use Case View (What the System is supposed to do)
This view offers an outside users perspective of the system. It captures the goals of the system and looks at the desired functionality of the system. Used along with use cases (user requirements / specification documents that the business analysts generally write) to understand the systems required use / functionality. UML diagrams that illustrate a systems process view include :
– Use Case Diagrams