UmlI had to do a brief revisit of UML Fundas to work on a new project. This also coincides with the current book, I am on “ Design of every day things” , which stresses the importance of design in the modern world.
To the non-IT readers, UML is the language of designers of software systems. It helps to put the designer’s mental model on to paper using a set of diagrams which then can be used , to check whether it is compatible with the user model , a mental model relating to that of the end user of the software.

To keep it simple, UML facilitates a communication between designer and programming community . Here are the basics :

Whatzz UML ? The Unified Modeling Language  is a mostly graphical modelling language that is used to express designs.  It is a standardized language in which to specify the artefacts and components of a software system.

The diagrams available in UML to depict the designs are  :

Usecase diagrams: A use case is made up of a set of scenarios.  Each scenario is a sequence of steps that encompass an interaction between a user and a system.  The use case brings scenarios together that accomplish a specific goal of the user.Terms used are Actor , Associations, Includes, Extends, Generalization, Extension Points

Class Diagrams : The class diagram is core to object-oriented design.  It describes the types of objects in the system and the static relationships between them.
Terms used are Packages, Classes, Generalization

Interaction Diagrams : Interaction diagram captures the behaviour of a single case by showing the collaboration of the objects in the system to accomplish the task.There are two types of Interaction Diagrams – Sequence and Collaboration.  Sequence diagrams emphasize the order in which things happen, while collaboration diagrams give more flexibility in their layout.

Activity Diagram : An activity is the execution of a task whether it be a physical activity or the execution of code.  Simply put, the activity diagram shows the sequence of activities.  Like the simple flow chart, activity diagrams have support for conditional behaviour, but has added support for parallel execution as well.

**State Diagram :**The state diagram shows the change of an object through time.  Based upon events that occur, the state diagram shows how the object changes from start to finish.

**Implementation Diagrams - Component and Deployment :**There are 2 types of diagrams which give an idea of the implementation . With the deployment diagram, you can show how the components of your system are physically related, and with the component diagram, you can show the components in the system are organized.

After almost a year , I will on to designing a software product again. I am sure this time around, the design would be a better . With Norman’s fundas fresh in my mind, it will be fun to see the outcome of the new design.