Software Maintenance Flashcards
What is software maintenance?
Any modifications after delivery?
Which part of the software life cycle make up software maintenance?
From planning to operation from the second to N iteration
Why do we need software maintenance?
To fix faults, update/enhance the software, especially to adapt to new technologies being released.
What are the software maintenance categories?
Proactive, Correction: Preventative
Reactive, Correction: Corrective
Proactive, Enhancement: Perfective
Reactive, Enhancement: Adaptive
What are some uniquely maintenance activities?
Help desks, maintaining service level agreements
What are some maintenance techniques?
- Program Comprehension
- Reengineering
- Reverse Engineering
- Migration
- Retirement
Example the steps in an impact analysis
- Change Request (RC) Received (aka Modification Request (MR) or Problem Reports (PR)
- CP Analysis
- Problem Replication/Verification
- Design solutions proposing alternatives
- Documentation
- Approval/Selection of desired solution
What are some effort measures?
- Analyzability
- Changeability
- Stability
- Testability
- Other
- Complexity
- Understandability
- Maintainability
What is the maintenance process?
- Problem and modification analysis
- Modification implementation
- Maintenance review and acceptance
- Migration
- Retirement
- OR agile
- No strict processes
- More ad hoc
- Per case handling
What is continuous delivery?
- Aims to increase the rate of producing new versions
- Aims to shorten dev/testing time
- Automates processes
What is continuous deployment?
- Adds automated deployment of new functionality
What is continuous integration?
Freque merging of separate devs’/teams’ several times a day
what is devops?
- Development + Operations
- Adds organizational/collaboration concerns
what is Paas Clouds?
Platform as a Service (PaaS) Clouds
- Cloud computing
- Platform Clouds
What is cloud computing?
abstracts computing resources and offer them in a pay as you go manner
what is platform clouds?
offer a plethora of development services, including devops/ci/cd tools
what are some examples of PaaS Clouds?
IBM Bluemix - Learnt in Assignment 3
Amazon AWS - Learnt at Gentrack
Why use containers?
They provide a mechanism for deployment?
What are containers?
- Isolated environments that run an application
- OS level virtualization - containers on the same machine share the same OS kernel
- Guaranteed certain resources (CPU, memory, etc)
DOCKER!
What are container images?
- What is actually deployed
- Containers start from a container image
- Images contain the initial/desired state
- Images are built by certain set of instructions (Docker files)
- Essentially the app is packaged and stored on public/private/local repos
http: //hub.docker.com/
what are computer clusters?
Where are containers deployed
- Clusters are collections of interconnected machines (aka nodes)
- they are normally organised placed on racks in datacenters
- datacenters are spead around the world
- a cluster could span across multiple datacenters through the internet
how are containers accessed?
Through the internet (or other networks), both other containers and external users can access them
what is container orchestration software?
how to do all theses automatically?
- cloud providers use container orchestration software
- decides which machine a container will be deployed
- creates virtual networks and connects containers/users
- provides autoscaling
Examples of container orchestration software?
Kubernetes
Docker Swarm
Cloud Foundry