Software Process Models

Réussis tes devoirs et examens dès maintenant avec Quizwiz!

What is software Process

n "Software process is a set of activities and associated results which lead to the production of a software product" -[Sommerville ] n Fundamental activities which are common to all software processes n Software specification: define functionality of the software and constraints on its operation n Design and implementation: meet the specification n Software Validation: it does what customer wants n Software Evolution: evolve to meet changing customer needs

The Rational Unified Process (RUP)

n A merged development process: n Use-case driven n Architecture-centric n Iterative and incremental n Relies on the UML n Supported by ROSE (Rational Object- Oriented Software Engineering)

Extreme programming

n An approach to development based on the development and delivery of very small increments of functionality. n Relies on constant code improvement, user involvement in the development team and pairwise programming.

Evolutionary Model -1

n Based on idea of developing an initial implementation, exposing this to user comment and refining this through many versions until an adequate system has been developed. n Rather than have separate specification, development and validation activities, these are carried out concurrently with rapid feedback across these activities

Two types of evolutionary development:

n Exploratory development n Objective: Work w/ customers to explore their requirements and deliver a final system n Development starts w/ the parts of the system which are understood n System evolves by adding new features as they are proposed by the customer n Throw-away prototyping n Objective: to understand the customer's requirements and hence develop a better requirements definition n Prototype concentrates on experimenting w/ those parts of requirements which are poorly understood

Drawbacks of waterfall mode

n It doesn't reflect the way code is really developed, except for well-understood problems n No insight into how each activity transforms one artifact to another, such as requirements to design - thus, no guidance on how to handle changes to products and activities n Did not treat software as a problem-solving process: presenting a manufacture view of software development n High risk for new systems: specification & design

Software Process Models

n Many process models are described in literature n Some are prescriptions for the way software development should progress n Others are descriptions of the way software development is done in actuality n Why modeling a process? --n Let the team have common understanding of the activities, resources, and constrains involved --n Help the development team find inconsistencies, redundancies, and omissions in the process and in its constituent parts. ---n Model should reflect the goals of development (e.g. high quality), finding faults earlier, and meet requirement ---n Every process should be tailored for the specific situation in which it will be used. Building a process model helps the development team understand where that tailoring is to occur

Waterfall Model -1

n One of the first models to be proposed [Royce 1970] n Stages are depicted as cascading from one to another n One development stage should be completed before the next begins n It presents a very high-level view of what goes on during development - sequence of events the developers expect to encounter n Associate with each process activity were milestones and deliverables

The meaning of Process

n Process - a set of ordered tasks n A series of steps involving activities, constraints, and resources that produce an intended output of some kind n When the process involves the building of some product, we refer to the process as Life Cycle n Software development process is called Software Life Cycle n It describes the life of a software product from its conception to its implementation, delivery, use, and maintenance

Process characteristics

n Process describes all of the major activities n Process uses resources, subject to a set of constraints (e.g. scheduling), and produce intermediate and final products n May be composed of subprocesses that are linked in someway n Each process activity has en try and exit criteria, so that we know when the activity begins and ends n The activities are organized in a sequence n Every process has a set of guiding principles that explain the goals of each activity n Constraints or controls may apply to an activity, resources, or product

Spiral development

n Process is represented as a spiral rather than as a sequence of activities with backtracking. n Each loop in the spiral represents a phase in the process. n No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required. n Risks are explicitly assessed and resolved throughout the process.

Rapid-Prototyping Model -1

n Rapid prototype is working model that functionally equivalent to a subset of product n First step in this model is to build a rapid prototype n Often, the user interface is built and tested, the users understand what the new system will be like; designers get better sense of how users like to interact with the system n Major kinks in the requirements are addressed and fixed well before the requirements are officially validated during system testing

Incremental delivery

n Rather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality. n User requirements are prioritised and the highest priority requirements are included in early increments. n Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve.

Summary

n The software process includes all activities of software engineering n There are several process models, sharing the common and essential activities of speciation, development, testing, and evolution Different models have their advantages and drawbacks, know how to select which model to use

Objectives

n Understand the concept of a software process and a software process model n Understand several different software development process models n Understand the advantage and disadvantage of each models

Waterfall Model -3

n Waterfall model can be very helpful in helping developers layout what need to do n Its simplicity makes it easy to explain to customers who aren't familiar with SE development n It makes explicit the intermediate products needed in order to begin the next stage n Low risk for repeated products and processes n Many other, more complex models are really just embellishments of the waterfall, incorporating feedback loops and extra activities


Ensembles d'études connexes

Leadership in Leisure Services_CH5 Communication Skills for Leaders

View Set

Delegated, Reserved, Concurrent and Denied Powers

View Set