Sunteți pe pagina 1din 23

Procesos de calidad

1
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
Tabla de contenido

1. Introducción 3

2. Mapa conceptual 3

3. Calidad, eficiencia y eficacia 4

4. Proceso de desarrollo de software o ciclo de vida 6

4.1. Historia de proceso de desarrollo de software

5. Proceso básico del ciclo de vida de un sistema 9

5.1. Modelos de ciclo de vida

6. Gestión de calidad 16

6.1. Ventajas del sistema de gestión de la calidad

6.2. Riesgos del sistema de gestión de la calidad

7. Principios de calidad de software 17

8. Glosario 20

9. Referencias bibliográficas 21

Control del documento 22

Control de cambios 22

Créditos 23

Creative Commons 23

2
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
1. Introducción

El programa complementario de Procesos para software de calidad, hace parte de una


serie de ofertas de formación, con las que el SENA busca brindar conocimientos actualizados
en el área ocupacional de tecnologías de la información.

En esta oportunidad, se busca que el Aprendiz pueda determinar las características


necesarias para un proceso de software de calidad; debido a que es uno de los principales
objetivos estratégicos de las organizaciones, pues cada día su competitividad depende en
gran medida del funcionamiento de este tipo de productos.

2. Mapa conceptual

Fuente: SENA

3
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
3. Calidad, eficiencia y eficacia

A la hora de comprar, el cliente siempre espera que el producto o servicio ofrecido cumpla con
lo prometido por las campañas publicitarias, los vendedores o las empresas.

Cuando un consumidor llega al establecimiento comercial, es porque tiene claro lo que necesita,
sabe dónde encontrarlo o porque es el lugar de su preferencia. Si allí no encuentra lo que
busca, tratará de adquirir algo parecido, o lo mismo, en un negocio diferente.

En la satisfacción de la demanda, tres factores juegan un papel fundamental: calidad, eficiencia


y eficacia.

Figura 1. Calidad, eficiencia y eficacia


Fuente: SENA
● Calidad.

Este término ha evolucionado con el tiempo, es un atributo que se relaciona con las exigencias
de los consumidores con respecto a la satisfacción de sus necesidades.

Algunas de las definiciones más significativas de este concepto, - según se cita en el


portal web iso9001calidad.com (2013) -, son las siguientes: 1) Constitución con la cual la
mercadería satisface el empleo previsto (Asociación Alemana para la Calidad); 2) Conjunto
de propiedades y características de un producto o servicio, que confiere su aptitud para
satisfacer las necesidades dadas (Instituto Alemán para la Normalización).

La calidad en el software se detalla en sus particularidades o condiciones (características


mesurables), las cuales se pueden comparar y analizar frente a diferentes estándares.

4
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
Figura 2. Definiciones de calidad en el desarrollo de software

Fuente: SENA

Aunque se reconoce que el software carece de condiciones idénticas entre un programa y


otro, existen mediciones que permiten valorar características estandarizadas de un desarrollo,
como el enfoque estructural, el funcional y las líneas de código (Cendejas, 2014).

En las características mensurables de un producto de software, se pueden encontrar dos tipos


de calidad: de diseño y de concordancia.

Figura 3. Calidad de diseño y concordancia


Fuente: SENA

5
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
- Calidad de diseño: se refiere a las características que los diseñadores especifican en el
desarrollo de software, este tipo de calidad incluye requisitos y especificaciones del diseño
del sistema.

- Calidad de concordancia: es el grado en el que las especificaciones de diseño se aplican


durante la fabricación. Es un tema enfocado principalmente a la implementación. Si la
composición y el sistema resultante satisfacen los requisitos y metas de desempeño, la
calidad de concordancia es alta.

● Eficiencia.

Es la relación entre el resultado alcanzado y los recursos utilizados. Indica que se implementan
menores gastos, frente a un buen resultado o que se obtienen mayores resultados, con el
mismo consumo de recursos.

● Eficacia.

En la norma ISO 9000, esta propiedad se define como el nivel de obtención de metas y
objetivos. El grado de eficacia se mide según el cumplimiento de las metas perseguidas, de
acuerdo con un plan y tiempos establecidos.

Se puede ser eficaz sin ser eficiente, (por ejemplo, cuando se entrega un puente antes del
tiempo previsto, pero con desperdicio de materiales) y también se puede ser eficiente, sin
ser eficaz (terminar el producto, pero después del tiempo indicado). La meta final es cumplir
con estas dos propiedades a fin de lograr equilibrio.

