0% found this document useful (0 votes)
31 views

SEN Unit 1. CM Software Development Process

Uploaded by

Kalyani Mhaske
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)
31 views

SEN Unit 1. CM Software Development Process

Uploaded by

Kalyani Mhaske
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/ 37

Program: Computer Technology

Class: CM4I
Course: Software Engineering
Course Code: 22413

UNIT 1
SOFTWARE DEVELOPMENT PROCESS

Marks: 12

Course Outcome (CO1): Apply suitable software process model for


software development.

1
Padmashri Dr. Vithalrao Vikhe Patil Institute of Technology &
Engineering (POLYTECHNIC) Loni
INSTITUTE VISION AND MISSION

Institute Vision:

To provide quality technical education to rural students.

Institute Mission:

M1: To impart trainings for developing hands on skills.

M2: To develop technical skills by practicing the best teaching-learning pedagogies.

M3: To enhance career opportunities through industry connect.

SEN 22413 CM4I 2


Department of Computer Technology
PROGRAM VISION AND MISSION

Program Vision:
To provide quality technical education in the computer engineering field that prepares the rural students for socio-economic development.
Program Mission:
M1: To impart technical skills to solve problems in the field of computer engineering.
M2: To mould the students as computer professionals through the teaching - learning process.
M3: To create career opportunities through industry interaction and higher education.

PSOs (Program Specific Outcomes)


PSO1: Use concepts of fundamental engineering, hardware and software to solve engineering problems.
PSO2: Design and develop quality software product for multidisciplinary industry.
PSO3: Apply programming skills to meet the growing needs of computer profession.

PEOs (Program Educational Objectives)


PEO1: Provide programming skills to develop solutions for the ever changing information technology field.
PEO2: Adapt broad based programming technologies to work in multidisciplinary work environments.
PEO3: Create opportunities for higher education through teaching learning process.

SEN 22413 CM4I 3


Software Engineering Concepts
• Software:
Set of instructions or set of programs which processes input and
provides output.

• Types of Software:
1. System S/W: program to run computer itself. Ex: OS
2. Networking S/W: provide support to interact one computer to
another. Ex: www
3. Embedded S/W: s/w integrated with hardware. Ex: washing m/c
4. Business S/W: used to support business. Ex: Banking
5. Scientific S/W: used for scientific & engineering users.
Ex: AutoCAD

SEN 22413 CM4I 4


Software Engineering Concepts
• Characteristics of Software:

1. Software is developed, not manufactured.

2. Software does not wear out.

3. Software is custom built.

4. Software is easy to replicate.

5. Software cannot be seen or touched.

6. Software can be complex, as it can have many interrelated parts


and features.

• Software Engineering:
Process of analyzing user needs and designing, constructing, testing
end user application, that will satisfy user needs.
SEN 22413 CM4I 5
Software Engineering Layered Approach
1. Tools: provides computerized and other tools to support methods
and process in s/w development.
2. Methods: provides technical knowledge for developing s/w.
(requirement analysis, design, coding, testing, maintenance)
3. Process: outline for set of process, that allows development of s/w
on time.
4. Quality Focus: it tests the end product (s/w) to see if it meets the
user requirements. Tools
Methods

Process

Quality Focus
SEN 22413 CM4I 6
Software Development Framework
A framework, or software framework, is a platform for developing
software applications. It provides a foundation on which software
developers can build programs for a specific platform.

For example, a framework may include


predefined classes and functions that can be used to process input,
manage hardware devices, and interact with system software.

In computer programming a framework can be best defined as a tool


which allows to develop software and create systems.

SEN 22413 CM4I 7


Software Process Framework
Process framework is a standard which suggest the way to build and
deploy an application.

S/W process framework includes s/w engineering process.

5 activities in framework:

1. Communication: interaction with customer to gather requirements.

2. Planning: plan the number of tasks, work schedule and resources


required.

3. Modeling: representation of things. Creates models of software.


Ex: Diagrams (UML)

