Compendio de Ingeniería del Softwarecotana.informatica.edu.bo/downloads/el proceso-2-2012.pdf ·...
Transcript of Compendio de Ingeniería del Softwarecotana.informatica.edu.bo/downloads/el proceso-2-2012.pdf ·...
MODULO I
1.2 EL PROCESO
Resumen preparado por Miguel Cotaña
Ingeniería de Software INF - 163
16/08/12 1
Desde el punto del vista del software hay 3 clases de entidades que podemos distinguir:
Procesos; Productos; Recursos.
Aunque es fundamental asegurar la calidad de todos, son los procesos y los productos generados los que cobran mayor importancia, ya que generalmente no es posible modificar los recursos existentes.
2
La construcción del software de ordenador es un proceso iterativo de aprendizaje y el resultado es una materialización del conocimiento recolectado, depurado y organizado conforme el proceso estuvo en ejecución
3
La producción de software ha evolucionado desde una actividad artesanal e individualizada hacia un proceso con una orientación industrial y sistematizada. Se trata de enfocar el problema desde una perspectiva mas controlable, verificable y mesurable.
4
Las actividades, acciones y tareas asociadas a la IS se estructuran para dar lugar a los procesos del ciclo de vida del software que incluyen procesos para la adquisición, suministro, desarrollo y operación del software junto con procesos de apoyo como validación, verificación, gestión de la configuración y aseguramiento de la calidad.
5
Tres aspectos del proceso
6
PROCESO DE SOFTWARE
Resultados
Aprendizaje
Definición
1.- Definición del proceso Un proceso debe estar definido (documento que especifica actividades y procedimientos del proceso) 2.- Aprendizaje del proceso El conocimiento del proceso debe ser transferido a las personas (agentes) que lo ejecutarán 3.- Resultados del proceso Manifestación de los productos, como resultado de la ejecución de las actividades definidas por el proceso
7
Obtener
Requisitos
NecesidadesEspecificación de
RequisitosDiseño Codigo
Diseñar
SistemaCodificar Probar
Ciclos de vidaProceso
Sistema Software
8
Proceso internalizado y proceso institucionalizado
Cuando un proceso es desarrollado profesional y naturalmente por una persona, se dice que el proceso esta “internalizado” por la persona. En las organizaciones los procesos
son comunes a grupos de personas. Para obtener disciplina en los procesos, estos deben ser establecidos como “institucionalizados” en la organización.
9
Ingenieria del software
[Ingeniería de software es] el establecimiento y uso de principios de ingeniería adecuados para obtener económicamente software que sea confiable y trabaje eficientemente en máquinas reales (Fritz Bauer)
teoria practica
Resolucion
de
problemas
Administracion
y gestion
Pruebas y
control de
calidad
Definicion
10
Definicion segun el IEEE
La ingenieria de software es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento del software; es decir, la aplicación de la ingeniería al software
11
Software Engineering Ingeniería de Software
enfoque de “calidad”
modelo de proceso
métodos
herramientas
12
Ingenieria del software: tecnologia estratificada
MARCO DE TRABAJO PARA EL PROCESO
Un marco de trabajo establece la base
para un proceso de software completo al
identificar un numero pequeño de
actividades del marco de trabajo
aplicables a todos los proyectos de
software, sin importar su tamaño y
complejidad.
Abarca un conjunto de actividades
sombrilla aplicables a lo largo del
proceso del software. 13
Cada actividad dentro del marco de
trabajo contiene un conjunto de
acciones de ingeniería del software; es
decir, una serie de tareas relacionadas
que produce un producto del trabajo en
la I.S. (por ejemplo, el diseño es una
acción de la I.S.).
Cada acción la forman tareas de trabajo
individuales que completan alguna parte
del trabajo implicado por la acción. 14
Marco de trabajo del proceso de software
Actividades sombrilla
Marco de trabajo del proceso
Actividad del marco de trabajo #1
Tareas del trabajo
Productos del trabajo
Puntos de aseguramiento
Fundamentos del proyecto
Tareas del trabajo
Productos del trabajo
Puntos de aseguramiento
Fundamentos del proyecto
Accion de la ingenieria de software # 1.k
Accion de la ingenieria de software # 1.1
Conjunto
de tareas
.
Conjunto
de tareas
.
.
Actividad del marco de trabajo #n
Tareas del trabajo
Productos del trabajo
Puntos de aseguramiento
Fundamentos del proyecto
Tareas del trabajo
Productos del trabajo
Puntos de aseguramiento
Fundamentos del proyecto
Accion de la ingenieria de software # n.m
Accion de la ingenieria de software # n.1
Conjunto
de tareas
.
Conjunto
de tareas
.
.
15
Aplicacion del marco de trabajo en proyectos
Comunicación. Esta actividad del marco de trabajo implica una intensa colaboración y comunicación con los clientes; además, abarca la investigación de requisitos y otras actividades relacionadas. Planeación. Esta actividad establece un plan para el trabajo de la ingeniería del software. Describe las tareas técnicas que deben realizarse, los riesgos probables, los recursos que serán requeridos, los productos del trabajo que han de producirse y un programa de trabajo. Modelado. Abarca la creación de modelos que permiten al desarrollador y al cliente entender mejor los requisitos del software y el diseño que logrará satisfacerlos.
16
Construcción. Esta actividad combina la generación del codigo (ya sea manual o automatizado) y la realización de pruebas necesarias para descubrir errores en el código. Despliegue. El software (como una entidad completa o un incremento completado de manera parcial) se entrega al cliente, quién evalua el producto recibido y proporciona información basada en su evaluación.
17
Actividades sombrilla
Seguimiento y control del proyecto de software: permite que el equipo de software evalue el progreso comparandolo con el plan del proyecto y así tomar las acciones necesarias para mantener el programa; Gestión de riesgos: evalua los riesgos que pudiera afectar los resultados del proyecto o la calidad del producto; Aseguramiento de la calidad del software: define y conduce las actividades requeridas para asegurar la calidad del software; Revisiones técnicas formales: evalua los productos del trabajo de la I.S., en un esfuerzo encaminado a descubrir y eliminar los errores antes de que éstos se propaguen; 18
Medición: define y recolecta mediciones del proceso, el proyecto y el producto para ayudar al equipo a entregar software que satisfaga las necesidades del cliente; Gestión de la configuración del software: maneja los efectos del cambio a través del proceso del software; Gestión de la reutilización: define los criterios para la reutilización de productos del trabajo (se incluyen componentes del software) y establece mecanismos para la creación de componentes reutilizables; Preparación y producción: abarca las actividades requeridas para crear productos del trabajo como modelos, documentos, registros. 19
INTEGRACION DEL MODELO DE CAPACIDAD DE MADUREZ
El instituto de Ingeniería del Software (SEI)
ha desarrollado un modelo completo de un
amplio proceso basado en un conjunto de
capacidades de software y de sistemas que
deben estar presentes conforme las
organizaciones alcanzan diferentes grados
de capacidad y madurez del proceso. Una
organización debe crear un modelo de
proceso que se ajuste a las directrices
establecidas por la integración del modelo
de capacidad de madurez (IMCM)
20
IMCM PARA DESARROLLO: CMMI-DEV
CMMI (Capability Maturity Model
Integration) es una evolución del CMM para
software (Software Capability Maturity
Model).
CMMI, integra los modelos de madurez y
capacidad de software, ingeniería de
sistemas y desarrollo integrado de
programas.
CMMI, es un conjunto de productos (suite)
que soportan la mejora de sistema.
21
Tiene como objetivo ayudar a las
organizaciones a mejorar su capacidad para
entregar los productos a sus clientes.
Puede utilizarse para mejorar toda la
organización, una división o bien una
unidad de la organización.
Ayuda a integrar los esfuerzos de mejora,
integrando aspectos tradicionalmente
separados como son gestión y desarrollo.
22
¿Qué diferencia tiene CMMI
con una metodología?
¿CMMI es orientado a
objetos? ad.
CMMI, nos señala un conjunto de prácticas
que describen las características de
procesos efectivos, no indica secuencia de
ejecución
23
CMMI, agrupa las mejores prácticas en lo
que se denomina “constelaciones”.
Una constelación es una colección de
componentes CMMI que se utilizan para
construir modelos, materiales de formación
y documentos de evaluación. Existen:
La de desarrollo (CMMI-DEV);
La de servicios (CMMI-SVC);
La de adquisición (CMMI-ACQ).
24
El modelo IMCM (integración del modelo de
capacidad de madurez), es el modelo más
utilizado en la industria del software.
“Mide la capacidad del
proceso para desarrollar
software con calidad” ad. (predictibilidad en costos, duración, y niveles de calidad previstos)
25
La IMCM representa un modelo completo de
proceso en dos formas diferentes:
1.- Como un modelo discreto
2.- Como un modelo continuo
5
4
3
2
1
0 PP GR MA GC ACPP otros
PP Planeación del proyecto
GR Gestión de requisitos
MA Medición y análisis
GC Gestión de configuración
ACPP Aseguramiento de la calidad del producto y el proceso
26
MODELO DISCRETO
Esta representación utiliza conjuntos
predefinidos de áreas de procesos con
objeto de definir un camino de mejora
(niveles de madurez) para una
organización.
Cada nivel de madurez proporciona un
conjunto de áreas de proceso que definen
los diferentes comportamientos de la
organización. Cada etapa proporciona un
conjunto específico de procesos para
mejorar.
27
Clasificación de acuerdo con niveles de madurez
Inicial
Gestionado
Definido
Gestionado
Los procesos son generalmente ad hoc y caóticos. El éxito depende
del personal (héroes) y no del uso de procesos probados. Se
producen productos y servicios, aunque generalemente exceden el
presupuesto y el calendario de los proyectos.
Se han logrado todas la metas genéricas y específicas. Los
requerimientos se gestionan y que los procesos se planifican,
ejecutan, miden y controlan.
Se controlan utilizando técnicas estadísticas y cuantitativas. Se
establecen objetivos cuantitativos en cuanto al rendimiento de
calidad y del proceso.
Se logran todas las metas específicas y genéricas. Los procesos
se mejoran continuamente en base a una comprensión
cuantitativa. Se centra en la mejora continua.
Nivel Características
Se logran todas las metas específicas y genéricas. Los procesos
están bien caracterizados y comprendidos, y se describen en
estándares, procedimientos, herramientas y métodos
28
Cuantitativ.
En
optimización
MODELO CONTINUO
Esta representación permite a una
organización, a diferencia de la anterior,
seleccionar las áreas de proceso (o grupos
de áreas de proceso) y mejorar los
procesos relativos a ellas.
Utiliza los (niveles de capacidad) para
caracterizar la mejora relativa a un área de
proceso individual.
Una organización puede elegir mejorar el
rendimiento de un único proceso que
resuelve un problema existente, o puede
trabajar sobre varias áreas. 29
Clasificación de acuerdo con niveles de capacidad
Realizado
Gestionado
Definido
Gestionado
En
optimización
Todas las metas específicas del área del proceso han sido
satisfechas. Las tareas de trabajo requeridas han sido realizadas
Todos los criterios del nivel han sido satisfechos. Todas las tareas
de trabajo y productos estan monitoreados, controlados y revisados
y son evaluados.
Los procesos están estabilizados y existe una gestión
cuántitativa. El área de proceso se controla y mejora mediante
mediciones y evaluacion cuantitativa.
La mejora de procesos es una actividad consistente y establecida
en la organización. Se adapta y mejora mediante el uso de medios
cuantitativos (estadísticos)
Nivel Características
Procesos organizativos, tanto técnicos como de gestión, están
claramente definidos.
incompleto El área de proceso aún no se realiza o todavia no alcanza todas
las metas y objetivos definidos para el nivel 1 de capacidad 30
Cuantitativ.
Comparación de las representaciones
31
Discreto Continuo
Permite a las organizaciones tener un camino de mejora predefinido y probado
Da libertad explícita para seleccionar el orden de mejora que mejor satisface los objetivos de negocio de la organización y reduce las áreas de riesgo.
Se centra en un conjunto de procesos que proporcionan a una organización capacidades específicas que están caracterizadas por cada nivel de madurez
Permite una visibilidad incrementada de la capacidad lograda en cada área de proceso individual
Resume los resultados de la mejora del proceso de una forma simple, un simple número correspondiente al nivel de madurez
Permite mejorar diferentes procesos en diferentes velocidades.
La IMCM define cada área del proceso en
función de “metas especificas” (ME)y de
las “prácticas especificas” (PE)
requeridas para alcanzar dichas metas.
Las ME establecen las características que
deben existir para que las actividades
implicadas por un área de proceso sean
efectivas.
Las PE convierten una meta en un conjunto
de actividades relacionadas con el proceso.
http://www.sei.cmu.edu/cmmi/
32
El modelo discreto de la IMCM define las
mismas áreas, metas y prácticas del
proceso que el modelo continuo. La
principal diferencia es que el modelo
discreto establece cinco niveles de
madurez, en vez de seis niveles de
capacidad.
Para lograr un nivel de madurez se deben
conseguir metas y prácticas especificas
relacionadas con un conjunto de áreas del
proceso.
33
EVALUACION DEL PROCESO
La existencia de un proceso de software
no es garantía de que este será
entregado a tiempo, de que satisfará las
necesidades del cliente, o de que
mostrara las características técnicas que
conducirán a características de calidad a
largo plazo.
Los patrones de proceso deben ir
acompañados de una practica sólida de la
I.S. 34
Relacion entre proceso y métodos aplicado para evaluación
Evaluacion del
Proceso de SW
Mejoramiento del
Proceso de Sw
Determinacion
de la capacidad
Proceso del Sw
Identifica
modificaciones a
Identifica capacidades
y riesgos de
Conduce a Conduce a
motiva
Es examinado por
35
Un profesional del software creativo debe
sentir tanta satisfacción del proceso como
del producto terminado.
El trabajo que realiza la gente de software
cambiará en los años que siguen. La
dualidad del producto y el proceso es un
elemento importante para mantener a la
gente creativa comprometida mientras
finaliza la transición desde la programación
hasta la Ingeniería de Software.
Si el proceso es debil, el producto final sufrira las consecuencias
36