Unit No 2 Slides (Full)

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 92

Software Engineering

Course Outline:

- Introduction to Software Engineering (SE)


√ Software Process
Software Process
Introduction
• Process – A particular method of doing something, generally involving
a number of steps or operations.

• Software Process – A process that deals with the technical and


management issues of software development.

Software Process Software Project Software Product


Introduction (contd.)

Software Process

Project 1 Project 2 ….. Project i ….. Project n

Product 1 Product 2 ….. Product n


Components of Software Process

Specifies the Development and Quality


Software Development Assurance Activities that need to be
Process performed.

Project Management Specifies How to Plan and Control these


Process activities so that project objectives are met.

Both aim at satisfying the cost and quality objectives of the project.
Components of Software Process

Primarily deal with managing change, so that


Software Configuration cost and quality objectives are met and the
Control Process integrity of the products is not violated
despite these change requests.

Both the project management process and the configuration control


process depend on the development process.
Components of Software Process
Basic objective is to Improve the Software
Process Management Process i.e., to improve those process which
Process produces good quality at low cost.

The whole process of


• understanding the current process,
• analyzing its properties,
• determining how to improve, and then
• affecting the improvement
is dealt with by the process management process.
Components of Software Process
Software Process

Product Engineering Process Process Management Process

Software
Software Project
Configuration
Development Management
Management
Process Process
Process
Characteristics of Software Process

• Optimality – The process should be able to produce high-quality


software at low cost.

• Scalability – The process should be applicable for large software


projects.
Characteristics of Software Process (contd…)
Predictability

How accurately the outcome of the following process in a project can be


predicted before the project is completed.

• Under Statistical Control – if following the same process produces


similar results.
Characteristics of Software Process (contd…)
Support Testability and Maintainability

The goal of this process is to reduce the cost of testing and maintenance.

Both testing and maintenance depend heavily on the design and coding
of software.
Characteristics of Software Process (contd…)

Early Defect Removal and Defect Prevention

The greater the delay in detecting an error after it occurs, the more
expensive it is to correct it.
Characteristics of Software Process (contd…)
Process Improvement

Evaluating the existing process and understanding the weaknesses in


the process.

The process must learn from previous experiences, and each project
done using the existing process must feed information back into the
process itself, which can then use this information for self-improvement.
Components of Software Process
Software Process

Product Engineering Process Process Management Process

Software
Software Project
Configuration
Development Management
Management
Process Process
Process
Software Development Process
Software Development Process (contd…)

Specifies the Development and Quality Assurance Activities that need


to be performed in the project.

Activities directly related to the production of software are: Design,


Coding, Testing.

A software development process model specifies some activities that,


according to the model, should be performed, and the order in which
they should be performed.
Software Development Process (contd…)
Process Step Specifications
Each step performs a well-defined activity leading towards the
satisfaction of the project goals, with the output of one step forming
the input of the next one.

The process should aim to detect defects in the phase in which they
are introduced.

This requires proper Validation and Verification (V&V) at the end of


each step.
Software Development Process (contd…)
Process Step Specifications
Validation – consistency with the needs of user is checked.
Verification – consistency with the inputs of the phase is checked.
Software Development Process (contd…)
Process Step Specifications
Software Development Process (contd…)
Process Step Specifications
Software Development Process Model
Software Development Process Model (contd…)
A software development process model specifies some activities that,
according to the model, should be performed, and the order in which
they should be performed.

 Waterfall Model

 Prototyping Model

 Iterative Enhancement Model

 Spiral Model
Software Development Process Model (contd…)
Waterfall Model
Software Development Process Model (contd…)

Advantages of Waterfall Model


• This model is very simple and is easy to understand.
• Phases in this model are processed one at a time.
• Each stage in the model is clearly defined.
• This model has very clear and well understood milestones.
• Process, actions and results are very well documented.
• Reinforces good habits: define-before- design, design-before- code.

