Page 49 -
P. 49

32   Chapter 2   Software processes




                            Cleanroom software engineering

                     An example of a formal development process, originally developed by IBM, is the Cleanroom process. In the
                     Cleanroom process each software increment is formally specified and this specification is transformed into an
                     implementation. Software correctness is demonstrated using a formal approach. There is no unit testing for
                     defects in the process and the system testing is focused on assessing the system’s reliability.
                       The objective of the Cleanroom process is zero-defects software so that delivered systems have a high level
                     of reliability.
                                       http://www.SoftwareEngineering-9.com/Web/Cleanroom/




                                      The waterfall model is consistent with other engineering process models and docu-
                                    mentation is produced at each phase. This makes the process visible so managers can
                                    monitor progress against the development plan. Its major problem is the inflexible par-
                                    titioning of the project into distinct stages. Commitments must be made at an early stage
                                    in the process, which makes it difficult to respond to changing customer requirements.
                                      In principle, the waterfall model should only be used when the requirements are
                                    well understood and unlikely to change radically during system development.
                                    However, the waterfall model reflects the type of process used in other engineering
                                    projects. As is easier to use a common management model for the whole project,
                                    software processes based on the waterfall model are still commonly used.
                                      An important variant of the waterfall model is formal system development, where
                                    a mathematical model of a system specification is created. This model is then
                                    refined, using mathematical transformations that preserve its consistency, into exe-
                                    cutable code. Based on the assumption that your mathematical transformations are
                                    correct, you can therefore make a strong argument that a program generated in this
                                    way is consistent with its specification.
                                      Formal development processes, such as that based on the B method (Schneider,
                                    2001; Wordsworth, 1996) are particularly suited to the development of systems that
                                    have stringent safety, reliability, or security requirements. The formal approach sim-
                                    plifies the production of a safety or security case. This demonstrates to customers or
                                    regulators that the system actually meets its safety or security requirements.
                                      Processes based on formal transformations are generally only used in the devel-
                                    opment of safety-critical or security-critical systems. They require specialized
                                    expertise. For the majority of systems this process does not offer significant cost-
                                    benefits over other approaches to system development.



                             2.1.2 Incremental development

                                    Incremental development is based on the idea of developing an initial implementa-
                                    tion, exposing this to user comment and evolving it through several versions until an
                                    adequate system has been developed (Figure 2.2). Specification, development, and
   44   45   46   47   48   49   50   51   52   53   54