SEOct 7, 2016

Unified Control and Data Flow Diagrams Applied to Software Engineering and other Systems

arXiv:1610.02374v11 citations
Originality Synthesis-oriented
AI Analysis

This addresses the difficulty in software development, maintenance, and analysis for engineers, but appears incremental as it builds on existing diagramming concepts.

The paper tackles the problem of understanding complex code structure by proposing a method that unifies control and data flow diagrams, overcoming limitations of conventional flowcharts, and demonstrates its applicability to production systems as a proof of concept.

More often than not, there is a need to understand the structure of complex computer code: what functions and in what order they are called, how information travels around static, input, and output variables, what depends on what. As a rule, executable code and data are scattered among multiple files and even multiple modules. Information is transmitted among variables which often change names. These tangled relations greatly complicate the development, maintenance, and redevelopment of code, its analysis for complexity and its robustness. As of now, there is no tool which is capable of presenting the real-life, useful diagram of actual code. Conventional flowcharts fail. Proposed is the method which overcomes these difficulties. The main idea is that functionality of software can be described through flows of control, which is essentially flows of time, and flows of data. These are inseparable. The second idea is to follow very strict system boundaries and distinctions with respect to modules, functions, blocks, and operators, as well as data holders, showing them all as subsystems, in other words, by clearly expressing the system structure when every piece of executable code and every variable may have its own graphical representation. The third is defining timelines as the entities clearly separated from the connected blocks of code. Timelines allow presentation of nesting of the control flow as deep as necessary. As a proof of concept, the same methods successfully describe production systems. Keywords: flowchart, UML, software diagram, visual programming, extreme programming, extreme modeling, control flow, data flow.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes