384,776 research outputs found
A quantitative charcterization of control flow context: software measures for programming environments
A review of published measures of control flow complexity in programs reveals three major deficiencies: loss of information, lack of specificity, and lack of analytical support. A new approach is used to characterize the control structure of a program, with the aim of defining properties and measures of control flow that can be of immediate use to programmers, regardless of their utility as complexity measures. Mathematical rigor and analytical evaluation techniques are used to define a set of properties of control structure and a corresponding vector of measures. Instead of defining the properties and measures for an entire flowgraph, they are defined at the node level, reflecting the control flow surrounding each node in a flowgraph. The properties and their measures reflect the following characteristics of control flow: nesting, iteration, structuredness, and predecessors. Algorithms for computing the properties and their measures are presented. An assessment of the computational complexity of the algorithms shows that they are feasible programming environment tools;A finite path set, representing all possible execution sequences, is evaluated as a characterizing property. Desired characteristics of the path set are defined and used to evaluate four published path subset criteria. Those criteria are shown to be deficient, so a fifth criterion is defined. However, the path set satisfying this fifth criterion is shown to be too large to be of practical use to a programmer
Recommended from our members
Knots : a measure of program complexity
Most measures of program complexity gauge either textual or
control flow attributes of a program. A recent addition to the field
of complexity measures, the knot metric, is a function of both these
attributes. A knot measurement reflects the degree of control-flow
tangle in a program's listing. This thesis discusses and proves four
functional properties of the knot measure.
1. Calculation of a program's knot content is fast with respect
to the number of branches in a program. A worst-case optimal algorithm
for computing knots is quadratic in time and linear in space.
2. The complexity of a program can be reduced by rearranging
groups of statements in a manner that retains the program's function
yet lowers its knot content. The problem of finding an arrangement with
the fewest knots for any arrangement of a program is probably difficult
or NP-complete, but approximation methods are fast and often find
the minimum knot arrangement.
3. A direct relationship exists between the types of knots in a
program text and the structuredness of that program. This leads to an
easily testable, sufficient condition for unstucturedness. Thus
unstuctured programs may be detected without graphically reducing the
control structure to structured programming conventions.
4. An empirical investigation of a set of FORTRAN programs,
testing for their knot content, rearrangement characteristics, cyclomatic
number, and program length, demonstrates the practicality of the
knot measure. Most programs benefited from rearrangement, and a fast,
heuristic algorithm was effective in finding a program text ordering
with minimal knot content. Furthermore, the knot content of a program
is dissassociated from two other measures of complexity, cyclomatic
number and program length. Knots must measure some aspect of complexity
missed by those measures.
Overall, the knot metric is an effective, and efficient means
for detecting, reducing, and controlling some attributes of software
complexity
Multidimensional hyperbolic billiards
The theory of planar hyperbolic billiards is already quite well developed by
having also achieved spectacular successes. In addition there also exists an
excellent monograph by Chernov and Markarian on the topic. In contrast, apart
from a series of works culminating in Sim\'anyi's remarkable result on the
ergodicity of hard ball systems and other sporadic successes, the theory of
hyperbolic billiards in dimension 3 or more is much less understood. The goal
of this work is to survey the key results of their theory and highlight some
central problems which deserve particular attention and efforts
Some Remarks about the Complexity of Epidemics Management
Recent outbreaks of Ebola, H1N1 and other infectious diseases have shown that
the assumptions underlying the established theory of epidemics management are
too idealistic. For an improvement of procedures and organizations involved in
fighting epidemics, extended models of epidemics management are required. The
necessary extensions consist in a representation of the management loop and the
potential frictions influencing the loop. The effects of the non-deterministic
frictions can be taken into account by including the measures of robustness and
risk in the assessment of management options. Thus, besides of the increased
structural complexity resulting from the model extensions, the computational
complexity of the task of epidemics management - interpreted as an optimization
problem - is increased as well. This is a serious obstacle for analyzing the
model and may require an additional pre-processing enabling a simplification of
the analysis process. The paper closes with an outlook discussing some
forthcoming problems
A Complexity Measure Based on Cognitive Weights
Cognitive Informatics plays an important role in understanding the fundamental characteristics of software. This paper proposes a model of the fundamental characteristics of software, complexity in terms of cognitive weights of basic control structures. Cognitive weights are degree of difficulty or relative time and effort required for comprehending a given piece of software, which satisfy the definition of complexity. An attempt has also been made to prove the robustness of proposed complexity measure by comparing it with the other measures based on cognitive informatics
- …