Nothing Special   »   [go: up one dir, main page]

skip to main content
article

The Control Structure Diagram: An Overview and InitialEvaluation

Published: 01 August 1998 Publication History

Abstract

A new graphical representation, the Control Structure Diagram (CSD), has been created to visualize software at both the source code and program design language (PDL) level. The primary impetus for creation of the CSD was to improve the comprehension efficiency of software and, as a result, improve reliability and reduce costs. The CSD has the potential to replace traditional prettyprinted source code. As part of the GRASP (Graphical Representations of Algorithms, Structures, and Processes) research project at Auburn University, the GRASP software engineering tool has been successfully developed. GRASP automatically generates CSDs from source code written in Ada, C, C++, Java, and VHDL. The emphasis to this point has been on the automatic generation of the CSD to support development, maintenance, reverse engineering and reengineering through the use of GRASP. GRASP has been applied successfully to numerous programs ranging in size from several hundred to several thousand lines of source code and is efficient and sufficiently flexible for use in a production setting. To demonstrate the potential benefits of the CSD and its automatic generation using GRASP, a series of empirical studies has been planned and initiated. First, as reported in this article, the perceived usefulness of the CSD was evaluated using a preference instrument based on eleven performance characteristics in which a comparison was made with other well-known graphical representations for algorithms. Statistical analysis indicated numerous significant differences with a clear preference for the CSD in seven of the eleven performance characteristics. Further empirical studies, currently being implemented, will examine the effect of the CSD and GRASP on objective measures such as comprehension efficiency and effectiveness.

References

[1]
Aoyama, M. 1989. Design specification in japan: Tree-structured charts. IEEE Software: 31-37.
[2]
Baecker, R. M., DiGiano, C., and Marcus, A. 1997. Software visualization for debugging. Communications of the ACM 40(4): 44-54.
[3]
Baecker, R. M., and Marcus, A. 1990. Human Factors and Typography for More Readable Programs. ACM Press.
[4]
Barnes, J. G. P. 1984. Programming in Ada. Menlo Park, CA: Addison-Wesley, 2 edition.
[5]
Booch, G., and Bryan, D. 1994. Software Engineering with Ada. Benjamin/Cummings, third edition edition.
[6]
Chikofsky, E., and Cross, J. 1990. Reverse engineering and design recovery--a taxonomy. IEEE Software: 13-17.
[7]
Conover, W. J. 1980. Practical Nonparametric Statistics. New York: John Wiley and Sons.
[8]
Cross, J., Chikofski, E. J., and May, C. H. 1992. Reverse engineering. Advances in Computers 35: 199-254.
[9]
Cross, J., and Sheppard, S. V. 1988. The control structure diagram: An automated graphical representation for software. Proceedings of the 21st Hawaii International Conference on Systems Sciences, vol. 2, IEEE Computer Society Press, 446-454.
[10]
Cross, J., Sheppard, S. V., and Carlisle, W. H. 1990. Control structure diagrams for ada. Journal of Pascal, Ada, and Modula 2 9(5).
[11]
Cross, J. H. 1994. Improving comprehensibility of ada with control structure diagrams. Proceedings of the Software Technology Conference, distributed on CD-ROM, 25 pages, April 11-14, Salt Lake City, Utah.
[12]
Cross, J. H., Chang, K. H., and Hendrix, T. D. 1996. Grasp/ada95: Visualization with control structure diagrams. CrossTalk Journal of Defense Software Engineering 9(1): 27-45.
[13]
Cross, J. H., and Hendrix, T. D. 1996. Software Visualization, volume 7 of Series on Software Engineering and Knowledge Engineering, chapter Language Independent Program Visualization, 27-45. World Scientific.
[14]
Curtis, B., Sheppard, S., Kruesi-Bailey, E., Bailey, J., and Boehm-Davis, D. 1989. Experimental evaluation of software documentation formats. Journal of Systems and Software 9: 167-207.
[15]
Green, T., and Petre, M. 1992. When visual programs are harder to read than textual programs. Proceedings of the Sixth European Conference on Cognitive Ergonomics (ECCE-6), Budapest, Hungary.
[16]
Green, T., Petre, M., and Bellamy, R. 1991. Comprehensibility of visual and textual programs: A test of superlativism against the match-mismatch conjecture. Empirical Studies of Programmers Fourth Workshop. Ablex.
[17]
Kissel, G. 1995. Effect of computer experience on subjective and objective software usability measures. Proceedings of the Conference on Human Factors in Computing Systems, 284-295.
[18]
Linger, R. 1993. Cleanroom software engineering for zero-defect software. Proceedings of the 15th International Conference on Software Engineering, Baltimore, MD, 2-13.
[19]
Marshall, T. E., Byrd, T. A., Gardiner, L. R., and Rainer, R. K. 1998. Technology acceptance and performance: An investigation into requisite knowledge (forthcoming). Information Resources Management Journal.
[20]
Martin, J., and McClure, C. 1985. Diagramming Techniques for Analysts and Programmers. Prentice-Hall.
[21]
McQuaid, P. A., Chang, K. H., and Cross, J. H. 1995. A complexity metric to aid software testing and maintenance. Proceedings of the Decision Sciences Institute 2.
[22]
Moher, T., Mak, D., Blumenthal, B., and Leventhal, L. 1993. Comparing the comprehensibility of textual and graphical programs: The case of petri nets. Empirical Studies of Programmers: Fifth Workshop, 137-161.
[23]
Petre, M. 1995. Why looking isn't always seeing: Readership skills and graphical programming. Communications of the ACM 38(6): 33-44.
[24]
Price, B. A., Baecker, R. M., and Small, I. S. 1993. A principled taxonomy of software visualization. Journal of Visual Languages and Computing 4(3): 211-266.
[25]
Raeder, G. 1985. A survey of current graphical programming techniques. IEEE Computer 18(8): 11-25.
[26]
Scanlan, D. A. 1989. Structured flowcharts outperform pseudocode: An experimental comparison. IEEE Software: 28-36.
[27]
Selby, R. 1985. A comparison of software verification techniques. NASA Software Engineering Laboratory Series SEL-85-001, Goddard Space Flight Center, Greenbelt, Maryland.
[28]
Shu, N. C. 1988. Visual Programming. New York, New York: Van Norstrand Reinhold, Inc.
[29]
Tripp, L. L. 1989. A survey of graphical notations for program design. ACM Software Engineering Notes 13(4): 39-44.

