Está en la página 1de 34

TEMA5

Contenido
1.INTRODUCCINALAORIENTACINAOBJETOS.............................................................................................3
Elenfoqueestructurado.....................................................................................................................................3
Enfoqueorientadoaobjetos..............................................................................................................................4
2.CONCEPTOSDEORIENTACINAOBJETOS...................................................................................................5
2.1.Ventajasdelaorientacinaobjetos...........................................................................................................5
2.2.Clases,atributosymtodos........................................................................................................................6
2.3.Visibilidad....................................................................................................................................................7
2.4.Objetos.Instanciacin.................................................................................................................................8
3.UML....................................................................................................................................................9
Porquestilmodelar?..................................................................................................................................................9
3.1.TiposdediagramasUML...........................................................................................................................10
3.2.HerramientasparalaelaboracindediagramasUML.............................................................................11
3.2.1.VisualParadigm....................................................................................................................................................12
3.3.Diagramasdeclases..................................................................................................................................12
Ejercicioresuelto.............................................................................................................................................................................13
3.3.1.Creacindeclases................................................................................................................................................13
Ejercicioresuelto.............................................................................................................................................................................13
3.3.2.Atributos..............................................................................................................................................................14
Ejercicioresuelto.............................................................................................................................................................................14
3.3.3.Mtodos...............................................................................................................................................................15
Ejercicioresuelto.............................................................................................................................................................................15
3.4.Relacionesentreclases.............................................................................................................................16
Ejercicioresuelto.............................................................................................................................................................................16
3.4.1.Cardinalidadomultiplicidaddelarelacin..........................................................................................................17
Ejercicioresuelto.............................................................................................................................................................................17
3.4.2.Relacindeherencia............................................................................................................................................17
Ejercicioresuelto.............................................................................................................................................................................18
3.4.3.Agregacinycomposicin....................................................................................................................................18
3.4.4.Atributosdeenlace..............................................................................................................................................19
Ejercicioresuelto.............................................................................................................................................................................19
3.5.Pasodelosrequisitosdeunsistemaaldiagramadeclases.....................................................................20
3.5.1.Obtencindeatributosyoperaciones.................................................................................................................21
3.6.Generacindecdigoapartirdeldiagramadeclases.............................................................................22
Ejercicioresuelto.............................................................................................................................................................................22
3.6.1.Eleccindellenguajedeprogramacin.Orientacionesparaellenguajejava.....................................................23
3.7.Generacindeladocumentacin.............................................................................................................23
4.INGENIERAINVERSA..............................................................................................................................25
Ejercicioresuelto.............................................................................................................................................................................25
ANEXOI.DIAGRAMASUML.......................................................................................................................26
Diagramasestructurales...................................................................................................................................26
Diagramasdecomportamiento........................................................................................................................26
Diagramasdeinteraccin.................................................................................................................................26
ANEXOII.DESCARGAEINSTALACINDEVISUALPARADIGM............................................................................27
DescargaeinstalacindeVisualParadigm.......................................................................................................27
Procesodeinstalacin......................................................................................................................................27
ANEXOIII.GENERACINDELDIAGRAMADECLASESDEUNPROBLEMADADO......................................................29
Descripcindelproblema.................................................................................................................................29
Seleccindesustantivoscomoobjetos/clasesdelsistema..............................................................................31
Obtencindelosatributosdelosobjetos........................................................................................................31
Obtencindelosmtodos................................................................................................................................31
Obtenerrelaciones............................................................................................................................................32
AadirGetters,Settersyconstructores............................................................................................................33
Aadirdocumentacin......................................................................................................................................34

Tema5

Entornosdedesarrollo

[DISEOORIENTADOAOBJETOS.
ELABORACINDEDIAGRAMASESTRUCTURALES]
JosLuisComesaaCabeza2011/2012
EntornosdeDesarrollodelcursodeDesarrollodeAplicacionesWeb

DAW

Diseoorientadoaobjetos.Elaboracindediagramasestructurales

Diseoorientadoaobjetos.Elaboracin
dediagramasestructurales.
Caso prctico
En la empresa siguen trabajando en diferentes aplicaciones con un nivel alto de complejidad, se
desarrolla para diferentes plataformas, en entornos de ventanas, para la web, dispositivos mviles,
etc. Ada lleva un tiempo observando a su equipo, y a pesar de que ya han hablado de las diferentes
fases de desarrollo del software, y que estn descubriendo nuevos entornos de programacin que
han facilitado su trabajo enormemente, se ha dado cuenta de que todava hay una asignatura
pendiente, sus empleados no utilizan herramientas ni crean documentos en las fases previas del
desarrollo de una aplicacin, a pesar de ser algo tan importante como el resto de fases del proceso
de elaboracin de software. Tampoco construyen modelos que ayuden a hacerse una idea de cmo
resultar el proyecto. Estos documentos y modelos son muy tiles para que todo el mundo se ponga
de acuerdo en lo que hay que hacer, y cmo van a hacerlo.
Como Ada muy bien conoce, un proyecto de software tendr xito slo si produce un software de
calidad, consistente y sobre todo que satisfaga las necesidades de los usuarios que van a utilizar el
producto resultante.
Para desarrollar software de calidad duradera, hay que idear una slida base arquitectnica que sea
flexible al cambio.
Incluso para producir software de sistemas pequeos sera bueno hacer anlisis y modelado ya que
redunda en la calidad, pero lo que s es cierto, es que cuanto ms grande y complejos son los
sistemas ms importante es hacer un buen modelado ya que nos ayudar a entender el
comportamiento del sistema en su totalidad. Y cuando se trata de sistemas complejos el modelado
nos dar una idea de los recursos necesarios (tanto humanos como materiales) para abordar el
proyecto. Tambin nos dar una visin ms amplia de cmo abordar el problema para darle la mejor
solucin.
Ada se da cuenta de que el equipo necesita conocer procedimientos de anlisis y diseo de software,
as como alguna herramienta que permita generar los modelos y la documentacin asociada, as que
decide reunir a su equipo para empezar a tratar este tema...

1.Introduccinalaorientacinaobjetos.
Caso prctico
Ya en la sala de reuniones...
Deberamos empezar por revisar cual es la situacin actual. Como ya sabis existen diferentes
lenguajes de programacin que se comportan de manera diferente, y esto determina en gran medida
el enfoque que se le da al anlisis previo. No es lo mismo un lenguaje estructurado que uno orientado
a objetos. Tendramos que conocer las caractersticas de ambos enfoques para entender un poco
mejor cmo se analizan.
Es cierto contesta Juan desde que empec en el mundo de la informtica esto ha cambiado un
poco, as que he tenido que ir investigando para adaptarme a los nuevos lenguajes de programacin,
si queris, os pongo al da brevemente, ...

Laconstruccindesoftwareesunprocesocuyoobjetivoesdarsolucinaproblemasutilizandouna
herramientainformticaytienecomoresultadolaconstruccindeunprogramainformtico.Como
en cualquier otra disciplina en la que se obtenga un producto final de cierta complejidad, si
queremos obtener un producto de calidad, es preciso realizar un proceso previo de anlisis y
especificacindelprocesoquevamosaseguir,ydelosresultadosquepretendemosconseguir.

Elenfoqueestructurado.
Sin embargo, cmo se hace es algo que ha ido evolucionando con el tiempo, en un principio se
tomabaelproblemadepartidayseibasometiendoaunprocesodedivisinensubproblemasms
pequeos reiteradas veces, hasta que se llegaba a problemas elementales que se poda resolver

Tema5

Entornosdedesarrollo

utilizandounafuncin.Luegolasfuncionessehilabanyentretejanhastaformarunasolucinglobal
al problema de partida. Era, pues, un proceso centrado en los procedimientos, se codificaban
mediantefunciones(conjuntodesentenciasescritasenunlenguajedeprogramacinqueoperansobreunconjuntodeparmetros
yproducenunresultado)queactuabansobreestructurasdedatos(conjuntodeunacoleccindedatosydelasfunciones
que modifican esos datos, que recrean una entidad con sentido, en el contexto de un problema), por eso a este tipo de
programacin se le llama programacin estructurada (paradigma de programacin que postula que una programa
informtico no es ms que una sucesin de llamadas a funciones, bien sean del sistema o definidas por el usuario). Sigue una
filosofaenlaqueseintentaaproximarquhayquehacer,paraasresolverunproblema.

Enfoqueorientadoaobjetos.
Laorientacinaobjetosharotoconestaformadehacerlascosas.Conestenuevoparadigma(modelo
o patrn aplicado a cualquier disciplina cientfica u otro contexto epistemolgico) el proceso se centra en simular los

elementosdelarealidadasociadaalproblemadelaformamscercanaposible.Laabstraccin(aislar
un elemento de su contexto o del resto de elementos que le acompaan para disponer de ciertas caractersticas que necesitamos
excluyendolasnopertinentes.Conellocapturamosalgoencomnentrelasdiferentesinstanciasconobjetodecontrolarlacomplejidaddel
software)

que permite representar estos elementos se denomina objeto, y tiene las siguientes
caractersticas:
9 Estformadoporunconjuntodeatributos,quesonlosdatosquelecaracterizany
9 Un conjunto de operaciones que definen su comportamiento. Las operaciones asociadas a un
objetoactansobresusatributosparamodificarsuestado.Cuandoseindicaaunobjetoque
ejecuteunaoperacindeterminadasedicequeselepasaunmensaje.
Lasaplicacionesorientadasaobjetosestnformadasporunconjuntodeobjetosqueinteraccionan
envindose mensajes para producir resultados. Los objetos similares se abstraen en clases, se dice
queunobjetoesunainstanciadeunaclase.
Cuandoseejecutaunprogramaorientadoaobjetosocurrentressucesos:
9 Primero,losobjetossecreanamedidaquesenecesitan.
9 Segundo.Losmensajessemuevendeunobjetoaotro(odelusuarioaunobjeto)amedidaque
elprogramaprocesainformacinorespondealaentradadelusuario.
9 Tercero,cuandolosobjetosyanosenecesitan,seborranyseliberalamemoria.

Todo acerca del mundo de la orientacin a objetos se encuentra en la pgina oficial del
Grupodegestindeobjetos:
http://www.omg.org/index.htm

DAW

Diseoorientadoaobjetos.Elaboracindediagramasestructurales

2.ConceptosdeOrientacinaObjetos.
Caso prctico
De acuerdo, buen resumen Juan, sin embargo, los ltimos proyectos que han entrado a la empresa
se han desarrollo en su totalidad mediante software orientado a objetos, hemos usado PHP con
Javascript, pero sobre todo Java, que es un lenguaje basado en objetos, as que sera necesario que
analizramos con un poco ms de detenimiento el enfoque orientado a objetos, que caractersticas
presenta, y qu ventajas tiene sobre otros.
Gracias, Ada!, tambin tengo alguna informacin sobre eso...

