Module 7: The Software Development Process (Project 2d)

CMPS 262: Advanced Programming

Introduction

Software development is hard, especially in larger groups. There has to be some process or some organization such that the software under development will be delivered on time, works, and is relatively bug free. From a historical perspective, the waterfall development model was the first major widespread development process. There are several stages, requirements, design, implementation, verification, and maintenance that are executed in order once. This is also a major drawback and the reason why the waterfall model has declined in popularity: it is very hard to design everything upfront since the implementation and verification stages often provide valuable new insights. In other words, designing and implementing software is a learning process.

The software development can be modified to account for this. Something that is really powerful is to develop a prototype first, from which lessons are drawn for the next version of the software. This also means that software development becomes iterative. Currently the most popular iterative approach is known as agile development, where requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams. It is based on the Manifesto for Agile Software Development. We will look at different software development methods and their tradeoffs.

Module Objectives

  • Describe the tradeoffs for different development processes
  • Follow a prototype based and iterative development process
  • Apply the software development process in a team context

Learning Resources

Learning Activities

  • Readings
  • Discussion Board
  • Programming Project

For Further Study

Leave A Reply

Your email address will not be published. Required fields are marked *