Multicolour programming and metamorphic programming: object oriented programming-in-the-large

  • Authors:
  • R. C. Holt;D. A. Penny;S. Mancoridis

  • Affiliations:
  • University of Toronto;University of Toronto;University of Toronto

  • Venue:
  • CASCON '92 Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 1
  • Year:
  • 1992

Quantified Score

Hi-index 0.00

Visualization

Abstract

A key difficulty in programming-in-the-large is the lack of a framework in which to place the rich set of concepts entailed in the software development cycle. We propose such a framework, one that supports separation of concerns (for example, among distinct phases such as analysis and design) in an integrated environment.Our multicolour programming approach splits programming into levels each of which is designated by a particular colour. The upper levels correspond to programming-in-the-large while the lowest levels correspond to programming-in-the-small. From high to low levels, these are:Brown Libraries and projects,Black Modules and relations among them,Green Interfaces to individual modules,Blue Specification and coding of individual modules.We also have Red programming, which corresponds to the making (compiling and linking) of individual software products or releases.Distinct from these levels, we distinguish the traditional (waterfall) phases of software development:A Analysis,S Specification,P Prototyping,I Implementation,T Tuned Implementation AN@Together we call these phases ASPIT, based on their initials. These phases may be developed in any order, including top-down and bottom-up. A phase is a view of a piece of software, rather than a sequential step in the process of its development. We use the term metamorphic programming to emphasize that the module is smoothly transformed from one ASPIT phase to another, minimizing the chance of disagreement between adjacent phases.Throughout we emphasize visibility and accessibility, to maximize the ability of programmers and managers to understand and improve the ongoing development process.