0% found this document useful (0 votes)
70 views23 pages

Se Notes

Btech notes

Uploaded by

sahitiguptha7
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
70 views23 pages

Se Notes

Btech notes

Uploaded by

sahitiguptha7
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)

SCHOOL OF ENGINEERING & TECHNOLOGY

LECTURE NOTES

SOFTWARE ENGINEERING

SUBJECT CODE: 22PC0CS10

B.TECH II Year- II Semester

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

AY: 2024-2025

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING


LECTURE NOTES FOR THE ACADEMIC YEAR 2024-25

FACULTY NAME : Mrs. B. SUPRAJA

SUBJECT : SOFTWARE ENGINEERING

SUBJECT CODE : 22PC0CS10

YEAR : II

SEMESTER : II

STREAM : CSE

VERIFIED BY

HOD – SPECIAL BATCH

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

INTRODUCTION TO SOFTWARE ENGINEERING


Definition of Software: Software is a set of instructions, data or programs used to operate
computers and execute specific tasks.

Definition of Engineering: Application of science, tools and methods to find cost effective
solution to problems.

Definition of Software Engineering:

SE is defined as systematic, disciplined and quantifiable approach for the development,


operation and maintenance of software.

OR

“Software Engineering is the establishment of sound engineering principles in order to obtain


economically software that works efficiently on real machines”.

CHARACTERISTICS OF A SOFTWARE
1. Software is developed or engineered; it is not manufactured.
2. Software does not wear out.
3. Most of the software is custom built, rather than being assembled from existing
components.

1.Software is developed or engineered, it is not manufactured:


There are some similarities between software development and hardware manufacturing in
two activities that is achieving high quality through a good design and manufacturing phase
(or part) for the hardware to provide the quality.

2.Software does not wear out:


The below figure depicts failure rate as a function of time for hardware. The relationship,
often called the “bathtub curve,” indicates that hardware exhibits relatively high failure rates
early in its life; defects are corrected and the failure rate drops to a steady-state level
(hopefully, quite low) for some period of time. As time passes, however, the failure rate rises
again as hardware components suffer from the cumulative effects of dust, vibration, abuse,
temperature extremes, and many other environmental maladies.
Stated simply, the hardware begins to wear out. Software is not susceptible to the
environmental maladies that cause hardware to wear out. In theory, therefore, the failure rate
curve for software should take the form of the “idealized curve” shown in the below Figure.
Undiscovered defects will cause high failure rates early in the life of a program. However,
these are corrected and the curve flattens as shown. The idealized curve is a gross over

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

simplification of actual failure models for software. However, the implication is clear
software doesn’t wear out. But it does deteriorate.

3.Most of the software is custom built, rather than being assembled from existing
components:

As an engineering discipline evolves, a collection of standard design components is created.


The reusable components have been created so that the engineer can concentrate on the truly
innovative elements of a design, that is, the parts of the design that represent something new.
A software component should be designed and implemented so that it can be reused in many
different programs. Modern reusable components encapsulate both data and the processing
that is applied to the data, enabling the software engineer to create new applications from
reusable parts.

Evolving role of Software:


The role of computer software has undergone significant change over a time span of more
than 50 years. Dramatic improvements in hardware performance, profound changes in
computing architectures, vast increases in memory and storage capacity, and a wide variety
of exotic input and output options have all precipitated more sophisticated and complex
computer-based systems.
The lone programmer of an earlier era has been replaced by a team of software specialists,
each focusing on one part of the technology required to deliver a complex application. And
yet, the same questions asked of the lone programmer are being asked when modern
computer-based systems are built:
1)Why does it take so long to get software finished?
2)Why are development costs so high?
3)Why can't we find all the errors before we give the software to customers?

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

4)Why do we continue to have difficulty in measuring progress as software is being


developed.
Changing Nature of Software:

The nature of software has changed a lot over the years.