Como hemos visto la orientacin a objetos trata de acercarse al contexto del problema lo ms
posible por medio de la simulacin de los elementos que intervienen en su resolucin y basa su
desarrolloenlossiguientesconceptos:
9 Abstraccin:Permitecapturarlascaractersticasycomportamientossimilaresdeunconjuntode
objetosconelobjetivodedarlesunadescripcinformal.Laabstraccinesclaveenelprocesode
anlisisydiseoorientadoaobjetos,yaquemedianteellapodemosllegaraarmarunconjunto
declasesquepermitanmodelarlarealidad,oelproblemaquesequiereatacar.
9 Encapsulacin: Significa reunir todos los elementos que pueden considerarse pertenecientes a
una misma entidad, al mismo nivel de abstraccin. Esto permite aumentar la cohesin de los
componentes del sistema. Algunos autores confunden este concepto con el principio de
ocultacin,principalmenteporquesesuelenemplearconjuntamente.
9 Modularidad: Propiedad que permite subdividir una aplicacin en partes ms pequeas
(llamadasmdulos),cadaunadelascualesdebesertanindependientecomoseaposibledela
aplicacinensydelasrestantespartes.Enorientacinaobjetosesalgoconsustancial,yaque
losobjetossepuedenconsiderarlosmdulosmsbsicosdelsistema.
9 Principiodeocultacin:Aslalaspropiedadesdeunobjetocontrasumodificacinporquienno
tenga derecho a acceder a ellas. Reduce la propagacin de efectos colaterales cuando se
producencambios.
9 Polimorfismo: Consiste en reunir bajo el mismo nombre comportamientos diferentes. La
seleccindeunouotrodependedelobjetoqueloejecute.
9 Herencia: Relacin que se establece entre objetos en los que unos utilizan las propiedades y
comportamientos de otros formando una jerarqua. Los objetos heredan las propiedades y el
comportamientodetodaslasclasesalasquepertenecen.
9 Recoleccin de basura: Tcnica por la cual el entorno de objetos se encarga de destruir
automticamentelosobjetos,yportantodesvincularsumemoriaasociada,quehayanquedado
sinningunareferenciaaellos.

2.1.Ventajasdelaorientacinaobjetos.
Caso prctico
Adems la orientacin a objetos cuenta con una serie de ventajas que nos vienen muy bien a los
que nos dedicamos a la construccin de software, sobre todo porque nos facilitan su construccin y
mantenimiento al dividir un problema en mdulos claramente independientes y que, adems, cuando
ya tenemos suficientemente probados y completos podemos utilizar en otras aplicaciones, la verdad
que ahorra bastante tiempo y esfuerzo... argumenta Juan.

Esteparadigmatienelassiguientesventajasconrespectoaotros:
1. Permite desarrollar software en mucho menos tiempo, con menos coste y de mayor calidad
gracias a la reutilizacin (utilizar artefactos existentes durante la construccin de nuevo software. Esto aporta calidad y
seguridad al proyecto, ya que el cdigo reutilizado ya ha sido probado) porque al ser completamente modular
facilitalacreacindecdigoreusabledandolaposibilidaddereutilizarpartedelcdigoparael
desarrollodeunaaplicacinsimilar.
2. Seconsigueaumentarlacalidaddelossistemas,hacindolosmsextensibles(principiodediseoenel
desarrollodesistemasinformticosquetieneencuentaelfuturocrecimientodelsistema.Midelacapacidaddeextenderunsistemay

Tema5

Entornosdedesarrollo

elesfuerzonecesarioparaconseguirlo)yaqueesmuysencilloaumentaromodificarlafuncionalidaddela

aplicacinmodificandolasoperaciones.
3. Elsoftwareorientadoaobjetosesmsfcildemodificarymantenerporquesebasaencriterios
de modularidad y encapsulacin en el que el sistema se descompone en objetos con unas
responsabilidadesclaramenteespecificadaseindependientesdelresto.
4. La tecnologa de objetos facilita la adaptacin al entorno y el cambio haciendo aplicaciones
escalables (propiedad deseable de un sistema, red o proceso que le permite hacerse ms grande sin rehacer su diseo y sin
disminuir su rendimiento). Es sencillo modificar la estructura y el comportamiento de los objetos sin
tenerquecambiarlaaplicacin.

Cul es la afirmacin ms adecuada al paradigma de orientacin a objetos?


Permite crear aplicaciones basadas en mdulos de software que representan objetos del
entorno del sistema, por lo que no son apropiados para dar solucin a otros problemas.
Tiene como objetivo la creacin de aplicaciones basadas en abstracciones de datos
estticas y de difcil ampliacin
Permite crear aplicaciones cuyo mantenimiento es complicado porque las
modificaciones influyen a todos los objetos del sistema
Permite crear aplicaciones basadas en mdulos que pueden reutilizarse, de fcil
modificacin y que permiten su ampliacin en funcin del crecimiento del sistema

2.2.Clases,atributosymtodos.
Caso prctico
De acuerdo, ahora conocemos las caractersticas bsicas y ventajas de usar la orientacin a
objetos, qu ms nos hara falta? Quiz sus estructuras bsicas?
Yo puedo contaros algo sobre eso, comenta Juan lo estudi en el Ciclo Formativo.

Los objetos de un sistema se abstraen, en funcin de sus caractersticas comunes, en clases. Una
claseestformadaporunconjuntodeprocedimientosydatosqueresumencaractersticassimilares
de un conjunto de objetos. La clase tiene dos propsitos: definir abstracciones y favorecer la
modularidad.
Unaclasesedescribeporunconjuntodeelementosquesedenominanmiembrosyqueson:
9 Nombre.
9 Atributos: conjunto de caractersticas asociadas a una clase. Pueden verse como una relacin
binariaentreunaclaseyciertodominioformadoportodoslosposiblesvaloresquepuedetomar
cada atributo. Cuando toman valores concretos dentro de su dominio definen el estado del
objeto.Sedefinenporsunombreysutipo,quepuedesersimpleocompuestocomootraclase.
9 Protocolo: Operaciones (mtodos, mensajes) que manipulan el estado. Un mtodo es el
procedimientoofuncinqueseinvocaparaactuarsobreunobjeto.Unmensajeeselresultado
de cierta accin efectuada por un objeto. Los mtodos determinan como actan los objetos
cuando reciben un mensaje, es decir, cuando se requiere que el objeto realice una accin
descrita en un mtodo se le enva un mensaje. El conjunto de mensajes a los cuales puede
responderunobjetoseleconocecomoprotocolodelobjeto.
Porejemplo,sitenemosunobjetoicono,tendrcomoatributoseltamao,olaimagenquemuestra,
y su protocolo puede constar de mensajes invocados por el clic del botn de un ratn cuando el
usuario pulsa sobre el icono. De esta forma los mensajes son el nico conducto que conectan al
objetoconelmundoexterior.

Losvaloresasignadosalosatributosdeunobjetoconcretohacenaeseobjetosernico.
Laclasedefinesuscaractersticasgeneralesysucomportamiento.

DAW

Diseoorientadoaobjetos.Elaboracindediagramasestructurales

Un objeto es una concrecin de una clase, es decir, en un objeto se concretan valores


para los atributos definidos en la clase, y adems, estos valores podrn modificarse a
travs del paso de mensajes al objeto.
Verdadero
Falso

2.3.Visibilidad.
Caso prctico
Pues creo que ya lo tenemos todo...
No creas, dice Ada que siempre sabe algo ms, que el resto desconoce en orientacin a
objetos, existe un concepto muy importante, que es el de visibilidad, permite definir hasta qu punto
son accesibles los atributos y mtodos de una clase, por regla general, cuando definimos atributos los
ocultamos, para que nadie pueda modificar el estado del objeto, y dejamos los mtodos abiertos,
porque son los que permiten el paso de mensajes entre objetos...

El principio de ocultacin es una propiedad de la orientacin a objetos que consiste en aislar el


estadodemaneraqueslosepuedecambiarmediantelasoperacionesdefinidasenunaclase.Este
aislamientoprotegealosdatosdequeseanmodificadosporalguienquenotengaderechoaacceder
aellos,eliminandoefectossecundarioseinteracciones.Dalugaraquelasclasessedividanendos
partes:
1. Interfaz:capturalavisinexterna deunaclase,abarcandolaabstraccindel comportamiento
comnalosejemplosdeesaclase.
2. Implementacin:comprendecmoserepresentalaabstraccin,ascomolosmecanismosque
conducenalcomportamientodeseado.
Existendistintosnivelesdeocultacinqueseimplementanenloquesedenominavisibilidad.Esuna
caracterstica que define el tipo de acceso que se permite a atributos y mtodos y que podemos
establecercomo:
9 Pblico:Sepuedenaccederdesdecualquierclaseycualquierpartedelprograma.
9 Privado:Slosepuedenaccederdesdeoperacionesdelaclase.
9 Protegido:Slosepuedenaccederdesdeoperacionesdelaclaseodeclasesderivadas(cuandose
utilizalaherenciaeslaclasequeheredalosatributosymtodosdelaclasebase)encualquiernivel.
Comonormageneralalahoradedefinirlavisibilidadtendremosencuentaque:
9 Elestadodebeserprivado.Losatributosdeunaclasesedebenmodificarmediantemtodosde
laclasecreadosatalefecto.
9 Lasoperacionesquedefinenlafuncionalidaddelaclasedebenserpblicas.
9 Lasoperacionesqueayudanaimplementarpartedelafuncionalidaddebenserprivadas(sinose
utilizandesdeclasesderivadas)oprotegidas(siseutilizandesdeclasesderivadas).

Desde dnde se puede acceder al estado de una clase?


Desde cualquier zona de la aplicacin.
Desde la clase y sus clases derivadas.
Solo desde los mtodos de la clase.

Tema5

Entornosdedesarrollo

2.4.Objetos.Instanciacin.
Caso prctico
Antonio ha asistido a esta reunin como parte de su formacin laboral, pero se encuentra algo
perdido entre tantos conceptos:
A ver, estamos todo el tiempo hablando de que las clases tienen atributos y mtodos, luego, que
los objetos se pasan mensajes, que son los que modifican los atributos, entonces, no son lo
mismo?, qu diferencia hay?

Una clase es una abstraccin que define las caractersticas comunes de un conjunto de objetos
relevantesparaelsistema.
Cadavezqueseconstruyeunobjetoenunprogramainformticoapartirdeunaclasesecrealoque
seconocecomoinstancia(objetodeunaclase,creadoentiempodeejecucinconunestadoconcreto)deesaclase.Cada
instanciaenelsistemasirvecomomodelodeunobjetodelcontextodelproblemarelevanteparasu
solucin, que puede realizar un trabajo, informar y cambiar su estado, y "comunicarse" con otros
objetosenelsistema,sinrevelarcmoseimplementanestascaractersticas.
Unobjetosedefinepor:
9 Suestado:eslaconcrecindelosatributosdefinidosenlaclaseaunvalorconcreto.
9 Sucomportamiento:definidoporlosmtodospblicosdesuclase.
9 Su tiempo de vida: intervalo de tiempo a lo largo del programa en el que el objeto existe.
Comienzaconsucreacinatravsdelmecanismodeinstanciacinyfinalizacuandoelobjetose
destruye.
Laencapsulacinyelocultamientoaseguranquelosdatosdeunobjetoestnocultos,conloqueno
sepuedenmodificaraccidentalmenteporfuncionesexternasalobjeto.
Mientras que un objeto es una entidad que existe en el tiempo y el espacio, una clase representa
slounaabstraccin,"laesencia"delobjeto,sisepuededeciras.
GradyBooch
Ejemplodeobjetos:
9
9
9
9
9

Objetosfsicos:avionesenunsistemadecontroldetrficoareo,casas,parques.
Elementosdeinterfacesgrficasdeusuario:ventanas,mens,teclado,cuadrosdedilogo.
Animales:animalesvertebrados,animalesinvertebrados.
Tiposdedatosdefinidosporelusuario:Datoscomplejos,Puntosdeunsistemadecoordenadas.
Alimentos:carnes,frutas,verduras.

Existeuncasoparticulardeclase,llamadaclaseabstracta,que,porsuscaractersticas,nopuedeser
instanciada.Sesuelenusarparadefinirmtodosgenricosrelacionadosconelsistemaquenosern
traducidosaobjetosconcretos,oparadefinirmtodosdebaseparaclasesderivadas.

