# Structure chart

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Structure_chart
> Markdown URL: https://mediated.wiki/source/Structure_chart.md
> Source: https://en.wikipedia.org/wiki/Structure_chart
> Source revision: 1277243840
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

{{Short description|Chart}}
[[File:CPT-Structured Chart Example.svg|thumb|320px|Example of a Structured Chart.<ref name="Sandia92">Sandia National Laboratories (1992). [http://www.prod.sandia.gov/cgi-bin/techlib/access-control.pl/1985/852348.pdf Sandia Software Guidelines Volume 5 Tools, Techniques, and Methodologies] SANDIA REPORTS 85–2348qUC–32</ref>]]
A '''structure chart''' (SC) in [software engineering](/source/software_engineering) and [organizational theory](/source/organizational_theory) is a [chart](/source/chart) which shows the smallest of a system to its lowest manageable levels.<ref name="IRT">IRS (2008) "Configuration Management" In: ''IRS Resources Part 2. Information Technol Chapter 27. Configuration Management''. Accessed at [https://www.irs.gov/ IRS.GOV] 14 November 2008. No longer online 8 November 2009.</ref> They are used in [structured programming](/source/structured_programming) to arrange program modules into a tree. Each module is represented by a box, which contains the module's name. The tree structure visualizes the relationships between modules.<ref>[James Martin](/source/James_Martin_(author)), Carma L. McClure (1988). ''Structured Techniques: The Basis for Case''. Prentice Hall. p.56.</ref>

== Overview ==
thumb|upright=1.5|alt=Illustration of simple hierarchy chart.|This hierarchy chart represents data passing between two modules. When the module Pay_Bill is executed, the pseudocode checks if the bill is already paid by searching for the payment receipt (execute Search_Receipt). If the receipt is not found then it will execute the module Give_Money_To_Debt_Collector to finish the job.

A structure chart is a [top-down modular design](/source/top-down_design) tool, constructed of squares representing the different modules in the [system](/source/system), and lines that connect them. The lines represent the connection and or ownership between activities and subactivities as they are used in [organization chart](/source/organization_chart)s.<ref>H. Fujita & V. Gruhn (2004). ''New Trends in Software Methodologies, Tools and Techniques''. Page 6.</ref>

In [structured analysis](/source/structured_analysis) structure charts, according to Wolber (2009), "are used to specify the high-level design, or architecture, of a [computer program](/source/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](/source/top-down_design), or [functional decomposition](/source/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".<ref name="Wol">David Wolber (2009) "[https://web.archive.org/web/20090219083522/http://www.usfca.edu/~wolberd/cs112/SupplementalNotes/structureChart.doc Structure Charts]:  Supplementary Notes Structure Charts and Bottom-up Implementation: Java Version. Accessed 8 November 2009</ref>

A structure chart depicts<ref name="IRT"/>
* the size and complexity of the system, and
* number of readily identifiable functions and modules within each function and
* whether each identifiable function is a manageable entity or should be broken down into smaller components.

A structure chart is also used to [diagram](/source/diagram) associated elements that comprise a run stream or thread. It is often developed as a [hierarchical diagram](/source/hierarchical_diagram), but other representations are allowable. The representation must describe the breakdown of the [configuration system](/source/configuration_system) into [subsystem](/source/subsystem)s and the lowest manageable level. An accurate and complete structure chart is the key to the determination of the configuration items (CI), and a visual representation of the configuration system and the internal interfaces among its CIs<sup>(define CI clearly)</sup>. During the configuration control process, the structure chart is used to identify CIs and their associated artifacts that a proposed change may impact.<ref name="IRT"/>

== Structure chart construction ==
thumb|320px|A process flow diagram describing the construction of a structure chart by a so-called Subject Matter Experts (SME).<ref name="IRT"/> According to Wolber (2009), "a structure chart can be developed starting with the creating of a structure, which places the root of an upside-down tree which forms the structure chart. The next step is to conceptualize the main sub-tasks that must be performed by the program to solve the problem. Next, the programmer focuses on each sub-task individually, and conceptualizes how each can be broken down into even smaller tasks. Eventually, the program is broken down to a point where the leaves of the tree represent simple methods that can be coded with just a few program statements".<ref name= "Wol"/>

In practice, see figure, first it is checked if a structure chart has been developed already. If so an expert needs to review it to ensure it represents the current structure and if not, updates the chart where needed.<ref name="IRT"/>

== See also ==
{{Commons category|Structure charts}}

* [Computer-aided software engineering](/source/Computer-aided_software_engineering)
* [System context diagram](/source/System_context_diagram)
* [Decomposition diagram](/source/Decomposition_diagram)
* [Function model](/source/Function_model)
* [HIPO](/source/HIPO)
* [Structured Analysis and Design Technique](/source/Structured_Analysis_and_Design_Technique)
* [Warnier/Orr diagram](/source/Warnier%2FOrr_diagram)
* [Work breakdown structure](/source/Work_breakdown_structure)

== References ==
{{reflist}}

== Further reading ==
* Sarah Brooks (1981). "Structure Charts and Basic Programming". in: ''MATYC Journal'', v15 n2 p.&nbsp;107-112 Spring 1981.
* [Tom DeMarco](/source/Tom_DeMarco) (1979). ''Structured Analysis and System Specification''. Prentice Hall.
* [Edward Yourdon](/source/Edward_Yourdon) (1999). ''Modern Structured Analysis'', Yourdon Press Computing Series, 1999,

== External links ==
* [https://web.archive.org/web/20180308114549/http://www.hit.ac.il:80/staff/leonidM/information-systems/ch63.html Structure charts] Overview.
* [https://web.archive.org/web/20051025120206/http://www.ncsconline.org/D_Research/Ct_Struct/index.html State Court Structure Charts], a series of examples.
* [https://web.archive.org/web/20090219083522/http://www.usfca.edu/~wolberd/cs112/SupplementalNotes/structureChart.doc Structure Charts] (.doc).

{{Use dmy dates|date=March 2020}}

{{Authority control}}

Category:Charts
Category:Systems analysis

---
Adapted from the Wikipedia article [Structure chart](https://en.wikipedia.org/wiki/Structure_chart) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Structure_chart?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