1. System software: Infrastructure software come under this category like compilers,
operating systems, editors, drivers, etc. Basically, system software is a collection of
programs to provide service to other programs.
2. Application software: Application software is a type of computer program that performs
a specific personal, educational, and business function. Each application is designed to
assist end-users in accomplishing a variety of tasks, which may be related to productivity,
creativity, or communication.
3. Engineering and Scientific software: Scientific and engineering software satisfies the
needs of a scientific or engineering user to perform enterprise-specific tasks. Such
software is written for specific applications using principles, techniques, and formulae
particular to that field. Examples are software like MATLAB, AUTOCAD, PSPICE,
ORCAD, etc.
4. Embedded software: This type of software is placed in “Read-Only- Memory (ROM)”
of the product and control the various functions of the product. The product could be an
aircraft, automobile, security system, signaling system, control unit of power plants, etc.
he embedded software handles hardware components and is also termed as intelligent
software.
5. Product line Software: software product line is a set of software- intensive systems
sharing a common, managed set of features that satisfy the specific needs of a particular
market segment or mission and that are developed from a common set of core assets in a
prescribed way.
6. Artificial intelligence software: Artificial Intelligence software makes use of non
numerical algorithms to solve complex problems that are not amenable to computation or
straight forward analysis. Examples are expert systems, artificial neural network, signal
processing software etc.
7. Web based software: The software related to web applications come under this category.
Examples are CGI, HTML, Java, Perl, DHTML etc.

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

SOFTWARE MYTHS
There are some misbelieves in the software industry about the software and process of
building software. For any software developer it is must to know such beliefs and reality
about them.
Myths --> misleading attitudes of people ---> serious problems in software production
The Myths are classified into 3 categories. They are
1. Management Myths
2. Customer Myths
3. Practitioner Myths
1. Management Myths:- In the management, the managers are responsible for the
development of software. Some of myths of managers are
(i) Myth:- The management thinks “We already have books with full of standards and
procedures for developing software?”

Reality:-Even though we have all standards and procedures with us for helping the developer
to develop a software. But it is not possible for software professionals to develop a desired
product with required quality.

(ii)Myth:-Add more people or programmers to meet deadline of the project.

Reality:-Adding more people in order to catch the schedule will cause the reverse effect on
the software project that is software project will get delayed. Because, we have to spend more
time on educating people or informing them about the project.

2. Customer Myths:- A customer who requests computer software may be a person at the
next desk, an outside company that has requested software under contract, an in-house group
,a marketing or sales group. Customer myths --lead to false expectations (by customers) and
ultimately, dissatisfaction with the developers.

(i)Myth:- We can start writing the program by using general problem statements only. Later
we can add more 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 gather useful information. The most important thing is that the
problem statement should be unambiguous to begin with.

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

(ii)Myth:- “Project requirements continually change, but change can be easily


accommodated because software is flexible.”

Reality : It’s true that software requirement change, but the impact of change varies with the
time at which it is introduced. When requirement changes are requested early(before design),
cost impact is relatively small. However, as time passes, cost impact grows rapidly. Similarly,
the additional resources and more design modifications may be demanded by the software.

3.Practitioner’s Myths:- The practitioner may be Planning group- System analysts, system
architects, Development group- Software engineers ,Verification group-Test engineers,
quality assurance group, Support group- Customer supporters, technical supports,
Marketing/sales- Marketing people and product sales .

(i)Myth:- “Once we write the program and get it to work, our job is done.”

Reality:-Even though we obtain that the program is running major part of work is after
delivering it to the customer.

(ii)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.

A Generic View of a process:

1. Software engineering - Layered technology


2. Software engineering is a fully layered technology.
3. To develop a software, we need to go from one layer to another.
4. All these layers are related to each other and each layer demands the fulfillment of the
previous layer.

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

The layered technology consists of:


1. Quality focus
The characteristics of good quality software are:

 Correctness of the functions required to be performed by the software.


 Maintainability of the software
 Integrity i.e. providing security so that the unauthorized user cannot access information
or data.
 Usability i.e. the efforts required to use or operate the software.

2. Process

 It is the base layer or foundation layer for the software engineering.


 The software process is the key to keep all levels together.
 It defines a framework that includes different activities and tasks.
 In short, it covers all activities, actions and tasks required to be carried out for software
development.
3. Methods

 The method provides the answers of all 'how-to' that are asked during the process.
 It provides the technical way to implement the software.
 It includes collection of tasks starting from communication, requirement analysis,
