Functional programming and software engineering

Publisher Summary This chapter examines the different aspects of functional programming and software engineering. Throw-away prototyping consists of a developer building a quick version of a software system, and using it to demonstrate the functionality of the system to the customer. It is found that when both parties agree, conventional development starts, and the prototype is discarded. Incremental prototyping involves the developer producing a number of versions of a system, with each version delivering more, and more functionality. This is really incremental delivery. Its connection with prototyping, however, is that the developer can use the early deliveries of the system as a prototype. Evolutionary prototyping is an attempt to take notice of a number of imperfections in software development, and the role of change. During the software project, the development manager is the victim of a number of circumstances that require the product under development to be changed.