4. Proceso de desarrollo de software o ciclo de vida

El ciclo de vida del software corresponde a una serie estructurada de etapas para desarrollar
un producto deseado. Con el surgimiento de este concepto, se han ido creando paradigmas
y métodos con diferentes maneras de abordar el proceso de desarrollo.

6
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
Figura 4. Procesos de software
Fuente: SENA

4.1. Historia del proceso de desarrollo de software

En la ingeniería del software, se concibe el procedimiento de desarrollo como la aplicación


sistémica y cuantificable de operaciones enfocadas a dar origen a un producto.

Estos procedimientos tienen su origen en el desarrollo de las ciencias computacionales, en


un principio originadas en las ciencias de administración y de automatización de procesos
organizacionales.

A partir de los años sesenta hasta mediados de 1980, se originó la necesidad de crear nuevo
software, al ritmo de la aparición del hardware, lo que dio lugar al desarrollo de métodos,
herramientas y procedimientos sobre el ciclo de vida. Luego desde los años noventa, los
desarrollos son diversos y en general buscan implementar la calidad para dar respuesta a
necesidades de software cada vez más complejas en la sociedad.

7
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
Tabla 1.
Antecedentes históricos de métodos y herramientas en el proceso desarrollo de software

Fuente: SENA

8
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
5. Proceso básico del ciclo de vida de un sistema

Para desarrollar un software con probabilidad de éxito, es necesario que la metodología permita
administrar, gestionar y validar de manera ordenada dicho desarrollo, teniendo en cuenta sus
entradas, procesos y salidas que se regulan gracias al aporte de la normalización.

La metodología de desarrollo de software es el procedimiento por el que se puede pensar,


ejecutar y sostener un producto, desde la definición de sus requerimientos hasta su aplicación
en campo.

Desde esta perspectiva, el ciclo de vida contempla tres etapas básicas, que se caracterizan a
continuación:

Figura 5. Planificación, implementación y puesta en producción

Fuente: SENA

A las anteriores etapas, se puede añadir el conjunto de pautas que establece la International
Organization for Standarization (ISO) en su norma 12207, donde se define más claramente el
ciclo de vida de un software.

Esta normativa sirve como marco de referencia para las tareas y actividades involucradas en
el desarrollo, explotación y mantenimiento del producto, incluyendo todas sus etapas, desde la
creación hasta la finalización de uso.

De acuerdo con el documento normativo de la ISO (2008), estas son las etapas:

9
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
Figura 6. Etapas macro
Fuente: SENA

Por otro lado, entre algunos modelos de ciclo de vida se distinguen tres visiones:

Figura 7. Ciclos de vida


Fuente: SENA

Cada modelo supone un riesgo que indica la probabilidad de reemprender una o todas las
etapas anteriores, con lo cual se pierde tiempo, dinero y esfuerzo. Es importante resaltar que
no existe un modelo que evite por completo los riesgos que conlleva la ejecución de cualquier
proyecto.

10
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
5.1. Modelos de ciclo de vida

El desarrollo de productos de software, tiene diferentes enfoques y metodologías, que se


derivan de la forma como se concibe el ciclo de vida de los proyectos, básicamente desde tres
paradigmas: tradicional, orientado a objetos y de desarrollo ágil.

Los paradigmas tradicionales se caracterizan porque el proceso de desarrollo es lineal, sin


vuelta atrás, es decir, se completa cada fase de principio a fin, hasta que quede lista para
avanzar a la siguiente. Esta metodología genera pérdidas de tiempo, si se encuentra algún
error en una fase avanzada, siendo poco práctica.

● Ciclo de vida en el desarrollo tradicional

Figura 8. Ciclo de vida en el desarrollo tradicional de software


Fuente: SENA

Los paradigmas orientados a objetos buscan que el código fuente pueda ser utilizado en otros
desarrollos que guarden relación con el producto de base. Incluye la creación de clases, el
análisis de requisitos (determina duración y costos finales del proyecto) y diseño.

Los paradigmas de desarrollo ágil, consisten en la generación de proyectos bajo el principio


de agilidad en cada fase. Aquí el cliente se involucra en forma participativa, durante todo el
proceso de desarrollo, aportando ideas de inicio a fin. De esta manera, se busca un desarrollo
acertado en corto tiempo, de acuerdo a sus necesidades.

A continuación, se detallan las distintas metodologías en relación con los modelos de ciclo de
vida del software, que responden a los paradigmas citados:

11
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
● Modelo cascada

