Sie sind auf Seite 1von 15

Estándares de calidad aplicados al software

Juan Hidalgo Zepeda

MODELOS Y CONTROL DE CALIDAD

Instituto IACC

10-06-2019
Desarrollo

1. Defina las características principales de un framework para la mejora de procesos.

Describa los pasos a seguir e indique en términos generales cuál o cuáles serían las

ventajas de introducir este instrumento en una empresa de desarrollo de software.

El trabajo desarrolla un framework de mejora de procesos sobre organizaciones que realicen

desarrollo o mantenimiento de software independientemente del tamaño de la organización. Este

framework no está atado a un modelo de referencia en particular, proveyendo los lineamientos

para guiar a las organizaciones de software en la elección de estrategias de mejoras de procesos

mediante la determinación de la madurez de sus procesos actuales y la identificación de algunos

puntos críticos que afectan a la calidad del software y a la mejora de procesos. El objetivo del

trabajo es: Desarrollar un trabajo de tesis que permita definir conceptualmente un framework de

mejora de procesos de desarrollo de software.

El trabajo se compone del framework en sí modelado como un conjunto de procesos que guíen a

la empresa o sector para poder certificar o evaluar estándares internacionales. El desarrollo del

framework de mejora de procesos es complementado con un conjunto de herramientas para realizar

la mejora, y un caso práctico concreto. Esto se detalla en la sección de alcance. El framework se

basa en el modelo de mejora de procesos de software IDEAL del SEI, pero acotado respecto:

1. Nivel de capacidad que pretende alcanzar la organización

2. Tipo de software desarrollado y objetivos perseguidos por la organización (ver sección 0.7).

3. Proveer un conjunto de prácticas alternativas que permitan alcanzar los objetivos de cada área

clave de proceso.

4. Complementar el framework con prácticas del ámbito de RRHH y aspectos culturales.


Ventajas

 Estructura y organización del código predeterminada. Los frameworks proporcionan

tanto un esqueleto como una forma de trabajar. Por lo tanto, evitan tener que realizar un

análisis sobre dónde situar los diferentes archivos de la aplicación (recursos, controladores,

vistas, modelos, etc.).

 Reutilización del código. Evitar duplicidad de código. En el desarrollo de una aplicación

existen ciertos apartados que suelen repetirse, como la conexión con la base de datos,

validación de formularios, páginas de estilos, etc. Con la utilización de un framework

ahorraremos tiempo en desarrollar funcionalidades que ya están cubiertas y podremos

enfocarnos en el funcionamiento de la aplicación más que en cómo llevarla a cabo.

 Agilidad y rapidez en el desarrollo. Precisamente gracias a la reutilización de código

mencionada anteriormente, conseguimos mayor rapidez en el desarrollo, ya que no

perderemos tiempo en desarrollar funcionalidades nuevas.

 Menor coste en el desarrollo. El coste es un parámetro que está directamente relacionado

con la rapidez y agilidad. Acabar antes un proyecto implica que la dedicación es menor y

por lo tanto el coste del proyecto también disminuye. Al igual que la rapidez en el

desarrollo, esta ventaja beneficia tanto al cliente como al desarrollador.


 Buenas prácticas de desarrollo con el uso de patrones. La mayoría de frameworks están

basados en patrones de diseños, que nos indican pautas sobre cómo solucionar un problema

específico que ya ha ocurrido con anterioridad. El patrón de diseño más popular es MVC

(Modelo-Vista-Controlador), que nos ayuda a separar la capa de datos de la lógica del

negocio de la interfaz con el usuario.

 Minimizar errores y mayor facilidad para solucionarlos. Como el framework ya

incorpora código implementado por otros programadores, los posibles errores que este

pueda tener siempre serán menores que al desarrollarlo desde cero. Además, en caso de

que hubiera un error, lo más probable es que ya haya sido solucionado por la comunidad.

 Facilidad a la hora de encontrar una librería o código que ya cubra funcionalidades

