Ch. 3: Software Life Cycle: From Planning to Replacement Flashcards
Please describe the phases of a software lifecycle.
- Planning: Activities before the start of a software project
- Development: Activities between the start of the project and the deployment of the finished system
- Operation: Start-up and operation of the system in the target environment
- Maintenance: Maintenance and evolution after deployment
- Shutdown: Activities with the aim of taking the system out of operation
Please describe four typical activities of the planning phase.
- Determination of needs: Identifying the demand and the reasons for a new software system
- Make-or-buy decision: Check and decide whether a system should be bought or built from scratch
- Time and resource planning: Creation of the first project plan, including more concrete time and resource planning.
- Procurement: Award of the contract, i.e., to external service providers or internal IT departments.
After the need for a new software system has been identified, it must be decided whether …
… software solutions are already available that cover the need (e.g., content management systems, e-mail systems, word processing).
Please explain three reasons for the need for a new software system (determination of needs).
- Replacement of existing legacy systems: IT systems are subject to aging and therefore only have a limited duration. Depending on the lifetime and the frequency of adjustment, the maintenance costs are more expensive in relation to the benefit achieved, so it makes more sense to replace an existing system with a new system.
- Business demand: Companies develop competitive advantages by highly specialized and specially developed software systems. The company’s IT must therefore react quickly to new business requirements and support the business departments with suitable systems. If business requirements cannot be covered by existing systems, new software systems must be provided.
- Technological evolution: Changing technical conditions also lead to a need for new software systems.
Please explain the term “make-or-buy” decision. What impact does this decision have on the software lifecycle?
After the need for a new software system has been identified, it must be decided whether software solutions are already available that cover the need, whether there are standard products that can be customized to company-specific requirements, or whether new software has to be developed. This is called a make-or-buy decision. Depending on how relevant the required software is for the company’s business activities and how serious the possible consequences of a wrong decision are, preliminary studies, test installations, or initial application prototypes are created and tried out as part of a make-or-buy decision. If a suitable system is available on the market and is purchased, the “development” phase is omitted in the software lifecycle and the “maintenance” phase is much less pronounced.
Please name the typical activities of the development phase.
Requirements engineering, specification, architecture, implementation, and quality assurance.
Please describe the differences between the activities “requirements engineering” and “implementation” (development phase).
Requirements engineering: Detailed business requirements the system has to meet.
Implementation: Construction of the system by programming the source code.
Which IT management activities can be supported by classifying software systems in their current phase of the software lifecycle?
Based on the current phase in the lifecycle, IT management can get an overview of the current status of its system landscape and, based on this, draw up personnel, resource, and investment planning. Furthermore, certain activities and methods of software engineering can be derived by determining the current phase in the lifecycle.
Please describe the typical activities of the “operation” phase.
- Provision of the operational environment, which means that the department responsible for operation must provide the appropriate infrastructure, for example in a data center.
- Integration, which means that the new system must be connected to existing systems using the technical interfaces provided by the developers.
- Provisioning, which means after the integration has been completed, all technical interfaces of existing systems must be converted to the new system. To ensure availability and security, the new application must also be connected to technical monitoring systems. In addition, IT security must include the new application in the list of applications to be monitored.
What are the conflicting goals between development and operation?
In contrast to development, which wants 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: On the one hand, you have to react quickly to business requirements, on the other hand, the system should run reliably and safely.
During operational environment provisioning in the operation phase what happens?
Work on the program code is stopped and the system is used intensively by its users. The more people that have access to a system via the internet, the greater the risk of system attacks or fraud. No data should be lost in the event of a hardware failure or the occurrence of a software error.
Please name three quality requirements that must be ensured by operations.
Security, availability, scalability.
Please name typical elements of the IT infrastructure that are required for the operation of software systems.
- Hardware systems (rack server),
- Software systems (operating systems, monitoring systems, virtualization systems)
- Networks (ethernet, WiFi, 5G)
- Storage systems (databases, backup systems)
- Security systems (firewall, virus scanner, cryptographic systems)
- Power supply
- Air conditioning
- Connection to external networks (internet)
- User administration and assignment of access rights
What happens during integration in the operation phase?
After development, enterprise software systems must be deployed in the operational environment. In addition to being installed in that environment, the system must be integrated into the application landscape. This means that it must be connected to existing systems using the technical interfaces provided by the developers. The new system is only connected to other systems in the operational environment after all tests have been completed, so that real data in operational systems are not accidentally changed during development.
What is provisioning during operations in a software system?
After the integration is complete, a new system can be put into operation. At this point, all technical interfaces of existing systems must be converted to the new system. To ensure availability and security, the new application must also be connected to technical monitoring systems that continuously provide management with information about resource consumption (central processing unit [CPU], main memory, data storage, and network access). In addition, IT security must include the new application in the list of monitored applications.