The entity-relationship model—toward a unified view of data
ACM Transactions on Database Systems (TODS) - Special issue: papers from the international conference on very large data bases: September 22–24, 1975, Framingham, MA
The Vienna Definition Language
ACM Computing Surveys (CSUR)
A technique for software module specification with examples
Communications of the ACM
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Program development by stepwise refinement
Communications of the ACM
A relational model of data for large shared data banks
Communications of the ACM
Software Development: A Rigorous Approach
Software Development: A Rigorous Approach
Structured Programming; Theory and Practice the Systems Programming Series
Structured Programming; Theory and Practice the Systems Programming Series
Using symbolic execution to characterize behavior
Proceedings of the workshop on Rapid prototyping
Rapid prototyping by means of abstract module specifications written as trace axioms
Proceedings of the workshop on Rapid prototyping
Prototyping in ADA: a case study
Proceedings of the workshop on Rapid prototyping
HIBOL: a language for fast prototyping in data processing environments
Proceedings of the workshop on Rapid prototyping
Proceedings of the workshop on Rapid prototyping
Graphical representation and analysis of information systems design
ACM SIGMIS Database - Proceedings of a conference on Application Development Systems, Santa Clara, California, March 10-11, 1980
Principles of Program Design
Reliable software through composite design
Reliable software through composite design
Structured programming
Structured Analysis for Requirements Definition
IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
This technical essay presents a perspective on the evolution and problems of the software development craft and how software engineering techniques show promise to solve these problems. It introduces architecture prototyping as a program development technique for improving software quality. Experience with large software systems shows that over half of the defects found after product release are traceable to errors in early product design. Furthermore, more than half the software life-cycle costs involve detecting and correcting design flaws. In this paper, we explore a disciplined approach to software development based on the use of formal specification techniques to express software requirements and system design. As a consequence, we can use techniques like rapid prototyping, static design analysis, design simulation, and dynamic behavior analysis to validate system design concepts prior to element design and implementation. We explore how these techniques might be organized in a software architecture prototyping facility that would be similar to the Computer-Aided Design and Manufacturing (CADAM) tools used in other engineering disciplines. We also examine the process by which software engineers might use these facilities to create more reliable systems.