SOFTWARE ENGINEERING
( TOPIC:-SOFTWARE MAINTAINANCE )
BY :- SONU KUMAR
BCA (AI &ML)
- SOFTWARE MAINTAINANCE
• Key aspects.
• Types of software maintenance.
• Need of software maintenance.
• SQA(Software Quality Assurance)
• SQA Tasks
• Software amplification and removal
• Formal technical Reviews
• Software Quality:
-ISO 9126
-SEI CMM
-SMMI
• Software Reliability
• Software Availability
# SOFTWARE MAINTAINANCE
Software maintenance is a process of maintaining,
fixing, updating, and optimizing a software the
whole process is called software maintenance.
# Key Aspects of software maintenance.
• Bug fixing
• Enhancement
• Performance optimization
• Porting and migration
• Re-engineering
• Documentation
- Bug fixing:- the process of finding and fixing errors
- Enhancement:- the process of adding new features or existing
features to meet the evolving needs of the users.
- Performance optimization:- the process of improving the speed,
efficiency and reliability of the software.
- Porting and migration:- the process of adapting the software to run
on new hardware or software platforms.
- Re-engineering:- the process of improving the design and
architecture of the software to make it more maintainable and
scalable.
- Documentation:- the process of creating, updating, and maintaining
the document for the software, includes user manual, technical
specifications, and design documents.
- Types of software maintenance.
• Corrective maintenance:- This involves fixing errors and bugs in the
software system.
• Patching:- It is an emergency fix implemented mainly due to pressure
from management. Patching is done for corrective maintenance but it
gives rise to unforeseen future errors due to lack of proper impact
analysis.
• Adaptive Maintenance:- This involves modifying the software system to
adapt it to changes in the environment, such as changes in hardware or
software, government policies, and business rules.
• Perfective Maintenance:- This involves improving functionality,
performance, and reliability, and restructuring the software system to
improve changeability
• Preventive Maintenance:- This involves taking measures to prevent
future problems, such as optimization, updating documentation,
reviewing and testing the system, and implementing preventive
measures such as backups
:- Proactive maintenance involves taking preventive
measures to avoid problems from occurring.
:- Reactive maintenance involves addressing problems
that have already occurred.
- Need of software 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.
• Retire software.
• Requirement of user changes.
• Run the code fast.
- SQA (Software Quality Assurance.)
• Quality Planning:- This involves defining quality objectives, processes,
and standards that will be followed throughout the software
development lifecycle. Quality planning includes establishing criteria
for measuring quality, identifying resources needed for SQA activities,
and creating a roadmap for quality assurance efforts.
• Quality Control:- Quality control involves executing processes and
activities to monitor and verify that the software meets defined
quality standards. This may include reviews, inspections, testing, and
other validation techniques to identify and address defects or
deviations from requirements.
• Quality Assurance Processes:- SQA processes are designed to ensure
that development activities adhere to established standards and
procedures. This includes defining and enforcing coding standards,
documenting requirements and specifications, conducting code
reviews, and ensuring compliance with regulatory requirements and
industry best practices.
• Testing and Validation:- Testing is a critical aspect of SQA, involving the
execution of various test cases and scenarios to verify that the software
functions correctly, performs as expected, and meets user requirements. This
includes unit testing, integration testing, system testing, regression testing,
and user acceptance testing.
• Metrics and Measurement:- SQA relies on metrics and measurement
techniques to assess the quality of the software and the effectiveness of
quality assurance processes. Metrics may include defect density, test
coverage, code complexity, and other indicators of software quality and
reliability.
• Continuous Improvement:- SQA promotes a culture of continuous
improvement, where feedback from testing, reviews, and other quality
assurance activities is used to identify areas for enhancement and
optimization. This includes implementing lessons learned, refining processes,
and incorporating best practices to improve overall software quality.
• Documentation and Reporting:- SQA activities generate documentation and
reports to track quality-related metrics, findings, and corrective actions. This
documentation provides transparency into the quality of the software and
facilitates communication among stakeholders.
- SQA(Software Quality Assurance) tasks.
• Requirement analysis
• Quality planning
• Process definition and compliance
• Quality review and inspection
• Testing strategy and execution
• Matrices and measurements
• Documentation and reporting
• Training and skill development
• Continuous improvement
- Software amplification and removal.
• Software Amplification:- This could refer to the process of
increasing the impact, effectiveness, or performance of
software. It might involve optimizing code, improving algorithms,
enhancing user interfaces, or scaling infrastructure to handle
larger workloads. Essentially, it's about making the software
more powerful, efficient, or capable.
• Software Removal:- This likely refers to the process of removing
or uninstalling software from a system. It could involve
removing outdated or redundant software, uninstalling software
that is no longer needed, or eliminating software that is causing
issues or conflicts. Software removal is typically done to
declutter systems, free up resources, or maintain system
stability.
- Formal Technical Reviews
• Objective Setting: Before conducting an FTR, the objectives and scope of the
review are defined. This includes identifying the specific artifact(s) to be
reviewed, the goals of the review, and any criteria or guidelines for
evaluation.
• Preparation: The author of the artifact being reviewed prepares the
document, code, or other deliverable for distribution to the review team. This
may involve ensuring that the artifact is complete, clear, and ready for
review.
• Review Meeting: The review team convenes for a structured review meeting,
typically led by a moderator or facilitator. During the meeting, the author
presents the artifact, providing context, explanations, and background
information as needed.
• Roles: Different roles are assigned to participants to facilitate the review
process. These roles may include the moderator, who leads the review
meeting; the author, who presents the artifact and answers questions; and
reviewers, who examine the artifact for defects and provide feedback.
• Review Process: Reviewers systematically examine the artifact, using
checklists, guidelines, or predefined criteria to assess its quality and
completeness. They identify defects, inconsistencies, ambiguities, and
areas for improvement, documenting their findings for discussion and
resolution.
• Documentation of Findings: Reviewers document their findings, including
identified defects, suggestions for improvement, and positive feedback. This
documentation serves as a record of the review process and provides
valuable input for addressing identified issues and making enhancements.
• Resolution of Issues: Following the review meeting, the author addresses
the identified issues and feedback provided by the reviewers. This may
involve making revisions to the artifact, clarifying ambiguities, correcting
errors, or incorporating suggestions for improvement.
• Follow-Up: In some cases, a follow-up review may be conducted to verify
that the identified issues have been addressed satisfactorily and that the
necessary corrections have been made. Follow-up reviews help ensure that
the quality of the artifact meets the desired standards before proceeding to
the next phase of development
• ISO 9126(International Organization for
Standardization)
ISO 9126 is an international standard for software quality, providing a framework for
defining and evaluating software quality characteristics. It defines six main quality
characteristics, which are further divided into sub-characteristics:
 Functionality: The degree to which the software satisfies specified requirements.
 Reliability: The ability of the software to maintain its performance under stated
