Next: What is a software
Up: The Software Invention Cube:
Previous: Discovery versus invention
What is the state of the art in software?
In software engineering, the software life cycle is a
frequently used manner of organizing the software development
process. Figure 2 shows a strongly simplified version of
the life cycle taken from a standard textbook [13].
There are many models for software development but in most models one can
distinguish the following five phases:
- Requirements engineering: collect the requirements and expectations from
the future owners and users of the system.
- Design: translate the requirements in a specification that describes the
global architecture and the functionality of the system.
- Implementation: build the system.This amounts to transforming the design
into software source code.
- Testing: test that the implemented system conforms to the specification.
- Maintenance: install, maintain and gradually improve the system.
It should be emphasized that the software life cycle covers design and
construction of a software product as well as its use.
Each phase contains a Validation and Verification (V&V) sub-phase in which
the quality of the deliverables of that phases are controlled. Also note the
backward arrows that make this into a real ``cycle'': it is possible to
become aware in later phases that decisions made in a previous phase have to be
revised.
The state of the art in software is the explicit body of knowledge about
software engineering that is documented in:
- The Software Engineering Body of Knowledge (SWEBOK) [10].
- University curricula.
- Text books.
- Publications by professional organizations such as Association for Computing Machinery (ACM, see [1]) and
the Institute of Electrical and Electronics Engineers (IEEE, see [6]).
- Web sites and mailing lists related to software projects.
- Publicly available results of the software engineering life cycle from
software projects. This includes all artefacts of the life cycle, including
designs, source code, and documentation.
- Lectures, courses, and oral presentations about software engineering topics.
Figure 2:
The software life cycle
|
Next: What is a software
Up: The Software Invention Cube:
Previous: Discovery versus invention
Paul Klint
2006-06-02