Software safety. Parallels between the early development of high-pressure steam engines and software engineering that we can apply to the use of computers in complex systems.
Case study of a well known software error.
This paper presents seven key steps: improve the testing process, define requirements, prove the concept, champion product testability, design for sustainability, plan for deployment, and face the challenges of success.
Some aspects of the relationship between quality and aesthetics (beauty) in software, using architecture analogies.
User-Centered Design. Simple approaches for delivering smaller, simpler systems that better serve the needs of users.
John Evans; Crosstalk, June 2000. The importance of software architecture, and related items such as unambiguous requirements and coding standards.
Lorin J. May; Crosstalk, July 1998. Based on interviews with software consultants and practitioners who were asked to provide "autopsies" of failed projects with which they have been acquainted.
Recapturing, exploring and celebrating the Art of Computer Programming.
Adaptive Programming - specifying the connections between objects as loosely as possible. Makes programs more flexible, more resilient to change, and more adaptable to varying configurations of classes within a given domain
Advanced use of assertions for clearer specifications and greater software reliability. By OO guru Bertrand Meyer, creator of Eiffel.
|