4. Construction: coding and testing of s/w.

5. Deployment: complete or partially completed s/w is handover to


customer. Take the feedback from customer for improvement.
SEN 22413 CM4I 8
Software Process Framework

SEN 22413 CM4I 9


Software Process Models
Process Model: A software process model is an abstraction of the software
development process. The models specify the stages and order of a process.
A model will define the following:
• The tasks to be performed
• The input and output of each task
• The pre and post conditions for each task
• The flow and sequence of each task
The goal of a software process model is to provide guidance for controlling
and coordinating the tasks to achieve the end product and objectives as
effectively as possible.

Process Models or SDLC models (Software Development Life Cycle models):


1. Waterfall model 2. V model
3. Incremental model 4. RAD model
5. Agile model 6. Iterative model
7. Spiral model 8. Prototype model
SEN 22413 CM4I 10
Software Process Models
Three types:

1. Perspective Process Models

a. Waterfall Model

b. Incremental Model

c. RAD Model

2. Evolutionary Process Models

a. Spiral Model

b. Prototyping

3. Specialized Process Models

a. Aspect oriented software development

b. Component based development

c. Formal methods model


SEN 22413 CM4I 11
Software Process Models: Waterfall Model
Describes how s/w will be developed in different phases.

One phase is completed before start of next phase (no overlapping of phases)

1. Requirement: gather functional and non-functional requirements from customers.

2. Design: prepare representation or models (using system architecture or diagrams)


of s/w using requirement analysis.

3. Development (Implementation): small modules are developed using coding.

4. Integration and Testing: all modules are combined in single s/w, then this s/w is
tested for errors.
5. Deployment: s/w is handover to customer
after completion.
6. Maintenance: after handover,
the feedback from customer is taken
and s/w can be changed is required
by the customer.

SEN 22413 CM4I


12
Software Process Models: Waterfall Model

Advantages:

1. Structuring the activities is simple.

2. Transfer the information easily from one phase to another.

3. Arranges tasks easy and simple.

Disadvantages:

1. Making changes is difficult.

2. More development time.

3. No user involvement.

4. Delay in testing.

SEN 22413 CM4I


13
Software Process Models: V Model (optional)
The V-model represents a
development process that may
be considered an extension of
the waterfall model.

Instead of moving down in a


linear way, the process steps
are bent upwards after the
coding phase, to form the
typical V shape.

The V-Model demonstrates the


relationships between each
phase of the development life
cycle and its associated phase
of testing.

SEN 22413 CM4I


14
Software Process Models: Incremental Model
The incremental model is a method of software development where the model is
designed, implemented and tested incrementally (a little more is added each time) until
the product is finished.

It involves both development and maintenance. The product is defined as finished when
it satisfies all of its requirements.

Each iteration passes through the requirements, design, coding and testing phases.

SEN 22413 CM4I


15
Software Process Models: Incremental Model
Advantages:

1. Less development time.

2. Model is flexible.

3. Easy to test during smaller iterations.

4. Customer involved in each iteration.

5. Easy to manage risk in smaller iterations.

Disadvantages:

1. Need good planning and design.

2. Needs clear definition of whole project, as it is divided in to parts.

3. Cost higher than waterfall model.

SEN 22413 CM4I


16
Software Process Models: Iterative Model (optional)
Iterative process starts with a simple implementation of a subset of the software
requirements and iteratively enhances the evolving versions until the full system is
implemented. At each iteration, design modifications are made and new functional
capabilities are added.

SEN 22413 CM4I


17
Software Process Models: RAD Model
The Rapid Application Development (or RAD) model is based on prototyping and iterative model with
no (or less) specific planning.

Put lesser emphasis on planning tasks and more emphasis on development.

SEN 22413 CM4I


18
Software Process Models: RAD Model
Below phases are in rapid application development (RAD) model:
1. Communication: understand the business problems.

2. Planning: planning of work in various teams.

3. Modeling: design representation.

4. Construction: implementation of application or code generation.

5. Deployment: handover the software.

