Abstract

This chapter discusses two broad approaches to the software development process. The dominant research approach is that of formal development. In this approach a high-level abstract specification is made in a precise and analyzable form, generally using discrete mathematics or logic. The description is verified and validated through the application of automated reasoning. An executable system is derived by the use of correctness-preserving transformations, automatically applied where possible. Subsequent system maintenance is done by changing a high-level specification and replaying the transformations to regenerate the system. The approach on which most industrial practice is based follows a staged model of the software development process in which there are distinct requirements and design phases, each of which is completed when a specification is delivered. Diagram editing and consistency checking tools can be used to verify the requirements and design. Validation is by inspection and walkthrough. The construction of an exact description of software services, and the constraints under which those services are provided, is critical to the effective development of that software. Specification-in-the-large is the development of specifications for systems of substantial complexity and scale, and mirrors programming-in-the-large in raising a variety of difficulties that lie beyond the non-trivial clerical problems of handling large amounts of information. Existing specification schemes, methods, and tools are generally based on specification by a single participant and refined using examples that consolidate this weakness. The research objective is to develop a detailed understanding of specification by multiple participants to support the construction of specifications and reason about the process of specification itself.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call