World Library  
Flag as Inappropriate
Email this Article

Structured analysis

Article Id: WHEBN0007696546
Reproduction Date:

Title: Structured analysis  
Author: World Heritage Encyclopedia
Language: English
Subject: Prosa Structured Analysis Tool, Structured Analysis and Design Technique, Structured systems analysis and design method, Software design, Decomposition (computer science)
Collection: Software Design
Publisher: World Heritage Encyclopedia

Structured analysis

Example of a Structured Analysis approach.[1]

Structured Analysis (SA) in software engineering and its allied technique, Structured Design (SD), are methods for analyzing and converting business requirements into specifications and ultimately, computer programs, hardware configurations and related manual procedures.

Structured analysis and design techniques are fundamental tools of systems analysis, and developed from classical systems analysis of the 1960s and 1970s.[2]


  • Objectives of Structured Analysis 1
  • History 2
  • Structured analysis topics 3
    • Single abstraction mechanism 3.1
    • Approach 3.2
    • Context diagram 3.3
    • Data dictionary 3.4
    • Data Flow Diagrams 3.5
    • Structure Chart 3.6
    • Structured Design 3.7
    • Structured query language 3.8
    • Software tools for Structured analysis 3.9
  • Criticisms 4
  • See also 5
  • References 6
  • External links 7

Objectives of Structured Analysis

Structured Analysis became popular in the 1980s and is still used by many. The analysis consists of interpreting the system concept (or real world situations) into data and control terminology represented by data flow diagrams. The flow of data and control from bubble to data store to bubble can be very hard to track and the number of bubbles can get to be extremely large. One approach is to first define events from the outside world that require the system to react, then assign a bubble to that event, bubbles that need to interact are then connected until the system is defined. This can be rather overwhelming and so the bubbles are usually grouped into higher level bubbles. Data Dictionaries are needed to describe the data and command flows and a process specification is needed to capture the transaction/transformation information.[3]

SA and SD were accompanied by notation methods including structure charts, data flow diagrams and data model diagrams, of which there were many variations, including those developed by Tom DeMarco, Ken Orr, Larry Constantine, Vaughn Frick, Ed Yourdon, Steven Ward, Peter Chen, and others.

These techniques were combined in various published System Development Methodologies, including Structured Systems Analysis and Design Method, Profitable Information by Design (PRIDE), Nastec Structured Analysis & Design, SDM/70 and the Spectrum Structured system development methodology.


Structured analysis is part of a series of structured methods, that "represent a collection of analysis, design, and programming techniques that were developed in response to the problems facing the software world from the 1960s to the 1980s. In this timeframe most commercial programming was done in Cobol and Fortran, then C and BASIC. There was little guidance on "good" design and programming techniques, and there were no standard techniques for documenting requirements and designs. Systems were getting larger and more complex, and the information system development became harder and harder to do so".[4] As a way to help manage large and complex software, the following structured methods emerged.

Since the end of the 1960s multiple Structured Methods emerged:[4]

According to Hay(1999) "information engineering was a logical extension of the structured techniques that were developed during the 1970's. Structured programming led to structured design, which in turn led to structured systems analysis. These techniques were characterized by their use of diagrams: structure charts for structured design, and data flow diagrams for structured analysis, both to aid in communication between users and developers, and to improve the analyst's and the designer's discipline. During the 1980's, tools began to appear which both automated the drawing of the diagrams, and kept track of the things drawn in a data dictionary".[8] After the example of computer-aided design and computer-aided manufacturing (CAD/CAM), the use of these tools was named Computer-aided software engineering (CASE).

Structured analysis topics

Single abstraction mechanism

Image:Structured Analysis example.[9]

Structured analysis typically creates a hierarchy employing a single abstraction mechanism. The structured analysis method can employ IDEF (see figure), is process driven, and starts with a purpose and a viewpoint. This method identifies the overall function and iteratively divides functions into smaller functions, preserving inputs, outputs, controls, and mechanisms necessary to optimize processes. Also known as a functional decomposition approach, it focuses on cohesion within functions and coupling between functions leading to structured data.[9]