DAW

Diseoorientadoaobjetos.Elaboracindediagramasestructurales

3.UML.
Caso prctico
Ahora que el equipo conoce los fundamentos de la orientacin a objetos llega el momento de ver
cmo pueden poner en prctica los conocimientos adquiridos.
Ada est interesada, sobre todo, en que sean capaces de representar las clases de los proyectos que
estn desarrollando y como se relacionan entre ellas. Para ello decide comenzar comentando las
caractersticas de un lenguaje de modelado de sistemas orientados a objetos llamado UML. Este
lenguaje permite construir una serie de modelos, a travs de diagramas de diferentes visiones de un
proyecto.
Es importante apreciar como estos modelos, nos van a permitir poner nuestras ideas en comn
utilizando un lenguaje especfico, facilitarn la comunicacin, que como sabis, es algo esencial para
que nuestro trabajo en la empresa sea de calidad.

Una empresa de software con xito es aquella que produce de manera consistente software de
calidadquesatisfacelasnecesidadesdelosusuarios.Elmodeladoeslaparteesencialdetodaslas
actividadesqueconducenalaproduccindesoftwaredecalidad.
UML (Unified Modeling Language o Lenguaje Unificado de Modelado) es un conjunto de
herramientas que permite modelar, construir y documentar los elementos que forman un sistema
softwareorientadoaobjetos.Sehaconvertidoenelestndardefactodelaindustria,debidoaque
hasidoconcebidoporlosautoresdelostresmtodosmsusadosdeorientacinaobjetos:Grady
Booch,IvarJacobsonyJimRumbaugh,dehecholasracestcnicasdeUMLson:
9 OMTObjectModelingTechnique(Rumbaughetal.)
9 MtodoBooch(G.Booch)
9 OOSEObjectOrientedSoftwareEngineering(I.Jacobson)

UMLpermitealosdesarrolladoresydesarrolladorasvisualizarelproductodesutrabajoen
esquemas o diagramas estandarizados denominados modelos (representacin grfica o esquemtica de
unarealidad,sirveparaorganizarycomunicardeformaclaraloselementosqueinvolucranuntodo.Esquematericodeunsistemaode
una realidad compleja que se elabora para facilitar su comprensin y el estudio de su comportamiento) que representan el

sistemadesdediferentesperspectivas.
Porquestilmodelar?
9 Porque permite utilizar un lenguaje comn que facilita la comunicacin entre el equipo de
desarrollo.
9 Con UML podemos documentar todos los artefactos (informacin que es utilizada o producida mediante un
proceso de desarrollo de software. Pueden ser artefactos un modelo, una descripcin o un software) de un proceso de
desarrollo (requisitos (condiciones que debe cumplir un proyecto software. Suelen venir definidos por el cliente. Permiten
definir los objetivos que debe cumplir un proyecto software), arquitectura, pruebas, versiones,...) por lo que se
disponededocumentacinquetrasciendealproyecto.
9 Hayestructurasquetrasciendenlorepresentableenunlenguajedeprogramacin,comolasque
hacenreferenciaalaarquitecturadelsistema(conjuntodedecisionessignificativasacercadelaorganizacindeun
sistemasoftware,laseleccindeloselementosestructuralesapartirdeloscualessecomponeelsistema,ylasinterfacesentreellos.
Juntoconsucomportamiento,talycomoseespecificaenlascolaboracionesentreesoselementos,lacomposicindeestoselementos
estructurales y de comportamiento en subsistemas progresivamente mayores y el estilo arquitectnico que gua esta organizacin,
estoselementosysusinterfaces,suscolaboracionesysucomposicin),utilizandoestastecnologaspodemosincluso

indicarqumdulosdesoftwarevamosadesarrollarysusrelaciones,oenqunodoshardware
seejecutarncuandotrabajamosconsistemasdistribuidos.
9 Permite especificar todas las decisiones de anlisis, diseo e implementacin, construyndose
modelosprecisos,noambiguosycompletos.

Tema5

Entorrnosdedesaarrollo

ngeniera directa
d
Adems UML puede conectarse a lenguajes de proggramacin mediante in
nversa
(transformacinn de un modeloo en cdigo a travs de su traaduccin a un determinado lennguaje de progrramacin) e in
(transformacinn del cdigo enn un modelo a travs de su trraduccin desde un determinadoo lenguaje de pprogramacin), como
veremos.

3.1.Tipo
osdediag
gramasUM
ML.
Caso prcttico
Cuando Ma
ara estudi el
e ciclo form
mativo no lleg
g a ver esta
as tecnologa
as con tanto detenimientto, as
que est assimilndolo to
odo poco a poco:
p
De acuerrdo, UML describe
d
el sistema
s
med
diante una serie
s
de mo
odelos que o
ofrecen diferrentes
puntos de vista. Pero qu tenem
mos que haccer para rep
presentar un
n modelo?, en qu co
onsiste
exactamentte?
Utilizarem
mos diagram
mas, que son
n unos graffos en los que
q
los nodo
os definen llos elemento
os del
diagrama, y los arcos la
as relacioness entre ellos.

UMLdefineeunsistemaacomounaccoleccinde
emodelosquedescriben
nsusdiferen
ntesperspecctivas.
Los modelo
os se implem
mentan en una serie de diagramas que
q son reprresentacionees grficas de una
coleccin de
d elemento
os de modelado, a menudo dibu
ujado como un grafo conexo de arcos
(relaciones))yvrtices(o
otroselemen
ntosdelmod
delo).
declases
deesstructurascompu
uestas
decomponentes
estructural
dedespliege
deobjetos
Diagraama

depaquetes
deseecuencia
deactividad
decolaaboracin
deinteraccin
deecomportamientto

deresumendeinteraccin
decasosdeuso
o
dettiempo
demquinasdeesttado

Undiagram
maUMLseco
omponedecuatrotiposd
deelemento
os:
9 Estructu
uras:Sonlossnodosdelggrafoydefineneltipode
ediagrama.
9 Relaciones:Sonlosarcosdelgrafoqueseestablecenen
ntreloselem
mentosestruccturales.
9 Notas: Serepresentancomoun
ncuadrodondepodemo
osescribirco
omentariosq
quenosayudena
entendeeralgnconceptoquequeramosrep
presentar.
9 Agrupaciones: Se utilizan
u
cuan
ndo modelam
mos sistemas grandes para facilitar su desarrolllo por
bloquess.
yseclasificaanen:
9 Diagram
masestructu
urales:Repreesentanlaviisinestticaadelsistemaa.Especificanclasesyob
bjetos
ycomosedistribuyenfsicamen
nteenelsistema.

10

DAW

Diseoorientadoaobjetos.Elaboracindediagramasestructurales

9 Diagramasdecomportamiento:muestranlaconductaentiempodeejecucindelsistema,tanto
desdeelpuntodevistadelsistemacompletocomodelasinstanciasuobjetosquelointegran.
Dentrodeestegrupoestnlosdiagramasdeinteraccin.
En la imagen aparecen todos los diagramas organizados segn su categora. Se han destacado
aquellosquepertenecenalestndarUML2.0,msnovedosos.Entotalsedescribentrecediagramas
para modelar diferentes aspectos de un sistema, sin embargo no es necesario usarlos todos,
dependerdeltipodeaplicacinagenerarydelsistema,esdecir,sedebegenerarundiagramaslo
siesnecesario.

Un80%delasaplicacionessepuedenmodelarconel20%delosdiagramasUML.
EnelsiguienteenlacetienesundocumentoconladescripcindelosdiagramasUML.
DiagramasUML

3.2.HerramientasparalaelaboracindediagramasUML.
Caso prctico
Ahora que conocemos los diagramas que podemos generar para describir nuestro sistema, sera
buena idea buscar alguna herramienta que nos ayude a elaborarlos. No sera nada prctico andar
todo el da con la libreta a cuestas!
Lo que nos permite conocer a un buen desarrollador es que siempre hace un buen esquema inicial
de cada proyecto, y eso puede hacerse en miles de soportes, desde una libreta a un servilleta,
cualquier cosa que te permita hacer un pequeo dibujo, no obstante tienes razn. El uso de
herramientas, adems de facilitar la elaboracin de los diagramas, tiene otras ventajas, como la
integracin en entornos de desarrollo, con lo que podremos generar el cdigo base de nuestra
aplicacin desde el propio diagrama.
-Guau, eso s es facilitar el trabajo!

Laherramientamssimplequesepuedeutilizarparagenerardiagramaseslpizypapel,hoyda,sin
embargo, podemos acceder a herramientas CASE que facilitan en gran manera el desarrollo de los
diagramasUML.Estasherramientassuelencontarconunentornodeventanastipowysiwyg(What
YouSeeIsWhatYouGet),permitendocumentarlosdiagramaseintegrarseconotrosentornosde
desarrolloincluyendolageneracinautomticadecdigoyprocedimientosdeingenierainversa.
Podemosencontrar,entreotras,lassiguientesherramientas:

9 RationalSystemsDeveloperdeIBM:Herramientapropietariaquepermiteeldesarrollode
proyectossoftwarebasadosenlametodologaUML.Desarrolladaenorigenporloscreadoresde
UMLhasidorecientementeabsorbidaporIBM.Ofreceversionesdeprueba,ysoftwarelibrepara
eldesarrollodediagramasUML.
SisientescuriosidadpuedesseguiresteenlacealapginaoficialdeRationalSystemsDeveloper:

http://www-01.ibm.com/software/rational/
9 VisualParadigmforUML(VPUML):Incluyeunaversinparausonocomercialquesedistribuye
libremente sin ms que registrarse para obtener un archivo de licencia. Incluye diferentes
mdulospararealizardesarrolloUML,disearbasesdedatos,realizaractividadesdeingeniera
inversaydisearconAgile.EscompatibleconlosIDEdeEclipse,VisualStudio.net,IntellijDEAy
NetBeans.Multiplataforma,incluyeinstaladoresparaWindowsyLinux.

Aqu tienes el enlace a la pgina oficial de Visual Paradigm.


http://www.visual-paradigm.com/
9 ArgoUML:sedistribuyebajolicenciaEclipse.SoportalosdiagramasdeUML1.4,ygeneracdigo
parajavayC++.Parapoderejecutarlosenecesitalaplataformajava.Admiteingenieradirectae
inversa.

11

Tema5

Entornosdedesarrollo

AqutieneselenlacealapginaoficialdeArgoUML.
http://argouml.tigris.org/
3.2.1.VisualParadigm.
Para realizar el ejemplo de desarrollo de diagramas de clases que veremos a continuacin se ha
determinadousarlaherramientaVisualParadigmforUMLporlossiguientesmotivos:
9

9
9
9
9
9

Incluyeunaversinparausonocomercial,aunquesedebeaclararquevieneconfuncionalidad
limitada, que se distribuye bajo licencia LGPL. Es posible solicitar una licencia de prueba para
treintadasqueutilizaremoscuandoveamoslapartedeingenieradirectaeinversaygeneracin
decdigo.
Esmultiplataforma.
CompatibleconUML2.0.
AdmitelageneracindeinformesenformatosPDF,HTMLyotros.
IncluyeunmduloparaintegrarseconNetBeans.
Permite realizar actividades de ingeniera inversa y directa. Esto junto con la consideracin
anterior permite generar cdigo en un proyecto NetBeans directamente a partir del diseo de
clases,ahorrndonostrabajo.

Enelsiguienteenlaceencontrarsinformacinsobredndeencontrarestaherramientaysuproceso
deinstalacin.

Descarga e instalacin de Visual Paradigm


