Managing the development of large software systems: concepts and techniques
ICSE '87 Proceedings of the 9th international conference on Software Engineering
The Turing programming language
Communications of the ACM
Managing the software process
(ISEF): an integrated industrial-strength software engineering framework
SDE 3 Proceedings of the third ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Graphical Configuration Programming
Computer
Object-oriented analysis
Object oriented design with applications
Object oriented design with applications
Object-oriented modeling and design
Object-oriented modeling and design
Formal Specification in Metamorphic Programing
VDM '91 Proceedings of the 4th International Symposium of VDM Europe on Formal Software Development-Volume I: Conference Contributions - Volume I
Loosely integrating tools using the star system
CASCON '94 Proceedings of the 1994 conference of the Centre for Advanced Studies on Collaborative research
A multi-dimensional taxonomy of software development environments
CASCON '93 Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: software engineering - Volume 1
Hi-index | 0.00 |
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.