The functional decomposition of the structured method describes the process without delineating system behavior and dictates system structure in the form of required functions. The method identifies inputs and outputs as related to the activities. One reason for the popularity of structured analysis is its intuitive ability to communicate high-level processes and concepts, whether single system or enterprise levels. Discovering how objects might support functions for commercially prevalent object-oriented development is unclear. In contrast to IDEF, the UML is interface driven with multiple abstraction mechanisms useful in describing service-oriented architectures (SOAs).[9]


Structured Analysis views a system from the perspective of the data flowing through it. The function of the system is described by processes that transform the data flows. Structured analysis takes advantage of information hiding through successive decomposition (or top down) analysis. This allows attention to be focused on pertinent details and avoids confusion from looking at irrelevant details. As the level of detail increases, the breadth of information is reduced. The result of structured analysis is a set of related graphical diagrams, process descriptions, and data definitions. They describe the transformations that need to take place and the data required to meet a system's functional requirements.[10]

The structured analyse approach develops perspectives on both process objects and data objects.[10]

De Marco's approach[11] consists of the following objects (see figure):[10]

Hereby the Data flow diagrams (DFDs) are directed graphs. The arcs represent data, and the nodes (circles or bubbles) represent processes that transform the data. A process can be further decomposed to a more detailed DFD which shows the subprocesses and data flows within it. The subprocesses can in turn be decomposed further with another set of DFDs until their functions can be easily understood. Functional primitives are processes which do not need to be decomposed further. Functional primitives are described by a process specification (or mini-spec). The process specification can consist of pseudo-code, flowcharts, or structured English. The DFDs model the structure of the system as a network of interconnected processes composed of functional primitives. The data dictionary is a set of entries (definitions) of data flows, data elements, files. and data bases. The data dictionary enmes are partitioned in a top-down manner. They can be referenced in other data dictionary entries and in data flow diagrams.[10]

Context diagram

Example of a System context diagram.[12]

Context diagrams are diagrams that represent the actors outside a system that could interact with that system.[13] This diagram is the highest level view of a system, similar to Block Diagram, showing a, possibly software-based, system as a whole and its inputs and outputs from/to external factors.

This type of diagram according to Kossiakoff (2003) usually "pictures the system at the center, with no details of its interior structure, surrounded by all its interacting systems, environment and activities. The objective of a system context diagram is to focus attention on external factors and events that should be considered in developing a complete set of system requirements and constraints".[13] System context diagram are related to Data Flow Diagram, and show the interactions between a system and other actors with which the system is designed to face. System context diagrams can be helpful in understanding the context in which the system will be part of software engineering.

Data dictionary

Entity relationship diagram, essential for the design of database tables, extracts, and metadata.[14]

A database.[14] A database dictionary contains a list of all files in the database, the number of records in each file, and the names and types of each data field. Most database management systems keep the data dictionary hidden from users to prevent them from accidentally destroying its contents. Data dictionaries do not contain any actual data from the database, only bookkeeping information for managing it. Without a data dictionary, however, a database management system cannot access data from the database.[14]

Database users and

  • Structured Analysis Wiki
  • Three views of structured analysis CRaG Systems, 2004.