analysis and design modelling, program construction, testing and support.
4. Tools

 The software engineering tool is an automated support for the software development.

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

 The tools are integrated i.e the information created by one tool can be used by the other
tool.
 For example: The Microsoft publisher can be used as a web designing tool.

A PROCESS FRAMEWORK:

 The process of framework defines a small set of activities that are applicable to all types
of projects.
 The software process framework is a collection of task sets.
 Task sets consist of a collection of small work tasks, project milestones, work
productivity and software quality assurance points.

Umbrella activities

Typical umbrella activities are:

1. Software project tracking and control

 In this activity, the developing team accesses project plan and compares it with the
predefined schedule.
 If these project plans do not match with the predefined schedule, then the required
actions are taken to maintain the schedule.

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

2. Risk management

 Risk is an event that may or may not occur.


 If the event occurs, then it causes some unwanted outcome. Hence, proper risk
management is required.
3. Software Quality Assurance (SQA)

 SQA is the planned and systematic pattern of activities which are required to give a
guarantee of software quality.
For example, during the software development meetings are conducted at every stage
of development to find out the defects and suggest improvements to produce good
quality software.

4. Formal Technical Reviews (FTR)

 FTR is a meeting conducted by the technical staff.


 The motive of the meeting is to detect quality problems and suggest improvements.
 The technical person focuses on the quality of the software from the customer point of
view.
5. Measurement

 Measurement consists of the effort required to measure the software.


 The software cannot be measured directly. It is measured by direct and indirect
measures.
 Direct measures like cost, lines of code, size of software etc.
 Indirect measures such as quality of software which is measured by some other factor.
Hence, it is an indirect measure of software.
6. Software Configuration Management (SCM)

 It manages the effect of change throughout the software process.


7. Reusability management

 It defines the criteria for reuse the product.


 The quality of software is good when the components of the software are developed for
certain application and are useful for developing other applications.
8. Work product preparation and production

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

 It consists of the activities that are needed to create the documents, forms, lists, logs
and user manuals for developing a software.

Generic Process Model

A software process is a collection of various activities.

There are five generic process framework activities:

1. Communication:
The software development starts with the communication between customer and developer.

2. Planning:
It consists of complete estimation, scheduling for project development and tracking.

3. Modeling:
 Modeling consists of complete requirement analysis and the design of the project like
algorithm, flowchart etc.
 The algorithm is the step-by-step solution of the problem and the flow chart shows a
complete flow diagram of a program.
4. Construction:
 Construction consists of code generation and the testing part.
 Coding part implements the design details using an appropriate programming language.
 Testing is to check whether the flow of coding is correct or not.
 Testing also check that the program provides desired output.
5. Deployment:
 Deployment step consists of delivering the product to the customer and take feedback
from them.
 If the customer wants some corrections or demands for the additional capabilities, then
the change is required for improvement in the quality of the software.

CAPABILITY MATURITY MODEL INTEGRATION(CMMI):

 The intent of maturity model is to provide overall indication of the “maturity of the
process” used by a software.
Means the intent of maturity model is:

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

 To indicate the quality of the software process


 To indicate the level upto which the developers understand and apply the process.
 The software Engineering Institute upgraded the original CMM
 Today it is evolved as CMMI(capability maturity model integration).
 It is a model which is predicted on software engineering capabilities that should be
present as organizations to reach different levels of capability and maturity.
 To achieve these capabilities, the SEI tells that an organization should a process model
according to CMMI guidelines.

CMMI process model can be represented in different ways:

1. As a continuous model
2. As a staged model
1. Continuous CMMI model:

 Levels are called capability levels.


 Describes a process in two dimensions.
 Each process area (e.g. Project planning or requirement management) is assessed for
specific goals and practices.
 And is rated according to the following capability levels.

Six levels of CMMI:

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

Level 0: INCOMPLETE:

 Process is ad-hoc; Objective and goal of process are as are not known.
Level 1: PERFORMED:
 All the specific goals of the process area (defined by CMMI) have been satisfied.
 Work tasks required to produce work products are conducted.
Level 2: MANAGED:
 All capability level1 criteria have been satisfied.
 All work tasks and activities or work products are monitored, reviewed,
controlled and evaluated.
Level 3: DEFINED:
 All capability level2 criteria have been achieved.
 Activities are standardized, integrated and documented
