Codecharts: Roadmaps and Blueprints for Object-Oriented Programs

Codecharts (LePUS3) is a formal diagrammatic language that can express the structural aspects of object-oriented design patterns, application frameworks, and programs.

During my PhD I made many contributions to codecharts, including refining their design and definition [2, 4, 5] and applying it to challenges such as software verification [1] and reverse engineering [6]. This work was conducted as part of the Two-Tier Programming Team, and I continue to investigate codecharts within the Visual Modelling Group at the University of Brighton [3].

As part of my PhD I developed the Two-Tier Programming Toolkit (or simply “Toolkit”), a proof of concept re-engineering tool based on codecharts. My principle contributions to the Toolkit were the verification algorithm (the Verifier), static analyser for Java 6 (using BCEL), XML specification import/export (and the online pattern library system, using JDOM), Schema viewer (using XSLT and XHTMLrenderer). My colleague, Dr Gasparis, principally developed the chart editor (using JGraph), the reverse engineering tool (the Design Navigator), and design model (using an embedded MySQL database) modules.

The Two-Tier Programming Project website has more information including videos, tutorials, and downloads.

This slideshow requires JavaScript.

Selected Publications

  • [1] [DOI] J. Nicholson, A. H. Eden, R. Kazman, and E. Gasparis, Automated verification of design patterns: a case study. Science of computer programming, 80(Part B):211-222, 2014.
  • [2] [DOI] A. H. Eden, E. Gasparis, J. Nicholson, and R. Kazman, Modeling and visualizing object-oriented programs with codecharts. Formal methods in system design, 43(1):1-28, 2013.
  • [3] [PDF] [DOI] J. Nicholson and A. Delaney, “Formalising simple codecharts,” in 7th international conference on the theory and application of diagrams, Canterbury, UK, 2012, pages 346-348.
  • [4] [DOI] J. Nicholson, “A theory of classes from the theoretical foundations of lepus3,” in 13th international conference on formal engineering methods, Durham, UK, 2011, pages 522-536.
  • [5] [DOI] A. H. Eden and J. Nicholson, Codecharts: roadmaps and blueprints for object-oriented programs, Wiley-Blackwell, 2011.
  • [6] [DOI] E. Gasparis, A. H. Eden, J. Nicholson, and R. Kazman, “The design navigator: charting java programs,” in 30th international conference on software engineering, Leipzig, Germany, 2008, pages 945-946.

See all publications.