Modelo informático que corresponde al paradigma tradicional, de trayectoria lineal que consta
de algunas fases que en el proceso de desarrollo son superadas una a una para poder continuar
con la siguiente:

En este modelo, las fases del ciclo de vida del proyecto de software son:

1. Requerimientos

2. Diseño

3. Implementación y desarrollo

4. Integración

5. Pruebas o validación

6. Despliegue o instalación

7. Mantenimiento

● Modelo espiral

En esta metodología el ciclo de vida se concibe como una espiral, en la cual es posible repetir
o reestructurar cada fase durante el proceso. Se realizan varias iteraciones, considerando
básicamente las siguientes fases de ciclo de vida:

1. Determinación de objetivos

2. Análisis de riesgos

3. Desarrollo y pruebas

4. Planificación

En este modelo, se disminuyen los riesgos a medida que avanzan los ciclos o iteraciones, pero
representa altos costos y calidad en el equipo de trabajo, ya que se requiere experiencia para
superar los riesgos.

12
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
Figura 9. Modelo espiral
Fuente: okhosting.com (2017)

● Modelo iterativo o por prototipos

Es un modelo basado en el paradigma orientado a objetos, pues permite que el código fuente
sea reutilizable, además, es bastante eficiente ya que permite lograr el producto deseado. Las
fases del ciclo de vida de este sistema, son las siguientes:

a. Inicialización

b. Iteración

c. Lista de control

Una de las principales ventajas del modelo iterativo, es que su desarrollo permite la oportuna
retroalimentación, garantizando la plena satisfacción del cliente.

13
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
● Modelos de desarrollo ágil

Entre los modelos inspirados en el paradigma de desarrollo ágil se cuentan:

- Modelo Scrum: este modelo debe su nombre a un tipo de jugada del rugby, en el que todas
las partes del equipo deben estar bien alineadas. El trabajo se divide por ciclos denominados
sprints, sobre una lista de requisitos priorizados.

El sistema se basa en la colaboración con el cliente, en la disposición al cambio, en el


conocimiento de las personas, en el desarrollo incremental, en la comunicación verbal, en la
autogestión y la simplicidad.

Actividades del modelo Scrum

- Planificación de la iteración (Sprint Planning)

- Ejecución de la iteración (Sprint)

- Reunión diario de sincronización del equipo (Scrum Daily Meeting)

- Demostración de los requisitos completados (Sprint Review)

- Retrospectiva (Sprint Retrospective)

- Refinamiento de la lista de requisitos y cambios en el proyecto

- Modelo Kanban: esta es una metodología ágil de origen japonés, proviene del término
Kanban (símbolo visual para desencadenar una acción), que se considera altamente efectivo
y eficiente.

Mediante un tablero con etiquetas, se señalan las fases del proceso de desarrollo, integrando
las tareas realizadas y las pendientes, según las responsabilidades asignadas al equipo de
trabajo para el cumplimiento de los objetivos trazados.

Con este método, se abordan de manera simultánea otros desarrollos, sin que se generen
tiempos de espera o “espacios muertos” para el equipo, lo que permite mayor eficiencia.
Los procesos de trabajo en esta metodología son:

- Definir el flujo de trabajo

- Visualizar las fases del ciclo de producción

14
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
- Atender prioridades, antes de atender nuevas tareas (Stop starting, start finishing)

- Control del flujo de trabajo

Esta metodología es implementada por la empresa Toyota, lo que ha incrementado la eficiencia


y productividad de la compañía.

- Modelo XP o programación extrema

Formulada por el ingeniero de sistemas Kent Beck, esta metodología considerada “extrema”
se enfoca en los requerimientos y necesidades del cliente, al punto que este es quien participa
activamente en todas las etapas, lo que permite implantar ideas, necesidades o actualizaciones
en tiempo real. Se asume que los cambios y la adaptabilidad continuos, permite lograr el
producto deseado.

Este tipo de trabajo exige altos niveles de flexibilidad frente al cambio y se fundamenta en
valores como fluidez en la comunicación, simplicidad en aspectos de diseño para agilizar
el desarrollo (lo que exige la refactorización del código), retroalimentación constante con el
cliente, valentía en la reconstrucción de códigos y adelantos (adaptación al cambio) y respeto,
como la convicción de que cada miembro del equipo está comprometido con la calidad del
producto, independientemente de los fallos que se presenten.

La fundamentación en estos valores, incrementa el ritmo de producción. Las características de


este método son:

- Desarrollo iterativo e incremental

