Вы находитесь на странице: 1из 73

El Proceso una visión General

• Introducción
• Marco de trabajo para el proceso
• Integración del Modelo de Capacidad de
Madurez (IMCM)
• Patrones del proceso
• Evaluación del proceso
• Modelo de proceso personales y en equipo
• Tecnología del proceso
• Producto y proceso
Introducción
 Proceso de Software:
◦ Es un marco de trabajo para las tareas que
se requieren en la construcción de
software de alta calidad
Ingeniería de software: una
tecnología estratificada
 “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.”
IEEE
Ingeniería de software: una
tecnología estratificada
Ingeniería de software: una
tecnología estratificada
 La Ingeniería de software bebe estar
sustentado en un compromiso de
calidad.
◦ Un enfoque de la calidad: Gestión de la
Calidad Total, Sigma Seis, etc. fomentan una
cultura de la mejora continua del proceso

Herramientas
Métodos
Proceso
Un enfoque de calidad
Ingeniería de software: una
tecnología estratificada
 Proceso: Es la base de la Ing. de sw,
mantiene juntos los estratos de la
tecnología y permite el desarrollo racional
y a tiempo del software.
◦ Forma la base para la gestión de los
proyectos y establece el contexto para la
aplicación de métodos técnicos.
◦ Se generan los productos del trabajo:
modelos, documentos, datos, reportes, etc.
Ingeniería de software: una
tecnología estratificada
 Métodos: Proporcionan los “cómo”
técnicos para construir software
◦ Abarcan las tareas de comunicación,
análisis de requisitos, el modelado del
diseño, la construcción del programa, etc.

 Herramientas: Proporcionan soporte


automatizado o semiautomatizado para
el proceso y los métodos. CASE.
Modelo general de proceso
 Establece la base para un proceso de
software completo.
 Identifica un número de actividades
aplicables a todos los proyectos de
software.
 Sin importar su tamaño o complejidad
 Abarca un conjunto de actividades
sombrilla aplicables a lo largo del
proceso del software.
Proceso del software
Estructura del proceso
Actividades som brilla
Actividad del marco de trabajo # 1
acción de la ingeniería de software #1.1
Tareas del trabajo
Conjunto de Productos del trabajo -Seguimiento y control del
Puntos de aseguramiento
tareas de la calidad
... Fundamentos del proyecto
proyecto
acción de la ingeniería de software #1.k -Gestión de riesgo
Tareas del trabajo
Conjunto de Productos del trabajo
-Aseguramiento de la calidad
Puntos de aseguramiento del software
tareas de la calidad
... Fundamentos del proyecto -Revisiones técnicas formales
-Medición
Actividad del marco de trabajo # n
acción de la ingeniería de software #n.1
-Gestión de la configuración
Tareas del trabajo -Gestión de la reutilización
Conjunto de Productos del trabajo
tareas
Puntos de aseguramiento -Preparación y producción del
de la calidad
... Fundamentos del proyecto producto de trabajo
acción de la ingeniería de software #n.k
Tareas del trabajo
Conjunto de Productos del trabajo
Puntos de aseguramiento
tareas de la calidad
... Fundamentos del proyecto
Modelo general de proceso
 Una estructura general para la ingeniería de
software define cinco actividades
estructurales:
◦ Comunicación: Intensa colaboración con los
clientes. Investigación de requisitos, etc.
◦ Planeación: Plan de trabajo de la ingeniería de sw.
◦ Modelado: Creación del modelo para entender
mejor requisitos y diseño
◦ Construcción: Programación y pruebas
◦ Despliegue: El software se entrega al cliente
Flujo de proceso
Flujo de proceso
Flujo de proceso
Definición de actividad estructural
 ¿Qué acciones son apropiadas para una
actividad estructural?
 Actividad: Comunicación
◦ Acción 1: Concepción.
 Tareas:
◦ Acción 2: Indagación.
 Tareas:
◦ Acción 3: Elaboración.
 Tareas:
