Cse320 Unit4 Unit6 151 189.image - .Marked 1
Cse320 Unit4 Unit6 151 189.image - .Marked 1
Quality management : Quality management, ISO and SEI CMMI, PSP and six sigma,
Computer aided software engineering, Software maintenance, Software reuse, Component based
software Development
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.
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
• 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
• 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
• 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
• 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
• 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
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.
• Market Conditions
• Client Requirements
• Host Modifications
• Organization Changes
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.
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
Introduction
• It is a process that focuses on the design and development of computer-based systems with the
use of reusable software components.
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