Advantages:

1. Feedback of user is available at initial stage.

2. User involves in every stage.

3. Less development time.

4. Reusability of product.

Disadvantages:

1. Absence of reuse product leads to project failure.

2. Coordination in teams and individual.

SEN 22413 CM4I


19
Software Process Models: Spiral Model
Spiral model is a combination of iterative development process model and waterfall
model.

Phases of spiral model:

• Identification: This phase starts with gathering the business requirements in the
baseline spiral (identification of system requirements, subsystem requirements
and unit requirements are all done in this phase.)
• Design: The Design phase starts with the conceptual design in the baseline spiral
and involves architectural design, logical design of modules, physical product
design and the final design in the subsequent spirals.

• Construct or Build: The Construct phase refers to production of the actual


software product at every spiral.
Then in the subsequent spirals with higher clarity on requirements and design
details a working model of the software called build is produced with a version
number. These builds are sent to the customer for feedback.
• Evaluation and Risk Analysis: Risk Analysis includes identifying, estimating and
monitoring the technical feasibility and management risks, such as schedule
slippage and cost overrun. After testing the build, at the end of first iteration, the
customer evaluates the software andSENprovides
22413 CM4I
feedback.
20
Software Process Models: Spiral Model

Advantages:
1. Includes requirement changes.
2. Focuses on early error detection.
3. Provides quality.

Disadvantages:
1. Costly.
2. High risk.
SEN 22413 CM4I
21
Software Process Models: Prototyping
Model follows iterative approach.
Phases:

1. Communication: gather the requirements.

2. Quick Plan: plan the activities.

3. Quick Design: representation of s/w.

4. Construction: code generation.

5. Deployment: handover the application

Advantages:
1. More efforts over development
(not on documentation)
2. Lots of feedback taken from users.
3. Missing functionality easily identified.
4. Flexible for changes.
SEN 22413 CM4I
22
Software Process Models: Agile Model
Agile SDLC model is a combination of iterative and incremental process models
with focus on process adaptability and customer satisfaction by rapid delivery of
working software product.
Agile Methods break the product into small incremental builds. These builds are
provided in iterations.
Every iteration involves cross functional teams working simultaneously on various
areas like:
1. Planning
2. Requirements Analysis
3. Design
4. Coding
5. Unit Testing and
6. Acceptance Testing.
At the end of the iteration, a working product is displayed to the customer and
important stakeholders.
SEN 22413 CM4I
23
Software Process Models: Agile Model

SEN 22413 CM4I


24
Software Process Models: Agile Model
Advantages:
1. Very realistic approach to software development.
2. Promotes teamwork.
3. Flexible for changes.
4. Delivers early partial working model.
5. Easy to manage.
6. Minimum documentation.

Disadvantages:
1. More risk.
2. Depends more on user interaction.
3. Not used in complex mode.
4. Early delivery leads in adjustment in functionality.

SEN 22413 CM4I


25
Agile Software Development
Agile software development refers to a group of software development methodologies
based on iterative development, where requirements and solutions evolve through
collaboration between self-organizing cross-functional teams.
i.e cross functional teams working simultaneously on various phases of SDLC.
Features:
• Quality: testing of s/w is integrated throughout the SDLC.
• Visibility: customer is involved in SDLC.
• Early identification of issues and provide immediate solutions.
• Make the changes immediately as per dynamic requirements.
• Iterative Releases: small parts of s/w developed and handover to customer for
changes.
• Transparency: clients are directly involved in this process.
• Early Delivery: testing and deployment of s/w is made in iterative process with help of
customer.
• Predictable cost and schedule: customer involved in the process, so customer can
judge the s/w cost and schedule for completing
SEN 22413 CM4I the process.
26
Agile Software Development: SCRUM
Scrum is a subset of Agile. It is a lightweight process framework for agile
development, and the most widely-used one.
•A “process framework” is a particular set of practices
•“Lightweight” means that the overhead of the process is kept as small as possible,
to maximize the amount of productive time available for getting useful work done.
•Scrum is most often used to manage complex software and product development,
using iterative and incremental practices.
•Scrum significantly increases productivity and reduces time to benefits relative to
classic “waterfall” processes.

