Subido por Gerardo BarreraP

Estudio comparativo sobre las principales metodologias orientadas a objetos en el desarrollo de software

Anuncio
ESTUDIO COMPARATIVO SOBRE LAS
PRINCIPALES METODOLOGÍAS PESADAS Y
ORIENTADAS A OBJETO EN EL
DESARROLLO DE SOFTWARE
Ing. Yunia Reyes González1, Ing. Lisbet M. González Bravo2, Msc. Yadira Ruiz Constanten3
RESUMEN
Para la construcción de cualquier software se hace necesario
el uso de metodologías de desarrollo que guíen el proceso
completo de elaboración del producto. De acuerdo a las
características de las metodologías se han identificado dos
corrientes principales: las que se pueden clasificar como
metodologías ágiles y las metodologías pesadas. En los
proyectos productivos que se desarrollan en la Universidad
de las Ciencias Informáticas (UCI) es común el uso de
ambas tendencias en dependencia de las características del
software y el equipo de desarrollo a cargo del mismo. A
pesar de la diversidad de metodologías representativas de
las clasificaciones anteriormente mencionadas, en los
proyectos de la UCI que se guían por metodologías pesadas,
se emplea generalmente el Proceso Unificado de Rational
(RUP). Este trabajo pretende realizar un estudio sobre las
principales metodologías pesadas y orientadas a objetos
(OO), con el propósito de servir de consulta y ayuda a los
equipos de desarrollo de software, para la elección de la
metodología más adecuada de acuerdo a las características
de cada proyecto. De esta forma se dispondría de un
conocimiento previo y organizado sobre estas metodologías
representativas de la corriente pesada, a fin de tomar la
decisión correcta.
Palabras claves: metodología, orientadas a objeto,
pesadas.
ABSTRACT
For the construction of any software is made necessary by
the use of development methodologies to guide the entire
process of product development. According to the
characteristics of the methodologies have been identified
two main streams: those that can be classified as agile
methodologies and heavy methodologies. In the productive
projects which are developed at the University of
Informatics Science (UCI) is common the use of the two
trends depending on the characteristics of software and
development team in charge of it. Despite the diversity of
methodologies representative of the classifications above, in
the projects of the UCI, which are guided by heavy
methodologies are generally used Rational Unified Process
(RUP). This paper aims to conduct a survey of key heavy
and object-oriented (OO) methodologies, with the aim of
serving as consultation and assistance to the teams of
software development, for choosing the most appropriate
methodology according to the characteristics of each
project. This would have a prior and organized knowledge
about these methodologies representative of the current
heavy, to take the right decision.
Keywords: heavy, methodology, object-oriented.
1. INTRODUCCIÓN
En todo proceso de desarrollo de software y por la urgente
necesidad de obtener productos de alta calidad que
satisfagan a plenitud las demandas de los clientes, se hace
imprescindible el estudio a profundidad de la diversidad de
metodologías de desarrollo de software que son esenciales
para el éxito de los proyectos, permitiendo potenciar los
grupos de desarrollos involucrados en tales temáticas.
En tal sentido, se hace importante la elección de una
metodología adecuada y ajustada al equipo de desarrollo
que permita la flexibilidad necesaria para lograr los
objetivos trazados al concebirse el proyecto, superando
incluso las expectativas iniciales de los clientes.
1
Sin dudas el éxito del producto, depende en gran medida, de
la acogida por el equipo de desarrollo que tenga la
metodología seleccionada.
En la Universidad de Ciencias Informáticas (UCI), se
desarrollan un conjunto de proyectos productivos que, como
en toda buena práctica de software, se rigen por
metodologías de desarrollo. En el caso de los proyectos de
gran dimensión cuyo resultado es a largo plazo y que
requieren una exquisita documentación y planificación se
usan metodologías tradicionales, aunque es generalizado en
estos casos el desarrollo de software guiados por el Proceso
Unificado de Rational (RUP) como metodología pesada y
orientada a objetos.
Actualmente no se cuenta con un material de consulta que
contenga las características de las principales metodologías
de desarrollo de software pesadas y orientadas a objetos que
permitan a un equipo de desarrollo conocer varias
metodologías para seleccionar la que más se adecúa al
proyecto que se debe desarrollar. Esta información se
encuentra disponible en varias fuentes de Internet, pero no
concentrada en una sola guía a la que pueda accederse
rápidamente.
Por tal motivo y por la importancia que reviste el tema de la
selección de la metodología para el desarrollo de software,
es propósito de esta investigación profundizar en el estudio
de las metodologías tradicionales y orientadas a objetos para
establecer un estudio comparativo que permita a todo un
equipo de proyecto determinar cuál es la metodología más
idónea a la hora de desarrollar el software. Por ello se
pretende exponer las características de las metodologías más
representativas de la corriente pesada y por demás orientada
a objetos.
II. DESARROLLO
¿Qué es una metodología de desarrollo de software?
Una metodología de desarrollo de software es un conjunto
de procedimientos, técnicas, herramientas y un soporte
documental que ayuda a los desarrolladores a realizar nuevo
software. La metodología indica cómo hay que obtener los
distintos productos parciales y finales.
Son características deseables de una metodología las
siguientes:
9 Existencia de reglas predefinidas.
9 Cobertura total del ciclo de desarrollo.
9 Verificaciones intermedias.
9 Planificación y control.
9
9
9
9
9
9
9
Comunicación efectiva.
Utilización sobre un abanico amplio de proyectos.
Fácil formación.
Herramientas CASE.
Actividades que mejoren el proceso de desarrollo.
Soporte al mantenimiento.
Soporte de la reutilización de software.
¿Cómo elegir una metodología?
En muchas ocasiones no se sigue una metodología cuando
se trata de proyectos pequeños de poco tiempo de duración,
sin embargo cuando se consideran proyectos de mayor
envergadura se hace imprescindible adoptar una
metodología que se ajuste a las necesidades tanto de los
clientes como del equipo de desarrollo.
Al elegir la metodología para guiar el proceso de desarrollo
que se va a emprender se debe tener en cuenta aspectos
como: el tiempo estimado de duración, la dimensión o el
tamaño del proyecto y la complejidad del mismo.
Clasificación de las metodologías
La comparación y clasificación de las metodologías resulta
una actividad compleja si se tiene en cuenta la diversidad de
propuestas y diferencias en el nivel de detalle, información
disponible y alcance de cada una de ellas.
Siguiendo como criterio de clasificación, las notaciones
empleadas para especificar artefactos producidos en
actividades de análisis y diseño, se pueden clasificar las
metodologías en dos grupos: Metodologías Estructuradas y
Metodologías Orientadas a Objetos.
Si se tiene en cuenta su filosofía de desarrollo, entonces se
pueden definir dos fuertes corrientes de metodologías:
Metodologías Tradicionales, conocidas también como
metodologías pesadas, las cuales ponen especial énfasis en
la planificación y control del proyecto, así como en la
especificación precisa de requisitos y el modelado; y las
denominadas Metodologías Ágiles, dirigidas sobre todo a
equipos de desarrollo pequeños, con mayor fuerza en
aspectos humanos asociados al trabajo en equipo e
involucran al cliente en el proceso como parte activa del
propio equipo de desarrollo y están orientadas sobre todo a
la generación de código con ciclos cortos de desarrollo.
La diferencia más notable entre estos dos grupos es que
mientras los métodos pesados intentan obtener los
resultados apoyándose principalmente en la documentación
ordenada, los métodos ligeros o ágiles tienen como base de
2
sus resultados la comunicación e interacción directa con
todos los usuarios involucrados en el proceso.
Se profundiza a continuación en las especificidades de las
metodologías tradicionales y a su vez, orientadas a objetos
que son el objetivo de esta investigación.
Metodologías tradicionales
Las metodologías tradicionales o clásicas exigen una
abundante y exhaustiva documentación, centrando su
atención en una detallada planificación, desde la fase inicial
del proyecto. De ahí que pueda decirse que imponen una
disciplina de trabajo durante todo el proceso de desarrollo
de software con la intención de obtener un producto más
predecible y eficiente. Se ajustan a proyectos de largo plazo
de duración y a entornos donde los requisitos son
predecibles, por lo que se consideran más predictivas que
adaptativas.
El gran auge de los lenguajes de programación orientados a
objetos y su amplia acogida en el mundo de la producción
de software y servicios informáticos sin lugar a dudas ha
propiciado el impulso de la filosofía de orientación a objetos
y con ello de las metodologías Orientadas a Objetos que
tienen su basamento en el uso de lenguajes de programación
de similar clasificación.
En la UCI el desarrollo de software se basa en lenguajes de
programación orientados a objetos y por ende se precisa de
metodologías con igual filosofía.
Metodologías Orientadas a Objetos
La esencia del desarrollo orientado a objetos es la
identificación y organización de conceptos del dominio de
la aplicación y no tanto de su representación final en un
lenguaje de programación.
Consideraciones sobre las metodologías Orientadas a
Objetos:
9 Se eliminan fronteras entre fases debido a la
naturaleza iterativa del desarrollo orientado al
objeto.
9 Aparece una nueva forma de concebir los
lenguajes de programación y su uso al incorporarse
bibliotecas de clases y otros componentes
reutilizables.
9 Hay un alto grado de iteración y solapamiento, lo
que lleva a una forma de trabajo muy dinámica.
Aspectos positivos de las metodologías orientadas a objetos:
9 Son interactivas e incrementales.
9 Fácil de dividir el sistema en varios subsistemas
independientes.
9 Se fomenta la reutilización de componentes.
Ejemplos comparativos
Se impone, entonces una comparación teniendo en cuenta
las principales características de las metodologías más
representativas guiadas por métodos pesados y orientadas a
objetos.
Técnica de modelado en Objetos (OMT)
La metodología OMT (Object Modeling Technique) fue
creada por James Rumbaugh y Michael Blaha en 1991.
OMT es una de las metodologías de análisis y diseño
orientadas a objetos, más maduras y eficientes que existen
en la actualidad. La gran virtud que aporta esta metodología
es su carácter de abierta (no propietaria), que le permite ser
de dominio público y, en consecuencia, sobrevivir con
enorme vitalidad. Esto facilita su evolución para acoplarse a
todas las necesidades actuales y futuras de la ingeniería de
software.
En ella se destacan 4 fases: Análisis, Diseño del Sistema,
Diseño de Objetos e Implementación y emplea 3 modelos
para describir un sistema: Modelo de objetos, Modelo
dinámico y Modelo funcional.
9 Modelo de Objetos. Se define como un diagrama
de objetos más un diccionario de datos. El
diagrama de objetos muestra clases y sus
relaciones (generalización, agregación, asociación,
instanciación). El diccionario de datos es el detalle
de las clases en el diagrama de objetos.
9 Modelo dinámico. Se define como un conjunto de
diagramas de estado más un diagrama de flujo de
eventos global.
9 Modelo funcional. Es un diagrama de flujo con
restricciones.
Etapas y definición de entregas
Análisis
9 Documento de análisis, que incluye:
•
Descripción del problema
•
Modelo de Objetos
•
Modelo dinámico
• Modelo funcional
1) Diseño del sistema
9 Definición de subsistemas
3
2) Diseño de objetos
9 Documento de diseño, que incluye versiones
detalladas de los modelos de objetos, dinámico y
funcional.
3) Implementación
9 Diseño de bases de datos, si se requieren.
9 Código.
Esta metodología es fuerte en el análisis por la clara
notación de relaciones y estructuras estáticas y débil en el
diseño, de ahí que no sea la más idónea para emplear en
proyectos donde se precisa de gran nivel de detalle en el
modelado del diseño del sistema.
Es muy fácil de aprender ya que para el 90% de casi todos
los proyectos, ocupan casi todo el mismo subconjunto de
notaciones, además debido a su sencillez se ha extendido a
casi todo los niveles de ingeniería de software, pero esta
simplicidad del método hace posible que en algunos casos
(sobre todo de sistemas complejos) no se puedan modelar
con este sistema.
Objectory
ObjectOry, una metodologia basada en el paradigma de
orientación a objetos, fue creada por la compañía Objectory
Systems, fundada en 1987 por Jacobson. Es un proceso
organizado para la construcción industrial de software. Este
proceso de diseño está guiado por casos de uso, una técnica
que centra el entendimiento de un sistema en la forma en la
cual es usado.
En esta metodología se destacan elementos como:
9 Modelo de Casos de Uso: Se basa en la
descripción de elementos o usuarios externos al
sistema (actores) y funcionalidad del sistema
(casos de uso).
9 Modelo de objetos: Representa la estructura
estática de los objetos. Puede contener objetos
entidad, de interfaz y de control, entre otros tipos;
y relaciones de herencia, y de comunicación entre
otras.
9 Diagrama de interacción. Muestran la secuencia
de eventos entre paquetes u objetos necesarios para
realizar un caso de uso.
9 Diagrama de estado. Muestra los estados internos
de un objeto complejo.
Algunos de los conceptos más importantes de esta
metodología son:
9
Objeto Entidad: Representa información del
sistema que debe sobrevivir cierto período de
tiempo. Es un refinamiento y formalización del
modelo de análisis. Su principal objetivo es
adecuar el modelo de análisis al ambiente de
implementación-tiempo, por ejemplo, un caso de
uso.
9 Objeto de Interfaz: Modela información y
comportamiento que es dependiente de la interfaz
actual del sistema.
9 Objeto de Control: modela funcionalidad que no
corresponde a ningún objeto en particular y que se
presenta en algunos casos de uso. Estos objetos
generalmente operan sobre varios objetos entidad,
realizan algún algoritmo y retornan algún resultado
a un objeto de interfaz.
9 Paquete: Módulo que contiene código, traducible
a un módulo en el lenguaje de implementación.
9 Unidad: En pruebas, desde una clase hasta un
subsistema.
Etapas y definición de entregas
Modelo de requerimientos
9 Modelo de Casos de Uso con interfaces de usuario
del sistema.
9 Modelo de objetos del dominio.
4) Modelo de análisis
9 Modelo de objetos con objetos Entidades, de
Interfaz y de Control
5) Modelo de diseño
9 Modelo de paquetes. Definición de módulos en la
implementación y detalle de las clases de diseño en
cada uno de ellos.
6) Implementación
9 Código de las clases, organizado por paquetes.
7) Pruebas
9 Definición de pruebas de unidad
9 Definición de pruebas de protocolo de clases.
Análisis y modelado de rol orientado a objetos
(OORAM):
El Método OORAM se remonta a principios de los años ’70
e introduce el concepto de modelo de roles como principal
mecanismo de abstracción.
4
El modelo de roles describe los objetos que participan en
una actividad y las interacciones entre ellos. El método
OOram se define como “un marco de referencia para una
familia de metodologías orientadas-a-objetos”, tras lo que se
muestran las mejoras que el método introduce en las tres
dimensiones típicas que componen el grueso de
metodologías:
9 Tecnología (conceptos, notación, técnicas y
herramientas): donde se muestran el poderoso
modelado de roles en análisis y su integración
posterior -síntesis en OOram-, junto con los
conceptos básicos (roles, puertos -que anuncian la
visibilidad de un rol respecto de otro-, etc.) y
algunas herramientas. Es interesante resaltar la
referencia de distintos conceptos a abstracciones:
Objeto es “es”, como rol es “por qué”, mientras
que tipo es “qué” y clase es “cómo”.
9 Proceso con Entregables (la secuencia de pasos y
la documentación que los acompaña): OOram
distingue tres distintos procesos: creación del
modelo, desarrollo del sistema y construcción de
piezas reutilizables.
9 Organización (las maneras en que la empresa
acoge lo anterior): aquí se explicitan las
dificultades de diseñar para reutilizar y las ventajas
que supone el uso de cadenas de valor.
El modelo de roles es una abstracción del modelo de objetos
donde se reconoce un patrón de objetos y se describe como
un correspondiente patrón de roles y es que la clase se
apoya en las capacidades (funcionalidad absoluta) de los
objetos, mientras que el rol se apoya en la posición y
responsabilidades de un objeto respecto de una estructura de
otros tantos, que es precisamente lo que percibimos cuando
examinamos un conjunto de entidades/objetos en
colaboración. El modelo de roles no representa la
descripción de la estructura entera de objetos observada,
sino más bien de porciones de la misma, segmentadas
temporalmente, denominadas “áreas de interés”, y que
muestran fenómenos colaborativos de interés. Resulta, así,
que un modelo de roles es un modelo orientado-a-objetos de
una estructura de objetos.
OOram plantea tres distintas perspectivas: contextual,
externa e interna, y provee diferentes “vistas” aplicables
según mejor convenga, siguiendo la acertada idea de que no
hay que usar todos los recursos para describir un modelo, y
que determinadas vistas, reunidas en un subconjunto
concreto, tornan el modelo más comprensible que otras. Así
OOram provee las siguientes vistas:
9
9
9
9
9
9
9
9
9
9
Vista del Área de Interés.
Vista del Estímulo-Respuesta.
Vista de la Lista de Roles.
Vista Semántica.
Vista de Colaboraciones.
Vista de Escenario.
Vista de Interfaces.
Vista de Procesos.
Vista de Diagramas de Estado.
Vista de Especificación de Métodos.
Booch
Booch es una metodología desarrollada por Grady Booch en
1996. Cubre las fases de análisis y diseño de un sistema
orientado a objetos. Se enfoca principalmente al diseño de
estado de un proyecto por la riqueza de su notación
reflejada en las interacciones entre entidades. Soporta el
desarrollo iterativo e incremental de un sistema. En muchas
ocasiones es criticada por el uso de muchos símbolos
distintos.
La metodología de Booch usa los siguientes tipos de
diagramas para describir las decisiones de análisis y diseño,
tácticas y estratégicas, que deben ser hechas en la creación
de un sistema orientado por objetos.
9 Diagrama de Clases. Consiste en un conjunto de
clases y relaciones entre ellas. Puede contener
clases, clases paramétricas, utilidades y metaclases.
Los tipos de relaciones son asociaciones,
contenencia, herencia, uso, instanciación y
metaclase.
9 Especificación de Clases. Es usado para capturar
toda la información importante acerca de una clase
en formato texto.
9 Diagrama de Categorías. Muestra clases
agrupadas lógicamente bajo varias categorías.
9 Diagramas de transición de estados: Muestra el
tránsito de los objetos de uno a otro estado.
9 Diagramas de Objetos. Muestra objetos en el
sistema y su relación lógica. Pueden ser diagramas
de escenario, donde se muestra cómo colaboran los
objetos en cierta operación; o diagramas de
instancia, que muestra la existencia de los objetos y
las relaciones estructurales entre ellos.
5
9
Diagramas de Tiempo. Aumenta un diagrama de
objetos con información acerca de eventos externos
y tiempo de llegada de los mensajes.
9 Diagramas de módulos. Muestra la localización
de objetos y clases en módulos del diseño físico de
un sistema. Un diagrama de módulos representa
parte o la totalidad de la arquitectura de módulos
del sistema.
9 Subsistemas. Un subsistema es una agrupación de
módulos, útil en modelos de gran escala.
9 Diagramas de procesos. Muestra la localización
de los procesos en los distintos procesadores de un
ambiente distribuido.
Etapas y definición de entregas
Análisis de requerimientos
9 Funciones primarias del sistema: Principales
entradas y salidas del sistema, referencias a
políticas, sistemas existentes o procedimientos.
9 Conjunto de mecanismos claves que el sistema
debe proveer: estado de entrada, estado de salida y
estados esperados.
Análisis de Dominio
9 Diagrama de clases con las abstracciones clave,
identificando las clases del dominio claves y sus
relaciones.
9 Especificación de las clases.
9 Vistas de herencia. Diagramas de clases con este
tipo de relaciones.
9 Diagramas de escenarios de objetos.
9 Especificación de objetos, que relacionan objetos y
sus clases.
Diseño
9 Descripción de arquitectura, que describe las
decisiones más importantes de diseño como son el
conjunto de procesos, manejadores de bases de
datos, sistemas operativos, lenguajes.
9 Descripciones de prototipo, que describen las
metas y contenido de las implementaciones
sucesivas de prototipos, su proceso de desarrollo y
la forma de probar requerimientos.
9 Diagramas de Categorías.
9 Diagramas de clases en diseño, detallan las
abstracciones de análisis con características de
implementación.
9
9
9
Diagramas de objetos en diseño, muestran las
operaciones necesarias para desarrollar una
operación.
Nuevas especificaciones.
Especificaciones de clases corregidas, muestra la
especificación completa de los métodos con
algoritmos complicados, la implementación de
relaciones y el tipo de atributos.
Rational Unified Process (RUP)
RUP es un marco de trabajo genérico que puede
especializarse para una gran variedad de sistemas de
software, para diferentes áreas de aplicación, diferentes
tipos de organizaciones, diferentes niveles de aptitud y
diferentes tamaños de proyectos.
RUP divide el proceso de desarrollo en ciclos, teniendo un
producto funcional al final de cada ciclo, cada ciclo se
divide en fases que finalizan con un hito donde se debe
tomar una decisión importante, las cuatro fases que incluye
RUP son:
9 Inicio, el objetivo en esta etapa es determinar la
visión del proyecto.
9 Elaboración, en esta etapa el objetivo es
determinar la arquitectura óptima.
9 Construcción, en esta etapa el objetivo es obtener
la capacidad operacional inicial.
9 Transición, el objetivo es llegar a obtener el
release (versión terminada y estable de una
aplicación informática) del proyecto.
Vale mencionar que el ciclo de vida que se desarrolla por
cada iteración, es llevada bajo dos disciplinas:
Disciplina de Desarrollo
9 Modelamiento del Negocio: Describe los procesos
de negocio, identificando quiénes participan y las
actividades que requieren automatización.
9 Requerimientos: Define qué es lo que el sistema
debe hacer, para lo cual se identifican las
funcionalidades requeridas y las restricciones que
se imponen.
9 Análisis y Diseño: Describe cómo el sistema será
realizado a partir de la funcionalidad prevista y las
restricciones impuestas (requerimientos), por lo
que indica con precisión lo que se debe programar.
9 Implementación: Define cómo se organizan las
clases y objetos en componentes, cuáles nodos se
6
utilizarán y la ubicación en ellos de los
componentes y la estructura de las capas de la
aplicación.
9 Pruebas: Busca los defectos a lo largo del ciclo de
vida.
Disciplina de Soporte
9 Administración de Configuración y Cambios:
Describe cómo controlar los elementos producidos
por todos los integrantes del equipo de proyecto en
cuanto a utilización/actualización concurrente de
elementos, control de versiones.
9 Administración
del
proyecto:
Involucra
actividades con las que se busca producir un
producto que satisfaga las necesidades de los
clientes.
9 Ambiente: Contiene actividades que describen los
procesos y herramientas que soportarán el equipo
de trabajo del proyecto; así como el procedimiento
para implementar el proceso en una organización.
9 Instalación: Produce release del producto y realiza
actividades para entregar el software a los usuarios
finales.
RUP está basado principalmente en tres características
fundamentales:
9 Dirigido por casos de uso: Un caso de uso es un
fragmento de funcionalidad del sistema que
expresa necesidades del usuario y produce un
resultado de valor para este. Todos los modelos
que se obtienen, como resultado de los diferentes
flujos de trabajo por los que transita todo el
proceso de desarrollo del software, representan la
realización de los casos de uso obtenidos cuando se
modelan las funcionalidades del sistema.
9 Centrado en la arquitectura: La arquitectura de
un sistema es la organización o estructura de sus
partes más relevantes. Muestra una visión del
sistema completo, describe los elementos del
modelo que son más importantes para su
construcción. El modelo de arquitectura se
representa a través de vistas en las que se incluyen
los diagramas de UML.
9 Iterativo e Incremental: Para facilitar el trabajo,
el proyecto se realiza mediante iteraciones que
terminan con un incremento. Cada iteración
comprende diferentes disciplinas y de esta resulta
una versión de un producto que irá creciendo en
cada iteración.
Como RUP es un proceso, en su modelación define como
sus principales elementos:
9 Actividades (“cómo”), Es una tarea que tiene un
propósito claro, es realizada por un trabajador y
manipula elementos.
9 Trabajadores
(“quién”),
Definen
el
comportamiento y responsabilidades (rol) de un
individuo, grupo de individuos, que trabajan en
conjunto como un equipo. Ellos realizan las
actividades y son propietarios de elementos.
Vienen a ser las personas o entes involucrados en
cada proceso.
9 Artefactos (”qué”), Un artefacto puede ser un
documento, un modelo, o un elemento de modelo,
o sea productos tangibles que son producidos,
modificados y usados por las actividades.
9 Flujo de actividades (“cuándo”), Secuencia de
actividades realizadas por trabajadores y que
produce un resultado de valor observable.
Una particularidad de esta metodología es que, en cada ciclo
de iteración, se hace exigente el uso de artefactos, siendo
por este motivo, una de las metodologías más importantes
para alcanzar un grado de certificación en el desarrollo del
software.
Ventajas
9 Evaluación en cada fase que permite cambios de
objetivos.
9 Es sencillo, ya que sigue los pasos intuitivos
necesarios a la hora de desarrollar el software.
9 Seguimiento detallado en cada una de las fases.
RUP concibe una disciplina dedicada específicamente a la
Gestión de Proyectos, esto es particularmente importante
para los equipos de desarrollo con una dirección inexperta y
que tiende a ser inestable. Además las características del
software, su complejidad y dimensión exigen de una
planificación y chequeo constantes, que son de las premisas
de RUP.
Se considera de gran importancia el modelado de procesos
del negocio en la fase de inicio. Esta es la base del logro de
un producto que cumpla con las necesidades de los clientes
y para ello define un grupo de artefactos que ayudan a
documentar y comprender lo que debe ser modelado como
parte del sistema.
Por lo general en cada una de las metodologías orientadas a
objetos citadas anteriormente, se le brinda especial interés a
un determinado proceso como puede ser análisis en OMT,
7
diseño si se aplica la de Booch o el modelo de roles
siguiendo OORAM, RUP sin llegar a dedicarle especial
interés a una disciplina en específico, define con exactitud
en cada una de las 9 que propone, los roles involucrados y
los artefactos que deben producir cada uno de los
trabajadores. Se debe entonces estudiar las características
del proyecto que se pretende desarrollar y a partir de ahí
hacer una evaluación sobre qué metodología elegir para
optimizar tiempo, facilitar la comunicación entre todo el
equipo de desarrollo y garantizar la calidad del producto
final.
III. CONCLUSIONES
Con esta investigación se tiene un compendio sobre las
principales metodologías tradicionales orientadas a objetos
que son representativas de esta corriente. Este estudio
servirá de guía de consulta a los futuros equipos de
desarrollo en la toma de decisiones sobre qué metodología
de esta clasificación se debe elegir en dependencia de las
características del proyecto que se desarrolle. Este es un
punto de gran importancia si se tiene en cuenta que la
mayoría de los proyectos requieren de metodologías
orientadas a objetos y guiadas por métodos pesados, por la
complejidad del producto a desarrollar que implica a un
gran número de estudiantes y profesores, en muchas
ocasiones inexpertos y para lo cual necesitan una
metodología que exija una detallada planificación y
abundante documentación.
Garzás, Javier. Revisión del Proceso de Desarrollo de
Software. Disponible en:
http://jgarzas.googlepages.com/Jgarzas_Proceso_Desarrollo
.pdf
Heilmann, Christian. “Beginning JavaScript with DOM
Scripting and Ajax”. 2006
Jacobson, I. , Booch, G. y Rumbaugh, J. “El Proceso
Unificado de Desarrollo de software”. 2000. 2000.
Morales Reyes, Alicia y Rugerio Ramos, Alma Rosa
“Metodologías para generación de Sistemas Orientados
a Objetos”
Universidad Rey Juan Carlos, “Metodologías de
Desarrollo Software”. Disponible en:
http://kybele.escet.urjc.es/documentos/ISG/Estructurado/%5
BISG-2006-07%5DMetodologiasDesarrolloSW.pdf
Universidad Politécnica de Valencia. “Proceso de
desarrollo de software”. Disponible en:
www.dsic.upv.es/asignaturas/facultad/lsi/doc/IntroduccionP
rocesoSW.doc
IV. REFERENCIAS
Devis Botella, Ricardo. “Modelo de Roles”. Disponible
en:
http://www.arrakis.es/~devis/OOram.ppt#256,1,OORAM
Chávez Gaona, Víctor Manuel y Olivares Rojas, Juan
Carlos “Metodología OMT (Rumbaugh)” Disponible en:
http://www.monografias.com/trabajos13/metomt/metomt.sh
tml
Figueroa, Pablo, Metodología de desarrollo de software
Orientado por Objetos. Disponible en:
http://www.cs.ualberta.ca/~pfiguero/soo/metod/
Figueroa, Roberth G., Solís, Camilo, J. ,Cabrera, Armando
A. “Metodologías tradicionales vs. metodologías ágiles”,
2008. Disponible en:
http://adonisnet.wordpress.com/2008/06/18/metodologiastradicionales-vs-metodologias-agiles/
8
Descargar