Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Statecharts: A visual formalism for complex systems
Science of Computer Programming
Object-oriented systems analysis: modeling the world in data
Object-oriented systems analysis: modeling the world in data
Object-oriented analysis
Object oriented design with applications
Object oriented design with applications
Object-oriented software engineering
Object-oriented software engineering
Object-oriented modeling and design
Object-oriented modeling and design
Designing object-oriented software
Designing object-oriented software
Obstacles in object-oriented software development
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Decline and fall of the American programmer
Decline and fall of the American programmer
Object-oriented system development
Object-oriented system development
On the purpose of object-oriented analysis
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Object-oriented development: the fusion method
Object-oriented development: the fusion method
The Mythical Man-Month: Essays on Softw
The Mythical Man-Month: Essays on Softw
Hi-index | 0.00 |
The ambition of every designer is the software equivalent of a cathedral. But maintenance programmers are more comfortable in a farmhouse than a cathedral. We argue that current design methodologies are oriented towards cathedrals, and we propose object oriented design techniques and tools that are suitable for farmhouses.During the lifetime of a useful program, its users requirements change and the code changes to track the requirements. The code drifts away from the original design, becomes increasingly brittle, and eventually can no longer be maintained; each repair introduces new faults. The cure for these ills--design for change--is well-known, but current design methodologies and tools do not facilitate useful changes.We describe a design tool that supports evolutionary object oriented design. Designers can create and modify designs, view them in textual and graphical form, check their internal consistency, and match them to requirements and code.To accomplish this, we use text, tables, and diagrams with multiple levels of formality. The tool processes formal entities completely (as a compiler can process source code completely); it stores, retrieves, and displays informal entities (whereas a compiler discards comments); and it can perform limited operations on semiformal entities. Our work borrows from formal specification techniques, but is intended for software that evolves.