Ing. Luis Alfredo Fernndez Vizcarra lfernandez@speedy.com.pe lfernandez@coesi.com.pe Vistazo rpido: 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, disear, implementar y probar software.
Quin lo hace? Los ingenieros de software y sus jefes adaptan el proceso a sus necesidades y despus lo siguen. La gente que ha solicitado el software deben definir, construir y probar el proceso.
Por qu es importante? Ofrece estabilidad, control y organizacin a una actividad que puede volverse catica si no se controla. Un enfoque de ingeniera del software moderno debe ser gil. Cules son los pasos? El proceso que se adopte depende del software que se est construyendo. Cul es el producto obtenido? Programas, documentos y datos que se producen como consecuencia de las actividades y tareas definidas por el proceso.
Cmo 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 Ingeniera de Software es el establecimiento y uso de principios robustos de la ingeniera a fin de obtener econmicamente software que sea fiable y que funcione eficientemente sobre mquinas reales. (Fritz Bauer) Ingeniera del Software: Una Tecnologa Estratificada Mtodos Herramientas La ingeniera del software es una tecnologa estratificada Es la base que soporta la ingeniera del software Proporcionan el soporte automatizado o semi automatizado para el proceso y los mtodos. Proporcionan los cmo tcnicos para construir software (comunicacin, anlisis de requisitos, modelado del diseo, la construccin del programa, la realizacin de pruebas y el soporte) Es el elemento que mantiene juntos los estratos de la tecnologa 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 # 1 accin de la ingeniera de software #1.1 Conjunto de tareas Tareas del trabajo - productos del trabajo - puntos de aseguramiento de la calidad - fundamentos del proyecto accin de la ingeniera de software # 1.k Conjunto de tareas Tareas del trabajo - productos del trabajo - puntos de aseguramiento de la calidad - fundamentos del proyecto Actividad del marco de trabajo # n accin de la ingeniera de software #n.1 Conjunto de tareas Tareas del trabajo - productos del trabajo - puntos de aseguramiento de la calidad - fundamentos del proyecto accin de la ingeniera de software # n.m Conjunto de tareas Tareas del trabajo - productos del trabajo - puntos de aseguramiento de la calidad - fundamentos del proyecto Actividades del marco del trabajo COMUNICACIN Colaboracin y comunicacin con los clientes. Investigacin de requisitos y otras actividades relacionadas. PLANEACIN Tareas tcnicas, riesgos probables, los recursos que sern requeridos, los productos y un programa de trabajo. MODELADO Determinar un modelo o esquema compartido entre desarrollador y cliente, para tener una orientacin de lo que se va a crear. CONSTRUCCIN Generacin de cdigo + pruebas del software DESPLIEGUE Es la entrega al cliente para su prueba con el fin de obtener informacin que permita mejorar el producto. Actividades Sombrillas Ocurren a lo largo del proceso de software y se enfocan de modo principal en la gestin, el rastreo y el control del proyecto. Gestin del riesgo Seguimiento y control del proyecto de software Aseguramiento de la calidad del software Revisiones tcnicas formales Medicin Gestin de la configuracin del software Gestin de la reutilizacin Preparacin y produccin del producto de trabajo Integracin del modelo de capacidad de madurez (IMCM) Modelo para la mejora o evaluacin de los procesos de desarrollo y mantenimiento de sistemas y productos de software. Creado por el SEI en el 2000 y publicado en el 2002 con el 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 0 Incompleto NIVEL 1 Realizado NIVEL 2 Administrado NIVEL 3 Definido NIVEL 4 Administrado en forma cuantitativa NIVEL 5 Mejorado El rea del proceso an no se realiza o no alcanza todas las metas y objetivos. Las metas especficas han sido satisfechas. Todas las tareas de trabajo y productos estn monitoreados, controlados y revisados; y son evaluados de acuerdo a la descripcin del proceso. Criterios del nivel 2 cumplidos. El proceso est adaptado al conjunto de procesos estndar de la organizacin.
Criterios del nivel 3 cumplidos. El rea del proceso se controla y mejora mediante mediciones y evaluacin 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.
Integracin 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 Gestin bsica del proyecto Estandarizacin del proceso Ejecucin del proceso organizacional Mejora continua del proceso
Patrones del Proceso T I P O
D E
P A T R O N E S
Patrones de Tarea: Definen una accin de la ingeniera 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 patrn de proceso ofrece una plantilla: un mtodo consistente para describir una caracterstica importante del proceso de software. Se definen en cualquier grado de abstraccin (un proceso completo o una actividad del marco de trabajo importante o una tarea dentro de una actividad del marco de trabajo). Plantilla para describir un patrn de proceso Usos conocidos/Ejemplos: Se indican los ejemplos especficos en los cuales el patrn 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 patrn haya sido implementado con xito. Definen una accin de la ingeniera de software o una tarea de trabajo importante. Solucin: Se describe la implementacin del patrn Contexto inicial: Se describen las condiciones en las cuales se aplica el patrn. Tipo: De tarea, de escenario o de fase Propsito: Objetivo del patrn Nombre del patrn: Describe su funcin dentro del software Plantilla para describir un patrn de proceso EJEMPLO:
Nombre del patrn Propsito Tipo Contexto inicial Problema Solucin Contexto resultante Patrones relacionados Usos conocidos/ejemplos
En la evaluacin se pretende comprender el estado actual del proceso de software y se intenta mejorarlo. Evaluacin del Proceso Proceso del software Mejoramiento del proceso de software Evaluacin del proceso de software Determinacin de la capacidad Identifica modificaciones a Es examinado por Identifica capacidades y riesgos de Conduce a Conduce a Motiva Enfoques para la evaluacin del proceso de software Mtodo de evaluacin de la IMCM para el mejoramiento del proceso (MEIEMP): iniciacin, diagnstico, establecimiento, accin y aprendizaje. Apreciacin 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 prcticamente en cualquier compaa, 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 y analizar los tipos de errores que se cometen para desarrollar estrategias encaminadas a eliminarlos. REQUIERE ACTIVIDADES DEL MARCO DE TRABAJO Planificar el trabajo Esforzarse por cumplir la planificacin Esforzarse por obtener productos de la mejor calidad
a) Planeacin: Seleccionar requisitos, establecer el tamao del proyecto y estimar recursos. b) Diseo de alto nivel: elaborar las especificaciones externas para el diseo de cada componente. c) Revisin del diseo de alto nivel: los mtodos formales de verificacin se aplican a errores descubiertos en el diseo. d) Desarrollo: el diseo al nivel del componente se refina y revisa. e) Anlisis 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 un equipo de proyecto autodirigido que se organice para producir un software de alta calidad. A c t i v i d a d e s
Lanzamiento: con una secuencia de tareas como base slida para iniciar el proyecto. Diseo de alto nivel Implementacin Integracin y prueba Anlisis de resultados Tecnologa del Proceso HERRAMIENTAS DE TECNOLOGA DEL PROCESO:
Permiten que una organizacin de software construya un modelo automatizado del marco de trabajo comn del proceso, tareas y actividades sombrilla.
Puede aprovecharse para coordinar el uso de las herramientas de ingeniera de software asistida por computadora Herramientas de tecnologa de proceso Ayudan Analizar procesos actuales Organizar sus tareas Administrar su calidad tcnica Controlar y monitorear su progreso Producto y Proceso Si el proceso es dbil, sin duda el producto final sufrir las consecuencias. Una confianza excesiva en el proceso es peligrosa. Las personas obtienen tanta satisfaccin del proceso creativo que del producto final. Un profesional creativo del software debera tambin obtener tanta satisfaccin de la programacin 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 transicin de la programacin a la ingeniera del software. Bruegge, B., Dutoit, A.H., Ingeniera 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., Ingeniera del Software. Un enfoque prctico, cap. 1 y 2
Sommerville, I., Ingeniera de Software, cap. 1, 2 y 3