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.