Software Process Models Software The software process Software Process lifecycle Models
Software life cycle2 What is Software? vAnticipated answer: Software refers to the instructions (or programs) executed by a computer vActual answer: The product that software engineers design and build. It includes the executable programs, documentation (both electronic and hard copy). In addition, it may also include data in the form of numbers and text, or even pictorial and multimedia formats.
Software life cycle3 What is the software process? vThe set of activities whose goal is the development or evolution of software. vThe process may be viewed as: a road map, a series of predictable steps eventually leading to the timely delivery of a high quality software product.
Software life cycle4 What is a Software Process Model ? vThe software process model - simplified description of a software process, presented from a particular perspective (e.g. workflow model, the data-flow model, and the role model). The workflow model shows the sequence of activities in the process along with their inputs, outputs and dependencies. The activities in the model represent human actions. The dataflow model represents the process as a set of activities each of which carries out some data transformation. The role model represents the roles of people involved in the software process and the activities for which they are responsible
Software life cycle5 Software Process Models II vThis section of the course focuses on the traditional generic software process models to highlight how they effectively demonstrate the different approaches to software development. Such models include the: Build-And-Fix Waterfall Model Formal Prototyping Model Rapid Application Development (RAD) Model Evolutionary Process Models Incremental Model Spiral Model
Software life cycle6 Build-And-Fix Model v This model is the worst model for developing a project. v The product is built without proper specifications and design steps. v In essence, the product is built and modified as many times as possible until it satisfies the client. v The cost of using this approach is greater than if specifications are drawn up and a design is carefully developed. Build First version Modify until client is satisfied Maintenance Development Maintenance Build-And-Fix Model
Software life cycle7 vAlso referred to as the linear sequential model or the software life cycle. vDerives its name due to the cascading effect from one phase to the other. vModel consist of six distinct stages: requirements analysis Specification Design Implementation Integration Maintenance The Waterfall Model Requirements Verify Specification Verify Design Verify Implementation Test Integration Test Product Deliverable Maintenance Updated Requirements Verify Development Maintenance Waterfall Model
Software life cycle8 Waterfall Model II vRequirements analysis phase The problem is specified along with the desired service objectives (goals) The constraints are identified vSpecification phase - the system specification is produced from the detailed definitions above vSystem and software design phase - the system specifications are translated into a software representation. The software engineer at this stage is concerned with: Data structure Software architecture Algorithmic detail and Interface representations
Software life cycle9 Waterfall Model III vImplementation and testing phase stage the designs are translated into the software domain Testing at this stage focuses on making sure that any errors are identified and that the software meets its required specification. vMaintenance phase The software is updated to Meet the changing customer needs Adapted to accommodate changes in the external environment Correct errors and oversights previously undetected in the testing phases Enhancing the efficiency of the software vIntegration and system testing phase the program units are integrated and tested to ensure that the complete system meets the software requirements. After this stage the software is delivered to the customer
Software life cycle10 Waterfall Model IV vAdvantages Testing is inherent to every phase of the waterfall model It is an enforced disciplined approach It is documentation driven, that is, documentation (/ a deliverable) is produced at every stage vDisadvantages The model has difficulty accommodating the natural uncertainty that exists at the beginning of the project. The customer only sees a working version of the product after it has been coded. It only incorporates iteration indirectly, thus changes may cause considerable confusion as the project progresses.
Software life cycle11 Prototyping Model A prototype is a working model that is functionally equivalent to a component of the product. vVersion I: Prototyping is used as a requirements technique. vVersion II: Prototype is used as the specifications or a major part thereof. vThis model reflects an attempt to increase the flexibility of the development process by allowing the client to interact and experiment with a working representation of the product.
Software life cycle12 Prototyping Version I Uses the prototype as a means of quickly determining the needs of the client. The prototype is discarded once the specifications have been agreed on. Emphasis is on representing those aspects of the software that will be visible to the client/user. Thus it does not matter if the prototype hardly works. Note that if the first version of the prototype does not meet the client’s needs, then it must be rapidly converted into a second version.
Software life cycle13 Prototyping Model Version I Requirements Maintenance Development Maintenance Rapid Prototyping Verify Specifications (written) Verify Design Verify Implementation Test Integration Test Changed requirements Verify
Software life cycle14 Prototyping Version II vThe prototype is actually used as the specifications for the design phase. vThe advantage of this approach is speed and accuracy, as no time is spent on drawing up written specifications. Avoids inherent difficulties associated with: Incompleteness contradictions ambiguities
Software life cycle15 Prototyping Model Version II Requirements Maintenance Development Maintenance Rapid Prototyping Verify Design Verify Implementation Test Integration Test Changed requirements Verify
Software life cycle16 Disadvantages of prototyping vClient expectations Few minor changes to the prototype will more than suffice their needs. They fail to realise that no consideration was given to the overall quality of the software in the rush to develop the prototype. vDeveloper shortcuts employ some of the inefficient algorithms or inappropriate programming languages used in developing the prototype. vLegal issues A prototype will hardly be acceptable in court in the event that the client does not agree that the developer has discharged his/her obligations. For this reason using the prototype as the software specification is normally reserved for software development within an organisation.
Software life cycle17 Incremental Model (IM) vDerives its name from the way in which the software is built. vThe model is designed, implemented and tested as a series of incremental builds until the product is finished. vA build consists of pieces of code from various modules that interact together to provide a specific function. vAt each stage of the IM a new build is coded and then integrated into the structure, which is tested as a whole. vNote that the product is only defined as finished when it satisfies all of its requirements.
Software life cycle18 Implement and test first build Implement, integrate and test successive builds until product is complete Maintenance Development Maintenance Incremental Model vThis model combines the elements of the waterfall model with the iterative philosophy of prototyping. vUnlike prototyping the IM focuses on the delivery of an operational product at the end of each increment. vThe first increment is usually the core product which addresses the basic requirements of the system. vSubsequent increments provide additional functionality. Incremental Model II
Software life cycle19 Incremental Model III - value-to-cost ratio vUsed to determine the developmental plan for the next increment The client assigns a value to each build not yet implemented The developer estimates cost of developing each build The resulting value-to-cost ratio is the criterion used for selecting which build is delivered next What are the advantages of this method?
Software life cycle20 Evolutionary Process Models vThe idea is evolutionary development using the waterfall model for each step is intended to help manage risks. vCharacteristics Don’t define the entire system in detail initially. The developers should only define the highest priority features. Define and implement those, then get feedback from users/customers With this knowledge, they should then go back to define and implement more features in smaller chunks.
Summary All these different models have their own advantages and disadvantages. Nevertheless, in the contemporary commercial software development world, the fusion of all these methodologies is incorporated. Timing is very crucial in software development. If a delay happens in the development phase, the market could be taken over by the competitor. Also if a 'bug' filled product is launched in a short period of time (quicker than the competitors), it may affect the reputation of the company. So, there should be a trade-off between the development time and the quality of the product. Customers don't expect a bug free product but they expect a user-friendly product. That results in Customer Ecstasy!
Task Using the Spiral model as an example an evolutionary process model, make the crucial distinction between the incremental models and the Evolutionary Model(s). You may use the online course notes for assistance.