A technique for software module specification with examples
Communications of the ACM
Program development by stepwise refinement
Communications of the ACM
POPL '73 Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A proposed system for structured programming
Programming Symposium, Proceedings Colloque sur la Programmation
First version of a data flow procedure language
Programming Symposium, Proceedings Colloque sur la Programmation
ACM '72 Proceedings of the ACM annual conference - Volume 2
Programming with abstract data types
Proceedings of the ACM SIGPLAN symposium on Very high level languages
The use of abstract data types to simplify program modifications
Proceedings of the 1976 conference on Data : Abstraction, definition and structure
Abstract data types in the Model programming language
Proceedings of the 1976 conference on Data : Abstraction, definition and structure
Automated aids fob reliable software
Proceedings of the international conference on Reliable software
Testing large software with automated software evaluation systems
Proceedings of the international conference on Reliable software
An example of programming with abstract data types
ACM SIGPLAN Notices - Special issue on programming language design
Structured programming
A design methodology for reliable software systems
AFIPS '72 (Fall, part I) Proceedings of the December 5-7, 1972, fall joint computer conference, part I
An Automated Software Design Assistant
IEEE Transactions on Software Engineering
An extension to algebraic specifications to incorporate state behavior
ACM '79 Proceedings of the 1979 annual conference
Hi-index | 0.00 |
The software design process is discussed from an engineering point of view. Initially, a distinction is made between software design and program design. Software design is then described in terms of evolving a system architecture independently of implementation considerations. Computation structures are introduced as a means of modeling the dynamic behavior of a software architecture. Functional completeness, quality, machine independence, and performance completeness of a design are then used as criteria for engineering design decisions. Finally, the basic elements of a system to support the software design process are described.