En el contexto de este libro, se define proceso del software como una estructura para las actividades,
acciones y tareas que se requieren a fin de construir software de alta calidad. Un proceso del software
define el enfoque adoptado mientras se hace ingeniería sobre el software. Pero la ingeniería de
software también incluye tecnologías que pueblan el proceso: métodos técnicos y herramientas
automatizadas.
SE DIVIDE EN
UN MODELO GENERAL DE PROCESO: se representa el
proceso del software de manera esquemática. En
dicha figura, cada actividad estructural está formada
por un conjunto de acciones de ingeniería de
software y cada una de éstas se encuentra definida
por un conjunto de tareas que identifica las tareas
del trabajo que deben realizarse, los productos del
trabajo que se producirán, los puntos de
aseguramiento de la calidad que se requieren y los
puntos de referencia que se utilizarán para evaluar el
avance.
flujo del proceso— y se describe la manera en que están organizadas las actividades estructurales y las
acciones y tareas que ocurren dentro de cada una con respecto de la secuencia y el tiempo
flujo de proceso lineal ejecuta cada una de las cinco actividades estructurales en secuencia,
comenzando por la comunicación y terminando con el despliegue
Un flujo de proceso iterativo repite una o más de las actividades antes de pasar a la siguiente
Un flujo de proceso evolutivo realiza las actividades en forma “circular”. A través de las cinco
actividades, cada circuito lleva a una versión más completa del software
Un flujo de proceso paralelo, ejecuta una o más actividades en paralelo con otras (por ejemplo, el
modelado de un aspecto del software tal vez se ejecute en paralelo con la construcción de otro
aspecto del software).
Definición de actividad
estructural:
Identificación de un conjunto de tareas
Patrones del proceso
EVALUACIÓN Y MEJORA DEL PROCESO: Los patrones de proceso
deben acoplarse con una práctica sólida de ingeniería de software .
Además, el proceso en sí puede evaluarse para garantizar que
cumple con ciertos criterios de proceso básicos que se haya
demostrado que son esenciales para el éxito de la ingeniería de
software
Método de evaluación del estándar CMMI para el proceso de mejora
Evaluación basada en CMM para la mejora del proceso interno
SPICE (ISO/IEC 15504)
ISO9001:2000 para software:
MODELOS DE PROCESO PRESCRIPTIVO: Los modelos de proceso prescriptivo fueron propuestos
originalmente para poner orden en el caos del desarrollo de software. La historia indica que estos
modelos tradicionales han dado cierta estructura útil al trabajo de ingeniería de software y que
constituyen un mapa razonablemente eficaz para los equipos de software. Sin embargo, el trabajo de
ingeniería de software y el producto que genera siguen “al borde del caos”.
Modelo de la cascada : El modelo de la
cascada, a veces llamado ciclo de vida
clásico, sugiere un enfoque sistemático
y secuencial6 para el desarrollo del
software, que comienza con la
especificación de los requerimientos
por parte del cliente y avanza a través
de planeación, modelado, construcción
y despliegue, para concluir con el apoyo
del software terminado
Modelos de proceso incremental: modelo
incremental aplica secuencias lineales en forma
escalonada a medida que avanza el calendario
de actividades. Cada secuencia lineal produce
“incrementos” de software susceptibles de
entregarse [McD93] de manera parecida a los
incrementos producidos en un flujo de proceso
evolutivo
Modelos de proceso evolutivo: Los modelos
evolutivos son iterativos. Se caracterizan por la
manera en la que permiten desarrollar versiones
cada vez más completas del software
Modelos concurrentes: en ocasiones llamado ingeniería
concurrente, permite que un equipo de software represente
elementos iterativos y concurrentes de cualquiera de los
modelos de proceso descritos en este capítulo. Por ejemplo, la
actividad de modelado definida para el modelo espiral se logra
por medio de invocar una o más de las siguientes acciones de
software: hacer prototipos, análisis y diseño
MODELOS DE PROCESO
ESPECIALIZADOLos modelos de proceso
especializado tienen muchas de las
características de uno o más de los
modelos tradicionales que se
presentaron en las secciones anteriores.
Sin embargo, dichos modelos tienden a
aplicarse cuando se elige un enfoque de
ingeniería de software especializado o
definido muy específicamente.1
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. El modelo de desarrollo basado en componentes incorpora
muchas de las características del modelo espiral.
El modelo de métodos formales: El modelo de métodos formales agrupa actividades que llevan a la
especificación matemática formal del software de cómputo. Los métodos formales permiten
especificar, desarrollar y verificar un sistema basado en computadora por medio del empleo de una
notación matemática rigurosa.
Desarrollo de software orientado a aspectos: Sin importar el proceso del software que se elija, los
constructores de software complejo implementan de manera invariable un conjunto de características,
funciones y contenido de información localizados. Estas características localizadas del software se
modelan como componentes (clases orientadas a objetos) y luego se construyen dentro del contexto
de una arquitectura de sistemas
EL PROCESO UNIFICADO: el proceso unificado es un intento por
obtener los mejores rasgos y características de los modelos
tradicionales del proceso del software, pero en forma que
implemente muchos de los mejores principios del desarrollo ágil
de software . El proceso unificado reconoce la importancia de la
comunicación con el cliente y los métodos directos para
describir su punto de vista respecto de un sistema .
Fases del proceso unificado
MODELOS DEL PROCESO PERSONAL Y DEL EQUIPO: El mejor proceso del
software es el que está cerca de las personas que harán el trabajo. Si un
modelo del proceso del software se ha desarrollado en un nivel corporativo u
organizacional, será eficaz sólo si acepta una adaptación significativa para
que cubra las necesidades del equipo de proyecto que en realidad hace el
trabajo de ingeniería de software.
Proceso personal del software (PPS)
Proceso del equipo de software (PES)
TECNOLOGÍA DEL PROCESO: El equipo del software debe
adaptar uno o más de los modelos del proceso estudiados en
las secciones precedentes. 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