2016/10/07 by Igor Polkovnikov, Polkovnikov, Igor
Computer Science · #D.1.7 #D.2.2 #D.2.5 #D.2.6 #FOS: Computer and information sciences #Software Engineering (cs.SE) #Software Engineering Research #Software Reliability and Analysis Research
paper · pdf · doi:10.48550/arxiv.1610.02374
openalex publication_date 2016/10/07 · openalex created_date 2022/10/01 · openalex updated_date 2026/07/28
More often than not, there is a need to understand the structure of complex\ncomputer code: what functions and in what order they are called, how\ninformation travels around static, input, and output variables, what depends on\nwhat. As a rule, executable code and data are scattered among multiple files\nand even multiple modules. Information is transmitted among variables which\noften change names. These tangled relations greatly complicate the development,\nmaintenance, and redevelopment of code, its analysis for complexity and its\nrobustness. As of now, there is no tool which is capable of presenting the\nreal-life, useful diagram of actual code. Conventional flowcharts fail.\nProposed is the method which overcomes these difficulties. The main idea is\nthat functionality of software can be described through flows of control, which\nis essentially flows of time, and flows of data. These are inseparable. The\nsecond idea is to follow very strict system boundaries and distinctions with\nrespect to modules, functions, blocks, and operators, as well as data holders,\nshowing them all as subsystems, in other words, by clearly expressing the\nsystem structure when every piece of executable code and every variable may\nhave its own graphical representation. The third is defining timelines as the\nentities clearly separated from the connected blocks of code. Timelines allow\npresentation of nesting of the control flow as deep as necessary. As a proof of\nconcept, the same methods successfully describe production systems. Keywords:\nflowchart, UML, software diagram, visual programming, extreme programming,\nextreme modeling, control flow, data flow.\n