Software support (support) is the process of improving, optimizing and eliminating software defects (software) after being put into operation. Software maintenance is one of the phases of the software life cycle following the phase of software transfer to operation. During maintenance, changes are made to the program in order to correct defects and defects discovered during use, as well as to add new functionality, in order to increase usability ( usability ) and software applicability.
| Software development | |
|---|---|
| Software development process | |
| Key processes | |
| Analysis • Design • Programming • Documentation • Testing | |
| Models | |
| Iterative • Spiral • Cascading • V-Model • Dual Vee Model | |
| Methodologies | |
| Agile ( XP , Lean , Scrum , FDD , etc.) • Cleanroom • OpenUP • RAD • RUP • MSF • DSDM • TDD • BDD | |
| Related disciplines | |
| Configuration Management • Project Management • Requirements Management • Quality Assurance |
Software support is standardized, there are national standards of the Russian Federation that are identical to international ones (ISO / IEC 12207: 2008 System and software engineering - Software life cycle processes, GOST R ISO / IEC 12207-2010 "National Standard of the Russian Federation. Information technology. System and software engineering. Software life cycle processes "; ISO / IEC 14764: 99 Information tehnology - Software maintenance, GOST R ISO / IEC 14764-2002" State standard of the Russian Federation. Information technology. Software maintenance "; IEEE 1219).
Boundaries of applicability
There are two points of view on the limits of applicability of the term “software maintenance”:
- Maintenance of automated information systems does not stand out from the maintenance of any other software.
- Software maintenance does not include maintenance of automated information systems (AIS), since maintenance of the latter has significant differences.
According to GOST 34.601-90 “State standard of the USSR Union. Information technology. Set of standards for automated systems. Automated systems. Creation stages ”(re-release - June 1997) the stage of creation of the automated system“ maintenance of the automated system ”includes two stages of work: 1)“ execution of work in accordance with warranty obligations ”, 2)“ post-warranty service ”.
There are two different points of view on the limits of applicability of the terms “software maintenance” and “software support”.
- These two terms are synonyms.
- These are two different terms. Software maintenance is carried out by an escort. A facilitator can be an external organization or the organization itself (its department, individual employee) that uses software in its work. Support is provided exclusively by employees of the department of the organization that uses the software in their work (this organization is called the “customer” ISO / IEC 14764: 99). These are less qualified specialists than the escort, and therefore they do not completely perform the work that is provided for by ISO / IEC 14764: 99. For example, support department employees do not detect and correct hidden errors to prevent these errors from appearing explicitly.
In the model of a waterfall , also called the “cascading model of the life cycle” or “the cascading model of the life cycle with feedback” (see Mezentsev K. N. Automated information systems: a textbook. M: Publishing center "Academy", 2013, p. 57-58), software maintenance stands out in a separate phase of the life cycle.
In the spiral model that arose during the development of object-oriented programming , maintenance is not distinguished as a separate stage. Nevertheless, this activity occupies a significant place, given the fact that usually about 2/3 of the life cycle of software systems takes maintenance. “Software maintenance can, in value terms, comprise the largest part of the life cycle” (ISO / IEC 14764: 99).
Software maintainability - characteristics of a software product that minimize efforts to make changes to it:
- to eliminate errors;
- for modification in accordance with the changing needs of users.
“The characteristics that describe the qualitative and quantitative requirements for the maintainability of the software are set by the customer. Appropriate criteria and methods for checking them must be established in these characteristics ... Developers must implement the requirements for maintainability, and maintainers must monitor their implementation ”(ISO / IEC 14764: 99).
The structure of IT support.
It is customary to highlight several support lines (the structure is shown on the example of external software support):
- 0 line (call-center, information center, hotline) - processing telephone calls from customers, transferring calls to technical specialists (1st support line)
- 1 line (maintenance engineer, technical support engineer, support engineer) - consultation / configuration / troubleshooting of software errors / filling the knowledge base, compiling manuals
- 2 line (support engineer, technical support engineer, support engineer) - functional support / project activity at the stage of software launch on customer’s machines
- 3 line (support engineer, technical support engineer, support engineer) - system support / design activity at the stage of launching software on customer equipment
The work of the maintenance engineer is mistakenly compared with the work of the information center. However, in terms of functionality, these specialists are fundamentally different - if the call-center actually accumulates user requests, then maintenance is the central link in the software development and development chain that solves problems that arise during the operation of software (system, service).
See also
- Software archeology
Links
- ISO / IEC 14764: 2006 Software Engineering - Software Life Cycle Processes - Maintenance
- Sergey Orlik. Software Engineering Software Maintenance. . - Translation of a chapter from SWEBOK with comments. Date of treatment February 17, 2010. Archived February 14, 2012.