Академический Документы
Профессиональный Документы
Культура Документы
Es el ms utilizado
Las flechas de la iteracin que unen los procesos juntos muestran cmo el desarrollo de un
producto influye en el desarrollo de productos anteriores.
PROGRAMACION EXTREMA XP
HISTORIA
La programacin extrema o eXtreme Programming (XP) es un enfoque de la ingeniera de
software formulado por Kent Beck, autor del primer libro sobre la materia, Extreme
Programming Explained: Embrace Change (1999). Es el ms destacado de los procesos giles
de desarrollo de software. Al igual que stos, la programacin extrema se diferencia de las
metodologas tradicionales principalmente en que pone ms nfasis en la adaptabilidad que en
la previsibilidad. Los defensores de XP consideran que los cambios de requisitos sobre la
marcha son un aspecto natural, inevitable e incluso deseable del desarrollo de proyectos.
Creen que ser capaz de adaptarse a los cambios de requisitos en cualquier punto de la vida del
proyecto es una aproximacin mejor y ms realista que intentar definir todos los requisitos al
comienzo del proyecto e invertir esfuerzos despus en controlar los cambios en los requisitos.
INTRODUCCION
Es una metodologa gil centrada en potenciar las relaciones interpersonales como clave para
el xito en desarrollo de software, promoviendo el trabajo en equipo, preocupndose por el
aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo. XP se basa en
realimentacin continua entre el cliente y el equipo de desarrollo, comunicacin fluida entre
todos los participantes, simplicidad en las soluciones implementadas y coraje para enfrentar
los cambios. XP se define como especialmente adecuada para proyectos con requisitos
imprecisos y muy cambiantes, y donde existe un alto riesgo tcnico.
QU
Garantizar la Calidad del Software desarrollando, haciendo que este supere las
expectativas del cliente.
CONTEXTO XP
Cliente bien definido
Los requisitos pueden (y van a) cambiar
Grupo pequeo y muy integrado (mximo 12 personas
Equipo con formacin elevada y capacidad de aprender
CARACTERSTICAS XP
Metodologa basada en prueba y error
una idea de qu es lo que hace cada parte del programa. Un ejemplo claro es el
"recolector de basura" de java. Ayuda a que todos los programadores (y el cliente)
sepan de qu estamos hablando y que no haya mal entendidos.
Ritmo sostenible: Se debe trabajar a un ritmo que se pueda mantener
indefinidamente. Esto quiere decir que no debe haber das muertos en que no se sabe
qu hacer y que no se deben hacer un exceso de horas otros das. Al tener claro
semana a semana lo que debe hacerse, hay que trabajar duro en ello para conseguir el
objetivo cercano de terminar una historia de usuario o mini-versin.
MANEJO COLECTIVO DEL CDIGO
VENTAJAS Y DESVENTAJAS DE EXTREME PROGRAMMING
Ventajas:
Programacin organizada.
Menor taza de errores.
Satisfaccin del programador.
Desventajas:
Es recomendable emplearlo solo en proyectos a corto plazo.
Altas comisiones en caso de fallar.
Metodologas agiles
En febrero de 2001, tras una reunin celebrada en Utah-EEUU, nace el trmino .gil. aplicado al
desarrollo de software. En esta reunin participan un grupo de 17 expertos de la industria del
software, incluyendo algunos de los creadores o impulsores de metodologas de software. Su
objetivo fue esbozar los valores y principios que deberan permitir a los equipos desarrollar
software rpidamente y respondiendo a los cambios que puedan surgir a lo largo del proyecto.
Se pretenda ofrecer una alternativa a los procesos de desarrollo de software tradicionales,
caracterizados por ser rgidos y dirigidos por la documentacin que se genera en cada una de
las actividades desarrolladas.
Tras esta reunin se cre The Agile Alliance3, una organizacin, sin nimo de lucro, dedicada a
promover los conceptos relacionados con el desarrollo gil de software y ayudar a las
organizaciones para que adopten dichos conceptos. El punto de partida es fue el Manifiesto
gil, un documento que resume la filosofa .gil..
El Manifiesto gil.
Segn el Manifiesto se valora:
Al individuo y las interacciones del equipo de desarrollo sobre el proceso y las herramientas.
La gente es el principal factor de xito de un proyecto software. Es ms importante construir un
buen equipo que construir el entorno. Muchas veces se comete el error de construir primero el
entorno y esperar que el equipo se adapte automticamente. Es mejor crear el equipo y que
ste configure su propio entorno de desarrollo en base a sus necesidades.
Desarrollar software que funciona ms que conseguir una buena documentacin. La regla a
seguir es .no producir documentos a menos que sean necesarios de forma inmediata para
tomar un decisin importante.. Estos documentos deben ser cortos y centrarse en lo
fundamental.
La colaboracin con el cliente ms que la negociacin de un contrato. Se propone que exista
una interaccin constante entre el cliente y el equipo de desarrollo. Esta colaboracin entre
ambos ser la que marque la marcha del proyecto y asegure su xito.
Responder a los cambios ms que seguir estrictamente un plan. La habilidad de responder a
los cambios que puedan surgir a los largo del proyecto (cambios en los requisitos, en la
tecnologa, en el equipo, etc.) determina tambin el xito o fracaso del mismo. Por lo tanto, la
planificacin no debe ser estricta sino flexible y abierta.
Los valores anteriores inspiran los doce principios del manifiesto. Son caractersticas que
diferencian un proceso gil de uno tradicional. Los dos primeros principios son generales y
resumen gran parte del espritu gil. El resto tienen que ver con el proceso a seguir y con el
equipo de desarrollo, en cuanto metas a seguir y organizacin del mismo.
PRINCIPIOS:
I. La prioridad es satisfacer al cliente mediante tempranas y continuas entregas de software
que le aporte un valor.
II. Dar la bienvenida a los cambios. Se capturan los cambios para que el cliente tenga una
ventaja competitiva.
III. Entregar frecuentemente software que funcione desde un par de semanas a un par de
meses, con el menor intervalo de tiempo posible entre entregas.
IV. La gente del negocio y los desarrolladores deben trabajar juntos a lo largo del proyecto.
V. Construir el proyecto en torno a individuos motivados. Darles el entorno y el apoyo que
necesitan y confiar en ellos para conseguir finalizar el trabajo.
VI. El dilogo cara a cara es el mtodo ms eficiente y efectivo para comunicar informacin
dentro de un equipo de desarrollo.
VII. El software que funciona es la medida principal de progreso.
VIII. Los procesos giles promueven un desarrollo sostenible. Los promotores, desarrolladores y
usuarios deberan ser capaces de mantener una paz constante.
IX. La atencin continua a la calidad tcnica y al buen diseo mejora la agilidad.
X. La simplicidad es esencial.
XI. Las mejores arquitecturas, requisitos y diseos surgen de los equipos organizados por s
mismos.
XII. En intervalos regulares, el equipo reflexiona respecto a cmo llegar a ser ms efectivo, y
segn esto ajusta su comportamiento
Lista de metodologas giles
En la actualidad se cuentan alrededor de 15 a20 metodologas agiles sin contar los mtodos
hbridos de desarrollo que integran en sus practicas como ejemplo a Xp con Scrum. A
continuacin el listado de metodologas agiles en desarrollo de software ms representativas
con el ao de creacin, acrnimo y autor.
Y cul es el ranking de preferencias entre modelos giles? 1.- Extreme Programming (28%)
2.- FDD (26%) 3.- Scrum (20%) 4.- Crystal (6%) gil 5.- DSDM (4%) Fuente: Agile Journal [2],
n1, Marzo-2006.
METODOLOGIAS AGILES RUP
INTRODUCCIN
Se entiende como Desarrollo gil de Software a un paradigma de Desarrollo de Software
basado en procesos giles. Los procesos giles de desarrollo de software, conocidos
anteriormente como metodologas livianas, intentan evitar los tortuosos y burocrticos caminos
de las metodologas tradicionales enfocndose en la gente y los resultados.
Es un marco de trabajo conceptual de la ingeniera de software que promueve iteraciones en el
desarrollo a lo largo de todo el ciclo de vida del proyecto. Existen muchos mtodos de
desarrollo gil; la mayora minimiza riesgos desarrollando software en cortos lapsos de tiempo.
El software desarrollado en una unidad de tiempo es llamado una iteracin, la cual debe durar
de una a cuatro semanas. Cada iteracin del ciclo de vida incluye: planificacin,
anlisis de requerimientos, diseo, codificacin, revisin y documentacin. Una
iteracin no debe agregar demasiada funcionalidad para justificar el lanzamiento del producto
al mercado, pero la meta es tener un demo (sin errores) al final de cada iteracin. Al final de
cada iteracin el equipo vuelve a evaluar las prioridades del proyecto.
Los mtodos Agiles enfatizan las comunicaciones cara a cara en vez de la documentacin. La
mayora de los equipos Agiles estn localizados en una simple oficina abierta, a veces llamadas
"plataformas de lanzamiento" (bullpenen ingls). La oficina debe incluir revisores, diseadores
de iteracin, escritores de documentacin y ayuda y directores de proyecto.
Los mtodos giles tambin enfatizan que el software funcional es la primera medida del
progreso. Combinado con la preferencia por las comunicaciones cara a cara, generalmente los
mtodos giles son criticados y tratados como "indisciplinados" por la falta de documentacin
tcnica.
HISTORIA
La definicin moderna de desarrollo gil de software evolucion a mediados de los aos 1990
como parte de una reaccin contra los mtodos de peso pesado, muy estructurado y estricto,
extrados del modelo de desarrollo en cascada. El proceso originado del uso del modelo en
cascada era visto como burocrtico, lento, degradante e inconsistente con las formas de
desarrollo de software que realmente realizaban un trabajo eficiente. Los mtodos de
desarrollos giles e iterativos pueden ser vistos como un retroceso a las prcticas de desarrollo
observadas en los primeros aos del desarrollo de software (aunque en ese tiempo no haba
metodologas formales). Inicialmente, los mtodos giles fueron llamados mtodos de "peso
liviano". En el ao 2001, miembros prominentes de la comunidad se reunieron en Sonwbird,
Utah, y adoptaron el nombre de "Metodologas giles". Poco despus, algunas de estas
personas formaron la "alianza gil", una organizacin sin fines de lucro que promueve el
desarrollo gil de aplicaciones. Muchos mtodos similares al gil fueron creados antes del
2000. Entre los ms notables se encuentran: Scrum(1986), Crystal Clear (cristal transparente),
programacin extrema o XP (1996), desarrollo de software adaptativo, feature driven
development, Mtodo de desarrollo de sistemas dinmicos(1995). Kent Beck cre el mtodo de
Programacin Extrema (usualmente conocida como XP) en 1996 como una forma de rescatar el
proyecto del Sistema exhaustivo de compensaciones de Chrysler (C3). Mientras Chrysler
cancelaba ese proyecto, el mtodo fue refinado por Ron Jeffries.
METODOLOGIA RUP
Siempre que empezamos discutiendo mtodos en la arena OO, inevitablemente salimos con el
papel del Rational Unified Process. El Proceso Unificado fue desarrollado por Philippe Kruchten,
Ivar Jacobson y otros de la Rational como el proceso complementario al UML. El RUP es un
armazn de proceso y como tal puede acomodar una gran variedad de procesos. De hecho
sta es mi crtica principal al RUP - como puede ser cualquier cosa acaba siendo nada. Yo
prefiero un proceso que dice qu hacer en lugar de dar opciones infinitas.
Como resultado de esta mentalidad de armazn de procesos, el RUP puede usarse en un estilo
muy tradicional de cascada o de una manera gil. Como resultado usted puede usar el RUP
como un proceso gil, o como un proceso pesado - todo depende de cmo lo adapte a su
ambiente.
Craig Larman es un fuerte defensor de usar el RUP de una manera gil. Su excelente libro
introductoriosobre desarrollo OO contiene un proceso que est muy basado en su pensamiento
ligero del RUP. Su visin es que mucho del reciente empujn hacia los mtodos giles no es
nada ms que aceptar desarrollo OO de la corriente principal que ha sido capturada como RUP.
Una de las cosas que hace Craig es pasarse los primeros dos o tres das de una iteracin
mensual con todo el equipo usando el UML para perfilar el diseo del trabajo a hacerse durante
la iteracin. Esto no es un cianotipo del que no se pueda desviarse, sino un boceto que da una
perspectiva sobre cmo pueden hacerse las cosas en la iteracin.
Otra tachuela en el RUP gil es el proceso dX de Robert Martin. El proceso dx es una versin
totalmente dcil del RUP que simplemente es idntico a la XP(voltear dX al revs para ver la
broma). El dX est diseado para gente que tiene que usar el RUP pero quiere usar XP. Como
tal es a la vez XP y RUP y por tanto un buen ejemplo del uso gil del RUP.
Para m, una de las cosas clave que necesita el RUP es que los lderes del RUP en la industria
enfaticen su acercamiento al desarrollo de software. Ms de una vez he odo a la gente que usa
el RUP que estn usando un proceso de desarrollo estilo cascada. Gracias a mis contactos en la
industria, s que Philippe Kruchten y su equipo son firmes creyentes en el desarrollo iterativo.
Clarificando estos principios y animando las versiones giles del RUP tales como los trabajos de
Craig y de Robert tendr un efecto importante.
El proceso de ciclo de vida de RUP se divide en cuatro fases bien conocidas llamadas
Incepcin, Elaboracin, Construccin y Transicin. Esas fases se dividen en iteraciones,
cada una de las cuales produce una pieza de software demostrable. La duracin de cada
iteracin puede extenderse desde dos semanas hasta seis meses. Las fases son:
Incepcin. Significa comienzo, pero la palabra original (de origen latino y casi en
desuso como sustantivo) es sugestiva y por ello la traducimos as. Se especifican los
objetivos del ciclo de vida del proyecto y las necesidades de cada participante. Esto
entraa establecer el alcance y las condiciones de lmite y los criterios de aceptabilidad.
Se identifican los casos de uso que orientarn la funcionalidad.
Se disean las arquitecturas candidatas y se estima la agenda y el presupuesto de todo el
proyecto, en particular para la siguiente fase de elaboracin. Tpicamente es una fase breve
que puede durar unos pocos das o unas pocas semanas.
Elaboracin. Se analiza el dominio del problema y se define el plan del proyecto. RUP
presupone que la fase de elaboracin brinda una arquitectura suficientemente slida
junto con requerimientos y planes bastante estables. Se describen en detalle la
infraestructura y el ambiente de desarrollo, as como el soporte de herramientas de
automatizacin. Al cabo de esta fase, debe estar identificada la mayora de los casos de
uso y los actores, debe quedar descripta la arquitectura de software y se debe crear un
prototipo de ella. Al final de la fase se realiza un anlisis para determinar los riesgos y
se evalan los gastos hechos contra los originalmente planeados.
Construccin. Se desarrollan, integran y verifican todos los componentes y rasgos de
la aplicacin. RUP considera que esta fase es un proceso de manufactura, en el que se
debe poner nfasis en la administracin de los recursos y el control de costos, agenda y
calidad. Los resultados de esta fase (las versiones alfa, beta y otras versiones de
prueba) se crean tan rpido como sea posible. Se debe compilar tambin una versin de
entrega. Es la fase ms prolongada de todas.
Transicin. Comienza cuando el producto est suficientemente maduro para ser
entregado. Secorrigen los ltimos errores y se agregan los rasgos pospuestos. La fase
consiste en prueba beta, piloto, entrenamiento a usuarios y despacho del producto a
mercadeo, distribucin y ventas. Se produce tambin la documentacin. Se llama
transicin porque se transfiere a las manos del usuario, pasando del entorno de
desarrollo al de produccin.
A travs de las fases se desarrollan en paralelo nueve workflows o disciplinas: Modelado de
Negocios, Requerimientos, Anlisis & Diseo, Implementacin, Prueba, Gestin de
Configuracin & Cambio, Gestin del Proyecto y Entorno. Adems de estos workflows, RUP
define algunas prcticas comunes:
Desarrollo iterativo de software. Las iteraciones deben ser breves y proceder por
incrementos pequeos. Esto permite identificar riesgos y problemas tempranamente y
reaccionar frente a ellos en consecuencia.
Administracin de requerimientos. Identifica requerimientos cambiantes y postula una
estrategia disciplinada para administrarlos.
Uso de arquitecturas basadas en componentes. La reutilizacin de componentes
permite asimismo ahorros sustanciales en tiempo, recursos y esfuerzo.
Modelado visual del software. Se deben construir modelos visuales, porque los sistemas
complejos no podran comprenderse de otra manera. Utilizando una herramienta como
UML, la arquitectura y el diseo se pueden especificar sin ambigedad y comunicar a
todas las partes involucradas.
Prueba de calidad del software. RUP pone bastante nfasis en la calidad del producto
entregado.
Control de cambios y trazabilidad. La madurez del software se puede medir por la
frecuencia y tipos de cambios realizados.
Aunque RUP es extremadamente locuaz en muchos respectos, no proporciona lineamientos
claros de implementacin que puedan compararse, por ejemplo, a los mtodos Crystal, en los
que se detalla la documentacin requerida y los roles segn diversas escalas de proyecto. En
RUP esas importantes decisiones de dejan a criterio del usuario. Se asegura que RUP puede
implementarse sacndolo de la caja, pero dado que el nmero de sus artefactos y
herramientas es inmenso, siempre se dice que hay que recortarlo y adaptarlo a cada caso. El
proceso de implementacin mismo es complejo, dividindose en seis fases cclicas.
Existe una versin recortada de RUP, dX de Robert Martin, en la cual se han tomado en
consideracin experiencias de diversos MAs, reduciendo los artefactos de RUP a sus mnimos
esenciales y (en un gesto heroico) usando tarjetas de fichado en lugar de UML. Es como si
fuera RUP imitando los principios de XP; algunos piensan que dX es XP de cabo a rabo, slo que
con algunos nombres cambiados [ASR+02]. RUP se ha combinado con Evo, Scrum, MSF y
cualquier metodologa imaginable. Dado que RUP es suficientemente conocido y su estructura
es ms amplia y compleja que el de cualquier otro mtodo gil, su tratamiento en este texto
concluye en este punto.
Qu es UML?
El Lenguaje de Modelado Unificado
Introduccin
Una exigencia de
la gran mayora
de instituciones
dentro de su
Plan Informtico
estratgico, es
que los
desarrollos de
software bajo una
arquitectura en
Capas, se
formalicen con un
lenguaje
estndar y
unificado.
Es decir, se
requiere que
cada una de las
partes que
comprende el
desarrollo de
todo software de
diseo orientado
a objetos, se
visualice,
especifique y
documente con
lenguaje comn.
Se necesitaba un
lenguaje que
fuese grfico, a
fin de especificar
y documentar un
sistema de
software, de un
modo estndar
incluyendo
aspectos
conceptuales
tales como
procesos de
negocios y
funciones del
sistema.
Este lenguaje
unificado que
cumple con estos
requerimientos,
es ciertamente
UML, el cual
cuenta con una
notacin
estndar y
semnticas
esenciales, para
el modelado de
un sistema
orientado a
objetos.
As mismo,
aquellos que
deseen enmarcar
conceptualmente
desde su gnesis
UML, recomiendo
comprender los
Fundamentos de
los Lenguajes
Estructurados.
El UML unido a un
gestin de
calidad, evita
malos
entendidos y
entrega ciertas
precauciones en
la evolucin y
mantencin de
programas.
Especialmente en
lo referente a los
requerimientos
asociados al
levantamiento y
diseo funcional
de un sistema. En
efecto, por
ejemplo con los
Clientes Dilema,
quienes no
podrn hacer
pensar que el
cambio que estn
solicitando es
pequeo, cuando
detrs de la
peticin existe
una enorme
cantidad de
tareas
relacionadas al
requerimiento.
Cabe preguntarse
Cules son las
caractersticas
que debe tener
una herramienta
UML?.
Qu es UML?
El Lenguaje de Modelado Unificado (UML:Unified Modeling Language) es la sucesin de una
serie de mtodos de anlisis y diseo orientadas a objetos que aparecen a fines de los 80's y
principios de los 90s.UML es llamado un lenguaje de modelado, no un mtodo. Los mtodos
consisten de ambos de un lenguaje de modelado y de un proceso.
El UML , fusiona los conceptos de la orientacin a objetos aportados por Booch, OMT y OOSE
(Booch, G. et al., 1999).
UML incrementa la capacidad de lo que se puede hacer con otros mtodos de anlisis y diseo
orientados a objetos. Los autores de UML apuntaron tambin al modelado de sistemas
distribuidos y concurrentes para asegurar que el lenguaje maneje adecuadamente estos
dominios.
El lenguaje de modelado es la notacin (principalmente grfica) que usan los mtodos para
expresar un diseo. El proceso indica los pasos que se deben seguir para llegar a un diseo.
La estandarizacin de un lenguaje de modelado es invaluable, ya que es la parte principal del
proceso de comunicacin que requieren todos los agentes involucrados en un proyecto
informtico. Si se quiere discutir un diseo con alguien ms, ambos deben conocer el lenguaje
de modelado y no as el proceso que se sigui para obtenerlo.
Ver RobotDocIRS y Cules son las caractersticas que debe tener una herramienta UML?
Semntica y Notacin
Una de la metas principales de UML es avanzar en el estado de la integracin institucional
proporcionando herramientas de interoperabilidad para el modelado visual de objetos. Sin
embargo para lograr un intercambio exitoso de modelos de informacin entre herramientas, se
requiri definir a UML una semntica y una notacin.
La notacin es la parte grfica que se ve en los modelos y representa la sintaxis del lenguaje
de modelado. Por ejemplo, la notacin del diagrama de clases define como se representan los
elementos y conceptos como son: una clase, una asociacin y una multiplicidad. Y qu
significa exactamente una asociacin o multiplicidad en una clase?. Un metamodelo es la
manera de definir esto (un diagrama, usualmente de clases, que define la notacin).
Para que un proveedor diga que cumple con UML debe cubrir con la semntica y con la
notacin.
Una herramienta de UML debe mantener la consistencia entre los diagramas en un mismo
modelo. Bajo esta definicin una herramienta que solo dibuje, no puede cumplir con la
notacin de UML.
El lenguaje est dotado de mltiples herramientas para lograr la especificacin determinante
del modelo, pero en nuestro caso se trabaja en forma simplificada sobre:
Modelamiento de Clases
Casos de Uso
Diagrama de Interaccin
Elementos
Clase
Es la unidad bsica que encapsula toda la informacin de un Objeto (un objeto es una
instancia de una clase). A travs de ella podemos modelar el entorno en estudio (una
Casa, un Auto, una Cuenta Corriente, etc.).
En UML, una clase es representada por un rectngulo que posee tres divisiones:
En donde:
Inferior: Contiene los mtodos u operaciones, los cuales son la forma como interacta
el objeto con su entorno (dependiendo de la visibilidad: private, protected o public).
Ejemplo:
Una Cuenta Corriente que posee como caracterstica:
Balance
Depositar
Girar
y Balance
Atributos y Mtodos:
Atributos:
Los atributos o caractersticas de una Clase pueden ser de tres tipos, los que definen el
grado de comunicacin y visibilidad de ellos con el entorno, estos son:
o
public (+): Indica que el atributo ser visible tanto dentro como fuera de la
clase, es decir, es accsesible desde todos lados.
private (-): Indica que el atributo slo ser accesible desde dentro de la clase
(slo sus mtodos lo pueden accesar).
protected (#): Indica que el atributo no ser accesible desde fuera de la clase,
pero si podr ser accesado por mtodos de la clase adems de las subclases que
Mtodos:
Los mtodos u operaciones de una clase son la forma en como sta interacta con su
entorno, stos pueden tener las caractersticas:
o
public (+): Indica que el mtodo ser visible tanto dentro como fuera de la
clase, es decir, es accsesible desde todos lados.
private (-): Indica que el mtodo slo ser accesible desde dentro de la clase
(slo otros mtodos de la clase lo pueden accesar).
protected (#): Indica que el mtodo no ser accesible desde fuera de la clase,
pero si podr ser accesado por mtodos de la clase adems de mtodos de las
subclases que se deriven (ver herencia).
i. Herencia (Especializacin/Generalizacin):
Indica que una subclase hereda los mtodos y atributos especificados por una Super Clase, por
ende la Subclase adems de poseer sus propios mtodos y atributos, poseer las
caractersticas y atributos visibles de la Super Clase (public y protected), ejemplo:
En la figura se especifica que Auto y Camin heredan de Vehculo, es decir, Auto posee las
Caractersticas de Vehculo (Precio, VelMax, etc) adems posee algo particular que es
Descapotable, en cambio Camin tambin hereda las caractersticas de Vehiculo (Precio,
VelMax, etc) pero posee como particularidad propia Acoplado, Tara y Carga.
Cabe destacar que fuera de este entorno, lo nico "visible" es el mtodo Caractersticas
aplicable a instancias de Vehculo, Auto y Camin, pues tiene definicin publica, en cambio
atributos como Descapotable no son visibles por ser privados.
Agregacin:
Para modelar objetos complejos, n bastan los tipos de datos bsicos que proveen los lenguajes:
enteros, reales y secuencias de caracteres. Cuando se requiere componer objetos que son
instancias de clases definidas por el desarrollador de la aplicacin, tenemos dos posibilidades:
Por Valor: Es un tipo de relacin esttica, en donde el tiempo de vida del objeto
incluido esta condicionado por el tiempo de vida del que lo incluye. Este tipo de relacin
es comnmente llamada Composicin (el Objeto base se construye a partir del objeto
incluido, es decir, es "parte/todo").
Por Referencia: Es un tipo de relacin dinmica, en donde el tiempo de vida del objeto
incluido es independiente del que lo incluye. Este tipo de relacin es comnmente
llamada Agregacin (el objeto base utiliza al incluido para su funcionamiento).
Un Ejemplo es el siguiente:
Un Almacen posee Clientes y Cuentas (los rombos van en el objeto que posee las
referencias).
Cuando se destruye el Objeto Almacn tambin son destruidos los objetos Cuenta
asociados, en cambio no son afectados los objetos Cliente asociados.
La flecha en este tipo de relacin indica la navegabilidad del objeto refereniado. Cuando no
existe este tipo de particularidad la flecha se elimina.
Asociacin:
La relacin entre clases conocida como Asociacin, permite asociar objetos que colaboran
entre si. Cabe destacar que no es una relacin fuerte, es decir, el tiempo de vida de un objeto
no depende del otro.
Ejemplo:
Un cliente puede tener asociadas muchas Ordenes de Compra, en cambio una orden de
compra solo puede tener asociado un cliente.
Dependencia o Instanciacin (uso):
Representa un tipo de relacin muy particular, en la que una clase es instanciada (su
instanciacin es dependiente de otro objeto/clase). Se denota por una flecha punteada.
El uso ms particular de este tipo de relacin es para denotar la dependencia que tiene una
clase de otra, como por ejemplo una aplicacin grafica que instancia una ventana (la creacin
del Objeto Ventana esta condicionado a la instanciacin proveniente desde el objeto
Aplicacin):
Cabe destacar que el objeto creado (en este caso la Ventana grfica) no se almacena dentro
del objeto que lo crea (en este caso la Aplicacin).
Casos Particulares:
Clase Abstracta:
Una clase abstracta se denota con el nombre de la clase y de los mtodos con letra "itlica".
Esto indica que la clase definida no puede ser instanciada pues posee mtodos abstractos (an
no han sido definidos, es decir, sin implementacin). La nica forma de utilizarla es definiendo
subclases, que implementan los mtodos abstractos definidos.
Clase parametrizada:
Ejemplo:
Supongamos que tenemos tenemos un el caso del Diccionario implementado mediante un
rbol binario, en donde cada nodo posee:
Para este caso particular hemos definido un Diccionario para almacenar String y Personas, las
cuales pueden funcionar como llaves o como item, solo se mostrarn las relaciones para la
implementacin del Diccionario:
Actor.
Casos de Uso.
Elementos
Actor:
Una definicin previa, es que un Actor es un rol que un usuario juega con respecto al sistema.
Es importante destacar el uso de la palabra rol, pues con esto se especifica que un Actor no
necesariamente representa a una persona en particular, sino ms bien la labor que realiza
frente al sistema.
Como ejemplo a la definicin anterior, tenemos el caso de un sistema de ventas en que el rol
de Vendedor con respecto al sistema puede ser realizado por un Vendedor o bien por el Jefe de
Local.
Caso de Uso:
Es una operacin/tarea especfica que se realiza tras una orden de algn agente
externo, sea desde una peticin de un actor o bien desde la invocacin desde otro caso
de uso.
Relaciones:
Asociacin
Dependencia o Instanciacin
Es una forma muy particular de relacin entre clases, en la cual una clase
depende de otra, es decir, se instancia (se crea). Dicha relacin se denota con
una flecha punteada.
Generalizacin
Este tipo de relacin es uno de los ms utilizados, cumple una doble funcin
dependiendo de su estereotipo, que puede ser de Uso (<<uses>>) o de
Herencia (<<extends>>).
Este tipo de relacin esta orientado exclusivamente para casos de uso (y no para
actores).
extends: Se recomienda utilizar cuando un caso de uso es similar a otro
(caractersticas).
uses: Se recomienda utilizar cuando se tiene un conjunto de caractersticas que
son similares en ms de un caso de uso y no se desea mantener copiada la
descripcin de la caracterstica.
De lo anterior cabe mencionar que tiene el mismo paradigma en diseo y
modelamiento de clases, en donde esta la duda clsica de usar o heredar.
Ejemplo:
Item se atora.
ii.
No hay ms papel.
Como una primera aproximacin identificamos a los actores que interactuan con el sistema:
Luego, tenemos que un Cliente puede Depositar Itemes y un Operador puede cambiar la
informacin de un Item o bien puede Imprimir un informe:
Adems podemos notar que un item puede ser una Botella, un Tarro o una Jaba.
Otro aspecto es la impresin de comprobantes, que puede ser realizada despus de depositar
algn item por un cliente o bien puede ser realizada a peticin de un operador.
Diagrama de Interaccin
Introduccin
El diagrama de interaccin, representa la forma en como un Cliente (Actor) u Objetos (Clases)
se comunican entre si en peticin a un evento. Esto implica recorrer toda la secuencia de
llamadas, de donde se obtienen las responsabilidades claramente.
Dicho diagrama puede ser obtenido de dos partes, desde el Diagrama Esttico de Clases o el
de Casos de Uso (son diferentes).
Los componentes de un digrama de interaccin son:
Un Objeto o Actor.
Elementos
Objeto/Actor:
Aqu se representa una aplicacin que posee una Ventana grfica, y sta a su vez posee
internamente un botn.
Entonces el diagrama de interaccin para dicho modelo es:
En donde se hacen notar las sucesivas llamadas a Draw() (entre objetos) y la llamada a Paint()
por el objeto Botn.
Bibliografa:
http://www.dcc.uchile.cl/~psalinas/uml/introduccion.html
Autores: Diana Palliotto; Gabriel Romano Universidad Nacional de Santiago del Estero
Facultad de Ciencias Exactas y Tecnologas Direccin: Departamento de Informtica Av. Belgrano (S) 1912, (4200) Santiago del Estero, Argentina.- E-Mail:
UML Tools
By Mandar Chitnis, Pravin Tiwari, & Lakshmi Ananthamurthy
DESVENTAJAS
<!--[if !supportLists]--> <!--[endif]-->Hacer pensar a los usuarios que el producto final est
prcticamente terminado.
<!--[if !supportLists]--> <!--[endif]-->Llevar a un nmero de cambios excesivo.
MODELO EN ESPIRAL:
Es un modelo de proceso de software evolutivo el cual es a base de una serie de ciclos los
cuales se repiten en forma de espiral, esta orientados a evitar riesgos de trabajo. Cada vez que
se avanza un ciclo se va alcanzando un nivel superior hasta concluir el proyecto.
CARACTERISTICAS
<!--[if !supportLists]--> <!--[endif]-->Es un modelo que puede combinarse con otros modelos
de procesos de desarrollo (cascada y evolutivo).
<!--[if !supportLists]--> <!--[endif]-->Es el mejor modelo que se utiliza para desarrollar
grandes sistemas.
<!--[if !supportLists]-->
personal con experiencia.
VENTAJAS
<!--[if !supportLists]--> <!--[endif]-->Modelo de proceso adaptable.
<!--[if !supportLists]--> <!--[endif]-->El modelo de espiral puede aplicarse a lo largo de la
vida del software.
<!--[if !supportLists]--> <!--[endif]-->Es apropiado para desarrollar Sistemas Operativos.
DESVENTAJAS
<!--[if !supportLists]--> <!--[endif]-->No se ha utilizado mucho ya que es un modelo nuevo.
<!--[if !supportLists]--> <!--[endif]-->Debido a la complejidad no se recomienda utilizarlo en
sistemas pequeos.
<!--[if !supportLists]--> <!--[endif]-->Es un modelo costoso.
COMPARACION ENTRE MODELOS PROTOTIPO Y ESPIRAL
CRITERIO
PROTOTIPADO
ESPIRAL
Disponibilidad de recursos
Algunos
Algunos
Media
Alta
Entendimiento de requerimientos
Vago
Vago
Vago
Vago
de
Si
Si
de
Regular
Pobre
Manejo
riesgo
de
Conocimiento
problemas
la
perspectiva
del
dominio
UME es un mtodo, de ingeniera WEB orientada a objetos basada en UML, que puede ser utilizado para
la especificacin de aplicaciones WEB.
La aproximacin propuesta por UWE provee:
1. una notacin especfica de dominio
2. un proceso de desarrollo basado en el modelo, y
3. una herramienta de soporte para la ingeniera de aplicaciones WEB.
La principal caracteristica de UWE es el hecho de ser una aproximacin basada en estndares, la cual no
se lmita al uso de UML, adems integra:
1. XMI como modelo de intercambio de formatos,
2. MOF para los metamodelos
3. los principios de la aproximacin MDA (dirigida por el modelo),
4. el modelo de transformacin del lenguaje QVT y
5. XML
La razn principal para extender UML en lugar de crear una tcnica de modelamiento propietaria, es la
aceptacin de UML en el proceso de desarrollo de software, la flexibilidad para la definicin de un lenguaje
de modelamiento especfico en el dominio WEB, tambin llamado perfil UML, y un gran soporte del modelo
de visualizacin con las herramientas existentes de UML CASE.
UWE hace uso de notacion UML pura y los tipos de diagramas UML en donde sea posible para el anlisis y
diseo de aplicaciones WEB. Para las caractersticas de aplicaciones WEB especficas, como nodos y
vnculos de la estructura de hyper-texto, el perfil UWE incluye:
estereotipos,
valores marcados y
La extensin de UWE cubre la navegacin, presentacin, lgica del negocio y aspectos de adaptacin. La
notacin UWE se define como una extensin "ligera" de UML.
La aproximacin de diseo UWE para los procesos del negocio consiste en introducir clases especficas
del proceso, que son parte de un modelo de proceso separado con una interfaz definida para el modelo de
navegacin.
El modelamiento de las caractersticas adaptativas de las aplicaciones WEB se hace de manera no
invasiva, es decir, UWE usa tcnicas de modelamiento orientadas por aspectos (AOM), siguiendo el
principio separacin de preocupaciones UWE propone construir un modelo adaptativo para sistemas
personalizados o dependientes del contexto y despus entrelazar los modelos.
donde los requisitos y soluciones evolucionan mediante la colaboracin de grupos auto organizados y
multidisciplinarios.
El Scrum es un proceso de la Metodologa gil que se usa para minimizar los riesgos durante la
necesita el cliente. Es una evolucin del Mtodo Toyota de Produccin aplicado al desarrollo y que
est muy de moda entre los equipos de desarrollo en startups.
Principalmente se identifica por hacer uso de ciclos de evolucin de software incrementales en los
que se alejan las decisiones lo ms posible hasta no tener retroalimentacin por parte del cliente y
con esto reaccionar de modo ms flexible posible contra sus posibles necesidades. Por esto mismo de
provenir de una metodologa Japonesa de trabajo se fundamenta en tener un equipo muy capaz y
comprometido al principio del aprendizaje continuo.
El Desarrollo Lean una metodologa fantstica para empresas que estn desarrollando un software
B2C orientado a tener xito en el mercado.
El Modelo Incremental combina elementos del Modelo Lineal Secuencial con la filosofa
interactiva de Construccin de Prototipos. Como se muestra en la Figura 1, el modelo
incremental aplica secuencias lineales de forma escalonada mientras progresa el tiempo en el
calendario. Cada secuencia lineal produce un incremento del software. El primer incremento
generalmente
es
un
producto
esencial
denominado
ncleo.
En una visin genrica, el proceso se divide en 4 partes:
Anlisis
Diseo
Cdigo
Prueba
Sin embargo, para la produccin del Software, se usa el principio de trabajo en cadena o
Pipeline. Con esto se mantiene al cliente en constante contacto con los resultados obtenidos en
cada incremento. Es el mismo cliente el que incluye o desecha elementos al final de cada
incremento a fin de que el software se adapte mejor a sus necesidades reales. El proceso se
repite hasta que se elabora el producto completo. De esta forma el tiempo de entrega se
reduce considerablemente.
El Modelo Incremental es de naturaleza interactiva brindando al final de cada incremento la
entrega de un producto completamente operacional. Este modelo es particularmente til
cuando no se cuenta con una dotacin de personal suficiente. Los primeros pasos los pueden
realizar un grupo reducido de personas y en cada incremento se aadir personal, de ser
necesario. Por otro lado los incrementos se pueden planear para gestionar riesgos tcnicos.
Se evitan proyectos largos y se entrega "algo de valor" a los usuarios con cierta
frecuencia.
Dificil de aplicar a los sistemas transaccionales que tienden a ser integrados y a operar
como un todo.
Ventajas:
Desventajas:
Smbolo
Anlisis
Analista
Codificacin
Desarrollador
Diseador
Diseo
Entregar el incremento
Especificacin de requisitos
Incremento
Incremento rechazado
Incremento validado
Modelo de arquitectura de software
Modelo de diseo
Ncleo
Plan de incremento
Producto
Producto completo
Producto incompleto
Prueba
Prueba de aceptacin
Prueba de integracin
Prueba unitaria
Tester
Tipo
Verbo
Sujeto
Verbo
Sujeto
Sujeto
Verbo
Verbo
Objeto
Objeto
Estado
Estado
Objeto
Objeto
Objeto
Objeto
Objeto
Estado
Estado
Verbo
Verbo
Verbo
Verbo
Sujeto
Definicin de Smbolos
Smbolo
N: 1
Nombre/s
Nocin
Impacto
Smbolo
N: 2
Nombre/s
Nocin
Impacto
Tipo: Verbo
Anlisis
Es la actividad en la que se obtienen e interpretan los requisitos de un
incremento.
Es llevada a cabo por el analista.
Se elicitan los requisitos del incremento con el cliente.
Se interpretan los requisitos obtenidos.
Se realiza el documento de especificacin de requisitos.
Se validan los requisitos elicitados con cliente.
Tipo: Sujeto
Analista
Es el encargado de realizar el anlisis de los requisitos que
corresponden a un incremento.
Define cuales son las necesidades del cliente.
Se encarga de elicitar requisitos con el cliente.
Realiza el anlisis de los requisitos de cada incremento.
Se encarga de realizar el documento de especificacin de requisitos.
Smbolo
N: 3
Nombre/s
Nocin
Impacto
Smbolo
N: 4
Nombre/s
Nocin
Impacto
Smbolo
N: 5
Nombre/s
Nocin
Impacto
Smbolo
N: 6
Nombre/s
Nocin
Impacto
Tipo: Verbo
Codificacin
Es la actividad en la que se elabora la funcionalidad de un incremento.
Es realizada por el desarrollador.
Sucede luego de la actividad de anlisis.
Se desarrolla en base a los requisitos registrados en el documento de
especificacin de requisitos que corresponden a un incremento.
Agrega funcionalidad al producto.
Tipo: Sujeto
Desarrollador
Es el encargado de realizar la codificacin que corresponde a un
incremento.
Toma los requisitos del documento de especificacin de requisitos que
corresponden al incremento que se est elaborando.
Revisa el documento de especificacin de requisitos.
Revisa el documento de modelo de diseo.
Realiza la codificacin correspondiente a los requisitos de un incremento
teniendo en cuenta el modelo de diseo detallado.
Tipo: Sujeto
Diseador
Es el encargado de realizar el modelo de diseo.
Es el encargado de realizar el modelo de arquitectura de software.
Define el modelo de diseo en base al documento de especificacin de
requisitos.
Define el modelo de arquitectura del software en base al documento de
especificacin de requisitos.
Toma los requisitos que corresponden al incremento que se est
elaborando.
Revisa el documento de especificacin de requisitos.
Se encarga de llevar a cabo la actividad de diseo.
Tipo: Verbo
Diseo
Es la actividad que permite llevar a cabo el modelo de diseo de un
incremento.
Es la actividad que permite llevar a cabo el modelo de arquitectura de
software de un incremento.
Es realizada por el diseador.
Sucede luego de la actividad de anlisis.
Se revisan los requisitos del incremento que se encuentran en el
documento de especificacin de requisitos.
Se determina la estructura requerida para el incremento, la cual es
realizada con el modelo de arquitectura de software.
Se detallan los componentes que se van utilizar para el incremento, los
cuales se realizan con el modelo de arquitectura de software.
Smbolo
N: 7
Nombre/s
Nocin
Impacto
Smbolo
N: 8
Nombre/s
Nocin
Impacto
Smbolo
N: 9
Nombre/s
Nocin
Impacto
Smbolo
N: 10
Nombre/s
Nocin
Impacto
Entregar el incremento
Es la actividad que corresponde a la entrega del producto al cliente de la
funcionalidad solicitada.
Se realiza la instalacin del incremento en el cliente.
Se realiza la prueba de aceptacin con el cliente.
Se verifica que los requisitos del documento de especificacin de
requisitos coincidan con el incremento entregado.
El incremento es utilizado por el cliente.
Tipo: Objeto
Especificacin de requisitos
Es un documento que se confecciona durante la actividad de anlisis.
Es toda la informacin necesaria para comprender la necesidad del
cliente.
Es confeccionado por el analista.
Contiene los requisitos del sistema que surgen en cada incremento.
El primer documento generado da origen al ncleo.
Es utilizado por el desarrollador para la codificacin.
Es utilizado por el diseador para realizar el modelo de diseo.
Es utilizado por el diseador para realizar el modelo de arquitectura de
software.
Tipo: Objeto
Incremento
Es una porcin del software que cumple con un conjunto de
funcionalidades requeridas por el cliente.
Toda la documentacin relevante del incremento y que es proporcionada
por el cliente se vuelca en el plan de incremento.
Cada incremento pasa por las siguientes actividades: anlisis, diseo,
codificacin y prueba.
Es aceptado o rechazado en base a los resultados de la prueba de
aceptacin.
Cumple con un conjunto de requisitos solicitados por el cliente y que se
encuentran documentados en la especificacin de requisitos.
Tipo: Estado
Incremento rechazado
Indica que un incremento no representa lo esperado por el cliente.
Se determina luego de realizar las pruebas de aceptacin con el cliente.
Se deben redefinir los requisitos que no fueron bien interpretados hasta
que el incremento pase a ser un incremento validado.
Se vuelven a realizar las actividades de anlisis y codificacin.
Smbolo
N:11
Nombre/s
Nocin
Impacto
Tipo: Estado
Incremento validado
Indica que un incremento representa lo esperado por el cliente.
Se determina luego de realizar las pruebas de aceptacin con el cliente.
Se puede proceder a la elaboracin del siguiente incremento.
Si luego surgen nuevos requisitos los mismos se tendrn en cuenta en
futuros incrementos y se deber armar un nuevo plan de incremento.
Smbolo
N: 12
Nombre/s
Nocin
Tipo: Objeto
Modelo de arquitectura del software
Es un documento donde se indica la estructura e interaccin entre las
partes que componen el producto software.
Es realizada por el diseador.
Se realiza durante la actividad de diseo.
Se utiliza para elaborar la estructura general de la implementacin del
producto.
Define la relacin entre los elementos estructurales del producto
software.
Es utilizado para la actividad de codificacin.
Impacto
Smbolo
N: 13
Nombre/s
Nocin
Impacto
Smbolo
N: 14
Nombre/s
Nocin
Impacto
Tipo: Objeto
Modelo de diseo
Es la representacin de la solucin en el desarrollo del producto.
Es creado por el diseador.
Se realiza durante la actividad de diseo.
Define las funcionalidades, los componentes y las interfaces que
forman parte del producto.
Es utilizado para la actividad de codificacin.
Tipo: Objeto
Ncleo
Es el primer incremento entregado.
Es la base para futuros incrementos.
Contiene las principales funcionalidades del sistema.
Genera una versin estable del producto.
Genera un producto completo.
Es determinado por el cliente luego de que ste haya seleccionado
cuales requisitos de la especificacin de requisitos formarn parte del
primer incremento.
Smbolo N:
15
Nombre/s
Nocin
Tipo: Objeto
Plan de incremento
Documento que contiene toda la informacin del incremento a
elaborar.
Impacto
Smbolo
N:16
Nombre/s
Nocin
Impacto
Smbolo
N:17
Nombre/s
Nocin
Impacto
Smbolo
N:18
Nombre/s
Nocin
Impacto
Smbolo
N:19
Nombre/s
Nocin
Impacto
Producto
Es el software construido por el desarrollador.
Es la documentacin que acompaa al software.
Son los datos que configuran el software.
Es lo que se entrega al finalizar un incremento.
Se lo puede modificar en cualquiera de las fases del proceso de
software.
Su creacin comienza desde la actividad de anlisis.
Si las pruebas de aceptacin con el cliente son exitosas se lo considera
producto completo.
Si las pruebas de aceptacin con el cliente no son exitosas se lo
considera producto incompleto.
Tipo: Estado
Producto completo
Sucede luego de que el producto cumple
establecidos por el cliente.
El producto puede ser entregado al cliente.
El producto es utilizado por el cliente.
con
los
requisitos
Tipo: Estado
Producto incompleto
Sucede luego de que el producto no cumple con los requisitos
establecidos por el cliente.
Indica que el producto no se encuentra apto para ser entregado.
El producto no puede ser entregado al cliente.
El producto se debe corregir para poder concluir el incremento.
Una vez corregido, probado y aceptado por el cliente mediante las
pruebas de aceptacin, pasa a ser un producto completo y el incremento
pasa a ser un incremento validado.
Tipo: Verbo
Prueba
Es la actividad que permite evaluar el funcionamiento del producto.
Sucede luego de la actividad de codificacin.
Es realizada por el desarrollador.
Es realizada por el tester.
Es realizada por el cliente.
El desarrollador puede llevar a cabo una prueba unitaria del
Smbolo
N:20
Nombre/s
Nocin
Impacto
Smbolo
N:21
Nombre/s
Nocin
producto.
El tester puede llevar a cabo una prueba de integracin del producto.
El cliente puede llevar a cabo una prueba de aceptacin del
producto.
Tipo: Verbo
Prueba de aceptacin
Sucede al momento de hacer la entrega del incremento al cliente.
Permite validar si el producto cumple con el funcionamiento esperado
por el cliente.
Es realizada por el cliente.
Identificar errores en el producto.
Utiliza diversos juegos de datos para llevar a cabo el ensayo.
Si el producto cumple con todos los requisitos esperados por el cliente,
entonces el incremento pasa a ser un incremento validado.
Si el producto no cumple con todos los requisitos esperados por el
cliente, entonces el incremento pasa a ser un incremento rechazado.
Tipo: Verbo
Prueba de integracin
Sucede durante la actividad de codificacin.
Se lleva a cabo sobre el producto a entregar teniendo en cuenta que la
nueva funcionalidad se integre con lo que actualmente se encuentra
funcionando.
Es realizada por el tester.
Impacto
Identificar errores en el producto.
Utiliza diversos juegos de datos para llevar a cabo el ensayo.
Los errores detectados son reportados al desarrollador para su
correccin.
Smbolo N:22
Tipo: Verbo
Nombre/s
Prueba unitaria
Nocin
Sucede durante la actividad de codificacin.
Se lleva a cabo sobre el producto a entregar teniendo en
cuenta solamente la funcionalidad que se agrega.
Es la actividad realizada por el desarrollador.
Impacto
Identifica errores en el producto.
Utiliza diversos juegos de datos para llevar a cabo el ensayo.
El desarrollador se encarga de corregir los errores detectados.
Smbolo N:23
Tipo: Sujeto
Nombre/s
Tester
Nocin
Es el encargado de realizar las pruebas de integracin del
producto.
Impacto
Asegura que la funcionalidad que est probando se integre
correctamente con el resto del producto.
Realiza la documentacin de las pruebas de integracin.
Informa los errores detectados para luego ser corregidos por
el desarrollador.
Verifica las correcciones realizadas al producto por el
desarrollador.