VISUAL PROGRAMACIÓN ORIENTADA A OBJETOS

45
Programación III POO y UML Ing. Priscila Bernal

description

UML

Transcript of VISUAL PROGRAMACIÓN ORIENTADA A OBJETOS

Programacin IIIPOO y UMLIng. Priscila BernalIndicePerspectiva General UMLModelado VisualVistas UML Diagramas UMLModeloEs un esquema simplicado que descri!e unsistema o realidad desde un determinado punto de vista que "acilita su estudio y compresi#nSistema Software(complejo)Los modelos de un sistema software se expresan visualmente mediante el lenguaje de modelado UML?? ?Modelo(simplificado)Modelado en Ingenier$a%rquitectura&Ingenier$a de EstructurasVistas EdicioVista 'D%l(ado&Planta PerlEstructura del edicioInstalaci#n El)ctricaInstalaci#n %ire %cc....Ingenier$a *o"t+areModelos UML del *istema *o"t+areModelo de ,asos de usoModelo de L#gicoModelo de ,omportamientoModelo de Implementaci#nModelo de DespliegueHerramientas Modelado (ej)AutocadHerramientas Modelado (ej)Rational RoseGrpFileread( ) open( )create( )fillFile( )repRepositorynamec!ar " # $read%oc( )readFile( )(from&ersistence)FileM'rfetc!%oc( ) sort(y)ame( )%ocumentListadd( ) delete( )%ocumentnameintdocidint numFieldint'et( )open( ) close( ) read( ) sortFileList( )create( ) fill%ocument( )fList*FileListadd( )delete( ) *Fileread( )read() fill t!ecode++%ocumentFileMana'erGrap!icFileFileRepository %ocumentListFileListusermain,nd fileM'r FileM'rrepository document %ocument'File* %oc -iew re.uest ( )/ fetc!%oc( )0 create( )1 create( )2 read%oc ( )3 fill %ocument ( )4 readFile( )5 fill Fil e( )6 sort(y)ame( )789:;? @ABC DEFGEH IJ>AKLM? >NOIBC@P+QKRMSET ;NOIBC@P+QEZM@O=@TKUVW[ZK\ M@O=[Z>? @ABXK]E^DM_\ 9:_`KIaO`CQEZ>? DE>b9X@P+%ia'ramas%ia'ramasModelado VisualModelos que presentan gr-camente alguna vista del sistema.*e crean mediante.L-pi( y Papel /erramienta *o"t+are especica 0por e1. 2ational 2ose3 Microso"t O4ce Visio5UMLEs el lenguaje est-ndar de la industria para el modelado visual de sistemas orientados a o!1eto y&o !asados en componentes cML no es una metodolo'da o proceso un len'uaje de pro'ramacienParadigma Orientado a O!1etoDesarrollo de un sistema so"t+are mediante la construcci#n de unidades reusa!les siguiendo los principios de .%!stracci#nEncapsulaci#n/erencia PolimorsmoParadigma Basado en ,omponentesDesarrollo de un sistema so"t+are mediante en el emsa!lado de unidades reusa!les siguiendo los principios de.,omponentesInter"acesIn"raestructuraUML. Denici#n 6ormalEs un lenguaje est-ndar para visualizar3especifcar3 construir y documentar los arte"actos que se generan en el proceso de desarrollo de un sistema so"t+areModelos UMLModelos UML descri!en caracter$sticas.Estticas o de EstructuraDinmicas o deComportamientoConstrucciones de implementacinOrganizacin del modeloEstructura de UMLModelosEstructura(caractersticas estticas)Comportamiento (caractersticas dinmicas)Gestin del ModeloExtensin UMLcapturan Vistas r!uitectonicasor'anifado en "iagramas-isualifado en gista de casos de usogista hstiticagista de jmplementaciengista de %esplie'uegista de Mi.uina de estadosgista de Acti-idadgista de jnteraccien%ia'ramas de kasos de cso%ia'ramas de klases%ia'ramas de komponentes%ia'ramas dehstados%ia'ramas de Acti-idad%ia'ramas de Secuencia%ia'ramas de kolaloracienVista de ,asos de UsoModela "uncionalidad del sistema de acuerdo a percepci#n de usuarios e7ternos 0actores5.Prop#sito.Enumerar actores y casos de usoDemostrar qu) actores participan en cada caso de usoEn la vista de interacci#n los casos de uso se implementan como una cola!oraci#n*e muestra en el diagrama de casos de usoMODELO* DE ,%*O DE U*OLosdiagramasdecasosdeusodescri!enlas relaciones y las dependencias entre un grupo de casos de uso y los actores participantes en el proceso.Esimportanteresaltarquelosdiagramasdecasosde uso no est-n pensados para representar el dise8o y no puede descri!ir los elementos internos de un sistema. Losdiagramasdecasosdeusosirvenpara"acilitarla comunicaci#nconlos"uturosusuariosdelsistema3y conelcliente3yresultanespecialmente9tilespara determinar las caracter$sticas necesarias que tendr- el sistema. En otras pala!ras3 los diagramas de casos de usodescri!enquesloquedebehacerel sistema3 pero no cmo.Para qu) sirven los casos de uso:Paracapturar el comportamiento deseado del sistema sin tener que especicar como se implementa ese comportamiento.,omo medio de comprensi#n para desarrolladores.%yuda a validar la arqitectura y a vericar el sistema en el transcurso de desarrollo de este.ctorUn actor es una entidad e7terna 0de "uera del sistema5 que interacciona con el sistema participando 0y normalmente iniciando5un caso de uso. Los actores pueden ser gente real 0por e1emplo3 los usuarios del sistema5.MODELO* DE ,%*O DE U*OMODELO* DE ,%*O DE U*OLosactoresnorepresentanapersonasfsicasoa sistemas3 sino su papel. Esto signica que cuando unapersonainteraccionaconelsistemade di"erentesmaneras0asumiendodi"erentes papeles53 estar- representado por varios actores. Pore1emplo3unapersonaqueproporciona serviciosdeatenci#nalclientetele"#nicamentey reali(apedidosparalosclientesestar$a representadaporunactor;equipodesoporte ,#mo se de!e crear un caso de uso:?ras locali(ar los actores3 procede el descri!irlos.Especicar descri!iendo un Bu1o de eventos.Los actores solo pueden conectar a los casos de uso a trav)s de asociaciones.Generalmente Cay pocos actores asociados a cada caso de uso.> ,#mo se de!e crear un caso de uso:Preguntas clave>,9ales son las tareas del actor:>Du) in"ormaci#n crea3 guarda3 modica3 destruye o lee el actor:>De!e el actornoticar al sistema los cam!ios e7ternos:>De!e el sistema noticar al actor los cam!ios internos:> ,#mo se de!e crear un caso de uso:La descripci#n del caso de uso comprende.El inicio! > cu-ndo y que actor lo produce:El fn! > cu-ndo se produce y que valores devuelve:#a interaccin! que mensa1es intercam!ian actorEcaso de uso.Objetivos del C$! cronolog$a y origen de la in"ormaci#n. 2epeticiones de comportamiento. 0qu) operaciones son iteradas:5.%ituaciones opcionales! qu) e1ecuciones alternativasse presentan en el caso de uso:Puntos claveLasPrecondicionessonlosCecCosquese Can de cumplir para que el Bu1o de eventos se pueda llevar a ca!o.&lujo de eventos normal' que correspondealae1ecucionnormalye7itosadelcasode usoLos(ujosalternativossonlosquenos permitenindicarqu)esloqueCaceel sistemaenloscasosmenos"recuentese inesperados.#asposcondicionessonlosCecCosquese Ca de cumplir si el Bu1o de eventos normal se Ca e1ecutado correctamente.E1emplo.Caso de uso! ,rear mensa1e "oroDescripcin!Permite crear un mensa1e en un "oro de discusi#nctores! Usuario de internet logueadoPrecondiciones! El usuario de!e Ca!erse logueado en el sistema&lujo )ormal!@. El actor pulsa so!re el !ot#n para crear un nuevo mensa1eA. El sistema muestra una ca1a de te7to para introducir el titulo del mensa1e y una (ona de mayor tama8o para introducir el cuerpo del mensa1e.'. El actor introduce el titulo y cuerpo del mensa1e.F. El sistema comprue!a la valide( de los datos y los almacena.&lujo lternativo!F. El sistema comprue!a la valide( de los datos3 si los datos no son correctos3 se avisa al actor de ello3 permiti)ndole que los corri1a.Poscondiciones! El mensa1e Ca sido almacenado en el sistema .Vista Est-ticaModela conceptos de dominio de aplicaci#n*e muestra en el diagrama de clases,omponentes.,lases y 2elaciones,lasesLas clases se representan por rect-ngulos3 divididos en tres partes.%tri!utos y M)todos.*+I"$*O%Los atri!utos o caracter$sticas de una ,lase pueden ser de tres tipos3 los que denen el grado de comunicaci#n y visi!ilidad de ellos con el entorno3 estos son. p,blico.Indicaqueelatri!utoser-visi!letanto dentro como "uera de la clase3 es decir3 es accesi!le desde todos lados. privado.Indicaqueelatri!utos#loser-accesi!le desdedentrodelaclase0s#losusm)todoslo pueden accesar5. protegido. Indicaqueelatri!utonoser- accesi!le desde "uera de la clase3 pero si podr- ser accesado porm)todosdelaclaseadem-sdelassu!clases que se deriven 0Cerencia5. %tri!utos y M)todos.-.*ODO%Losm)todosuoperacionesdeunaclasesonla"orma en como )sta interact9a con su entorno3 )stos pueden tener las caracter$sticas. p,blico.Indicaqueelm)todoser-visi!letanto dentro como "uera de la clase3 es decir3 es accesi!le desde todos lados. privado.Indicaqueelm)todos#loser-accesi!le desdedentrodelaclase0s#lootrosm)todosdela clase lo pueden accesar5. protegido . Indica que el m)todo no ser- accesi!le desde "uera de la clase3 pero si podr- ser accesado por m)todos de la clase adem-s de m)todos de las su!clases que se deriven 0Cerencia5. 2elaciones entre ,lasesEsnecesarioe7plicarcomosepueden interrelacionardosom-sclases0cadaunocon caracter$sticas y o!1etivos di"erentes5. Elconceptodecardinalidadderelaciones.En UML3lacardinalidaddelasrelacionesindicael grado y nivel de dependencia3 se anotan en cada e7tremo de la relaci#n y )stas pueden ser. 2elaciones entre ,lasesEspecicaci#n de multiplicidad.0m$nima...m-7ima5@ Uno y s#lo unoH..@ ,ero o unoM..= Desde M Casta = 0enteros naturales5I mucCosH..I ,ero o [email protected] Uno o mucCos 0al menos uno52elaciones entre ,lases+E#CIO) DE /E)E+#I0CI1)Indicaqueunasu!claseCeredalosm)todosy atri!utosespecicadosporuna*uper,lase3por endela*u!claseadem-sdeposeersuspropios m)todos y atri!utos3 poseer- las caracter$sticas y atri!utosvisi!lesdela*uper,lase0pu!licy protected53 e1emplo.2elaciones entre ,lases+E#CIO) DE /E)E+#I0CI1)Enlaguraseespecicaque%utoy,ami#nCeredande VeC$culo3 es decir3 %uto posee las ,aracter$sticas de VeC$culo 0Precio3VelMa73etc5adem-sposeealgoparticularquees Descapota!le3encam!io,ami#ntam!i)nCeredalas caracter$sticasdeVeCiculo0Precio3VelMa73etc5peroposee como particularidad propia %coplado3 ?ara y ,arga.2elaciones entre ,lases+E#CI1) DE /+E/CI1) Paramodelaro!1etoscomple1os3no!astanlos tipos de datos !-sicos que proveen los lengua1es. enteros3realesysecuenciasdecaracteres. ,uandoserequierecomponero!1etosqueson instancias de clases denidas por el desarrollador de la aplicaci#n3 tenemos dos posi!ilidades. Por2alor.Esuntipoderelaci#nest-tica3en donde el tiempo de vida del o!1eto incluido esta condicionadoporeltiempodevidadelquelo incluye.Estetipoderelaci#nescom9nmente llamadaComposicin0elO!1eto!asese construyeapartirdelo!1etoincluido3esdecir3 es Jparte&todoJ5. 2elaciones entre ,lases+E#CI1) DE /+E/CI1) Por+e3erencia.Esuntipoderelaci#ndin-mica3en dondeeltiempodevidadelo!1etoincluidoes independiente del que lo incluye. Este tipo de relaci#n es com9nmente llamada gregacin 0el o!1eto !ase utili(a al incluido para su "uncionamiento5. Un E1emplo es el siguiente.2elaciones entre ,lases+E#CI1) DE /+E/CI1) En donde se destaca que. Un %lmac)n posee ,lientes y ,uentas 0los rom!os van en el o!1eto que posee las re"erencias5. ,uando se destruye el O!1eto %lmac)n tam!i)n son destruidos los o!1etos ,uenta asociados3 en cam!io no son a"ectados los o!1etos ,liente asociados. #a composicin 4por 2alor5 se destaca por un rom!o relleno. #a agregacin 4por +e3erencia5 se destaca por un rom!o transparente. 2elaciones entre ,lases+E#CI1) DE /+E/CI1) La BecCa en este tipo de relaci#n indica la navega!ilidad del o!1eto re"erenciado. ,uando no e7iste este tipo de particularidad la BecCa se elimina.Ejemplodeagregacin!unordenadorysus peri")ricos.Losperi")ricosdeunordenadorpueden estarono3sepuedencompartirentreordenadoresy no son propiedad de ning9n ordenador.Ejemplodecomposicin!un-r!olysusCo1as.Un -r!olest-$ntimamenteligadoasusCo1as.LasCo1as son propiedad e7actamente de un -r!ol3 no se pueden compartirentre-r!olesycuandoel-r!olmuere3las Co1as lo Cacen con )l.2elaciones entre ,lases+E#CI1) DE %OCICI1) Larelaci#nentreclasesconocidacomo%sociaci#n3 permiteasociaro!1etosquecola!oranentresi. ,a!edestacarquenoesunarelaci#n"uerte3es decir3 el tiempo de vida de un o!1eto no depende del otro. Ejemplo. UnclientepuedetenerasociadasmucCasOrdenes de ,ompra3 en cam!io una orden de compra solo puede tener asociado un cliente.2elaciones entre ,lases+E#CI1) DE DEPE)DE)CI O I)%*)CICI1) 4$%O5. 2epresenta un tipo de relaci#n muy particular3 en la queunaclaseesinstanciada0suinstanciaci#nes dependientedeotroo!1eto&clase5.*edenotapor una BecCa punteada. Elusom-sparticulardeestetipoderelaci#nes paradenotarladependenciaquetieneunaclase deotra3comopore1emplounaaplicaci#ngraca que instancia una ventana 0la creaci#n del O!1eto Ventanaestacondicionadoalainstanciaci#n proveniente desde el o!1eto %plicaci#n5. 2elaciones entre ,lases+E#CI1) DE DEPE)DE)CI O I)%*)CICI1) 4$%O5. Ejemplo. kale destacar .ue el oljeto creado (en este caso la gentana 'rifica) no se almacena dentro del oljeto .ue lo crea (en este caso la Aplicacien)+ Diagrama de ,lasesDiagrama de ,lases