When I think about software analysis the first thing which comes to mind is SSADM and the UML.

But, what I want is a high level view of the system before I commit to a programming paradigm.

Where am I going wrong?

How do I approach a problem in a high level and generic way before I commit to a paradigm?

What are the diagrams/tools available to support me?


Some examples of tools that appear to be what I'm after are...

A block diagram - http://en.wikipedia.org/wiki/Block_diagram

A data flow diagram - http://en.wikipedia.org/wiki/Data_flow_diagram

  • did you consider using natural language? Some of the best high level views of the system I've seen were using that kind er... tool to present a problem in a high level and generic way before committing to particular paradigm
    – gnat
    Mar 29, 2012 at 13:58
  • I would consider it but I find I am more quickly bogged down with the nitty gritty than I am enlightened.
    – bluekeys
    Mar 29, 2012 at 15:33

1 Answer 1


UML offers a variety of diagrams to model your system for various purposes.

The first and foremost aspect of the software to re-engineer or to engineer a software for the required system is the overall Business Scenario (what objectives and goals the software/system should meet). The formal phrase for such requirements is "Business Requirements".

Then comes the requirements, the intended users of the system should be able to meet to achieve the objectives. These are called "User Requirements".

You can model User Requirements in UML by using Use-Case Diagrams. This modeling should be prior to your functional (this includes DFD, ERD) and non-functional requirements (environment, constraints, platform, sclability).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.