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

Cse320 Unit4 Unit6 151 189.image - .Marked 1

This document contains information about the topics covered in Unit 6, including quality management, ISO and CMMI standards, personal software process (PSP), six sigma methodology, and software maintenance. The key areas covered are software quality management activities and principles, ISO 9000 certification types, the five levels of the CMMI model and their associated key process areas, the goals and methodology of PSP, the DMAIC and DMADV approaches in six sigma, and the reasons why software maintenance is required.

Uploaded by

Aman Pandey
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

Cse320 Unit4 Unit6 151 189.image - .Marked 1

This document contains information about the topics covered in Unit 6, including quality management, ISO and CMMI standards, personal software process (PSP), six sigma methodology, and software maintenance. The key areas covered are software quality management activities and principles, ISO 9000 certification types, the five levels of the CMMI model and their associated key process areas, the goals and methodology of PSP, the DMAIC and DMADV approaches in six sigma, and the reasons why software maintenance is required.

Uploaded by

Aman Pandey
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/ 39

Unit 6 Syllabus

Quality management : Quality management, ISO and SEI CMMI, PSP and six sigma,
Computer aided software engineering, Software maintenance, Software reuse, Component based
software Development

Advance techniques of software engineering : Agile development methodology, Scrum, Aspect


oriented programming, Extreme Programming, Adaptive software development, Rapid
application development (RAD), Software coloning
Software Quality Management

What is Software Quality Management


• Software Quality Management ensures that the required level of quality is achieved by
submitting improvements to the product development process.
• SQA aims to develop a culture within the team and it is seen as everyone's responsibility.
• SQA should be independent of project management to ensure independence of cost and
schedule adherences.
• For good project development, some teams split the project into specific tasks so they can
manage responsibility and utilize team strengths.
Software Quality Management

Introduction
• Consider a software product: functionally correct,
• i.e. performs all functions as specified in the SRS document,
• But has an almost unusable user interface.
• Cannot be considered as a quality product.

• A product which does everything that users want.


• But has an almost incomprehensible and unmaintainable code
Software Quality Management

Modern view of quality


• Correctness
• Reliability
• Efficiency (includes efficiency of resource utilization)
• Portability
• Usability
• Reusability
• Maintainability
Software Quality Management

Activities
• Quality Assurance
QA aims at developing Organizational procedures and standards for quality at Organizational
level.

• Quality Planning
Select applicable procedures and standards for a particular project and modify as required to
develop a quality plan.

• Quality Control
Ensure that best practices and standards are followed by the software development team to
produce quality products.
Software Quality Management

International standards organization (ISO)


• It is a standard which serves as a for contract between independent parties. It specifies
guidelines for development of quality system.
• ISO (International Standards Organization) is a group or consortium of 63 countries
established to plan and fosters standardization.
• ISO declared its 9000 series of standards in 1987.
• ISO 9000 defines a set of guidelines for the production process and is not directly concerned
about the product itself.
Software Quality Management

Why ISO Certification required by Software Industry


• This certification has become a standards for international bidding.
• It helps in designing high-quality repeatable software products.
• It emphasis need for proper documentation.
• It facilitates development of optimal processes and totally quality measurements.
Software Quality Management

Advantages of ISO 9000 Certification


• Each procedure and work instruction must be documented and thus becomes a springboard for
continuous improvement.
• Employees morale is increased as they’re asked to require control of their processes and
document their work processes
• Better products and services result from continuous improvement process.
• Increased employee participation, involvement, awareness and systematic employee training
are reduced problems.
Software Quality Management

Types ISO 9000 Certification


Software Quality Management

Types ISO 9000 Certification


• ISO 9001: This standard applies to the organizations engaged in design, development,
production, and servicing of goods
• ISO 9002: This standard applies to those organizations which do not design products but are
only involved in the production
• ISO 9003: This standard applies to organizations that are involved only in the installation and
testing of the products.
Software Quality Management

SEI Capability Maturity Model