External links

  • Tom DeMarco (1979). Structured Analysis and System Specification. Prentice Hall. ISBN 0-13-854380-1
  • Page-Jones, M (1980), The Practical Guide to Structured Systems Design, New York: Yourdon Press 
  • Derek J. Hatley, Imtiaz A. Pirbhai (1988). Strategies for Real Time System Specification. John Wiley and Sons Ltd. ISBN 0-932633-04-8
  • Stephen J. Mellor und Paul T. Ward (1986). Structured Development for Real-Time Systems: Implementation Modeling Techniques: 003. Prentice Hall. ISBN 0-13-854803-X
  • Edward Yourdon (1989). Modern Structured Analysis, Yourdon Press Computing Series, 1989, ISBN 0-13-598624-9
  • Keith Edwards (1993). Real-Time Structured Methods, System Analysis. Wiley. ISBN 0-471-93415-1
  1. ^ Tricia Gilbert (2006) FCS Evaluation criterea for technology assessment
  2. ^ Edward Yourdon (1986). Managing the Structured Techniques: Strategies for Software Development in the 1990s. Yourdon Press. p.35.
  3. ^ a b FAA (2000). FAA System Safety Handbook, Appendix D. December 30, 2000.
  4. ^ a b Dave Levitt (2000):Introduction to Structured Analysis and Design. Retrieved 21 Sep 2008.
  5. ^ a b Stevens, Myers & Constantine 1974.
  6. ^ a b Yourdon & Constantine 1979.
  7. ^ Gavriel Salvendy (2001). Handbook of Industrial Engineering: Technology and Operations Management.. p.508.
  8. ^ David C. Hay (1999) Achieving buzzword compliance in Object orientation Essential Strategies, Inc.
  9. ^ a b c DoD Architecture Framework Working Group (2003). DoDAF 1.5 Volume 2, 15 August 2003.
  10. ^ a b c d e f g Alan Hecht and Andy Simmons (1986) Integrating Automated Structured Analysis and Design with Ada Programming Support Environments NASA 1986.
  11. ^ Tom DeMarco (1978). Structured Analysis and System Specification. Yourdon Press, New York, 1978.
  12. ^ NDE Project Management (NPOESS) Data Exploitation web site. 2008.
  13. ^ a b Alexander Kossiakoff, William N. Sweet (2003). Systems Engineering: Principles and Practices p. 413.
  14. ^ a b c d Data Integration Glossary, U.S. Department of Transportation, August 2001.
  15. ^ TechTarget, SearchSOA, What is a data dictionary?
  16. ^ AHIMA Practice Brief, Guidelines for Developing a Data Dictionary, Journal of AHIMA 77, no.2 (February 2006): 64A-D.
  17. ^ John Azzolini (2000). Introduction to Systems Engineering Practices. July 2000.
  18. ^ W. Stevens, G. Myers, L. Constantine, "Structured Design", IBM Systems Journal, 13 (2), 115-139, 1974.
  19. ^ a b "Configuration Management" In: IRS Resources Part 2. Information Technology Chapter 27. Configuration Management. Accessed 14 Nov 2008.
  20. ^ James Martin, Carma L. McClure (1988). Structured Techniques: The Basis for Case. Prentice Hall. p.56.
  21. ^ David Wolber "Structure Charts: Supplementary Notes Structure Charts and Bottom-up Implementation: Java Version.
  22. ^ Page-Jones 1980.
  23. ^ Belkhouche, B., and J.E. Urban. (1986). "Direct Implementation of Abstract Data Types from Abstract Specifications". In: IEEE Transactions on Software Engineering pp. 549-661, May, 1986.


See also

  1. choosing bubbles appropriately,
  2. partitioning those bubbles in a meaningful and mutually agreed upon manner,
  3. the size of the documentation needed to understand the Data Flows,
  4. still strongly functional in nature and thus subject to frequent change,
  5. though "data" flow is emphasized, "data" modeling is not, so there is little understanding of just what the subject matter of the system is about, and
  6. not only is it hard for the customer to follow how the concept is mapped into these data flows and bubbles, it has also been very hard for the designers who must shift the DFD organization into an implementable format

Problems with data flow diagrams have been:[3]


Software tools for Structured analysis

