unit 3

Cards (76)

  • Software life cycle

    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)
    • Evolution (expanding functions, changing functions)
  • 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