Preface

In this book we set out to investigate some of the most difficult problems that software engineering faces. Although a young discipline, it nonetheless faces the most difficult challenges, as software is the most complex artefact ever crafted by humankind. As such, many of the problems can be traced to inadequate abstraction. Satisfying theoretical and practical demands in one visual, scalable, and decidable language has so far proven to be a genuine challenge. Any claim that one modelling language or one tool can be a “silver bullet” is patently false. Indeed, there are no silver bullets, and LePUS3, the language of Codecharts, is no exception.

As a first step in seeking a solution, we have set eight guiding principles of our design description language (Chapter 3). Jointly, these reduce the scope of our problem significantly. They leave much out. Nonetheless, we did discover that many of the problems in the theory and practice of software specification, verification, visualization, modelling, and design recovery have a common root. At their heart is the question of representation. Committing ourselves to these guiding principles has enabled us to tackle these difficult problems head on and reach a very useful result.

Is our task complete? Far from it. Additional cases need to be studied. And our attempt at formalizing our specification language is incomplete. In particular, our analysis of the mathematical properties of Codecharts is preliminary. To the eyes of the logician, ...

Get Codecharts: Roadmaps and blueprints for object-oriented programs now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.