Abstract 1

advertisement
Abstract 1
The Structural Complexity of Software: An Experimental Test
David P. Darcy, Chris F. Kemerer, Sandra A. Slaughter, James E. Tomayko
1This
Purpose
Approach
Results
Conclusions
research examines the structural complexity of software and,
specifically, the potential interaction of the two dominant dimensions of
structural complexity, coupling and cohesion.
2Analysis based on an information processing view of developer cognition
results in a theoretically driven model with cohesion as a moderator for a main
effect of coupling on effort. 3An empirical test of the model was devised in a
software maintenance context utilizing both procedural and object-oriented
tasks, with professional software engineers as participants.
4aThe results support the model 4bin that there was a significant interaction
effect between coupling and cohesion on effort, 4ceven though there was no
main effect for either coupling or cohesion.
5aThe implication of this result is that, 5bwhen designing, implementing, and
maintaining software to control complexity, 5aboth coupling and cohesion
should be considered jointly, instead of independently. 6aBy providing
guidance on structuring software for software professionals and researchers,
6bthese results enable software to continue as the solution of choice for a wider
range of richer, more complex problems.
Abstract 2
Design and Implementation of a Fine-Grained Software Inspection Tool
Paul Anderson, T. Reps, and T. Teitelbaum
Background
(Problem)
Purpose
Approach
Results
Conclusions
1aAlthough
software inspection has led to improvements in software
quality,
1bmany software systems continue to be deployed with unacceptable
numbers of errors, 1ceven when software inspection is part of the
development process. 2The difficulty of manually verifying that the
software under inspection conforms to the rules is partly to blame.
3We describe the design and implementation of a tool designed to help
alleviate this problem.
4aThe tool provides mechanisms for fine-grained inspection of
software 4bby exposing the results of sophisticated whole-program
static analysis to the inspector. 5The tool computes many staticsemantic representations of the program, including an accurate call
graph and dependence graph. 6aWhole-program pointer analysis is
used 6bto make sure 6cthat the representation is precise with respect to
aliases induced by pointer usage. 7Views on the dependence graph and
related representations are supported. 8aQueries on the dependence
graph allow 8ban inspector to answer detailed questions about the
semantics of the program. 9aFacilities for openness and extensibility
permit 9bthe tool to be integrated with many software-development
processes.
10The
main challenge of the approach is to provide facilities to
navigate and manage the enormous complexity of the dependence
graph.
1
Abstract 3
Software assurance by bounded exhaustive testing
David Coppit, Jinlin Yang, S. Khurshid, Wei Le, and K. Sullivan
Background
(Problem)
Purpose
Approach 1
Results 1
Approach 2
Results 2
Conclusions
1Bounded
exhaustive testing (BET) is a verification technique in which
software is automatically tested for all valid inputs up to specified size
bounds. 2A particularly interesting case of BET arises in the context of
systems that take structurally complex inputs. 3aEarly research suggests
3bthat the BET approach can reveal faults in small systems with inputs of
low structural complexity,
3cbut its potential utility for larger systems with more complex input
structures remains unclear.
4We set out to test its utility on one such system.
5aWe used Alloy and TestEra 5bto generate inputs to test the Galileo dynamic
fault tree analysis tool, for which we already had both a formal specification
of the input space and a test oracle.
6An initial attempt to generate inputs using a straightforward translation of
our specification to Alloy did not work well. 7The generator failed to
generate inputs to meaningful bounds.
8We developed an approach in which we factored the specification, used
TestEra to generate abstract inputs based on one factor, and passed the
results through a postprocessor that reincorporated information from the
second factor.
9aUsing this technique, 9bwe were able to generate test inputs to meaningful
bounds, 9cand the inputs revealed nontrivial faults in the Galileo
implementation, our specification, and our oracle.
10aOur results suggest 10bthat BET, combined with specification abstraction
and factoring techniques, could become a valuable addition to our
verification toolkit 10cand that further investigation is warranted.
2
Download