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

Sesión 2: El proceso del software

Embed Size (px)

DESCRIPTION

Una serie de pasos predecibles que ayude a crear un resultado de alta calidad y a tiempo

Citation preview

Page 1: Sesión 2: El proceso del software

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

Ing. Luis Alfredo Fernández [email protected]@coesi.com.pe

Page 2: Sesión 2: El proceso del software

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.

Page 3: Sesión 2: El proceso del software

Un enfoque de calidad

Proceso

La Ingeniería de Software es el establecimiento y uso de principios robustos de la ingeniería a fin de obtener económicamente software que sea fiable y que 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.

Page 4: Sesión 2: El proceso del software

Marco de Trabajo para el ProcesoMARCO DE TRABAJO DEL PROCESO

Actividades sombrillaActividad 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 aseguramiento de 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 aseguramiento de 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 aseguramiento de 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 aseguramiento de la calidad - fundamentos del proyecto

Page 5: Sesión 2: El proceso del software

Actividades del marco del trabajo

COMUNICACIÓNColaboración y comunicación con los clientes. Investigación de requisitos y otras actividades relacionadas.

PLANEACIÓNTareas técnicas, riesgos probables, los recursos que serán requeridos, los productos y un programa de trabajo.

MODELADODeterminar un modelo o esquema compartido entre desarrollador y cliente, para tener una orientación de lo que se va a crear.

CONSTRUCCIÓNGeneración de código + pruebas del software

DESPLIEGUEEs la entrega al cliente para su prueba con el fin de obtener información que permita mejorar el producto.

Page 6: Sesión 2: El proceso del software

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

Page 7: Sesión 2: El proceso del software

Integración del modelo de capacidad de madurez (IMCM)

Modelo para la mejora o evaluación 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 0Incompleto

NIVEL 1Realizado

NIVEL 2 Administrado

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.

Page 8: Sesión 2: El proceso del software

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 proceso organizacional

Mejora continua del proceso

Page 9: Sesión 2: El proceso del software

Patrones del Proceso

TIPO

DE

PATR

ON

ES

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 describir una característica importante del proceso de software. Se definen en cualquier grado de abstracción (un proceso completo o una actividad del marco de trabajo importante o una tarea dentro de una actividad del marco de trabajo).

Page 10: Sesión 2: El proceso del software

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

Page 11: Sesión 2: El proceso 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

Page 12: Sesión 2: El proceso del software

En la evaluación se pretende comprender el estado actual del proceso de software 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

Page 13: Sesión 2: El proceso del software

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

Page 14: Sesión 2: El proceso del software

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

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.

Page 15: Sesión 2: El proceso del software

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.

Activ

idad

esLanzamiento: 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

Page 16: Sesión 2: El proceso del software

Tecnología del ProcesoHERRAMIENTAS DE TECNOLOGÍA DEL PROCESO:

Permiten que una organización de software construya un modelo automatizado del marco de trabajo común del proceso, tareas y actividades sombrilla.

Puede aprovecharse para coordinar el uso de las herramientas de ingeniería de software 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

Page 17: Sesión 2: El proceso del software

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.

Page 18: Sesión 2: El proceso 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