• CMM was developed by the Software Engineering Institute (SEI) at Carnegie Mellon
University in 1987.
• It is not a software process model. It is a framework that is used to analyze the
approach and techniques followed by any organization to develop software products.
• It also provides guidelines to further enhance the maturity of the process used to
develop those software products.
• It is based on profound feedback and development practices adopted by the most
successful organizations worldwide.
• This model describes a strategy for software process improvement that should be
followed by moving through 5 different levels.
• Each level of maturity shows a process capability level. All the levels except level-1 are
further described by Key Process Areas (KPA’s).
SEI Capability Maturity Model

Key Process Areas (KPA’s)


SEI Capability Maturity Model

Key Process Areas (KPA’s)


Level-1: Initial

• No KPA’s defined.
• Processes followed are Adhoc and immature and are not well defined.
• Unstable environment for software development.
• No basis for predicting product quality, time for
SEI Capability Maturity Model

Key Process Areas (KPA’s)


Level-2: Repeatable

• Focuses on establishing basic project management policies.


• Experience with earlier projects is used for managing new similar natured projects.
• Project Planning-
• Configuration Management-
• Requirements Management-
• Subcontract Management-
SEI Capability Maturity Model

Key Process Areas (KPA’s)


Level-3: Defined

• At this level, documentation of the standard guidelines and procedures takes place.
• It is a well-defined integrated set of project-specific software engineering and management
processes.
• Peer Reviews-
• Intergroup Coordination-.
• Organization Process Definition
• Organization Process Focus-
• Training Programs.
SEI Capability Maturity Model

Key Process Areas (KPA’s)


Level-4: Managed

• At this stage, quantitative quality goals are set for the organization for software products as
well as software processes.
• The measurements made help the organization to predict the product and process quality
within some limits defined quantitatively.
• Software Quality Management
• Quantitative Management
SEI Capability Maturity Model

Key Process Areas (KPA’s)


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.
• Use of new tools, techniques, and evaluation of software processes is done to prevent
recurrence of known defects.
• Process Change Management
• Technology Change Management
• Defect Prevention
Personal Software Process

Introduction
• Personal Software Process (PSP) is the skeleton or the structure that assist the engineers in
finding a way to measure and improve the way of working to a great extend.
• It helps them in developing their respective skills at a personal level and the way of doing
planning, estimations against the plans.

Objectives of PSP
• Improve their approximating and planning skills.
• Make promises that can be fulfilled.
• Manage the standards of their projects.
• Reduce the number of faults and imperfections in their work.
Personal Software Process

Time measurement:
• Personal Software Process recommend that the developers should structure the way to spend
the time..
• The developer must measure and count the time they spend on different activities during the
development.
PSP Planning
• Plan the project before developing
• Without planning a high effort may be wasted on unimportant activities which may lead to a
poor and unsatisfactory quality of the result.
Personal Software Process

Levels of Personal Software Process


• PSP 0
The first level of Personal Software Process, PSP 0 includes Personal measurement , basic size
measures, coding standards.

• PSP 1
This level includes the planning of time and scheduling .

• PSP 2
This level introduces the personal quality management ,design and code reviews.

• PSP 3
The last level of the Personal Software Process is for the Personal process evolution.
Six Sigma

Introduction
• It was introduced by Engineer Sir Bill Smith while working at Motorola in 1986.
• Six Sigma is the process of improving the quality of the output by identifying and eliminating
the cause of defects and reduce variability in manufacturing and business processes.
• The statistical representation of Six Sigma quantitatively describes, how a process is
performing
Six Sigma

Six Sigma Methodologies


Six Sigma projects follow two project methodologies:

• DMAIC (Define, Measure, Analyze, Improve, Control)


• DMADV: (Define, Measure, Analyze, Design, Verify)
Software Maintenance

Introduction
• Software Maintenance is the process of modifying a software product after it has been
delivered to the customer
• To modify and update software applications after delivery to correct faults and to improve
performance.

