structured analysis example of a structured analysis approach in software engineering structured analysis sa and structured design sd are methods for analyzing business requirements and developing specifications for converting practices into computer programs hardware configurations and related manual procedures structured analysis and design techniques are fundamental tools of systems analysis they developed from classical systems analysis of the 1960s and 1970s objectives of structured analysis structured analysis became popular in the 1980s and is still in use today structured 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 the data store to bubble can be difficult to track and the number of bubbles can increase 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 bubbles are usually grouped into higher level bubbles to decrease complexity data dictionaries are needed to describe the data and command flows and a process specification is needed to capture the transactiontransformation information sa and sd are displayed with 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 sdm70 and the spectrum structured system development methodology history 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 as a way to help manage large and complex software the following structured methods emerged since the end of the 1960s structured programming in circa 1967 with edsger dijkstra go to statement considered harmful niklaus wirth stepwise design in 1971 nassishneiderman diagram in 1972 warnierorr diagram in 1974 logical construction of programs hipo in 1974 ibm hierarchy inputprocessoutput though this should really be outputinputprocess structured design around 1975 with larry constantine ed yourdon and wayne stevens jackson structured programming in circa 1975 developed by michael a jackson structured analysis in circa 1978 with tom demarco yourdon gane sarson mcmenamin palmer structured analysis and design technique sadt developed by douglas t ross yourdon structured method developed by edward yourdon structured analysis and system specification published in 1979 by tom demarco structured systems analysis and design method ssadm first presented in 1983 developed by the uk office of government commerce idef0 based on sadt developed by douglas t ross in 1985 hatleypirbhai modeling defined in strategies for realtime system specification by derek j hatley and imtiaz a pirbhai in 1988 information technology engineering in circa 1990 with finkelstein and popularised by james martin according to hay 1999 information engineering was a logical extension of the structured techniques that were developed during the 1970s 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 analysts and the designers discipline during the 1980s tools began to appear which both automated the drawing of the diagrams and kept track of the things drawn in a data dictionary after the example of computeraided design and computeraided manufacturing cadcam the use of these tools was named computeraided software engineering case structured analysis topics single abstraction mechanism structured analysis example 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 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 highlevel processes and concepts whether in single system or enterprise levels discovering how objects might support functions for commercially prevalent objectoriented development is unclear in contrast to idef the uml is interface driven with multiple abstraction mechanisms useful in describing serviceoriented architectures soas approach 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 systems functional requirements the structured analyse approach develops perspectives on both process objects and data objects de marcos approach context diagram data flow diagram process specifications data dictionary 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 minispec the process specification can consist of pseudocode 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 databases the data dictionary entries are partitioned in a topdown manner they can be referenced in other data dictionary entries and in data flow diagrams context diagram example of a system context diagram context diagrams are diagrams that represent the actors outside a system that could interact with that system this diagram is the highest level view of a system similar to block diagram showing a possibly softwarebased system as a whole and its inputs and outputs fromto 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 system context diagrams are related to data flow diagram and show the interactions between a system and other actors 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 a data dictionary or database dictionary is a file that defines the basic organization of a database database users and application developers can benefit from an authoritative data dictionary document that catalogs the organization contents and conventions of one or more databases data flow diagrams data flow diagram example 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 estrins data flow graph model of computation 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 contextlevel data flow diagram is then exploded to show more detail of the system being modeled 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 systems evolution with a data flow 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 systems data flow diagrams can be drawn up and compared with the new systems data flow diagrams to draw comparisons to implement a more efficient system data flow 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 data flow diagram structure chart a configuration system structure chart a structure chart sc is a chart that shows the breakdown of the configuration system to the lowest manageable levels structure charts are used in structured analysis to specify the highlevel 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 topdown 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 masterplan structured design structured design sd is concerned with the development of modules and the synthesis of these modules in a socalled module hierarchy in order to design optimal module structure and interfaces two principles are crucial cohesion which is concerned with the grouping of functionally related processes into a particular module 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 structured design was developed by larry constantine in the late 1960s then refined and published with collaborators in the 1970s see larry constantine structured design for details pagejones 1980 has proposed his own approach which consists of three main objects structure charts module specifications data dictionary 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 pseudocode 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 structured query language 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 criticisms problems with data flow diagrams have included the following choosing bubbles appropriately partitioning bubbles in a meaningful and mutually agreed upon manner documentation size needed to understand the data flows data flow diagrams are strongly functional in nature and thus subject to frequent change though data flow is emphasized data modeling is not so there is little understanding the subject matter of the system customers have difficulty following how the concept is mapped into data flows and bubbles designers must shift the dfd organization into an implementable format event partitioning flowbased programming hipo jackson structured programming prosa structured analysis tool soft systems methodology stevens w p myers g j constantine l l june 1974 structured design ibm systems journal 13 2 115139 doi101147sj1320115 yourdon edward constantine larry l 1979 structured design fundamentals of a discipline of computer program and systems design yourdon press isbn0138544719 tom demarco 1979 structured analysis and system specification prentice hall isbn0138543801 pagejones 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 isbn0932633048 stephen j mellor und paul t ward 1986 structured development for realtime systems implementation modeling techniques 003 prentice hall isbn013854803x edward yourdon 1989 modern structured analysis yourdon press computing series 1989 isbn0135986249 keith edwards 1993 realtime structured methods system analysis wiley isbn0471934151 wikimedia commons has media related to structured analysis structured analysis wiki three views of structured analysis crag systems 2004 vtesoftware engineeringfields computer programming requirements engineering software deployment software design software maintenance software testing systems analysis formal methods concepts data modeling enterprise architecture functional specification modeling language orthogonality programming paradigm software software archaeology software architecture software configuration management software development methodology software development process software quality software quality assurance software verification and validation structured analysis orientations agile aspectoriented object orientation ontology service orientation sdlc modelsdevelopmental agile eup executable uml incremental model iterative model prototype model rad up scrum spiral model vmodel waterfall model xp other spice cmmi data model er model function model information model metamodeling object model systems model view model languages idef uml usl sysml softwareengineers victor basili kent beck grady booch fred brooks barry boehm peter chen danese cooper ward cunningham tom demarco edsger w dijkstra delores m etter martin fowler adele goldstine margaret hamilton c a r hoare lois haibt mary jean harrold grace hopper watts humphrey michael a jackson ivar jacobson alan kay nancy leveson stephen j mellor bertrand meyer david parnas trygve reenskaug winston w royce james rumbaugh mary shaw peri tarr elaine weyuker niklaus wirth edward yourdon related fields computer science computer engineering project management risk management systems engineering category commons vteedsger dijkstranotable works a primer of algol 60 programming book structured programming book a discipline of programming book a method of programming book predicate calculus and program semantics book selected writings on computing a personal perspective book selected papers ewd manuscripts a note on two problems in connexion with graphs cooperating sequential processes solution of a problem in concurrent programming control the structure of the themultiprogramming system go to statement considered harmful notes on structured programming the humble programmer programming considered as a human activity how do we tell truths that might hurt on the role of scientific thought selfstabilizing systems in spite of distributed control on the cruelty of really teaching computer science main research areas theoretical computing science software engineering systems science algorithm design concurrent computing distributed computing formal methods programming methodology programming language research program design and development software architecture philosophy of computer programming and computing science scientific contributionsconcepts and methods algol 60 implementation call stack concurrency concurrent programming cooperating sequential processes critical section deadly embrace deadlock dining philosophers problem dutch national flag problem faulttolerant system gotoless programming guarded command language layered structure in software architecture levels of abstraction multithreaded programming mutual exclusion mutex producerconsumer problem bounded buffer problem program families predicate transformer semantics process synchronization selfstabilizing distributed system semaphore programming separation of concerns sleeping barber problem software crisis structured analysis structured programming the multiprogramming system unbounded nondeterminism weakest precondition calculus algorithms bankers algorithm dijkstras algorithm djp algorithm prims algorithm dijkstrascholten algorithm dekkers algorithm generalization smoothsort shuntingyard algorithm tricolor marking algorithm concurrent algorithms distributed algorithms deadlock prevention algorithms mutual exclusion algorithms selfstabilizing algorithms related people shlomi dolev per brinch hansen tony hoare olejohan dahl leslie lamport david parnas adriaan van wijngaarden niklaus wirth other topics dijkstra prize edsger w dijkstra prize in distributed computing centrum wiskunde informatica ew dijkstra archive university of texas at austin list of pioneers in computer science list of important publications in computer science list of important publications in theoretical computer science list of important publications in concurrent parallel and distributed computing international symposium on stabilization safety and security of distributed systems wikiquote 