Chapter 2

Design Description Languages

Let us examine some of the vices and virtues of existing modelling and specification languages, thereby introducing some of the key terms in our discussion.

We take software modelling to be an activity concerned with representing descriptions of programs at some level (or levels) of abstraction. These descriptions are commonly called specifications. Specifications may represent programs, subprograms, libraries, application frameworks, design patterns, or categories of programs at many possible levels of abstraction. Class Diagrams, Interaction Diagrams, Data Flow Diagrams, and Statecharts are some of the most common forms of specification. The languages used for articulating them are commonly referred to as modelling languages but occasionally also as specification languages.

The division of labour between modelling and specification languages is not always clear, but specification languages (such as Z, B, CSP, and VDM) tend to be more rigorous and cater to a mathematical taste (in particular formal specification languages). Modelling languages such as the Unified Modelling Language (UML) and Data Flow Diagrams, on the other hand, emphasize practical benefits and intuitive appeal over mathematical rigour. Also, specification languages are more commonly used to express functional requirements, namely the behavioural demands set by its end user of the program under specification. We are concerned with nonfunctional specifications. Central to ...

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.