Why modifications are

• Market Conditions
• Client Requirements
• Host Modifications
• Organization Changes
Software Maintenance

Need for Maintenance


• Correct faults.
• Improve the design.
• Implement enhancements.
• Interface with other systems.
• Accommodate programs so that different hardware, software, system features, and
telecommunications facilities can be used.
• Migrate legacy software.
• Retire software.
Software Maintenance

Types of maintenance
• Corrective Maintenance - This includes modifications and updations done in order to correct
or fix problems, which are either discovered by user or concluded by user error reports.
• Adaptive Maintenance - This includes modifications and updations applied to keep the
software product up-to date and tuned to the ever changing world of technology and business
environment.
• Perfective Maintenance - This includes modifications and updates done in order to keep the
software usable over long period of time. It includes new features, new user requirements for
refining the software and improve its reliability and performance.
• Preventive Maintenance - This includes modifications and updations to prevent future
problems of the software. It aims to attend problems, which are not significant at this moment
but may cause serious issues in future.
Software Maintenance

Cost of Maintenance
Software Maintenance

Maintenance Activities
Software Maintenance

Software Re-engineering
• When we need to update the software to keep it
to the current market, without impacting its
functionality, it is called software re-engineering
• It is a thorough process where the design of
software is changed and programs are re-written.
Software Maintenance

Laws of Maintenance
• There will always be a lot of old software needing maintenance.
• Good products are maintained, bad products are thrown away.

Lehman’s first Law: Lehman’s Second Law Lehman’s Third Law

“Software products must “When software is “Over a program’s life


change continuously, or maintained, its structure time,
become progressively less degrades, its rate of development is
useful.” unless active efforts are approximately constant.”
made to avoid this
phenomenon.”
Software Maintenance

Major maintenance problems


• Unstructured code (bad programs)
• Maintenance programmers have:
• insufficient knowledge of the system or the application domain.
• Software maintenance has a bad image.
• Documentation absent, out of date, or insufficient.
Software Reuse

Introduction
• Software is becoming very expensive: a possible way to reduce cost:
• Reuse parts from previously made software.
• Assemble software from off-the-shelf components.

Advantages
• Reduced number of defects:
• standard and well-tested components are reused.
• Reduced development time:
• provide early market access for products.
Software Reuse

What can be reused?


• Specification
• Design
• Code
• Test cases
• At the most abstract level - knowledge
Software Reuse

Basic Issues in Software Reuse


• Component creation
• Component indexing
• Search
• Understanding
• Adaptation
• Repository maintenance
Component-based development

Introduction
• It is a process that focuses on the design and development of computer-based systems with the
use of reusable software components.

CBSE Framework Activities


• Component Qualification
• Component Adaptation
• Component Composition
• Component Update
Agile Software Development

Introduction
• Agile is a time-bound, iterative approach to software delivery that builds software
incrementally from the start of the project.
• In Agile development, Design and Implementation are considered to be the central activities in
the software process.
• Design and Implementation phase also incorporate other activities such as requirements
elicitation and testing into it.
• In an agile approach, iteration occurs across activities. Therefore, the requirements and the
design are developed together, rather than separately.
Agile Software Development

Principles
• Highest priority is to satisfy the customer through early and continuous delivery of valuable
software.
• It welcomes changing requirements, even late in development.
• Deliver working software frequently, from a couple of weeks to a couple of months, with a
preference to the shortest timescale.
• Build projects around motivated individuals. Give them the environment and the support they
need, and trust them to get the job done.
Agile Software Development

Phases of Agile Model


• Requirements gathering
• Design the requirements
• Construction/ iteration
• Testing/ Quality assurance
• Deployment
• Feedback
Agile Software Development

Agile Testing Methods


• Scrum
• Crystal
• Dynamic Software Development Method(DSDM)
• Feature Driven Development(FDD)
• Lean Software Development
• eXtreme Programming(XP)

You might also like