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

SE Module 1

SE

Uploaded by

pranavstudy100
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

SE Module 1

SE

Uploaded by

pranavstudy100
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 37

SOFTWARE ENGINEERING

MODULE 1-
INTRODUCTION TO SOFTWARE ENGINEERING AND PROCESS MODELS
PROF. SHIVANI KUDUPALE
DEPT- COMPUTER ENGINEERING, RGIT
Software Engineering Introduction

• Computer software is a product or program code


developed by software engineers.
• The applications of computer software are:
Telecommunication, military, medical sciences, online
shopping, office products, IT industry etc.
• A Software consists of data and the related documents.
• The software is the key element in all computer based
systems and products.
• The main purpose behind software engineering is to
give a framework for building a software with best
quality.
Characteristics of a software

• Software should achieve a good quality in design and


meet all the specifications of the customer.

• Software must be efficient i.e. the ability of the


software to use system resources in an effective and
efficient manner.

• Software must be integral i.e. it must prevent from


unauthorized access to the software or data.
Software Process

A software process (also knows as software


methodology) is a set of related activities that leads to
the production of the software. These activities may
involve the development of the software from the
scratch, or, modifying an existing system.
Any software process must include the following four
activities
Software Process Framework

• Framework is a Standard way to build and deploy


applications.
• Software Process Framework is a foundation of
complete software engineering process.
• Software process framework includes all set of
umbrella activities.
• It also includes number of framework activities that are
applicable to all software projects.
A generic process framework encompasses five
activities which are given below one by one:
• 1. Communication: In this activity, heavy
communication with customers and other stakeholders,
requirement gathering is done.
• 2. Planning: In this activity, we discuss the technical
related tasks, work schedule, risks, required resources
etc.
• 3. Modeling: Modeling is about building
representations of things in the ‘real world’. In
modeling activity, a product’s model is created in order
to better understand the requirements.
• 4. Construction: In software engineering, construction is the application
of set of procedures that are needed to assemble the product.
• In this activity, we generate the code and test the product in order to
make better product.
• 5. Deployment: In this activity, a complete or non-complete products or
software are represented to the customers to evaluate and give feedback.
• on the basis of their feedback we modify the products to supply better
product.
Process Model
Capability Maturity Model(CMM)
• It is not a software process model.
• It is a methodology used to develop and refine an
organization’s software development process.
• It is based on profound feedback and development
practices adopted by the most successful organizations
worldwide.
• Describes an evolutionary improvement path for
software organizations from an adhoc, immature
process to a mature.
• Provides guidance on how to gain control of processes
for developing and maintaining software
What are the CMM Levels?
(The five levels of software process maturity)

Focus on process
improvement

Processes measured &


controlled

Processes characterized for the


organization & is proactive

Processes characterized for


projects and is often reactive

Processes unpredictable,
poorly controlled & reactive
Level 1: Initial
Initial : The software process is
characterized as ad-hoc, and occasionally
even chaotic(disordered). Few processes are
defined, and success depends on individual
effort.
The organization usually does not provide a
stable environment.
Products developed are often over budget and
schedule
Wide variations in cost, schedule, functionality
and quality targets
Level 2: Repeatable

This level of Software Development Organization has


a basic and consistent project management processes
to track cost, schedule, and functionality.
The process is in place to repeat the earlier successes
on projects with similar applications.
Software project standards are defined and faithfully followed
Processes may differ between projects
Earlier successes can be repeated.
Level 3: Defined

At this level, documentation of the standard


guidelines and procedures takes place.

The software process for both management


and engineering activities is documented,
standardized, and integrated into a standard
software process for the entire organization.
Level 4: Managed
Management can effectively control the software
development effort using precise measurements.
At this stage, quantitative quality goals are set for the
organization for software products as well as software
processes.
Software Quality Management- It includes the
establishment of plans and strategies to develop
quantitative analysis and understanding of the
product’s quality.
Quantitative Management- It focuses on controlling
the project performance in a quantitative manner.
Level 5: Optimizing
This is the highest level of process maturity in
CMM and focuses on continuous process
improvement in the organization using quantitative
feedback.
Process Change Management- Its focus is on the
continuous improvement of the organization’s
software processes.
Technology Change Management- It consists of
the identification and use of new technologies to
improve product quality and decrease product
development time.
Generic Process Model

1. 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.
4. Construction: Construction consists of code generation and the
testing part.
5. Deployment: Deployment step consists of delivering the product
to the customer and take feedback from them.
1. The Waterfall Model
• The waterfall model is also called as 'Linear
sequential model' or 'Classic life cycle model'.

