A rational design process: How and why to fake it
IEEE Transactions on Software Engineering
Trace Specifications: Methodology and Models
IEEE Transactions on Software Engineering
Precise Documentation of Well-Structured Programs
IEEE Transactions on Software Engineering
Functional documents for computer systems
Science of Computer Programming
ICSE '94 Proceedings of the 16th international conference on Software engineering
Tabular representations in relational documents
Relational methods in computer science
Using Test Oracles Generated from Program Documentation
IEEE Transactions on Software Engineering
Active design reviews: principles and practices
ICSE '85 Proceedings of the 8th international conference on Software engineering
Predicative programming Part I
Communications of the ACM
A generalized control structure and its formal definition
Communications of the ACM
The new math of computer programming
Communications of the ACM
Guarded commands, nondeterminacy and formal derivation of programs
Communications of the ACM
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
The structure of the “THE”-multiprogramming system
Communications of the ACM
Software fundamentals: collected papers by David L. Parnas
Software fundamentals: collected papers by David L. Parnas
A Discipline of Programming
Software Specification Techniques (International Computer Science Series)
Software Specification Techniques (International Computer Science Series)
Structured Programming; Theory and Practice the Systems Programming Series
Structured Programming; Theory and Practice the Systems Programming Series
Predicate Logic for Software Engineering
IEEE Transactions on Software Engineering
Algebraic specifications: some old history and new thoughts
Nordic Journal of Computing
A procedure for designing abstract interfaces for device interface modules
ICSE '81 Proceedings of the 5th international conference on Software engineering
Specifying and simulating the externally observable behavior of modules
Specifying and simulating the externally observable behavior of modules
Disciplined Methods of Software Specification: A Case Study
ITCC '05 Proceedings of the International Conference on Information Technology: Coding and Computing (ITCC'05) - Volume II - Volume 02
Using information about functions in selecting test cases
A-MOST '05 Proceedings of the 1st international workshop on Advances in model-based testing
Specifying Software Requirements for Complex Systems: New Techniques and Their Application
IEEE Transactions on Software Engineering
On the Design and Development of Program Families
IEEE Transactions on Software Engineering
The Modular Structure of Complex Systems
IEEE Transactions on Software Engineering
Specification techniques for data abstractions
IEEE Transactions on Software Engineering
Tool support for crosscutting concerns of API documentation
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
A family of computer systems for delivering individualized advice
Knowledge-Based Systems
Experiences documenting and preserving software constraints using aspects
Proceedings of the tenth international conference on Aspect-oriented software development companion
Journal of Systems and Software
Knowledge-based approaches in software documentation: A systematic literature review
Information and Software Technology
Hi-index | 0.00 |
A software development process can be considered rational if each design decision can be justified based on given facts and design decisions that were made, reviewed, and accepted earlier. This paper describes a set of documents that can serve as a ''knowledge base'' for more rational software development. Each of these documents can be viewed as a place where the decisions made in one phase of a software development can be recorded for those who work in the next phase. These documents make it possible to develop software in a rational and reviewable way. We describe why each document is needed, how it should be organized, and how the information in the whole set of documents can be represented in a precise, checkable, and accessible way. We illustrate the approach with a detailed discussion of one of these documents, module interface documentation.