Las herramienta CASE para la elaboracin de diagramas UML sirven solo para la
generacin de los diagramas asociados al anlisis y diseo de una aplicacin.
Verdadero
Falso
.

3.3.Diagramasdeclases.
Caso prctico
En la empresa ya han instalado Visual Paradigm, Juan y Mara estn empezando a investigar su
funcionamiento, y como utilizarlo desde un proyecto de NetBeans.
Empecemos por los diagramas estructurales, entre ellos el ms importante es el diagrama de
clases, fjate, representa la estructura esttica del sistema y las relaciones entre las clases.

Dentro de los diagramas estructurales, y de todos en general, es el ms importante porque


representa los elementos estticos del sistema, sus atributos y comportamientos, y como se
relacionanentreellos.Contienelasclasesdeldominiodelproblema,yapartirdesteseobtendrn
lasclasesqueformarndespuselprogramainformticoquedarsolucinalproblema.
Enundiagramadeclasespodemosencontrarlossiguienteselementos:
9

Clases:recordemosquesonabstraccionesdeldominiodelsistemaquerepresentanelementos
del mismo mediante una serie de caractersticas, que llamaremos atributos, y su
comportamiento, que sern mtodos. Los atributos y mtodos tendrn una visibilidad que
determinar quien puede acceder al atributo o mtodo. Por ejemplo una clase puede
representarauncoche,susatributossernlacilindrada,lapotenciaylavelocidad,ytendrdos
mtodos,unoparaacelerar,quesubirlavelocidad,yotroparafrenarquelabajar.

12

DAW

Diseoorientadoaobjetos.Elaboracindediagramasestructurales

Relaciones:eneldiagramarepresentanrelacionesrealesentreloselementosdelsistemaalos
quehacenreferencialasclases.Puedenserdeasociacin,agregacinyherencia.Porejemplosi
tengounaclasepersona,puedoestablecerunarelacinconduceentrepersonaycoche.
9 Notas:Serepresentancomouncuadrodondepodemosescribircomentariosquenosayudena
entenderalgnconceptoquequeramosrepresentar.
9 Elementosdeagrupacin:Seutilizancuandohayquemodelarunsistemagrande,entonceslas
clasesysusrelacionesseagrupanenpaquetes,queasuvezserelacionanentres.

Ejercicio resuelto
Crear un diagrama de clases nuevo en Visual Paradigm UML que incluya su nombre y su
descripcin.
Para crear un diagrama de clases en VPUML
seleccionamos Archivo >> Nuevo Diagrama y
seleccionamos Diagrama de clases. Tambin podemos
accederalNavegadordediagramas,queseencuentraen
elpaneldelaizquierdayendiagramasdeclaseshacerclic
conelbotnsecundarioySeleccionarNuevodiagramade
clases. Cuando generamos un diagrama nuevo tenemos
que indicar su nombre y una descripcin. Esto es
importante para la generacin de la documentacin
posterior.
Cuando creamos un diagrama nuevo aparece en blanco
en el panel central de la aplicacin. Si es necesario
cambiar
sus
propiedades
podemos
hacerlo
seleccionndolo en el Navegador de diagramas, a travs
delaopcin"Abrir<nombre>Specification"delmencontextual.Tambinpodemosabrirelmen
contextual,haciendoclicconelbotnderechodelratnsobreelpanelcentraldelaaplicacin.
3.3.1.Creacindeclases.
Una clase se representa en el diagrama como un rectngulo divido en tres filas, arriba aparece el
nombre de la clase, a continuacin los atributos con su visibilidad y despus los mtodos con su
visibilidadqueestrepresentadaporelsignomenos""paralosatributos(privados)yporelsigno
ms"+"paralosmtodos(pblicos).

"Una clase es una descripcin de un conjunto de objetos que manifiestan los mismos
atributos,operaciones,relacionesylamismasemntica."
(ObjectModellingandDesign[Rumbaughtetal.,1991])

"Unaclaseesunconjuntodeobjetosquecompartenunaestructurayuncomportamiento
comunes."
[BoochG.,1994]

Ejercicio resuelto
Crearunaclasenuevaeneldiagramadeclasesdelpuntoanterior.

13

Tema5

Entornosdedesarrollo

Cuando generamos un diagrama nuevo aparece un


panel con los elementos que podemos aadir al
diagrama. Si hacemos clic sobre el icono que genera
una clase nueva y a continuacin sobre el lienzo
aparecer un cuadro para definir el nombre de la
nueva clase. Posteriormente, cuando la clase est
creada si hacemos clic con el botn secundario sobre
la clase y seleccionamos "Abrir Especificacin"
podremosaadiratributosymtodos.

Al crear una clase es obligatorio definir nombre, atributos y mtodos.


Verdadero
Falso

3.3.2.Atributos.
Formanlaparteestticadelaclase.Sonunconjuntodevariablesparalasqueesprecisodefinir:
9
9

Sunombre.
Su tipo, puede ser un tipo simple, que coincidir con el tipo de dato que se seleccione en el
lenguajedeprogramacinfinalausar,ocompuesto,pudiendoincluirotraclase.

Adems se pueden indicar otros datos como un valor inicial o su visibilidad. La visibilidad de un
atributosepuededefinircomo:
9
9
9

Pblico:Sepuedenaccederdesdecualquierclaseycualquierpartedelprograma.
Privado:Slosepuedenaccederdesdeoperacionesdelaclase.
Protegido: Slo se pueden acceder desde operaciones de la clase o de clases derivadas en
cualquiernivel.
9 Paquete: Se puede acceder desde las operaciones de las clases que pertenecen al mismo
paquetequelaclasequeestamosdefiniendo.Seusacuandoellenguajedeimplementacines
Java.

Ejercicio resuelto
Crearunaclasedenombre"Mdulo"yquetengatresatributos:
9
9
9

Nombre,detipostring.
DuracindetipoInt.
Contenidosdetipostring.

Crear la clase como hemos visto en el


punto anterior y modificar su nombre a
"Mdulo". Para aadir un atributo a una
clase basta con seleccionar Aadir
atributodelmencontextualyescribirsu
nombre. Si queremos aadir ms
informacin podemos hacerlo desde la
especificacin de la clase en la pestaa
Atributos, en la imagen vemos la

14

DAW

Diseoorientadoaobjetos.Elaboracindediagramasestructurales

especificacin de una clase llamada Mdulo, y de su atributo Contenidos para el que se ha


establecidosutipo(string)ysudescripcin.Pordefectolavisibilidaddelosatributosesprivadoyno
secambiaamenosqueseanecesario.
As queda la representacin de la clase, los guiones al lado del atributo
significanvisibilidadprivada.
Tenemoslaposibilidaddeaadir,desdeelmencontextualdelaclase,conelatributoseleccionado
dos mtodos llamados getter y setter que se utilizan para leer y establecer el valor del atributo
cuando el atributo no es calculado, con la creacin de estos mtodos se contribuye al
encapsulamientoylaocultacindelosatributos.

Cmo sabemos que los atributos tienen visibilidad privada en el diagrama?


Porqueaparecenacompaadosdelsmboloms+
Porqueaparecenacompaadosdelsmboloalmohadilla#
Porqueaparecenacompaadosdelsmbolo~
Porqueapareceacompaadodelsmbolomenos
3.3.3.Mtodos.
Representanlafuncionalidaddelaclase,esdecir,qupuedehacer.Paradefinirunmtodohayque
indicarcomomnimosunombre,parmetros,eltipoquedevuelveysuvisibilidad.Tambinsedebe
incluirunadescripcindelmtodoqueaparecerenladocumentacinquesegeneredelproyecto.
Existenuncasoparticulardemtodo,elconstructordelaclase,quetienecomocaractersticaque
nodevuelveningnvalor.Elconstructortieneelmismonombredelaclaseyseusaparaejecutarlas
accionesnecesariascuandoseinstanciaunobjetodelaclase.Cunadohayaquedestruirelobjetose
podrutilizarunafuncinparaejecutarlasoperacionesnecesariascuandoelobjetodejedeexistir,
quedependerndellenguajequeseutilice.

Ejercicio resuelto
Aadiralaclasecreadaanteriormentelosmtodos:
9
9

matricular(alumno:Alumno):void
asignarDuracin(duracion:int):void

El mtodo ms directo para crear un mtodo es en el men


contextualseleccionar"Aadiroperacin"yescribirlasignatura
delmtodo:
+nombre(<lista_parmetros>) : tipo_devuelto

Tambinsepuedeaadirdesdelaespecificacindelaclaseenla
pestaaOperations.
En la imagen vemos la especificacin de la clase y del mtodo "asignarDuracin" que asigna el
nmerodehorasdelmdulo.
El signo + en la signatura del mtodo indica que es pblico. As
quedalaclaseeneldiagrama:

15

Tema5

Entornosdedesarrollo

Cul es el mtodo que no devuelve ningn tipo de dato?


El constructor
Todos los mtodos devuelven algo, aunque sea void
~<nombre_clase>

3.4.Relacionesentreclases.
Caso prctico

Es fcil, lo ves?, por ejemplo, para la aplicacin de venta por Internet, tendramos como
clases socio, pedido o artculo, los socios se caracterizan por sus datos personales, los pedidos
por su nmero, fecha, o localidad de destino y los artculos por el cdigo o su descripcin.
Si eso lo veo claro, pero, cmo lo ponemos todo junto? Cmo se conecta el socio con el
pedido y el artculo?
Unarelacinesunaconexinentredosclasesqueincluimoseneldiagramacuandoaparece
algntipoderelacinentreellaseneldominiodelproblema.
Serepresentancomounalneacontinua.Losmensajes"navegan"porlasrelacionesentreclases,es
decir, los mensajes se envan entre objetos de clases relacionadas, normalmente en ambas
direcciones,aunqueavecesladefinicindelproblemahacenecesarioquesenavegueenunasola
direccin,entonceslalneafinalizaenpuntadeflecha.
Las relaciones se caracterizan por su cardinalidad, que representa cuantos objetos de una clase se
puedeninvolucrarenlarelacin,ypuedenser:
9
9
9

Deherencia.
Decomposicin.
Deagregacin.

Ejercicio resuelto
Crea una clase nueva llamada Alumno y establece una relacin de asociacin con el nombre
matrculaentrestaylaclaseMdulo.
Creamoslaclasecomohemosvistoenpuntosanteriores.
Para crear una relacin utilizamos el elemento asociacin
delapaletaobieneliconoAssociation>>Classdelmen
contextual de la clase. Otra forma consiste en hacer clic
sobre la clase Alumno, seleccionar Association >> Class y estirar la lnea hasta la clase Mdulo,
aparecerunrecuadroparanombrarlarelacin.

Es posible establecer relaciones unarias de una clase consigo misma. En el


ejemplo se ha rellenado en la especificacin de la relacin los roles y la
multiplicidad.

Para obtener las relaciones de un diagrama nos basamos en la descripcin de los


requisitos del dominio, pero, se pueden crear relaciones en el diagrama que no
aparezcan especificadas en la lista de requisitos del problema?

16

DAW

Diseoorientadoaobjetos.Elaboracindediagramasestructurales

No se puede, las relaciones se deben extraer de la descripcin del problema, si no lo


hiciramos as nos estaramos inventando informacin.
Ssepuede,avecesseinfiereinformacinoseconocencosasdelproblemaqueno
aparecenenladescripcindelosrequisitos.
3.4.1.Cardinalidadomultiplicidaddelarelacin
Unconceptomuyimportanteeslacardinalidaddeunarelacin,representacuantosobjetosdeuna
clasesevanarelacionarconobjetosdeotraclase.Enunarelacinhaydoscardinalidades,unapara
cadaextremodelarelacinypuedentenerlossiguientesvalores:

Significado de las cardinalidades.


Cardinalidad
Significado
1
Uno y slo uno
0..1
Cero o uno
N..M
Desde N hasta M
*
Cero o varios
0..*
Cero o varios
1..*
Uno o varios (al menos uno)

Porejemplo,sitengolasiguienterelacin:
quiere decir quelosalumnossematriculan enlos mdulos,en concreto,queunalumnosepuede
matricularenunoamsmdulosyqueunmdulopuedetenerningnalumno,unoovarios.
Oestaotra:
enlaqueunprofesorpuedeimpartirunoovariosmdulos,mientrasqueunmduloesimpartido
sloporunprofesor.

Ejercicio resuelto
Establece la cardinalidad de la relacin que has creado en el punto
anteriorparaindicarqueunalumnodebeestarmatriculadoenalmenos
un mdulo, o varios y que para cada mdulo se puede tener ningn
alumno,unoovarios.
Si queremos establecer la cardinalidad abrimos la especificacin de la
relacinyestablecemoselapartadoMultiplicidadaalgunodelosvalores
queindica,sinecesitamosutilizaralgnvalorconcretotambinpodemos
escribirlonosotrosmismos.Enelcasoquenosocupaseleccionaremosla
cardinalidad0..*paralosalumnosy1..*paralosmdulos.
3.4.2.Relacindeherencia.
Laherenciaesunapropiedadquepermitealosobjetosserconstruidosapartirdeotrosobjetos,es
decir, la capacidad de un objeto para utilizar estructuras de datos y mtodos presentes en sus
antepasados.
El objetivo principal de la herencia es la reutilizacin, poder utilizar cdigo desarrollado con
anterioridad. La herencia supone una clase base y una jerarqua de clases que contiene las clases

17

Tema5

Entornosdedesarrollo

derivadas.Lasclasesderivadaspuedenheredarelcdigoylosdatosdesuclasebase,aadiendosu
propiocdigoespecialydatos,inclusocambiaraquelloselementosdelaclasebasequenecesitanser
diferentes,esporestoquelosatributos,mtodosyrelacionesdeunaclasesemuestranenelnivel
msaltodelajerarquaenelquesonaplicables.
Tipos:
1. Herencia simple: Una clase puede tener slo un ascendente. Es decir una subclase puede
heredardatosymtodosdeunanicaclasebase.
2. Herencia mltiple: Una clase puede tener ms de un ascendente inmediato, adquirir datos y
mtodosdemsdeunaclase.
Representacin:
Eneldiagramadeclasesserepresentacomounaasociacinenlaqueelextremodelaclasebase
tieneuntringulo.

Ejercicio resuelto
En nuestro diagrama tenemos Alumnos y Profesores. An no
hemos hablado de su definicin y estructura, pero en nuestro
sistematantounalumnocomounprofesortienenunascaractersticascomunescomoelnombre,la
fechadenacimientooelcorreoelectrnicoporelhechodeserpersonas:
Transformaestediagramaparahacerusodelaherenciaaadiendounaclase"Persona".
Podemos utilizar la relacin de herencia para crear una clase
nueva que se llame Persona y que recoja las caractersticas
comunes de profesor y alumno. Persona ser la clase base y
ProfesoryAlumnolasclasesderivadas.
Como los atributos Nombre, FechaNacimiento y
correoElectronicose heredandela clasebaseno hacefalta que
aparezcan en las clases derivadas, por lo que las hemos eliminado. Despus podemos aadir
atributos o mtodos propios a las clases derivadas. La relacin se aade de igual manera que una
relacindeasociacin,peroseleccionandolaopcinGeneralization.

He creado una clase persona cuyos atributo son Nombre, fechaContratacin y


numeroCuenta. De esta clase derivan por herencia la clase Empleado y
JefeDepartamento. Cmo debe declararse un mtodo en la clase Persona que se llame
CalculaAntigedad que se usa slo para calcular el sueldo de los empleados y jefes de
departamento?
Pblico
Privada
Protegida
Paquete
3.4.3.Agregacinycomposicin.
Muchasvecesunadeterminadaentidadexistecomounconjuntodeotrasentidades.Enestetipode
relaciones un objeto componente se integra en un objeto compuesto. La orientacin a objetos
recogeestetipoderelacionescomodosconceptos:laagregacinylacomposicin.

18

DAW

Diseoorientadoaobjetos.Elaboracindediagramasestructurales

Laagregacinesunaasociacinbinariaquerepresentaunarelacintodoparte(pertenece
a,tieneun,espartede).Loselementospartepuedenexistirsinelelementocontenedoryno
sonpropiedadsuya.Porejemplo,uncentrocomercialtieneclientesounequipotieneunos
miembros.Eltiempodevidadelosobjetosnotieneporqucoincidir.
En el siguiente caso, tenemos un ordenador que se compone de
piezas sueltas que pueden ser sustituidas y que tienen entidad
por s mismas, por lo que se representa mediante relaciones de
agregacin. Utilizamos la agregacin porque es posible que una
caja, ratn o teclado o una memoria RAM existan con
independenciadequepertenezcanaunordenadorono.

La composicin es una agregacin fuerte en la que una instancia parte est relacionada,
como mximo, con una instancia todo en un momento dado, de forma que cuando un
objeto todo es eliminado, tambin son eliminados sus objetos parte. Por ejemplo: un
rectngulotienecuatrovrtices,uncentrocomercialestorganizadomedianteunconjunto
deseccionesdeventa...
Para modelar la estructura de un ciclo formativo vamos a usar las clases Mdulo, Competencia y
CicloquerepresentanloquesepuedeestudiarenFormacinProfesionalysuestructuralgica.Un
ciclo formativo se compone de una serie de
competenciasqueseleacreditancuandosuperaunoo
variosmdulosformativos.
Dado que si eliminamos el ciclo las competencias no tienen sentido, y lo mismo ocurre con los
mdulos hemos usado relaciones de composicin. Si los mdulos o competencias pudieran seguir
existiendosinsucontenedorhabramosutilizadorelacionesdeagregacin.
Estasrelacionesserepresentanconunromboenelextremodelaentidadcontenedora.Enelcaso
de la agregacin es de color blanco y para la composicin negro. Como en toda relacin hay que
indicarlacardinalidad.
3.4.4.Atributosdeenlace.
Es posible que tengamos alguna relacin en la que sea necesario aadir algn tipo de informacin
quelacompletedealgunamanera.Cuandoestoocurrepodemosaadiratributosalarelacin.

Ejercicio resuelto
Cuando un alumno se matricula de un mdulo es preciso especificar el curso al que pertenece la
matrcula, las notas obtenidas en el examen y la tarea y la calificacin final obtenida. Estas
caractersticasnopertenecentotalmentealalumnonialmdulosinoalarelacinespecficaquese
creaentreellos,queademsserdiferentesicambiaelalumnooelmdulo.Aadeestosatributos
alenlaceentreAlumnoyMdulo.

Para modelar esto en Visual Paradigm creamos una


clase nueva (Matrcula) junto a Alumno y Mdulo, y la
unimos a la relacin utilizando el icono de la paleta
"Associationclass",eldiagramaquedaas:

19

Tema5

Entornosdedesarrollo

Siguiendo con el ejemplo anterior, para modelar el clculo de la nota media de un


alumno se aade el mtodo calcularNotaMedia a la clase Alumno que realiza la media de
las calificaciones de los mdulos en los que el alumno se encuentra matriculado para este
curso. Qu visibilidad se debera poner a este mtodo?
Pblico
Privado
Protegido
Paquete

3.5.Pasodelosrequisitosdeunsistemaaldiagramadeclases.
Caso prctico
Mara y Juan siguen comentando la creacin de diagramas de clases.
Las reservas se utilizan para relacionar los clientes y las habitaciones, eso es sencillo de ver, pero
si tenemos un enunciado un poco ms largo, puede no ser tan obvio. Quiz podras darme algn
consejo sobre cmo pasar de los requisitos iniciales de una aplicacin a un primer diagrama de
clases.
Es verdad, la cosa se complica un poco cuando tenemos ms requisitos, pero la clave est en
analizar el texto para obtener nombres y continuar el desarrollo a partir de ah.

Empezamos identificando objetos que sern las clases del diagrama examinando el planteamiento
del problema. Los objetos se determinan subrayando cada nombre o clusula nominal e
introducindola en una tabla simple. Los sinnimos deben destacarse. Pero, qu debemos buscar
unavezquesehanaisladotodoslosnombres?Buscamossustantivosquepuedancorrespondercon
lassiguientescategoras:
9
9
9

9
9
9
9

Entidades externas (por ejemplo: otros sistemas, dispositivos, personas) que producen o
consumeninformacinausarporunsistemacomputacional.
Cosas (por ejemplo: informes, presentaciones, cartas, seales) que son parte del dominio de
informacindelproblema.
Ocurrencias o sucesos (por ejemplo: una transferencia de propiedad o la terminacin de una
serie de movimientos en un robot) que ocurren dentro del contexto de una operacin del
sistema.
Papeles o roles (por ejemplo: director, ingeniero, vendedor) desempeados por personas que
interactanconelsistema.
Unidades organizacionales (por ejemplo: divisin, grupo, equipo) que son relevantes en una
aplicacin.
Lugares (por ejemplo: planta de produccin o muelle de carga) que establecen el contexto del
problemaylafuncingeneraldelsistema.
Estructuras (por ejemplo: sensores, vehculos de cuatro ruedas o computadoras) que definen
unaclasedeobjetoso,encasosextremos,clasesrelacionadasdeobjetos.

Cuando estemos realizando este proceso debemos estar pendientes de no incluir en la lista cosas
quenoseanobjetos,comooperacionesaplicadasaotroobjeto,porejemplo,"inversindeimagen"
producirunobjetoenelmbitodelproblema,peroenlaimplementacindarorigenaunmtodo.
Tambin es posible detectar dentro de los sustantivos atributos de objetos, cosa que tambin
indicaremosenlatabla.
Cuandotengamoslalistacompletahabrqueestudiarcadaobjetopotencialparaversi,finalmente,
esincluidoeneldiagrama.Paraayudarnosadecidirpodemosutilizarlossiguientescriterios:
1. Lainformacindelobjetoesnecesariaparaqueelsistemafuncione.

20

DAW

Diseoorientadoaobjetos.Elaboracindediagramasestructurales

2. El objeto posee un conjunto de atributos que podemos encontrar en cualquier ocurrencia del
objeto.Sisloapareceunatributonormalmenteserechazaryseraadidocomoatributode
otroobjeto.
3. El objeto tiene un conjunto de operaciones identificables que pueden cambiar el valor de sus
atributosysoncomunesacualquierocurrenciadelobjeto.
4. Es una entidad externa que consume o produce informacin esencial para la produccin de
cualquiersolucinenelsistema.
Elobjetoseincluyesicumpletodos(ocasitodos)loscriterios.

Sedebetenerencuentaquelalistanoincluyetodo,habrqueaadirobjetosadicionales
para completar el modelo y tambin, que diferentes descripciones del problema pueden
provocarlatomadediferentesdecisionesdecreacindeobjetosyatributos.
3.5.1.Obtencindeatributosyoperaciones.
Atributos
Definenalobjetoenelcontextodelsistema,esdecir,elmismoobjetoensistemasdiferentestendra
diferentesatributos,porloquedebemosbuscarenelenunciadooennuestropropioconocimiento,
caractersticasquetengansentidoparaelobjetoenelcontextoqueseanaliza.Debencontestarala
pregunta"Quelementos(compuestosy/osimples)definencompletamentealobjetoenelcontexto
delproblemaactual?"
Operaciones
Describenelcomportamientodelobjetoymodificansuscaractersticasdealgunadeestasformas:
9
9
9