• This model works well for smaller projects and projects where
requirements are well understood.
Software Development Process Model (contd…)
Limitations of Waterfall Model
The requirements of the system can be frozen (i.e., baselined) before
the design begins.

Freezing the requirements usually requires choosing the hardware.

Cannot accept the changes in requirements during development.

Document driven process that requires formal documents at the end


of each phase.
Software Development Process Model (contd…)

Prototyping Model

• Prototyping means building a scaled-down working version of the


system.

• Goal is to counter the limitations of the Waterfall Model.

• Throwaway prototype is built to help understand the


requirements.

• Results in more stable requirements that change less frequently.


Software Development Process Model (contd…)

Prototyping Model
Software Development Process Model (contd…)

Prototyping Model

• An attractive idea for complicated, large and new systems.

• Focus on quick development rather than quality.

• Keep the cost of prototype as less as possible.

• Implementation is only for poorly understood requirements.


Software Development Process Model (contd…)

Advantages of Prototyping Model


• The customers get to see the partial product early in the life cycle. This ensures a greater
level of customer satisfaction and comfort.

• New requirements can be easily accommodated.

• Missing functionalities can be easily figured out.

• Errors can be detected much earlier thereby saving a lot of effort and cost, besides
enhancing the quality of the software.

• The developed prototype can be reused by the developer for more complicated
projects in the future.

• Flexibility in design.
Software Development Process Model (contd…)

Disadvantages of Prototyping Model


• Costly w.r.t time as well as money.

• There may be too much variation in requirements each time the prototype is evaluated by
the customer.

• Poor Documentation due to continuously changing customer requirements.

• There is uncertainty in determining the number of iterations that would be required


before the prototype is finally accepted by the customer.

• Developers in a hurry to build prototypes may end up with sub-optimal solutions.

• The customer might lose interest in the product if he/she is not satisfied with the initial
prototype
Software Development Process Model (contd…)
Software Development Process Model (contd…)

Iterative Enhancement Model

• Tries to combine the benefits of both prototyping and waterfall


model.

• The basic idea is that the software should be developed in


increments, each increment adding some functional capability to
the system until the full system is implemented.

• Incremental Model is another name.


Software Development Process Model (contd…)

Iterative Enhancement Model

• As in prototyping, the increment provides feedback from the user


specifying the requirements of the software.
• It simplifies the software development process as implementation of
smaller increments is easier than implementing the entire system.
Software Development Process Model (contd…)

Advantages of Iterative Enhancement Model


• Understanding increases through successive refinements.

• Performs cost-benefit analysis before enhancing software with capabilities.


• Does not involve high complexity rate.

• Early feedback is generated because implementation occurs rapidly for a small subset of the software.

• Parallel development can be planned.

• Testing and debugging during smaller iteration is easy.

• It supports changing requirements.

• Better suited for large and mission-critical projects.

• It is best suited for agile organizations.


Software Development Process Model (contd…)

Disadvantages of Iterative Enhancement Model


• Requires planning at the management and technical level.

• Becomes invalid when there is time constraint on the project schedule or when
the users cannot accept the phased deliverables.

• More resources may be required.

• System architecture or design issues may arise because not all requirements are
gathered in the beginning of the entire life cycle.

• Defining increments may require definition of the complete system.


Software Development Process Model (contd…)

Spiral Model
Requirements are gathered from the
customers and the objectives are identified,
elaborated and analyzed at the start of every
phase. Then alternative solutions possible
for the phase are proposed in this quadrant.
Software Development Process Model (contd…)

Spiral Model
All the possible solutions are evaluated to
select the best possible solution. Then the
risks associated with that solution is identified
and the risks are resolved using the best
possible strategy. At the end of this quadrant,
Prototype is built for the best possible solution.
Software Development Process Model (contd…)

Spiral Model

The identified features are


developed and verified through
testing. At the end of the third
quadrant, the next version of the
software is available.
Software Development Process Model (contd…)

