Definition of Software Maintenance:
Includes four types:
corrective maintenance
adaptive maintenance
Perfect maintenance
preventive maintenance
During the maintenance phase, the software lifetime accounts for more than 70%, and among the four types of maintenance, the perfect maintenance accounts for the largest proportion, accounting for 50%.
The three evil steps that software modification needs to go through: analyze and understand the program, implement the modification and revalidate the program
Software maintainability: an important indicator for evaluating the quality of software products
Six software quality characteristics: functionality, reliability, ease of use, efficiency, and portability
Software for Comet Metrics: Quantitative Evaluation of Maintenance Lines of Lost Software Products
Included: Internal maintainability metrics External maintainability metrics
Internal maintainability metrics:
Purpose: Predict the effort required to modify a software product
Practical: Software Product Design and Transformation Phases
Object: Static measurement of intermediate products
Measurements made while incomplete
External Containment Metrics:
Purpose: To measure the effort to modify a software product
Time: when the test or runtime after the code is completed
Object: Execute code to collect data
Maintenance data obtained by running the program after the product is complete
The implementer could be anyone
Software process and software process improvement
Improve the quality of software products and improve the productivity of software projects are: people, technology and equipment and processes
Process elements:
1. Input: initial state
2. Output: final state
3. Activity: A series of actions performed
4. Resource: something that needs to be invested in the execution of an action
5. Measurement and verification: Verify that the above four meet the requirements
6. Process goal: to add value as the goal
Software Lifecycle Process:
System-related processes: agreement process, organization project implementation process, project process, counting process
Software-specific process: software implementation process, software support process, software reuse process
Software process maturity: Software process maturity refers to the degree to which a particular software process is clearly defined, managed, measured, controlled and effective.
Maturity means that there is potential for growth in capabilities and that the organization's software processes are precious and that their application is consistent and consistent across all projects within the organization.
CMM: Capability Maturity Model
CMMI: Integrated Capability Maturity Model
There are two different manifestations of CMMI:
Hierarchical : It gives the path of the software organization's implementation process improvement along the certification level from low to high level of maturity to represent the maturity level
The continuous representation is the capability level : it gives the path of how some process areas in the software organization process improvement gradually develop from a lower level of capability to a higher level of capability
Hierarchical: Initial, Managed, Determined, Quantitatively Managed, Continuously Optimized
Continuous: Incomplete level, implemented and, to manage and, fixed and
Contrast: incomplete stage is 0 state, executed stage = initial stage, continuous no 4 5 state
Process institutionalization: process culture + process infrastructure Process normalization to form a specific behavior pattern
Process culture: the common understanding, habits, and civilizations of things formed by a particular group of people at a particular time
Process infrastructure: includes the foundation frame and structural foundation
IDEAL Model for Process Improvement:
Five important stages: Initiate, Diagnose, Establish, Act, and Improve
Software Process Improvement Framework:
Improvement Roadmap -> Software Process Evaluation Method -> Software Process Improvement Plan <- Software Process Improvement Infrastructure
Software project management:
Software Project Management Overview
Project Estimation
Risk Management
progress management
Requirements management
Configuration management
Management goals:
(1) Meet the software product function and performance requirements expected by the project
(2) Time limit requirements
(3) Project expenses are limited within the budget
The main aspects of software project management design are: people, product, process and project 4P
Project estimation: Project planning is an important work in the initial stage of project development. The main goal is to obtain the project plan.
The problem to be solved is: the size of the product developed, the effort required and the cost of the project
Function point estimation method:
Expert judgment:
COCOMO Model: Software Type: Intrinsic, Embedded, Semi-Independent
Software risk: What may occur in the software engineering process that affects the achievement of software goals or may cause significant losses is called software risk
Risk classification: cost risk, performance risk, schedule risk
Risk management activities: risk assessment (risk identification, analysis, ranking), risk control (risk mitigation, monitoring)
Gantt Chart: Represents work progress calculation and actual work progress
The horizontal axis represents time, the horizontal line segment represents the working stage of the task, and the vertical axis marks activities and personnel assignments, etc.
Requirements management: system requirements and software requirements (business requirements, user requirements, functional/lung function requirements)
Configuration management
Purpose: To establish and maintain the integrity of the software for a process or a project so that it is convenient and practical
Change Management: Analyze changes, document change information, and ensure changes are implemented under controlled conditions
Version Control: Version Management and Release Management, Version Identification