Designing for change

  • Authors:
  • Peter Grogono

  • Affiliations:
  • Department of Computer Science, Concordia University, 1455 de Maisonneuve Blvd West, Montréal, Québec H3G 1M8

  • Venue:
  • CASCON '94 Proceedings of the 1994 conference of the Centre for Advanced Studies on Collaborative research
  • Year:
  • 1994

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.