software engineering, course 1

Subdecks (9)

Cards (407)

  • Software life cycle
    1. Planning
    2. Development
    3. Operation
    4. Maintenance
    5. Shutdown
  • Software life cycle model and its phases
    • Used for medium- and long-term project planning
    • Hundreds of applications often used in large companies
    • Based on current phase, IT management can get overview of system landscape and plan personnel, resources, and investments
    • Certain software engineering activities and methods can be derived based on current phase
  • The life cycle is run through in order, from planning to shutdown
  • In practice, the phases of the life cycle cannot always be clearly separated, but flow into one another
  • The operation and maintenance phases can be run several times in succession before the system is switched off
  • Planning phase
    1. Determination of needs
    2. Make-or-buy decision
    3. Procurement
  • Determination of needs
    Realization that there is a need for a new software system
  • Typical occasions for need of new software system
    • Replacement of existing legacy systems
    • Business demands
    • Technological evolution
  • Make-or-buy decision
    Deciding whether to procure an existing system or develop a new system
  • Preliminary studies, test installations, or initial application prototypes are created and tried out as part of a make-or-buy decision
  • If a new software system is to be created or a standard solution is to be customized, a corresponding order must be placed
  • If it is a public IT organization, the contract must be advertised publicly according to each country's law
  • When the contract is awarded, the results of the requirements determination must already be documented
  • Development phase
    1. Requirements engineering and specification
    2. Software architecture and implementation
    3. Quality assurance
  • More people work on the system at the same time during the development phase than during any other phase
  • Requirements engineering
    Further detailing and refining of 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 programmed according to the specifications
  • Quality assurance
    Checking whether the artifacts generated during creation meet specified requirements
  • After the software has been implemented and tested, it is handed over to the department responsible for operating the system
  • Operation phase
    1. Operational environment provisioning
    2. Integration
  • Operational environment
    • Security and availability of the system must be guaranteed
    • System must be able to cope with load peaks and only use resources it truly needs under normal requirements
    • Appropriate infrastructure must be provided, including hardware, software, networks, storage, and security systems
  • There is a conflict of objectives between development and operation - quick reaction to business requirements vs. long-term system stability
  • Integration
    The new system 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 development
  • Enterprise software systems
    • Quick reaction to business requirements
    • System should run reliably and safely
  • DevOps
    Current interdisciplinary approach that addresses the issues of quick reaction and reliable/safe system operation
  • Integration
    1. System must be deployed in operational environment
    2. System must be connected to existing systems using technical interfaces provided by developers
  • New system is only connected to other systems after all tests have been completed, so that 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
    • Correcting spelling errors
    • Importing version and security updates
    • Adding new functions
  • Upkeep
    Elimination of detected errors and adjustments for better runtime behavior or more economical use of resources
  • Evolution
    Expanding the system with new functions or changing existing functions
  • After initial provisioning, the phases of maintenance and operation alternate in relatively short cycles
  • Maintenance effort over the entire life cycle approximately doubles the effort for creation
  • Shutdown
    1. System and its technical and organizational environment must be taken into account
    2. All dependencies of the application being switched off must be identified and resolved
    3. Data in the legacy system might be migrated to another system
    4. Existing license and maintenance contracts must be terminated
    5. Personnel must be retrained for new tasks
  • Shutdown is the final phase in the software life cycle
  • Enterprise software systems go through a life cycle that can be divided into planning, development, operation, maintenance, and shutdown phases
  • The software life cycle model and its phases are used for medium- and long-term project planning and application portfolio management