Você está na página 1de 34

 Proceso de Software:

 Un marco de trabajo para las tareas que se


requieren en la construcción de sw de alta calidad
 El proceso es un sinónimo de Ingeniería de
Software?
 Sí y no
▪ Un proceso de sw define el enfoque que se adopta
mientras el sw está en desarrollo
▪ Pero la ingeniería del sw también abarca las
tecnologías que requiere el proceso (por ejemplo,
herramientas automatizadas)
 “(La ingeniería del software es) el
establecimiento y uso de principios sólidos de
la ingeniería para obtener económicamente
un software confiable y que funcione de
modo eficiente en máquinas reales.” Fritz
Bauer, 1969
 “Ingeniería del SW:
1. La aplicación de un enfoque
sistemático, disciplinado y
cuantificable al desarrollo,
operación y mantenimiento
del sw es decir, la aplicación
de la ingeniería al software.
2. El estudio de enfoques como
en 1)”
 La ingeniería del sw es una tecnología
estratificada.
 Un enfoque de la calidad: Gestión de la Calidad
Total, Sigma Seis, etc. fomentan una cultura de la
mejora continua del proceso
 La ingeniería del sw es una tecnología
estratificada
 Proceso: El proceso de la ing. de sw mantiene
juntos los estratos de la tecnología y permite el
desarrollo racional y a tiempo del sw
▪ 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.
 La ingeniería del sw es una tecnología
estratificada
 Métodos: Proporcionan los “cómo” técnicos para
construir software
▪ En 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
 Un marco de trabajo
 Establece la base para un proceso de software
completo
 Identifica un número pequeño de actividades
aplicables a todos los proyectos de sw
 Sin importar su tamaño o complejidad
 Abarca un conjunto de actividades sombrilla
aplicables a lo largo del proceso del sw
 El siguiente marco de trabajo genérico del
proceso se puede aplicar en la inmensa
mayoría de los proyectos de sw
(Actividades):
 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 sw se entrega al cliente
 Actividades Apoyo
 Seguimiento y control del proyecto de sw
 Gestión del riesgo
 Aseguramiento de la calidad del sw
 Revisiones técnicas formales
 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
 Preparación y producción del producto de trabajo:
abarca modelos, documentos, etc.
 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
 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
 Plantilla para describir un patrón de proceso:
 Nombre del patrón
 Propósito
 Tipo:
▪ De tarea: definen una acción de la ingeniería del
software o una tarea de trabajo. Ej. Recopilación de
requisitos
▪ De escenario: definen una actividad del marco de
trabajo para el proceso. Ej. Comunicación que incorpora
el patrón de tarea reunión de requisitos
▪ De fase: definen la secuencia de actividades del marco
de trabajo que ocurre junto con el proceso: modelo en
espiral o de construcción de prototipos
 Plantilla para describir un patrón de proceso
(Cont.):
 Contexto inicial: condiciones en las cuales se aplica el
patrón
 Problema 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
 Los patrones permiten una
organización de la ingeniería del sw
para desarrollar una descripción del Patrón de Fase
proceso jerárquico que comience en
un alto grado de abstracción (patrón
de fase)
Patrones de
 La descripción se refina hasta un actividades
conjunto de patrones que describen
actividades del marco de trabajo
 Más tarde se refina de un modo
Patrones de
jerárquico en patrones de tareas más tareas
detallados para cada patrón
 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.
 Se han propuesto varios enfoques para la
evaluación del proceso de sw en las décadas
pasadas:
 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
 Proceso de Software Personal (PSP) y
Proceso de Software en Equipo (PSE)
 Ambos requieren de un arduo trabajo,
capacitación y coordinación
 ¡Pero ambos se pueden conseguir!
 El PSP resalta la medida personal del
producto de trabajo que se produce y la
calidad resultante del producto de trabajo
 El PSP responsabiliza al profesional
encargado de la planeación del proyecto
 El PSP le confiere el poder de controlar la
calidad de todos los productos de trabajo del
sw que se desarrollan
 El PSP define 5 actividades:
 Planeación:
▪ Selecciona requisitos y con base en éstos desarrolla el
tamaño y la estimación de los recursos
▪ Se estiman los defectos proyectados en el trabajo
▪ Se crea un programa del proyecto
 Diseño de alto nivel:
▪ Diseño del componente
▪ Prototipos cuando hay incertidumbre
 Revisión del diseño de alto nivel:
▪ Métodos formales de verificación se aplican a errores
descubiertos en el diseño
 El PSP define 5 actividades (Cont.):
 Desarrollo:
▪ El diseño al nivel de componentes se refina y revisa
▪ Se genera, revisa, compila y prueba el código
 Análisis de Resultados:
▪ Mediante las mediciones y medidas recolectadas se
determina la efectividad del proceso (análisis estadístico
de datos)
 Aunque la mejoría resultante en la
productividad de la ingeniería del sw y la
calidad de éste son significativas, la industria
no ha adoptado con amplitud el PSP 
 Es difícil obtener compromiso
 La capacitación es relativamente larga y sus
costos altos
 El grado requerido de medición es difícil para
mucha gente involucrada con el sw
 La meta del PSE es construir un equipo de
proyecto “autodirigido” que se organice para
producir un sw de alta calidad
 Algunos de sus objetivos:
 Construir equipos autodirigidos que establezcan sus
metas y posean sus procesos y planes. De 3 a 20
ingenieros.
 Mostrar a los jefes cómo preparar y motivar a sus
equipos y cómo ayudarlos a sostener un alto
desempeño
 Utilizar el nivel 5 de CMM
 Para formar un equipo autodirigido debe
colaborarse bien en el ámbito interno y
comunicarse bien con el exterior
 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
 El desarrollo del software, desde la fase inicial hasta la fase
final.
 Define las distintas fases intermedias que se requieren para
validar el desarrollo de la aplicación, para garantizar que el
software cumpla los requisitos para la aplicación y
verificación de los procedimientos de desarrollo.
 Permite que los errores se detecten lo antes posible y por lo
tanto, permite a los desarrolladores concentrarse en la
calidad del software, en los plazos de implementación y en
los costos asociados
 Definición de objetivos: definir el resultado del proyecto y
su papel en la estrategia global.
 Análisis de los requisitos y su viabilidad: recopilar,
examinar y formular los requisitos del cliente y examinar
cualquier restricción que se pueda aplicar.
 Diseño general: requisitos generales de la arquitectura de la
aplicación.
 Diseño en detalle: definición precisa de cada subconjunto de
la aplicación.
 Programación (programación e implementación): es la
implementación de un lenguaje de programación para crear
las funciones definidas durante la etapa de diseño.
 Prueba de unidad: prueba individual de cada subconjunto de
la aplicación para garantizar que se implementaron de
acuerdo con las especificaciones.
 Integración: para garantizar que los diferentes módulos se
integren con la aplicación. Éste es el propósito de la prueba
de integración que está cuidadosamente documentada.
Prueba beta (o validación), para garantizar que el software
cumple con las especificaciones originales.
 Documentación: sirve para documentar información
necesaria para los usuarios del software y para desarrollos
futuros.
 Implementación Mantenimiento: para todos los
procedimientos correctivos (mantenimiento correctivo) y las
actualizaciones secundarias del software (mantenimiento
continuo).
 Para facilitar una metodología común entre el cliente y la
compañía de software, los modelos de ciclo de vida se han
actualizado para reflejar las etapas de desarrollo
involucradas y la documentación requerida, de manera que
cada etapa se valide antes de continuar con la siguiente
etapa. Al final de cada etapa se arreglan las revisiones de
manera que (texto faltante).
Principales problemas:
Especificación de
Requerimiento
 El cliente participa en el proyecto al inicio y al
final
 Los riesgos son mitigados al final del proyecto
Análisis  El descubrimiento de los errores de diseño es
tardio

Diseño

Implementacion

Mantenimiento
Iteração 1 Iteração 2 Iteração 3

Levantamento Levantamento Levantamento

Análise Análise Análise

Projeto Projeto Projeto

Implementação Implementação Implementação

Testes Testes Testes

Módulo 1 Módulo 2 Módulo 3


Iteração 1 Iteração 2 Iteração 3

Levantamento Levantamento Levantamento

Análise Análise Análise

Projeto Projeto Projeto

Implementação Implementação Implementação

Testes Testes Testes

Módulo 1 Módulo 1 Módulo 2 Módulo 1


Módulo 2
Risco

Redução de Riscos

Tempo

Você também pode gostar