Manipulanlosdatos.
Realizanalgnclculo.
Monitorizanunobjetofrentealaocurrenciadeunsucesodecontrol.

Seobtienenanalizandoverbosenelenunciadodelproblema.
Relaciones
Porltimohabrqueestudiardenuevoelenunciadoparaobtenercmolosobjetosquefinalmente
hemos descrito se relacionan entre s. Para facilitar el trabajo podemos buscar mensajes que se
pasen entre objetos y las relaciones de composicin y agregacin. Las relaciones de herencia se
suelen encontrar al comparar objetos semejantes entre s, y constatar que tengan atributos y
mtodoscomunes.
Cuando se ha realizado este procedimiento no est todo el trabajo hecho, es necesario revisar el
diagrama obtenido y ver si todo cumple con las especificaciones. No obstante siempre se puede
refinar el diagrama completando aspectos del mbito del problema que no aparezcan en la
descripcinrecurriendoaentrevistasconlosclientesoanuestrosconocimientosdelamateria.

Enelsiguienteenlacetienesunejemplodeobtencindeldiagramadeclasesapartirdela
descripcindeunproblema.
Generacindeldiagramadeclasesdeunproblemadado.
ElarchivoalproyectoVPUMLresultante:
EnlacealproyectodeVisualParadigm.(0.17MB)

21

Tema5

Entornosdedesarrollo

3.6.Generacindecdigoapartirdeldiagramadeclases.
Caso prctico
Bueno, ya tenemos el diagrama, es cierto que es bastante til para aclarar ideas en el equipo y
establecer un plan de trabajo inicial. Adems es ms fcil empezar a programar porque ya tenemos la
lnea a seguir, ahora solo falta que empecemos a crear clases y a rellenarlas, Verdad?
Pues s, pero an no lo sabes todo, el diagrama de clases an te va a dar ms facilidades...

LaGeneracinAutomticadeCdigoconsisteenlacreacinutilizandoherramientasCASEdecdigo
fuente de manera automatizada. El proceso pasa por establecer una correspondencia entre los
elementosformalesdelosdiagramasylasestructurasdeunlenguajedeprogramacinconcreto.El
diagramadeclasesesunbuenpuntodepartidaporquepermiteunatraduccinbastantedirectade
las clases representadas grficamente, a clases escritas en un lenguaje de programacin especfico
comoJavaoC++.
Normalmente las herramientas de generacin de diagramas UML incluyen la facilidad de la
generacin,oactualizacinautomticadecdigofuente,apartirdelosdiagramascreados.

Ejercicio resuelto
Traduceeldiagramadeclasesgeneradoenelpuntoanterior,tantodesdeelSDEparaNetBeansde
VisualParadigmcomodesdeVPUML.
UtilizandoelSDEintegradodeVPUMLenNetBeans:
AntesdehacerlotendremosqueabrirelmodelodesdeNetBeans,
usandoelSDE,crearunproyectonuevoeimportarelproyectoVP
UMLquehemoscreado.
Sepuedehacerdedosformas:
9

Sincronizar con el cdigo: El cdigo fuente eliminado no se


recuperar.Soloseactualizarelcdigoexistente.
9 Forzarsincronizadoacdigo:Seactualizartodoelcdigoque
pueda partir del modelo, incluido el de cdigo eliminado del
proyectoNetBeans.
ParagenerartodaslasclasesypaquetesdeunproyectoVPUMLenNetBeansabrimoselproyecto
CENBydesplegamoselmencontextualyseleccionamosUpdateProjecttoCode.Tambinexistela
posibilidaddehacerlodirectamentedesdeunaclaseenparticular.
Siseproducealgnproblemasemuestraenlaventanademensajes,unavezcorregidosevuelvea
actualizar.
Esteprocedimientoproducelosarchivos.javanecesariosparaimplementarlasclasesdeldiagrama.
DesdeVPUML
Para generar el cdigo java de un diagrama de clases, utilizamos el men Herramientas >>
Generacininstantnea>>Java...Semuestraunaventanaenlaquepodemosconfigurarelidioma,
lasclasesagenerar,yotrascaractersticasbsicasrelacionadasconlanomenclaturadeatributosy
mtodos. Tambin permite seleccionar la forma en que se va a implementar la asociacin de
composicin,ennuestrocasohemoselegidolaopcinpordefectoqueesatravsdeunvector.

22

DAW

Diseoorientadoaobjetos.Elaboracindediagramasestructurales

3.6.1.Eleccindellenguajedeprogramacin.Orientacionesparaellenguajejava.
El lenguaje final de implementacin de la aplicacin influyen
en algunas decisiones a tomar cuando estamos creando el
diagrama ya que el proceso de traduccin es inmediato. Si
existe algn problema en los nombres de clases, atributos o
tiposdedatosporquenopuedanserutilizadosenellenguaje
finalonoexistanlageneracindarunfalloynoserealizar.
Por ejemplo, si queremos utilizar la herramienta de
generacin de cdigo tendremos que asegurarnos de utilizar
tiposdedatossimplesapropiados,esdecir,siusamosJavael
tipo de dato para las cadenas de caracteres ser String en
lugardestringochar*.
Podemos definir el lenguaje de programacin final desde el men Herramientas >> Configurar
lenguaje de programacin. Si seleccionamos Java automticamente cambiar los nombres de los
tiposdedatosallenguajeescogido.

3.7.Generacindeladocumentacin.
Caso prctico
Los chicos siguen estudiando caractersticas de la herramienta VP-UML...
Sera estupendo que despus de generar un diagrama, en el que verdaderamente te has
esforzado, pudieras hacer anotaciones sobre la importancia de cada clase, atributo o relacin, para
que, posteriormente, pudieras compartir esa informacin o recordarlo rpidamente cuando estuvieras
programando el sistema en caso de tener que consultar algo.
No solo eso, adems de generar documentacin exhaustiva, la herramienta permite crear informes
con ella, pasndola a un formato ms cmodo de leer e interpretar en papel por el equipo de
desarrollo.

Como en todos los diagramas UML, podemos hacer las anotaciones que
consideremos necesarias abriendo la especificacin de cualquiera de los
elementos, clases o relaciones, o bien del diagrama en s mismo en la
pestaa"Specification".
La ventana del editor cuenta con herramientas para formatear el texto y
darle un aspecto bastante profesional, pudiendo aadir elementos como
imgenesohiperenlaces.
Tambin se puede grabar un archivo de voz con la documentacin del
elementousandoeliconoGrabar.
Generarinformes
Cuando los modelos estn completos podemos generar
un informe en varios formatos diferentes (HTML, PDF o
Word) con la documentacin que hemos escrito. Para
generaruninformehacemos:
Desde VPUML accedemos a Tools >> Reports >> Report
writeryseleccionamoseltipodeinformequequeremos.
Desde el SDE para NetBeans seleccionamos Modelin >>
Reports>>Reportwriter.

23

Tema5

Entornosdedesarrollo

Enamboscasos,unavez que elegimosel tipodeinforme,obtendremoslasiguienteventanaenla


queseleccionamosentreotros:
9
9

Qudiagramasqueremosqueintervenganydondesealmacenarelinforme.
La pestaa opciones (Options) permite configurar los elementos que se aadirn al informe,
comotablasdecontenidos,ttulos,etc.
9 Laspropiedadesdelapgina.
9 Sisevaaaadirunamarcadeagua.
Elresultadoesunarchivo(.html,.pdfo.doc)eneldirectoriodesalidaquehayamosindicadoconla
documentacindelosdiagramasseleccionados.

24

DAW

Diseoorientadoaobjetos.Elaboracindediagramasestructurales

4.Ingenierainversa.
Caso prctico
Ada est muy satisfecha con el cambio que percibe en su equipo, ahora, cuando tiene que
enfrentarse a un proyecto nuevo se esfuerzan en escribir los requerimientos antes y comenzar con un
proceso de anlisis y creacin de un diagrama de clases. No obstante, ahora le surge un reto nuevo,
una empresa les ha contratado para reconstruir una aplicacin que hay que adaptar a nuevas
necesidades. As que los chicos continan investigando si pueden aplicar el uso de diagramas en
este caso tambin.

La ingeniera inversa se define como el proceso de analizar cdigo, documentacin y


comportamiento de una aplicacin para identificar sus componentes actuales y sus
dependenciasyparaextraerycrearunaabstraccindelsistemaeinformacindeldiseo.El
sistema en estudio no es alterado, sino que se produce un conocimiento adicional del
mismo.
Tienecomocasoparticularlareingenieraqueeselprocesodeextraerelcdigofuentedeunarchivo
ejecutable.
Laingenierainversapuedeserdevariostipos:
9

Ingenierainversadedatos:Seaplicasobrealgncdigodebasesdatos(aplicacin,cdigoSQL,
etc.) para obtener los modelos relacionales o sobre el modelo relacional para obtener el
diagramaentidadrelacin.
9 Ingenierainversadelgicaodeproceso:Cuandolaingenierainversaseaplicasobreelcdigo
deunprogramaparaaveriguarsulgica(reingeniera),osobrecualquierdocumentodediseo
paraobtenerdocumentosdeanlisisoderequisitos.
9 Ingenierainversadeinterfacesdeusuario:Seaplicaconobjetodemantenerlalgicainterna
del programa para obtener los modelos y especificaciones que sirvieron de base para la
construccin de la misma, con objeto de tomarlas como punto de partida en procesos de
ingenieradirectaquepermitanmodificardichainterfaz.

Ejercicio resuelto
A partir del cdigo que has obtenido en el ejercicio anterior genera el diagrama de clases
correspondiente.
Desde el SDE de VPUML para NetBeans tendremos acceso a una herramienta que nos permite la
transformacindecdigoJavaendiagramasdeclases.Paraello:
1. AbrimoselSDE.
2. Seleccionamos el proyecto en el panel de
proyectosyabrimoslaherramientaSDECENB.
3. Abrir un proyecto nuevo VPUML en el proyecto
deNetBeans.
4. Desde el nodo del proyecto seleccionamos en el
men contextuallaopcin"Update UMLModel"
loqueiniciarelprocesodeingenierainversa.
DesdeVPUML
Haremos el proceso de ingeniera inversa desde Herramienta >> Java Bidireccional >> Cdigo de
Inversin.Alseleccionarestaopcinnospreguntardondeselocalizaelcdigofuente.Elprocesono
generaeldiagramaexactamenteigualqueeloriginal,escapazdeobtenerlasclasesylasrelaciones
deherencia.Elrestoderelacionestendremosqueestablecerlasnosotrosamano.

25

Tema5

Entornosdedesarrollo

Tienesunabuenadescripcintericasobreingenierainversaenelsiguientedocumento:

Ingeniera Inversa. (0.53 MB)

AnexoI.DiagramasUML.
Diagramasestructurales.
9
9

