SOFTWARE MAINTAINANCE AND ITS KEY ASPECTS .pptx

SONUKUMAR213838 41 views 17 slides May 23, 2024
Slide 1
Slide 1 of 17
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17

About This Presentation

it is about software engineering and includes the topic why software maintainance is necessary and types of software maintainance also icludes key aspects , types of software maintainance, need of software maintainance, SQA(softwatre Quality Assurance) and many more.


Slide Content

SOFTWARE ENGINEERING ( TOPIC:-SOFTWARE MAINTAINANCE ) BY :- SONU KUMAR BCA (AI &ML)

TABLE OF CONTENT 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 QUERY ?