Level 4: QUANTITATIVELY MANAGED:
 All capability level3 criteria have been achieved.
 Metrics and indicators are available to measure the process and quality
 In addition, process is controlled and improved using measurement and quantitative
assessment.
Level5: OPTIMIZED:
 All capability level4 criteria have been achieved.
 Continuous process improvement based on quantity feedback from user.
 Use of innovative ideas and techniques, statistical quality control and other methods
for process improvement and optimization.
 The process is optimized by statistical means to meet changing needs of customer and
continuously improve efficiency of process.

Staged CMMI Model:

1. This model is used if you have no clue of how to improve the process for quality
software.
2. This model defines same process areas, goals as continuous model.
3. The difference is that it defines five maturity levels, rather than capability levels.
4. Levels are called maturity level.
5. It gives a suggestion of what things, the other organizations have found helpful to
work first.

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

6. To achieve a maturity level, the goals of that process are must be achieved.
7. The next table is the relationship between maturity levels and process areas:

SOFTWARE PROCESS MODELS

A Software process model is a simplified description of a software process. The process


models may include activities that are part of software process, software products and the
roles of people involved in the software engineering. Each model suggests some different
flow, but all perform the same set of generic framework activities: communication,
planning, modeling, construction and deployment.

PRESCRIPTIVE PROCESS MODELS

A Prescriptive Process model defines a distinct set of activities, actions, tasks,


milestones, and work products that are required to engineer and produce high-quality
software’s. The activities may be linear, incremental, or evolutionary. So, The prescriptive
process models are of different types. They are
1. Waterfall model
2. Incremental process models
3. Evolutionary process models
Linear Sequential Model/Waterfall Model/Classic Life Cycle :

The linear sequential model, sometimes called the classic life cycle or the waterfall
model, suggests a systematic, sequential approach to software development that begins at the
system level and progresses through communication, planning, modeling, construction and
deployment. The following given figure illustrates the linear sequential model for software
engineering.

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

i) Communication :
This activity involves heavy communication with customers and other stakeholders in order
to gather requirements and other related activities.
(ii) Planning : Here a plan to be followed will be created which will describe the technical
tasks to be conducted, risks, required resources, work schedule etc.
(iii) Modeling : A model will be created to better understand the requirements and design to
achieve these requirements.
(iv) Construction : Here the code will be generated and tested.
(v) Deployment :
Here, a complete or partially complete version of the software is represented to the
customers to evaluate and they give feedbacks based on the evaluation.
Advantages of Waterfall model:-
• It is suitable for routine type of projects, where all the requirements are well understood.
• Risk is low.
• Work flow is in a linear (i.e., sequential) fashion.
• Used often with well-defined adaptations or enhancements to current software.
• It works very quickly.
Disadvantages of Waterfall model: -
• Doesn't support iteration, so changes can cause confusion.
• Difficult for customers to state all requirements explicitly.
• Customers must have patience (because a working version of the program doesn't occur
until the final phase).
• Inflexible partitioning of the project into distinct stages makes it difficult to respond to
changing customer requirements.
• The waterfall model is mostly used for large systems engineering projects where a system
is developed at several sites.
2.INCREMENTAL PROCESS MODELS:-
The incremental process models are classified into 2 types. They are
1. Incremental model.
2. RAD model.
Incremental Model:-The incremental model combines the elements of the waterfall model
with the iterative nature of prototyping model. The incremental model applies the linear

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

sequences in incremental steps .The graphical representation of incremental model is shown


as:

The incremental model combines elements of the linear sequential model with the
iterative philosophy of prototyping. The incremental model applies linear sequences in a
staggered fashion as calendar time progresses. Each linear sequence produces a deliverable
“increment” of the software. In incremental model, the first increment is often a core product.
For example, word-processing software developed using the incremental paradigm might
deliver basic file management, editing, and document production functions in the first
increment; more sophisticated editing and document production capabilities in the second
increment; spelling and grammar checking in the third increment; and advanced page layout
capability in the fourth increment etc.,
The incremental model is iterative in nature. So, it mainly focuses on the delivery of an
operational product with each increment.

Advantages of Incremental model:-