The structured query language (SQL) is a standardized language for querying information from a database. SQL was first introduced as a commercial database system in 1979 and has since been the favorite query language for database management systems running on minicomputers and mainframes. Increasingly, however, SQL is being supported by PC database systems because it supports distributed databases (see definition of distributed database). This enables several users on a computer network to access the same database simultaneously. Although there are different dialects of SQL, it is nevertheless the closest thing to a standard query language that currently exists.[14]

Structured query language

The structure chart aims to show "the module hierarchy or calling sequence relationship of modules. There is a module specification for each module shown on the structure chart. The module specifications can be composed of pseudo-code or a program design language. The data dictionary is like that of structured analysis. At this stage in the software development lifecycle, after analysis and design have been performed, it is possible to automatically generate data type declarations",[23] and procedure or subroutine templates.[10]

  • structure charts
  • module specifications
  • data dictionary.

Structured Design was developed by Larry Constantine in the late 1960s, then refined and published with collaborators in the 1970s;[5][6] see Larry Constantine: Structured Design for details. Page-Jones (1980) has proposed his own approach which consists of three main objects :

  • Cohesion which is "concerned with the grouping of functionally related processes into a particular module",[10] and
  • Coupling relates to "the flow of information or parameters passed between modules. Optimal coupling reduces the interfaces of modules and the resulting complexity of the software".[10]

Structured Design (SD) is concerned with the development of modules and the synthesis of these modules in a so-called "module hierarchy".[22] In order to design optimal module structure and interfaces two principles are crucial:

Structured Design

In structured analysis structure charts are used to specify the high-level design, or architecture, of a computer program. As a design tool, they aid the programmer in dividing and conquering a large software problem, that is, recursively breaking a problem down into parts that are small enough to be understood by a human brain. The process is called top-down design, or functional decomposition. Programmers use a structure chart to build a program in a manner similar to how an architect uses a blueprint to build a house. In the design stage, the chart is drawn and used as a way for the client and the various software designers to communicate. During the actual building of the program (implementation), the chart is continually referred to as the master-plan.[21]

A Structure Chart (SC) is a chart, that shows the breakdown of the configuration system to the lowest manageable levels.[19] This chart is used in structured programming to arrange the program modules in a tree structure. Each module is represented by a box which contains the name of the modules. The tree structure visualizes the relationships between the modules.[20]

A Configuration System Structure Chart.[19]

Structure Chart

Data flow diagrams (DFDs) are one of the three essential perspectives of Structured Systems Analysis and Design Method (SSADM). The sponsor of a project and the end users will need to be briefed and consulted throughout all stages of a system's evolution. With a dataflow diagram, users are able to visualize how the system will operate, what the system will accomplish, and how the system will be implemented. The old system's dataflow diagrams can be drawn up and compared with the new system's dataflow diagrams to draw comparisons to implement a more efficient system. Dataflow diagrams can be used to provide the end user with a physical idea of where the data they input ultimately has an effect upon the structure of the whole system from order to dispatch to recook. How any system is developed can be determined through a dataflow diagram.

It is common practice to draw a System Context Diagram first which shows the interaction between the system and outside entities. The DFD is designed to show how a system is divided into smaller portions and to highlight the flow of data between those parts. This context-level Data flow diagram is then "exploded" to show more detail of the system being modeled.

A Data Flow Diagram (DFD) is a graphical representation of the "flow" of data through an information system. It differs from the system flowchart as it shows the flow of data through processes instead of computer hardware. Data flow diagrams were invented by Larry Constantine, developer of structured design, based on Martin and Estrin's "data flow graph" model of computation.[18]

Data Flow Diagram example.[17]

Data Flow Diagrams

[16].federated databases, not the data itself. A data dictionary document also may include further information describing how data elements are encoded. One of the advantages of well-designed data dictionary documentation is that it helps to establish consistency throughout a complex database, or across a large collection of database structure about metadata. There is no universal standard as to the level of detail in such a document, but it is primarily a distillation of data element and length of each type in each database, plus additional details, like the fields and tables This typically includes the names and descriptions of various [15]

This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.