Monday, November 3, 2008

Warnier - Orr Diagram

Warnier-Orr diagram

Warnier-Orr diagram is a graphic charting technique used in software engineering for system analysis and design purposes. They were initially developed in France by Jean-Dominique Warnier & in the US by Kenneth Orr.This is a kind of hierarchical flowchart that allow the description of the organization of data and procedures.These diagrams are very much similar to the flow charts, but they look like pseudo code rather than blocks and shapes. These are the graphical representations of algorithms. These diagrams help the programmers work on, and record one problem before moving into the next problem or next part. So, that confusion in the complexity of the program will be reduced. This gives the ability to understand the logical structure of the program without getting confused in the complexity of that program. These diagrams are easy to understand and also easy to create. This method aids the design of program structures by identifying the output & processing results & then working backwards to determine the steps & combinations of input needed to produce them. The simple graphic method used in Warnier/Orr diagrams makes the levels in the system evident and the movement of the data between them vivid.

This diagram shows the processes and sequences very well. Each process is very well clearly explained as by having sub processes in it. These are represented by a bracket, grouping its components. Every process is designed in a hierarchical manner.

To construct a WO diagram, one should move backwards and construct it, such as start from the output and should do analysis backwards. There is a advantage of showing data in processes and in steps and sequences and also flow of data from level to level.

Lets have a quick description of elements of WO diagram

Bracket: A bracket encloses a level of decomposition in a diagram. It reveals what something "consists of" at the next level of detail.

Sequence: The sequence of events is defined by the top-to-bottom order in a diagram. That is, an event occurs after everything above it in a diagram, but before anything below it.

OR: You represent choice in a diagram by placing an "OR" operator between the items of a choice. The "OR" operator looks either like or .

AND: You represent concurrency in a diagram by placing an "AND" operator between the concurrent actions. The "AND" operator looks either like or .

Repetition: To show that an action repeats (loops), you simply put the number of repetitions of the action in parentheses below the action.

The diagram below illustrates the use of these constructs to describe a simple process.








You could read the above diagram like this:

"Welcoming a guest to your home (from 1 to many times) consists of greeting the guest and taking the guest's coat at the same time, then showing the guest in. Greeting a guest consists of saying "Good morning" if it's morning, or saying "Good afternoon" if it's afternoon, or saying "Good evening" if it's evening. Taking the guest's coat consists of helping the guest remove their coat, then hanging the coat up."

As you can see, the diagram is much easier to understand than the description.

The Warnier-Orr Diagram is read from left to right and from top to bottom within a bracket.

There are mainly 8 fundamental building blocks in this WO diagram, they are as follows:

· Hierarchy

· Sequence

· Selection

· Complement

· Repetition

· Concurrency

· Begin/End Blocks

· Recursion

Hierarchy:

Hierarchy on a Warnier-Orr Diagram is represented with brackets.


Sequence:

Sequence represents the order in which the tasks to be done, by listing them one below the other.

Selection:

Selection is used to allow choices between more than two tasks.


Complement:

Complement is nothing but the logical not condition.


Repetition:

Repetition provides looping.


Concurrency:

Concurrency allows different tasks to be done at the same time.


Begin/End Blocks:

Here, the Begin block holds the operations performed in the beginning of the task and End block contains operations performed at the end of the task.

Recursive:

Recursive block contains itself a sub process in it.















In this way, any process in any organization can be explained clearly to everyone, because its nothing but the step wise explanation of the task to be performed.