Gua para identificacin de clases y sus componentes Identificar Clases Qu elementos fsicos o lgicos intervienen en el sistema! "dentificar los sustantivos del enunciado del #ro$lema % determinar si son o$&etos o entidades 'ue sean #arte necesaria del sistema( )ntidades e*ternas+ ,otros sistemas- dis#ositivos- gente. 'ue #roducen o consumen informacin a ser utili/ada en el sistema( "dentificar roles 'ue cum#len las #ersonas en el sistema- #or e&em#lo Usuarios- 0lientes- 1dministradores- etc( 2ugares relevantes #ara el sistema( Todo lugar 'ue se mencione % 'ue sea relevante- #or e&em#lo 3e#sitos- 1duanas- etc(. 4istemas e*ternos 'ue interact5an con el sistema- #or e&em#lo #lataformas de #ago ,Pago 67cil- Pagomiscuentas- etc(.- servicios de validacin de usuarios ,2ive "3. o incluso sensores o m7'uinas de medicin 8a% necesidad de recordar el o$&eto en cuestin! Tiene un solo atri$uto! 4i es as- #uede 'ue sea #arte de un o$&eto mas general P7gina 1 de 9 Programacin multimedial 3 Universidad Maimnides 2011 Turno noche Ilustracin 1 - Diagrama de clases de un blog P7gina 2 de 9 Programacin multimedial 3 Universidad Maimnides 2011 Turno noche Identificar atributos Qu caractersticas de los diferentes o$&etos detectados son relevantes #ara el sistema! Qu informacin #uede llegar a ser necesaria #ara identificar a los diferentes o$&etos! ,1un'ue no se mencione en el enunciado del #ro$lema. Qu informacin re'uiere una clase #ara tener el com#ortamiento es#erado! Identificar operaciones 0onstructores+ los constructores siem#re est7n #resentes( 4i $ien no es necesario reali/ar o#eraciones dentro de ellos siem#re de$en estar definidos #ara cada clase( 0uando %a se definieron todos los atri$utos- se de$e anali/ar si el constructor de$e reali/ar o#eraciones #ara :iniciali/ar; cada atri$uto( <#eraciones #ara administrar atri$utos+ dado 'ue es im#ortante res#etar el #rinci#io de enca#sulamiento- no se accede a los atri$utos de la clase directamente- sino 'ue se definen o#eraciones #ara consultar el valor- % #ara asignar un valor nuevo( =ormalmente se denominan :get; ,o$tener. % :set; ,asignar. seguido del nom$re del atri$uto( "dentificar mensa&es entre diferentes o$&etos( Para ello u$icar todas las relaciones % cmo de$eran comunicarse entre los diferentes o$&etos( 4o$recarga de o#eraciones+ tanto los constructores como el resto de las o#eraciones #ueden re'uerir ser definidos mas de una ve/- de#endiendo de los #ar7metros 'ue reci$e( Identificar relaciones Qu clases son a$stracciones naturales de clases %a e*istentes! Qu clases com#arten atri$utos o mtodos! Qu clases de#enden de otras #ara e*istir! 2a clase de la 'ue de#ende- #uede e*istir sin relacionarse con otras! "dentificar so$recarga de constructores u o#eradores e*cesiva- si en una clase sucede es #or'ue #osi$lemente ha%a 'ue :es#eciali/arla; en varias( Identificar restricciones "dentificar valores #osi$les % no #osi$les de los atri$utos( 3escri$irlos como restricciones de las clases "dentificar valores #ermitidos #ara las asociaciones( 3escri$irlos como restricciones de la asociacin "dentificar restricciones 'ue relaciones dos o m7s atri$utos o relaciones( 3escri$irlas dentro de la clase corres#ondiente
Identificar paquetes Qu su$divisiones lgicas #ueden tener las clases identificadas! Qu su$con&unto de clases % casos de uso #ueden ser reutili/ados en otros dominios! 0om$inar clases fuertemente relacionadas en un #a'uete 0om$inar clases 'ue tienen 'ue ver con los mismos #rocesos en un #a'uete P7gina 3 de 9 Programacin multimedial 3 Universidad Maimnides 2011 Turno noche Ejemplos de diagramas de clases Gestin de bibliotecas Ilustracin 2 - Sistema de gestin bibliotecaria P7gina > de 9 Programacin multimedial 3 Universidad Maimnides 2011 Turno noche ensajero !tipo S"# Ilustracin $ - Sistema de mensajera instant%nea