• This model is used for the small projects.

• In this model, feedback is taken after each phase to


ensure that the project is on the right path.

• Testing part starts only after the development is


complete
Waterfall model
• Advantages of waterfall model
• The waterfall model is simple and easy to understand, implement, and
use.
• It avoids overlapping of phases because each phase is completed at once.
• This model works for small projects because the requirements are
understood very well.
• This model is preferred for those projects where the quality is more
important as compared to the cost of the project.
V- Model design

• The V - model is SDLC model where execution of


processes happens in a sequential manner in Vshape. It
is also known as Verification and Validation model.
• V - Model is an extension of the waterfall model and is
based on association of a testing phase for each
corresponding development stage.
• Under V-Model, the corresponding testing phase of the
development phase is planned in parallel.
• Coding phase joins the two sides of the V-Model.
• Verification Phases

• Following are the Verification phases in V-Model:

• Business Requirement Analysis

• System Design

• Architectural Design

• Module Design

• Coding
• Validation Phases Following are the Validation phases
in V-Model:

• Unit Testing

• Integration Testing

• System Testing

• Acceptance Testing
•PROS
•This is a highly disciplined model and Phases are
completed one at a time.
•Works well for smaller projects where
requirements are very well understood.
•Simple and easy to understand and use.

•CONS
•High risk and uncertainty.
•Not a good model for complex and object-
oriented projects.
•Poor model for long and ongoing projects.
•This model does not support iteration of phases.
3. Incremental Process model

• The incremental model combines the elements of


waterfall model and they are applied in an iterative
fashion.
• Each increment builds the product and submits it to
the customer for any suggested modifications.
• The next increment implements on the customer's
suggestions and add additional requirements in the
previous increment.
4. RAD model

• RAD is a Rapid Application Development model.

• Using the RAD model, software product is developed in a short


period of time.
Advantages of RAD Model
• The process of application development and delivery are fast.
• This model is flexible, if any changes are required.
• Reviews are taken from the clients at the staring of the
development.
Following are the evolutionary process models.
Evolutionary model is a combination of Iterative and Incremental
model of software development life cycle.
Evolutionary model suggests breaking down of work into smaller
chunks, prioritizing them and then delivering those chunks to the
customer one by one.

Following are the evolutionary process models.


1. The prototyping model

2. The spiral model

3. Concurrent development model


1. The Prototyping model
• This model is used when the customers do not know the
exact project requirements beforehand.
• It does not identify the requirements like detailed input,
output.
• It is software working model of limited functionality.
• Prototyping model refers to developing software
application prototypes which displays the behaviour of
product under development but may not actually contain
the exact logic of the original application.
• It helps to understand user requirements in early stage of
development process.
• Advantage of Prototype Model
• Reduce the risk of incorrect user requirement
• Good where requirement are changing/uncommitted
• Regular visible process aids management
• Support early product marketing
• Reduce Maintenance cost.
• Errors can be detected much earlier as the system is made side by side.
2. The Spiral model
• Spiral model is a risk driven process model.
• It is used for generating the software projects.
• Alternate solution is provided if the risk is found.
• It is a combination of prototype and sequential model.
• In one iteration all activities are done.

• Each loop of the spiral is called a Phase of the software


development process.
• The Spiral model is called a Meta-Model because it a
combination of all the other SDLC models.
•Advantages of Spiral Model:
• Risk Handling: The projects with many unknown risks
that occur as the development proceeds, in that case,
Spiral Model is the best development model to follow
due to the risk analysis and risk handling at every phase.
• Good for large projects: It is recommended to use the
Spiral Model in large and complex projects.
• Flexibility in Requirements: Change requests in the
Requirements at later phase can be incorporated
accurately by using this model.
• Customer Satisfaction: Customer can see the
development of the product at the early phase of the
software development and thus, they habituated with
the system by using it before completion of the total
product.
• Disadvantages of Spiral Model:

• Complex: The Spiral Model is much more complex than


other SDLC models.
• Expensive: Spiral Model is not suitable for small projects
as it is expensive.
• Too much dependability on Risk Analysis: The
successful completion of the project is very much
dependent on Risk Analysis. Without very highly
experienced experts, it is going to be a failure to develop a
project using this model.
• Difficulty in time management: As the number of
phases is unknown at the start of the project, so time
estimation is very difficult.

You might also like