The language of Codecharts (previously LePUS3) is a visual formal design description language, tailored for the modelling and specification of object-oriented design patterns, application frameworks, and programs. Codecharts were developed as part of the research conducted by the Two-Tier Programming Team (of which I am a member). It is the language of choice in the Two-Tier Programming Toolkit.
The language of Codecharts is a design description language driven by the following eight underlying principles:
- Object-orientation—to represent the design of programs written in the object-oriented paradigm.
- Visualization—to be a visual language that offers simple and intuitive representation of complex design.
- Rigour—that the definition of the language must be clean and logical, i.e. it must be formally defined.
- Automated verifibility—able to verify that a program meets a LePUS3 specification (Codechart) at the click of a button, i.e. verification must be decidable.
- Scalability—to represent arbitrarily large designs with relatively few symbols without losing the desired level of expression.
- Genericity—to seamlessly represent both specific programs and abstract ideas, such as design patterns.
- Minimality—to use a vocabulary of symbols that is minimal and elegant.
- Information neglect—the lack of information in a specification implies nothing, i.e. not specifying a relationship must not imply that the relationship must not exist.
For more information on Codecharts consider the following book, which presents the most complete discussion on the subject:
- A. Eden and J. Nicholson, Codecharts: Roadmaps and Blueprints for Object-Oriented Programs, Wiley-Blackwell, 2011. [Bibtex]
@book{eden_codecharts:_2011, title = {Codecharts: Roadmaps and Blueprints for {Object-Oriented} Programs}, isbn = {0470626941}, publisher = {{Wiley-Blackwell}}, author = {Eden, Amnon H. and Nicholson, Jonathan}, month = apr, year = {2011}, keywords = {book} }
I have co-authored many academic publications on the subject of Codecharts, which are listed on my Publications page.
Complementing the above literature is my PhD thesis. My thesis discusses several technical and logical issues of Codecharts (LePUS3), and defines a new theory of classes based on its theoretical foundations.
-
J. Nicholson, “On the Theoretical Foundations of LePUS3 and its Application to Object-Oriented Design Verification,” PhD PhD Thesis, Colchester, UK, 2011. [Bibtex]
@phdthesis{nicholson_theoretical_2011, address = {Colchester, {UK}}, type = {{PhD}}, title = {On the Theoretical Foundations of {LePUS3} and its Application to {Object-Oriented} Design Verification}, school = {University of Essex}, author = {Nicholson, Jonathan}, year = {2011} }
