CaseDL (abstract): a design tool for specification and prototyping

The Case Design Environment (CaseDE) is a computer-assisted environment for the development of high quality software systems. It is currently being built at the Department of Computer Engineering and Science at Case Western Reserve University. CaseDE incorporates a wide spectrum of design methodologies, to support the software designer throughout all phases of the software life cycle. We believe that systems developed using this environment will be highly reliable, easily modifiable, and cost effective. Specifications are central to CaseDE. Different types of specifications describe different aspects of the desired system, such as functional behavior, performance requirements, resource utilization, and so on. Specifications at varying levels of formalism allow the designer to begin with a natural language approach and grow increasingly more formal as the design progresses. Using a range of specifications, the designer will be able to describe more completely the characteristics of the evolving system. To catch design (or even specification) flaws early in the software development process, we would like to be able to observe the behavior of a prototype based on the system specification. One of our goals in the design of CareDL was to develop notations for specifications that would be executable. The Case Design Language (CsseDL) is a collection of notations for the precision design of software. Together these notations form a language for describing the functional behavior of a software system in a rigorous and precise manner. CaseDL aims to capture the problem solving thought processes of the designer in a way which is mathematically precise, without being difficult to use. An interpreter has been constructed for Oa~DLo, a small subset of CaseDL. CaseDL is by and large a functional language that expresses a design in terms of the relationships between system inputs and outputs. Using this language, we can describe the functional behavior of a system, without constructing the system itself. This desexiption, or specification, represents a prototype which can be executed to simulate system operation. We expect our full-cut functional specification language to include temporal operators, functional composition operators (cf. FP), and algebraic/logical equations. Most importantly, it will include certain built-in abltract models, and mechanisms to construct others from these, such as sets, sequences, tables, trees, graphs, etc. and a calculus on these. We perceive our research problem here to be one of dasigning a language that designers find productive to use rather than fight. CsseDL facilitates a design process which includes understanding givan primitives and the rules for their composition. The finished C ~ ~DL design is a composition of the given primitives using the permitted rulas.