- Pruebas unitarias continuas

- Programación en parejas

- Integración frecuente del equipo con el cliente

- Corrección de todo error

- Refactorización o reestructuración del código

- Propiedad compartida del código

- Simplicidad en el código

15
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
6. Gestión de calidad

El sistema de gestión de calidad debe estar compuesto por procesos, procedimientos,


instrucciones de trabajo, mediciones y controles, integrados a las operaciones propias de la
organización.

Cuando mejoran los sistemas de gestión de calidad, aumenta la rentabilidad. La muestra de


compromiso con la calidad de productos y servicios, se considera un factor innovador de la
cultura empresarial y como consecuencia, la totalidad de los empleados se comprometen con
la necesidad de mejora continua.

6.1. Ventajas del sistema de gestión de la calidad

Entre las ventajas que conlleva la definición, desarrollo e implantación de un sistema de gestión
de calidad se encuentran:

Figura 10. Ventajas del sistema de gestión de calidad


Fuente: SENA

16
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
6.2. Riesgos del sistema de gestión de la calidad

Si no se asume como una oportunidad para mejorar la situación actual de la empresa, la


implantación de sistemas de gestión de calidad se puede convertir en un riesgo, a razón de
que:

Figura 11. Riesgos del sistema de gestión de calidad


Fuente: SENA

7. Principios de calidad de software

La calidad de software hace referencia a la eficiencia, confiabilidad, flexibilidad, mantenibilidad,


corrección, usabilidad, portabilidad, integridad y seguridad. La suma de estas condiciones,
determina la existencia y beneficio de un producto desarrollado.

La calidad es medible pero cambiante y se debe adaptar según el programa o sistema que
se aplique. Un producto de software, tanto si es destinado a un uso amplio y complejo, como
a uno reducido y sencillo, debe responder con flexibilidad, confiabilidad, mantenibilidad
y perfeccionamiento, siempre con el fin de disminuir costos durante su funcionamiento y
utilización.

La política de calidad de software establecida debe sustentarse sobre los siguientes principios
básicos:

17
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
Figura 12. Principios básicos
Fuente: SENA

● Principio tecnológico: corresponde a la adecuada conceptualización de las técnicas que se


deben utilizar en el proceso de desarrollo idóneo de software.

● Principio administrativo: incluye las funciones de planificación y control del desarrollo de


software, al igual que la organización del ambiente o centro de ingeniería.

● Principio ergonómico: delimita la interfaz entre el usuario y el ambiente automatizado.

Para lograr la calidad del software es necesario adoptar una buena política. Sin embargo, esto
no se asegurará sin procesos de control o evaluación para el aseguramiento de la misma.

Es necesario definir parámetros, indicadores y criterios de medición para garantizar el control


de la calidad.

Existen buenas prácticas a nivel mundial, entre ellas, los medios de programas de la CIC
de Rusia, implementan una metodología para la evaluación de la calidad definida en cuatro
grados jerárquicos: factor, criterio, métrica y elementos de evaluación.

Cada nivel inferior tiene indicadores que constituyen el nivel anterior. Otros autores relacionan
calidad con el nivel de complejidad del software en dos categorías de métricas: de programa o
código y de sistema o estructura.

● El proceso de control

El proceso de control requiere la ejecución de las siguientes actividades:

18
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
Figura 13. Proceso de control
Fuente: SENA
● Principios de calidad

Para lograr el éxito en la producción de software, es necesario desarrollar procesos de calidad


demostrados, lo cual será posible mediante la aplicación de sistemas de aseguramiento de
la calidad de software, estrechamente ligados a la definición de calidad de la ISO y a los
estándares del grupo ISO 9000, ampliamente aceptados.

Garzás (2011) menciona seis principios de calidad propuestos por Humphrey,


caracterizándolos de la siguiente manera:

Figura 14. Principios de calidad según Watts Humphrey


Fuente: Garzás (2011)

19
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
8. Glosario

Calidad: aquellas características del producto que responden o superan las necesidades del
cliente.

Calidad de la información: es una calificación del valor de la información en términos de la


utilidad potencial o real para los usuarios.

Competitividad: concepto que hace referencia a la capacidad de las empresas de producir


bienes y servicios de mejor calidad y menor precio que la competencia, lo que les permite
captar más consumidores y mayor presencia sostenible en el mercado, tanto a nivel nacional
como internacional.

Eficacia: capacidad de determinar los objetivos adecuados y hacer lo indicado con los recursos
disponibles.

