Don’t forget Maintenance

m
http://www.itservicemanagement-itil.com/software-maintenance-from-a-service-perspective/

In the software development lifecycle, the last phase (but not least) is Maintenance. Once you delivered software, defects are uncovered, environments might change and new requirementes will appear; thus, software maintenance is necessary. Its objective is to modify existing software while preserving its integrity. It’s also important to apply maintenance activities before the final delivery of software.

Maintenance consumes a major share of the financial resources in a software life cycle. I suppose its because it has no end (or until Retirement).

table
Preventative categories

There are key issues that must be covered to ensure a good maintenance, basically they are:

  • Technical issues
  • Management issues
  • Cost estimation
  • Measurement

proces

Techniques of Software Maintenance:

  • Program comprehension: To read and understand programs in order to implement modifications.
  • Reengineering: To alterate software to reconstitute it in a new form and to implement it. Refactoring is a reengineering technique that reorginizes the program without changing its behavior.
  • Reverse engineering:  To identify software’s components and their relantionships to reach higher levels of abstraction. Its purpose is to produce graphs from source code.
  • Migration: To modify software so it can run in different enviroments.
  • Retirement: When software reaches the end of its useful life. A previous analysis must be done to make the retirement decision.

As you can see, maintenance can be the most important phaste of the lifecycle, without it, the previous steps won’t be used to the maximum.

Source:


Software Development Process

waterfall

The SDP (Software Development Process) is almost the same as the Software Development Life Cycle. It is the group of actions or processes in order to complete tasks. Some of the actions or activities regarding the SDP are:

  • Requirements Analysis: research the requirements of the future product, customers are needed to achieve this task.
  • Specification: create a deep explanation regarding the specifications that the customer gives.
  • Software Architecture: design a model in order to implement all, or at least most of, the specifications.
  • Implementation: Code the design.
  • Testing: test the different parts of the product. Different people may interact with it in order to find any bug or glitch.
  • Documentation: Specify every part of the code in order to state a clear description of the software.
  • Training and Support: Teach the customer how to use the new product.
  • Maintenance: create new updates if it is necessary. Fix bugs if something appears.

http://www.selectbs.com/analysis-and-design/what-is-a-software-development-process


Software Lifecycle

El ciclo de vida de un software es en generar una serie de pasos que siguen los desarrolladores y el objetivo de esto es hacer que un producto de buena calidad que pueda estar en constantemente mejorándose.

Los ciclos de vida que siguen los desarrolladores la mayoría de las veces siguen un patrón en generar que son recolección y análisis de información, diseño, implementación, testeo, despliegue, mantenimiento.

En la parte de recolección y análisis normalmente es la parte donde se determina lo que va a hacer el producto, para quien está dirigido, como van a utilizar el producto, que se tiene que quitar y que se tiene que incorporar al producto. Es primordialmente donde tienes que estar en una buena comunicación para saber exactamente qué es lo que se va a hacer.

En el diseño es donde se especifican los detalles del producto como que sistema va a utilizar como será físicamente (si es que es físico).

2280385549_7b49046ef8
flickr photo by Lindsey Bieda shared under a Creative Commons (BY) license

 

La parte de implementación es donde se empiezan a hacer los cambios definidos en la
primera parte dentro del código. Como esta parte es la que nos va a dar el funcionamiento del producto es normalmente en la que más tiempo se tardan la mayoría de las empresas en cumplir.

El testeo está hecho para estar seguros de que el producto está cumpliendo con lo que se quería cumplir y si tiene algún problema poder saberlo y arreglarlo.

Ya que todas las anteriores están sigue el despliegue, la parte donde ya se le da tu producto al usuario.

La última parte del ciclo es el mantenimiento, cuando los usuarios están usando tu producto siempre va a haber algún tipo de problema y esta es la parte donde se solucionan estos.

Continue reading "Software Lifecycle"

Software Development Life Cycle

sdlc_-_software_development_life_cycle

I just found out that the Software Development Life Cycle has six different phases. I’ll explain them below. The Life Cycle of the software is employed while the software is in its development process. It is also known as “Software Development Process Models”. The phases of the Software Development Life Cycle are the following:

  1. Requirement gathering and analysis
  2. Design
  3. Implementation or coding
  4. Testing
  5. Deployment
  6. Maintenance

(Retrieved from http://istqbexamcertification.com/what-are-the-software-development-life-cycle-sdlc-phases/ ).

  1. Requirement gathering and analysis:

It’s the process in which information regarding the project is investigated. They try to answer these questions to complete the information: Who is going to use the system? How will they use the system?  What data should be input into the system?

2. Design:

System Design creates the draft of the project according to the specifications that were retrieved in phase 1. It is used as a model in order to be used in the following phases.

3. Implementation or coding:

With the new model, software engineers start to code. They are divided in teams in order to fill the different areas of coding.

4. Testing:

When code is finished, the testing phase starts. Here, they can track bugs or see if they followed all the requirements established in phase 1.

5. Development:

When testing phase finishes, the product is delivered to the customer.

6. Maintenance:

Customer finds some bugs and the team needs to give maintenance to the product constantly.