CS-6209 Software Engineering 1
Week 7: Software Development Method
Course Module
Module 006: Software Development Method
Course Learning Outcomes:
1. Understand the concepts of software processes and software process
models;
2. Have been introduced to three generic software process models and
when they might be used;
3. Know about the fundamental process activities of software requirements
engineering, software development, testing, and evolution;
4. Understand why processes should be organized to cope with changes in
the software requirements and design;
5. Understand how the Rational Unified Process integrates good software
engineering practice to create adaptable software processes.
Introduction
A software process is a set of related activities that leads to the production of a soft-
ware product. These activities may involve the development of software from
scratch in a standard programming language like Java or C. However, business
applications are not necessarily developed in this way. New business software is
now often developed by extending and modifying existing systems or by configuring
and integrating off-the-shelf software or system components.
There are many different software processes but all must include four activities that
are fundamental to software engineering:
Software specification. The functionality of the software and constraints on
its operation must be defined.
Software design and implementation. The software to meet the
specification must be produced.
Software validation. The software must be validated to ensure that it does
whatthe customer wants.
Software evolution. The software must evolve to meet changing customer
needs.
In some form, these activities are part of all software processes. In practice, of
course, they are complex activities in themselves and include sub-activities such as
requirements validation, architectural design, unit testing, etc. There are also
supporting process activities such as documentation and software configuration
management.