Malsbury, Judy A.; Camp, Ray A. (1987, ASQC) Princeton University, Princeton, NJ
Engineering can not achieve economy and quality by relying on individual talents discretely applied no matter how talented the individual participants. The need for composition, for orchestration, and for methodologies is enormous. In any field of engineering, there exist basic sets of tools and methods of analysis that any professional practitioner would possess and use. These tools and methods are the framework that allow engineers to perform their tasks in a sequence of steps with reasonable review points and produce products with fewer costs and higher quality. Software engineering is no exception. Within the last fifteen (15) years, much work has occurred in the field on software life cycle methodologies, techniques and other related concerns. These include requirement specification techniques (Structured Analysis or variations on the data flow diagram), design techniques (Structured Design, hierarchy diagrams, action diagrams), failure analysis, verification and validation, and the use of the computer, in general, to provide an automated implementation of these techniques.The tools and methods of conventional engineering disciplines are considered to be important components of any College or University curriculum, at both the Bacheloreate and advanced degree levels. The fundamentals must be assimilated before the prospective engineer can perform satisfactory work. However, this does not appear to be the case in software engineering. From our experience, there is a basic lack of awareness and acceptance of the requisite software tools and methods. We content that one of the reasons for this is that the teaching of these tools and methods is not fully integrated into the computer science curricula of most colleges and universities. Even cursory review of catalog data shows, for the most widely recognized schools, voids in their computer software engineering education.This paper describes a standardized survey of selected colleges and universities offering computer science degrees. The sample space contains a collection of schools which have nationally recognized computer science curricula, as well a smaller schools. The survey investigates course offerings in life cycle methodologies, structured analysis and design, testing and testability concerns, failure analysis (both within the design and the operational phases), diagramming techniques, hardware/user induced error analysis, validation and verification, software metrics, complexity and performance measurements and other detailed elemetns of the life cycle implementation. This paper characterizes the findings and makes recommendations.