Diagramasdeclases:Muestraloselementosdelmodeloestticoabstracto,yestformadopor
unconjuntodeclasesysusrelaciones.TieneunaprioridadALTA.
Diagrama de objetos: Muestra los elementos del modelo esttico en un momento concreto,
habitualmente en casos especiales de un diagrama de clases o de comunicaciones, y est
formadoporunconjuntodeobjetosysusrelaciones.TieneunaprioridadALTA.
Diagrama de componentes: Especifican la organizacin lgica de la implementacin de una
aplicacin,sistemaoempresa,indicandosuscomponentes,susinterrelaciones,interaccionesy
susinterfacespblicasylasdependenciasentreellos.TieneunaprioridadMEDIA.
Diagramas de despliegue: Representan la configuracin del sistema en tiempo de ejecucin.
Aparecenlosnodosdeprocesamientoysuscomponentes.Exhibelaejecucindelaarquitectura
del sistema. Incluye nodos, ambientes operativos sea de hardware o software, as como las
interfaces que las conectan, es decir, muestra como los componentes de un sistema se
distribuyen entre los ordenadores que los ejecutan. Se utiliza cuando tenemos sistemas
distribuidos.TieneunaprioridadMEDIA.
Diagramaintegradodeestructura(UML2.0):Muestralaestructurainternadeunaclasificacin
(tales como una clase, componente o caso tpico), e incluye los puntos de interaccin de esta
clasificacinconotraspartesdelsistema.TieneunaprioridadBAJA.
Diagrama de paquetes: Exhibe cmo los elementos del modelo se organizan en paquetes, as
como las dependencias entre esos paquetes. Suele ser til para la gestin de sistemas de
medianoograntamao.TieneunaprioridadBAJA.

Diagramasdecomportamiento.
9

Diagramasdecasosdeuso:Representanlasaccionesarealizarenelsistemadesdeelpuntode
vistadelosusuarios.Enlserepresentanlasacciones,losusuariosylasrelacionesentreellos.
Sirven para especificar la funcionalidad y el comportamiento de un sistema mediante su
interaccinconlosusuariosy/uotrossistemas.TieneunaprioridadMEDIA.
9 Diagramas de estado de la mquina: Describen el comportamiento de un sistema dirigido por
eventos. En l aparecen los estados que pueden tener un objeto o interaccin, as como las
transiciones entre dichos estados. Se lo denomina tambin diagrama de estado, diagrama de
estadosytransicionesodiagramadecambiodeestados.TieneunaprioridadMEDIA.
9 Diagrama de actividades: Muestran el orden en el que se van realizando tareas dentro de un
sistema.Enlaparecenlosprocesosdealtoniveldelaorganizacin.Incluyeflujodedatos,oun
modelodelalgicacomplejadentrodelsistema.TieneunaprioridadALTA.

Diagramasdeinteraccin.
9

Diagramasdesecuencia:Representanlaordenacintemporalenelpasodemensajes.Modelala
secuencialgica,atravs deltiempo, delosmensajesentrelas instancias. Tieneunaprioridad
ALTA.
9 Diagramasdecomunicacin/colaboracin(UML2.0):Resaltanlaorganizacinestructuraldelos
objetosquesepasanmensajes.Ofrecelasinstanciasdelasclases,susinterrelaciones,yelflujo

26

DAW

Diseoorientadoaobjetos.Elaboracindediagramasestructurales

de mensajes entre ellas. Comnmente enfoca la organizacin estructural de los objetos que
recibenyenvanmensajes.TieneunaprioridadBAJA.
9 Diagrama de interaccin: Muestra un conjunto de objetos y sus relaciones junto con los
mensajes que se envan entre ellos. Es una variante del diagrama de actividad que permite
mostrarelflujodecontroldentrodeunsistemaoprocesoorganizativo.Cadanododeactividad
dentrodeldiagramapuederepresentarotrodiagramadeinteraccin.TieneunaprioridadBAJA.
9 Diagramadetiempos:Muestraelcambioenunestadoounacondicindeunainstanciaounrol
atravsdeltiempo.Seusanormalmenteparaexhibirelcambioenelestadodeunobjetoenel
tiempo,enrespuestaaeventosexternos.TieneunaprioridadBAJA.

AnexoII.DescargaeinstalacindeVisualParadigm.
DescargaeinstalacindeVisualParadigm
ObtenemoslosarchivosdesdelapginadeVisualParadigm:
http://www.visualparadigm.com/download/vpuml.jsp?edition=ce
Ofrecedosversiones:
9

VisualParadigmforUML(VPUML),versindepruebade10das,ampliablea30dasmediante
registro.
9 VersinCommunityEdition,parausonocomercial(gratuito).
Encualquiercasonecesitamosuncdigodeactivacinqueconseguiremosregistrndonos.Seenva
alcorreoelectrnicoqueseindiqueenelregistro.
LaversinCommunityEditionincluyealgunasdelasfuncionalidadesdelaversincompleta,entre
lasquenoseencuentralageneracindecdigonilaingenierainversa,quesevernalfinaldela
unidadporloqueserecomiendaempezarporlaversincompletadepruebapor30das,paralos
quesenecesitauncdigodetipo,conseguiremoselcdigodeactivacin,queesunarchivodetipo
zvpl,enestecasollamadovpsuite.zvpl.
ParalasiguienteunidadtambinusaremosVPUML,demodoquesifueranecesariotendramosque
conseguirunnuevocdigodeactivacin,estavezdetipoCommunityEdition.

Procesodeinstalacin
Ejecutaremos el archivo de instalacin, que tendr diferente extensin si es para Windows o para
Linux.EnnuestrocasosuponemosquelohacemosenunequipoconUbuntuDesktop10.10.Sedebe
tenerencuentaqueenelnombreseincluyelaversinylafechaenlaqueapareci,porloqueestos
datospuedencambiarconeltiempo.SihacemoslainstalacinenWindowsbastarconhacerdoble
clicsobreelarchivo.exe.
usuario@equipo:~/VP/ chmod +x VP_Suite_Linux_5_2_20110611.sh
usuario@equipo:~/VP/sudo ./VP_Suite_Linux_5_2_20110611.sh

Durante la instalacin tendremos que indicar qu mdulos queremos instalar, seleccionaremos


Visual Paradigm for UML y el SDE (Smart Development Environment o Entorno de Desarrollo
Inteligente),deNetBeansqueeselquevamosausar.

27

Tema5

Entornosdedesarrollo

A continuacin tendremos que indicar que vamos a utilizar la versin Enterprise de ambas
herramientasyenquedirectorioestNetBeans:
EsimportantedestacarquelainstalacindebehacersesobreunainstalacinlimpiadeNetBeans,es
decir,quesolopodremosinstalarloeneldirectorioqueindicamosunavez.
Acontinuacinsepideunarchivoconlalicenciadelaherramienta.Aliniciarladescarganospedir
quenosregistremos,trashacerlopodremossolicitarestearchivo.Loinsertamosahora,comohemos
instalado dos herramientas nos pedir dos archivos, pero podemos usar la opcin de archivo de
licenciacombinado,demodoquenossirvaparalosdoscasos.Sinoslopide,tendremosquevolvera
aadirlodespusaliniciarVisualParadigm,conunacopianuevadelarchivodeclave.
Por ltimo indicamos dnde queremos que ponga los archivos con los proyectos y finalizamos la
instalacinindicandoquenoqueremosqueabraningunaaplicacin.
IniciarVisualParadigm
Una vez realizada la instalacin tendremos una entrada en el men Aplicaciones llamada Otras, si
trabajamosconLinuxobienunaentradademenenelbotnInicioparaVisualParadigm,siesque
trabajamos en Windows. En cualquiera de los casos para abrir la herramienta buscamos la opcin
Visual Paradigm for UML, que se abrevia como VPUML. Al hacer clic se abrir el programa, y nos
preguntarcualeseldirectoriopordefectoparaguardarlosproyectos,podemosdejarlaopcinpor
defectooseleccionarnuestropropiodirectorio.
IniciarVPUMLdesdeNetBeans
Alhacerlainstalacinhemosindicado,marcado,queseinstaletambinelSDEparaNetBeans,porlo
quetambintenemoslaopcindeiniciarlaherramientaparausarlaintegradaconNetBeans.Para
abrirlobuscamosdentrodelmendeVisualParadigmlaopcinSDEforNetBeans.
Esto abre la aplicacin NetBeans, a la que se ha incorporado una pequea diferencia, y es que
podemosaadiraunproyectoendesarrolloexistenteunproyectoVPUML.Cmolohacemos?
Estando en la ventana de Proyectos, si hacemos clic con el botn secundario sobre un proyecto
vemos una serie de opciones, como compilar o construir, ahora, adems, abrir el SDE desde Open
SDEEENB,queabreelSDE.Laprimeraveznospedirque
importemos un archivo de clave, que podremos obtener
conelbotnRequestKeydesdelapginaoficial.Paraello
necesitaremoselcorreoderegistroquehemosutilizadoal
hacerlainstalacin.

28

DAW

Diseoorientadoaobjetos.Elaboracindediagramasestructurales

Los proyectos de Visual Paradigm se podrn almacenar


en el directorio por defecto, que se denomina
vpprojectycuelgadeldirectorioprincipaldelproyecto
NetBeans,oenotraubicacin.Nosotrosnosquedaremos
conlaopcinpordefecto.
Tambin podemos importar un proyecto VPUML que
tengamosyacreadoseleccionndoloalcrearelproyecto
existente.

Una vez creado o importado el proyecto, tendremos


unaseriedebotonesenlazonasuperiorderechaque
nospermitirncrearlosdiferentesdiagramasdeUML,
yquequedenasociadosalproyectoNetBeans.

AnexoIII.Generacindeldiagramadeclasesdeunproblemadado.
Descripcindelproblema
El Ministerio de Educacin ha encargado a BK Programacin que desarrolle una plataforma de
aprendizaje electrnico para que los alumnos de ciclos formativos a distancia tengan acceso a los
materialesypuedancomunicarseconsusprofesores.Paraqueloschicospuedanempezaracrearlos
primerosdiagramasdelaaplicacinAdalespasalasiguientedescripcindelmbitodelproblema:
LosalumnosyalumnasdeCiclosFormativosaDistanciasematriculandevariosmdulosformativos
al ao. Los mdulos formativos son impartidos por profesores y profesoras que pondrn los
contenidos del mdulo a disposicin de los alumnos y alumnas. Para superar un mdulo hay que
hacerunatareayunexamenquesecalificarndeunoadiez,ysacarenamboscasosunapuntuacin
superioracinco.Losexmenessecomponende30preguntasqueseeligenyordenanalazar.Las
preguntas tienen un enunciado y cuatro posibles respuestas, slo una de ellas vlida. Un ciclo
formativo se compone de una serie de competencias profesionales, que tienen una descripcin y
que, a su vez, estn formadas por uno o varios mdulos, que tienen un nombre, y un nmero de
horas. Cuando un alumno o alumna supera los mdulos correspondientes a una capacidad se le
certifica esa capacidad. Cuando se han superado todos los mdulos (y por tanto se han adquirido
todas las competencias profesionales) se aprueba el ciclo. Cuando un alumno o alumna finaliza el
ciclo se emite un certificado de competencias a su nombre donde aparece la descripcin de las
competenciasqueformanelcicloylanotamediaobtenida.Siunalumnooalumnanoterminade
cursar el ciclo completo puede pedir un certificado que acredite las competencias que s tenga
adquiridas.Elalumnadoyelprofesoradoseidentificanconunaliasenelsistemaysecomunicana
travs de correo electrnico. Por motivos administrativos es necesario conocer el nombre y
apellidos,direccincompletaytelfonodetodaslaspersonasqueparticipanenelsistema,seacomo
profesores ocomo alumnos. Para el profesorado, adems, se debe conocer su nmero de registro
personal(NRP)
Extraccindelossustantivosdeladescripcindelproblema.
Primerosubrayamoslossustantivosdeladescripcindelproblema(sinrepeticiones)ylospasamosa
unatabla:(usaremossloalumnosysloprofesoresparasimplificareldiseo)

29

Tema5

Entornosdedesarrollo

