0% found this document useful (0 votes)
54 views43 pages

Chapt2 SE

The document provides an overview of software process models. It describes the linear sequential model, prototyping model, RAD model, incremental model, and spiral model. The linear sequential model represents a waterfall approach with sequential phases of requirements, design, implementation, testing, and maintenance. The prototyping model focuses on building prototypes to refine requirements. The RAD model takes a rapid, incremental approach using component-based development. The incremental and spiral models incorporate iteration and incremental releases to allow for changes during production.

Uploaded by

Vital Amin
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views43 pages

Chapt2 SE

The document provides an overview of software process models. It describes the linear sequential model, prototyping model, RAD model, incremental model, and spiral model. The linear sequential model represents a waterfall approach with sequential phases of requirements, design, implementation, testing, and maintenance. The prototyping model focuses on building prototypes to refine requirements. The RAD model takes a rapid, incremental approach using component-based development. The incremental and spiral models incorporate iteration and incremental releases to allow for changes during production.

Uploaded by

Vital Amin
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 43

Chapter 2 The Process

What is Software Process?


A

framework for the tasks that are required to build high-quality software.

Is Process synonym with SE?


The

answer is yes and no. A software process defines the approach that is taken as software is engineered. But software engineering also encompasses technologies that populates the process technical methods and automated tools.

2.1 Software Engineering: A Layered Technology


Software engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines. [Fritz Beuer]
Lack of software quality, customer satisfaction, timely product delivery, importance of measurement and metrics, and mature process.

SE: A Layered Technology


Software

engineering: (1) The application of a systematic, disciplined, quantifiable approach to the development , operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approach as in (1). [IEEE]

A Layered Technology
Software Engineering Software Engineering tools methods process model a quality focus

A quality focus
Continuous

process improvement Bedrock that supports software engineering

Process
Is

the foundation of software engineering Defines a framework for a set of key process areas (KPAs)
Effective delivery of SE technology Management control of software project Context of technical methods applied Work products Milestones, Quality ensured Proper change management

Methods
Provide

technical how-tos for building software. Encompass a broad array of tasks that include requirements analysis, program construction, testing, and support. Rely on a set of basic principles that govern each area of the technology and include modeling activities and other descriptive techniques

Tools
Provide

automated or semiautomated support for the process and the methods. CASE: computer-aided software engineering is a system for the support of software development.
Combines SW, HW, and a SE database (a repository containing important information about analysis, design, program construction, and testing)

A Generic View of SE
Engineering

is analysis, design, construction, verification, and management of technical (or social) entities. Entity computer software A software engineering process must be defined: definition phase, development phase, and support phase.

Definition Phase
Focuses on what What information is to be processed? What function and performance are desired? What system behavior can be expected? Interface, design constraints, validation criteria identify key requirements of the system and SW.

Development Phase
Focuses on how How data are to be constructed? How function is to be implemented within a software architecture? Procedural details, interfaces, design programming, testing. Three technical tasks: software design, code generation, software testing.

Support Phase
Focuses

on change associated with error correction, adaptations, changes. Four types of changes:
Correction Corrective maintenance Adaptation Adaptive maintenance Enhancement Perfective maintenance Prevention Preventive maintenance, often called Software Engineering more easily corrected, adapted, and enhance.

Umbrella Activities
Software

project tracking and control Formal technical review Software quality assurance Software configuration management Document preparation and production Reusability management Measurement Risk management

A Common Process Framework


Common process framework Framework activities work tasks work products milestones & deliverables QA checkpoints Umbrella Activities

Process Maturity
Software

Engineering Institute (SEI) has developed a comprehensive model predicated on a software engineering capabilities that should be present as organization reach different levels of process maturity. Called Capability Maturity Model (CMM).

CMM

Level 1: Initial
The software process is characterized ad hoc and occasionally chaotic.

Level 2: Repeatable
Basic project management process are established to track cost, schedule, and functionality.

Level 3: Defined
the software process for both management and engineering activities is documented, standardized and integrated into an organizationwide software process.

CMM (Contd)
Level

4: Managed

Detailed measures of the software process and product quality are collected. Both SW process and product are quantitatively understood and controlled using detailed measures.
Level

5: Optimizing

Continuous process improvement is enabled by quantitative feedback from the process and from testing innovative ideas and technologies.

Key Process Areas (KPAs)