de tu desarrollo. Resulta más fácil encontrar herramientas (utilidades, librerías) adaptadas

al framework que para un desarrollo propio.

 Facilita la colaboración con otros desarrolladores. Tanto si son compañeros de tu equipo

como de GitHub, leer el código desarrollado por otra persona puede resultar complejo. Sin

embargo, si ya sabes qué estructura va a seguir el código y cómo se organiza, resultará más

fácil comprenderlo y poder aplicarle nuevos cambios. Lo que nos lleva a la siguiente

ventaja.
 Facilita el mantenimiento. Si todos los miembros de un equipo trabajan de la misma

forma, en el momento que haya que actualizar la aplicación o realizar algún evolutivo,

tardaremos menos tiempo y el coste será menor.

2. Como jefe del área de informática, usted está a cargo de diez profesionales del área. Dentro

de las funciones que realiza su área está el desarrollo de soluciones de software para

empresas de la industria financiera. Usted ha llegado a ocupar este cargo hace un mes y se

ha encontrado con una serie de compromisos dentro de los próximos doce meses. Como usted

es un profesional experimentado, una de sus primeras tareas es conocer el proceso de

desarrollo de software que ha dejado la anterior jefatura.

a. Realice una evaluación, determine oportunidades de mejoras e identifique las capacidades

con que cuenta su área.

Id Nombre Predecesoras
0 Proceso de Evaluación
1 Establecer Requisitos y objetivos
2 Establecer el Propósito de la Evaluación
3 Identificar el Producto a Evaluar 2
4 Identificarlos Requerimientos de Calidad 3
5 Elegir el Marco de Calidad
6 Definir El Modelo de Calidad a Usar 4
7 Definir la Rigurosidad del Modelo 6
8 Especificar la Evaluación
9 Administrar Riesgos de la Evaluación 7
10 Identificar Riesgos de Proyecto y/o Producto 9
11 Analizar los Riesgos 10
12 Tratar los Riesgos 11
13 Monitorear los Riesgos 12
14 Definir Recursos para la Evaluación 9
15 Conformar Equipo Evaluador 9
16 Seleccionar las Métricas 9
17 Establecer Ponderación 16
18 Establecer Fidelidades de Medición 17
19 Establecer Criterios de aprobación 18

20 Diseñar la Evaluación
21 Preparar Recursos e Infraestructura 14
22 Elaborar el Plan de Mediciones 19
23 Elaborar las Pruebas 22
24 Elaborar casos de Prueba 23
25 Diseñar los registros de las Pruebas 24
26 Obtener y Adecuar Recursos para la Evaluación 22
27 Diseñar el Ambiente de Prueba 21,22
28 Evaluar el Producto
29 Completar las Encuestas 25

30 Realizar las Pruebas 29


31 Armar el Ambiente de Prueba 25
32 Ejecutar casos de Prueba 27;31
33 Documentar sus Ejecuciones 32
34 Concluir la Prueba 33
35 Medir los Atributos requeridos por las Métricas 18;22;30
36 Registrar los Valores de las Métricas en el Modelo de 35
Evaluación
37 Obtener Resultados 36
38 Concluir la Evaluación

39 Analizar los resultados 37


40 Concluir el Grado de Calidad 39
41 Documentar la Evaluación 40

b. Elabore un plan de tareas que muestre las siguientes actividades que realizará para

afrontar los compromisos.


Para su elaboración será necesario establecer los objetivos que se proponen alcanzar y diseñar la

planificación de las tareas para conseguirlos.

El plan de mejoras permite:

 Identificar las causas que provocan las debilidades detectadas.

 Identificar las acciones de mejora a aplicar.

 Analizar su viabilidad.

 Establecer prioridades en las líneas de actuación.

 Disponer de un plan de las acciones a desarrollar en un futuro y de un sistema de

seguimiento y control de las mismas.

 Negociar la estrategia a seguir.

 Incrementar la eficacia y eficiencia de la gestión.