• Used when requirements are not clear.
• Customer value can be delivered with each increment so system functionality is
available earlier.
• Early increments act as a prototype to help elicit(to draw/bring out) requirements for
later increments.
• Lower risk of overall project failure.

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

• It results in better testing, because testing each increment is easier than testing the
whole system at once.
• Multiple independent deliveries are identified.
• Work flow is in a linear (i.e., sequential) fashion within an increment and is staggered
(moved) between increments.
• Iterative in nature; focuses on an operational product with each increment
• It is useful when their is less number of staff people.
Disadvantages of Incremental model:-
• Additional staff must be added for the next increments.
• The software is not released as a whole.

RAD Model :
Rapid Application Development (RAD) is an incremental software development process
model which is a “high-speed” adaptation of the linear sequential model in which rapid
development is achieved by using component-based construction. If requirements are well
understood and project scope is constrained, the RAD process enables a development team to
create a “fully functional system” within very short time periods, such as in 60 to 90 days.

(i) Communication :
This step works to understand the business problems and the information characteristics that
the software must accommodate.

(ii) Planning : This is very important as multiple teams work on different systems.

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

(iii) Modeling : Modeling includes the major phases, like business, data, process modeling
and establishes design representation that serves as the basis for RAD’s construction activity.

1. Business Modeling: The information flow among business functions is defined by


answering questions like what information drives the business process? What information
is generated? Who generates the information?
2. Data Modeling: The information collected from business modeling is refined or purified
into a set of data objects (ex: entities) that are needed to support the business. The
attributes (characteristic of each entity) are identified and the relationships between these
data objects (entities) are defined.
3. Process Modeling: The data objects defined in the data modeling phase are transformed
to achieve the information flow necessary to implement a business function. Processing
descriptions are created for adding, modifying, deleting or retrieving a data object.
(iv) Construction: This includes the use of preexisting software components and the
application of automatic code generation.
(v) Deployment: Deployment establishes a basis for the subsequent repetitions, if required.

Advantages Of Rapid Application Development(RAD) :-


 Flexible and adaptable to changes

 Re-usability of components help to speed up development.


 It increases the quality.
 Can handle large projects without a doubt
 RAD realizes an overall reduction in project risk.
 It incorporates short development cycles.
 Promotes strong collaborative atmosphere and dynamic gathering of
requirements.
 It increases speed of developing software. It can be achieved using methods like
rapid prototyping, virtualization of system related routines, the use of CASE tools and
other techniques.
 Some systems also deliver advantages of interoperability, extensibility, and
portability.

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

Disadvantages Of Rapid Application Development(RAD) :-


 RAD is not useful for small projects.

 Requires more resources and money to implement RAD.


 All applications are not compatible with RAD.
 RAD is not appropriate when technical risks are high.
 Need both customer and developer commitments to complete a project. Otherwise
RAD will fail.

3.EVOLUTIONARY PROCESS MODELS:-


The Evolutionary process models are iterative ,that enables software engineers to develop
increasingly more complete versions of the software. The evolutionary process models are
of different types. They are
 SPIRAL MODEL
 PROTYPING MODEL
SPIRAL MODEL:-The Spiral model was invented by Dr. Barry Boehm in 1988. The spiral
model is an evolutionary software process model that combines the iterative nature of
prototyping with the controlled and systematic aspects of the linear sequential model. Using
the spiral model, software is developed in a series of incremental releases. During early
iterations, the incremental release might be a paper model or prototype. During later
iterations, increasingly more complete versions of the engineered system are produced. A
spiral model is divided into a number of framework activities, also called task
regions. Typically, there are between three and six task regions. Given figure is of a spiral
model that contains five task regions.

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

(i) Customer communication — Tasks required to establish effective communication


between developer and customer.

(ii) Planning — Tasks required to define resources, timelines, and other project related
information.

(iii) Modeling — Tasks required in building one or more representations of the application.

(iv) Construction and release — Tasks required to construct, test, install.

(v) Deployment — Tasks required to deliver the software, getting feedbacks etc.

Software engineering team moves around the spiral in a clockwise direction,


beginning at the center. The first circuit around the spiral might result in the development of a
product specification; subsequent passes around the spiral might be used to develop a
prototype and then progressively more sophisticated versions of the software. Each pass
through the planning region results in adjustments to the project plan. Cost and schedule are
adjusted based on feedback derived from customer evaluation. In addition, the project
manager adjusts the planned number of iterations required to complete the software.

