0 ratings0% found this document useful (0 votes) 676 views57 pagesOose Unit-1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here.
Available Formats
Download as PDF or read online on Scribd
| suBECT CODE: CCS356
Strictly as per Revised Syllabus of
_ANNA UNIVERSITY.
Choice Based Credit System (CBCS)
Semester - VI (CSE / IT / CS&BS)
OBJECT ORIENTED
| SOFTWARE ENGINEERING
Mrs. Anuradha A. Puntambekar
ME. (Computer)
Formerly Assistant Professor in
PE.S. Modern College of Engineering,
Pune
®
PUBLICATIONS
‘An Up-Thrust for KnowledgeSYLLABUS
Object Oriented Software Engineering - [CCS356]
UNITI SOFTWARE PROCESS AND AGILE DEVELOPMENT
Introduction to Software Engineering, Software Process, Perspective and Specialized Process
Models - Introduction to Agility - Agile process-Extreme programming - XP Process - Case
Study. (Chapter - 1)
UNITIT REQUIREMENTS ANALYSIS AND SPECIFICATION
Requirement analysis and specification - Requirements gathering and analysis - Software
Requirement Specification - Formal system specification - Finite State Machines - Petrinets -
Object modelling using UML - Use case Model - Class diagrams - Interaction diagrams -
Activity diagrams - State chart diagrams - Functional modelling - Data Flow Diagram - CASE
TOOLS. (Chapter - 2)
UNIT HI =SOFTWARE DESIGN
Software design - Design process - Design concepts - Coupling - Cohesion - Functional
independence - Design patterns - Model-view-controller - Publish-subscribe - Adapter -
Command - Strategy - Observer - Proxy - Facade - Architectural styles - Layered - Client
Server - Tiered - Pipe and filter - User interface design - Case Study. (Chapter - 3)
UNITIV SOFTWARE TESTING AND MAINTENANCE
Testing - Unit testing - Black box testing - White box testing - Integration and System testing
~ Regression testing - Debugging - Program analysis - Symbolic execution - Model Checking
~ Case Study. (Chapter - 4)
UNITY PROJECT MANAGEMENT
Software Project Management - Software Configuration Management - Project Scheduling-
DevOps : Motivation - Cloud as a platform - Operations - Deployment Pipeline : Overall
Architecture Building and Testing - Deployment - Tools - Case Study, (Chapter - 5)
(iv)TABLE OF CONTENTS
a
ter-1 Sof
Chap’ oftware Process and Agile Development (1-1) to (1-46)
a. Introduction to Software Engineering.
1.1.1 Defining Software
1.12 Software Characteristics
1.13 Categories of Software...
1.2 Goals and Objectives of Software...
1.3 _ Difference between Software Product and Program..
1.4 _ Layered Technology...
1.5 Software Process...
1.5.1 Common Process Framework...
15.2 Capability Maturity Model (CMM)
1.6 Prescriptive Process Models...
1.6.1 Need for Process Model
1.6.2 Waterfall Model...
1.6.3 Incremental Process Model
1.6.3.1 Incremental Model
1.6.3.2 RAD Model
1.6.4 Evolutionary Process Model
1.6.4.1 Prototyping...
1.6.4.2 _ Spiral Model.
1.6.4.3 Concurrent Development Model.....
1.7 Specialized Model...
1.7.1 Component based Development
1.7.2 Formal Methods Model..
1.7.3. Aspect Oriented Software Development...
1.8 Introduction to Agility ...
1.9 Agile Process
1.9.1 Agile Principles.
1.10 Extreme Programming ..
1.10.1 XP Values ...
@)1.11 Two Marks Questions with Answers.
1.10.2 Process.
1.10.3 Industrial XP.
Chapter - 2 Requirements Analysis and Specification(2 - 1) to (2 - 178)
2.1
2.2
2.3
24
2.5
2.6
2.7
2.8
Introduction to Software Requirements...
Functional and Non Functional Requirements...
2.2.1 Functional Requirements
2.2.1.1 Problems Associated with Requirements ..
2.2.2 Non Functional Requirements...
2.2.2.1 Types of Non Functional Requirements.
2.2.2.2 Domain Requirements ...-enmeesn
2.2.3 Difference between Functional and Non Functional Requirements...
Requirements Engineering Process.
Feasibility Studies .,
Requirement Gathering and Analysis.
2.5.1 Stakeholders
2.5.2 Requirement Elicitation and Analysis Process.
2.5.3 Requirement Discovery
Software Requirement Specification...
2.6.1 Characteristics of SRS ....
2.6.2 Example of SRS...
Formal System Specification
2.7.1. Concept of Formal Technique.
2.7.2 Merits and Limitations of Formal Methods..
2.7.3 Model-Oriented Approach and Property-Oriented Approach...
2.7.4 Axiomatic Specification.
2.7.5 Algebraic Specificatio
Finite State Machines...
2.8.1 Formal Definition
2.8.2. Representation ....
2.8.3 Types of Finite State Machines
2.8.4 Applications of Finite State Machine.29
2.10 Object Modeling using UML.
2.11 Use Case Model
2.12 Class Diagrams..
2.13
ae
2.8.5 Deterministic Finite State Machine...
2.8.6 Non Deterministic Finite State Automata(NFA) .
Petri Nets...
2.10.1 What is UML ?....
2.10.2 UML Diagrams ...
2.11.1 Actors, Scenarios and Use Cases
2.11.2 Use Cases and Use Case Model ..
2.11.3 Relationships in Use Cases...
2.1.3.1 Includ
2.1.3.2, Extend
2.11.33, Generalization,
2.11.4 When to Use Use Cases ?
2.12.1 Attributes.
2.12.2 Relationships.
2.12.2.1 Associations...
2.12.2.2. Inheritance:
2.12.3 Aggregation and Composition
2.12.4 Visibility
2.12.5 Qualified Association
2.12.6 Association Class
2.12.7 Singleton Class
2.12.8 Active Class
2.12.9 When to use Class Diagrams ?.
2.12.10 Examples on Class Diagram
Interaction Diagrams ..
2.13.1 System Sequence Diagram ..
2.13.2 Relationship between Sequence Diagram and Use Cases...
2.13.3 Collaboration Diagram.
2.13.3.1 Objects and Link:
2.13.32 Messages and Stimulus.
2.13.3.3 “Active Objects
2.13.3.4 Communication Diagram ..
2.13.4 Strengths and Weakness of Sequence and Communication Diagrams.....2 - 104
spin aie See ea a ee ee2.14. Activity Diagrams...
2.15. State Chart Diagrams.
2.16 Functional Modelling.
2.17. Data Flow Diagram.
2.18 Two Marks Questions with Answers
2.13.5 Examples on Interaction Diagram...
2.13.6 When to use Sequence Diagram ?...
2.13.7 When to use Communication Diagram ?.
2.14.1 Activity and Actions
2.14.2 Initial and Final Activity
2.14.3 Activity Edge ..
2.14.3.1 Object Flows ....
2.14.4 Decision and Merge Points.
2.14.5 Fork and Joi
2.14.6 Activity Partitions or Swimlane.
2.14.7 Object Flow...
2.14.8 When to use Activity Diagrams ?..
2.14.9 Examples on Activity Diagram
2.15.1 Events, States and Transitions...
2.15.2 Applying State Machine Diagram ..
2.15.3 More Notations ...
2.15.4 When to use State Diagram ?
2.17.1 Rules for Designing DFD..
2.17.3 Difference between Structured Analysis and Object Oriented Analysis
Chapter-3 Software Design
3.1
3.2
3.3
Software Design.
3.1.1 Designing within the Context of Software Engineering.
Design Process
Design Concepts
3.3.1 Abstraction .
3.3.2, Modularity
3.3.3 Architecture
(viii)3.4
35
3.6
3.7
3.8
3.9
3.10
3.3.4 Refinement.
3.3.5 Patter
3.3.6 Information Hiding..
3.3.7 Functional Independence
3.3.7.1 Cohesion
3.3.7.2 Coupling...
3.3.8 Refactoring ..
3.3.9 Design Classes.
Design Patterns
3.4.1. Creational Pattern ..
3.4.2 Structural Pattern...
3.4.3. Behavioural Pattern...
Model-View-Controller...
Publisher-Subscriber Pattern.
Adapter.
Command
Strategy
Observer
Role of Architecture ...
Architectural Styles...
Layered Architectural Style ...
Client Server Style.
Tiered Architecture...
Pipe and Filter.
User Interface Design...
3.19.1 Golden Rules...
3.19.1: Place the User in Control
3,19.1.2. Reduce the User's Memory Load..
3.19.13 Make the Interface Consistent.
3.19.2 User Interface Analysis and Design ...
3,19.2.1 Interface Analysis and Design Model
3.19.2.2 The Process
3.19.3 Interface Analysis.3.20 Two Marks Questions with Answers
3.19.3. User Analysis.
3.19.3.2 Task Analysis and Modell
3.19.3.3 Analysis of Display Content.
3.19.3.4 Analysis of Work Environment
3.19.4 Interface Design.....
3.19.4.1 Application of Interface Design Steps
3.19.4.2 User Interface Design Pattern,
3.19.4.3 Design Issues.
Chapter - 4 Software Testing and Maintenance (4 - 1) to (4 - 62)
41
42
43
44
45
46
47
48
Introduction to Testing.
4.1.1 Testing Objectives.
4.1.2 Testing Principle
4.1.3. Why Testing is Important ?..
Internal and External Views of Testing...
Black Box Testin
4.3.1 Equivalence Partitionin,
4.3.2 Boundary Value Analysis (BVA) ..
White Box Testing.
4.4.1 Condition Testing
4.4.2 Loop Testing..
4.4.3. Basis Path Testin
Testing Strategies ..
Unit Testing .
Integration Testing
4.7.1. Top Down Integration Testing
4.7.2. Bottom Up Integration Testing,
4.7.3. Regression Testing.
4.7.4 Smoke Testin
System Testing..
4.8.1. Recovery Testing.
4.8.2 Security Testing.
4.8.3. Stress Testing.
@=
49
4.10
411
4.12
4.13
4.14
Chapter-5 Project Management
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
4.8.4 Performance Testing,
Validation Testing.
4.9.1 Acceptance Testing...
Debugging Techniques ...
4.10.1 Testing Vs. Debugging,
Program Analysis.
Symbolic Execution,
Model Checking
Two Marks Questions with Answers
Software Project Management
Management Spectrum.
5.2.1 The People.
5-2
5.2.2 The Product 5-3
5.2.3. The Process. 5-3
5.2.4 The Project.. 5-3
People.. 524
Stakeholder... ay
Team Leaders. Ses
Software Tea eae
Agile Team .. Sc6
Co-ordination and Communication Issues... os
Product 5-8
5.4.1 Software Scope... ca
5.4.2 Problem Decomposition .. Sa
Process... 5-9
5.5.1 Melding the Product and the Process 5-9
5.5.2 Process Decomposition _
Project ... 5-11
‘The WSHH Principle... 5-12
Project Estimation .. 5-13
(xi)5.8.1 Software Sizing...
5.8.2 Problem based Estimation.
5.8.3 LOC based Estimation
5.8.4 Example of LOC based Estimation...
5.8.5 Function Oriented Metrics.
5.8.6 Example of FP based Estimation.
5.9 Make Buy Decision
5.9.1 Outsourcing ..
5.10 COCOMO | Model.
5.11 COCOMO II Model
5.12 Software Configuration Management ..
5.12.1 SCM Basics.
5.12.11 Goals in Change Management...
5.12.1.2 Elements of Configuration Management System
5.12.13 Baselines
5.12.14 Software Configuration Items
5.12.2 SCM Repository ..
5.12.21 Role of Project Repository
5.12.2.2 Features...
5.12.3 SCM Process.
5.12.3.1 Identification of Objects in Software Configuration
5.12.3.2 Change Control
5.1233 Version Control
5.12.3.4 Configuration Audit.
5.12.3.5 Status Reporting
5.13 Project Scheduling
5.13.1 Relationship between People and Effort
5.13.2 Task Sets .
5.13.3 Task Network..
5.13.4 Time Line Chart...
5.13.5 Tracking Schedule..
5.13.6 Earned Value Analysi:
5.14 DevOps..
5.14.1 Why DevOps ?.
5.14.2 Motivation .
5.14.3 Benefits...
5.14.4 Agility and DevOps.5.15 Cloud as a Platform ..
5.16 Two Marks Questions with Answers ..
5.14.5 Deployment Pipeline ...
5.14.6 Overall Architecture..
5.14.7 DevOps Lifecycle.
5.14.8 Tools.
5.15.1 Operations...
Solved Model Question Paper (M- 1) to (M- 4)
(xiii)Software Process
and Agile Development
Syllabus
Introduction to software engineering, Software process, Perspective and specialized process
models, Introduction to Agility, Agile process, Extreme programming, XP process.
Contents
1.1 Introduction to Software Engineering...
1.2 Goals and Objectives of Software
1.3 Difference between Software Product and Program
14 Layered Technology... ann sore MBY-22, or cseosee seve Marks 7
1.5. Software Process : sevtneesesessDOC.°10,17,22, . Marks 7
1.6 Prescriptive Process Models... ‘May-05,06,09,15, 16,17, 18,22,
-Dec.-06,09,11,16,17,19,
i -Dec.-20,22,
17 Specialized Mode! _..... --svsene-DOC.+13,14,15,17,
.-.May-16,19, .
.. Marks 16
.. Marks 16
1.8 Introduction to Agility
1.9 Agile Process eS evn DOC-16,19, May-t9,
1.10 Extreme Programming ..May-19,22, Deo.
1.11 Two Marks Questions with Answers
.. Marks 4
0, 22, ...... Marks 13Sofware Engineering 1-2 Software Process and Agile Development
Introduction to Software Engineering
“Software engineering is a discipline in which theories, methods and tools are applied to
[develop professional software product."
In software engineering the systematic and organized approach is adopted. Based on
the nature of the Problem and development constraints various tools and techniques are
applied in order to develop quality software.
The definition of software engineering is based on two terms :
* Discipline : For finding the solution to the problem an Engineer applies appropriate
theories, methods and tools. While finding the solutions, Engineers must think of
_ the organizational and financial constraints. Within these constraints only, hé/she
has to find the solution.
* Product : The software product gets developed after following systematic theories,
methods and tools along with the appropriate management activities.
Defining Software
Software is nothing but a collection of computer programs and related documents that
are intended to provide desired features, functionalities and better performance.
Software products may be :
‘1. Generic - That means developed to be sold to a range of different customers.
2. Custom - That means developed for a single customer according to their
specification.
Software Characteristics
Software development is a logical activity and therefore it is important to understand
basic characteristics of software. Some important characteristics of software are :
© Software is engineered, not manufactured
© Software development and hardware development are two different activities,
oA good design is a backbone for both the activities. *
© Quality problems that occur in hardware manufacturing phase can not be removed
easily. On the other hand, during software development process such problems can
be rectified.
© Inboth the activities, developers are responsible for producing qualitative product.
b TECHNICAL PUBLICATIONS® «an sinthmiet for tnvancinn—_
ject ranted Software Engineering 1-3 Software Process and Agile Development
» Software does not ware out
o Inearly stage of hardware development process the failure rate is very high because
of manufacturing defects. But after correcting such defects the failure rate gets
reduced.
The failure rate remains constant for some period of time and again it starts
increasing because of environmental maladies (extreme temperature, dusts and
vibrations).
On the other hand software does not get affected from such environmental maladies.
Hence ideally it should have an “idealized curve”. But due to some undiscovered
errors the failure rate is high and drops down as soon as the errors get corrected.
0 Hence in failure rating of software the “actual curve” is as shown below :
Failure curves
(Bath tub curves)
Manufacturing
{Constant failure period
Fig. 1.1.1 Failure curves for hardware and software
© During the life of software if any change is made, some defects may get introduced.
© This causes failure rate to be high. Before the curve can return to original steady state
another change is requested and again the failure rate becomes high.
© Thus the failure curve looks like a spike. Thus frequent changes in software cause it
to deteriorate.
Another issue with software is that there are no spare parts for software.
If hardware component wears out it can be replaced by another component but it is
not possible in case of software.
© Therefore software maintenance is more difficult than the hardware maintenance.
TECHNICAL PUBLIGATIONS®- an upihrat for rowdy|
Z 1-4 ‘Software Process and Agile Development
Object Oriented Software Eng
Most software is custom built rather than being assembled from components
While developing any hardware product firstly the circuit design with desired
functioning properties is created.
© Then required hardware components such as ICs, capacitors and registers are
assembled according to the design, but this is not done while developing software
product.
Most of the software is custom built.
However, now the software development approach is getting changed and we look
for reusability of software components.
It is practiced to reuse algorithms and data structures.
Today software industry is trying to make library of reusable components.
For example : In today’s software, GUI is built using the reusable components such
as message windows, pull down menus and many more such components. The
approach is getting developed to use in-built components in the software. This
stream of software is popularly known as component engineering.
°
°
°
°
°
°
' Categories of Software
Software can be applied in a situation for which a predefined set of procedural steps
(algorithm) exists. Based on a complex growth of software it can be classified into
following categories.
System software - It is collection of programs written to service other programs.
Typical programs in this category are compiler, editors and assemblers. The purpose
of the system software is to establish a communication with the hardware.
Application software - It consists of standalone programs that are developed for
specific business need. This software may be supported by database systems.
Engineering/Scientific software - This software category has a wide range of
Programs from astronomy to volcanology, from automative stress analysis to space
shuttle orbital dynamics and from molecular biology to automated manufacturing.
This software is based on complex numeric computations.
Embedded software - This category consists of program that can reside within @
Product or system. Such software can be used to implement and control features
and functions for the end-user and for the system itself.
Web applications - Web application software consists of various web pages that ca
be retrieved by a browser. The web pages can be developed using programming
languages like JAVA, PERL, CGI, HTML, DHTML.
TECHNICAL PUBLICATIONS® - an up-thrust for knowledge‘Object Oriented Software Engineering 1-5 Software Process and Agile Development
« Artificial Intelligence software - This kind of software is based on knowledge
based expert systems, Typically, this software is useful in robotics, expert systems,
image and voice recognition, artificial neural networks, theorem proving and game
playing.
Pees tad
1. What is the impact of reusability in software development process? [XUAD SEM eAnetrer)
2. Write a note on the unique characters of a software. AU : Dec.-17, Marks 3
Goals and Objectives of Software
While developing software following are common objectives.
1. Satisfy users requirements - Many programmers simply don’t do what the end
user wants because they do not understand user requirements. Hence it becomes
necessary to understand the demand of end user and accordingly software should
be developed.
2.High reliability - Mistakes or bugs in a program can be expensive in terms of
human lives, money, and customer relation. For instance, Microsoft has faced many
problems because earlier release of windows has many problems. Thus software
should be delivered only if high reliability is achieved.
3. Low maintenance costs - Maintenance of software is an activity that can be done
only after delivering the software to the customer. Any small change in software
should not cause restructuring of whole software. This indicates that the design of
software has poor quality.
4. Delivery on time - It is very difficult to predict the exact time on which the software
can be completed. But a systematic development of software can lead to meet the
given deadline.
5. Low production costs - The software product should be cost effective.
6.High performance - The high performance software are expected to achieve
Optimization in speed and memory usage.
7. Ease of reuse - Use same software in different systems and software.
Environments reduce development costs and also improve the reliability. Hence
"Usability of developed software is an important property.
TECHNICAL PUBLICATIONS® - an up-hrust for knowledg®t
HEEB Difference between Software Product
software Engineering tee
Software Process and Agile Development *
and Program
propa Software product
é Tlividual user Software product is developed by multiple|
ee os cae users and it is used by large number of
ee ee people or customers.
: ene i possessing Software product consists of multiple
2 ey ih ae program codes, related documents such as|
ae SRS, design documents user manuals, tes
: : : cases and so on.
' : ‘al user interface is most
Generally only one person uses the program, Good graphic
3. ence there isa lack of user interface. required by any software product.
is generally developed by Software product is developed by software
. ~ : engineers who are large in number and
work in a team. Therefore systematic
approach of developing software product
must be applied.
5. For example:
‘A word processing software.
FEB Layered Technology
Software engineering is a layered technology. Any software
can be developed using these layered approaches. Various
layers on which the technology is based are quality focus
layer, process layer, methods layer, tools layer.
A disciplined quality management is a backbone of software
engineering technology.
Process layer is a foundation of software engineering.
Quality management
Fig. 1.4.1 Layered
technology
Basically, process defines the framework for timely delivery
of software.
In method layer the actual method of implementation is carried out with the help of
requirement analysis, designing,
testing.
coding using desired programming constructs and
Software tools are used to bring automation in software development process.
Thus software engineering is a combination of
development of quality software.
Rueeae iy
1. Software engineering isa layered approach, Justify,
Process, methods, and tools for
TECHNICAL PUBLICATIONS® _
‘an Up-thrust for knowledge0 ee
Object Oriented Software Engineering 1-7 ‘Software Process and Agile Development
w Software Process (UE
T sofoare process can be defined as the structured set of activities that are required to develop
lhe software system.
IS i
The fundamental activities are :
‘© Specification © Design and implementation
« Validation ¢ Evolution
‘A software process model is an abstract representation of a process. It presents a
description of a process from some particular perspective.
EES] Common Process Framework
‘The process framework is required for representing the common process activities.
Process framework
‘Umbrella activities
Work task
Milestone | Taskset Framework
‘SQA points 4 Activity #1
Work task
Milestone | > Taskset Framework
SOA points Activity #n
Fig. 1.5.1 Software process framework
As shown in Fig, 1.5.1, the software process is characterized by process framework
activities, task sets and umbrella activities.
Process framework activities
* Communication
= By communicating customer requirement gathering is done.
* Planning - Establishes engineering work plan, describes technical risks, lists
Tesource requirements, work products produced and defines work schedule.
* Modeling - The software model is prepared by:
+ Analysis of requirements
* Design
TECHNICAL PUBLICATIONS® - an up-thrust for knowledgePry
Object Oriented Software Engineering 1-8 Software Process and Agile Development
* Construction - The software design is mapped into a code by :
= Code generation
= Testing
* Deployment - The software delivered for customer evaluation and feedback ig
obtained.
Task sets - The task set defines the actual work done in order to achieve the software
objective. The task set is used to adopt the framework activities and project team
requirements using :
= Collection of software engineering work tasks
= Project milestones
= Software quality assurance points
Umbrella activities - The umbrella activities occur throughout the process. They focus
On project management, tracking and control. The umbrella activities are
1. Software project tracking and control - This is an activity in which software team
can assess progress and take corrective action to maintain schedule.
2. Risk management - The risks that may affect Project outcomes or quality can be
analyzed.
3. Software quality assurance - These are activities required to maintain software
quality.
4. Formal technical reviews - It is required to assess engineering work products to
uncover and remove errors before they propagate to next activity.
5. Software configuration management - Managing of configuration process when
any change in the software occurs.
6. Work product preparation and production - The activities to create models,
documents, logs, forms and lists are carried out.
7. Reusability management - It defines criteria for work product reuse.
8. Measurement - In this activity, the process can be defined and collected. Also
project and product measures are used to assist the software team in delivering the
required software.
Capability Maturity Model (CMM)
© The Software Engineering Institute (SEI) has developed a comprehensive process
meta-model emphasizing process maturity. It is predicated on a set of system and
software capabilities that should be present when organizations reach different
levels of process capability and maturity.Object Oriented Software Engineering 1-9 Software Process and Agile Development
¢ The Capability Maturity Model (CMM) is used in. assessing how well an
organization's processes allow to complete and manage new software projects.
* Various process maturity levels are :
Level 1 : Initial - Few processes are defined and individual efforts are taken.
Level 2 : Repeatable - To track cost schedule and functionality basic project
management processes are established. Depending on earlier successes of projects with
similar applications necessary process discipline can be repeated.
Level 3 : Defined - The process is standardized, documented and followed. All the
projects use documented and approved version of software process which is useful in
developing and supporting software,
Level 4 : Managed - Both the software process and product are quantitatively
understood and controlled using detailed measures
Level 5 : Optimizing - Establish mechanisms to plan and implement change.
Innovative ideas and technologies can be tested.
Thus CMM is used for improving the software project.
Review Questions
1. Explain the CMMI model to access the organization level.
2. Discuss in brief about the typical activities involved under umbrell
engineering.
Prescriptive Process Models
Definition of Process Model : The process model can be defined as the abstract
representation of process. The appropriate process model can be chosen based on
abstract representation of process.
© The software process model is also known as Software Development Life Cycle
(SDLC) Model or software paradigm.
These models are called prescriptive process models because they are following
some rules for correct usage.
In this model various activities are carried out in some specific sequence to make the
desired software product.
Various prescriptive process models are -
TECHNICAL PUBLICATIONS® - an up-thrust for knowledgeSoftware Process and Agile Deve
Object Oriented Software Engineering
Prescriptive Process models
Evolutionary
Process model|
Tnoremental
Process model
|_— incremental | — Prototyping
model |
|— Spiral mode!
L— RAD model
L— Concurrent
Development model
Fig, 1.6.1 Prescriptive process model
Need for Process Model
The software development team must decide the process model that is to be used for
software product development and then the entire team must adhere to it. This is
necessary because the software product development can then be done systematically.
Each team member will understand - what is the next activity and how to do it. Thus
Process model will bring the definiteness and discipline in overall development process.
Every process model consists of definite entry and exit criteria for each phase. Hence
the transition of the product through various phases is definite. If the process model is not
followed for software development then any team member can perform any software
development activity, this will ultimately cause a chaos and software project will
definitely fail without using process model, it is difficult to monitor the progress of
software product. Let us discuss various process models one by one.
EE] waterfall Model
© The waterfall model is also called as ‘linear-sequential model’ or ‘classic life cycle
model’. It is the oldest software paradigm. This model suggests a systematic,
sequential approach to software development.
The software development starts with re
Progresses through analysis, design,
figure illustrates waterfall model,
In requirement gathering and analysis phase the basic requirements of the system
must be understood by softwar:
mast be ; ‘© engineer, who is also called Analyst. The
information domain, function, behavioural Tequirements of the system are
quirements gathering phase. The"
coding, testing and maintenance. Following
TECHNICAL PUBLICATIONS® - an up-thrust for knowledgeObject Oriented Software Engineering 1-11 Software Process and Agile Development
Fig. 1.6.2 Waterfall model
understood. All these requirements are then well documented and discussed
further with the customer, for reviewing.
© The design is an intermediate step between requirements analysis and coding.
Design focuses on program attributes such as -
= Data structure
= Software architecture
= Interface representation
= Algorithmic details.
The requirements are translated in some easy to represent form using which coding,
can be done effectively and efficiently. The design needs to be documented for
further use.
Coding is a step in which design is translated into machine-readable form. If design
is done in sufficient detail then coding can be done effectively. Programs are created
in this phase.
Testing begins when coding is done. While performing testing the major focus is on
logical internals of the software. The testing ensures execution of all the paths,
functional behaviours. The purpose of testing is to uncover errors, fix the bugs and
meet the customer requirements.
.
Maintenance is the longest life cycle phase. When the system is installed and put in
practical use then error may get introduced, correcting such errors and putting it in
use is the major purpose of maintenance activity. Similarly, enhancing system's
services as new requirements are discovered is again maintenance of the system.
This model is widely used model, although it has many drawbacks. Let us discuss
benefits and drawbacks.
TECHNICAL PUBLICATIONS® - an up-thrust for knowledge; 4-12 Software Process and Agile Developmen
Object Oriented Software Engineering.
Benefits of waterfall model ;
1. The waterfall model is simple to implement.
2. For implementation of small systems waterfall model is useful.
Drawbacks of waterfall model
There are some problems that are encountered if we apply the waterfall mode] and
those are :
1 It is difficult to follow the sequential flow in software development process. If some
changes are made at some phases then it may cause some confusion.
2. The requirement analysis is done initially and sometimes it is not possible to state
) all the requirements explicitly in the beginning. This causes difficulty in the project.
3. The customer can see the working model of the project only at the end. After
reviewing of the working model; if the customer gets dissatisfied then it causes
serious problems.
4. Linear nature of waterfall model induces blocking states, because certain tasks may
be dependant on some previous tasks. Hence it is necessary to accomplish all the
dependant tasks first. It may cause Jong waiting time.
Explain how water all model i is applicable for the development of the following
systems :
a) University accounting aan
__ b) Interactive system that allows railway passengers to find time and other information from
the reine
Solution
2) University accounting system : If the software developers who have the experience
in developing the account systems then buildin,
vel ; ig university account system based
on existing design could be easily managed with water-fall model,
b)Interactive system that allows railway Passengers to find time and other
information from the terminals installed j in the station.
For developing such interactive system,
disciplined design, coding and testing
.
all the requirements must be correctly |
a
water-fall model. |
iObject Oriented Software Engineering 1213 Software Process and Agile Development
[GEM incremental Process Model
In this model, the initial model with limited functionality is created for user's
understanding about the software product and then this model is refined and expanded
in later releases.
[EEN incremental Mode!
« The incremental model has same phases that are in waterfall model. But it is
iterative in nature. The incremental model has following phases.
1, Analysis 2. Design
3. Code 4. Test
« The incremental model delivers series of releases to the customer. These releases are
called increments. More and more functionality is associated with each increment.
[Analysis] + [ Design }--[ Code }-~[[Test]
Increment with
‘enhanced
functionalities
Increment
Deo oO
Increment #2
Oeo-o-oO
Software functionality
Therement #4
io |}-—— increment with very
CeOR Or limited functionality
Time
Fig. 1.6.3 The incremental model
The first increment is called core product. In this release the basic requirements are
implemented and then in subsequent increments new requirements are added.
The word processing software package can be considered as an example of
incremental model. In the first increment only the document processing facilities are
available. In the second increment, more sophisticated document producing and
Processing facilities, file management functionalities are given. In the next
increment spelling and grammar checking facilities can be given. Thus in
incremental model progressive functionalities are obtained with each release.
TECHNICAL PUBLICATIONS® - an uptrustfor krowedge..
When to choose It 7
1, When requirements are reasoi
3. When limited set of software
Merits of incremental model
1. The incremental model can
, involved in the project.
1-14 Software Process and Agile Developmen,
nably well-defined. |
2. When overall scope of the development effort suggests a purely linear effort,
functionality needed quickly.
be adopted when there are less number of people
2. Technical risks can be managed with each increment.
3. For a very small time span, atl
FEE 00 oct
least core product can be delivered to the customer.
* The RAD Model isa type of incremental process model in which there is extremely
short development cycle.
© When the requirements ai
re fully understood and the component based
construction approach is adopted then the RAD model is used.
Using the RAD model the fully functional system can be developed within 60 to 90
days.
) Various phases in RAD are Requirements Gathering, Analysis and Planning,
Design, Build or Construction and finally Deployment.
Parallely.
In the requirements gatherin,
the system and understand the bu
system. .
* During analysis and planning phase,
made and a planning for various softw
During the design phase various mo
model, data model and process model,
The build is an activity in
automatic code generation tool the i
teams are integrated to form a whole.
Finally the deployment of all
working on the Project) is car
8 Phase the developers communicate with the users of
‘siness process and Tequirements of the software
the analysis on the gathered requirements is
‘are development activities is done.
dels are created. Those models are Business
which using the exi
I the software components (creat
tied out,
TECHNICAL PUBLICATIONG®
Multiple teams work on developing the software system using RAD model |+ —— 6010 90days period ———+|
Fig. 1.6.4 Rapid application development
Drawbacks of rapid application development
1 It requires multiple teams or large number of people to work on the scalable
Projects.
2. This model requires heavily committed developer and customers. If commitment is
lacking then RAD projects will fail.
3. The projects using RAD model requires heavy resources.
4. If there is no appropriate modularization then RAD projects fail. Performance can
be problem to such projects.
5. The projects using RAD model find it difficult to adopt new technologie:
Solution : The RAD model is suitable for information system applications, business
“pplications and the for systems that can be modularized because of following reasons -
1. This model is similar to waterfall model but it uses very short development cycle.
2. Ituses component-based construction and emphasises reuse and code generation.
TECHNICAL PUBLICATIONS® - an up-thrust for knowledge1-16 Software Process and Agile Development
ring
Object Oriented Software Engines!
i leable projects.
i 1] uses multiple teams on scal oe
nena Ff | is suitable for the projects where technical risks are not high.
4, The RAD model is st
5, The RAD model requires heavy resources.
CSRS Pevite three examples of software projects that would be amenable to
e patie Be meill ; Anata
or There can various examples of software projects that would be amenable tp
i ntal model. For instance - ,
oF atating software service : This service can be personal service. That meena for
personal banking system the incremental model can be used. later state of
increments, this system can implement insurance service, home loans and some
other features of banking services.
2. Web browser application : The base application can be developed and distributed.
This is the basic increment of the application. In the later increments the plugins can
be provided to enhance the experience of web browser applications.
3. Operating system software : The operating system software providing the basic
system handling functionalities is the first increment. After the release of the basic
versions then updates or security patches are provided to the customer in the form
of increments. Various distribution package in the form of versions such as basic
home edition, premium, ultimate and so on can be the increments of operating
system software.
Evolutionary Process Model
While developing the software systems, it is often needed to make modifications in
earlier development phases or the tasks sets. If the development process is linear or in a
anes he see Tequirements gathering to deployment) then the end product will be
~ unrealistic. In such cases, the iterative approach needs to b ionary
~ model iersiieg aedct ‘© be adopted. The evolutionary
Hl Prototyping
In prototyping model initially the re
¢ Developer and customer define jectives; i
ems i eae overall objectives; identify areas needing more
Then a quick design is prepared, This desi
ininput and outper eet This design represents what will be visible to use |
quirement gathering is done.
From the quick desi i
iean " cae prere, 'S Prepared. Customer or user evaluates the
¢ the requirements, Iteratively Prototype is tuned fot
satisfying customer require
quirem, i th
ents. "Thus prototype is important to identify the
software requirements,Deployment
delivery
and
feedback
Construction
of
prototype
Fig. 1.6.5 Prototyping
* When working prototype is built, developer use existing program fragments or
program generators to throw away the prototype and rebuild the system to high
quality.
* Certain classes of mathematical algorithms, subset of command driven systems and
other applications where results can be easily examined without real time
interaction can be developed using prototyping paradigm.
When to choose it ?
* Software applications that are relatively easy to prototype and that always involve
Human-Computer Interaction (HCD), the prototyping model is suggested.
* A general objective of software is defined but not detailed input, processing or
output requirements. Then in such a case prototyping model is useful.
* When the developer is unsure of the efficiency of an algorithm or the adaptability of
an operating system then prototype serves as a better choice.
Drawbacks of prototyping
1. In the first version itself, customer often wants “few fixes” rather than rebuilding of
the system whereas rebuilding of new system maintains high level of quality.
2. The first version may have some compromises.
3-Sometimes developer may make implementation compromises to get prototype
Working quickly. Later on developer may become comfortable with compromises
and forget why they are inappropriate.
TECHNICAL PUBLICATIONS® - an up-thrust for knowledgeoriented Software Engineering
Comparison between prototyping
Prototyping
i gathered
Some requirements are a
1. nitially, but there may be change in
‘king
irements when the —_ worl
pate is shown to the customer.
Sr. No.
The development team has adequate
1-18
and incremental process model
Software Process and Agile Deve)
Incremental process model
The requirements are precisely defined q
there is no confusion about the final produ,
the software.
The development team with less domayl
knowledge can be accommodated due
iterative nature of this model. The change ig
technology in the later phase can not el
tolerated.
All the end-users need not be involved in aif
the phases of development.
There is no use of reusable components inl
development process.
2. domain knowledge. Similarly they can
adopt the new technologies if product
demands.
‘All the end-users are involved in all
3 phases of development.
There can be use of some reusable
4 software components in project
development process.
Spiral Model
This model possess the iterative nature of prototyping model and controlled and
systematic approaches of the linear sequential model.
This model gives efficient development of incremental versions of software. In this
model, the software is developed in series of increments.
The sprial model is divided into a
framework activities are denoted by task
Usually there are six tasks re;
(See Fig. 1.6.6 on next page)
In the initial pass,
the spiral the Pp
Software gets developed,
For instance,
i Concept development
continue along the
then at entry point 2 the
TECHNICAL PUBLICATIONS®
Product specification is
Tototype gets developed
¢ Proj
Spiral path. If the conce
Product development process starts,
number of framework activities. These
regions.
ions. The spiral model is as shown in Fig. 1.66.
built and in subsequent Passes around
and then more improved versions of
i ‘ .
ect will start at core of spiral and will
Pt has to be developed into actual project
Hence entrySoftware Process and Agile Development
Risk analysis
Customer,
‘communication
[Engineering
Concept
development]
Projects
Project entry
point axis
New
product
development
rojects
Product
enhancement
projects
Product
‘maintenance|
projects
Customer evaluation
and feedback
Construction
and release
Fig. 1.6.6 Spiral model
point 2 is called product development project entry point, The development of the
Project can be carried out in iterations.
© The task regions can be described as :
i) Customer communication - In this region, it is suggested to establish customer
communication.
ii) Planning - All planning activities are carried out in order to define resources time
line and other project related activities.
iil) Risk analysis - The tasks required to calculate technical and management risks
are carried out. .
iv) Engineering - In this task region, tasks required to build one or more
Tepresentations of applications are carried out,
TECHNICAL PUBLICATIONS® - an up-thrust for knowledgeSoftware Process and Agile Develo,
All the necessary tasks required to construct, te,
1 Constragt anit Tee conducted. Some tasks that are required to provi,
i lication are 5 ‘
seemenee Salis carried out in this task region.
casensbien 1's feedback is obtained and based
oe Sane pang are performed and implemented
i i a
customer evaluation require:
installation stage. ; ,
In each region, number of work tasks are carried out depending upon the
.
characteristics of project. For a small project relatively small number of work tasks)
: i be carried
are adopted but for a complex project large number of work tasks can be " ie oo
* In spiral model, the software engineering team moves around the spiral in 4)
clockwise direction beginning at the core.
Advantages of spiral model
* Requirement changes can be made at every stage.
© Risks can be identified and rectified before they get problematic.
Drawbacks of spiral model
* Itis based on customer communication, If the co:
software product that gets developed will not be
* It demands considerable risk assessment. If the risk assessment is done properly
> then only the successful product can be obtained.
When to choose it ?
mmunication is not proper then the
up to the mark.
1. When the prototypes for the software functionality are needed,
2. When requirements are not very clearly defined or complex,
3. When the large or high budget Projects need to be developed,
4 When the risk assessment is very critical and essential
5. When project is not expected within a Specific limited time span,
rototyping model
Prototyping model
‘omain The development team h; domain|
a accommodated d m has adequate do:
ve nature of thi. Ne fo kno
fe is model, The wledge. Similarly they can adopt the new]
ch Tee 4
Uieted 7° ' Mter phase can not pe 'chMologies if product demence
TECHNICAL PUBLICATIONS® - an, i iObject Oriented Software Engineering 1:21 Software Process and Agile Development
“All the end-users need not bé involved in all
the phases of development,
Funding are not stable for the projects that can
3. be developed using spiral model,
_ The requirements that are gathered and Some requirements are gathered initially, but|
analyzed are high reliability requirements, there may be change in requirements when the|
Ss working prototype is shown to the customer.
All the end-users are involved in all phases of
oe development.
Funding are stable for these type of projets.
Difference between waterfall model and spiral model
Sr.No. Waterfall model Spiral model
1 Tt requires well understanding of It is developed in iterations. Hence the|
: Fequirements and familiar technology. requirements can be identified at new]
iterations.
: Difficult to accommodate changes after The required changes can be made at|
: the process has started. every stage of new version.
. Can accommodate iteration but indirectly, _Itis iterative model.
A Risks can be identified at the end which Risks can be identified and reduced|
may cause failure to the product, before they get problematic.
5 The customer can see the working model The customer can see the working,
2 of the project only at the end. After product at certain stages of iterations.
reviewing of the working model; if the
customer gets dissatisfied then it causes
serious problems.
e ‘Customers prefer this model. Developers prefer this model.
7 This model is good for small systems, This model is good for large systems.
A Ithas sequential nature. Ithas evolutionary nature,
FEZ] concurrent Development Model
* The concurrent development model is also called as concurrent engineering.
* In this model, the framework activities or software development tasks are
represented as states.
* The modeling or designing phase of software development can be in one of the
states like under development, ioaiting for modification, under revision or under review
and so on,
* Fig. 1.6.7 represents these states.
TECHNICAL PUBLICATIONS® - an up-thrust for knowledge4 1-22 Software Process and Agile Develog |
ject Oriented Software Engineering
Object
Means initial
‘communication is done
Modeling activities
Under
development
Walting
for
modification
|
Geting || Getting
revised reviewed
‘Transition
one
stage
Baselined
|
‘Completed
Fig. 1.6.7 Concurrent development model
© Alll the software development activiti
les exist concurrently in this model but Fa |
activities can be in various States.
———Object Oriented Software Engineering 1-23 Software Process and Agile Development
eenenee ae
Solution :
Waterfall model Spiral model Prototyping model __ Incremental model |
Requirements must The requirements Requirements The —_requiremenis|
be clearly understood - analysis and gathering analysis can be made analysis can be made|
and defined at the can be done in in the later stages of in the later stages of
beginning only. iterations because _ the development cycle, the development cycle,
requirements get because requirements a
changed quite often. get changed quite
often,
|The development The development” The development The | development
team having the team having less team having less team having the
adequate experience of experience of working experience of working adequate experience
warking on the similar on the similar projects on the similar of_ working on the
Project is chosen to is allowed in this projects is allowed in similar project is
work on this type of — process model this process model. chosen to work on this
process model type of process model.
There is no user There is mo user There is user There is user}
involvement in all the _ involvement in all the involvement in all the involvement in all the
phases of development phases of development phases of phases of
Process. Process. development process. development process.
When the Due to iterative nature When developer is When the
requirements’ are _of this model, the risk unsure about the requirements are
reasonably well identification. and efficiency ofan _reasonably well
defined and the rectification is done algorithm or the defined, the
development effort before they get adaptability of an development _ effort
suggests a purely problematic. Hence for operating system then suggests. a _purely
linear effort then the handling real time the prototyping linear effort and when
waterfall model is problems the spiral model is chosen. limited set of software
chosen. model is chosen. functionality is needed
quickly then the
incremental model is
chosen.
BES EREEY For the scenario described below, which life cycle model would ‘you choose? Give
n whty you would choose this model.
Heracting with the MIS department of a very large oil company with multiple
is. They have a complex legacy system. Migrating the data from this legacy
easy task and would take a considerable time. The oil co
Solution : Legacy applications are database management systems. The software
“ompanies normally migrate these applications to some relational databases. For data
‘migrating projects a cohesive method that enables the developer to cycle or spiral through
TECHNICAL PUBLICATIONS® an up-thrust for knowiedgerit 1-24 Software Process and AGIO Levelopmen,
re Engineering
Object Oriented Software E:
the migration process is required. In this migrating process following steps need to by
followed -
1, Analyze the data.
2. Extract the data which is to be transformed. |
3. Transform the extracted data. |
4. Validate the transformed data.
5. Load the validated data to the target system.
These above mentioned steps are repeated until the migration is successfully
completed. The risk management must be done properly. All these factors suggest that
CCR eK) one scenario oe
‘applicable and not the waterfall model.
toll other models, BAU : Dec.-11, Marke 10
Solution : 1. RAD model would be applicable and not the waterfall model :
Following are some scenario where RAD model would be applicable and not the
waterfall model.
A) The projects in which users are involved in all phases.
B) The projects in which users are experts of problem domain.
©) The project is enhancement of existing system.
2. Waterfall model is preferable to all other models :
evolution of the product. It helps i : Pe approach at any stage in tha
development of the product, systematic stepwise
3. The iterative f |
rameworks help in analyzing the product at every evolutionary stage
TECHNICAL PUBLICATIONS® _JObject Oriented Software Engineering 1-25 ‘Software Process and Agile Development
4. The spiral model demands a direct consideration of technical risks at all stages of
project. The risks are reduced before they get problemati
mple 1
Solution : The RAD model is suitable for information system applications, business
applications and the for systems that can be modularized because of following reasons -
1. This model is similar to waterfall model but it uses very short development cycle.
2. Ituses component-based construction and emphasises reuse and code generation.
3. This model uses multiple teams on scaleable projects.
4. The RAD model is suitable for the projects where technical risks are not high.
5. The RAD model requires heavy resources.
AU : CSE, Dec.-06, Marks 4
Software life cycle model 2 Process model
This model is based on common four activities: This model is based on problem definition,|
analysis, design, code and testing. technical development, software integration and]
_ existing status.
The software development process can be clearly The software development process cannot bel
and systematically defined in phases. clearly defined in phases.
Customer interaction is possible in every stage of Customer interaction is only at initial stage of{
‘software development process in this model, _ software development.
Large scale projects can be handled using this Eagle precls ay) Re aught in ate
approach. situation using this approach,
Example 1.6.10 7
Tey!
Solution : When software engineering team moves around the spiral, the first circuit
around the spiral results in development of product specification, The subsequent passes
around the spiral might be used to develop prototype in more subsequent manner. In
each pass, through planning region, some adjustments to project plan are made. Cost and
Schedule adjustments can also be made according to customer feedback.
TECHNICAL PUBLICATIONS® - an up-thnust for knowledge