conditions for a specified period.
 Usability: The ease with which users can learn and use the software.
 Efficiency: The ability of the software to perform its functions with minimal
resources.
 Maintainability: The ease with which the software can be modified, including
corrected, adapted, or enhanced.
 Portability: The ability of the software to be transferred from one environment to
another.
• SEI CMM (Capability Maturity Model):
• The Capability Maturity Model (CMM) was developed by the Software Engineering
Institute (SEI) at Carnegie Mellon University. It provides a framework for
assessing the maturity of an organization's software development processes.
The CMM defines five maturity levels, each representing a progressively more
mature and effective organizational capability:
a. Initial: Processes are ad hoc and chaotic.
b. Repeatable: Basic project management processes are established and
documented.
c. Defined: Processes are standardized and documented across the organization.
d. Managed: Processes are quantitatively managed using detailed metrics and
controls.
e. Optimized: Continuous process improvement is institutionalized.
• SMMI (Software Measurement and Metrics Infrastructure)
• The Software Measurement and Metrics Infrastructure (SMMI) is a framework for
establishing measurement processes and metrics within an organization to support
software quality management. SMMI provides guidelines for defining, collecting,
analyzing, and using software metrics to measure and improve software quality,
productivity, and performance.
SMMI defines a structured approach for implementing a measurement program, including
steps such as:
a. Establishing Measurement Objectives: Defining the goals and objectives of the
measurement program.
b. Selecting Metrics: Identifying relevant metrics that align with organizational objectives
and software development processes.
c. Defining Measurement Processes: Establishing procedures for collecting, analyzing, and
reporting metrics data.
d. Implementing Measurement Tools: Selecting and deploying tools and technologies to
support measurement activities.
e. Using Metrics for Decision Making: Using metrics data to make informed decisions about
software quality, process improvement, and resource allocation.
ANY
QUER
Y

