Warnier/Orr diagrams
While I was going through comments under a post written by Jim Highsmith , I came across a term that caught my eye, it read "Does anybody remember Warnier/Orr diagram?" by John Horwath . Link to that post
This term piqued my interest and I started reading about it (link to the wiki article and PDF is at the end). And as I went on browsing through it I just found it to be so relevant, easy and usable in present day context.
It all begins with "Structured System Design (SSD)".
SSD is a structured programming methodology that provides a conceptual framework that facilitates writing programs that would usually run the first time.
Restricted choice of program control structures, elimination of GOTOs, modularity of program segments, reduction of complexity by breaking down programs into smaller pieces, functional analysis of a problem, hierarchical organization of problem components, data flow analysis and data-oriented design are few(but not limited to) of the program and implementation strategies that were considered valuable and notable around 1970's defined by the likes of DeMarco, Dijkstra, Jackson, Mills, Orr, Warnier, Yourdon & Constantine, Ross.
It was cited that following features stood common between above methodologies:
1. Fewer programming errors
2. Less maintenance
3. Improved efficiency in use of computer resources
All these components and many more have gone into the making of SSD and how it can be used as a? programs development technique and Systems designing methodology.
After an intensive 15 years of research and working experience, Jean-Dominique Warnier and Kenneth T. Orr termed SSD as a cumulative and evolving method of logical analysis, design and construction.
It is derived from Boolean algebra and set theory. (ok, I am now reliving my schooling days of maths).
SSD asserts
1. Design and coding should not happen separately and must be strictly avoided.
2. Design consists of 2 stages:
a. Hierarchical analysis of a problem is
i. A top-down approach.
ii. Requires successive decomposition of problem into subproblems (processes) derived from set-subset relationship intrinsic in the problem structure.
iii. Continue doing above step until it is no longer possible to subdivide a process.
iv. Each of these smallest sub-division(called functions) is a discrete action.
v. Is systematically implemented to
1) Carefully preserve and demonstrate explicitly all set-subset relationships between functions.
b. Synthesis of a logical process that will provide a correct problem solution. And consists of developing a Structured process that
i. Explicitly organizes functions in one 3 logical control structures
领英推荐
1) Sequence
2) Repetition
3) Alternation
ii. Is a bottom-up process that
1) Starts with desired output and works backward putting together a structured process that provides desired output
To summarize, the complete structured process thus consists of a hierarchical organization of functions linked by one of three logical control structures and, as a whole, represents necessary and sufficient actions required for a specified problem solution.
The final stage of the process is Construction, converting all derived functions in a specified order to statements that a given computer accepts.
To facilitate this hierarchical analysis process, a powerful yet simple notational scheme called the Warnier-Orr diagram was developed.
A simple form of Warnier-Orr diagram would look like this. The best way to read this diagram is from left to right. To the left, you have the biggest picture/problem that you need to solve and then you start decomposing it by moving right and the curly braces is used to group them:
What I have shown above is a very basic level of Warnier-Orr diagram. This diagram also includes various notations as shown in the table below. These notations can be used to depict dependencies and other stuff.
How can Warnier-Orr diagram help us in Product development?
While working with Product Management, this tool can be used to decompose Features into Epics and User stories. This tool will help us identify the desired relationships between epics. It will also help us identify dependencies and any kind of risks while formulating the requirements.
The usage of Warnier-Orr diagram can be unfathomable. Tools like Miro and mural can help us develop such diagrams with ease.
Another good example of using Warnier-Orr diagram was depicted by Higgins with notations is shown in below picture.
SSD and Warnier-Orr diagrams were designed to tackle problems systematically and with an idea that the programmers will get the program right the first time.
Links for you to do further reading:
Senior Business Analyst | Requirement Gathering | Business Process Optimisation | Facilitation | Agile Methodologies | Stakeholder Management | I help clients succeed by bridging the gap between business and technology
8 个月Great in-depth analysis of Warnier-Orr diagrams. I've learnt something new today! I particularly liked how you've incorporated an analogy of how this works against a typical weekday. For someone who is new to the concept (like me), this felt like an easy example to connect with! Keep up the writing flair, Vikram. ??
Co-author Agile Manifesto, Agile Pioneer, Writer, Lifetime (agility) Achievement Award (WMAF)
8 个月Vikram Kanse Warren J. if you want to dig deeper, look at a buddy of mine's website. Dave and I worked together during the structured years with Ken Orr. https://www.davehigginsconsulting.com/ and (from Dave) a website devoted to J.D, Warnier. https://sergemeneut0.wixsite.com/logiqueinformatique
Senior Leader | Program Manager | Release Train Engineer | Business Strategist
8 个月This is something new to me but would love to dig deaper. I remember talking to you about the problem solving technique that breaks down the issue to the root cause and brainstorm approaches to tackle that. The other side of this is that the initiative is the ultimate result we want to achieve which is then broken to the last unit of work known as a story. While the story remains true to the EPIC, it remains inherently connected to the initiatve via the EPIC and hence the importance of avoiding scope creep. There are many techniques out there. The most important thing to remember is that there's nothing new on earth. Everything is a combination of something else. This is a good piece of work. Keep it up!
Co-author Agile Manifesto, Agile Pioneer, Writer, Lifetime (agility) Achievement Award (WMAF)
8 个月Vikram Kanse, thanks for your research into Warnier-Orr Diagrams, they were quite useful in the day and SSD was some of the early work in software engineering. In the early 1980's we added a "D" or DSSM (Data Structured Systems Development) to differentiate it from other structured approaches of the time. in the mid-80s we launched a CASE (computer aided software engineering) tool effort that never caught on. I worked with Ken Orr for many years and met Warner once. They were among the early SE pioneers.
SAP Data Manager at Deloitte
8 个月Some insightful information here.. Thank you Vikram!