Scrum process benefits the organization by helping it to


1. Increase the quality of the deliverables
2. Cope better with change (and expect the changes)
3. Provide better estimates while spending less time creating them
4. Be more in control of the project SEN
schedule
22413 CM4I
and state
27
Agile Software Development: SCRUM

SEN 22413 CM4I


28
Adaptive Software Development
Adaptive Software Development is a method to build complex software and system. ASD
focuses on human collaboration and self-organisation. ASD “life cycle” incorporates three
phases namely:
1. Speculation 2. Collaboration 3. Learning

1. Speculation:
During this phase project is initiated and planning is conducted. Initiation information like
project requirements, user needs, customer mission statement etc.

2. Collaboration:
It is the difficult part of ASD as it needs the workers to be motivated. It collaborates communication
and teamwork. People working together must trust each others to
•Criticize without animosity,
•Assist without resentment,
•Work as hard as possible,
•Possession of skill set,
•Communicate problems to find effective solution.

3. Learning:
Learning helps the workers to increase their level of understanding over the project.
Learning process is of 3 ways:
1.Focus groups
2.Technical reviews
3.Project postmortem
SEN 22413 CM4I
29
Adaptive Software Development

SEN 22413 CM4I


30
Dynamic Systems Development Method DSDM
DSDM is an agile approach which provides a framework for building and maintaining
systems.

Phases:
1. Feasibility Study:
It establishes the basic business requirements and constraints associated with the
application to be built.
Business Study: It establishes the functional and information requirements that will allow the
application to provide business value.
2. Functional Model Iteration:
produces a set of increments that demonstrate functionality for the customer.
In this phase risk has to be identified and recognize a plan on how to deal with risk for
future developments.

3. System Design and Build Iteration:


In this phase the actual system is built based on the non-functional requirements carried out
in the previous phase and the built-in system is implemented in the next phase once the
testing is done.

4. Implementation:
This is the final phase in the methodology where the built-in system is moved into the
production environment from the developed environment.
SEN 22413 CM4I
31
Dynamic Systems Development Method DSDM

Advantages:
1. User involvement.
2. Iterative and incremental development.
3. Testing at each phase.

SEN 22413 CM4I


32
Selection Criteria for Software Process Model

• Project Type
• Risk associated with Project
• Requirement of the Project
• Users (limited or unlimited)
• Time required
• Members required
• Documentation
• Cost

SEN 22413 CM4I


33
Difference: Waterfall and Incremental Model

Waterfall Model Incremental Model

1. Phases clearly defined 1. Few steps are defined.

2. One after another phase 2. Iterative approach.


approach

3. Old model. 3. New model.

4. Less time 4. More time

SEN 22413 CM4I


34
Difference: Perspective and Agile Model

Perspective Process Model Agile Process Model

1. Traditional model. 1. Recent model.

2. Focus on tasks, schedule, 2. Focus on iterative, time bound,


tracking. collaborative approach.

3. Product oriented. 3. People oriented.

4. Ex: Waterfall, incremental, Ex: Extreme programming.


protype, RAD, Spiral.

SEN 22413 CM4I


35
Unit 1: Assignment Questions
2 Marks
1. Define software. List any four types of software. (L1)
2. What is software engineering? (L1)
3. List any four selection criteria for Software Process Model. (L1)
4. Enlist and explain software characteristics (any two). (L1)

4 Marks
1. Explain Waterfall Model with neat labelled diagram. (L2)
2. Draw and explain Software Engineering Layered technology approach. (L3)
3. Distinguish between perspective process model and agile process model.
(L4)
4. Explain Dynamic Systems Development Method (DSDM). (L2)
5. Explain process framework with suitable diagram. (L2)

SEN 22413 CM4I


36
Thank You

SEN 22413 CM4I 37

You might also like