◦ Acción 4: Negociación.
 Tareas:
◦ Acción 5: Especificación.
 Tareas:
◦ Acción 6: Validación.
 Tareas:
Definición de actividad estructural
 Actividad: Modelado
◦ Acción 1: Análisis.
 Tareas : investigación, elaboración,
negociación, especificación y validación de
requisitos que conducen a la creación del
modelo de análisis.
◦ Acción 2: Diseño.
 Tareas : diseño de datos, diseño
arquitectónico, diseño de interfaz y diseño al
nivel de componentes que conducen a la
creación del modelo de diseño.
Actividades Sombrilla
 Seguimiento y control del proyecto de sw: Evalúa el
progreso del proyecto
 Gestión del riesgo: Evalúa los riesgos del proyecto.
 Aseguramiento de la calidad del sw: Define y conduce
las actividades hacia la calidad
 Revisiones técnicas formales: Descubre y elimina
errores.
 Medición: Del proceso, proyecto y producto
 Gestión de la configuración del sw: Maneja los efectos
del cambio a través del proceso del sw.
 Gestión de la reutilización: A través de componentes.
 Preparación y producción del producto de trabajo:
Abarca modelos, documentos, etc.
Patrones
 Cuando los expertos trabajan con un
problema en particular, es inusual que
conciban una nueva solución
completamente distinta de las existentes. A
menudo, recurren a problemas similares
que ya han resuelto, y reusan la esencia de
su solución para resolver el nuevo
problema
[Buschmann96]
Patrones de proceso
 El patrón de software puede definirse
como una colección de patrones que
definen un conjunto de actividades,
acciones, tareas de trabajo o
comportamientos relacionados que
requiere el desarrollo de un software.
Patrones de proceso
 Un patrón de proceso ofrece una plantilla:
◦ un método consistente para describir una
característica importante del proceso de software
 Los patrones se pueden combinar para
construir un proceso que satisfaga lo mejor
posible las necesidades de un proyecto
Proceso
Patron + Patron + Patron
 Ofrecen un mecanismo efectivo para
describir cualquier proceso de sw
Patrones de proceso
 Pueden definirse en cualquier grado de
abstracción:
◦ Describir un proceso completo: Prototipo
◦ Describir una actividad importante: Planeación
◦ Describir una tarea dentro de una actividad del
marco de trabajo: La estimación de un proyecto
Patrones de proceso
 Plantilla para describir un patrón de proceso (Ambler):
◦ Nombre del patrón : Ej. Comunicación con el cliente
◦ Propósito: Ej. “Establecer una relación de
colaboración con el cliente para definir el alcance
del proyecto…”
◦ Tipo:
 De etapa: define una actividad del marco de trabajo
para el proceso. Ej. Recabar requerimientos.
 De tarea: define una acción de la ingeniería del
software o una tarea de trabajo. Ej. Recopilación de
requisitos
 De fase: define la secuencia de actividades que ocurren
dentro del proceso: Ej. modelo en espiral o de
construcción de prototipos
Patrones de proceso
◦ Contexto inicial: condiciones en las cuales se aplica
el patrón
◦ Problema: Lo que se debe resolver
◦ Solución: se describe la implementación del patrón.
◦ Contexto resultante: condiciones que habrá una vez
que el patrón haya sido implementado con éxito
◦ Patrones relacionados: comunicación con reunión del
equipo para el proyecto, definición de una línea de
colaboración, etc.
◦ Usos conocidos / ejemplos
Patrones de proceso
 Los patrones permiten una
organización de la ingeniería
del sw para desarrollar una Patrón de Fase
descripción del proceso
jerárquico que comience en un
alto grado de abstracción
(patrón de fase) Patrones de
 La descripción se refina hasta actividades
un conjunto de patrones que
describen actividades del marco
de trabajo Patrones de
 Más tarde se refina de un modo tareas
jerárquico en patrones de tareas
más detallados para cada
patrón
Ejemplo de Patrón de proceso
 Nombre del patrón: Prototipo
 Propósito: El objetivo del patrón es construir un
