An Autonomous Institution
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
SOFTWARE ENGINEERING
Course code 21HCS45T Year/Semester II Yr/ IV Sem
Category Professional Core Course (Pcc) L T P C
Course Title SOFTWARE ENGINEERING 3 0 0 3
(Common to CSE & IT)
UNIT- I (SOFTWARE PROCESS AND AGILE
PRESENTED BY DEVELOPMENT)
Dr. [Link] Murugan.,Ph.D
Assoc. Professor
Department of Computer Science and
Engineering
SOFTWARE ENGINEERING
Course Outcomes & Blooms level
Course Outcomes:
CO. No. Course Outcomes Blooms
level
On successful completion of this Course, students will be able to
C405.1 Explain the concept of Software life cycle models. K2
C405.2 Analyze the software requirement specification and design software according to the specification. K3
C405.3 Make use of different types of testing techniques and software maintenance. K3
C405.4 Develop project schedule, estimate project cost and effort required. K3
C405.5 Illustrate reusability and distributed software engineering and tools. K2
C405.6 Apply the Software Engineering Concepts for Developing a Project K3
Course Outcomes Mapping With Program Outcomes And Program Specific Outcomes
CO No. PO-1 PO-2 PO-3 PO-4 PO-5 PO-6 PO-7 PO-8 PO-9 PO-10 PO-11 PO-12 PSO-1 PSO-2
C405.1 2 1 - - - - - - - - - 1 2 1
C405.2 3 2 1 - - - - - - - - 1 3 2
C405.3 3 2 1 - - - - - - - - 1 3 2
C405.4 3 2 1 - - - - - - - - 1 3 2
C405.5 2 1 - - - - - - - - - 1 2 1
Note:C405.6
1: Slight,3 2: Moderate,
2 1
3:- Substantial
- - - - - - - 1 3 2
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 2
SOFTWARE ENGINEERING
CONTENT
UNIT I SOFTWARE PROCESS AND AGILE DEVELOPMENT
- Introduction to Software Engineering
- Software Process
- Process models
- Prescriptive Process Models
- Specialized Process Models
- Agile Development
- Extreme Programming (XP)
- XP Process
- Other Agile Process Models.
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 3
SOFTWARE ENGINEERING
CONTENT
UNIT I SOFTWARE PROCESS AND AGILE DEVELOPMENT
- Introduction to Software Engineering
- Software Process
- Process models
- Prescriptive Process Models
- Specialized Process Models
- Agile Development
- Extreme Programming (XP)
- XP Process
- Other Agile Process Models.
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 4
SOFTWARE ENGINEERING
Introduction to Software Engineering
“Software engineering is a discipline in which theories, methods
and tools are applied to develop professional software product.”
• software engineering is based on two terms :
• Discipline
• Product
• Generic - That means developed to be sold to a range of different customers.
• Custom - That means developed for a single customer according to their
specification.
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 5
SOFTWARE ENGINEERING
Introduction to Software Engineering
Fig: Failure curves for hardware and software
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 6
SOFTWARE ENGINEERING
Introduction to Software Engineering
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.
Fig: Layered technology
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 7
SOFTWARE ENGINEERING
Process models
“Software process can be defined as the structured set of
activities that are required to develop the software system.”
• fundamental activities are
• Specification
• Design and implementation
• Validation
• Evolution
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 8
SOFTWARE ENGINEERING
Prescriptive Process Models
“The process model can be defined as the abstract representation
of process.
• The software process model is also known as Software Development Life Cycle
(SDLC) Model or software paradigm, are called prescriptive process models.
Fig: Prescriptive process model
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 9
SOFTWARE ENGINEERING
Prescriptive Process Models
• The waterfall model is also called as 'linear-sequential model' or
'classic life cycle model'. It is the oldest software paradigm.
• Then progresses through analysis, design, coding, testing and
maintenance.
Fig. Waterfall model
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 10
SOFTWARE ENGINEERING
Prescriptive Process Models
• The incremental model has same phases that are in waterfall
model. But it is iterative in nature.
Fig: The incremental model
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 11
SOFTWARE ENGINEERING
Prescriptive Process Models
• The RAD Model is a type of
incremental process model in
which there is extremely
short development cycle.
• When the requirements are fully understood
and the component based construction
• Using the RAD model the fully functional
system can be developed within 60 to 90 days.
• Various phases in RAD are Requirements
Gathering, Analysis and Planning, Design, Build
or Construction and finally Deployment.
• Multiple teams work on developing the
software system using RAD model parallely.
Fig. Rapid application development
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 12
SOFTWARE ENGINEERING
Prescriptive Process Models
• 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 user in input and output
format.
Fig. Prototyping
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 13
SOFTWARE ENGINEERING
Prescriptive Process Models
• This model possess the iterative
nature of prototyping model and
controlled and
• systematic approaches of the linear
sequential model.
• This model gives efficient
development of incremental versions
of software. In this model, the
software is developed in series of
increments.
• The sprial model is divided into a
number of framework activities.
These framework activities are
denoted by task regions. Fig. Spiral model
• Usually there are six tasks regions.
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 14
SOFTWARE ENGINEERING
Prescriptive Process Models
• The concurrent development
model is also called as
concurrent engineering.
• In this model, the framework
activities or software development
tasks are represented as states.
• The modeling or designing phase
of software development can be in
one of the states like under
development, waiting for
modification, under revision or
under review and so on.
• . Fig. Concurrent development model
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 15
SOFTWARE ENGINEERING
Specialized Process Models
The specialized models are used when only collection of
specialized technique or methods are expected for developing
the specific software.
Various types of specialized models :
• Component based development
• Formal methods model
• Aspect oriented software development
Fig. Activities for formal method model
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 16
SOFTWARE ENGINEERING
Agile Development
The Agile Manifesto, also
called the Manifesto for Agile
Software Development, is a
formal declaration of four key
values and 12 principles to
guide an iterative and people-
centric approach to software
development.
• The agile methods were
developed to overcome the
weakness of conventional
software engineering.
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 17
SOFTWARE ENGINEERING
Agile Development
Agile Process
• In 1980’s the heavy weight, plan based software development approach
• In this approach too many things are done which were not directly related to software
product being produced.
• This approach was rigid.
• This is light-weight methods 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.
• he 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.
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 18
SOFTWARE ENGINEERING
Agile Development
Agile Methodology
The agile method proponents claim that if the software development is carried out
using the agile approach then it will allow the software team to accommodate
changes late in a software project without dramatic cost and time impact.
Fig. Influence of software development approach on agile process
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 19
SOFTWARE ENGINEERING
Extreme Programming (XP)
Extreme Programming (XP) is one of the best known agile process.
It is suggested by Kent Beck in 2000.
• Communication : The effective communication must be established between software
developers and stakeholders in order to convey the important concepts and to get the
important feedback.
• Simplicity : XP focuses on the current needs instead of futures needs to incorporate in the
design. Hence the XP believes that the Software design should be simple.
• Feedback : The feedback for the software product can be obtained from the developers of
the software, customers, and other software team members.
• Courage : The strict adherence to certain XP practices require courage. The agile XP team
must be disciplined to design the system today, recognize the future requirements and
make the changes dramatically as per the demand.
• Respect : By following the above states XP values the agile team can win the respect of
stakeholders.
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 20
SOFTWARE ENGINEERING
XP Process
Process
The extreme programming process is explained as follows:
• Customer specifies and priorities the system requirements. Customer becomes one of the
important members of development team. The developer and customer together prepare
a story-card in which customer needs are mentioned.
• The developer team then aims to implement the scenarios in the story-card.
• After developing the story-card the development team breaks down the total work in
small tasks. The efforts and the estimated resources required for these tasks are
estimated.
• The customer priorities the stories for implementation. If the requirement changes then
sometimes unimplemented stories have to be discarded. Then release the complete
software in small and frequent releases.
• For accommodating new changes, new story-card must be developed.
• Evaluate, the system along with the customer.
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 21
SOFTWARE ENGINEERING
XP Process
This process is demonstrated by the following
Fig. XP process
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 22
SOFTWARE ENGINEERING
Other Agile Process Models
• Various Agile Software development methodologies Some well known
Agile Software Development methods are:
• eXtreme Programming
• Scrum
• Agile Modeling
• Adaptive Software Development (ASD)
• Crystal Clear and other Crystal methodologies
• Dynamic Systems Development Methods (DSDM)
• Feature Driven Development (FDD)
• Lean software development
• Agile Unified Process (AUP)
Vel Tech High Tech Dr Rangarajan Dr Sakunthala Engineering College An Autonomous Institution 23
Thank you
06/02/2024