Sesión 2: Visión General. El proceso del software

18
Sesión II: Visión General El proceso del software Ing. Luis Alfredo Fernández Vizcarra [email protected] [email protected]

Transcript of Sesión 2: Visión General. El proceso del software

Sesión II: Visión GeneralEl proceso del software

Ing. Luis Alfredo Fernández Vizcarra

[email protected]

[email protected]

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, c

ontrolados 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