Concept:

Expression problem

Headline

A problem in software design to retain extensibility of different kinds

Description

The Expression problem is this: Given a system that implements a number of operations on certain data where such data is formed recursively according to a number data variants, can we extend the system modularly (without revising existing code units, possibly without recompilation, possibly with strong guarantees such as static typing for the initial system and any extension in separation) so that additional operations are implemented for the existing data variants or additional data variants are introduced and existing operations are extended for those.


Concept:

Extensibility


Concept:

Expression problem

Headline

A problem in software design to retain extensibility of different kinds

Description

The Expression problem is this: Given a system that implements a number of operations on certain data where such data is formed recursively according to a number data variants, can we extend the system modularly (without revising existing code units, possibly without recompilation, possibly with strong guarantees such as static typing for the initial system and any extension in separation) so that additional operations are implemented for the existing data variants or additional data variants are introduced and existing operations are extended for those.


Concept:

Software design

Headline

The process of problem solving and planning for a software solution

Details

The term is somewhat overloaded; software design may also refer to the result of the design process, i.e., a description or specification or model.