LosalumnosdeCiclosFormativosaDistanciasematriculandevariosmdulosformativosalao.Los
mdulos formativos son impartidos por profesores que pondrn los contenidos del mdulo a
disposicin de los alumnos. Para superar un mdulo hay que hacer una tarea y un examen que se
calificarndeunoadiez,ysacarenamboscasosunapuntuacinsuperioracinco.Losexmenesse
componen de 30 preguntas que se eligen y ordenan al azar. Las preguntas tienen un enunciado y
cuatroposiblesrespuestas,slounadeellasvlida.Uncicloformativosecomponedeunaseriede
competenciasprofesionales,quetienenunadescripcinyque,asuvez,estnformadasporunoo
varios mdulos, que tienen un nombre, y un nmero de horas. Al sumar las horas de un ciclo
obtenemos las horas del mdulo. Cuando un alumno supera los mdulos correspondientes a una
competenciaselecertificaesacompetencia.Cuandosehansuperadotodoslosmdulos(yportanto
se han adquirido todas las competencias profesionales) se aprueba el ciclo. Cuando un alumno
finalizaelcicloseemiteuncertificadodecompetenciasasunombredondeapareceladescripcinde
lascompetenciasqueformanelcicloylanotamediaobtenida.Siunalumnonoterminadecursarel
ciclocompletopuedepediruncertificadoqueacreditelascompetenciasquesitengaadquiridas.Los
alumnos y profesores se identifican con un alias en el sistema y se comunican a travs de correo
electrnico. Por motivos administrativos es necesario conocer el nombre y apellidos, direccin
completaytelfonodetodaslaspersonasqueparticipanenelsistema,seacomoprofesoresocomo
alumnos.Paralosprofesores,adems,sedebeconocersunmeroderegistropersonal(NRP).

Tabla de sustantivos
Clase/objeto potencial
Categora
Entidad externa o rol
Alumno
Ciclo Formativo a Distancia Unidad organizacional
Unidad organizacional
Modulo Formativo
Atributo
Ao
Entidad externa o rol
Profesor
Atributo
Contenidos
Cosa
Tarea
Cosa
Examen
Atributo
Uno
Atributo
Diez
Cosa
Pregunta
Atributo
Enunciado
Atributo
Respuesta
Unidad organizacional
Competencia Profesional
Atributo
Descripcin
Atributo
Horas
Certificado de competencias Cosa
Atributo
Nombre
Atributo
Nota media
Atributo
Alias
Estructura
Sistema
Atributo
Nombre
Atributo
Direccin
Atributo
Telfono
Rol o entidad externa
Persona
Nmero de registro personal Atributo

30

DAW

Diseoorientadoaobjetos.Elaboracindediagramasestructurales

Seleccindesustantivoscomoobjetos/clasesdelsistema
Ahora aplicamos los criterios de seleccin de objetos. En este apartado es necesario destacar que
aunque algunos de los sustantivos que tenemos en el anunciado podran llegar a convertirse en
clasesyobjetos,comoloscontenidosdeunmduloformativo,sedescartanenestafaseporqueel
enunciadonodasuficienteinformacin.Elprocesodecreacindediagramasnoesinmediato,sino
queestsujetoarevisiones,cambiosyadaptacioneshastatenerunresultadofinalcompleto.

Tabla de eleccin de sustantivos como objetos o clases del sistema.


Clase/objeto potencial
Criterios aplicables
2,3,4
Alumno
1,2,3
Ciclo Formativo a Distancia
1,2,3
Mdulo Formativo
2,3,4
Profesor
1,2,3
Tarea
1,2,3
Examen
1,2,3
Competencia Profesional
1,2,3
Pregunta
Falla 2,3 rechazado
Certificado de competencias
Falla 1,2,3,4 rechazado
Sistema
2,3,4
Persona

Obtencindelosatributosdelosobjetos.
Buscamos responder a la pregunta Qu elementos (compuestos y/o simples) definen
completamentealobjetoenelcontextodelproblemaactual?

Tabla de relacin de las clases u objetos con sus atributos.


Clase/objeto potencial
Atributos
Nombre, direccin, telfono, alias, correo electrnico.
Alumno
Ciclo Formativo a Distancia Nombre, descripcin, horas.
Modulo Formativo
Mdulo Formativo
Nombre, direccin, telfono, alias, correo electrnico, NRP.
Profesor
Descripcin, calificacin.
Tarea
Descripcin, calificacin.
Examen
Nombre, descripcin.
Competencia Profesional
Enunciado, respuestas, respuesta vlida.
Pregunta
Nombre, direccin, telfono, alias, correo electrnico.
Persona

Obtencindelosmtodos
Buscamos o inferimos en el enunciado verbos, y actividades en general que describan el
comportamientodelosobjetosomodifiquensuestado.

Tabla de clases u objetos del sistema con sus posibles mtodos.


Clase/objeto potencial
Mtodos
CalcularNotaMedia() : void
Alumno
emitirCertificado() : void
Ciclo Formativo a Distancia

31

Tema5

Mdulo Formativo

Entornosdedesarrollo

Matricular(Alumno : alumno) : void


asignarDuracion(horas: int) : void

Profesor
Tarea
Examen

Calificar()
aadirPregunta()
ordenarPreguntas()
crearExamen()

Competencia Profesional
Pregunta
Persona

Obtenerrelaciones
Con las clases ya extradas y parcialmente definidas (an faltan por aadir mtodos y atributos
inferidos de posteriores refinamientos y de nuestro conocimiento) podemos empezar a construir
relacionesentreellas.
Comenzaremos por las clases que hacen referencia a la estructura de los Ciclos, cada Ciclo se
compone de una o ms competencias profesionales, que no tienen la capacidad de existir por s
mismas,esdecir,lacompetencianotienesentidosinsuciclo,porloquevamosacrearunarelacin
entreambasclasesdecomposicin.Deigualmaneraunacompetenciaprofesionalsecomponedeun
conjunto de mdulos formativos (1 o ms) por lo que relacionaremos ambas, tambin mediante
composicin.

Unmduloformativoasuvez,contieneunexamenyunatarea,quetampocotienensentidopors
mismos,demodoquetambinlosvamosarelacionarlosmediantecomposicin.Elexamenporsu
partesecomponede30preguntas,perostaspuedentenersentidoporsmismas,ypertenecera
diferentesexmenes,adems,elhechodeeliminarunexamennovaadarlugaraquelaspreguntas
queloformanseborrennecesariamente,sileemosconatencinelenunciado,podemosdeducirque
las preguntas se seleccionan de un repositorio del que pueden seguir formando parte [... [Los
exmenes se componen de 30 preguntas que se eligen y ordenan al azar...], as que en este caso
usaremoslarelacindeagregacinparaunirlos.

Por otra parte alumnos y profesores comparten ciertas caractersticas, por necesidad del sistema,
comosonlosdatospersonales,oelcorreoelectrnico,estoinduceapensarquepodemoscrearuna
abstraccin con los datos comunes, que de hecho, ya hemos obtenido del enunciado en la clase

32

DAW

Diseoorientadoaobjetos.Elaboracindediagramasestructurales

persona,querecogelascoincidenciasentrealumnosyprofesoresyaadirunarelacindeherencia
delasiguientemanera:

Por ltimo queda relacionar a alumnos y profesores con los mdulos formativos. Un alumno se
matriculadeunconjuntodemdulosformativos,yunprofesorpuedeimpartirunoovariosmdulos
formativos.
Msconcretamente,decaraalacardinalidad,unalumnopuedeestarmatriculadoenunoovarios
mdulos,mientrasqueunmdulopuedetener,unoovariosalumnosmatriculados.Porsuparteun
profesorpuedeimpartirunoovariosmdulos,aunqueunmduloesimpartidoporunprofesor.
steanlisisdacomoresultadolosiguiente:

AadirGetters,Settersyconstructores
Por ltimo aadimos los mtodos que permiten crear los objetos de las clases (constructores) as
como los que permiten establecer los valores de los atributos no calculados y leerlos (getters y
setters), recuerda que para tener stos mtodos completos es necesario que el atributo tenga
establecidosutipo,paraqueseatenidoencuenta.
Para aadir los getters y setters en Visual Paradigm, basta con desplegar el men contextual del
atributoyseleccionarlaopcinCreateGetterandSetter.
Tambinhayqueaadirlosmtodosquenoseinfierendelalecturadelenunciado,porejemplolos
quepermitenaadirmdulosalascompetencias,ocompetenciasalosciclos.Paracomprobarestos
mtodospuedesdescargareldiagramadeclasesenunproyectoVPUMLunpocomsadelante.

33

Tema5

Entornosdedesarrollo

Aadirdocumentacin
Porltimosedeberellenarladocumentacindecadaclase,atributoymtodoconunadescripcin
delosmismosquesernecesariaparalageneracindeinformesposterior.Acontinuacinselistan
lasclasesconsudocumentacin:
9

9
9

Persona:Generalizacinparaagruparlascaractersticascomunesdealumnosyprofesorescomo
personasqueinteractanconelsistema.Deunapersonainteresaconocersunombre,direccin,
telfono,aliasycorreoelectrnico.
Alumno: Es un tipo de persona. Representa a las personas que se matriculan de un ciclo
formativo.Unalumnopuedeestarmatriculadodurantevariosaosenunciclo.Estmatriculado
de un ciclo siempre que est matriculado en algn mdulo que forme parte del ciclo. Para
aprobarunCiclohayquesuperartodoslosmdulosquelocomponen.Parasuperarunmdulo
hayquerealizarlatareayaprobarelexamen,queestcompuestode30preguntasdetipotest,
concuatrorespuestasposiblesunadelascualeseslacorrecta.Deunalumnointeresaalmacenar
sunotamedia.
Profesor: Es un tipo de persona. Representa a las personas que imparten los mdulos
formativos.Evalanlastareasquerealizanlosalumnosyseencargandeponerloscontenidosa
disposicindelosalumnos.Deunprofesorinteresaalmacenarsunmeroderegistropersonal.
CicloFormativoaDistancia:Esunodelosncleoscentralesdelsistema.Representalosestudios
que se pueden realizar a distancia. Un ciclo formativo se compone de un conjunto de
competencias profesionales que se componen a su vez de mdulos formativos. Se aprueba un
ciclo formativo cuando se adquieren todas las competencias que lo forman. De un ciclo
formativosealmacenasunombre,descripcinyhorastotales.
Competencia Profesional: Representan el conjunto de conocimientos generales que se
adquierencuandosecompletauncicloformativo.Secomponendemdulosprofesionalesyse
adquiere una competencia cuando se superan los mdulos que la componen. De una
competenciasealmacenasudescripcin.
MduloFormativo:Unidadesformativasquecursaunalumno.Unmduloformativotieneuna
seriedecontenidosqueelalumnodebeestudiar,yunatareayunexamenqueelalumnodebe
hacer.Cuandoseapruebanlatareayelexamensesuperaelmdulo.Deunmdulosealmacena
sunombre,duracinycontenidos.
Tarea: Actividad relacionada con los contenidos de un mdulo que debe realizar un alumno.
Tiene una puntuacin de uno a diez y es evaluada por el profesor. La nota se asigna a cada
alumno para la matrcula del mdulo al que pertenece la tarea. De una tarea se almacena su
descripcin.
Examen: Conjunto de treinta preguntas que se evala de uno a diez. Un examen puede
desordenarseycalificarsecalculandocuantaspreguntassoncorrectas.
Pregunta: Forman los exmenes de un mdulo. Se compone del enunciado y cuatro posibles
respuestasdelascualesslounaesvlida.

34

También podría gustarte