El plan elaborado en base a este documento permite tener de una manera organizada, priorizada y

planificada las acciones de mejora.

c. Usted cuenta con el apoyo de la gerencia, por lo cual le han asignado un presupuesto

bastante holgado.

d. Haga los supuestos que estime.

Se debe identificar claramente el Producto a Evaluar, o la Parte del producto sujeto a Evaluación.

Así, tenemos 4 posibles escenarios:

 En Desarrollo: Para pasar a la siguiente Etapa de Desarrollo. Aquí tienen impacto los

Artefactos y los Módulos existentes, tanto como sus relaciones con el Plan de Proyecto de

Desarrollo del Software. Estos pueden cambiar y actualizarse en tanto se avanza en el

desarrollo de la Aplicación.
 Desarrollado: Para estimar su calidad Final. Se debe identificar todos los Artefactos y los

Módulos existentes relativos al Software o al Módulo bajo estudio.

 Desarrollado: Cuando queda Obsoleto o Cuando lanzar una Actualización. Además de

identificar todos los Artefactos y los Módulos existentes relativos al Software o al Módulo

bajo estudio; debemos incluir el RoadMap (Hoja de Ruta) del Ciclo de Vida del Producto.

 Evaluación y Selección de un Software entre Productos Alternativos: los productos a

evaluar son productos finales de software o componentes, ya sean construidos a Medida,

Prefabricados o incluso Prototipos.

Monitorear los Riesgos

Los procesos de monitoreo y revisión de la deben comprender todos los aspectos del proceso para

la gestión del riesgo con el fin de:

- garantizar que los controles son eficaces y eficientes en el diseño y en la operación;

- obtener información adicional para mejorar la valoración del riesgo;

- analizar y aprender lecciones a partir de los eventos (incluyendo los eventos que son casi

accidentes), los cambios, las tendencias, los éxitos y los fracasos;

- detectar cambios en el contexto externo e interno (cambios en los criterios del riesgo y en el

riesgo mismo) que puedan exigir revisión de los tratamientos del riesgo y las prioridades

- identificar los riesgos emergentes.

El avance en la implementación de los planes para tratamiento del riesgo suministra una medida

de desempeño.

Las tareas de Medición de Métricas deben estar consignadas en un Calendario de Actividades,

teniendo en cuenta los recursos y sus disponibilidades. Así, el plan debe incluir lo siguiente:
• Calendario de las Mediciones;

• Responsabilidades de las partes involucradas en la medición;

• Medio Ambiente para la actividad;

• Los métodos de medición y herramientas;

• Normas adoptadas;

• Las actividades de evaluación.

3. Un amigo suyo inició hace un par de meses un procedimiento de mejora de los procesos en

su empresa, específicamente en el área informática. Le comenta que han tenido un trabajo

arduo pero que aún no logran alcanzar el objetivo que se ha propuesto. Como usted es un

conocedor del modelo CMMI, le propone revisar las prácticas y definiciones de este modelo,

dado que ha sido desenvuelto específicamente para empresas que desarrollan soluciones de

software. Dado lo anterior, usted le ofrece su ayuda. Se compromete a enviarle una

descripción detallada de cada uno de los niveles para orientarlo y ayudarle a definir sus

requerimientos de mejora. Elabore un breve informe donde explique cada nivel y destaque

las características de cada uno.

Respuesta

Uno de los modelos de mejora de procesos más usados en las organizaciones es el CMMI.El

CMMI, es un modelo que ayuda a: integrar las funciones de la organización, conducir la mejora

de los procesos, proporciona una guía de calidad de los procesos y puntos de referencia para la

evaluación de estos. El propósito del modelo es proveer una guía para mejorar los procesos de la

organización y la capacidad para gestionar el desarrollo, la adquisición y el mantenimiento de

productos y servicios.
Este modelo consta de cinco niveles de madurez que clasifican a la organización, estos niveles

sirven para conocer la madurez de los procesos que se realizan para producir software.