modelo (prototipo) que los clientes evalúen de
modo iterativo en un esfuerzo encaminado a
identificar los requisitos del software.
 Tipo: Patrón de fase
 Contexto inicial: Deben cumplirse las siguientes
condiciones antes de iniciar este patrón:
1. Los clientes han sido identificados;
2. Se ha establecido un modo de comunicación entre los
clientes y el equipo de trabajo;
3. Los clientes han identificado el problema que ha de
resolverse;
4. Se ha desarrollado un entendimiento inicial del alcance
del proyecto, los requisitos básicos del negocio y las
restricciones del proyecto.
Ejemplo de Patrón de proceso
 Problema: Los requisitos son vagos o no existen.
No obstante, se reconoce con claridad la existencia
de un problema, y éste debe ir acompañado de una
solución de software. Los clientes no están seguros
de lo que desean; es decir, no pueden describir
ningún detalle de los requisitos del software.
 Solución: Descripción del proceso de prototipo.
 Contexto resultante: Los clientes aprueban un
prototipo de software que identifica requisitos
básicos. Después
1. el prototipo puede evolucionar recorriendo una
serie de incrementos para convertirse en el software
de producción, o
2. el prototipo se descarta y el software de producción
se construye con otros patrones de proceso.
Ejemplo de Patrón de proceso
 Patrones relacionados: Los siguientes patrones
están relacionados con este patrón: comunicación
con el cliente; diseño iterativo; desarrollo iterativo;
evaluación del cliente; extracción de requisitos.
 Usos conocidos/ejemplos: El prototipo se
recomienda cuando los requisitos son inseguros.
Evaluación de proceso
 El proceso mismo debe
evaluarse para asegurarse
de que cumpla una serie de
criterios básicos del
proceso que han
demostrado ser esenciales
para una ingeniería de sw
exitosa.
Evaluación de proceso
Proceso del
software
Es examinado por
Identifica Identifica
modificaciones a capacidades y riesgos
Evaluación del
proceso del sw

Conduce a Conduce a
Mejoramiento del Determinación
proceso del sw Motiva
de la capacidad
Evaluación de proceso
 Se han propuesto varios enfoques para la