Spiral Model

The Customers evaluate the so


far developed version of the
software. In the end, planning for
the next phase is started.
Software Development Process Model (contd…)

Spiral Model
All the possible solutions are
Requirements are gathered from
evaluated to select the best possible
the customers and the objectives
solution. Then the risks associated
are identified, elaborated and
with that solution is identified and the
analyzed at the start of every phase.
risks are resolved using the best
Then alternative solutions possible
possible strategy. At the end of this
for the phase are proposed in this
quadrant, Prototype is built for the best
quadrant.
possible solution.

The Customers evaluate the so far


developed version of the software. The identified features are developed
In the end, planning for the next and verified through testing. At the end
phase is started. of the third quadrant, the next version of
the software is available.
Software Development Process Model (contd…)

Spiral Model
• Radial Dimension – the cumulative cost incurred in accomplishing the
steps done so far.

• Angular Dimension – the progress made in completing each cycle of the


spiral.

• The exact number of loops of the spiral is unknown and can vary from project to
project.

• Each loop of the spiral is called a Phase of the software development process.

• One of the most important SDLC models, which provides support for Risk Handling.
Software Development Process Model (contd…)

Spiral Model

Meta Model
Software Development Process Model (contd…)

Advantages of Spiral Model


• Risk Handling: The projects with many unknown risks that occur as the development proceeds, in
that case, this 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 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.
Software Development Process Model (contd…)

Drawbacks of Spiral Model

• Complex: This Model is much more complex than other SDLC models.

• Expensive: Not suitable for small projects as it is expensive.

• Too much dependable on Risk Analysis: The successful completion of the project is
very much dependent on Risk Analysis. Without very highly experienced expertise,
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.
Software Development Process Model (contd…)

Other Models

• Rapid Application Development (RAD) Model

• V Model

• Timeboxing Model

• Build & Fix Model


Software Development Process Model (contd…)

• Rapid Application Development (RAD) Model


Software Development Process Model (contd…)

• V Model
Software Development Process Model (contd…)

• Timeboxing Model
Software Development Process Model (contd…)

• Build & Fix Model


Components of Software Process
Software Process

Product Engineering Process Process Management Process

Software
Software Project
Configuration
Development Management
Management
Process Process
Process
Project Management Process
Project Management Process

Specifies how to plan and control the software development activities


so that project objectives are met.

Resources have to be properly allocated to each activities for the


project and progress of different activities has to be monitored and
corrective actions taken, if needed.

Once a development process is chosen, it is implemented optimally.


Project Management Process (contd…)

Activities under this process are grouped broadly in three phases:

 Planning

 Monitoring and Control

 Termination Analysis
Project Management Process (contd…)

Temporal Relationship between Project Management and Software


Development Process
Project Management Process (contd…)

 Planning: Software Development Plan

To develop a plan for software development following which the


objectives of the project can be met successfully and efficiently.

Produced before the development activity begins.

Updated as development proceeds and data about progress of the


project becomes available.
Project Management Process (contd…)

Major activities are:

 Cost Estimation

 Schedule and Milestone Determination

 Project Staffing

 Quality Control Plans

 Controlling and Monitoring Plans


Project Management Process (contd…)

 Monitoring and Control

Longest in terms of duration.

To ensure that project objectives are met and the development


proceeds according to the development plan (and update the plan, if
needed).

Monitoring requires proper information about the project.


Project Management Process (contd…)

 Termination Analysis

Performed when the development process is over.

To provide information about the development process and learn from


the project in order to improve the process.

Another name is Postmortem Analysis.


Software Configuration Management
Process
Software Configuration Management Process (contd…)

Is the discipline for systematically controlling the changes that take


place during development.

IEEE Defines:
SCM is the process of identifying and defining the items in the system,
controlling the change of these items throughout their life cycle,
recording and reporting the status of items and change requests, and
verifying the completeness and correctness of items.

