A software system or software product cycle initiated by a user need or a perceived customer need, and terminated by discontinued use of the product or when the software is no longer available for use
Phases of the software life cycle
Planning
Development
Operation
Maintenance
Shutdown
Software life cycle model and its phases
Used for medium- and long-term project planning
Provides IT management an overview of the current status of its system landscape
Allows for personnel, resource, and investment planning
Determines which software engineering activities and methods to use
Software life cycle
1. Planning
2. Development
3. Operation
4. Maintenance
5. Shutdown
Planning phase
All activities carried out before the start of software development activities
Reasons for introducing a new software system
Replacement of existing legacy systems
Business demands
Technological evolution
Make-or-buy decision
Deciding whether an existing system is to be procured or a new system is to be developed
Make-or-buy decision
1. Determine if software solutions are already available
2. Determine if standard products can be customized
3. Decide if new software needs to be developed
Procurement
Placing an order for a new software system or customizing a standard solution, either by an external service provider or internal IT department
Development phase
Where all constructive activities required from the order to the deployment of the system take place, and the system is implemented
More people work on the system at the same time than during any other phase
Core activities of software engineering
Development phase
1. Requirements engineering and specification
2. Software architecture and implementation
3. Quality assurance
Requirements engineering
Further detailing and refining the broad business requirements determined in the planning phase
Software architecture
The internal structure of the software system, determined based on the specification
Implementation
The program code of the system is implemented according to the specifications, and the system is created accordingly
Quality assurance
Checking all artifacts generated during creation to determine whether they meet specified requirements
Operation phase
The software system must be deployed in the operational environment and integrated into the existing application landscape
Security and availability of the system must be guaranteed so users can work productively
Operational environment provisioning
Providing the appropriate infrastructure, such as hardware systems, software systems, networks, storage systems, and security systems
Development phase
Aims to quickly add functions to software systems
Operation phase
Aims to ensure long-term stability and reliability of the system
Current interdisciplinary approaches, such as development operation (DevOps), address the conflict of objectives between development and operation
Key elements of IT infrastructure
Special hardware systems (rack servers)
Software systems (operating systems, monitoring systems, and virtualization systems)
Networks (ethernet, WiFi, and mobile)
Storage systems (databases and backup systems)
Security systems (firewall, virus scanner, and cryptography systems)
Securing the power supply, air conditioning, and the connection to external networks (internet)
User administration and allocation of access rights
Development aims to quickly add functions to software systems
Long-term stability must be ensured during operation
This results in a conflict of objectives between development and operation
There must be a quick reaction to business requirements, but the system should run reliably and safely
DevOps
Current interdisciplinary approaches that address the issues between development and operation
Integration
1. System must be installed in the operational environment
2. System must be connected to existing systems using technical interfaces
3. Real data in operational systems are not accidentally changed during development
Provisioning
1. Technical interfaces of existing systems must be converted to the new system
2. New application must be connected to technical monitoring systems
3. IT security must include the new application in the list of monitored applications
Maintenance
The totality of activities required to provide cost-effective support to a software system
Maintenance activities
Upkeep (eliminating detected errors, adjustments for better runtime behavior or more economical use of resources)
Maintenance activities include both development and operation phase activities
After initial provisioning, maintenance and operation phases alternate in relatively short cycles
Maintenance effort over the entire life cycle can be double the development effort
Shutdown
1. Identifying and resolving dependencies of the application being switched off
2. Migrating data stored in the legacy system
3. Terminating licenses, usage rights, and maintenance contracts
4. Retraining employees responsible for the operation and maintenance of legacy applications
Enterprise software systems go through a life cycle with the following phases: planning, development, operation, maintenance, and shutdown
The software life cycle model and its phases are used for medium- and long-term project planning and application portfolio management
In the planning phase, the constraints for all further phases in the course of the project are determined
The development phase includes requirements engineering, specification, architecture, implementation, and quality assurance
The operation phase includes installing the system, integrating it into the existing system landscape, and ensuring security, availability, and scalability
The maintenance phase includes error correction (upkeep) and evolution of the application after it has been provisioned
Maintenance costs are known to be at least double the development costs