evaluación del proceso de sw en las décadas
pasadas:
◦ El método de evaluación de la IMCM para el
mejoramiento del proceso (MEIEMP)
◦ La apreciación basada en el CMM para el
mejoramiento del proceso interno (ABC MPI): Un
precursor de CMMI
◦ SPICE (ISO/IEC15504): evaluación de la eficacia de
cualquier proceso
◦ ISO 9001:2000 para software: ciclo de planear-
hacer-revisar-actuar
Integración del modelo de capacidad
de madurez (IMCM)
 El Instituto de Ing. de Soft. (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.
 El SEI sostiene que para lograr estas
capacidades una organización debe crear
un modelo de proceso (como el anterior)
que se ajuste a las directrices establecidas
por IMCM.
Integración del modelo de capacidad
de madurez (IMCM)
 El IMCM representa un modelo
completo de proceso en dos formas
diferentes
◦ Modelo continuo.
◦ Modelo discreto.
Modelo continuo
 Clasificación:
◦ Nivel 0: Incompleto. No se alcanzaron las metas.
◦ Nivel 1: Realizado. Las metas se alcanzaron.
◦ Nivel 2: Administrado. Todas las tareas de trabajo y
productos están monitoreados, controlados y
revisados; y son evaluados.
◦ Nivel 3: Definido. El proceso esta adaptado al
conjunto de procesos estándar de la organización
◦ Nivel 4: Administrado en forma cuantitativa. El área
del proceso se controla y mejora mediante
mediciones y evaluación cuantitativa.
◦ Nivel 5: Mejorado. Se adapta y mejora
continuamente.
Modelo continuo
Modelo discreto
 Define las mismas áreas, metas y
practicas del proceso que el modelo
continuo.
 La principal diferencia es que el
modelo discreto establece cinco
niveles de madurez, en vez de cinco
niveles de capacidad
Modelo discreto
Nivel Enfoque Áreas del proceso
De optimización Mejora continua del Innovación organizacional,
proceso Análisis causal,...

Administrado de Gestión cuantitativa Gestión cuantitativa del


modo cuantitativo proyecto,...

Definido Estandarización del Desarrollo de requisitos,


proceso Solución técnica, verificación,...

Administrado Gestión básica del Gestión de requisitos,


proceso Planeación, monitoreo,...

Realizado
 Los modelos prescriptivos de proceso
se propusieron originalmente para
ordenar el caos del desarrollo de
software
 Ellos han proporcionado
◦ Estructuras útiles
◦ Un camino razonablemente efectivo
 En el enfoque prescriptivo, el orden y
la consistencia del proyecto son los
aspectos dominantes.
 Cualquier organización de ing. de soft.
debe describir un conjunto único de
actividades dentro del marco de trabajo.
 También debe llenar cada actividad con un
conjunto de acciones, y definir cada acción
a un conjunto de tareas.
 Después la organización debe adaptar el
modelo de proceso y ajustarlo a la
naturaleza especifica de cada proyecto a las
personas y ambiente
 Sin importar el modelo del proceso
seleccionado, los ingenieros de sw han
elegido de manera tradicional un marco de
trabajo genérico para el proceso, el cual
incluye las siguientes actividades dentro del
marco:
◦ comunicación
◦ planeación
◦ modelado
◦ construcción
◦ despliegue
 Los modelos son “prescriptivos” porque
prescriben un conjunto de elementos del
proceso:
◦ Actividades del marco de trabajo, acciones de
ingeniería del sw, tareas, productos del trabajo,
aseguramiento de la calidad, etc.
 Cada modelo de proceso prescribe también
un flujo de trabajo, que es la forma en la
cual los elementos del proceso se
interrelacionan entre sí, el cual puede ser
lineal, incremental o evolutivo.
 El modelo en cascada (ciclo de vida clásico)
sugiere un enfoque sistemático, secuencial
hacia el desarrollo del sw.
 El trabajo fluye desde la comunicación a
través del despliegue de una manera casi
lineal.
Comunicación
Inicio del proy, Planeación
recopilación de
Estimación,
requisitos
Itinerario,
Modelado
seguimiento
Análisis, Construcción
diseño Código, Despliegue
prueba Entrega,
Soporte,
retroalimentación
El Modelo en Cascada (V)
 Problemas:
◦ Es muy raro que los proyectos reales sigan el flujo
secuencial.
◦ Con frecuencia es difícil para el cliente establecer
todos los requisitos de manera explicita.
 En la actualidad, el trabajo de sw está
acelerado y sujeto a una cadena infinita de
cambios. Sin embargo, puede servir como
un modelo de proceso útil en situaciones
donde los requerimientos están fijos.
 Hay una necesidad de proporcionar de
manera rápida un conjunto limitado de
funcionalidad para el usuario y después
refinarla y expandirla en las entregas
posteriores del software
Modelos de Proceso Incrementales
 El Modelo Incremental
◦ Entrega una serie de lanzamientos, llamados
incrementos, que proporcionan en forma
progresiva más funcionalidad para los clientes a
medida que se entrega cada uno de los
incrementos
◦ El primer incremento es un producto esencial, sólo
con los requisitos básicos
◦ Los primeros incrementos son versiones
“incompletas” del producto final, pero
proporcionan al usuario la funcionalidad que
necesita y una plataforma para evaluarlo
Modelos de Proceso Incrementales
 El software, como todos los sistemas
complejos, evolucionan con el tiempo. Los
requisitos de negocios y productos a
menudo cambian conforme se realiza el
desarrollo.

 Los caracteriza la forma en que permiten


que los ingenieros de sw desarrollen
versiones cada vez más completas del sw
 Construcción de Prototipos
◦ Cuando un cliente tenga una necesidad,
pero no sepa definir los detalles, como
primer paso desarróllese un prototipo
◦ Ayuda al ingeniero de sistemas y al cliente
a entender de mejor manera cuál será el
resultado de la construcción cuando los
requisitos estén satisfechos
 Construcción de Prototipos (Cont.)
◦ Problemas:
 El cliente ve lo que parece una versión
en funcionamiento del sw, sin saber que
el prototipo se va a desechar
 Además por la prisa de hacerlo
funcionar no se ha considerado la
calidad del sw
 El cliente no entiende por qué el
sistema se debe construir otra vez
para incrementar la calidad!
 Construcción de Prototipos (Cont.)
◦ Clave de éxito:
 Definir las reglas del juego desde el
principio
 El cliente y el desarrollador se deben poner
de acuerdo en que el prototipo se
construya y sirva como un mecanismo para
la definición de requisitos, en que se
descarte, al menos en parte, y en que
después se desarrolle el sw real con un
enfoque hacia la calidad
 El Proceso en Espiral
◦ Conjuga la naturaleza iterativa de la
construcción de prototipos con los
aspectos controlados y sistemáticos del
modelo en cascada
◦ El sw se desarrolla en una serie de
entregas evolutivas
◦ Es un enfoque realista para el desarrollo
de sw y de sistemas a gran escala
El Proceso en Espiral
 El Modelo de Desarrollo Concurrente
◦ Se representa en forma esquemática como
una serie de actividades del marco de
trabajo, acciones y tareas y sus estados
(forma de comportamiento observable
desde el exterior) asociados.
◦ Por ejemplo la actividad de modelado en
algunos de los estados: ninguno, bajo
desarrollo, en espera de cambios, en
modificación, etc…
 Desarrollo Basado en Componentes
◦ Los componentes comerciales de software
general (COTS, por sus siglas en inglés),
desarrollados por vendedores que los
ofrecen como productos, brindan una
funcionalidad que se persigue con
interfaces bien definidas que permiten
que el componente se integre en el
software que se va a construir.
Modelos especializados de Proceso
 Desarrollo Basado en Componentes
(Cont.)
◦ Conduce a la reutilización del software
◦ Conduce a una reducción de 70% del
ciclo de desarrollo
◦ 84% del costo del proyecto
Modelos especializados de Proceso
 El modelo de métodos formales
◦ Comprende un conjunto de actividades
que conducen a la especificación
matemática del software.
◦ Permite que se especifique, desarrolle y
verifique un sistema basado en
computadora al aplicar la notación
matematica.
Modelos especializados de Proceso
 Desarrollo del Software Orientado a
Aspectos
◦ Es un paradigma de la ingeniería del sw
relativamente nuevo que proporciona un
proceso y enfoque metodológico para
definir, especificar, diseñar y construir
aspectos
◦ El DSOA define “aspectos” que expresan
los intereses del cliente (seguridad,
gestión de memoria, etc…), los cuales
afectan muchas funciones, características
e información del sistema.
 Jacobson, Booch y Rumbaugh exponen la
necesidad de un proceso de sw
◦ Guiado por casos de uso
◦ Centrado en la arquitectura
◦ Iterativo
◦ Incremental
 El PU es un intento encaminado a reunir los
mejores rasgos y características de modelos
de procesos de sw, pero los caracteriza de
manera que implementa muchos de los
mejores principios del desarrollo ágil de sw
 Fases del Proceso Unificado
◦ Inicio
 Abarca la comunicación con el cliente y las
actividades de planeación
 Se identifican los requisitos del sistema con la
ayuda de casos de uso
◦ Elaboración
 Refina y expande los casos de uso preliminares que
se desarrollaron como una parte de la fase de inicio
 Incluye la elaboración del modelo de caso de uso, el
modelo de análisis, el modelo de diseño, el modelo
de implementación y el modelo de despliegue
 Fases del Proceso Unificado (Cont.)
◦ Construcción
 Se desarrollan o adquieren los componentes del sw
que harán que cada caso de uso sea operativo
 Se ejecutan pruebas de unidad para cada
componente
 Actividades de integración
◦ Transición
 El sw se entrega a los usuarios finales para realizar
pruebas beta, y la retroalimentación del usuario
reporta tanto defectos como cambios necesarios
 Se crean manuales de usuario, procedimientos de
instalación, etc.
 Productos de Trabajo del Proceso Unificado

Fase de inicio
Fase de elaboración
Documento de la visión Fase de
Modelo inicial de C.U.
Glosario inicial del proy.
Modelo de C.U. construcción
Caso inicial de negocio
Requisitos suplementarios Fase de transición
Modelo de análisis
Evaluación inicial del riesgo Descripción de la arquitect. Modelo de diseño
Plan de proy, fases e iter. Prototipo arquitectonico Componentes de sw Incremento de sw
Modelo del negocio Modelo de diseño Incremento integrado integrado
Uno o mas prototipos Lista revisada de riesgos Plan y procedimiento Reportes de las pruebas
Plan de proyectos Casos de prueba beta
Documentación Retroalimentación general
del usuario
Modelo de proceso personales y
en equipo
 Proceso de Software Personal (PSP) y
Proceso de Software en Equipo (PSE)
◦ Ambos requieren de un arduo trabajo,
capacitación y coordinación
Proceso de software personal (PSP)
 El proceso personal del software (PPS) pone
el énfasis en la medición personal tanto del
producto del trabajo que se genera como
de su calidad.
 Además, el PPS responsabiliza al
profesional acerca de la planeación del
proyecto y delega en el practicante el poder
de controlar la calidad de todos los
productos del trabajo de software que se
desarrollen.
Proceso de software personal (PSP)
 El PSP define 5 actividades:
◦ Planeación: Requisitos, tamaño y estimación de los
recursos, programa del proyecto
◦ Diseño de alto nivel: Diseño del componente,
Prototipos
◦ Revisión del diseño de alto nivel: Métodos formales
de verificación se aplican a errores descubiertos.
◦ Desarrollo: El diseño al nivel de componentes se
refina y revisa, compila y prueba el código
◦ Análisis de Resultados: Mediante las mediciones se
determina la efectividad del proceso
Proceso del equipo de software (PES)
 El objetivo de éste es construir un equipo
“autodirigido” para el proyecto, que se
organice para producir software de alta
calidad.
 Objetivos detallados:
◦ Formar equipos autodirigidos que planeen y
controlen.
◦ Mostrar a los gerentes cómo dirigir y motivar.
◦ Acelerar la mejora del proceso del software – CMM
n5.
◦ Brindar una guía para la mejora.
◦ Facilitar la enseñanza universitaria de aptitudes de
Tecnología del Proceso
 El equipo del software debe adaptar uno o
más de los modelos del proceso. Para ello,
se han desarrollado herramientas de
tecnología del proceso que ayudan a las
organizaciones de software a analizar su
proceso actual, organizar las tareas de
trabajo, controlar y vigilar el avance, y
administrar la calidad técnica.
Tecnología del Proceso (BPM)
Producto y Proceso
 Si el proceso es débil, sin duda el
producto final sufrirá las
consecuencias
 Un profesional del sw creativo debe
sentir tanta satisfacción del proceso
como del producto terminado
Resumen
 La ingeniería de sw es una disciplina que integra al
proceso, métodos y las herramientas para el
desarrollo de software.
 Los modelos de proceso definen un conjunto de
actividades del marco de trabajo, una colección de
tareas, productos de trabajo generados y un
conjunto de actividades sombrilla que acompañan
el proceso entero.
 La integración del modelo de capacidad de
madurez (IMCM) que describe las metas, practicas y
capacidades especificas con que se debe contar un
proceso de sw maduro.
 Se ha propuesto los modelos personal y equipo
para el proceso de software.

Вам также может понравиться