Software Engineering and Knowledge Engineering

Software Patterns

Software is nothing but patterns. A program is constructed from some basic patterns, and the construction rules can in turn be expressed as other types of patterns. With grammars, formal languages and automata, there are many approaches to describe the basic patterns and how they are composed into programs.

Specifications

Specifications are composed of patterns that are the basic building blocks of formal, informal or visual specifications. The specification, in the ideal case, can then be automatically transformed into programs, and verified and validated in the transformational process.