Eden, AH and Gasparis, E and Nicholson, J and Kazman, R (2013) Modeling and visualizing object-oriented programs with Codecharts. Formal Methods in System Design, 43 (1). pp. 1-28. DOI https://doi.org/10.1007/s10703-012-0181-1
Eden, AH and Gasparis, E and Nicholson, J and Kazman, R (2013) Modeling and visualizing object-oriented programs with Codecharts. Formal Methods in System Design, 43 (1). pp. 1-28. DOI https://doi.org/10.1007/s10703-012-0181-1
Eden, AH and Gasparis, E and Nicholson, J and Kazman, R (2013) Modeling and visualizing object-oriented programs with Codecharts. Formal Methods in System Design, 43 (1). pp. 1-28. DOI https://doi.org/10.1007/s10703-012-0181-1
Abstract
Software design, development and evolution commonly require programmers to model design decisions, visualize implemented programs, and detect conflicts between design and implementation. However, common design notations rarely reconcile theoretical concerns for rigor and minimality with the practical concerns for abstraction, scalability and automated verifiability. The language of Codecharts was designed to overcome these challenges by narrowing its scope to visual specifications that articulate automatically-verifiable statements about the structure and organization of object-oriented programs. The tokens in its visual vocabulary stand for the building-blocks of object-oriented design, such as inheritance class hierarchies, sets of dynamically-bound methods, and their correlations. The formalism was tailored for those pragmatic concerns which arise from modeling class libraries and design patterns, and for visualizing programs of any size at any level of abstraction. We describe design verification, a process of proving or refuting that a Java program (i.e. its native code) conforms to the Codechart specifying it. We also describe a toolkit which supports modeling and visualization with Codecharts, as well as a fully-automated design verification tool. We conclude with empirical results which suggest gains in both speed and accuracy when using Codecharts in software design, development and evolution.
Item Type: | Article |
---|---|
Uncontrolled Keywords: | Design notations and documentation; Object-oriented programming; Patterns; Design concepts |
Subjects: | Q Science > QA Mathematics > QA75 Electronic computers. Computer science |
Divisions: | Faculty of Science and Health > Mathematical Sciences, Department of |
SWORD Depositor: | Unnamed user with email elements@essex.ac.uk |
Depositing User: | Unnamed user with email elements@essex.ac.uk |
Date Deposited: | 12 Feb 2013 08:14 |
Last Modified: | 06 Jan 2022 14:37 |
URI: | http://repository.essex.ac.uk/id/eprint/5501 |