Approving the change, Evaluating the impacts, Decide what needs to


be done to accommodate a change requests.
Software Configuration Management Process (contd…)

SCM is having three major components:

 Software Configuration Identification

 Change Control

 Status Accounting and Auditing


Software Configuration Management Process (contd…)

 Software Configuration Identification

A baseline is established only after the product is relatively stable.

Some of the common baselines are:


• Functional or Requirements Baseline.
• Design Baseline.

• Product or System Baseline.


Software Configuration Management Process (contd…)

The goal of SCM is to control the establishment and changes to


baselines.

A baseline consists of many Software configuration items (SCIs) or


items.

A baseline essentially is an arrangement of a set of SCIs and the


relationship between them.

SCM process starts with identification of configuration items.


Software Configuration Management Process (contd…)
Software Configuration Management Process (contd…)

 Change Control

Change control is applicable once the SCIs are identified and their
dependencies understood.

Configuration Control Board (CCB) is responsible of taking decision.

An SCI in the working state (under development) is not under SCM


and can be changed freely, if needed.
Software Configuration Management Process (contd…)

SCM Life Cycle of an Item


Software Configuration Management Process (contd…)

A Change is initiated by a Change Request (CR) and the reasons for


change can be:

• Requirement Change
• Changes due to Bugs
• Platform Change
• Enhancement Change
Software Configuration Management Process (contd…)

The CR generally consists of three parts:


• Describes the change, reason for change, the SCIs that are
affected, the priority of the change etc.

• Filled by the CM, describes the decision taken by the CCB on


this CR, the actions to be taken, and any other comments
the CM may have.
• Filled by the implementer who later implements the change,
maintain a change log.
Each CR is assigned a unique number by the CCB.
Software Configuration Management Process (contd…)

CR ID
About the Change Request
Items to be Changed
Description of Change
Reasons for Change
Priority of Change
Originator
Software Configuration Management Process (contd…)

CCB Comments
CR Approved/Rejected
Actions Needed
Comments

Implementation Information
Status of Change Implementation
Comments
Software Configuration Management Process (contd…)

CR ID
About the Change Request
Items to be Changed
Description of Change
Reasons for Change
Priority of Change
Originator
CCB Comments
CR Approved/Rejected
Actions Needed
Comments
Implementation Information
Status of Change Implementation
Comments
Software Configuration Management Process (contd…)

The CR originating DUE TO FAULT are made on different form


called FAULT REPORT (FR) generally consists of three parts:

FR ID
Fault Information
Description of the Fault
Severity of the Fault
Item suspected of being faulty
Effect of the Fault
Circumstances and Environment data that caused the fault to
manifest itself.
Possible fixes
Originator
Software Configuration Management Process (contd…)

CCB Comments
CR Approved/Rejected
Priority
Comments

Fault Fixing Information


Items Changed
Comments
Software Configuration Management Process (contd…)

FR ID
Fault Information
Description of the Fault
Severity of the Fault
Item suspected of being faulty
Effect of the Fault
Circumstances and Environment data that caused the fault to
manifest itself.
Possible fixes
Originator
CCB Comments
CR Approved/Rejected
Priority
Comments
Fault Fixing Information
Items Changed
Comments
Software Configuration Management Process (contd…)

 Status Accounting and Auditing

Mechanism to record the current status of a CR/FR.


What is the status of CR (Approved or Not)?

What is the status of approved CR?


What is the frequency of CRs?
What is the average time and effort for fixing a CR?
What the number of CRs per SCI?
Software Configuration Management Process (contd…)

The main objective of an audit is to determine if the


specified process is being followed and whether the
specified process satisfies the goals of the process.
Components of Software Process
Software Process

Product Engineering Process Process Management Process

Software
Software Project
Configuration
Development Management
Management
Process Process
Process
Process Management Process
Basic objective is to improve the software process i.e., to improve
those process which produces good quality at low cost.

