Professional Documents
Culture Documents
CML
Module 1 Topics
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:1 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
based systems. Sophistication and complexity can produce dazzling results when a system
succeeds, but they can also pose huge problems for those who must build complex systems.
Popular books published during the 1970s and 1980s provide useful historical insight into
the changing perception of computers and software and their impact on our culture. Osborne
characterized a "new industrial revolution." Toffler called the advent of microelectronics part of
"the third wave of change" in human history, and Naisbitt predicted a transformation from an
industrial society to an "information society." Feigenbaum and McCorduck suggested that
information and knowledge (controlled by computers) would be the focal point for power in the
twenty-first century, and Stoll argued that the "electronic community" created by networks and
software was the key to knowledge interchange throughout the world.
As the 1990s began, Toffler described a "power shift" in which old power structures
disintegrate as computers and software lead to a "democratization of knowledge." Yourdon
worried that U.S. companies might loose their competitive edge in software related businesses
and predicted the decline and fall of the American programmer. Hammer and Champy argued
that information technologies were to play a pivotal role in the reengineering of the
corporation. During the mid-1990s, the pervasiveness of computers and software spawned a
rash of books by neo-Luddites. These authors demonized the computer, emphasizing legitimate
concerns but ignoring the profound benefits that have already been realized.
During the later 1990s, Yourdon re-evaluated the prospects for the software professional and
suggested the the rise and resurrection of the American programmer. As the Internet grew in
importance, his change of heart proved to be correct. As the twentieth century closed, the focus
shifted once more, this time to the impact of the Y2K time bomb . Although the predictions of
the Y2K doomsayers were incorrect, their popular writings drove home the pervasiveness of
software in our lives. Today, ubiquitous computing has spawned a generation of information
appliances that have broadband connectivity to the Web to provide a blanket of connectedness
over our homes, offices and motorways. Softwares role continues to expand.
The lone programmer of an earlier era has been replaced by a team of software specialists,
each focusing on one part of the technology required to deliver a complex application. And yet,
the same questions asked of the lone programmer are being asked when modern computer-based
systems are built:
Why does it take so long to get software finished?
Why are development costs so high?
Why can't we find all the errors before we give the software to customers?
Why do we continue to have difficulty in measuring progress as software is
being developed?
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:2 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:3 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
The changing Nature of Software can be discussed under these three suptopics:-
2.1. Defining Software
2.2. Software Application Domains
2.3 Legacy Software
2.1. Defining Software
Software is (1) instructions (computer programs) that when executed provide desired function and
performance, (2) data structures that enable the programs to adequately manipulate information, and (3)
documents that describe the operation and use of the programs.
To gain an understanding of software , it is important to examine the characteristics of software
that make it different from other things that human beings build. When hardware is built, the human
creative process (analysis, design, construction, testing) is ultimately translated into a physical form.
Software is a logical rather than a physical system element. Therefore, software has characteristics that
are considerably different than those of hardware and they are:
I. Software is developed or engineered, it is not manufactured in the classical sense.
Although some similarities exist between software development and hardware manufacture, the
two activities are fundamentally different. In both activities, high quality is achieved through good
design, but the manufacturing phase for hardware can introduce quality problems that are nonexistent
(or easily corrected) for software. Both activities are dependent on people, but the relationship between
people applied and work accomplished is entirely different. Both activities require the construction of a
"product" but the approaches are different. Software costs are concentrated in engineering. This means
that software projects cannot be managed as if they were manufacturing projects.
II. Software doesn't "wear out."
Figure 1.1 depicts failure rate as a function of time for hardware. The relationship, often called
the "bathtub curve," indicates that hardware exhibits relatively high failure rates early in its life;
defects are corrected and the failure rate drops to a steady-state level (ideally, quite low) for some
period of time. As time passes, however, the failure rate rises again as hardware components suffer
from the cumulative affects of dust, vibration, abuse, temperature extremes, and many other
environmental maladies. Stated simply, the hardware begins to wear out.
Software is not susceptible to the environmental maladies that cause hardware to wear out. In
theory, therefore, the failure rate curve for software should take the form of the idealized curve
shown in Figure 1.2. Undiscovered defects will cause high failure rates early in the life of a program.
However, these are corrected (ideally, without introducing other errors) and the curve flattens as
shown. However, the implication is clearsoftware doesn't wear out. But it does deteriorate!
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:4 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:5 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
III . Although the industry is moving toward component-based assembly, most software continues
to be custom built.
As an engineering discipline evolves, a collection of standard design components is created.
Standard screws and off-the-shelf integrated circuits are only two of thousands of standard components
that are used by mechanical and electrical engineers as they design new systems. The reusable
components have been created so that the engineer can concentrate on the truly innovative elements of a
design, that is, the parts of the design that represent something new. In the hardware world, component
reuse is a natural part of the engineering process. In the software world, it is something that has only
begun to be achieved on a broad scale.
A software component should be designed and implemented so that it can be reused in many
different programs. Modern reusable components encapsulate both data and the processing applied to
the data, enabling the software engineer to create new applications from reusable parts. For example,
today's graphical user interfaces are built using reusable components that enable the creation of graphics
windows, pull-down menus, and a wide variety of interaction mechanisms. The data structure and
processing detail required to build the interface are contained with a library of reusable components for
interface construction.
i. System software
System software is a collection of programs written to service other programs. Some system
software (e.g., compilers, editors, and file management utilities) process complex , but determinate,
information structures. Other systems applications (e.g., operating system components, drivers,
telecommunications processors) process largely indeterminate data. The system software area is
characterized by:-
Heavy interaction with computer hardware
Heavy usage by multiple users
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:6 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:7 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:8 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
4. Tools
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:9 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
1. Communication
Involves communication among the customer and other stake holders; encompasses
requirements gathering.
The purpose of communication is to understand stakeholders objectives for the project
and to gather requirements that help define software features and functions.
2. Planning
Planning activity creates a map that helps the software team as it makes journey.
This plan is called software project plan.
Software project plan defines the software engineering work by describing the technical
task to be conducted, the risks involved, resources that will be required, work products
to be produced , and a work schedule.
3. Modeling (Analyze, Design)
Encompasses the creation of models to better understand the requirements and the
design.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:10 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
Software process
Process Framework
Umbrella activities
Framework activity # 1
Software engineering action #1.1
Work tasks
Task sets Work products
Quality assurance points
. Project milestones
.
Software engineering action #1.k
Work tasks
Work products
Task sets Quality assurance points
Project milestones
.
.
.
Framework activity # n
Software engineering action #n.1
Work tasks
Task sets Work products
Quality assurance points
. Project milestones
.
Software engineering action #n.m
Work tasks
Task sets Work products
Quality assurance points
Project milestones
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:11 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
increment that provides customers with a subset of overall software features and functionality. As each
increment is produced, the software becomes more and more complete.
Software engineering process framework activities are complemented by a number of Umbrella
activities. Typical umbrella activities are:-
1. Software project tracking and control
2. Risk management
3. Software quality assurance
4. Technical reviews
5. Measurement
6. Software configuration management
7. Reusability management
8. Work product preparation and production
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:12 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
A process adopted for one project might be significantly different than a process adopted for another
project. Some of the differences are:-
1. Flow of activities, actions and tasks and interdependencies among them.
2. Degree to which actions and tasks are defined within each framework activity.
3. Degree to which work products are identified and required.
4. Degree to which customer and stakeholder are involved with the project.
5. Degree of detail and rigor with which process is described.
6. Degree to which team organization and roles are prescribed.
7. Manner in which quality assurance activities are applied.
8. Manner in which project tracking and control activities are applied.
9. Level of autonomy given to the software team.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:13 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
Software process
Process Framework
Umbrella activities
Framework activity # 1
Software engineering action #1.1
Work tasks
Task sets Work products
Quality assurance points
. Project milestones
.
Software engineering action #1.k
Work tasks
Work products
Task sets Quality assurance points
Project milestones
.
.
.
Framework activity # n
Software engineering action #n.1
Work tasks
Task sets Work products
Quality assurance points
. Project milestones
.
Software engineering action #n.m
Work tasks
Task sets Work products
Quality assurance points
Project milestones
The framework activities and the actions and tasks that occur within each activity are organized with
respect to sequence and time. This aspect is called process flow. Different kinds of Process flows are:
1. Linear process flow
2. iterative process flow
3. evolutionary process flow
4. parallel process flow
Linear process flow executes each of the five activities in sequence.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:14 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
An iterative process flow repeats one or more of the activities before proceeding to the next.
An evolutionary process flow executes the activities in a circular manner. Each circuit leads to
a more complete version of the software.
A parallel process flow executes one or more activities in parallel with other activities
( modeling for one aspect of the software in parallel with construction of another aspect of the
software.
Figure (b) shows Different kinds of process flow
A software team would need significantly have to carry out these three steps as a part of software
process:-
5.1 Defining a framework Activity
5.2 Identifying a Task set
5.3 Process Patterns
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:15 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:16 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
17. Note constraints and restrictions that will be placed on the system.
18. Discuss methods for validating the system.
5.2 Identifying a Task set
Refer figure 2.3 , each software engineering action can be represented by a number of different
tasks. Each task set consists of:-
A list of the software engineering work task to be accomplished .
A list of the work products to be produced.
A list of the quality assurance points to be applied.
Project milestones
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:17 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
8. Related patterns
9. Known Uses and Examples
1.Pattern name
Pattern is given a meaningful name describing it within the context of software process.
2.Forces
Forces describe the environment in which pattern was encountered.
3.Type
The pattern type can be of 3 types:-
a. Stage Pattern- It defines a problem associated with a framework activity for the
process. It includes multiple task patterns as well. For example,
EstablishingCommunication would incorporate the task pattern RequirementsGathering
and others.
b. Task Patterns- defines a problem associated with a software engineering action or work
task and relevant to successful software engineering practice.
c. Phase Pattern-define the sequence of framework activities that occur with the process,
even when the overall flow of activities is iterative in nature. Example includes Sprial
Model or Prototyping.
4.Initial context
Initial context describes the condition under which process pattern is applied. Before the
initiation of pattern ,
1. What activities have occurred?
2. What information already existed?
3. Entry state of the process.
5.Problem
Problem describes the problem to be solved by the pattern.
6.Solution
Solution describes how to implement pattern successfully. This section describes how the
initial state of the process is modified as result of initiation of the pattern.
7.Resulting Context
Resulting Context describes the state after application of process pattern,
1. What activities have occurred after application of pattern?
2. What information have been developed?
3. Exit state of the process.
8. Related patterns
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:18 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
Related patterns provide a list of all process patterns that are directly related to a particular
pattern.
6. Process Assessment
Software Process cannot guarantee that software will be delivered on time, meet the needs, or
has the desired technical characteristics. However, the process can be assessed to ensure that it
meets a set of basic process criteria that have been shown to be essential for a successful software
engineering. Few approaches for assessing a software process are:-
Standard CMMI Assessment Method for Process Improvement (SCAMPI) provides
a five step process assessment model that incorporates five phases: initiating, diagnosing,
establishing, acting and learning.
CMM-Based Appraisal for Internal Process Improvement (CBA IPI)provides a
diagnostic technique for assessing the relative maturity of a software organization; uses the
SEI CMM as the basis for the assessment.
SPICEThe SPICE (ISO/IEC15504) standard defines a set of requirements for software
process assessment. The intent of the standard is to assist organizations in developing an
objective evaluation of the efficacy of any defined software process.
ISO 9001:2000 for Softwarea generic standard that applies to any organization that
wants to improve the overall quality of the products, systems, or services that it provides.
Therefore, the standard is directly applicable to software organizations and companies
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:19 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
4. Development
5. Postmortem
1. Planning
This activity isolates requirements and develops both size and resource estimates. In
addition, a defect estimate (the number of defects projected for the work) is made. All metrics
are recorded on worksheets or templates. Finally, development tasks are identified and a
project schedule is created.
2. High-level design
External specifications for each component to be constructed are developed and a
component design is created. Prototypes are built when uncertainty exists. All issues are
recorded and tracked.
3. High-level design review
Formal verification methods are applied to uncover errors in the design. Metrics are
maintained for all important tasks and work results.
4. Development
The component level design is refined and reviewed. Code is generated, reviewed,
compiled, and tested. Metrics are maintained for all important tasks and work results.
5. Postmortem
Using the measures and metrics collected (this is a substantial amount of data that should be
analyzed statistically), the effectiveness of the process is determined. Measures and metrics
should provide guidance for modifying the process to improve its effectiveness.
Advantages of PSP:-
1. Identify Errors early.
2. Disciplined metrices based approach.
3. Software quality and productivity is increased.
Disadvantages of PSP:-
1. A high level of commitment is required.
2. Training cost and time required both are high.
3. PSP is intellectually very challenging.
(ii) Team Software Process (TSP)
Goal of TSP is to build a self-directed project team that organizes itself to produce high-
quality team that organizes itself to produce high-quality software.
Characteristics of self-directed team are:-
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:20 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:21 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
TSP makes use of wide variety of scripts, forms and standards that guides team members in their
work. Scripts define specific process activities. TSP identifies that the best software teams are self-
directed. TSP is a rigorous approach to software engineering and provides quantifiable benefits in
productivity and quality.
8. Product and Process
If the process is weak, the end product will undoubtedly suffer, but an obsessive overreliance on
process is also dangerous. A creative software professional should also derive as much satisfaction from
the process as the end-product. The work of software people will change in the years ahead. The duality
of product and process is one important element in keeping creative people engaged as the transition
from programming to software engineering is finalized. Product and process decomposition occur
simultaneously as the project plan evolves. Software quality encompasses many different product and
process factors and related metrics.
9. The Capability Maturity Model Integration (CMMI)
SEI developed a comprehensive process meta-model that is predicated on a set of system &
software engineering capabilities that should be present as organizations reach different levels
of process capability and maturity
To achieve these capabilities, the SEI contends that an organization should develop a process
model that conforms to the Capability Maturity Model Integration (CMMI).
CMMI represents a process meta-model in two different ways: (1) as a continuous model (2) as
a staged model.
(1) Continuous model of CMMI defines 5 capability levels.
The continuous CMMI meta-model describes a process in two dimensions as shown in
Figure 9.1 PP Project Planning
REQM Requirements management
MA Measurement & Analysis
CM Configuration management
PPQA Process and product QA
5
4
Capability level
3
2
1
0
PP REQM MA CM PPQA others
Process area
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:22 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
1. Level 0: Incomplete
The process area is either not performed or does not achieve all goals and objectives by
CMMI for level 1 capability.
2. Level 1: Performed
All specific goals of process area (as defined by CMMI) are satisfied. Work tasks
required to produce work products are being conducted
3. Level 2: Managed
Level 1 criteria satisfied. In addition, all work associated with process area conforms to
an organizationally defined policy
4. Level 3: Defined
Level 2 criteria achieved. In addition, process is tailored from organizations set of
standard processes according to organizations tailoring guidelines, and contributes work
products, measures, and other process-improvement information to the organizational
process assets.
5. Level 4: Quantitatively managed
Level 3 criteria achieved. In addition, process area is controlled and improved using
measurement and quantitative assessment
6. Level 5: Optimized
Level 4 criteria achieved. In addition, process area adapted and optimized using
quantitative (statistical) means to meet changing customer needs and to continually
improve the efficacy of the process area under consideration.
The CMMI defines each process area in terms of specific goals(SG) and the specific
practices(SP) required to achieve these goals.
a. Specific goals establish the characteristics that must exist if the activities implied by a
process area are to be effective.
b. Specific practices refine a goal into a set of process-related activities.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:23 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
The CMMI also defines each process area in terms of generic goals(GG) and related generic
practices(GP) required to achieve these goals.
The Specific Goals (SG) and Specific Practices(SP) associate with Project Planning activity
are:-
SG 1 Establish Estimates
SP 1.1-1 Estimate the Scope of the Project
SP 1.2-1 Establish Estimates of Work Product and Task Attributes
SP 1.3-1 Define Project Lifecycle
SP 1.4-1 Determine Estimates of Effort and Cost
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:24 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:25 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
To achieve a maturity level, the specific goals and practices associated with a set of process
areas must be achieved. The relationship between maturity levels and process areas is shown in
Figure 9.3.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:26 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:27 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:28 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
2 Single-source integration occurs when a single CASE tools vendor integrates a number of
different tools and sells them as a package. Although this approach is quite effective, the closed
architecture of most single-source environments precludes easy addition of tools from other
vendors.
3 At the high end of the integration spectrum is the integrated project support environment (IPSE).
Standards for each of the building blocks described previously have been created. CASE tool vendors
use IPSE standards to build tools that will be compatible with the IPSE and therefore compatible with
one another.
(c) A TAXONOMY OF CASE TOOLS
CASE tools can be classified by function, by their role as instruments for managers or technical people,
by their use in the various steps of the software engineering process, by the environment architecture
(hardware and software) that supports them, or even by their origin or cost . The taxonomy presented here
uses function as a primary criterion.
1 Business process engineering tools
Business process engineering tools provide a "meta-model" from which specific information
systems are derived.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:29 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:30 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:31 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
PRO/SIM (prototyping and simulation) tools provide the software engineer with the ability to
predict the behavior of a real-time system prior to the time that it is built.
In addition, these tools enable the software engineer to develop mock-ups of the real-time
system, allowing the customer to gain insight into the function, operation and response prior to
actual implementation.
15 Interface design and development tools
Interface design and development tools are actually a tool kit of software components (classes)
such as menus, buttons, window structures, icons, scrolling mechanisms, device drivers, and so
forth.
16 Prototyping tools
A variety of different prototyping tools can be used.
Screen painters enable a software engineer to define screen layout rapidly for interactive
applications.
A variety of fourth generation tools have prototyping features.
17 Programming tools
The programming tools category encompasses the compilers, editors, and debuggers that are
available to support most conventional programming languages.
18 Web development tools
The activities associated with Web engineering are supported by a variety of tools for WebApp
development.
These include tools that assist in the generation of text, graphics, forms, scripts, applets, and
other elements of a Web page.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:32 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
Three different types of static testing tools are used in the industry: code based testing tools, specialized
testing languages, and requirements-based testing tools.
a) Code-based testing tools accept source code (or PDL) as input and perform a number of
analyses that result in the generation of test cases.
b) Specialized testing languages (e.g., ATLAS) enable a software engineer to write detailed
test specifications that describe each test case and the logistics for its execution.
c) Requirements-based testing tools isolate specific user requirements and suggest test
cases (or classes of tests) that will exercise the requirements.
21 Dynamic analysis tools
Dynamic testing tools interact with an executing program, checking path coverage, testing assertions
about the value of specific variables, and otherwise instrumenting the execution flow of the program.
Dynamic tools can be either intrusive or nonintrusive.
22 Test management tools
Test management tools are used to control and coordinate software testing for each of the major
testing steps.
Tools in this category manage and coordinate regression testing, perform comparisons that
ascertain differences between actual and expected output, and conduct batch testing of programs
with interactive human/computer interfaces.
23 Client/server testing tools
The c/s environment demands specialized testing tools that exercise the graphical user interface
and the network communications requirements for client and server.
24 Reengineering tools
The reengineering tools category can be subdivided into the following functions:
o Reverse engineering to specification tools take source code as input and generate
graphical structured analysis and design models, where-used lists, and other design
information.
o Code restructuring and analysis tools analyze program syntax, generate a control flow
graph, and automatically generate a structured program.
o On-line system reengineering tools are used to modify on-line database systems.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:33 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
PROCESS MODELS
Prescriptive Process Models defines a distinct set of activities, actions, tasks, milestones, and work
products that are required to engineer high-quality software.
Prescriptive Process Models are traditional process models and they provide structure to
software engineering work and provide an effective road map for software teams.
The dominant issues in these models are order and project consistency.
These models are collectively named Prescriptive Process Models because they prescribe a
set of process elements for each project, some of the process elements are:-
Framework activities
Software engineering actions
Tasks
Work Products
Quality Assurance
Change Control Mechanism
Each process model prescribes a process flow.
In the following sections some of the prescriptive process models are described namely:-
1) Waterfall Model
2) Incremental Process Model
3) Evolutionary Process Model
4) Concurrent Development Model
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:34 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
Prescriptive Process
Models
Concurrent
Incremental Process Evolutionary Process
Waterfall Model Development Model
Model Model
Rapid Application
Prototyping Spiral Model
Development (RAD)
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:35 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:36 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:37 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:38 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
4. Application Generation
5. Testing & turnover
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:39 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
The data objects defined in the data modeling phase are transformed to achieve the
information flow necessary to implement a business function. Processing descriptions are
created for adding, modifying, deleting, or retrieving a data object.
4.Application generation
RAD assumes the use of fourth generation techniques. Rather than creating software
using conventional third generation programming languages the RAD process works to reuse
existing program components (when possible) or create reusable components (when necessary).
In all cases, automated tools are used to facilitate construction of the software.
5.Testing and turnover
Since the RAD process emphasizes reuse, many of the program components have
already been tested. This reduces overall testing time. However, new components must be tested
and all interfaces must be fully exercised.
viii. Drawbacks of RAD:-
a. For large, but scalable projects, RAD requires sufficient human resources.
b. RAD projects will fail if developers and customers are not committed to the rapid-
fire activities.
c. If a system cannot be properly modularized, building the components necessary
for RAD will be problematic.
d. If high performance is an issue, and performance is to be achieved through tuning
the interfaces to system components, the RAD approach may not work.
e. RAD may not be appropriate when technical risks are high.
11.3 Evolutionary Process Models
i. Evolutionary models are iterative in nature.
ii. Iterative nature of this model enables us to develop increasingly more complete version
of the software.
iii. Two types are introduced, namely Prototyping and Spiral.
11.3(i) Prototyping Model
Prototyping model is used when : -
Customer defines a set of general objectives but does not identify detailed
requirements for functions and features or Developer may be unsure of the
efficiency of an algorithm, the form that human computer interaction should
take.
What are the steps involved:-
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:40 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:41 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
iii. It provides the potential for rapid development of increasingly more complete versions of
the software.
iv. It is a risk-driven process model generator.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:42 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:43 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
3. The spiral model uses prototyping as a risk reduction mechanism but, more important,
enables the developer to apply the prototyping approach at any stage in the evolution of
the product.
4. It maintains the systematic stepwise approach suggested by the classic life cycle but
incorporates it into an iterative framework that more realistically reflects the real world.
5. Direct consideration of technical risks at all stages of the project and, if properly applied,
should reduce risks before they become problematic.
xiii. Dangers of using Spiral Model:-
1. It may be difficult to convince customers (particularly in contract situations) that the
evolutionary approach is controllable.
2. It demands considerable risk assessment expertise and relies on this expertise for success.
3. If a major risk is not uncovered and managed, problems will undoubtedly occur.
4. Finally, the model has not been used as widely as the linear sequential or prototyping
paradigms. It will take a number of years before efficacy of this important paradigm can be
determined with absolute certainty.
11.4 Concurrent Development Model
1. In Concurrent Development Model each of the activities involved in software engineering
process are represented using different states.
2. The concurrent development model is sometimes called concurrent engineering.
3. All activities exist concurrently but reside in different states.
4. It defines a series of events that will trigger transitions from state to states.
5. Applicable to all types of s/w development
6. Defines a network of activities.
7. Events generated at one point in the process network trigger transitions among the states.
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:44 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:45 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
1. Specialized Process Models take on many of the characteristics of one or more of the
conventional models
2. These models are tend to be applied when a narrowly defined software engineering
approach is chosen
3. Three kinds of Specialized Process Models are:-
a. Component-Based Development
b. The Formal Methods Model
c. Aspect-Oriented Software Development
a. Component-Based Development
Commercial off-the-shelf (COTS) software components can be used.
Components should have well-defined interfaces.
Incorporates many of the characteristics of the spiral model.
Evolutionary in nature.
Candidate components should be identified first.
Components can be designed as either conventional software modules or object-oriented
classes or packages of classes
b.The Formal Methods Model
Encompasses a set of activities that leads to formal mathematical specification of
computer software
Have provision to apply a rigorous, mathematical notation.
Ambiguity, incompleteness, and inconsistency can be discovered and corrected more
easily not through ad hoc review, but through the application of mathematical analysis
Offers the promise of defect-free software
Cleanroom Software Engineering is a variation of the Formal Methods Model.
Drawbacks of Formal Methods Model:-
The development of formal models is currently quite time-consuming and
expensive.
Extensive training is required.
It is difficult to use the models as a communication mechanism for technically
unsophisticated customers.
c. Aspect-Oriented Software Development
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:46 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:47 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:48 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:49 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
deployment model
test model
Transition
Delivered software
beta test reports
general user feedback
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:50 Prepared By:
Merin Mary Philip
Dept of Computer Science and Engineering
CML
__________________________________________________________________________________________
CS010 605 /SOFTWARE ENGINEERING Page No:51 Prepared By:
Merin Mary Philip