Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2.3 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 ingeniera de software y que
constituyen un mapa razonablemente eficaz para los equipos de software. Sin embargo, el trabajo de ingeniera de software y
el producto que genera siguen al borde del caos, Nogueira y sus colegas afirman lo siguiente:
El borde del caos se define como el estado natural entre el orden y el caos, un compromiso grande entre la estructura y la sorpresa. El
borde del caos se visualiza como un estado inestable y parcialmente estructurado. Es inestable debido a que se ve atrado
constantemente hacia el caos o hacia el orden absoluto. Tenemos la tendencia de pensar que el orden es el estado ideal de la
naturaleza. Esto podra ser un error las investigaciones apoyan la teora de que la operacin que se aleja del equilibrio genera
creatividad, procesos auto-organizados y rendimientos crecientes. El orden absoluto significa ausencia de variabilidad, que podra ser
una ventaja en los ambientes impredecibles. El cambio ocurre cuando hay cierta estructura que permita que el cambio pueda
organizarse, pero que no sea tan rgida como para que no pueda suceder. Por otro
lado, demasiado caos hace imposible la coordinacin y la coherencia. La falta de
estructura no siempre significa desorden.
Si los modelos de proceso prescriptivo5 buscan generar estructura y orden, son
inapropiados para el mundo del software, que se basa en el cambio? Pero si
rechazamos los modelos de proceso tradicional (y el orden que implican) y los
reemplazamos con algo menos estructurado,
hacemos imposible la coordinacin y coherencia en el trabajo de software?
No hay respuestas fciles para estas preguntas, pero existen alternativas
disponibles para los ingenieros de software. En las secciones que siguen se estudia
el enfoque de proceso prescriptivo en el que los temas dominantes son el orden y la
consistencia del proyecto. El autor los llama prescriptivos porque prescriben un
conjunto de elementos del proceso: actividades estructurales,
acciones de ingeniera de software, tareas, productos del trabajo, aseguramiento
de la calidad y mecanismos de control del cambio para cada proyecto. Cada
modelo del proceso tambin prescribe un flujo del proceso (tambin llamado flujo
de trabajo), es decir, la manera en la que los elementos del proceso se relacionan
entre s.
Todos los modelos del proceso del software pueden incluir las actividades
estructurales generales, pero cada una pone distinto nfasis en ellas y define en
forma diferente el flujo de proceso que invoca cada actividad estructural (as como
acciones y tareas de ingeniera de software).
El modelo de la cascada, a veces llamado ciclo de vida clsico, sugiere un enfoque sistemtico y secuencial6 para el desarrollo del
software, que comienza con la especificacin de los requerimientos por parte del cliente y avanza a travs de planeacin, modelado,
construccin y despliegue, para concluir con el apoyo del software terminado. Una variante de la representacin del modelo de la
cascada se denomina modelo en V. En la se ilustra el modelo en V, donde se aprecia la relacin entre las acciones para el
aseguramiento de la calidad y aquellas asociadas con la comunicacin, modelado y construccin temprana.
En realidad, no hay diferencias fundamentales entre el ciclo de vida clsico y el modelo en V. Este ltimo proporciona una forma de
visualizar el modo de aplicacin de las acciones de verificacin y validacin al trabajo de ingeniera inicial.
El modelo de la cascada es el paradigma ms antiguo de la ingeniera de software. Sin embargo, en las ltimas tres dcadas, las crticas
hechas al modelo han ocasionado que incluso sus defensores ms obstinados cuestionen su eficacia. Entre los problemas que en
ocasiones surgen al aplicar el modelo de la cascada se encuentran los siguientes:
1. Es raro que los proyectos reales sigan el flujo secuencial propuesto por el modelo. Aunque el modelo lineal acepta repeticiones, lo
hace en forma indirecta. Como resultado, los cambios generan confusin conforme el equipo del proyecto avanza.
2. A menudo, es difcil para el cliente enunciar en forma explcita todos los requerimientos. El modelo de la cascada necesita que se haga
y tiene dificultades para aceptar la incertidumbre natural que existe al principio de muchos proyectos.
3. El cliente debe tener paciencia. No se dispondr de una versin funcional del(s) programa(s) hasta que el proyecto est muy
avanzado. Un error grande sera desastroso si se detectara hasta revisar el programa en funcionamiento.
Hoy en da, el trabajo de software es acelerado y est sujeto a una corriente sin fin de cambios. El modelo de la cascada suele ser
inapropiado para ese tipo de labor. No obstante, sirve como un modelo de proceso til en situaciones en las que los requerimientos son
fijos y el trabajo avanza en forma lineal hacia el final.
Por ejemplo, la actividad de comunicacin (no se muestra en la figura) termina su primera iteracin al principio de un proyecto y existe en
el estado de cambios en espera. La actividad de modelado (que exista en estado inactivo mientras conclua la comunicacin inicial,
ahora hace una transicin al estado en desarrollo. Sin embargo, si el cliente indica que deben hacerse cambios en los requerimientos, la
actividad de modelado pasa del estado en desarrollo al de cambios en espera.
El modelado concurrente define una serie de eventos que desencadenan transiciones de un estado a otro para cada una de las
actividades, acciones o tareas de la ingeniera de software.
Por ejemplo, durante las primeras etapas del diseo (accin importante de la ingeniera de software que ocurre durante la actividad de
modelado), no se detecta una inconsistencia en el modelo de requerimientos. Esto genera el evento correccin del modelo de anlisis,
que disparar la accin de anlisis de requerimientos del estado terminado al de cambios en espera.
El modelado concurrente es aplicable a todos los tipos de desarrollo de software y proporciona un panorama apropiado del estado actual
del proyecto. En lugar de confinar las actividades, acciones y tareas de la ingeniera de software a una secuencia de eventos, define una
red del proceso. Cada actividad, accin o tarea de la red existe simultneamente con otras actividades, acciones o tareas. Los eventos
generados en cierto punto de la red del proceso desencadenan transiciones entre los estados.
2.4 MODELOS DE PROCESO ESPECIALIZADO Tienen muchas de las caractersticas de uno o ms de los modelos tradicionales que
se presentaron en las secciones anteriores, dichos modelos tienden a aplicarse cuando se elige un enfoque de ingeniera de software
especializado.
2.4.1 Desarrollo basado en componentes Incorpora muchas de las caractersticas del modelo espiral. Es de naturaleza
evolutiva y demanda un enfoque iterativo para la creacin de software. Sin embargo, el modelo de desarrollo basado en componentes
construye aplicaciones a partir de fragmentos de software prefabricados.
Las actividades de modelado y construccin comienzan con la identificacin de candidatos de componentes. stos pueden disearse
como mdulos de software convencional o clases orientadas a objetos o paquetes16 de clases. Sin importar la tecnologa usada para
crear los componentes, este modelo incorpora las etapas siguientes (con uso de un enfoque evolutivo):
1. Se investigan y evalan, para el tipo de aplicacin de que se trate, productos disponibles basados en componentes.
2. Se consideran los aspectos de integracin de los componentes.
3. Se disea una arquitectura del software para que reciba los componentes.
4. Se integran los componentes en la arquitectura.
5. Se efectan pruebas exhaustivas para asegurar la funcionalidad apropiada.
El modelo del desarrollo basado en componentes lleva a la reutilizacin del software, y eso da a los ingenieros de software varios
beneficios en cuanto a la mensurabilidad.
2.4.2 El modelo de mtodos formales Agrupa actividades que llevan a la especificacin matemtica formal del software de
cmputo. Los mtodos formales permiten especificar, desarrollar y verificar un sistema basado en computadora por medio del empleo de
una notacin matemtica rigurosa.
Aunque el modelo de los mtodos formales no es el ms seguido, promete un software libre de defectos. Sin embargo, se han expresado
preocupaciones acerca de su aplicabilidad en un ambiente de negocios:
El desarrollo de modelos formales consume mucho tiempo y es caro.
Debido a que pocos desarrolladores de software tienen la formacin necesaria para aplicar mtodos formales, se requiere mucha
capacitacin.
Es difcil utilizar los modelos como mecanismo de comunicacin para clientes sin complejidad tcnica.
A pesar de esto, el enfoque de los mtodos formales ha ganado partidarios entre los desarrolladores que deben construir software de
primera calidad en seguridad, y desarrolladores que sufriran graves prdidas econmicas si ocurrieran errores en su software.
2.5 EL PROCESO UNIFICADO Reconoce la importancia de la comunicacin con el cliente y los mtodos directos para
describir su punto de vista respecto de un sistema (el caso de uso). Hace nfasis en la importancia de la arquitectura del software y
ayuda a que el arquitecto se centre en las metas correctas, tales como que sea comprensible, permita cambios futuros y la reutilizacin:
Sugiere un flujo del proceso iterativo e incremental, lo que da la sensacin evolutiva que resulta
esencial en el desarrollo moderno del software.
Tema 3
Nmero de funciones ejecutables. Una funcin ejecutable proporciona cierto servicio computacional al usuario final. Conforme el
nmero de funciones ejecutables aumenta, tambin crece el esfuerzo de modelado y construccin.
25.3 MTRICAS PARA CALIDAD DE SOFTWARE La meta dominante de la ingeniera del software es producir un sistema,
aplicacin o producto de alta calidad dentro de un marco temporal que satisfaga una necesidad de mercado. Para lograr esta meta,
deben aplicarse mtodos efectivos acoplados con herramientas modernas dentro del contexto de un proceso de software maduro.
La calidad de un sistema, aplicacin o producto slo es tan buena como los requerimientos que describen el problema, el diseo que
modela la solucin, el cdigo que conduce a un programa ejecutable y las pruebas que ejercitan el software para descubrir errores.
25.3.1 Medicin de la calidad Aunq existen muchas medidas de calidad del software, la exactitud, capacidad de mantenimiento,
integridad y usabilidad proporcionan tiles indicadores para el equipo del proyecto. Gilb sugiere definiciones y medidas para cada una.
Exactitud. Es el grado en el cual el software realiza la funcin requerida.
Capacidad de mantenimiento. Es la facilidad con la que un programa puede corregirse si se encuentra un error, la facilidad con que se
adapta si su entorno cambia o de mejorar si el cliente quiere un cambio en requerimientos.
Integridad. La integridad del software se ha vuelto cada vez ms importante en la era de los ciberterroristas y hackers. Mide la habilidad
de un sistema para resistir ataques a su seguridad.
Usabilidad. Es un intento por cuantificar la facilidad de uso y puede medirse en trminos.
23.4 MTRICAS DE DISEO PARA WEBAPPS Un til conjunto de medidas y mtricas para webapps proporciona respuestas
cuantitativas a las siguientes preguntas:
La interfaz de usuario promueve usabilidad?
La esttica de la webapp es apropiada para el dominio de aplicacin y agrada al usuario?
El contenido se dise de tal forma que imparte ms informacin con menos esfuerzo?
La navegacin es eficiente y directa?
La arquitectura de la webapp se dise para alojar las metas y objetivos especiales de los usuarios de la webapp, la estructura de
contenido y funcionalidad, y el flujo de navegacin requerido para usar el sistema de manera efectiva?
Los componentes se disearon de manera que se reduce la complejidad procedimental y se mejora la exactitud, la confiabilidad y el
desempeo?
En la actualidad, cada una de estas preguntas puede abordarse slo de manera cualitativa, porque todava no existe una suite validada
de mtricas que proporcionen respuestas cuantitativas.
Mtricas estticas (diseo grfico). Por su naturaleza, el diseo esttico se apoya en el juicio cualitativo y por lo general no es sensible
a la medicin ni a las mtricas. Sin embargo, Ivory proponen un conjunto de medidas que pueden ser tiles para valorar el impacto del
diseo esttico:
Mtricas de contenido. Las mtricas en esta categora se enfocan en la complejidad del contenido y en los grupos de objetos de
contenido que se organizan en pginas.
Mtricas de navegacin. Las mtricas en esta categora abordan la complejidad del flujo de navegacin. En general, son tiles slo para
aplicaciones web estticas, que no incluyen vnculos y pginas generados de manera dinmica.
Usar un subconjunto de las mtricas sugeridas puede servir para derivar relaciones empricas que permiten a un equipo de desarrollo
webapp valorar la calidad tcnica y predecir el esfuerzo con base en las estimaciones de complejidad estimadas. En esta rea todava
queda mucho trabajo por hacer.
23.6 MTRICAS PARA PRUEBAS Los examinadores deben apoyarse en las mtricas de anlisis, diseo y cdigo para guiarlos en el
diseo y la ejecucin de los casos de prueba.
Las mtricas del diseo arquitectnico proporcionan informacin acerca de la facilidad o dificultad asociada con las pruebas de
integracin y de la necesidad de software de pruebas especializado (por ejemplo, resguardos y controladores). La complejidad
ciclomtica (una mtrica de diseo en el nivel de componente) yace en el centro de la prueba de ruta base, un mtodo de diseo de
casos de prueba. Adems, la complejidad ciclomtica puede usarse para dirigirse a mdulos como candidatos para prueba de unidad
extensa. Los mdulos con alta complejidad ciclomtica tienen ms probabilidad de ser proclives al error que los mdulos donde su
complejidad ciclomtica es menor. Por esta razn, debe emplear esfuerzo por arriba del promedio para descubrir errores en tales
mdulos antes de que se integren en un sistema.
son pblicos o protegidos. Valores altos de PPP aumentan la probabilidad de efectos colaterales entre las clases porque los atributos
pblicos y protegidos conducen a alto potencial para acoplamiento.16 Las pruebas deben disearse para garantizar el descubrimiento de
tales efectos colaterales.
Acceso pblico a miembros de datos (APD). Esta mtrica indica el nmero de clases (o mtodos) que pueden acceder a otros
atributos de clase, una violacin de la encapsulacin.
Valores altos de APD conducen al potencial de efectos colaterales entre clases. Las pruebas deben disearse para garantizar el
descubrimiento de tales efectos colaterales.
Nmero de clases raz (NCR). Esta mtrica es un conteo de las distintas jerarquas de clase que se describen en el modelo de diseo.
Deben desarrollarse las suites de prueba para cada clase raz y la correspondiente jerarqua de clase. Conforme el NCR aumenta,
tambin aumenta el esfuerzo de prueba.
Fan-in (FIN). Cuando se usa en el contexto OO, el fan-in (abanico de entrada) en la jerarqua de herencia es un indicio de herencia
mltiple. FIN > 1 indica que una clase hereda sus atributos y operaciones de ms de una clase raz. FIN > 1 debe evitarse cuando sea
posible.