Eficaz: se refiere al logro de los objetivos en los tiempos establecidos y con los recursos
disponibles.

Eficiencia: capacidad para reducir al mínimo los recursos usados y alcanzar los objetivos de
la organización. Hacer las cosas bien con el menor gasto.

Estándar: unidad de medida adoptada y aceptada comúnmente como criterio. Método


documentado y el mejor conocido para realizar alguna tarea o proceso.

Estrategia: esquema que contiene la determinación de los objetivos o propósitos de largo


plazo de la empresa y los cursos de acción a seguir. Es la manera de organizar los recursos.

Factor: elemento, circunstancia, influencia, que contribuye a producir un resultado.

Gestión: proceso emprendido por una o más personas para coordinar las actividades laborales
de otros individuos.

Indicador: es el elemento característico que describe una situación permitiendo su análisis. Por
ejemplo, el coeficiente de promoción es un buen indicador del éxito de las acciones educativas.

Infraestructura: la infraestructura constituye la base material y los recursos necesarios para


ejecutar una actividad productiva dada. Se refiere a las condiciones materiales mínimas para
operar cualquier acción.

Liderazgo: proceso que ayuda a dirigir y movilizar personas y/o ideas. Influencia interpersonal
ejercida en una situación, dirigida a la consecución de un objetivo.

20
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
Modelo: arquetipo o punto de referencia para seguir, imitar o reproducir.

Organización: asociación de personas regulada por un conjunto de normas en función de


determinados fines.

Paradigma: ejemplo o modelo de algo.

Proceso: serie sistemática de acciones dirigidas al logro de un objetivo.

Producto: es la salida de cualquier proceso.

Proyecto: conjunto de actividades específicas concebidas p ara a lcanzar determinados


objetivos con un presupuesto dado y en un período de tiempo establecido de antemano.

Estas actividades van de la intención o pensamiento de ejecutar algo hasta el término de su


ejecución y puesta en operación normal.

Sistema: conjunto de partes que operan con interdependencia para lograr objetivos comunes.

9. Referencias bibliográficas

Cendejas, J. (2014). Implementación del modelo integral colaborativo (mdsic) como fuente
de innovación para el desarrollo ágil de software en las empresas de la zona centro -
occidente en México. Calidad en el desarrollo de software. Recuperado de
http://www.scielo.org.mx/pdf/ns/v7n13/v7n13a8.pdf

Enfoque-sistemico-ing.blogspot.com (abril 23, 2014). Calidad de software. [Web log


post] Recuperado de https://issuu.com/kinverskiner/docs/calidad_de_software

Garzás, J. (21 feb. 2011). Los seis principios de la calidad software. [Web log post].
Recuperado de http://www.javiergarzas.com/2011/02/principios-calidad-software.html

iso9001calidad.com (2013). ¿Qué es calidad? Recuperado de


http://iso9001calidad.com/que-es-calidad-13.html

Kanbantools.com (2018). ¿Por qué utilizar la metodología Kanban? Recuperado de


https://kanbantool.com/es/metodologia-kanban

Lemus, C. (2007). Calidad de software, modelos, procesos, arquitecturas. Recuperado


de http://www.cimat.mx/Eventos/seminariodetecnologias/handout-CLemus.pdf

OKhosting.com (2016). El Ciclo de Vida del Software. [Web log post] Recuperado de
https://okhosting.com/blog/el-ciclo-de-vida-del-software/

21
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
Peláez, L. (2012). Caracterización del proceso de desarrollo de software en Colombia: una
mirada desde las PYMES productoras. Recuperado el 27 de noviembre de 2017
http://biblioteca.ucp.edu.co/ojs/index.php/paginas/article/view/275

Proyectosagiles.org (2018). Lista de tareas de la iteración (Sprint Backlog). [Web log


post] Recuperado de https://proyectosagiles.org/lista-tareas-iteracion-sprint-backlog/

Ramírez, J. (26 de julio 2012). Ciclo de vida del software. [Web log post]. Recuperado de
http://ciclodelsoftware.blogspot.com/2012/07/ciclo-de-vida-del-software.html

Tutorialspoint.com (2016). Software - ciclo de vida de desarrollo. Recuperado de


https://www.tutorialspoint.com/es/software_engineering/software_development_life_cycle.htm

Control del documento

Control de cambio

22
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje
23
FAVA - Formación en Ambientes Virtuales de Aprendizaje - SENA - Servicio Nacional de Aprendizaje

S-ar putea să vă placă și