Upload
luis-fernandez-vizcarra
View
744
Download
0
Embed Size (px)
DESCRIPTION
Una serie de pasos predecibles que ayude a crear un resultado de alta calidad y a tiempo. Es un conjunto estructurado de actividades para: Especificar, diseñar, implementar y probar software.
Citation preview
Sesión II: Visión GeneralEl proceso del software
Ing. Luis Alfredo Fernández Vizcarra
Vistazo rápido: Software
¿Qué es?• Una serie de pasos predecibles que ayude
a crear un resultado de alta calidad y a tiempo.
• Es un conjunto estructurado de actividades para: Especificar, diseñar, implementar y probar software.
¿Quién lo hace?• Los ingenieros de software y sus jefes
adaptan el proceso a sus necesidades y después lo siguen.
• La gente que ha solicitado el software deben definir, construir y probar el proceso.
¿Por qué es importante?• Ofrece estabilidad, control y organización
a una actividad que puede volverse caótica si no se controla.
• Un enfoque de ingeniería del software moderno debe ser “ágil”.
¿Cuáles son los pasos?• El proceso que se adopte depende del
software que se está construyendo.
¿Cuál es el producto obtenido?
• Programas, documentos y datos que se producen como consecuencia de las actividades y tareas definidas por el proceso.
¿Cómo puedo estar seguro de que lo he hecho correctamente?
• La calidad, el tiempo requerido, la viabilidad a largo plazo del producto que se construye son los mejores indicadores de la eficacia del proceso que se utiliza.
Un enfoque de calidad
Proceso
La Ingeniería de Software es el establecimiento y uso de principios robustosde la ingeniería a fin de obtener económicamente software que sea fiable yque funcione eficientemente sobre máquinas reales. (Fritz Bauer)
Ingeniería del Software: Una Tecnología Estratificada
Métodos
Herramientas
La ingeniería del software es una tecnología estratificada
Es la base que soporta la ingeniería del software
Proporcionan el soporte automatizado o semi automatizado
para el proceso y los métodos.
Proporcionan los “cómo” técnicos para construir software (comunicación, análisis de
requisitos, modelado del diseño, la construcción del programa, la realización de
pruebas y el soporte)
Es el elemento que mantiene juntos los estratos de la tecnología y que permite el
desarrollo racional y a tiempo del software de computadora.
Marco de Trabajo para el Proceso
MARCO DE TRABAJO DEL PROCESO
Actividades sombrilla
Actividad del marco de trabajo # 1acción de la ingeniería de software #1.1
Conjunto
de tareas
Tareas del trabajo - productos del trabajo - puntos de aseguramientode la calidad - fundamentos del proyecto
acción de la ingeniería de software # 1.k
Conjunto
de tareas
Tareas del trabajo - productos del trabajo - puntos de aseguramientode la calidad - fundamentos del proyecto
Actividad del marco de trabajo # nacción de la ingeniería de software #n.1
Conjunto
de tareas
Tareas del trabajo - productos del trabajo - puntos de aseguramientode la calidad - fundamentos del proyecto
acción de la ingeniería de software # n.m
Conjunto
de tareas
Tareas del trabajo - productos del trabajo - puntos de aseguramientode la calidad - fundamentos del proyecto
Actividades del marco del trabajo
COMUNICACIÓNColaboración y comunicacióncon los clientes. Investigación derequisitos y otras actividadesrelacionadas.
PLANEACIÓNTareas técnicas, riesgosprobables, los recursos queserán requeridos, los productosy un programa de trabajo.
MODELADODeterminar un modelo oesquema compartido entredesarrollador y cliente, paratener una orientación de lo quese va a crear.
CONSTRUCCIÓNGeneración de código + pruebasdel software
DESPLIEGUEEs la entrega al cliente para suprueba con el fin de obtenerinformación que permitamejorar el producto.
Actividades Sombrillas
Ocurren a lo largo del proceso de software y se
enfocan de modo principal en la gestión, el
rastreo y el control del proyecto.
Gestión del riesgo
Seguimiento y control del
proyecto de software
Aseguramiento de la calidad del
software
Revisiones técnicas formales Medición
Gestión de la configuración del software
Gestión de la reutilización
Preparación y producción del
producto de trabajo
Integración del modelo de capacidad de madurez (IMCM)
Modelo para la mejora o evaluación de los procesos de desarrollo y mantenimiento desistemas y productos de software. Creado por el SEI en el 2000 y publicado en el 2002 conel objetivo de realizar mejoras respecto al CMM.La IMCM representa un modelo completo de proceso en dos formas diferentes:
Como modelo continuo: 05 niveles de capacidad
NIVEL 0Incompleto
NIVEL 1Realizado
NIVEL 2Administrado
NIVEL 3Definido
NIVEL 4Administrado en
forma cuantitativa
NIVEL 5Mejorado
El área del proceso aún no se realiza o no alcanza
todas las metas y
objetivos.
Las metas específicas
han sido satisfechas.
Todas las tareas de trabajo y
productos están monitoreados,
controlados y revisados; y son
evaluados de acuerdo a la
descripción del proceso.
Criterios del nivel 2
cumplidos. El proceso está adaptado al conjunto de
procesos estándar de la organización.
Criterios del nivel 3 cumplidos. El
área del proceso se controla y
mejora mediante mediciones y
evaluación cuantitativa.
Criterios del nivel 4
satisfechos. El área del
proceso se adapta y
mejora mediante el
uso de medios cuantitativos para conocer
las necesidades
cambiantes del cliente.
Integración del modelo de capacidad de madurez (IMCM)
Como modelo discreto: 05 niveles de madurez
Ejecutado
Gestionado
Definido
Gestionado de manera cuantitativa
Optimizado
5
4
3
2
1
Gestión básica del proyecto
Estandarización del proceso
Ejecución del procesoorganizacional
Mejora continua del proceso
Patrones del Proceso
TIP
O D
E PA
TRO
NES
Patrones de Tarea: Definen una acción de la ingeniería de software o una tarea de trabajo importante.
Patrones de Escenario: Definen una actividad del marco de trabajo para el proceso.
Patrones de fase: Definen la secuencia de actividades del marco de trabajo que ocurre junto con el proceso.
Un patrón de proceso ofrece una plantilla: un método consistente para describiruna característica importante del proceso de software. Se definen en cualquiergrado de abstracción (un proceso completo o una actividad del marco de trabajoimportante o una tarea dentro de una actividad del marco de trabajo).
Plantilla para describir un patrón de proceso
Usos conocidos/Ejemplos: Se indican los ejemplos específicos en los cuales el patrón es aplicable.
Patrones relacionados: lista de todos los patrones de proceso directamente relacionados con éste.
Contexto resultante: Se describen las condiciones que habrá una vez que el patrón haya sido implementado con éxito. Definen una acción de la ingeniería
de software o una tarea de trabajo importante.
Solución: Se describe la implementación del patrón
Contexto inicial: Se describen las condiciones en las cuales se aplica el patrón.
Tipo: De tarea, de escenario o de fase
Propósito: Objetivo del patrón
Nombre del patrón: Describe su función dentro del software
Plantilla para describir un patrón de proceso
EJEMPLO:
Nombre del patrón
Propósito
Tipo
Contexto inicial
Problema
Solución
Contexto resultante
Patrones relacionados
Usos conocidos/ejemplos
En la evaluación se pretende comprender el estado actual del proceso desoftware y se intenta mejorarlo.
Evaluación del Proceso
Proceso del software
Mejoramiento del proceso de
software
Evaluación del proceso de software
Determinación de la capacidad
Identifica modificaciones a
Es examinado por
Identifica capacidades y riesgos de
Conduce a Conduce a
Motiva
Enfoques para la evaluación del proceso de software
Método de evaluación de la
IMCM para el mejoramiento del
proceso (MEIEMP): iniciación,
diagnóstico, establecimiento,
acción y aprendizaje.
Apreciación basada en el CMM para el
mejoramiento del proceso
interno (ABC MPI).
SPICE (ISO/IEC 15504)
ISO 9001:2000 para software:
Serie de normas internacionales establecidas para sistemas de calidad, las mismas pueden aplicarse prácticamente en cualquier compañía, y cuyo objetivo final es satisfacer al consumidor.
CICLOS: Planear – hacer – revisar - actuar
Modelos de Proceso Personales y en Equipo
1. PROCESO DE SOFTWARE PERSONAL (PSP): Destaca la necesidad de registrar yanalizar los tipos de errores que se cometen para desarrollar estrategiasencaminadas a eliminarlos.
REQUIERE ACTIVIDADES DEL MARCO DE TRABAJO
Planificar el trabajo Esforzarse por cumplir la
planificación Esforzarse por obtener productos
de la mejor calidad
a) Planeación: Seleccionar requisitos, establecer el tamaño del proyecto y estimar recursos.
b) Diseño de alto nivel: elaborar las especificaciones externas para el diseño de cada componente.
c) Revisión del diseño de alto nivel: los métodos formales de verificación se aplican a errores descubiertos en el diseño.
d) Desarrollo: el diseño al nivel del componente se refina y revisa.
e) Análisis de resultados: Se determina la efectividad del proceso mediante las mediciones y medidas recolectadas.
Modelos de Proceso Personales y en Equipo
2. PROCESO DE SOFTWARE EN EQUIPO: La meta del PSE es construir unequipo de proyecto “autodirigido” que se organice para producir unsoftware de alta calidad.
Act
ivid
ades
Lanzamiento: con una secuencia de tareas como base sólida para iniciar el proyecto.
Diseño de alto nivel
Implementación
Integración y prueba
Análisis de resultados
Tecnología del ProcesoHERRAMIENTAS DE TECNOLOGÍA DEL PROCESO:
Permiten que una organización de software construya un modeloautomatizado del marco de trabajo común del proceso, tareas y actividadessombrilla.
Puede aprovecharse para coordinar el uso de las herramientas de ingeniería desoftware asistida por computadora
Herramientas de tecnología de proceso
Ayudan
Analizar procesos actuales
Organizar sus tareas
Administrar su calidad técnica
Controlar y monitorear su
progreso
Producto y Proceso
Si el proceso es débil, sin duda el producto final sufrirá las consecuencias.
Una confianza excesiva en el proceso es peligrosa.
Las personas obtienen tanta satisfacción del proceso creativo que del
producto final.
Un profesional creativo del software debería también obtener tanta
satisfacción de la programación como del producto final.
La dualidad del producto y proceso es un elemento importante para
mantener ocupada a la gente creativa hasta que se finalice la transición de
la programación a la ingeniería del software.
Bruegge, B., Dutoit, A.H., Ingeniería del Software Orientado a Objetos, cap. 1
Jacobson, I., Booch, G., Rumbaugh, J., El Proceso Unificado de Desarrollo de Software, cap. 1
Pressman, R.S., Ingeniería del Software. Un enfoque práctico, cap. 1 y 2
Sommerville, I., Ingeniería de Software, cap. 1, 2 y 3
Referencias