## Toward a Classification Approach to Design (1996)

Venue: | Proc. of AMAST'96 |

Citations: | 37 - 9 self |

### BibTeX

@INPROCEEDINGS{Smith96towarda,

author = {Douglas R. Smith},

title = {Toward a Classification Approach to Design},

booktitle = {Proc. of AMAST'96},

year = {1996},

pages = {62--84},

publisher = {Springer Verlag}

}

### Years of Citing Articles

### OpenURL

### Abstract

This paper addresses the problem of how to construct refinements of specifications formally and incrementally. The key idea is to use a taxonomy of abstract design concepts, each represented by a design theory. An abstract design concept is applied by constructing a specification morphism from its design theory to a requirement specification. Procedures for propagating constraints, computing colimits, and constructing specification morphisms provide computational support for this approach. Although we conjecture that classification generally applies to the incremental application of knowledge represented in a taxonomy of design theories, this paper mainly focuses on algorithm design theories and presents several examples of design by classification.

### Citations

1356 |
Combinatorial optimization: Algorithm and complexity
- Papadimitriu, Steiglitz
- 1982
(Show Context)
Citation Context ... for greedy algorithms. If the free operators of the scheme have matroid structure, then the corresponding instance of the greedy scheme is provably correct with respect to its optimization objective =-=[13]-=-. Here, matroid theory is the design theory, and the artifact theory is parameterized on matroid theory and contains the greedy scheme. DT I - S 0 AT ? - S 1 J ? The diagram to the left shows how a de... |

644 |
A Mathematical Introduction to Logic
- Enderton
- 1972
(Show Context)
Citation Context .... Two examples are presented in Section 4. 2 Basic Concepts and Notations 2.1 Specifications As much as possible we adhere to conventional concepts and notation for firstorder algebraic specification =-=[6, 8, 26]-=-. A signature \Sigma = hS;\Omega i consists of a set of sort symbols S and a family\Omega = h\Omega v;s i of finite disjoint sets indexed by S \Theta S, where\Omega v;s is the set of operation symbols... |

282 |
An initial algebra approach to the specification, correctness, and implementation of abstract data types
- Goguen, Thatcher, et al.
- 1978
(Show Context)
Citation Context ...ioms and inference rules. Specifications can be used to express many kinds of software-related artifacts, including application domain models [22], formal requirements [1, 5, 14], abstract data types =-=[7, 10]-=-, abstract algorithms [17], and programming languages [3, 9, 11]. A specification morphism (or simply a morphism) translates the language of one specification into the language of another specificatio... |

243 | KIDS: A semiautomatic program development system
- SMITH
- 1990
(Show Context)
Citation Context ...This work is based on experience with algorithm design and optimization using KIDS (Kestrel Interactive Development System) which has been used to design over 70 algorithms from formal specifications =-=[18]-=-. Currently in KIDS, algorithm design is carried out by specialized procedures for each class of algorithms, called design tactics [17]. Classification allows us to duplicate and extend the functional... |

225 |
Algebraic specification
- Wirsing
- 1990
(Show Context)
Citation Context .... Two examples are presented in Section 4. 2 Basic Concepts and Notations 2.1 Specifications As much as possible we adhere to conventional concepts and notation for firstorder algebraic specification =-=[6, 8, 26]-=-. A signature \Sigma = hS;\Omega i consists of a set of sort symbols S and a family\Omega = h\Omega v;s i of finite disjoint sets indexed by S \Theta S, where\Omega v;s is the set of operation symbols... |

194 |
Initial algebra semantics and continuous algebras
- Goguen, Thatcher, et al.
- 1977
(Show Context)
Citation Context .... Two examples are presented in Section 4. 2 Basic Concepts and Notations 2.1 Specifications As much as possible we adhere to conventional concepts and notation for firstorder algebraic specification =-=[6, 8, 26]-=-. A signature \Sigma = hS;\Omega i consists of a set of sort symbols S and a family\Omega = h\Omega v;s i of finite disjoint sets indexed by S \Theta S, where\Omega v;s is the set of operation symbols... |

145 | Toward formal development of programs from algebraic specifications: Implementations revisited
- Sannella, Tarlecki
- 1988
(Show Context)
Citation Context ...rems. Specification morphisms underlie several aspects of software development, including the binding of parameters in parameterized specifications [4, 9], specification refinement and implementation =-=[2, 15, 24]-=-, and algorithm design [12, 17, 25]. Despite years of research on specification languages and specification refinement, there has been relatively little work on formal techniques for constructing refi... |

116 |
The algebraic specification of abstract data types
- Guttag, Horning
- 1978
(Show Context)
Citation Context ...ioms and inference rules. Specifications can be used to express many kinds of software-related artifacts, including application domain models [22], formal requirements [1, 5, 14], abstract data types =-=[7, 10]-=-, abstract algorithms [17], and programming languages [3, 9, 11]. A specification morphism (or simply a morphism) translates the language of one specification into the language of another specificatio... |

83 |
The Specification and Transformation of Programs: A Formal Approach to Software Development
- Partsch
- 1990
(Show Context)
Citation Context ...ins its possible meanings via axioms and inference rules. Specifications can be used to express many kinds of software-related artifacts, including application domain models [22], formal requirements =-=[1, 5, 14]-=-, abstract data types [7, 10], abstract algorithms [17], and programming languages [3, 9, 11]. A specification morphism (or simply a morphism) translates the language of one specification into the lan... |

74 |
The Specification of Computer Programs
- Turski, Maibaum
- 1987
(Show Context)
Citation Context ...rems. Specification morphisms underlie several aspects of software development, including the binding of parameters in parameterized specifications [4, 9], specification refinement and implementation =-=[2, 15, 24]-=-, and algorithm design [12, 17, 25]. Despite years of research on specification languages and specification refinement, there has been relatively little work on formal techniques for constructing refi... |

60 |
Top-down synthesis of divide-and-conquer algorithms
- Smith
- 1985
(Show Context)
Citation Context ...and-Conquer and functions that satisfy the requirement specifications for the subalgorithms, the corresponding instance of the divide-and-conquer function satisfies its requirement specification (see =-=[16]-=-). Spec Divide-and-Conquer-Program (T :: Divide-and-Conquer) op Directly-Solve (x : D j I(x)sprim(x)) returns (z : R j O(x; z)) op Decompose (x 0 : D j I(x 0 )s:prim(x 0 )) returns (hx 1 ; x 2 i : D \... |

48 | R.: Algorithm Theories and Design Tactics - Smith, Lowry - 1990 |

43 | Constructing specification morphisms
- Smith
- 1993
(Show Context)
Citation Context ...t rungs of the ladder are constructed by a constraint solving process that involves user choices, the propagation of consistency constraints, calculation of colimits, and constructive theorem proving =-=[20]-=-. Once we have constructed a classification arrow, then constructing a refinement of Spec 0 is straightforward. Elaborating a little on the presentation in the introduction, if we have a classificatio... |

25 | DTRE - A Semi-Automatic Transformation System
- Blaine, Goldberg
- 1991
(Show Context)
Citation Context ...rems. Specification morphisms underlie several aspects of software development, including the binding of parameters in parameterized specifications [4, 9], specification refinement and implementation =-=[2, 15, 24]-=-, and algorithm design [12, 17, 25]. Despite years of research on specification languages and specification refinement, there has been relatively little work on formal techniques for constructing refi... |

19 |
On the algebraic definition of programming languages
- Broy, Wirsing, et al.
- 1987
(Show Context)
Citation Context ...ss many kinds of software-related artifacts, including application domain models [22], formal requirements [1, 5, 14], abstract data types [7, 10], abstract algorithms [17], and programming languages =-=[3, 9, 11]-=-. A specification morphism (or simply a morphism) translates the language of one specification into the language of another specification in a way that preserves theorems. Specification morphisms unde... |

15 |
Specware TM : Formal Support for Composing Software
- Srinivas, Jullig
- 1995
(Show Context)
Citation Context ...gn tactics [17]. Classification allows us to duplicate and extend the functionality of the KIDS algorithm design tactics. Classification is being implemented in the successor to KIDS, called Specware =-=[23]-=-. We conjecture that classification will also support a much broader range of design tasks, such as the design of data structures, user interfaces, and software systems. After reviewing basic concepts... |

12 |
Algorithm synthesis through problem reformulation
- Lowry
- 1989
(Show Context)
Citation Context ...rlie several aspects of software development, including the binding of parameters in parameterized specifications [4, 9], specification refinement and implementation [2, 15, 24], and algorithm design =-=[12, 17, 25]-=-. Despite years of research on specification languages and specification refinement, there has been relatively little work on formal techniques for constructing refinements, as opposed to verifying re... |

12 | Structure and design of problem reduction generators
- Smith
- 1991
(Show Context)
Citation Context ... next. It provides the structure for a binary decomposition operator and corresponding composition operator. A general scheme for problem reduction theories (including divide-and-conquer) is given in =-=[19]-=-. generate-and test Problems (CSP) steepest ascent simulated annealing repair methods binary search backtrack Structure Linear Programming Programming simplex primal-dual specialized simplex NW Algori... |

11 |
An introduction to ASL
- Astesiano, Wirsing
- 1986
(Show Context)
Citation Context ...ins its possible meanings via axioms and inference rules. Specifications can be used to express many kinds of software-related artifacts, including application domain models [22], formal requirements =-=[1, 5, 14]-=-, abstract data types [7, 10], abstract algorithms [17], and programming languages [3, 9, 11]. A specification morphism (or simply a morphism) translates the language of one specification into the lan... |

11 |
Parameter passing in algebraic specification languages
- Ehrig, Kreowski, et al.
- 1984
(Show Context)
Citation Context ...f another specification in a way that preserves theorems. Specification morphisms underlie several aspects of software development, including the binding of parameters in parameterized specifications =-=[4, 9]-=-, specification refinement and implementation [2, 15, 24], and algorithm design [12, 17, 25]. Despite years of research on specification languages and specification refinement, there has been relative... |

5 |
The varieties of programming language
- Hoare
- 1989
(Show Context)
Citation Context ...ss many kinds of software-related artifacts, including application domain models [22], formal requirements [1, 5, 14], abstract data types [7, 10], abstract algorithms [17], and programming languages =-=[3, 9, 11]-=-. A specification morphism (or simply a morphism) translates the language of one specification into the language of another specification in a way that preserves theorems. Specification morphisms unde... |

4 |
Problem solving by interpretation of theories
- Veloso
- 1988
(Show Context)
Citation Context ...rlie several aspects of software development, including the binding of parameters in parameterized specifications [4, 9], specification refinement and implementation [2, 15, 24], and algorithm design =-=[12, 17, 25]-=-. Despite years of research on specification languages and specification refinement, there has been relatively little work on formal techniques for constructing refinements, as opposed to verifying re... |

2 |
Fundamentals of Algebraic Specification, vol. 2: Module Specifications and Constraints
- Ehrig, Mahr
- 1990
(Show Context)
Citation Context ...ins its possible meanings via axioms and inference rules. Specifications can be used to express many kinds of software-related artifacts, including application domain models [22], formal requirements =-=[1, 5, 14]-=-, abstract data types [7, 10], abstract algorithms [17], and programming languages [3, 9, 11]. A specification morphism (or simply a morphism) translates the language of one specification into the lan... |

2 |
Derivation of parallel sorting algorithms
- Smith
- 1993
(Show Context)
Citation Context ... unskolemization on the soundness axiom to derive a specification for a composition operator. This approach allows the derivation of insertion sort, mergesort, and various parallel sorting algorithms =-=[16, 21]-=-. A dual approach is to choose a simple composition relation and use the Soundness axiom to derive a decomposition operator. Suppose that we choose concatenation as a simple composition relation on th... |

2 |
Algebraic Specification for Domains,” Domain Analysis and Software Systems Modeling
- Srinivas
- 1991
(Show Context)
Citation Context ...nes a language and constrains its possible meanings via axioms and inference rules. Specifications can be used to express many kinds of software-related artifacts, including application domain models =-=[22]-=-, formal requirements [1, 5, 14], abstract data types [7, 10], abstract algorithms [17], and programming languages [3, 9, 11]. A specification morphism (or simply a morphism) translates the language o... |