SOFTWARE MAINTAINANCE AND ITS KEY ASPECTS .pptx

  • 1.
    SOFTWARE ENGINEERING ( TOPIC:-SOFTWAREMAINTAINANCE ) BY :- SONU KUMAR BCA (AI &ML)
  • 2.
    - SOFTWARE MAINTAINANCE •Key aspects. • Types of software maintenance. • Need of software maintenance. • SQA(Software Quality Assurance) • SQA Tasks • Software amplification and removal • Formal technical Reviews • Software Quality: -ISO 9126 -SEI CMM -SMMI • Software Reliability • Software Availability
  • 3.
    # SOFTWARE MAINTAINANCE Softwaremaintenance is a process of maintaining, fixing, updating, and optimizing a software the whole process is called software maintenance. # Key Aspects of software maintenance. • Bug fixing • Enhancement • Performance optimization • Porting and migration • Re-engineering • Documentation
  • 4.
    - Bug fixing:-the process of finding and fixing errors - Enhancement:- the process of adding new features or existing features to meet the evolving needs of the users. - Performance optimization:- the process of improving the speed, efficiency and reliability of the software. - Porting and migration:- the process of adapting the software to run on new hardware or software platforms. - Re-engineering:- the process of improving the design and architecture of the software to make it more maintainable and scalable. - Documentation:- the process of creating, updating, and maintaining the document for the software, includes user manual, technical specifications, and design documents.
  • 5.
    - Types ofsoftware maintenance. • Corrective maintenance:- This involves fixing errors and bugs in the software system. • Patching:- It is an emergency fix implemented mainly due to pressure from management. Patching is done for corrective maintenance but it gives rise to unforeseen future errors due to lack of proper impact analysis. • Adaptive Maintenance:- This involves modifying the software system to adapt it to changes in the environment, such as changes in hardware or software, government policies, and business rules. • Perfective Maintenance:- This involves improving functionality, performance, and reliability, and restructuring the software system to improve changeability • Preventive Maintenance:- This involves taking measures to prevent future problems, such as optimization, updating documentation, reviewing and testing the system, and implementing preventive measures such as backups
  • 6.
    :- Proactive maintenanceinvolves taking preventive measures to avoid problems from occurring. :- Reactive maintenance involves addressing problems that have already occurred.
  • 7.
    - Need ofsoftware 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. • Retire software. • Requirement of user changes. • Run the code fast.
  • 8.
    - SQA (SoftwareQuality Assurance.) • Quality Planning:- This involves defining quality objectives, processes, and standards that will be followed throughout the software development lifecycle. Quality planning includes establishing criteria for measuring quality, identifying resources needed for SQA activities, and creating a roadmap for quality assurance efforts. • Quality Control:- Quality control involves executing processes and activities to monitor and verify that the software meets defined quality standards. This may include reviews, inspections, testing, and other validation techniques to identify and address defects or deviations from requirements. • Quality Assurance Processes:- SQA processes are designed to ensure that development activities adhere to established standards and procedures. This includes defining and enforcing coding standards, documenting requirements and specifications, conducting code reviews, and ensuring compliance with regulatory requirements and industry best practices.
  • 9.
    • Testing andValidation:- Testing is a critical aspect of SQA, involving the execution of various test cases and scenarios to verify that the software functions correctly, performs as expected, and meets user requirements. This includes unit testing, integration testing, system testing, regression testing, and user acceptance testing. • Metrics and Measurement:- SQA relies on metrics and measurement techniques to assess the quality of the software and the effectiveness of quality assurance processes. Metrics may include defect density, test coverage, code complexity, and other indicators of software quality and reliability. • Continuous Improvement:- SQA promotes a culture of continuous improvement, where feedback from testing, reviews, and other quality assurance activities is used to identify areas for enhancement and optimization. This includes implementing lessons learned, refining processes, and incorporating best practices to improve overall software quality. • Documentation and Reporting:- SQA activities generate documentation and reports to track quality-related metrics, findings, and corrective actions. This documentation provides transparency into the quality of the software and facilitates communication among stakeholders.
  • 10.
    - SQA(Software QualityAssurance) tasks. • Requirement analysis • Quality planning • Process definition and compliance • Quality review and inspection • Testing strategy and execution • Matrices and measurements • Documentation and reporting • Training and skill development • Continuous improvement
  • 11.
    - Software amplificationand removal. • Software Amplification:- This could refer to the process of increasing the impact, effectiveness, or performance of software. It might involve optimizing code, improving algorithms, enhancing user interfaces, or scaling infrastructure to handle larger workloads. Essentially, it's about making the software more powerful, efficient, or capable. • Software Removal:- This likely refers to the process of removing or uninstalling software from a system. It could involve removing outdated or redundant software, uninstalling software that is no longer needed, or eliminating software that is causing issues or conflicts. Software removal is typically done to declutter systems, free up resources, or maintain system stability.
  • 12.
    - Formal TechnicalReviews • Objective Setting: Before conducting an FTR, the objectives and scope of the review are defined. This includes identifying the specific artifact(s) to be reviewed, the goals of the review, and any criteria or guidelines for evaluation. • Preparation: The author of the artifact being reviewed prepares the document, code, or other deliverable for distribution to the review team. This may involve ensuring that the artifact is complete, clear, and ready for review. • Review Meeting: The review team convenes for a structured review meeting, typically led by a moderator or facilitator. During the meeting, the author presents the artifact, providing context, explanations, and background information as needed. • Roles: Different roles are assigned to participants to facilitate the review process. These roles may include the moderator, who leads the review meeting; the author, who presents the artifact and answers questions; and reviewers, who examine the artifact for defects and provide feedback.
  • 13.
    • Review Process:Reviewers systematically examine the artifact, using checklists, guidelines, or predefined criteria to assess its quality and completeness. They identify defects, inconsistencies, ambiguities, and areas for improvement, documenting their findings for discussion and resolution. • Documentation of Findings: Reviewers document their findings, including identified defects, suggestions for improvement, and positive feedback. This documentation serves as a record of the review process and provides valuable input for addressing identified issues and making enhancements. • Resolution of Issues: Following the review meeting, the author addresses the identified issues and feedback provided by the reviewers. This may involve making revisions to the artifact, clarifying ambiguities, correcting errors, or incorporating suggestions for improvement. • Follow-Up: In some cases, a follow-up review may be conducted to verify that the identified issues have been addressed satisfactorily and that the necessary corrections have been made. Follow-up reviews help ensure that the quality of the artifact meets the desired standards before proceeding to the next phase of development
  • 14.
    • ISO 9126(InternationalOrganization for Standardization) ISO 9126 is an international standard for software quality, providing a framework for defining and evaluating software quality characteristics. It defines six main quality characteristics, which are further divided into sub-characteristics:  Functionality: The degree to which the software satisfies specified requirements.  Reliability: The ability of the software to maintain its performance under stated conditions for a specified period.  Usability: The ease with which users can learn and use the software.  Efficiency: The ability of the software to perform its functions with minimal resources.  Maintainability: The ease with which the software can be modified, including corrected, adapted, or enhanced.  Portability: The ability of the software to be transferred from one environment to another.
  • 15.
    • SEI CMM(Capability Maturity Model): • The Capability Maturity Model (CMM) was developed by the Software Engineering Institute (SEI) at Carnegie Mellon University. It provides a framework for assessing the maturity of an organization's software development processes. The CMM defines five maturity levels, each representing a progressively more mature and effective organizational capability: a. Initial: Processes are ad hoc and chaotic. b. Repeatable: Basic project management processes are established and documented. c. Defined: Processes are standardized and documented across the organization. d. Managed: Processes are quantitatively managed using detailed metrics and controls. e. Optimized: Continuous process improvement is institutionalized.
  • 16.
    • SMMI (SoftwareMeasurement and Metrics Infrastructure) • The Software Measurement and Metrics Infrastructure (SMMI) is a framework for establishing measurement processes and metrics within an organization to support software quality management. SMMI provides guidelines for defining, collecting, analyzing, and using software metrics to measure and improve software quality, productivity, and performance. SMMI defines a structured approach for implementing a measurement program, including steps such as: a. Establishing Measurement Objectives: Defining the goals and objectives of the measurement program. b. Selecting Metrics: Identifying relevant metrics that align with organizational objectives and software development processes. c. Defining Measurement Processes: Establishing procedures for collecting, analyzing, and reporting metrics data. d. Implementing Measurement Tools: Selecting and deploying tools and technologies to support measurement activities. e. Using Metrics for Decision Making: Using metrics data to make informed decisions about software quality, process improvement, and resource allocation.
  • 17.