0 ratings 0% found this document useful (0 votes) 10 views 51 pages Se Unit 1 Notes
The document provides an overview of software engineering, defining software as a collection of programs and related documents, and distinguishing between generic and custom software products. It emphasizes the importance of systematic approaches in software engineering to ensure quality, reliability, and user satisfaction while addressing common myths and the ongoing software crisis. Additionally, it outlines the software process, its components, and the layered technology that underpins effective software development.
AI-enhanced title and description
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
Go to previous items Go to next items
Save SE_UNIT_1_NOTES[1] For Later The Software Product and Process
4.1 Introduction to Software Engineering
Today, software engineering is the most important technology with rapid
development. National economy is also dependant upon this technology. Day by day
more and more systems are getting controlled by software. Hence it becomes
necessary to understand the concept of software and software process. In this chapter
we will discuss all such fundamental issues.
4.4.4 Basic Concepts
1. What is 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 =
\< Generic - That means developed to be sold to a range of different customers.
\Le Custom - That means developed for a single customer according to their
specification. aa
2. What is software engineering 7
‘Sofware engineering i a discipline in which theories,
develop professional software product.” =
In software engineering the systematic and organized approach is adopted. Based
con 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,
Engineer must think of the organizational and financial constraints. Within
these constraints only he/she has to find the solution.
(1-1)ssorm 274 _sne porre rroduct and Pros
Product: The software product gels developed afer following systematic they
rethods and tools along with the appropriate management activites ns,
41.2 Software Components
+ Any software consists of three major components - programs, documents ay
‘operating procedures
Programs Procedures
Fig. 1.1 Software components
+ There isa difference between software and programs :
4) Program is one part of entire software or in other words, program is a subst
of software.
) Any program consists of source code and object code.
i) Thus program is an instance of software.
‘© The documentation consists of various manuals. These manuals are created
at the end of each phase. Following table enlists these documents
‘© Sotware requement specticatn
+ Context sigram
Data ow aagram,
2 | Sofware design + Flowchart,
+ ER diagram
3 | coding + Source code lsting,
Reference ltingSESPM 1:3. Tho Software Product and Process
tthe Software Product and Process
4 | Testing Test data
+ Test cases,
+ Tost resus
+ The procedures represent instructions for the initial setup and use of
software systems, It also consists of some troubleshooting instructions that
«an be followed on failure of software system. These procedures can be
given in the form of manuals. There are two types of manuals - i) User
‘manual and ii) Operational manual.
User manual 1. System overview, To help the user to
2. Beginner's manual Urcerstan what the sytem
Seoreers a is, this manual is useful,
3. Reference manual.
Operational manual | 1. Installation guide, For intial setpintalation or
2. Tblestootngadminstve guide | 0" some Fouleshootng
Toe ae oe ‘Purpose the operational,
Iranils ae wed
1.3 Software Characteristics
[answer Most likely ond previous Univers Evan qasions
1. What oe the characterises of software
2 Describe important characteristics of software process.
3. Write short note on software characteristics, DE
Software development is a logical activity and therefore it is important to
understand basic characteristics of software. Some important characteristics of software
+ Software is engineered, not manufactured,
Software development and hardware development ate two different activities. A
good design is a backbone for both the activities. Quality problems that occur in
hardware manufacturing phase cannot be removed easily. On the other hand, during
software development process such problems can be rectified. In both the activities,
developers are responsible for producing qualitative product.
+ Software does not wear out.
In early stage of hardware development process the failure rate is very high
because of manufacturing defects. But after correcting such defects the failure rate gots
__ Teduced. The failure rate remains constant for some period of time and again it starts
3SESPM 41-4 __The Software Product and Proce,
Increasing because of environmental maladies (extreme temperate, dusts any
vibrations)
(On the other hand software does get affected from such environmental maladie
Hence ideally it should have an “idealized curse But due to some undiscovered eeroy
the failure rate is high and drops down as soon as the errors get comected. Hence
failure rating of software the “actual curve” is as shown below.
Sie feet,
sehen
Manactuing
ete
q
g
Tie Te
Fig. 1.2 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 rte 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 spee parts for softoare. If hardware
‘component wears out it can be replaced by another component but itis not possible in
‘ase of software. Therefore software maintenance is more dificult thin the hardware
‘maintenance.
‘+ Most software is custom built rather than being assembled from
‘components,
_— While developing any hardware product at first the circuit design with desired
functioning properties is created. Then required hardware components such a8 ICs
capacitors, and registers are assembled according to the design, but this is not done
while developing software product. Most ofthe 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 dat
structures, Today software industry is trying to make library of reussble components
For example: in today’s software, GUI is built using the reusable components such a
‘message windows, pull down menus and many more such components. The approachseePM 1-5 The Software Product and Process
is getting developed to use in-built components in the software. This stream of
software is popularly known as component engineering.
4.4 Software Engineering Goals/Objectives
Answer Most likely and previous University Exam question after reading this tople,
1 Discuss in bref the goal of softwere engineering
While developing software following are common objectives.
1, Satisfy user 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
‘Fuman lives, money and customer relation. For instance Microsoft has faced
rany problems because eater release of Windows has many prcblems. Thus
software should be delivered only if high reliability is achieve.
5. Low maintenance costs Maintenance of software is an activity that can be
done only after delivering the software tothe cistomer, Any small change in
software should not cause restructuring of whole software. Tis indicates that
the design of software has poor quality
4, Delivery on time - It is very dificlt to predic the exact time on which the
“Gofwaze-can Be completed. But a systematic development of software can lead
to meet the given desline
5. Low production costs ~The softwaze product shouldbe cost elective
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
reusability of developed software is an important property.
1.5 Software Myths
There are some misbelieves in the software industry about the software and
process of building software. For any software developer it is a must to Know such
belies and reality about them. Here are some typical myths -SE&PM
The Softwaro Product and Proce,
Myth : Using a collection of standards and procedures one can buy
software.
Reality : Eventhough we have all standards and procedures with us jog
helping the developer to build software, it is not possible for software
professionals to build desired product. This is because - the collection which
we have should be complete, it should reflect moder techniques and more
importantly it should be adaptable. It should also help the software
professional to bring quality in the product.
‘Myth : Add more people to meet deadline of the projec.
Reality : Adding more people in order to catch the schedule will cause the
reverse effect on the software project ie. software project will get delayed,
Because, we have to spend more time on educating people or informing
them about the project.
Myth : If a project is outsourced to a third party then all the worries of
software building are over.
Reality : When a company needs to outsource the project then it simply
indicates that the company does not know how to manage the projects
Sometimes the outsourced projects require proper support for development
Myth : Even if the software requirements are changing continuously it is
possible to accommodate these changes in the software.
Reality : It is true that software is a flexible entity but if continuous changes
in the requirements have to be incorporated then there are chances of
introducing more and more errors in the software. Similarly the additional
resources and mote design modifications may be demanded by the software.
Myth : We can start writing the program by using general problem
statements only. Later on using problem description we can add up the
required functionalities in the program.
Reality : It is not possible each time to have comprehensive problem
statement. We have to start with general problem statements; however by
Proper communication with customer the software professionals. can gathet
useful information. The most important thing is that the problem statement
should be unambiguous to begin with. :
‘Myth : Once the program is running then its over!
Reality : Even though we obtain that the program is running major part of
work is after delivering it to customer.
‘Myth : Working program is the only work product for the software project
Reality : The working program/software is the major component of any
software project but along with it there are many other elements that shouldSE&PM 1-7 ___The Software Product and Process
be present in the software project such as documentation of software,
guideline for software support
+ Myth : There is no need of documenting the software project; it
unnecessarily slows down the development process.
Reality : Documenting the software project helps in establishing ease in use
of software, It helps in creating better quality. Hence documentation is not
‘wastage of time but it is a must for any software project.
4.6 Software Crisis
revlous. University Eka qucstion ofr reading thio tople.
1. Wit short note on ~ Softuae est
The Software crisis means the decisive time or turning point that software
developers encounter during software development. Hence software crisis represent
various problems that are faced by the software developers during software
development process.
To understand software crisis consider following problem that is often faced by
software industry.
Software cost is getting increased tremendously day-by-day. The software purchase
expenses are higher than the hardware purchase. This is becoming worrying trend
over the years. Following graph shows the ratio of h/w and s/w cost vs years ~
Hardware
cost
Software
cost
Years
Fig. 1.3 Software cost : A software crisis
This graph shows that cost of software is increasing rapidly than the hardware
cost, Following are the symptoms of present software crisis -
1. Day-by-day, software purchase cost is getting more than the hardware
purchase cost. Hence major part of budget of a>y software industry is on
software purchase,SE&PM 1 The Software Product and Prey
— Oooxaraviy
2. Software products are dificult to alter, maintain, enhance, debug or moa,
3. Software resources are not being used optimally.
4. User requirements are often evolving and cannot be satisfied fully.
5. Software product not being reliable,
6. Many time software products get crashed on occurrence of specific condition
7. Delivery of software product within specified budget and on scheduled tine
Various factors that have contributed to make software crisis -
Following are some factors that bring the software crisis -
’) Increasing size or volume of software.
ii) Lowered productivity or quality improvement
Lil) Lack of skilled staf
iv)Tnadequate software training
+) Growing demand for more software.
Solutions to present software crisis -
The most effective solutions to present software crisis can be i) use and spread a
software engineering practices among software engineers and i) further enhancemew
in software engineering desciplines.
1.7 Software Process
EE
Software process can be defined as the structured set of activities that are required t
[develop the software system.
ee ge
‘The fundamental activities are
+ Specification
‘+ Design and implementation
+ Validation
+ Evolution
A software process model is an abstract representation of a process. It presents é
description of a process from some particular perspective.1.7.1 Difference between Software Process and Product
Answer Most likely and previous University Exam question after reading this topic.
|__ Answer Most likely ond previous University Exam question after reading thie tople. |
1, Differentiate between a software product and a software process.
Sr. No. Software process "Software product
1. Processes are developed by individual] Software product is developed by|
user and its used for personal se. | mule users and iti used by lage
E umber of people or customers.
2 Process may be small in size and| Sofware product consists of mutipe
possessing ited functdnalty. t|_ program codes, related documents such
defines framework for effective product] as SRS, desianing documents user
generation. manuals, test cases and s0 on.
3 Generally only one person uses the| Good graphical user interface Ie most
process, hence there ie a lack of user! required by any sofware product.
Interface
4 Process is generally developed by| Software product is developed by|
process engineers ‘software engineers who are large in|
umber and work in a team, Therefore
systematic approach of developing
software product must be applied.
5 ‘The output of process is product. Product development occurs by|
following process.
6. For example : For example
Program developed for parsing the) A word processing software.
input.
4.8 Software Engineering : A Layered Technology
‘Answer Mast likely and previous University Exam question after reading this toplc.
1, Define software engineering. Show how software engineering is a 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.SEaPM 1
‘The Software Product and Proc
A disciplined quality management
isa backbone of software Teale
engineering technology. Mates
+ Process layer is a foundation of =
Guay fous
software engineering. Basically,
process defines the framework for
timely delivery of software, Fig, 4.4 Software engineering layers
+ In method layer the actual method
‘of implementation is carried out with the help of requirement analysis,
designing, coding using desired programming constructs and testing,
+ Software tools are used to bring automation in software development
process.
‘Thus software engineering is a combination of process, methods and tools for
development of quality software
1.9 Common Process Framework
The process framework is required for representing the common proces activites
It is as shown in Fig. 15. (Gee Fig. 15 on next page)
‘As shown in Fig. 15 the software process is characterized by process framevtork
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
resource requirements, work products produced and defines work schedule.
+ Modelling - The software model is prepared by:
+ Analysis of requirements
+ Design
+ Construction - The software design is mapped into a code by
+ Code generation
+ Testing
+ Deployment - The software delivered for castomer evaluation and feedback
is obtainedSESPM 1-11 The Software Product and Process
[Common process framework
Umbrella activities
Framework activities
Fig. 1.5 Software process framework
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.SE&PM 2_ The Software Product and Proce,
3. Software quality-assurance - These are activities required to m:
quality.
4, Formal technical reviews - It is required to assess engineering work produc,
to uncover and remove errors before they propagate to next activity.
5, Software configuration management - Managing of configuration proces
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.
ain softwar
1.10 Process Pattern
‘As we know, process is defined as a series of activities in which one or more
inputs are used to produce one or more outputs. Now in this section we will discuss
‘one more important concept that is process pattern. The process pattern is a template
which appears as a general solution to a common problem, Process pattern acts as a
consistent method for describing an important characteristic of software process. Using
process pattern we can easily build the process‘ that satisfies all the requirements.
Process pattern describes -
+ Complete process
+ Important framework activity
‘+ Task within the framework activity
Scott Ambler - An object oriented consultant has proposed a template for process
pattern as follows
+ Pattern name
+ Intent
+ Type
+ Initial context
+ Problem
+ Solution
‘Resulting context
+ Known usesSESPM 1-13 The Software Product and Process
SBEPIS vas teubons menftok ed]._.118__ The Softens Pele
‘The description of process patiem is as follows -
Pattern name
‘The pattern name should be a meaningful name given to the pattern. From pattern
name one can guess its functionality
Intent
‘The objective or the purpose of the pattern should be described here.
Type
‘The type of pattem should be specified here.
Ambler has suggested three types of patterns
1) Task Pattern - It represents the software engineering action or work task
which is a part of process. For example Formal Technical review is a task
pattern.
2) Stage Patten - It defines the process framework activity. A framework activity
hhas multiple work tasks; hence stage pattern consists of multiple task patterns,
For example Coding phase is a stage pattern.
3) Phase Pattern - It defines the sequence of framework activities. For example
the phase pattern can be spiral model or rapid prototype model.
ial context
In this section the conditions under which the pattern applies are described.
Sometimes the entry conditions must be true before the process begins.
In this section following issues need to described
1. The set of organizational or team related activities that have already occurred,
2. The list of entry state processed.
43. Already existing software engineering or project related information.
Problem
Under this section the problem is mentioned for which the pattern is to be
described. For example insufficient requirements is a problem. That means customers are
rot sure about what they want exactly. They could not specify the requirements in
toper manner.
Solution
Every problem for which pattern has to be described should be accompanied with
some solution. For example: The problem of insufficient requirements has solution. Thata
-_e.—sSsS—h490
is - Establish effective communication with the customer. Ask questions in onde
obtain meaningful requirements. Conduct timely reviews to modify/redefine
requirements. Ths solution will help the software developer to get useful informajge
before the actual work stars.
Resulting context
It describes the results after successful implementation of pattern. The result
context should have following type of information on successful completion of
pattern -
1. The team-related or organizational activities that must have occurred,
2. Bait state for the process
3. The software engineering information or project information that has been
developed,
Known uses/examples
‘The specific instances or applications in which the described patter is useful
should be mentioned under this section. In other words we describe applicability of
the pattern. For example spiral model is useful for the large scale projects in which
‘work products must be examined in several iterations.
1.11 Software Engineering and Conventional Engineering Process
Software engineering is an intangible process and the raw material for software
engineering is only data, On the other hand, we can see the end product at each stage
jn conventional engineering process. Hence convincing customer about the final
Product is more easy than in software engineering. Hence software engineering is
‘more challenging than conventional engineering process. Both the approaches have the
common objectives of development, that is - developing the product with least cost,
developing it on specific schedule or development of quality product.
1.12 Challenges in Software Engineering
The key challenges facing software engineering are
+ Coping with legacy systems.
22a valuable systems must be maintained and updated. Hardware is evolved
fever than ‘solbeare If original developer have moved on, managing
‘ainaning or integrating of software becomes a criteal tee
+ Heterogeneity challenge
Sometimes systems are di tributed and include
ems re distributed and inchide a mix of hardware and
‘oftware, Ths implies that software systems must deanly itegre othe!
fee is=_— 1-15 _ The Software Product and Frocess-
different software systems, built by different organizations and teams
different hardware and software platforms.
+ Delivery time challenge.
‘There is increasing pressure for faster delivery of software. As the complexity
of systems that we develop increases, this challenge becomes harder.
‘As software is an integral part of computer based systems, itis essential to apply
software engineering principles and practices while developing software. Hence the
main objective of software engineering is to adopt systematic, disciplined approach
while building high quality software,
8
1.13 Software Process Model
‘Answer Most likely and previous University Exam questions afér reading thts topic.
1. Explain software process. Enumerte the ates common to al software Also
list the characteristics of software proces.
2. What is software development lifecycle model ? Why i is important to adhere to a Ife
‘eycle model while developing large projects? (ET
Software process model is a Software Development Life Cycle model or software
paradigm. Software Development Life Cycle (SDLC) model is a diagrammatic
representation of various activities required to make software product. Along with
this diagrammatic representation description of each phase of the SDLC must be
given. Each phase of software life cycle consists various activities to develop the
software product gradually. The software life cycle also specifies the order in which
teach phase must be executed. There are various life eycle models and those are -
1) Waterfall model
2) Prototype model
3) Spiral model
4) Evolutionary development model
5) Iterative enhancement model
‘The basic activities that can be carried out in life cycle model are ~
1) Feasibility study
2) Requirement analysis and specification
3) Design
4) Coding
5) Testing
6) Maintenancefom ted ota
‘The proctss model can be defined as an sbstract representation of process, Th,
pees eT ee ae an ere ee re
Generic software process models are ~
+ The waterfall model - Separate and distinct phases of specification and
development;
+ Prototyping model - A quick design approach is adopted.
‘© Incremental models - It emphasizes on short development cycle
© Rapid Application and Development (RAD) model
«Evolutionary process models - Specification, development and validation
are interleaved.
© Incremental mode!
© Spiral model
© WINWIN spiral model
© Concurrent assembly mode!
Characters
of software processes -
Following are some important characteristics of software processes ~
1. Understandability : The process must be explicitly defined such that it could
bee understood clearly by the software developers.
2. Acceptability : The defined process must be accepted and used by the software
engineers during the software development process.
3. Reliability : The defined software process must be without erzors in order
rake it reliable.
4. Visibility : Each process must produce clear results so that the stage of
software process must be seen,
5. Supportability : The process activity must be supported by the case tools.
6, Robustness : It is the ability of software process to cope with errors duting
execution or and to continue to operate despite abnormalities in input
7. Rfficiency : This is the characteristic of the process that denotes how fast t
process will perform.
8 Maintainability : This characteristic of process denotes the ability of th
process to handle the changes or some improvements within itsEaPM 1-17 __ The Software Product and Process
1.13.1 Need for Software Development Life Cycle Model
‘The software development team must decide the lifecycle model that is to be used
for software product development and then the entire team must adhere to it. Ths is
necessary because the software product development can then be done systematically.
Fach team member will understand - what is the next activity and how to do it. Thus
life cycle model will bring the definiteness and discipline in overall development
process.
Every life cycle model consists of definite entry and ext criteria for each phase.
Hence the transition of the product through various phases is definite. If the life cycle
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 life cycle model, itis difficult to monitor the
progress of software product. Let us discuss various life cycle models one by one.
4.14 Waterfall Model
Ansicer Most likely ond previous University Exam question after reading this toplo.
11. Which are the major phases in the woterall model of software development ? Which
‘phase consumes the maximum effort for developing atypical sofare product?
20111
=
+ The waterfall model is also called as ‘linear-sequential mode!’ 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 requirements gathering phase. Then
progresses through analysis, design, coding, testing and maintenance. Fig. 1.6
illustrates waterfall model.
Fig. 1.6 Waterfall modelSESPM 18 __The Software Product and Proce
—__— Oo oo—cna ss
+ In requirement gathering and analysis phase the basic requirements of thy
system must be understood by software engineer, who is also called Analyy,
‘The information domain, function, behavioural requirements of the system,
fare understood. All these requirements are then well documented ang
discussed further with the customer, for reviewing.
‘The design is an intermediate step between requirements analysis ang
coding
Design focuses on program attributes such a5 =
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 f
further use,
+ Coding is step in which design is translated into machine-readable form.
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 maja
focus is on logical internals of the software. The testing ensures execution o
all the paths, functional behaviours. The purpose of testing is to uncove
terrors, fix the bugs and meet the customer requirements.
“+ Maintenance is the longest life cycle phase. When the system is installed an
put in practical use then error may get introduced, correcting such ers
‘and putting it in use is the major purpose of maintenance activity. Similar!
enhancing system's services as new requirements are discovered is agai
‘maintenance of the system,
This model is widely used model, although it has many benefits and drawbat
Let us discuss them.
Bonefits of waterfall mode!
1. The waterfall model is simple to implement,
2, For implementation of small systems waterfall model is useful.SESPM 1-19 __ The Software Product and Process
eee A hoe
Drawbacks of waterfall model
There are some problems that are encountered if we apply the waterfall model
and those are
1, It's dificult 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.
43. The customer can see the working model of the project only at the end. After
reviewing of the working model; ifthe customer gets dissatisfied then it causes
serious problems.
4, Linear nature of waterfall model induces blocking states, because certain tasks
‘may be dependent on some previous tasks. Hence it is necessary to accomplish
all the dependent tasks first. It may cause long waiting time.
4.45 Prototyping Model
“Answer Most likely ond previous University Exam questions after reading thls ¢ople.
1. What is prototype model ? Under what cumstances it is beneficial to construct a
prototype model ? Does the construction of a prototype model always increase the
‘ouerall cost of software development ?
2, Explain the advantages of prototyping model over waterfall model,
ESTA
3. What is softwae prototyping ? What are the types of prototype ? What are the advanta
and disadvantages of prototyping ? ns
4, Explain prototype model. What are the advantages of developing « prototype of «
‘stem ? Exerc
+ In prototyping model initially the requirement gathering is done.
‘© Developer and customer define overall objectives; identify areas needing.
‘more requirement gathering.
+ Then a quick design is prepared. This design represents what will be visible
to the user in input and output format.
+ From the quick design a prototype is prepared. Customer ot user evaluates,
the prototype in order to refine the requirements. Iteratively prototype is
tuned for satisfying customer requirements. Thus prototype is important to
identify the software requirements.Feet
SE&PM Software Product a
* When working prototype is built, developer use existing program
F program generators to throw away tre prototype and rebuild ti
to high quality
* Certain asses ‘of mathematical algorithms, subset of ‘comman
systems and other applications where results can be easily examines
real time interaction can be developed using prototyping paradigm,
When to choose it ?
* Software applications that are relatively easy to prototype _almos
involve human-machine interaction (HCI) the prototyping 1
suggested,
vrunizaton Bling of
Commugeaton| __,] butang
csstomer sign
Deployment CConstvction
‘nd a
i" prototype
ig. 1.7 Prototyping
* A general objective of software is defined tut not detailed input, proc
OF output requirements. Then in such a ease prototyping model is seh
+ When the developer is unsure of the effciency of an algorithm «
adaptability of an operating system then prototype serves as a better ch
Drawbacks of prototyping
1 Ih the ‘first version itsel; customer often wants “few fixes" rathe
rebuilding of the system. Whereas rebuilding of new system maintain
2. The first version may have some compromises
5 Sometimes developer may make implementation compromises to get pro
Working quickly. Later on developer may become cotentic
compromises and forget why they are inappropriate‘SEBPM joftware Product and Process
4.16 Incremental Model
Answer Most likely and previous University Exam question after reading this toplc.
1. Explain RAD model ? Discuss the situation where RAD model is useful
010,
+ 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
See Fig. 1.8 on next page.
‘+ The incremental model delivers series of releases to the customer. These
releases are called increments. More and more functionality is associated
with each increment,
+ 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, fle 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.
When to choose it ?
1. When requirements are reasonably well-defined.
2. When overall scope of the development effort suggests purely linear effort.
3. When limited set of software functionality needed quickly.
Merits of incremental mode!
1. The incremental model can be adopted when there are less number of people
involved in the project.
2, Technical risks ean be managed
3. For a very small time span, at least core product can be delivered to the
customer,
each increment.‘analyse
Devry of
Test_]-°* increment
a
Deaen }~[ cose} [es
Fig. 1.8 The incremental model
Detivery of
i
i
wz‘SEBPM 1-23 The Software Product and Process
4.16.1 Rapid Application Development (RAD) Model
‘Ansuet Most likely and previous Universtiy Exom questions after reading this top.
1. Wit shot note on = RAD model,
2. The RAD model encompasses what phases during the software development ?
3. Explain RAD mode! to achieve ropd developmen. The RAD model ssumes the
txence of one thing What's and why the esumpon i tue?
+ The rapid application development model is type of incremental software
process model in which there is extremely short development cycle.
+ This model is similar to waterfall model which achieves the high speed
development using component based construction.
+ To develop the fully functional system within short time period using this
‘model it is necessary to understand the requirements fully and to have a
restricted project scope,
Team 1 Team 2 Seam
Business Business Business
rrodeting modeling redoing
Data Data Date
necting |} rmoseling e+ [ mosetng F
Process Prosess| Process
modeling rmoaetng [ rmodeting [7
[avpicaton pian Aericaton]
seneraton| generaton| } generaton |
Testing and Testing and Tesing and
tumover ‘umover tumover
Fig, 1.9 Rapid application development model
* Various phases of RAD model are
1) Business modeling - In business modeling, the information flow is modeled
into various business functions. These business functions collect following
information.
‘+ Information that drives the business process,
* The type of information being generated.ee ee
1+ The generator of information,
‘+ The information flow.
+ The processor of information
2) Data modeling» In this phase the information obtained in busines
i
lasfied into data objets The characters of dala objets (atts!
‘enti. The relationship among various data objet is defined
5) Process modeling - In this phase the data objects ate transformed in,
rocasses. Tse proces are fo extrac the information fom data objects np
4 responsible for implementing busines fenton.
‘9 Application generation - For cresting software varios automaton tone can by
wed. RAD ‘also makes use of reusable components or crests rusts
‘components to have rapid development of enfare
59 Testing and tumover - As RAD uses reusable components the testing ef
te reduced. But i new components are added in software develope,
process then such components need tobe tested. Ii equally important fo ey
2 the interac,
Drawbacks of rapid application development
1. It requires mutple teams or large numberof people to work on the sale
projec.
2. This model requires heavily commited. developer and customer i
comlament sacking then RAD projects wil al
3. The projects using RAD model requires heavy resources,
4 If thee is n0 appropiate medlatzaion then RAD projects fal. Pexfrmance
cam be problem to sich projec,
5, The projects using RAD move find i dificult to adopt new technologies
‘Situations in which RAD model is used
‘The RAD model is suitable for information system applications, busines
applications and the for systems that can be mdularized Deeatse of following
1. This model is simi to yatefll model
oye.
2-1 uses component-based construction and emphasises reuse and code
‘generation
but it uses very short develope?
‘3. This mode! uses multiple teams on scaleable projets,
4 The RAD modal is ute forthe projets wher techn sks ate not high
5: The RAD model regres hevy resources.= ee
4.47 Spiral Model
“Ansiger Most likely and previous University Exam questions after reading tls Lope
1. As you move outward along the process flow path of spiral model what you con soy
about software that is being developed or mainained ?
[es 2005, June 2005 10 Hark
2. Compare wal and spiral mode of sfare development. How dos ‘roe fcr
et the pra model of sua dengan?
Explain why the sir model is considered tobe metamodel
4. ipl the working of spiral model. Why spiral model is onieed 10 be ra made?
5. Bon how «sof development flr sited and ral eed i
+ This model possess the iterative nature of prototyping model and controlled
and systematic approaches of the linear sequential model.
+ This model gives efficent development of incremental versions of software,
In this model, the software is developed in series of increments
+ The spiral model is divided into a number of framework activities. These
framework activities are denoted by task regions.
‘+ Usually there are six tasks regions. The spiral model is as shown in Fig, 1.10.
See Fig. 1.10 on next page.
‘+ Spital model is realistic approach to development of large-scale systems and.
software, Because customer and developer better understand the problem
statement at each evolutionary level. Also risks can be identified or rectified
at each such level.
‘+ In the initial pass, product specification is built and in subsequent passes
around the spiral the prototype gets developed and then more improved
versions of software gets developed.
© During planning phase, the cost and schedule of software can be planned
‘and adjusted based on feedback obtained from customer evaluation.
‘+ In spiral model, project entry point axis is defined. This axis represents
starting point for different types of projects.SESPM
ek anaae
\)\
Paring
cesta
Tain
rants
Cusomer vation | Constrcon
‘scr ‘raracase
Fig 1.10 Spiral model
For instance : Concept development project will start at core of spiral and w
continue along the spiral path. Ifthe concept has to be developed into actual pro
then at entry point 2 the product development process stars. Hence entry point 2
called product development project entry point. The development of the project can
‘carried out in iterations,
‘+ The task regions ean be described as
) Customer communication - In this region it is suggested to establish custom
communication
4) Planning - All planning activities are carried out in order to define resous®
time line and other projet related activities,fii) Risk analysis - The tasks required to calculate technical and management risks
axe carried out
iv) Engineering - In this task region, tasks required to build one or more
representations of applications are cartied ut
W Construct and release - All the necessary tasks required to construct, test,
install the application are conducted. Some task that are required to provide
user support are also carried out in tis task region.
vv) Customer evaluation - Customer's feedback is obtained and based on customer
evaluation required tasks are performed and implemented at installation stage.
‘+ In each region, number of work tasks are carried out depending upon the
characterisis of project. For a small project relatively small number of work
tasks are adopted but for a complex project large number of work tasks can
be caried out
‘+ In spiral model, the software engineering, team moves around the spiral in 2
clockwise direction beginning, at the core.
Advantages of spiral model
1. Requirement changes can be made at every stage.
2. Risks can be identified and rectified before they get problematic.
Drawbacks of spiral model
‘+ Ttis based on customer communication. If the communication is not proper
then the software product that gets developed will not be up to the mark.
It demands considerable risk assessment. If the risk assessment is done
properly then only the successful product can be obtained.
4.17.4 WIN-WIN Spiral Model
‘+ As in spiral model the customer communication is important for obtaining
the requirements of the project, the WIN-WIN model also suggests proper
‘communication with customer. In realty customer and developers undergo
through the process of negotiation. Successful negotiation occurs when both
the sides win, This is called win-win result.
Customer's win means - Obtaining the system that satisfies most of the
needs.
Developer's win means - Getting the work done with realistic and
achievable budgets and deadlines.
«Ih WIN-WIN spiral model negotiation activities are carried out at the
beginning of each pass of the spiral
‘+ Various activities that can be carried out in WIN-WIN spiral model are—— a
—"—S— SSF Oana
1 Henfcton of‘stkeole
2 Determination of ‘har wns codon,
2. Negotiations of sakes sing for win contion. With the con
tatenre pet am renee far win-win tule Then deemine wy
CBjetves crane and alemates
alae poses an proc, Aye and se ther
Deine net evel of produ and proces.
lat proces and product dfn.
Take review of prot and ve necessary comment on it
some
(2)tenteatn of
satire
(GN
(6) Desiton of predict and process
(oy Recening
rd arabe
Stopecties
Fig. 11 WINN spiral model
‘here ae thee anchor points that can be defined in WIN-WIN spiral model
1. LCO - That means Life
Cycle Objective. 1 defines the ebjectives for ma
software engineering activities. the cbjecives for mal1-29 The Software Product and Process
1:28 _The Software Product and Process
2 TA rat means Life Cycle Architecture, It defines the software architectures
that can be produced with all the objectives are ast
tea 3 10C 5 That means Initial Operational Capability t represents software with all
vel the desired initial operational capablitee
1.18 Component Assembly Model
+ Component based assembly model uses object oriented technologies. In
i gies, the emphasis is on creation of classes. Classes
are the enites which encapsulates data and algorithms
* In component based architecture, classes (.. components required to build
pplication) can be used as reusable components,
‘+ The Component Based Model (CBD) uses various characters
model This model is evolutionary by nature. Hence software development
can be done using iterative approach,
Promina kanes
exerts [ese] ema
maa Fane] Gear
ce vem, |_| Ses
‘eo tere
Fig. 1.12 Component assembly modelSeaPM 41:20 __The Software Product ana}
+ In CBD model, multiple classes can be used. These classes are basical
prepackaged components
+The model works in following manner ~
1 te
Stop 1: Fist identiy ll the required candidate components, Le, clases with
help of application data and algorithms.
‘Step 2 : If these candidate components
‘hey must be present in the library.
re ured in previous software Projects yy
Step 3 : Such pre existing components can be extracted from the rary and use
farther development
Step 4: But sf the required component is not present in the Hbrary then build g,
‘create the component a per requirement
Step § : Place this newly created component in the Ubrary. This makes one iteration
of the system,
‘Step 6 : Repeat step 1 to 5 for creating n iterations, where n denotes the number gf
iterations required to develop complete application
‘Advantage
1. This model emphasizes on reusability of software components. This rewsaiiy
of component reduces the development cycle time by 70 % and project cost by
wm
1.19 Rational Unified Process (RUP)
"inser Most hey ond pesiou Unies am gc ln ns
1. Explain ue recs What re choc ? =e
‘The unificd process is a framework for objet oriented models. This model is ao
called as Rational Unified Process model (RUP). It i proposed by Twat Jacobson,
Grady Bootch and James Rumbaugh. This model ig iterative and. incremental by
nature. Let us discuss various phases of unified process,
‘There are 5 phases of unified process model and those are
+ Inception
+ Hhboration
+ Constsction
+ Transition
+ Production‘SEBPM
Lot us understand each of these phases in detail
Inception
In this phase there are two major activities that are conducted : Communication
and plasning. By having customer communication business requirements can be
identified. Then a rough architecture of the system is proposed. Using this rough
architecture it then becomes easy to make a plan for the project. Use cases are created
Which elaborates the user scenario. Using use cases the sequence of actions can be
identified. Thus use cases heip to identify the scope of the project which ultimately
proves to be the basis for the plan.
Elaboration .
Elaboration can be done using two activities : Planning and Modeling. In this
e the use cases are redefined. And an architectural representation is created using,
five models such as use-case model, analysis model, design model, implementation
model and deployment model. ‘Thus executable baseline gets created. Then a plan is
created carefully to check whether scope, risks and delivery dates are reasonable.
[ |
Construction
Deployment
Release
=}
Fig. 1.13 Unified process modelSEPM 1-32_ The Software Product and Pye.
Construction
‘The main activity in this phase is to make the use cases operational. The pny, 20
and design activites tat are started in elaboration phase are completed in yy —
tnd a source code is developed which implements all desired functionalities “pe* 8
‘unt testing is conducted and acceptance testing is carried out on the use cases." 1. |
‘Transition —
In the transition phase all the activities that are required at the time of deploym, In
of the software product are carried out. Beta testing is conducted when softwar aro:
delivered to the end user. User feedback report is used to remove defects from. tn
created system, Finally software team prepares user manuals, installation guides yg de
troubleshooting procedures. This makes the software more usable at the tine vere
release igi
Production
This is the final phase of this model. In this phase mainly the maintenanhan
activities are conducted in order to support the user in operational environment. soft
Various work products that may get generated in every phase are as ging'™t
below - wich
F
Inception Phase “Transition phase. |so¢
“Il use case model ‘Delvered software
‘nl risk assessment increments
+ Project lan 1 Beta test repo
+ User feedback
+ Prlminay design | “Te PT | report
model Tost cases
Risk ist User
manual
‘erative project plan
+ Preliminary user
manual
* Intalation
manual
‘Thus the genetic software process models are applied for many years in software
development process in order to reduce chaos in the process of development. Each 1.2
these models suggest different process flow but they insist on performing the same
of generic framework activites. 20sEePM 1-33) =~ The somtware F 1
4.20 Agile Processes
‘Answer Most likely and previous University Exam question after reading this topte,
1. What is an agile process ? Discuss various principles used in agile process
In this section we will first understand “what i an agile process?” and then discuss
various principles used in agile process.
In 1980's the heavy weight, plan based software development approach was used
to develop any software product. In this approach too many things are done which
were not directly related to software product being produced. This approach was
rigid. That means if requirements get changed, then rework was essential. Hence new
methods were proposed in 1990's which are known as agile processes.
‘The agile processes are the light-weight methods and they are people-based rather
than plan-based methods. The agile process forces the development team to focus on
software itself rather than design and documentation. ‘The agile process believes in
iterative method. The aim of agile process is to deliver the working model of software
quickly to the customer.
For example : Extreme programming is the best known of agile process.
Set of principles of agile process
1. Customer involvement : The customer should be involved in the software
development process. The customer specifies the software requirements and
evaluates each iteration of the.system.
2. Incremental change : Software is developed in increments. Each increment
rust be evaluated by the customer and customer should suggest changes in
the system if any. These changes must be implemented in the next increment,
3. Assume simplicity : The software system to be developed should be simple
and the complexity of the system should be eliminated.
4, People are important than process : The “skill of the people should be
exploited, Instead of following rigid prescribed process, people should get the
liberty to develop their own ideas and their own working style.
5. Embrace change : Requirements evolve over time. If any changes occur in.
requirements or in design then system should accommodate those changes.
1.20.1 Extreme Programming
Extreme Programming (XP) is one of the best known agile process. The extreme
Programming approach was suggested by Kent Beck in 2000. The extreme
Programming process is explained as follows >+ Customer specifics and priorities the system requirements.
. Ss
ee ern ota ees
=
ee
ee ee
‘work in small tasks. The efforts and the estimated resources regu
these tasks are estimated.
+The customer proitesare the stories for implementation I the regi
changes then Senetines unimplemented stores have fo be dare
reste the complete software small and fount releases
+ For accommodating new changes, ew ston-cad must be developed
‘+ Evahte the sytem along with he estomer.
This proces fs demonstrated by the fllosing Fig.
Fig, 1.14 Extreme programming release eye
‘Various rules and practices used in extreme programming are as given below
Instead of erating a large requirement document use
‘Sore are witen by the customer in whch whet tay
‘ee fe mented,
Release planning | & release plan for overal project is prepared fom wi
‘te tration plan can be propsred for indus
‘Small releases | The developer braaks dawn the user sos into sma
‘releases and a plan for releanng the small incon
prepare,
erave process | Divide the development work into smal faratons Kee
{eration of nearly constant length, Heratve develope!
bel in quck o age development
‘Stand up meetings | The stand up meetings must be conducted forthe eat
outcomes of the project
|__| extcomes of ie project omnes re on
Di1-35 __ The Software Product and Proc
The Software Precinct anc Proce
Simple design Simple design always takes less ime than the complex:
design It is always good to keep the things simple to meet
the curent requirements
‘Spike solution | For answeting the tough technical problems create the
Designing ‘pike solutions. The goal of these solutions shoud be to
‘duce the technical sks.
Refactoring
Refactoring means reductons in the redundancy,
be built Bie develop,
(prodact folowing must be gathered -
1 Scope and objective of the projact must be defined
12 Techoscal or management constraints must be located.
‘This information helps the project manager to estimate overall est of the proje
Seder, possible risks can be identified,
The scope and objective of the software product can be defined in softws
requirement analysis process. Using product objectives the gnals for the product ¢
be identified. The scope of software product identifies various data, functions =
For identifying the technical or management constraints delivery deadlines, buds
estimation, personnel availability and many other factors must be evaluated.
3. Process :
A software process provides framework from which software development pi
can be prepared. Various framework activities are applied in order to identify t
milestones, work products for the software. Finally umbrella activities are carried ¢
to define process model. These umbrella activities must be carved out through out !
process,
4.22 Software Process Improvement
Process metrics are the set of process indicators that are used to improve &
store pense, Pons eis lo epee
The software process can be improved with the help of process metrics. It can
itustrated a8 below -
Fig. 1.45 Process improvement
Le‘SE&PM
1-39 The Software Product and Process
In making improvements to any software system, there are three basic quality
factors 10 consider: product, people and technology. These three are the major
determinants of software cost, schedule, productivity and quality.
Fig. 1.16
The factor people includes hiring the best people you can find, motivating
them to do the best job and training them on the skilis needed to perform their
jobs effectively.
The technology factor includes acquiring and installing tools that help
automate. The technology also includes use of new software languages to
develop the desired quality product (eg, Java, Visual C+, Oracle).
The complexity of the factor product has great impact on quality and team
performance.
Out of these three components if one component is altered then it will impact
other-two factors. For example if an organization makes use of new testing
tool(technology) then the staff(people) must be trained to work with this tool.
‘The organization must consider if this new tool helps in generating the desired
software product.
‘This process triangle resides within the citcle, This circle specifies the
environmental conditions such as
© Customer characteristics(Communication and collaboration between user and
developer).
© Business conditions(Organizational policies, Business rule
© Development environment(Use of new technologies, Use of automated tools)SEGPM 1:40 __The Software Product ang» |
Pa!
1.23 Capability Maturity Model (CMM) sy
__Ansicer Most lkely and previous Unloersty Exam question ger reading yg
ep
1. What is CMM ? Dicuss vrs level mn oe
‘+ The Software Engineering Institute (SEI) has developed a co
process meta-model emphasizing process maturity. It is predica
‘of system and software capabilities that should be
‘organizations reach different levels of process capability and
MPrehen,
ted on a
Present wi
maturity
‘The Capability Maturity Model (CMM) is used in assessing
corganization’s processes allow to complete and manage
Projects.
+ Various process maturity levels are
Row well
NeW softvay
Level 1: Initial - Few processes are defined and individual efforts are taken
Level 2: Repeatable - To track cost schedule and functionality basic pri
management processes are established. Depending on earlier successes of projects i
similar applications necessary process discipline can be repeated.
Level 3 : Defined - The process is standardized, documented and followed, All
Projects use documented and approved version of software process which is usefili
developing and supporting software.
Level 4 : Managed - Both the software process and product are quantitai
understood and controlled using detailed measures.
Level 5 : Optimizing - Establish mechanisms to plan and implement charg
Innovative ideas and technologies can be tested
‘Thus CMM is used for improving the software project.
1.24 Product and Process Metrics
+ Software product and process metrics are used to measure varie
characteristics of software process ot product.
an
* Software product metrics measure the software development process
environment.
Software process metric measure the software product.
ani
Examples of product metrics are-size, reliability, complexity
functionality
ion
Examples of process metrics are - productivity, effort estimates, off
and failure rate.SE&PM 1-41 — The Software Product and F fOChh™
solved Exercise
1 What are software development problems ? Describe.
Ans.» Solid requirements - Clear, complete, detailed, cohesive, attainable,
testable requirements are not identified clearly.
+ Realistic schedules - While scheduling for the project an adequate time is
not assigned for planning, design, testing, bug fixing, re-testing, changes
and documentation.
+ Adequate testing - Generally testing is done at the end which is not
desired. Start testing early on, re-test after fixes or changes and plan time
for testing and bug-fixing. ‘Early’ testing ideally includes unit testing by
developers and built-in testing and diagnostic capabilities.
© Stick to initial requirements as much as possible - The change in
requirements is a major problem in software development. If changes are
necessary, they should be adequately reflected in related schedule
changes. If possible, work closely with customers/end-users to manage
expectations. This will provide them a higher comfort level with their
requirements decisions and minimize excessive changes later on.
+ Communication - Communication gap generates poor quality software.
While developing software use prototypes and__continuous
communication with end-users if possible to clarify expectations.
2 Explain an advantage of adhering to life cycle model for software development.
‘Ans. : A life cycle is the sequence in which a project specifies, prototypes, designs,
implements, tests and maintains a piece of software. In software engineering, the life
cycle model depicts various stages of software development process. Using life cycle
‘model various development issues can be solved at the appropriate time. The technical
risks can be managed during development of the software. The requirement elicitation
can be done before actual product gets developed. If the life cycle model is used for
developing the software product then the testing and maintenance can be carried out
cffectvely and efficiently. For developing some software systems there is need for
parallel development of different parts of the system. In such cases lie eycle model is
preferred.
Q3 How does a spiral model represent a process suitable fo represent a real time problent ?
Ans. : Spiral model represents a process suitable to represent a real time problem
because of following reasons -
1. Software evolves as the project prog!
risks are identified and managed and
‘And at every evolutionary level the
s are reduced at every stage.SERPM. 1-42 __The Software Product an p,
Ye approach a
2. emabls the developer to apy the prottype approsch at any
evolution ofthe prot ble doping the aren sya
deveopment othe prot
2. The iterative frameworks pin asyeng the product at eve
— of technical risks
4. The spiral mdel demands diet consideration of technics fa
of projet. The sae ede Boe thy gt poblemate
24 Compare and contst weil mode! with spiral motel
lage
atic sth
Stepige
"Y Olen,
=
‘Sr. No. Waterfall mode! ‘| Spiral model
+] Angie wrnng t| th teed fret ao
Soomarlometes,,, | tedomerie fos: oe
=
© | Gets monmsns ares te ein drs svc
Siete seramee oars
+ | greceswstesnat 7 Tineeton
as
+ | cate songs tava | eoncmn do
SPS | Bea ga oe
© | Msn cee eiones | treme art
eraiesaregte, | Ragu on we ne wacy_
meicnaerecmaee
Lae
[cone sr ws ra | anergy
7 | i nt st ont | nae
fen: mee eee oil ae
a same pot ere tf ha a Be poe
Se olf ony co
Sat are es
Project isSE&PM 1-43 The Software Product and Process
Q6 Define the terms product and process in software engineering.
‘Ans. : The product in software engineering is a stand alone entity that can be
luced by development organization and sold on the open market o any customer
who is able to buy them. The software product consists of computer programs,
procedures and associated documentation (documentation can be in hard copy form or it
‘may be in visual form). Some of the examples of software product are databases, word
processors, drawing tools.
The process in software engineering can be defined as the structured set of
activities that are required to develop software system. Various activities under
software process are -
* Specification
«Design and implementation
+ Validation
+ Evolution
Q7 How does “Project Risk” factor affect the spiral model of software development 2
‘Ans. : The spiral model demands considerable risk assessment because if a major risk
is not uncovered and managed, problems will occur in the project and then it will not
be acceptable by end user.
Q8 Explain iterative waterfall model
Ans. : Iterative waterfall model - The iterative waterfall model is as shown in
Fig. 1.17.
Requirements
Ly
Implementation
Maintenance
Fig. 1.17 Iterative waterfall model
The first phase is requirement gathering phase in which all possible requirements
are identified. The Software Requirement Specification is prepared in this phase.
The design phase is responsible for creating architectural view of the software.
While designing the software new requirements can be identified.