Logo Studenta
¡Este material tiene más páginas!

Vista previa del material en texto

CAPITULO ICAPITULO I
1.2 EL PROCESO
Resumen preparado por Miguel Cotaña
Ingeniería de Software
INF - 163
La construcción del software de 
ordenador es un proceso iterativo
de aprendizaje y el resultado es
una materialización del 
conocimiento recolectado, 
depurado y organizado conforme
el proceso estuvo en ejecución
Existen mecanismos de evaluación del 
proceso de software que permiten a las
organizaciones determinar la 
“madurez” del proceso de software. 
No obstante, 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.
Que es un proceso?Que es un proceso?
Una secuencia de pasos desarrollados para un 
propósito dado, por ejemplo, el proceso de 
desarrollo de software (IEEE-STD-610).
Curso de acción o manera de proceder
(diccionario Oxford)
Un sistema de operaciones para producir algo…
Un conjunto de acciones, cambios o funciones
que logran un resultado final (diccionario
Webmaster)
Conjunto de actividades relacionadas que son 
ejecutadas en respuesta a necesidades
previamente determinadas y consumiendo
recursos para producir un producto (J. Moore)
Tres aspectos del procesoTres aspectos del proceso
1.- Definición del proceso
Un proceso debe estar definido (documento que
especifica actividades y procedimientos del 
proceso)
2.- Aprendizaje del proceso
El conocimiento del proceso debe ser 
transferido a las personas (agentes) que lo 
ejecutarán
3.- Resultados del proceso
Manifestación de los productos, como resultado
de la ejecución de las actividades definidas por
el proceso
Consideraciones acerca de los procesosConsideraciones acerca de los procesos
Los comportamientos, actividades y 
tareas que desempeñamos para lograr
un objetivo representan la ejecución 
del proceso para alcanzar dicho
objetivo.
Un proceso disciplinado se 
manifestará en patrones ordenados y 
consistentes de comportamiento
individual o grupal
Por tanto, un proceso da forma a las
acciones y reacciones y tomamos
frente a una determinada situación.
Proceso internalizado y proceso institucionalizadoProceso internalizado y proceso institucionalizado
Cuando un proceso es desarrollado
profesional y naturalmente por una
persona, se dice que el proceso esta
“internalizado” por la persona.
En las organizaciones los procesos
son comunes a grupos de personas. 
Para obtener disciplina en los procesos, 
estos deben ser establecidos como
“institucionalizados” en la 
organización.
Completitud y disciplina en los procesosCompletitud y disciplina en los procesos
Un proceso es incompleto si:
a) El documento de definición existe
pero no todos saben de su existencia
b) El documento de definición existe, 
pero no hay capacitación en el proceso. 
Se deja a iniciativa del equipo aprender
el proceso
c) El documento de definición existe, 
existe capacitación, pero no hay 
monitoreo y el proceso NO es forzado a 
su cumplimiento. Algunos lo siguen y 
otros no
Un proceso es disciplinado solo si se 
cumplen las siguientes condiciones:
a) El proceso esta debidamente
documentado
b) Existe y se realiza capacitación formal 
sobre el proceso
c) Las personas siguen lo establecido
por el proceso como una manera natural 
de desempeñar sus actividades
d) El proceso es monitoreado y su
cumplimiento es obligatorio.
Ingenieria del softwareIngenieria del software
[Ingeniería de software es] el 
establecimiento y uso de principios
de ingeniería adecuados para obtener
económicamente software que sea 
confiable y trabaje eficientemente en 
máquinas reales (Fritz Bauer)
teoria practica
Resolucion
de 
problemas
Administracion
y gestion
Pruebas y
control de
calidad
DefinicionDefinicion
La ingeniería de software no es ciencia
informática.
“Un científico construye con el objetivo de 
aprender, un ingeniero aprende con el objetivo
de construir”
La distinción entre ingeniería y ciencia
en el software es el mismo que en otras
disciplinas
“Los científicos aprenden lo que es verdadero y 
cómo extender el conocimiento en su campo”
“Los ingenieros aprenden lo que es verdadero, lo 
que es útil y cómo aplicar conocimiento bién
entendido para resolver problemas prácticos”
Científicos
� Conocimientos enfocados y especializados
� Reportan básicamente a sus colegas científicos
� No necesitan licencia
Ingenieros
� Conocimientos comprobados, efectivos y confiables
de ámbito más general
� Se necesita un amplio entendimiento de todos los 
factores que intervienen en el desarrollo del producto.
� Responsabilidad con el publico
� Generalmente necesitan licencia para ejercer
El producto software es enteramente
conceptual.
No tiene propiedades físicas como peso, 
color o voltaje, y en consecuencia no está
sujeto a leyes físicas o eléctricas.
Su naturaleza conceptual crea una distancia
intelectual entre el software y el problema
que el software resuelve
Dificil para una persona que entiende el 
problema, entender el sistema software que
lo resuleve.
Para probar es necesario de un sistema
físico.
Peculiaridades de la I.S.Peculiaridades de la I.S.
En el ámbito académico, existen 5 áreas de 
conocimiento y capacidades necesarias para
el ingeniero de software:
� Ciencias de la computación, ingeniería de 
sistemas y de software.
� Plataformas específicas de hardware
� Dominio de conocimiento de la aplicación
� Habilidades personales, interpersonales y 
ética.
� Cultura empresarial.
Areas del conocimientoAreas del conocimiento
Definición (Qué ?)
Desarrollo (Cómo ?)
Soporte (cambios)
� Corrección
� Adaptación
� Mejora
� Prevención
Fases genericas de la I.S.Fases genericas de la I.S.
IngenierIngenieríía a 
de softwarede software
Gestion de proyectos
Informatica
y tecnologia
Seguridad
Confiabilidad
Gestion de la calidad
Dominios de las 
aplicaciones
Relacion con otras disciplinasRelacion con otras disciplinas
Ingenieria del software: tecnologia estratificadaIngenieria del software: tecnologia estratificada
Definicion segun el IEEEDefinicion segun el IEEE
La ingenieria de software es 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
La I.S. es una tecnología estratificadaLa I.S. es una tecnología estratificada
Cualquier enfoque de la ingeniería debe
estar sustentado en un compromiso con 
la calidad.
La gestión de la calidad Total, Sigma 
Seis y enfoques similares fomentan una
cultura de mejora continua del proceso, 
y es esta cultura la que al final conduce 
al desarrollo de enfoques muy efectivos
para la I.S.
El enfoque de calidad soporta a la I.S.El enfoque de calidad soporta a la I.S.
Software EngineeringIngeniería de Software
enfoqueenfoque de de ““calidadcalidad””
modelomodelo de de procesoproceso
mméétodostodos
herramientasherramientas
La base de la I.S. es el 
estrato del proceso. El 
proceso es el elemento que
mantiene juntos los estratos
de la tecnologia y que permite
el desarrollo racional y a 
tiempo del software.
Modelo de procesoModelo de proceso
El proceso del software forma la 
base para el control de la gestión 
de los proyectos de software y 
establece el contexto en el cual
se aplican los métodos técnicos, 
se generan los productos del 
trabajo (modelos, documentos, 
datos, reportes, formatos), se 
establecen los fundamentos, se 
asegura la calidad, y el cambio se 
maneja de manera apropiada.
Los métodos de la I.S., proporcionan los 
“cómo” técnicos para construir software. 
Abarcan un amplio espectro de tareas que
incluyen la:
� Comunicación, 
� El análisis de requisitos,
� El modelado del diseño,
� La construccion del programa,
� La realizacion de pruebas,
� El soporte
Los métodos se basan en un conjunto de 
principios básicos que gobierna cada área de 
la tecnologia.
MétodosMétodos
Las herramientas de la I.S., proporcionan
el soporte automatizado o 
semiautomatizado para el proceso y los 
métodos.Cuando las herramientas se integran de 
forma que la información que cree una de 
ellas pueda usarla otra, se dice que se ha 
establecido un sistema para el soporte
del desarrollo del software, que con 
frecuencia se denomina “ingeniería del 
software asistida por ordenador”
HerramientasHerramientas
MARCO DE TRABAJO PARA EL PROCESOMARCO DE TRABAJO PARA EL PROCESO
Un marco de trabajo establece la base 
para un proceso de software completo al 
identificar un numero pequeño de 
actividades del marco de trabajo 
aplicables a todos los proyectos de 
software, sin importar su tamaño y 
complejidad.
Abarca un conjunto de actividades 
sombrilla aplicables a lo largo del 
proceso del software.
Cada actividad dentro del marco de 
trabajo contiene un conjunto de 
acciones de ingeniería del software; es 
decir, una serie de tareas relacionadas 
que produce un producto del trabajo en 
la I.S. (por ejemplo, el diseño es una 
acción de la I.S.). 
Cada acción la forman tareas de trabajo 
individuales que completan alguna parte 
del trabajo implicado por la acción.
Marco de trabajo del proceso de softwareMarco de trabajo del proceso de software
Actividades sombrilla
Marco de trabajo del proceso
Actividad del marco de trabajo #1
Tareas del trabajo
Productos del trabajo
Puntos de aseguramiento
Fundamentos del proyecto
Tareas del trabajo
Productos del trabajo
Puntos de aseguramiento
Fundamentos del proyecto
Accion de la ingenieria de software # 1.k
Accion de la ingenieria de software # 1.1
Conjunto
de tareas
.
Conjunto
de tareas
.
.
Actividad del marco de trabajo #n
Tareas del trabajo
Productos del trabajo
Puntos de aseguramiento
Fundamentos del proyecto
Tareas del trabajo
Productos del trabajo
Puntos de aseguramiento
Fundamentos del proyecto
Accion de la ingenieria de software # n.m
Accion de la ingenieria de software # n.1
Conjunto
de tareas
.
Conjunto
de tareas
.
.
Aplicacion del marco de trabajo en proyectosAplicacion del marco de trabajo en proyectos
Comunicación. Esta actividad del marco de 
trabajo implica una intensa colaboración y 
comunicación con los clientes; además, abarca la 
investigación de requisitos y otras actividades
relacionadas.
Planeación. Esta actividad establece un plan 
para el trabajo de la ingeniería del software. 
Describe las tareas técnicas que deben realizarse, 
los riesgos probables, los recursos que serán 
requeridos, los productos del trabajo que han de 
producirse y un programa de trabajo.
Modelado. Abarca la creación de modelos que
permiten al desarrollador y al cliente entender
mejor los requisitos del software y el diseño que
logrará satisfacerlos.
Construcción. Esta actividad combina la 
generación del codigo (ya sea manual o 
automatizado) y la realización de pruebas
necesarias para descubrir errores en el 
código.
Despliegue. El software (como una entidad
completa o un incremento completado de 
manera parcial) se entrega al cliente, quién
evalua el producto recibido y proporciona
información basada en su evaluación.
Recopilacion de requisitosRecopilacion de requisitos
Ocurre durante la actividad de comunicación, y 
puede ser:
Hacer una lista de los clientes para el proyecto.
Invitar a todos los clientes a una reunión informal.
Pedir a cada cliente que haga una lista de 
características y funciones requeridas.
Establecer un debate sobre los requisitos y elaborar 
una lista final.
Priorizar los requisitos.
Advertir las áreas de incertidumbre.
Recopilacion de requisitos para proyecto complejoRecopilacion de requisitos para proyecto complejo
Hacer una lista de los clientes para el proyecto.
Entrevistar a c/u de los clientes, por separado, para 
determinar de manera general sus deseos y necesidades
Elaborar una lista preliminar de las funciones y 
características basadas en la información que ofrezcan los 
clientes.
Hacer un programa de reuniones para recopilar los 
requisitos.
Conducir las reuniones
Producir escenarios informales de los usuarios como 
parte de cada reunión.
Refinar escenarios de los usuarios con base en el 
intercambio de información con los clientes.
Elaborar una lista revisada de los requisitos de los 
clientes
Utilizar técnicas de despliegue de funciones de calidad 
para jerarquizar los requisitos.
Empaquetar los requisitos para que puedan entregarse 
de manera incremental.
Observar las restricciones que serán puestas en el 
sistema
Debatir métodos para validar el sistema.
Actividades sombrillaActividades sombrilla
Seguimiento y control del proyecto de 
software: permite que el equipo de software 
evalue el progreso comparandolo con el plan del 
proyecto y así tomar las acciones necesarias para
mantener el programa.
Gestión de riesgos: evalua los riesgos que
pudiera afectar los resultados del proyecto o la 
calidad del producto.
Aseguramiento de la calidad del software: 
define y conduce las actividades requeridas para
asegurar la calidad del software.
Revisiones técnicas formales: evalua los 
productos del trabajo de la I.S., en un esfuerzo
encaminado a descubrir y eliminar los errores
antes de que éstos se propaguen.
Medición: define y recolecta mediciones del 
proceso, el proyecto y el producto para ayudar al 
equipo a entregar software que satisfaga las
necesidades del cliente.
Gestión de la configuración del software: 
maneja los efectos del cambio a través del 
proceso del software.
Gestión de la reutilización: define los criterios
para la reutilización de productos del trabajo (se 
incluyen componentes del software) y establece
mecanismos para la creación de componentes
reutilizables.
Preparación y producción: abarca las
actividades requeridas para crear productos del 
trabajo como modelos, documentos, registros.
INTEGRACION DEL MODELO DE CAPACIDAD DE MADUREZINTEGRACION DEL MODELO DE CAPACIDAD DE MADUREZ
El instituto de Ingeniería del Software (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. Una 
organización debe crear un modelo de 
proceso que se ajuste a las directrices 
establecidas por la integración del modelo 
de capacidad de madurez (IMCM)
El modelo IMCM (integración del modelo de 
capacidad de madurez), es el modelo más 
utilizado en la industria del software.
“Mide la capacidad del 
proceso para desarrollar 
software con calidad”
ad.
(predictibilidad en costos, duración, y niveles de calidad previstos)
La IMCM representa un modelo completo de 
proceso en dos formas diferentes:
1.- Como un modelo continuo
2.- Como un modelo discreto
5
4
3
2
1
0
PP GR MA GC ACPP otros
PP Planeación del proyecto
GR Gestión de requisitos
MA Medición y análisis
GC Gestión de configuración
ACPP Aseguramiento de la 
calidad del producto y el 
proceso
Clasificación de acuerdo con niveles de capacidadClasificación de acuerdo con niveles de capacidad
Realizado
Administrado
Definido
Gestionado
Mejorado
Todas las metas específicas del área del proceso han sido
satisfechas. Las tareas de trabajo requeridas han sido realizadas
Todos los criterios del nivel han sido satisfechos. Todas las tareas
de trabajo y productos estan monitoreados, controlados y revisados
y son evaluados.
Los procesos están estabilizados y existe una gestión
cuántitativa. El área de proceso se controla y mejora mediante
mediciones y evaluacion cuantitativa.
La mejora de procesos es una actividad consistente y establecida
en la organización. Se adapta y mejora mediante el uso de medios
cuantitativos (estadísticos)
Nivel Características
Procesos organizativos, tanto técnicos como de gestión, están
claramente definidos. 
incompleto
El área de proceso aún no se realiza o todavia no alcanza todas
las metas y objetivos definidos para el nivel 1 de capacidad
La IMCM define cadaárea del proceso en 
función de “metas especificas” (ME)y de 
las “prácticas especificas” (PE)
requeridas para alcanzar dichas metas.
Las ME establecen las características que 
deben existir para que las actividades 
implicadas por un área de proceso sean 
efectivas. 
Las PE convierten una meta en un conjunto 
de actividades relacionadas con el proceso.
El modelo discreto de la IMCM define las 
mismas áreas, metas y prácticas 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.
Para lograr un nivel de madurez se deben 
conseguir metas y prácticas especificas 
relacionadas con un conjunto de áreas del 
proceso.
Relacion entre niveles de madurez y las areas del procesoRelacion entre niveles de madurez y las areas del proceso
Desarrollo de requisitos
Solucion tecnica
Integracion del producto
Verificacion
Validacion
Enfoque del proceso organizacional
Capacitacion organizacional
Gestion de riesgos
Estandarizacion
Del proceso
definido
Gestion de requisitos
Planeacion del proyecto
Monitoreo y control del proyecto
Gestion de acuerdos del proveedor
Medicion y analisis
Aseguramiento de calidad del producto y proceso
Gestion de la configuracion
Gestion
basica del
Proyecto
Gestionado
Ejecutado
Eejecucion del proceso organizacional
Gestion cuantitativa del proyecto
Gestion
Cuantitativa
Gestionado
de modo
cuantitativo
Innovacion organizacional y despliegue
Analisis causal y resolucion
Mejora continua
del 
Proceso
De 
optimizacion
AREAS DEL PROCESOENFOQUENIVEL
PATRONES DEL PROCESOPATRONES DEL PROCESO
El proceso 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 para ordenador.
Un patrón de proceso ofrece una plantilla: un 
método consistente para describir una 
característica importante del proceso de 
software. Mediante la combinación de patrones, 
un equipo de software puede construir un 
proceso que satisfaga las necesidades de un 
proyecto.
Los patrones pueden definirse en cualquier 
grado de abstracción. En algunos casos se puede 
utilizar un patrón para describir un proceso 
completo (prototipo).
En otras situaciones se utilizan los patrones para 
describir una actividad del marco de trabajo 
importante (como la plantación) o una tarea 
dentro de una actividad del marco de trabajo 
(por ejemplo, la estimación de un proyecto)
Plantilla para describir un patron de procesoPlantilla para describir un patron de proceso
Nombre del patrón. Al patrón se le 
asigna un nombre significativo
(comunicación con el cliente).
Propósito. Se describe con brevedad
el objetivo del patrón. Por ejemplo, el 
objetivo de la comunicación con el 
cliente es “establecer una relación de 
colaboración con el cliente” en un 
esfuerzo encaminado a definir el 
alcance del proyecto y requisitos del 
negocio.
Tipo. Se especifica el tipo de patrón. 
(Ambler) sugiere tres tipos:
Los patrones de tarea definen una acción de 
la I.S., o una tarea de trabajo que es parte del 
proceso y relevante para una práctica exitosa de 
la I.S. (por ejemplo, la recopilación de 
requisitos es un patrón de tarea.
Los patrones de escenario, incorpora multiples 
patrones de tarea relevantes. Un ejemplo, es la 
comunicación.
Los patrones de fase definen la secuencia de 
actividades del marco de trabajo. Un ejemplo, 
modelo en espiral o de construcción de 
prototipos.
Contexto inicial. Se describen las
condiciones en las cuales se aplica el 
patrón.
Problema. Se describe el problema
que debe resolver el patrón.
Solución. Se describe la implentacion
del patrón.
Contexto reultante. Se describen las
condiciones que habra una vez que el 
patrón haya sido implementado con 
éxito.
Patrones relacionados. Se 
proporciona una lista de todos los 
patrones de proceso directamente
relacionados con este, en forma 
jerárquica o de alguna otra forma.
Usos conocidos/ejemplos. Se 
indican los ejemplos específicos en los 
cuales el patron es aplicable.
EVALUACION DEL PROCESOEVALUACION DEL PROCESO
La existencia de un proceso de software 
no es garantía de que este será
entregado a tiempo, de que satisfará las 
necesidades del cliente, o de que 
mostrara las características técnicas que 
conducirán a características de calidad a 
largo plazo.
Los patrones de proceso deben ir 
acompañados de una practica sólida de la 
I.S.
Relacion entre proceso y métodos aplicado para evaluaciónRelacion entre proceso y métodos aplicado para evaluación
Evaluacion del
Proceso de SW
Mejoramiento del
Proceso de Sw
Determinacion
de la capacidad
Proceso del Sw
Identifica
modificaciones a
Identifica capacidades
y riesgos de
Conduce a Conduce a
motiva
Es examinado por
MODELOS DE PROCESO PERSONALES Y EN EQUIPOMODELOS DE PROCESO PERSONALES Y EN EQUIPO
El mejor proceso de software es el que 
esta cerca de la gente que realizará el 
trabajo. Si un modelo de proceso de 
software ha sido desarrollado en un 
ámbito corporativo, puede ser efectivo 
sólo si es en gran medida adaptable para 
satisfacer las necesidades del equipo del 
proyecto, que es el que en realidad lleva 
a cabo el trabajo de I.S.
En un escenario ideal, cada ingeniero de 
software crearía un proceso que llene lo 
mejor posible sus propias necesidades y 
al mismo tiempo satisfaga las amplias 
necesidades del equipo y la organización.
De modo alternativo, el equipo mismo 
crearía su propio proceso, y al mismo 
tiempo cubriría las necesidades mas 
reducidas de los individuos y las 
necesidades amplias de la organización.
PROCESO DE SOFTWARE PERSONAL (PSP)PROCESO DE SOFTWARE PERSONAL (PSP)
El modelo PSP define 5 actividades del 
marco de trabajo:
Planeación. Esta actividad selecciona 
requisitos y, con base en estos, desarrolla 
el tamaño y la estimación de recursos. 
Además, se estiman los defectos. Todas 
las mediciones se registran en hojas de 
trabajo o en plantillas.
Diseño de alto nivel. Se construyen 
prototipos. Todos los elementos se 
registran y rastrean.
Revisión del diseño de alto nivel. Los 
métodos formales de verificación se aplican a 
errores descubiertos en el diseño. Las 
mediciones se mantienen para todas las 
tareas importantes.
Desarrollo. El diseño al nivel de 
componente se refina y revisa. Se genera, 
revisa, compila y prueba el código. Las 
mediciones de mantienen.
Análisis de resultados. Mediante las 
mediciones y medidas recolectadas se 
determina la efectividad del proceso.
PROCESO DE SOFTWARE EN EQUIPO (PSE)PROCESO DE SOFTWARE EN EQUIPO (PSE)
La meta del PSE es construir un equipo de 
proyecto “autodirigido” que se organice 
para producir software de alta calidad. 
Humphrey define los siguientes objetivos:
Construir equipos autodirigidos que 
planeen y tengan un seguimiento de su 
trabajo, establezcan metas y posean sus 
procesos y planes.
Mostrar a los jefes como preparar y 
motivar a sus equipos y como ayudarlos a 
sostener un alto desempeño.
Acelerar el mejoramiento del proceso 
de software al realizar, con el 
comportamiento normal y esperado.
Ofrecer una guía de mejoramiento a 
organizaciones de alta madurez.
Facilitar la enseñanza de habilidades de 
equipo de calidad.
El PSE define las siguientes actividades
del marco de trabajo:
Lanzamiento
Diseño de alto nivel
Implementación
Integración y prueba
Análisis de resultados
El PSE reconoce que los mejores equipos 
de software son autodirigidos. Los 
miembros del equipo plantean los 
objetivos del proyecto, adaptan el 
proceso para cubrir sus necesidades, 
controlan el programa y la medición y el 
análisis de las medidas recolectadas; 
además, trabajan de manera continua 
para mejorar el enfoque del equipo 
respecto de la I.S.
Un profesional del software creativo debe 
sentir tanta satisfacción del procesocomo 
del producto terminado.
El trabajo que realiza la gente de software 
cambiara en los años que siguen. La 
dualidad del producto y el proceso es un 
elemento importante para mantener a la 
gente creativa comprometida mientras 
finaliza la transición desde la programación 
hasta la Ingeniería de Software.
Si el proceso es debil, el producto final sufrira las consecuenciasSi el proceso es debil, el producto final sufrira las consecuencias