Cited By

View all
  • (2017)ScopedProceedings of the Eurographics/IEEE VGTC Conference on Visualization: Short Papers10.2312/eurovisshort.20171143(115-119)Online publication date: 12-Jun-2017
  • (2010)Automated construction of memory diagrams for program comprehensionProceedings of the 48th annual ACM Southeast Conference10.1145/1900008.1900040(1-6)Online publication date: 15-Apr-2010
  • (2006)Software visualizations for improving and measuring the comprehensibility of source codeScience of Computer Programming10.5555/1143371.114337360:2(121-133)Online publication date: 1-Apr-2006
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Empirical Software Engineering
Empirical Software Engineering  Volume 3, Issue 2
1998
86 pages

Publisher

Kluwer Academic Publishers

United States

Publication History

Published: 01 August 1998

Author Tags

  1. Ada
  2. empirical evaluation
  3. graphical representation
  4. reverse engineering
  5. software visualization

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 14 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2017)ScopedProceedings of the Eurographics/IEEE VGTC Conference on Visualization: Short Papers10.2312/eurovisshort.20171143(115-119)Online publication date: 12-Jun-2017
  • (2010)Automated construction of memory diagrams for program comprehensionProceedings of the 48th annual ACM Southeast Conference10.1145/1900008.1900040(1-6)Online publication date: 15-Apr-2010
  • (2006)Software visualizations for improving and measuring the comprehensibility of source codeScience of Computer Programming10.5555/1143371.114337360:2(121-133)Online publication date: 1-Apr-2006
  • (2006)Designing and explaining programs with a literate pseudocodeJournal on Educational Resources in Computing10.1145/1217862.12178636:1(1-es)Online publication date: 1-Mar-2006
  • (2005)The Class BlueprintIEEE Transactions on Software Engineering10.1109/TSE.2005.1431:1(75-90)Online publication date: 1-Jan-2005
  • (2004)Bringing J2ME industry practice into the classroomProceedings of the 35th SIGCSE technical symposium on Computer science education10.1145/971300.971407(301-305)Online publication date: 3-Mar-2004
  • (2004)Bringing J2ME industry practice into the classroomACM SIGCSE Bulletin10.1145/1028174.97140736:1(301-305)Online publication date: 1-Mar-2004
  • (2003)Experimental evaluation of a program visualisation tool for use in computer science educationProceedings of the Asia-Pacific symposium on Information visualisation - Volume 2410.5555/857080.857094(111-116)Online publication date: 1-Jan-2003
  • (2002)The Effectiveness of Control Structure Diagrams in Source Code Comprehension ActivitiesIEEE Transactions on Software Engineering10.1109/TSE.2002.100045028:5(463-477)Online publication date: 1-May-2002
  • (2001)JKarelRobotACM SIGCSE Bulletin10.1145/366413.36452933:1(16-20)Online publication date: 1-Feb-2001
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media