Each KPA is described by identifying the following characteristics: Goals Commitments Abilities Activities Methods for monitoring implementation Methods for verifying implementation

KPA (Contd)
Each

of the KPAs is defined by a set of key practices that contribute to satisfying its goals. The key practices are policies, procedures, and activities. Key indicators: those of key practices or components of key practices that offer the greatest insight into whether the goals of a key process have been achieved.

2.3 Software Process Models


A

software engineer must incorporate a development strategy that encompasses the process methods, and tools layers. This strategy is often referred to as a process model or a software engineering paradigm.
A

process model is chosen based on the nature of project and application, the methods and tools to be used, and

Process as Problem Solving

2.4 The Linear Sequential Model


Sometimes

called the classic life cycle or the waterfall model.

The Linear Sequential Model


Activities: System/information engineering and modeling
Requirements gathering Interface with other elements: HW, SW, database
Software

requirement analysis
behavior, performance and

Understand nature of SW to be built


Function,

interface.

The Linear Sequential Model


Design:

A multi-step process focuses on data structure, SW architecture, interface representations, and procedural (algorithmic) detail. The design process translates requirements into a representation of the SW that can be assessed for quality before coding begins. Documented

The Linear Sequential Model


Code

generation

Design machine readable form


Testing

Test all functions, both internal/external Uncover errors


Support/maintenance

Deal with all kinds of changes that may be occurred after SW delivery

2.5 The Prototyping Model


The

prototype can serve as the first system Users get a feel for the actual system and developers get to build something immediately A customer defines a set of general objectives for SW but does not identify detailed input, processing, or output requirements.

The Prototyping Model

Prototyping

The Prototyping Model


This approach can be problematic: The customer misunderstands as a working version with a few fixes. The developer often makes implementation compromises in order to get a prototype to work quickly. The customer and developer must agree that the prototype is built to serve as a mechanism for defining

The RAD Model


Is a high-speed adaptation of the linear sequential model in which rapid development is achieved by using component-based construction. Is an incremental software development process model that emphasizes an extremely short development cycle.

The RAD Model


Phases: Business modeling Data modeling Process modeling Application generation: 4GT Testing and turnover

The RAD Model

RAD

The RAD Model


Drawbacks: RAD requires sufficient human resources to create the right number of RAD team, for a large project. RAD requires strong commitment from developers and customers in much abbreviated time frame. A system must be properly modularized. RAD is not appropriate when technical risks are high.

Evolutionary Software Process Model

Classic process models are not designed to deliver a production system

due to their assumptions on: - A complete system will be delivered after the linear sequence is completed.
- Customer knows what they want at the early stage.

The reality in a software production process --> - A lot of requirements changes during the production course - A lot of iterative activities and work because of the evolutionary - nature of software production To cope with the product evolution, several evolution process models are proposed: - the incremental model - the spiral model

Incremental Model

The Incremental Model combines elements of the linear sequential model with the iterative philosophy of prototyping. The first increment is a core product. The incremental process model: - Iterative in nature, like prototyping. - Focus on the delivery of a operational product with each increment. - Particular useful when staffing is unavailable for a complete implementation by the business deadline.

The Incremental Model

Spiral Model
It provides the potential for rapid development of incremental versions of the software. SW is developed in a series of incremental releases. During early iterations, the incremental release might be a paper model or prototype. During later iterations increasingly more complete versions of the engineered system are produced.

The Spiral Model


A spiral model is divided into a number of framework activities, also called task regions. Each of the regions is populated by a set of work tasks, called a task set. Spiral model contains six task regions: - Customer communication: tasks required to

establish effective communication between developer and customer. - Planning: tasks required to define resources, timelines and other project related information.

Spiral Model
technical and management risks. - Engineering: tasks required to build one or more representations of the application. - Construction and release: Tasks required to construct, test, install and provide user support (documentation & training). - Customer Evaluation: tasks required to obtain customer feedback based on evaluation of the sw representations created during the engineering stage and implemented during the installation phase.

-Risk Analysis: tasks required to assess both

Spiral Model
The spiral model -- a realistic approach to the development of large scale systems and software. may be difficult to convince customers that the evolutionary approach is controllable. -- a relatively new model, and has not used as widely as the linear sequential or prototyping paradigms.

The Spiral Model

Concept development Projects New Product development Projects Product enhancement projects Product maintenance projects

You might also like