Beruflich Dokumente
Kultur Dokumente
Resumen
*
Ingeniero Electrnico de la Universidad El Bosque de Bogot, Ingeniero de Sistemas de la Universidad El Bosque de
Bogot, Especialista en Alta Gerencia de la Universidad Militar Nueva Granada de Bogot, magster en Ciencias de
Informacin y las Comunicaciones de la Universidad Distrital Francisco Jos de Caldas. Docente Investigador Funda-
cin Universitaria Konrad Lorenz, docente Universidad Distrital Francisco Jos de Caldas. Adscrito al grupo de inves-
tigacin Promente de la Fundacin Universitaria Konrad Lorenz. Correo electrnico: hectorarturo@yahoo.com.
Abstract
There are different processes in software engineering, that
have the goal presenting different techniques that consist in
the combination of processors that allow the guide in the de-
sign and development of software systems to a final product
whit quality. Some of these processes are sequential model,
spiral model, win win model, rational unified process (RUP),
extreme programming (XP) delphi method, metric version 3,
capability maturity model (CMM), personal software process
(PSP) and team software process (TSP)
Tambin llamado ciclo de vida clsico rrollo del software que empieza con el esta-
o modelo en cascada, sugiere un enfo- blecimiento de requisitos y pasa a las fases
que1 sistemtico, secuencial para el desa- de anlisis, diseo, codificacin, pruebas y
mantenimiento[1].
27
1 El modelo original propuesto por Winston Royce haca provisiones para ciclos de realimentacin, la gran mayora
lo aplica como si fuera estrictamente lineal.
27
Mantenimiento
vas y las restricciones, y se analizan e iden- na detalles suficientes para continuar. Des-
tifican los riesgos. Si el anlisis de riesgo graciadamente, esto raramente ocurre. En
indica que hay una incertidumbre en los re- realidad, el cliente y el desarrollador entran
quisitos, se puede usar la creacin de proto- en un proceso de negociacin, en el cual el
tipos en el cuadrante de ingeniera para dar cliente puede ser preguntado para sopesar
la funcionalidad, el rendimiento y otros pro-
asistencia, tanto al encargado de desarrollo
ductos o caractersticas del sistema frente al
como al cliente. ste evala el trabajo de in-
coste y al tiempo de comercializacin.
geniera (cuadrante de evaluacin de clien-
te) y sugiere modificaciones. Sobre la base de Las mejores negociaciones se esfuerzan en
los comentarios del cliente se produce la si- obtener gana-gana. Esto es, el cliente gana
guiente fase de planificacin y de anlisis de obteniendo el producto o sistema que satisfa-
riesgo; en cada bucle alrededor de la espiral, ce la mayor parte de sus necesidades y el de-
la culminacin del anlisis de riesgo resulta sarrollador gana trabajando para conseguir
en una decisin de seguir o no seguir. presupuestos y lograr una fecha de entrega
realista.
Con cada iteracin alrededor de la espiral
(comenzando en el centro y siguiendo hacia El modelo en espiral win-win define un con-
junto de actividades de negociacin al prin-
el exterior), se construyen sucesivas versio-
cipio de cada paso alrededor de la espiral.
nes del software, cada vez ms completa y, al
Adems del nfasis realizado en la negocia-
final, al propio sistema operacional.
cin inicial, el modelo en espiral win-win in-
troduce tres hitos en el proceso, llamados
Actualmente, el paradigma del modelo en es- puntos de fijacin, que ayudan a establecer
piral para la ingeniera de software es el en- la completitud de un ciclo alrededor de la es-
foque ms realista para el desarrollo de soft- piral y proporcionan hitos de decisin antes
ware y de sistemas a gran escala. Utiliza un de continuar el proyecto de software.
enfoque evolutivo para la ingeniera de soft-
ware, puesto que le permite al desarrollador En esencia, los puntos de fijacin representan
y al cliente entender y reaccionar conforme a tres visiones diferentes del progreso mien-
los riesgos en cada nivel evolutivo. De igual tras que el proyecto recorre la espiral. El pri-
forma, utiliza la creacin de prototipos como mer punto de fijacin, llamado objetivos del
ciclo de vida, define un conjunto de objeti-
un mecanismo de reduccin de riesgo, pero,
vos para cada actividad principal de inge-
lo que es ms importante permite a quien lo
niera de software. El segundo punto de fija-
desarrolla aplicar el enfoque de creacin de cin, llamado arquitectura del ciclo de vida,
prototipos en cualquier etapa de la evolucin establece los objetivos que se deben conocer,
de prototipos [2]. mientras que se define la arquitectura del
software y el sistema. La capacidad operati-
Modelo en espiral (win-win) va inicial es el tercer punto de fijacin y re-
presenta un conjunto de objetivos asociados
El modelo en espiral tratado anteriormente a la preparacin del software para la instala-
sugiere una actividad del marco de trabajo cin y distribucin [1].
que aborda la comunicacin con el cliente.
El objetivo de esta actividad es mostrar los RUP (Rational Unified Process)
requisitos del cliente. En un contexto ideal,
el desarrollador simplemente le pregunta al RUP (Rational Unified Process) es una me-
cliente lo que necesita y el cliente proporcio- todologa que permite construir software
29
29
en tiempo y precio justos. RUP utiliza UML cionar a tiempo y eficientemente. De cada
(Unified Modeling Language), para especifi- iteracin debe resultar una nueva versin
car, visualizar, construir y documentar siste- ejecutable para verificar claramente que to-
mas de software. Tambin representa un con- dos los productos generados actan en for-
junto de las mejores prcticas de ingeniera ma predecible y repetible [6].
que han probado ser exitosas en el modelo
de sistemas, reduciendo la complejidad y el Las iteraciones que se deben realizar en la
diseo de los procesos [7]. elaboracin de un proyecto se describen en
la siguiente figura.
Un proceso de Ingeniera de Software re-
quiere herramientas que apoyen todas las
actividades del ciclo de vida de los sistemas. Figura 3. Desarrollo interactivo
Como respuesta a ello Rational Software
Corp. pone a disposicin herramientas que
estn diseadas para hacer ms eficiente la
aplicacin de metodologas como el RUP, de
esa forma se permite la creacin de un am-
biente de desarrollo ptimo. El conjunto de
herramientas de Rational est basado en seis
principios fundamentales para el desarrollo
de software, denominadas las seis mejores
prcticas que son: administracin de los re-
querimientos, desarrollar en forma iterativa,
modelar visualmente, pruebas continuas, ar- Modelar software visualmente
quitecturas basadas en componentes y con-
trol de cambios [7]. Hacer modelos es importante, porque ayu-
da al equipo de desarrollo a visualizar, es-
Administrar los requerimientos pecificar, construir y documentar la estruc-
tura y comportamiento de la arquitectura de
El desafo de administrar los requerimientos un sistema de software. Si, adems, se utili-
de un sistema de software es que son dinmi- za un lenguaje de modelacin estndar, los
cos, es decir, pueden cambiar durante la vida distintos miembros del equipo de desarrollo
de un proyecto. Identificar los verdaderos re- pueden comunicar sus decisiones sin ambi-
querimientos de un sistema es delicado, de- gedades. Las herramientas de modelacin
bido a que hay que satisfacer objetivos eco- visual facilitan la administracin de los mo-
nmicos y tcnicos en un proceso continuo. delos. Permiten presentar el modelo en dis-
tintos niveles, ocultando los detalles. En re-
Desarrollar software iterativamente sumen, mejora la capacidad del equipo para
administrar la complejidad del software. [7]
El enfoque iterativo facilita la implementa-
cin de nuevos cambios tcticos de reque- Verificar continuamente la calidad
rimientos y caractersticas del cronograma. del software
Con este enfoque se fortalece tempranamen-
te la identificacin de los riesgos del proyec- Encontrar y reparar un problema de software
3030 to, cuando an es posible atacarlos y reac- despus de la implementacin, puede resul-
tar demasiado costoso. Por esta razn es im- Controlar los cambios del software
portante evaluar continuamente la calidad
de un sistema con respecto a su funcionali- Normalmente, un proyecto de sistemas, im-
dad, confiabilidad y performance. La activi- plica mltiples desarrolladores organizados
dad fundamental que involucra esta prcti- en diferentes equipos de trabajo. Posible-
ca es la revisin, la cual permite encontrar las mente, estos equipos de trabajo se encuen-
fallas antes de la puesta en produccin de un tran en diferentes sitios, trabajando en con-
sistema. Si, adems se utiliza la prctica de junto y en mltiples iteraciones, para lograr
desarrollar software iterativamente, se est nuevas versiones, productos y plataformas.
revisando la versin en cada iteracin, lo- Coordinar las actividades y los productos
grando as un proceso de evaluacin conti- que van generando los desarrolladores im-
nuo y cuantitativo [7]. plica establecer procesos repetibles para ad-
ministrar los cambios al software y otros ar-
Utilizar arquitecturas basadas en tefactos del desarrollo. Esta coordinacin
componentes permite una mejor asignacin de los recur-
sos, basada en las prioridades y en los ries-
El desarrollo basado en componentes es un gos del proyecto y administrar activamente
enfoque importante de arquitectura de soft- los cambios a travs de las iteraciones [7].
ware, porque permite la reutilizacin o adap-
tacin de componentes existentes de mi- Fases para el diseo y desarrollo
les de fuentes comercialmente disponibles.
Un componente de software se puede defi- Existen cuatro fases en los procesos RUP: ini-
nir como una pieza no trivial de software, cio, elaboracin, construccin y transicin.
un mdulo, un paquete o un subsistema que Estas fases representan el nfasis de las acti-
completa una funcin clara [7]. vidades dentro de cada iteracin [5].
31
31
En esta fase, la meta de las iteraciones es ayu- Es una de las metodologas de desarrollo de
dar al equipo de proyecto a decidir cules se- software ms exitosas en la actualidad, uti-
rn los objetivos verdaderos del proyecto [5]. lizadas para proyectos de corto plazo, corto
equipo y cuyo plazo de entrega era ayer. La
Elaboracin metodologa consiste en una programacin
rpida o extrema, cuya particularidad es te-
En esta fase se establece una comprensin ner como parte del equipo, al usuario final,
firme del problema que se solucionar, se es- pues es uno de los requisitos para llegar al
tablece la fundacin arquitectnica del soft- xito del proyecto.
ware, se apoya un plan detallado de itera- Caractersticas de XP, la metodologa se basa en:
ciones subsecuentes se refina el proceso y se Pruebas unitarias: se basa en las pruebas
elimina los altos riesgos. Las iteraciones pro- realizadas a los principales procesos, de
ducidas en esta fase estn, en el promedio, tal manera que adelantndonos en algo
perceptiblemente menos disponible que las hacia el futuro, podamos hacer prue-
producciones en la fase de inicio. Cada ite- bas de las fallas que pudieran ocurrir. Es
racin debe agregar nuevas caractersticas al como si nos adelantramos a obtener los
cuerpo del software [5]. posibles errores.
Refabricacin: se basa en la reutilizacin
Construccin de cdigo, para lo cual se crean patrones
o modelos estndares, siendo ms flexi-
Las iteraciones en la fase de la construccin ble al cambio.
no son muy diferentes de las iteraciones de la Programacin en pares: una particulari-
fase de la elaboracin. Cada iteracin agrega dad de esta metodologa es que propone
caractersticas al software. Durante esta fase, la programacin en pares, la cual consis-
se espera que las descripciones del caso del te en que dos desarrolladores participen
uso se estabilizarn hasta cierto punto, sin en un proyecto en una misma estacin de
embargo, en muchos dominios del proyecto trabajo. Cada miembro lleva a cabo la ac-
continuarn cambiando a travs del curso de cin que el otro no est haciendo en ese
la vida del proyecto [5]. momento. Es como el chofer y el copilo-
to: mientras uno conduce, el otro consul-
Transicin ta el mapa.
En esta fase, las iteraciones continan agre- El desarrollo bajo XP tiene caractersticas que lo
gando caractersticas al software. Sin embar- distinguen claramente de otras metodologas:
go, esas caractersticas agregan a un sistema Los diseadores y programadores se co-
que los usuarios estn utilizando activamen- munican efectivamente con el cliente y
te. Los artefactos producidos en esta fase son entre ellos mismos.
los mismos que los producidos en la fase de Los diseos del software se mantienen
construccin. El equipo simplemente mejora sencillos y libres de complejidad o pre-
el sistema hacia los objetivos que fueron fija- tensiones excesivas.
dos en el final de la fase del inicio [5]. Se obtiene retroalimentacin de usuarios y
clientes desde el primer da, gracias a las ba-
3232
Procesos de ingeniera de software
los criterios de aceptacin perjudica enorme- Este mtodo hace uso de un panel de ex-
mente a los desarrolladores, si es que no van pertos que de forma asincrnica no se re-
a recibir una compensacin econmica por el nen, intercambian opiniones a travs de co-
esfuerzo adicional requerido. rreo electrnico u otro medio impersonal,
son seleccionados en funcin de las reas
Se debe trabajar un mximo de 40 horas por de conocimiento requeridas por el proble-
semana. No se trabajan horas extras en dos ma. Lo anterior implica la nocin de que in-
semanas seguidas. Si esto ocurre, probable- dividuos bien informados, haciendo uso de
mente, est ocurriendo un problema que se su experiencia e introspeccin, estn mejor
debe corregir. El trabajo extra desmotiva al equipados para predecir el futuro que las
equipo. Los proyectos que requieren traba- aproximaciones tericas o la extrapolacin
jo extra para intentar cumplir con los plazos de tendencias [11]. Este mtodo asume que a
suelen ser entregados con retraso. En lugar travs de repetidos cuestionarios, los exper-
de esto, se puede realizar el juego de la pla- tos se acercarn a un punto en comn que
nificacin para cambiar el mbito del proyec- ser la mejor respuesta, lo cual es definido
to o la fecha de entrega. por indicadores estadsticos.
El mtodo Delphi consiste en una serie de Este mtodo incluye las siguientes etapas
interrogaciones repetidas, usualmente por [12]:
medio de cuestionarios a un grupo de indi- Formacin de un equipo para asumir y
viduos, cuyas opiniones o juicios son de in- monitorear un tema especfico.
ters. Despus de un interrogatorio inicial a Seleccin de uno o ms paneles para par-
cada individuo, cada subsiguiente interroga- ticipar en el ejercicio. Frecuentemente,
torio es acompaado por informacin consi- los panelistas son expertos en el rea por
derando las respuestas precedentes, usual- ser investigada.
mente presentadas annimamente. De esta Desarrollo del primer cuestionario
manera, el individuo es alentado a recon- Delphi.
siderar, de ser apropiado, o cambiar su res- Prueba del cuestionario para asegurar el
puesta previa a la luz de las respuestas de uso de palabras correctas, es decir, por
otros miembros del grupo. Despus de dos ejemplo, para evitar divagar o caer en
o tres vueltas, la posicin del grupo es deter- ambigedades.
minada por promedio [10] Transmisin del primer cuestionario a
los panelistas.
Generalidades Anlisis de la primera serie de respuestas.
Preparacin del segundo cuestionario
El mtodo Delphi es una tcnica para la re- Delphi y sus posibles pruebas.
solucin de problemas, toma de decisiones y Transmisin de la segunda ronda de
predicciones de escenarios desarrollado por cuestionarios a los panelistas.
la corporacin Rand de la inteligencia mili- Anlisis de la segunda ronda de respues-
tar de los Estados Unidos. Fue desarrollado tas. Los pasos del 7 al 9 son repetidos
durante la Guerra Fra y, al parecer, toma su hasta tanto se alcance la estabilidad ne-
nombre de la localizacin del mtico orculo cesaria en los resultados.
3434 griego, Delfos.
Preparacin de un reporte por el equipo En este proceso participan, por un lado, los
de anlisis para presentar las conclusio- responsables de los procesos de la organiza-
nes del ejercicio. cin con una visin estratgica y, por otro, los
profesionales de ingeniera de software [14].
Mtrica versin 3
Como productos finales del proceso se
Estructura de Mtrica versin 3 obtienen:
-- Catlogo de requisitos de PSI.
Ha tomado como referencia el modelo de ci- Arquitectura de informacin, que se compo-
clo de vida propuesto en la norma ISO 12207, ne de:
distinguiendo procesos principales (plani- Modelo de informacin.
ficacin, desarrollo y mantenimiento) e in- Modelo de sistemas de informacin.
terfaces (gestin de proyectos, aseguramien- Arquitectura tecnolgica.
to de la calidad, seguridad y gestin de la Plan de Proyectos.
configuracin), cuyo objetivo es dar sopor- Plan de mantenimiento del PSI.
te al proceso en los aspectos organizativos.
Ha sido concebida para abarcar el desarro- Proceso de desarrollo de sistemas
llo completo de sistemas de informacin, sea de informacin
cual sea su complejidad y magnitud, me-
diante un enfoque orientado al proceso. Contiene todas las actividades y tareas que se
deben llevar a cabo para desarrollar un siste-
La metodologa descompone cada uno de ma, cubriendo desde el anlisis de requisitos
los procesos en actividades y stas, a su vez, hasta la instalacin del software. Este proce-
en tareas. Para cada tarea se describe su con- so es el ms importante de los identificados
tenido haciendo referencia a sus principa- en el ciclo de vida de un sistema y se relacio-
les acciones, productos, tcnicas, prcticas y na con todos los dems.
participantes.
Se ha subdivido en cinco procesos:
Procesos principales de Mtrica 3 1. Estudio de Viabilidad del Sistema (EVS).
El propsito de este proceso es analizar
Los procesos de la estructura principal de un conjunto concreto de necesidades,
Mtrica 3 son los siguientes: con la idea de proponer una solucin a
Planificacin de sistemas de informacin. corto plazo. Los resultados del EVS cons-
Desarrollo de sistemas de informacin. tituirn la base para tomar la decisin de
Mantenimiento de sistemas de seguir adelante o abandonar.
informacin. 2. Anlisis del Sistema de Informacin (ASI).
El propsito de este proceso es conseguir
Proceso de planificacin de sistemas la especificacin detallada del sistema de
de informacin informacin, a travs de un catlogo de
requisitos y una serie de modelos que cu-
Su objetivo es proporcionar un marco estra- bran las necesidades de informacin de
tgico de referencia para los sistemas de in- los usuarios para los que se desarrollar
formacin de un determinado mbito de la el sistema de informacin y que sern la
organizacin. La perspectiva del plan debe entrada para el proceso del diseo del sis-
ser estratgica y operativa, no tecnolgica. tema de informacin. Se elabora el pro- 35
35
Nivel 5. Optimizado. Organizaciones con bitos del trabajo de los ingenieros, los cuales
innovaciones tecnolgicas y procesos de determinan en gran parte el resultado del de-
manejo al cambio. sarrollo de software. El proceso personal de
software PSP (el cmo) puede ser utilizado
Los niveles 2, 3, 4 y 5 describen organizacio- por los ingenieros como una gua a un acer-
nes con sucesivos niveles mejores de pro- camiento disciplinado y estructurado al de-
cesos de madurez de software. La primera sarrollo de software.
meta de las organizaciones es alcanzar el ni-
vel 3 de madurez. El PSP ensea a los ingenieros lo siguiente:
Cmo manejar la calidad de sus
El modelo CMM tiene las siguientes proyectos.
desventajas: Hacer la cosas simples para dar
Est soportado sobre el modelo en soluciones.
cascada. A mejorar tiempos de estimacin y
No hace nfasis sobre los procesos de ar- planeacin.
quitectura y diseo. Reducir los defectos de los productos.
Tiene mtodos policivos en las revisio-
nes, inspecciones y en el aseguramiento El PSP puede aplicar a muchas partes del de-
de calidad. sarrollo de software, incluyendo:
Hay una sobre documentacin, ya que Desarrollo de programas.
se considera que entre ms detalles es Definicin de requisitos.
mejor. Estructura de la documentacin.
Hay conflictos entre el modelo CMM y Pruebas del sistema.
el ISO9001. Mantenimiento de los sistemas.
Proliferacin de modelos: modelos SE- Desarrollo de sistemas de software
CMM, desarrollo del producto integrado grandes.
IDP-CMM, adquisicin de software SA-
CMM y recursos humanos People-CMM. Este proceso se centr en una persona y se ol-
vid que en los proceso de desarrollo inter-
vienen ms de una persona.
Como respuesta a lo anterior, el SEI desarro-
ll la integracin de modelo de madurez de
Proceso de software del equipo (TSP)
capacidad CMMI.
37
El 70% de los costos de desarrollo en un pro-
yecto, lo constituyen las habilidades y los h- 37
El proceso del software del equipo (TSP), jun- arquitectura basada en componentes y un
to con el proceso personal del software PSP, control de cambios del software.
ayuda al ingeniero de alto rendimiento a:
Aseguramiento de la calidad de los pro- La metodologa XP es exitosa porque enfa-
ductos de software. tiza la satisfaccin del cliente y promueve el
Crear productos de software seguros. trabajo en equipo. Las actividades improduc-
Mejora el proceso de gerencia en una tivas han sido eliminadas para reducir costos
organizacin. y frustraciones. Esta metodologa ha sido di-
seada para solucionar el eterno problema
Los grupos de la ingeniera que utilizan el del desarrollo de software por encargo, es
TSP aplican conceptos integrados del desa- decir, entregar el resultado que el cliente ne-
rrollo de sistemas orientados al software, lle- cesita a tiempo.
vando al equipo a:
La metodologa Mtrica versin 3 proporcio-
Establecer metas.
na un conjunto de mtodos y tcnicas que le
Definir papeles del equipo.
permite a los diseadores de sistemas de in-
Determinacin de riesgos.
formacin desarrollar los procesos del ciclo
Producir un plan del equipo. de vida de un proyecto informtico. A fin de
Los equipos pueden estar integrados por mejorar la productividad y asegurar la cali-
slo desarrolladores o equipos integrados dad de los productos resultantes, la metodo-
que participan en la obtencin del producto. loga est soportada por herramientas dis-
Los equipos pueden estar integrados de 3 a ponibles en el mercado que automatizan en
mayor o menor grado su utilizacin. En cual-
20 personas.
quier caso, no todos los productos resultan-
tes de cada tarea son susceptibles de obtener-
Conclusiones
se de forma automatizada.
39
39