Introduction Development Lifecycle Model
Total Page:16
File Type:pdf, Size:1020Kb
DeveIopment of a Comprehensive Software Engineering Environment Thomas C. Hartrum Gary B. Lamont Department of Electrical and Computer Engineering Department of Electrical and Computer Engineering School of Engineering School of Engineering Air Force Institute of Technology Air Force Institute of Technology Wright-Patterson AFB, Dayton, Ohio, 45433 Wright-Patterson AFB, Dayton, Ohio, 45433 Abstract The concept of an integrated software development environment The generation of a set of tools for the software lifecycle is a recur- can be realized in two distinct levels. The first level deals with the ring theme in the software engineering literature. The development of access and usage mechanisms for the interactive tools, while the sec- such tools and their integration into a software development environ- ond level concerns the preservation of software development data and ment is a difficult task at best because of the magnitude (number of the relationships between the products of the different software life variables) and the complexity (combinatorics) of the software lifecycle cycle stages. The first level requires that all of the component tools process. An initial development of a global approach was initiated at be resident under one operating system and be accessible through a AFIT in 1982 as the Software Development Workbench (SDW). Also common user interface. The second level dictates the need to store de- other restricted environments have evolved emphasizing Ada and di5 velopment data (requirements specifications, designs, code, test plans tributed processing. Continuing efforts focus on tool development, and procedures, manuals, etc.) in an integrated data base that pre- tool integration, human interfacing (graphics; SADT, DFD, structure serves the relationships between the products of the different life cy- charts, ...), data dictionaries, and testing algorithms. Current efforts cle stages. This integration of tools and techniques at both levels is a are emphasizing natural language interfaces, expert system software major objective of any software engineering environment development development associates and distributed environments with Ada as effort. the target language. The current implementation of the SDW is on The major objectives are to provide a production software devel- a VAX-11/780 under VMS. Also, a simplified version of the SDW opment environment for students and faculty and to generate a soft- has been hosted on personal computers. Other software development ware engineering research testbed. Initially the SDW provided the tools are hosted under UNIX and are being networked through en- overall architecture for a “complete” capability. Itecently, efforts are gineering work stations. This paper discusses the various aspects of focusing on a distributed version of the SDW concept called System AFIT’s development of software engineering environments. 690 in support of the software engineering laboratory course, EENG 690. Introduction Development Lifecycle Model A software development environment is an integrated set of auto- The definition of the software lifecycle as supported and used by the mated and interactive software development tools that aid the soft- various environments consists of the standard six phases; require- ware engineer in the development of quality software products. The ments definition, preliminary design, detailed design, implementation specific software products which are associated with the software life (coding), integration and operation and maintenance. This general cycle include requirements definitions; design specifications; source methodology is reflected in DOD Standard 2167 [l]. Documentation and executable program codes; test plans, procedures, and results; as must be provided within each phase to support reviews (static) and well as other associated documentation such as guides and manuals testing (dynamic) of results associated with each activity. ca- of operation and maintenance of the software. By definition, software This pability can be provided through the use of a data dictionary and only exists in its documentation! Thus, extensive records must be associated data base management system. Software system correc- generated, maintained, and managed to properly fulfill the software tions and enhancements should flow through all previous phases for engineering objectives. A well planned and implemented software “proper” documentation. develapment environment can effectively assist in the generation of Note that validation and testing is not a distinct stage in this reliable and maintainable computer software. lifecycle, but rather an activity that is performed along the entire The typical software development environment includes both hard- lifecycle. This activity involves the testing of the products of each ware and software tools to aid the software engineer in the production stage for internal consistency and completeness with the products of programs. Software development environments may consist of a of the previous stages. Furthermore, the products of each stage are minimal set of tools, such as an editor, a compiler, and a link/loader, validated against the user’s perception of the requirements. that support only the actual coding of software. However, the most The Software Development Workbench(SDW) and the distributed effective environments are those with an extensive set of powerful in- environment, System 690, are developed using this software life cycle teractive and integrated tools that support state-of-the-art method- definition with the primary objective of providing integrated and au- ologies for dealing with software from its very conception through its tomated support. Discussion of each environment follows the stages of eventual termination. A specific software development environment its initial lifecycle. The objectives and accomplishments of each stage consists of a process methodology along with given hardware and sys- of the lifecycle development are presented. The requirements defini- tem software, manual procedures and support personnel. The process tion and preliminary design stages deal with a system as it should ex- methodology usually involves a specific set of operations (steps) along ist in its ultimate form, whereas the detailed design, implementation, with conceptual tools to support these steps within the software life- integration, and operation stages emphasize a prototype environment cycle phases mentioned previously. with a menu driven interface and initial tool set. 31 SDW Requirements and Design concerns are of special significance to the SDW effort. Integration is to be realized in terms of both accessing component tools and storing The first stages of the SDW development effort [2] emphasized the of the development data. Traceability must also be preserved between requirements definition and preliminary design of the ultimate SDW the products of the different stages of the development effort. User- implementation. Due to the extensive scope of this task, the target friendliness is also a very significant concern. The SDW must utilize was set at a fairly high level specification with the individual subsys- the latest concepts of ergonomics in the design of its human inter- tems specified in greater detail with the use of recursive applications face. This interface should be easily understandable with a simple of the software life cycle. logical structure, well laid out display, and a simple command input The results of this task are a set of five primary objectives of mechanism. Prefabricated programming, or the incorporation of ex- the SDW, thirteen specific concerns for its development [3], a func- isting software can improve development productivity. Flexibility is tional model and associated evaluation criteria, a hardware/software required at both the environment and tool level to allow users to op- configuration model, and a structure model that identifies all generic erate in a mode comfortable to their knowledge and experience levels. component tool types. That is, the operation of the SDW must allow the user to tailor the Of the five objectives of the SDW, the reduction of software errors type of prompting, feedback, and structure [5]. is the first (41. This is to be achieved by supporting and enforcing the A functional model of the software development process using use of accepted software engineering principles, as well as by using SADT (Structured Analysis and Design Technique) diagrams [SI was the computer to augment different testing procedures. developed in order to define the SDW process and to select those The SDW must also be responsive to change. Realizing that soft- aspects of the process that could be automated. Furthermore, a set ware is a dynamic entity, the SDW must be able to support changing of evaluation criteria is established with which to judge the effective- requirements for its operation. ness of the environment in satisfying its requirements. However, for The rapid assessment of design alternatives is also quite impor- reasons of brevity, these topics are not discussed further. tant. The use of simulation models and prototyping is selected more The configuration model of the SDW shown in Figure 1 illustrates and more to assess design operations as well as to aid in determining the basic hardware/software configuration for the environment. The the end user’s true needs. SDW Executive is the primary interface and controller of the com- The SDW must also be capable of providing interactive