Los niveles de madurez de una organización en CMMI son :

1. Inicial.

2. Gestionado.

3. Definido.

4. Gestionado cuantitativamente.

5. Optimizado.

Cada nivel comprende un conjunto de áreas de proceso estas cubren desde el desarrollo de los

productos y de los servicios hasta el mantenimiento de los mismos. Independientemente de la

disciplina a cual esté enfocada la organización, las áreas de proceso se subdividen en grupos

distintos los cuales dependen de cada representación ya sea la continua o por etapas.
1 - Inicial. Las organizaciones en este nivel no disponen de un ambiente estable para el

desarrollo y mantenimiento de software. Aunque se utilicen técnicas correctas de ingeniería, los

esfuerzos se ven minados por falta de planificación.

El éxito de los proyectos se basa la mayoría de las veces en el “esfuerzo personal”, aunque a

menudo se producen fracasos y casi siempre retrasos y sobre costes. El resultado de los

proyectos es impredecible.

2 - Gestionado Cuantitativamente. En este nivel las organizaciones disponen de unas prácticas

institucionalizadas de gestión de proyectos, existen unas métricas básicas y un razonable

seguimiento de la calidad. La relación con subcontratistas y clientes está gestionada

sistemáticamente.

3 - Definido. Además de una buena gestión de proyectos, a este nivel las organizaciones

disponen de correctos procedimientos de coordinación entre grupos, formación del personal,

técnica de ingeniería detallada y un nivel avanzado de métricas en los procesos. Se implementan

técnicas de revisión por pares (peer reviews).

4 - Gestionado. Se caracteriza por que las organizaciones disponen de un conjunto de métricas

de calidad y productividad, que se usan de modo sistemático para la toma de decisiones y la

gestión de riesgos. El software resultante es de alta calidad.

5 - Optimizado. La organización completa está en la mejora continua de los procesos. Se hace

uso intensivo de las métricas y se gestiona el proceso de innovación.

El CMMI incluye cuatro disciplinas, en función de la amplitud de los procesos que cubre:

1. CMMI-SW: Software (SW – Software Engineerin)

2. CMMI-SE/SW: + Ingeniería de sistemas (SE – System Engineering)


3. CMMI-SE/SW/IPPD : + Desarrollo integrado de procesos y productos (IPPD –

Integrated Product and Process Development)

4. CMMI-SE/SW/IPPD/SS: + Gestión de proveedores (SS – Supplier Sourcing)

Características Generales

CMMI presenta dos representaciones del modelo: continua (capacidad de cada área de proceso)

y/o por etapas (madurez organizacional).

En la representación por etapas, se da un mapa predefinido, dividido en etapas (los niveles de

madurez), para la mejora organizacional basada en procesos probados, agrupados y ordenados y

sus relaciones asociadas. Cada nivel de madurez tiene un conjunto de áreas de proceso que indican

donde una organización debería enfocar la mejora de su proceso. Cada área de proceso se describe

en términos de prácticas que contribuyen a satisfacer sus objetivos.

Las prácticas describen las actividades que más contribuyen a la implementación eficiente de un

área de proceso; se aumenta el ‘nivel de madurez’ cuando se satisfacen los objetivos de todas las

áreas de proceso de un determinado nivel de madurez.

La visión escalonada definirá a la organización dándole en su conjunto un nivel de madurez del 1

al 5.

Representación de la Estructura del Modelo CMMI en su Representación Escalonada.


Representación de la Estructura del Modelo CMMI en su Representación Continua.
Bibliografía

[Haga triple clic en cualquier parte de este párrafo para escribir la primera referencia bibliográfica.]

Instrucciones para la sección de las citas bibliográficas:


Contenido de la semana 5

https://www.ecured.cu/Proceso_de_mejora_de_Software

https://www.tithink.com/es/2018/08/29/framework-o-librerias-ventajas-y-desventajas/

Das könnte Ihnen auch gefallen