5

Before everything became "enterprise", there was a time, when everything was "structured". About 20 years ago structured analysis and structured design (SADT), together with CASE tools promised salvation to many IT proferssionals.

While the hype back then - like any other hype - came and went, I am amazed to see virtually no traces of SADT anymore. And actually I believe it wasn't that bad to deserve such a fate. What I particularly like, it that it emphasises the functional aspects of a system, i.e. you will gain a clear understanding what a system produces (you cannot specify write-only systems with SADT), a paradigm which is also ubiqitous in functional programming.

My questions are:

  • what is the modern equivalent of SADT?
  • Is there an UML drawing style (other than the context diagram) offering a similar level of abstraction and comparable possibilities of refinement.
  • Do you know why the world abandoned SADT?
  • Are you aware of any CASE tools which allow doing SADT, and which go beyond mere drawing tools and e.g. allow hierarchical diagrams whith consistency checking
Martin Drautzburg
  • 5,143
  • 1
  • 27
  • 39

2 Answers2

8

"See virtually no traces of SADT anymore" :Keyword is "virtually". Our "modern" concepts like "cohesion" and "coupling" mostly come from SADT [Edward Yourdon-Larry L.Contantine] .There is even interesting references from modern software literature to old SADT literature. For example, Kent Beck, in his Implementation Patters book's Bibliography section says:

Edward Yourdan and Larry Constantine,Structured Design,...,1979 .

This books presents the equivalent of the laws of physics for software design and grounds the discussion on the economics of development.[ Kent Beck, Implementation Patterns]

In that books Yourdan and Constantine says that:

Structured design is the art of designing the components of a system and interrelationship between those components in the best possible way.

And Meilir Page-Jones says that:

  • Structured Design uses tools, especially graphic ones, to render systems readily understandable. [ Meilir Page-Jones- Practical Guide to Structured Systems Design]

And today in software development our aim is still same... :-)

Why the world abandoned SADT?

Well, we have more changes than fashion industry :-).

The systems we build today and constraints are different than they were twenty or more years ago. I think when we begin to develop more "data-oriented" systems, where functional complexity is less of concern,SADT practices like Structure Chart-Data Flow Diagrams "lost" their efficiency for some systems..Then Object Oriented style come with its own methodologies and representations.

But Entity-Relationship(ER) diagrams and concept of Data Dictionary are still alive.

For an interesting view point of Yourdon check his blog: Watching “agile”...

Interestingly Yourdon still makes update on Structured Design Materials. Check at: Modern Structured Analysis

What replaced SADT?

Well...For object oriented systems..

Suppose we have Responsibility Driven Design [ in which cohesion and coupling is still important] for finding best components and their interconnections in ours systems. And UML generally gives us good visual thinking tool for finding those components and relaitionships.

And now we understand that software development is experimental activity. We should do iterative and incremental development with evolutionary requirements.

There seem to be no magic "method" in which can be followed like a "receipt" for success.

Modeling in General:

Diagrams-Models are just thinking tools.

It is not realistic to design whole system on paper with UML or other notations.Actually our real models are "source code" which can be executed and tested.

There are some attempts like MDA(Model Driven Architecture) which try to produce executable code from models automatically: so we just have to model the system, then everything will be produced automatically. But we realized that this is also not realistic.For now it is just a dream that some tool vendors sell. Now our focus is more on Domain Specific Languages which is more practical and realistic.

Hippias Minor
  • 1,917
  • 2
  • 21
  • 46
  • Thanks. What I miss the most in UML is that while it good for desrcribing what a system "talks about", what different parts see of each other and even the sequence of operations, but it is kind of difficult to descibe the purpose of a system and how this purpose is achieved. Currently I am facing the problem of describing just that, and I thought SADT wouldn't be a bad methodology. However there aren't any tools around and I would have to do all the constraint checking myself. – Martin Drautzburg May 01 '13 at 18:19
  • 1
    But CASE tools always has limitations in our software development history. Many of them was bad, and still most of them are bad.I think the method you use is more important than your tools.The project is more important than the "method": the aim of method is to make your project successful.And people are more important than project. As a member of project team you should be happy while developing your software and your user should be happy while they use it – Hippias Minor May 02 '13 at 19:06
0

I worked with SADT for a new weather satellite using C++. I found its description of the functional aspects (as was stated in the question) of an algorithm very valuable. Try search term: "GOES-R SADT" to find: http://www.goes-r.gov/downloads/GUC-7/poster-sessions/4-06_Ivan_Pathfinder.pdf and https://ams.confex.com/ams/91Annual/webprogram/Manuscript/Paper184496/SADT-UML-Extended-Abstract%28Submitted-20110223%29.pdf

  • Welcome to SO! Link-only answers aren't a good fit for SO. Please try to summarize what is in the links to answer the question. – codeMagic Jan 08 '14 at 03:15