Advantages of Spiral model:-


 It follows an evolutionary approach.
 It is used when requirements are not well understood and risks are high.
 Inner spirals focus on identifying software requirements and project risks; may also
incorporate prototyping
 Outer spirals take on a classical waterfall approach after requirements have been defined,
but permit iterative growth of the software.
 Serves as a realistic model for large-scale software development (Good for large and
mission-critical projects).
Disadvantages of Spiral model:-
 Requires considerable expertise in risk assessment(Risk analysis requires highly

specific expertise.).
 Cost involved in this model is usually high.
 It is not suitable for low risk projects.
 Project’s success is highly dependent on the risk analysis phase.

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

Agile Methodology

1. The meaning of Agile is swift or versatile."Agile process model" refers to a software


development approach based on iterative development.
2. Each iteration is considered as a short time "frame" in the Agile process model, which
typically lasts from one to four weeks.
3. The division of the entire project into smaller parts helps to minimize the project risk
and to reduce the overall project delivery time requirements.

Phases of Agile Model:

Following are the phases in the Agile model are as follows:

1.Requirements gathering

2.Design the requirements

3.Construction/ iteration

4.Testing/ Quality assurance

5.Deployment

6.Feedback

1. Requirements gathering: In this phase, you must define the requirements. You should
explain business opportunities and plan the time and effort needed to build the project. Based
on this information, you can evaluate technical and economic feasibility.

2. Design the requirements: When you have identified the project, work with stakeholders
to define requirements. You can use the user flow diagram or the high-level UML diagram to
show the work of new features and show how it will apply to your existing system.

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

3. Construction/ iteration: When the team defines the requirements, the work begins.
Designers and developers start working on their project, which aims to deploy a working
product. The product will undergo various stages of improvement, so it includes simple,
minimal functionality.

4. Testing: In this phase, the Quality Assurance team examines the product's performance
and looks for the bug.

5. Deployment: In this phase, the team issues a product for the user's work environment.

6. Feedback: After releasing the product, the last step is feedback. In this, the team receives
feedback about the product and works through the feedback.

Agile process models

1. Scrum

2. Crystal

3. Dynamic Software Development Method(DSDM)

4. Feature Driven Development(FDD)

5. Lean Software Development

6. eXtreme Programming(XP)

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)


GURU NANAK INSTITUTIONS TECHNICAL CAMPUS (AUTONOMOUS)
SCHOOL OF ENGINEERING & TECHNOLOGY

Extreme Programming (XP) is an Agile software development methodology that focuses on


delivering high-quality software through frequent and continuous feedback, collaboration,
and adaptation. XP emphasizes a close working relationship between the development
team, the customer, and stakeholders, with an emphasis on rapid, iterative development and
deployment.

Extreme programming is one of the most popular and well-known approaches in the family
of agile methods. an XP project starts with user stories which are short descriptions of what
scenarios the customers and users would like the system to support. Each story is written on
a separate card, so they can be flexibly grouped.
Good Practices in Extreme Programming
Some of the good practices that have been recognized in the extreme programming model
and suggested to maximize their use are given below:
 Code Review: Code review detects and corrects errors efficiently. It suggests pair
programming as coding and reviewing of written code carried out by a pair of
programmers who switch their work between them every hour.
 Testing: Testing code helps to remove errors and improves its reliability. XP suggests
test-driven development (TDD) to continually write and execute test cases. In the TDD
approach, test cases are written even before any code is written.
 Incremental development: Incremental development is very good because customer
feedback is gained and based on this development team comes up with new increments
every few days after each iteration.
 Simplicity: Simplicity makes it easier to develop good-quality code as well as to test
and debug it.
 Design: Good quality design is important to develop good quality software. So,
everybody should design daily.
 Integration testing: Integration Testing helps to identify bugs at the interfaces of
different functionalities. Extreme programming suggests that the developers should
achieve continuous integration by building and performing integration testing several
times a day.

B. TECH – COMPUTER SCINCE AND ENGINEERING – GNITC (SPECIAL BATCH)

You might also like