Understanding the current process, Analyzing the properties,


Determining how to improve and then Affecting the improvement is
dealt with by the process management process.

Common Framework:
 Capability Maturity Model

 Quality Improvement Paradigm (QIP) and Goal/Question/Metric


(GQM) Paradigm
Process Management Process (contd…)

 Capability Maturity Model (CMM)

The concept of introducing changes in small increments based on the


current state of the process has been captured in this framework.

The CMM framework provides a general roadmap for process


improvement.

The goal of process-improvement is to improve the process capability.

The maturity level is a well-defined evolutionary plateau towards


achieving a mature software process.
Process Management Process (contd…)

Software Engineering Institute – CMM (SEI-CMM) at the Carneige-Mellon University,


classifies the software process into five different levels:
Process Management Process (contd…)

• Ad hoc activities characterize a software


development organization at this level.
• Very few or no processes are described and
followed.
• Different engineers follow their process and as a
result, development efforts become chaotic.
• It is also called a chaotic level.
• The success of projects depend on individual
effort and heroics.
• No formal project management practices
are followed.
Process Management Process (contd…)

• The fundamental project management


practices like tracking cost and schedule are
established.
• Configuration Management tools are
used.
• Size and cost estimation methods, like
function point analysis, COCOMO, etc. are
used.
• The necessary process discipline is in place to
repeat earlier success on project with
similar applications.
• The process is not documented.
• Project Management is well defined.
Process Management Process (contd…)

• The methods for both management


and development activities are
defined and documented.
• There is a common organization-wide
understanding of operations, roles, and
responsibilities.
• The processes though defined, the
process and product qualities are
not measured.
• Organization builds up the capabilities of
its employees through periodic training
program.
Process Management Process (contd…)

• The focus is on software metrics.


• Two kinds of metrics are composed:
• Process metrics follow the effectiveness of the
process being used, such as average defect
correction time, productivity, the average
number of defects found per hour inspection,
the average number of failures detected during
testing per LOC, etc.
• Product metrics measure the features of the
product being developed, such as its size,
reliability, time complexity, understandability,
etc.
• Quantitative goals exist for process and
products.
Process Management Process (contd…)

• Process and product metrics are


collected.
• Process and product measurement
data are evaluated for continuous
process improvement.
• New technologies and tools are
introduced and their effects
measured in an effort to improve
the process.
• Best software engineering and
management practices are used.
Process Management Process (contd…)
Process Management Process (contd…)

 Capability Maturity Model (CMM)


Process Management Process (contd…)

 Quality Improvement Paradigm (QIP) and Goal/Question/Metric (GQM)


Paradigm

The basic idea behind QIP is to understand the current process, set
objectives for improvement, and then plan and execute the
improvement actions.
The QIP consists of six basic steps:
 Characterize
 Set Goals
 Choose Process
 Execute
 Analyze
 Package
Process Management Process (contd…)

 Quality Improvement Paradigm (QIP) Paradigm


Process Management Process (contd…)

 Quality Improvement Paradigm (QIP) and Goal/Question/Metric (GQM)


Paradigm

An important component of the QIP is the feedback cycle from the


projects.

The basic input for process improvement is provided by collecting


appropriate data about existing process.

The Goal/Question/Metrics (GQM) paradigm is frequently used for


collecting proper data that will serve the purpose of process
improvement.
Process Management Process (contd…)

 Quality Improvement Paradigm (QIP) and Goal/Question/Metric (GQM)


Paradigm
GQM is a top-down approach that starts from the objectives and
works its way down to the metrics needed.
Process Management Process (contd…)

 ISO Standards for Software Industry:

ISO 9001: Organization engaged in design, development, production,


and servicing of goods. Applicable to most software development
organizations.

ISO 9002: Organizations which do not design products but are only
involved in production.

ISO 9003: Organizations involved only in installation and testing of


products.

You might also like