Está en la página 1de 43

27/05/2011

Elementosdediseo
MBAPilarStronguilLeturia

Agenda
Clasesyrelacioneseneldiseo
Clasedediseo Claseutilitaria Claseestructurada

Navegacinyvisibilidad , Mdulos,SubsistemaseInterfaces Capas Diagramaseneldiseo

27/05/2011

CLASESYRELACIONESENEL DISEO

Clasesdediseo
Unaclasedediseorepresentauna abstraccindeunaomsclasesenla b t i d l l implementacindelsistema. Lacorrespondenciadependedellenguaje deprogramacinelegido.

27/05/2011

Clasesdediseo
Controldeaccesoyencapsulamiento
LanotacinUMLtienelahabilidaddeespecificarel accesodeotrasclases,alosatributosyoperacionesde d t l l t ib t i d unaclasedada.
Elaccesopuedeserpblico,protegido,privadoodepaquete. Elcontrolenelaccesoesusadoparareforzarel encapsulamiento.
Operaciones p Pblicas
Atributos

Operaciones privadas y protegidas

Clasesdediseo
Paradefinirelaccesoseutilizansmbolosque indicaneltipodeaccesibilidaddeatributosy operaciones. Elaccesoesgarantizadoexplcitamenteporla clasemismaynotomadodemaneraforzadapor elcliente.

27/05/2011

Clasesdediseo
Tipode acceso
Pblico Protegido Privado

Smbolo Descripcin

+ # ~

Cualquierclasequepuedeverel contenedorpuedeveryusarlaclase. Solamentelasclasesenelmismo contenedoroundescendientedel p y contenedorpuedeveryusarlaclase. Solamentelasclasesenelmismo contenedorpuedenveryusarlaclase. Solamentelasclasesenelmismo paquete(comocontenedor)pueden veryusarlaclase.

Paquete

Clasesdediseo
Representacindelosatributos
Duranteelanlisisessuficienteidentificarel nombredelosatributos. Larepresentacincompletadelosatributosse deberealizarduranteeldiseo. Sedebeasignaracadaatributountipoy opcionalmenteunvalorpordefecto.
attributeName:Type=Default

27/05/2011

Clasesdediseo
Determinacindeltipodeatributo
Eldiseadordebeseleccionar naapropiada Eldiseadordebeseleccionarunaapropiada representacindelosatributosbasadoenlosiguiente:
Builtin
Proporcionadosporellenguaje. Llamadostambinprimitivas.

Userdefined
Definidosporelusuario p

Declase Userdefined
Clasesdefinidasporelusuario. Estosignificaquehayunarelacinentreclases. Nosedescribenexplcitamenteeneldiagramadeclases.

Clasesdediseo
Determinacindeltipodeatributo
Losdetallesmasfinosde natrib todependendel Losdetallesmasfinosdeunatributodependendel lenguajedeprogramacin.
Anlisis
Course - name - description - maxStudents

Diseo
Course - name : String - description : DayType - maxStudents : short = 0

27/05/2011

Clasesdediseo
Diseandooperaciones
Duranteelanlisis.
Lasoperacionesseusanparaexpresarel comportamientodeloscasosdeuso.

Duranteeldiseo
Seadicionandetallesdeimplementacinalas operaciones. operaciones Seincorporanoperacionesparacompletareldiseo delaclase.

Clasesdediseo
Tiposdeoperaciones
Unaclasecompletapuedeteneroperacionesde 4tipos:
Funcionesdegestin Funcionesdeimplementacin. Funcionesdeacceso Funcionesdeayuda. F i d d

27/05/2011

Clasesdediseo
EjemplodecontroldeaccesoenC++
class Course { public: void addStudent(Student*); bool isFull(); protected: int determineCourseSize(); private: String name; short maxStudents;
Operaciones pblicas

Operaciones p protegidas g Atributos privados

};

Clasesdediseo
Course -description : char* -name : char* -creditHours : short -maxStudents : short

class Course { public: private: char *description; char *name; name; short creditHours;

Data Types Built-in y Derivados

short maxStudents; };

27/05/2011

Clasesdediseo
Course -description : char* description -name : char* -creditHours : short -maxStudents : short -daysOffered : dayType

enum dayType { MW, MWF, TT }; class Course { l C public: private: char *description; char *name; short creditHours; short maxStudents; dayType daysOffered; };

Data Type User-Defined

Clasesdediseo
Course -description : char* -name : char* -creditHours : short -maxStudents : short St d t h t -daysOffered : DayType -location : UniversityPlace

class UniversityPlace { public: private: char *building; short room; }; Clase UserDefined

#include UniversityPlace.h; enum dayType { MW, MWF, TT }; class Course { public: private: char *description; char *name; short creditHours; short maxStudents; dayType daysOffered; UniversityPlace location; };

27/05/2011

Claseutilitaria
Elestereotipodelasclasesutilitariasseusa paramodelarunaclasequecontieneuna d l l ti coleccindesubprogramaslibres.
Subprogramaslibressonaquellasfunciones quenopertenecenaunaclaseenparticular.

Claseutilitaria
Lasclasesutilitariasusualmenteyaestn definidas. d fi id
Paraproporcionarserviciosdealgoritmos comunesquepuedensertilesenmuchos contextos. Paraenvolverelconceptodelibreraso aplicacionesnoOO.
<<utility>> MathFunctions

27/05/2011

Claseutilitaria
Paraevitarelusodefuncioneslibres,sepuedecrearuna claseutilitariaqueagrupetodaslasfuncionesbajouna interfaznica.
Uso de libreras utilitarias del C++ (preferible)
#ifndef UNIT_UTILITIES #define UNIT_UTILITIES class/ utility*/ Unit Utilities class/*_utility / Unit_Utilities { public: static float inchToCentimeter(float inch); };static float centimeterToInch(float centimeter); #endif // UNIT_UTILITIES

Uso de funciones libres


extern float inchToCentimeter(float inch); extern float centimeterToInch (float centimeter);

Cuntasclasessonnecesarias?
Muchasclasessimplessignificaquecadaunadeellas:
Encapsulaunaporcinmenordetodalainteligenciadelsistema. Sonmsreusables. Sonfcilesdeprogramar.

Pocasclasescomplejas,implicaquecadaunadeellas:
Encapsulaunaporcingrandedelainteligenciadetodoel sistema. Sonmenosreusables. Sonmsdifcilesdeprogramar.

Regla de oro: Una clase debe focalizar un propsito nico. Una clase debe hacer una cosa y hacerla bien.

10

27/05/2011

Claseestructurada
Algunasclasespuedenrepresentarabstracciones complejasyporlotantotenerunaestructura igualmentecompleja. Unaclasesestructurada(Structuredclass)enel UML2.x,permiterepresentarloselementos internosdeunaclaseysusrelaciones.
Deestaformalaimplementacintomarencuentalas colaboracionesquesucedenalinteriordelaclase.

Estaclasetienelacapacidaddeteneruna estructurainternaypuertos.

Claseestructurada
Parte
Unainstanciadeunaclaseestructurada contieneunobjetooconjuntodeobjetosque correspondenacadapartedelaclase. Todainstanciasedestruyecuandolaclase estructuradaquelacontieneesdestruida.

11

27/05/2011

Claseestructurada

Cualquier motor acciona cualquier rueda

Cmo el motor acciona la rueda depende del vehculo

Claseestructuradaysuspartes(ejemplo)

Claseestructurada
Conector
Unconectoreslainstanciade narelacinentredos Unconectoreslainstanciadeunarelacinentredos partesdeunaclaseestructurada. Esunnexoparapermitirlacomunicacin. Puedenserimplementadosporasociacionesuotros mecanismos(valoresglobales,variables,o procedimientos) Lamensajerainterna(protocolo)deunaclase estructuradapuedehacersecon:
Conectoresdeensamblaje(assemblyconnectors) Conectoresdedelegacin(delegationconnectors)

12

27/05/2011

Claseestructurada
Conector
Conectoresdeensamblaje (assembl connectors) (assemblyconnectors)
Permiteconectarlospuertosdediferentespartes. Unmensajeenviadodeunpuertodeunaclaseestructuradaen recibidoenelpuertoconectadodeotraclaseestructurada. Deestamaneraunconjuntodepartespuedeestar interconectadoatravsdesuspuertos.

Conectoresdedelegacin (delegationconnectors)
Permitelaconexindelpuertoexternodeunaclase estructuradaconelpuertodeunadesuspartesinternas.

Claseestructurada
Puerto
U Unpuertoesunacaractersticaasociadaauna t t ti i d claseestructurada. Elencapsulamientosepuedeincrementarsise fuerzaaquelascomunicacionesdelexterior haciaunaclaseestructuradaseefectena travsdepuertosconinterfacesdeclaradas. Lasinterfacesrequeridasoprovistasdeun puertoespecificantodolonecesarioparalas interaccionesdesdeyhaciadichasclases.

13

27/05/2011

Claseestructurada
Interfaz IMotor Descripcin Interfazprovistaporel motor,mediantelacual ofrecesusservicios. Interfazrequeridapor elmotormediantela cualesperalosservicios p provistosporsumedio ambiente

IRueda

NAVEGACINYVISIBILIDAD

14

27/05/2011

Navegacin
Enanlisis,lasasociacionessonbi direccionales. Endiseo,unaasociacinpuedeseruni direccional.
Paramostrarquelanavegacinvaenunasola direccin,seadicionaunaflechaenla asociacin. asociacin
Cliente 0..* Pedido El Cliente puede dialogar con su Pedido El Pedido no puede dialogar con el Cliente

Navegacin
Duranteeldiseoobservamossirealmentees necesarionavegarenambasdirecciones. Lanecesidaddelanavegacinserevelaa travsdelosescenariosdeloscasosdeuso.
DadaunainstanciadelaclaseA,necesitamos encontrartodaslasinstanciasasociadasalaclase B? DadaunainstanciadelaclaseB,necesitamos encontrartodaslasinstanciasasociadasalaclase A?

15

27/05/2011

Navegacin
Elsistemadebecontestarpreguntascomo: p g
Aquproveedorpuedocompraresteproducto? (elsistemadebepoderestablecerun commodityolistadeproductosporproveedor) Quproductosestnencaminoyvienendeeste proveedorparticular?
Proveedor 1..* 0..* Producto

Navegacin
Navegacinbidireccionalvs.navegacin unidireccional idi i l
Lasasociacionesbidireccionalessonmas difcilesycostosasquelasunidireccionales. Ansilanavegacinendossentidoses requerida,unaasociacinenunsolosentido puedesersuficientebajociertascircunstancias.

16

27/05/2011

Navegacin
Navegacinbidireccionalvs.navegacin unidireccional idi i l
Porejemplo(cont.):
Lanavegacinesunodelosdossentidosespoco frecuenteynotienerequerimientosprimarios exigentesquelajustifiquen. Elnmerodeinstanciasdeunadelasclasesesmuy pequeo.

Navegacin
Escenario:
Frecuentementenecesitopreguntarque proveedoresnosproporcionanunproducto,en cambio,slonecesitopreguntarporunalista detodoslosproductosproporcionadosporun proveedoralmomentodelafacturacin,una vezcadaquincedas. vezcadaquincedas

17

27/05/2011

Navegacin
Escenario(solucin):
Implementarladireccindeproductoa proveedorybuscarportodaslasinstancias producto,compilandounalistadeproductos porcadaproveedor.
Proveedor 1..* Producto

Navegacin
Navegacinparaagregaciones
L g g i Lasagregacionesdebenserunidireccionales, d b idi i l duranteeldiseo.

OCompra 1..*

OCompraDet

18

27/05/2011

Relacionesdedependencia
Unarelacindedependenciasignifica p g queunaclaseesdependientedeotra paraalgunosservicios. Unarelacindedependenciasedibuja comounaflechapunteada.
Cliente Servidor

Un objeto Cliente depende de un Objeto Servidor

Relacionesdedependencia
Unarelacindedependenciaindicaunade lassiguientesopciones: l i i t i
Operacionesdelaclaseclientecreanobjetosde laclaseservidora. Operacionesdelclientetieneoperaciones cuyostiposderetornooargumentos (parmetros)soninstanciasde(oreferencias ( ) ( de)laclaseservidora.

19

27/05/2011

Relacionesdedependencia
AdministradorMatricula process ()

Pagos

Operaciones que crean objetos de la Clase Servidora

#include Pagos.h void AdministradorMatricula::process(){ Pagos theInterface; }

Relacionesdedependencia
TransactionManager saveCourse (Course&)

Course

class Course; class TransationManager { public: void saveCourse(Course&); private: };


Objetos Servidores como argumentos de operaciones

20

27/05/2011

Visibilidad
Puedo ver

Eslacapacidaddeun objetoparaveraotro ohacerreferenciaael.


ParaqueunobjetoA enveunmensajeaB,B debeservisibleaA

Lasrelacionesproporcionanelcaminoparala comunicacinentreobjetos. o i i e t eobjetos Paraquelosobjetospuedanhablar,estosdeben servisibles.


Lavisibilidaddeobjetosdeterminaeldiseodela relacin

Formasdevisibilidad
HaycuatroformasdevisibilidadentreelobjetoA yelB
Visibilidaddeatributo
BesunatributodeA.

Visibilidaddeparmetro
BesunparmetrodeunmtododeA.

Visibilidadlocal
SedeclaraqueBesunobjetolocalenunmtododeA.

Visibilidadglobal
EnalgunaformaBesvisibleglobalmente.

21

27/05/2011

ModelodeAnlisisyVisibilidad
LaoperacincreateCourse()delaclase CurriculumControllerdemandaalaclase C i l C ll d d l l TransactionManagerguardarunobjetoCurso
Diagrama de Clases CurriculumController createCourse () 1 1 TransactionManager saveCourse (Course) Diagrama de Comunicacin : CurriculumController

1: saveCourse (Course) : TransactionManager

Visibilidadglobal
ElobjetoTransactionManageresdeclarado g globalmente.
1: saveCourse (Course) : CurriculumController G : TransactionManager

Lavisibilidadglobalserepresentaenunarelacin dedependencia.
CurriculumController createCourse () TransactionManager saveCourse (Course&)

22

27/05/2011

Visibilidadglobal
static TransactionManager theManager; g g class CurriculumController { public: void createCourse(); }; class Course; void CurriculumController::createCourse() { Course * N C C *aNewCourse; theManager.saveCourse(aNewCourse); };

Visibilidaddeparmetro
ElobjetoTransactionManageresunparmetro g delaoperacincreateCourse()delaclase CurriculumController
ElobjetoTransactionManageresvisiblesolamente paralaoperacincreateCourse.
1: saveCourse (Course) : CurriculumController
P
G

: TransactionManager

CurriculumController createCourse (TransactionManager&)

TransactionManager saveCourse (Course&)

23

27/05/2011

Visibilidaddeparmetro
class TransactionManager; class Course; class CurriculumController { public: void createCourse(TransactionManager&); }; void CurriculumController:: createCourse(TransactionManager& theManager) { Course *aNewCourse; theManager.saveCourse(aNewCourse); }

Visibilidadlocal
ElobjetoTransactionManageresdeclaradodentro j g delaoperacincreateCourse()delaclase CurriculumController
ElobjetoTransactionManageresvisiblesolamentepara laoperacincreateCourse
1: saveCourse (Course) : CurriculumController LG : TransactionManager TransactionManager saveCourse (Course&)

CurriculumController createCourse ()

24

27/05/2011

Visibilidadlocal
#include TransactionManager.h; class Course; class CurriculumController { public: void createCourse(); }; void C id CurriculumController::createCourse() { i l C t ll t C () Course *aNewCourse; TransactionManager theManager; theManager.saveCourse(aNewCourse); }

Visibilidaddeatributo
ElobjetoTransactionManageresunmiembro datodelaclaseCurriculumController
ElobjetoTransactionManageresvisibleparatodaslas operacionesdelaclaseCurriculumController.
1: saveCourse (Course) : CurriculumController F : TransactionManager

Serepresentaporunarelacindeasociacino agregacin
CurriculumController createCourse () TransactionManager saveCourse (Course)

25

27/05/2011

VisibilidaddeAtributos
#include TransactionManager.h; class Course; class CurriculumController { public: void createCourse(); private: TransactionManager theManager; }; void CurriculumController::createCourse() { Course *aNewCourse; theManager.saveCourse(aNewCourse); }

Ejemplodediseoderelaciones.
LaclaseCurriculumControllereslaresponsablede administrarlainformacindetodosloscursos. administrarlainformacindetodosloscursos ElCursoescreadoyguardadoenlabasededatos Curriculum. LaclaseTransactionManagereslaresponsable porlasinterfacesalabasededatos. E i ExisteunaclaseDBCoursequesabecomo l DBC b almacenarlainformacinpertinentedelcurso. ......

26

27/05/2011

Ejemplodediseoderelaciones.
Cadacursopuedetenerde3a10 estudiantesregistradosyunnicoprofesor. t di t i t d i f Unestudiantesepuederegistrarparaun mximode4cursos. Cadaprofesordicta3cusos. Unreportequelistacursos profesoresy Unreportequelistacursos,profesoresy alumnosregistradossecorredurantelas primerastressemanasdelsemestre.

...Antesdelasdecisionesde diseo.
CurriculumController createCourse () 1 1 1 1..* 1 3 Course 0..4 3..10 Student

1 1 TransactionManager saveCourse (Course) 1 1

1 DBCourse save (Course) Professor

27

27/05/2011

Decisionesdediseo
CurriculumControllerusaaTransactionManager paracadaCoursequeadministra
LaoperacincreateCourse()noeslanicaoperacinen dondeusaaTransactionManager
Seescogelavisibilidaddeatributo.

CurriculumControllerenvamensajesa TransactionManager,peroestenomandaningn mensajeaCurriculumController j C i l C ll


Larelacinesunidireccional(deCurriculumControllera TransactionManager)

Decisionesdediseo
CurriculumControllercreaunnuevoCoursedentro delaoperacincreateCourse.
SeescogeVisibilidadLocal.

AlaoperacinsaveCoursedeTransactionManager selepasaunobjetoCourse.
SeescogevisibilidaddeParmetro.

TransactionManagerusaaDBCourseparasalvar unobjetoCourse.
EstaeslanicaoperacinquenecesitaCourse. SeescogeVisibilidadLocal.

28

27/05/2011

Decisionesdediseo
LaoperacinsalvardeDBCoursenecesitaun j objetoCourse.
SeescogevisibilidaddeParmetro.

Uncursodebeconocerasusestudiantespara generarunreportedelosmismos.
EstosrequerimientosnoestablecenqueelStudent debeconocersuscursos(Courses). Sehaceunarelacinunidireccional.

Uncursodebeconocerasuprofesor
EstosrequerimientosnoestablecenqueelProfessor debeconocersuscursos(Courses). Sehaceunarelacinunidireccional.

...Despusdelasdecisionesde diseo.
CurriculumController createCourse () 1 1 1..* 1 3 1 Course 0..4 3..10 Student

1 1 TransactionManager saveCourse (Course) 1 1

1 DBCourse save (Course) Professor

29

27/05/2011

MDULOS,SUBSISTEMASE INTERFACES

Mdulos
Elconceptodemdulotienesuorigenen unatcnicadediseollamada programacinmodularquepermitela divisindeunsistemaenpartesformadas porelementosdesoftwareseparadose intercambiablesquerealizanunconjuntode funcionesespecficas. p

30

27/05/2011

Mdulos
Puedeencapsularfuncionescomo:
Hablarconunabasededatos. Mantenerunbufferdememoria. Controlarelaccesoaunobjetooconjuntode objetos

Losmdulosusanlosprincipiosde encapsulamiento. encapsulamiento


Estosignificaquesolamentelasvariablesque sonpartedelainterfazdelmdulopuedenser vistasporfuera.

Subsistemas
Demanerasimilaralconceptodemdulo, sonconstruccioneslgicasqueseutilizan t i l i tili paradescomponerunsistemagrandeen bloquesmanejables.
Permitenagruparobjetosrelacionadospara lograrciertafuncionalidad. Nosepuedeninstanciarenelmomentode ejecucin,perosisuscontenidos.

31

27/05/2011

Subsistemas
Unsubsistemaesunapartedelsistemaque:
Encapsulacomportamiento p p Exponeunconjuntodeinterfaces Empaquetaunconjuntodeelementosdelmodelo.

Externamente,sonmecanismosde encapsulamiento,vistoscomocajasnegras, dondesusobjetoscooperanparalograruna unidaddefuncionalidadclaramentedelimitada porelSubsistema. lS b i


Lasinterfacesexternasysucomportamientose describencomolaespecificacindelsubsistema.

Subsistemas
Internamente,tienenestructurascomplejas (clasesdediseoyotrossubsistemas) colaborandoentresiparasatisfacersus distintasresponsabilidades,contribuyendo alobjetivogeneraldelsubsistema.
Estasestructurassedescribencomola realizacindelsubsistema.

Dossubsistemaspuedeninclusotener arquitecturasdistintasparaunmismo sistema.

32

27/05/2011

Subsistemas
Lossubsistemassepuedenusardemuchas manerasparapartirelsistemaenunidades quepuedenser:
Ordenadas,configuradasyentregadasde maneraindependiente. Desarrolladas,demaneraindependientesisus interfacespermaneceninvariables. Distribuidasindependientemente,atravsde variosnodosdeprocesamiento. Modificadas,sindaarotraspartesdelsistema.

Subsistemas
DesdelaperspectivadelProcesoUnificado (RUP),lossubsistemassonunconceptode (RUP) l b i t t d estructuracinclave. Descomponerunsistemaensubsistemas, resuelveunproblemacomplejo, descomponindoloenmuchos p subproblemas,mspequeosymanejables.

33

27/05/2011

Interfaces
Unainterfazesunaclaselmiteatravsdelacual doselementospuedencomunicarseeinteractuar. Esunelementodelmodeloquedefineun conjuntodecomportamientos(operaciones) ofrecidasporunelementoclasificador(clase, subsistemaocomponente).
Unclasificadorpuederealizarunaomuchasinterfaces. U i Unainterfazpuedeserrealizadaporunooms f d li d clasificadores. Cadainterfazdebeproporcionarunconjuntonicoy biendefinidodeoperaciones.

Interfaces
Lasinterfacesvandelamanoconlos subsistemascomosemuestra.

34

27/05/2011

Interfaces
Unainterfazespecifica unconjuntode caractersticaspblicas queespecificanun serviciodeunaclaseo subsistema. Laideaclaveesseparar p laespecificacindeuna funcionalidad,desu implementacin.

Interfaces
Documentarlainterfazconsisteen:
Nombrarlaeidentificarla Describirsusintaxisysemntica
Sintaxis:Eslafirmadelainterfazqueincluyesu nombreylosnombresytiposdedatosdesus argumentos. Semntica:Describelosresultadosalinvocarala interfaz.

35

27/05/2011

Interfaces
Losatributosyoperacionesenunainterfazdeben estarespecificadoscompletamenteeincluirlo siguiente:
Lafirmacompletadelaoperacin(nombre,tipode todoslosparmetrosytipoderetorno) Lasemnticadelaoperacin,estosepuedegrabar comotextoopseudocdigo Elnombreytipodelosatributos Cualquieroperacinoestereotipodeatributo, restriccinyvaloretiquetado

Disearconinterfaces
Aldisearsistemasentornoainterfaces, lasasociacionesyenvosdemensajeyano l i i d j estnunidosaobjetosdeunaclase determinadasinoqueestnunidosauna interfazdeterminada.

36

27/05/2011

Disearconinterfaces
Utilizandointerfaces, sepuededisear protocoloscomunes quesepodranrealizar pormuchasclaseso componentes. Unbuenejemplode estoesunsistema i paraproporcionaruna interfazcomnavarios sistemasheredados.

Disearconinterfaces
Enunsistemaderecursoshumanos,existenmuchasclases quetienenunnombreydireccin.Porejemplo,Persona, UnidadOrganizativa,Trabajo. Todasestasclasespuedendesempearunrolcomny tienesentidoquetenganlamismainterfazparagestionar losdetallesdelnombreyladireccin.

37

27/05/2011

Disearconinterfaces
Otrassolucionesaesteproblemapuedenutilizar herencia,perogeneraaltoacoplamiento. herencia perogeneraaltoacoplamiento Enestecasolasolucindeinterfazesmejor.

CAPAS

38

27/05/2011

Capas
Unacapa(layer)proporcionaunaparticin lgicadeunsistema/subsistemaenun l i d i t / b i t nmerodeconjuntosdeelementoscon ciertasreglasde:
Comodebendarselasrelacionesentrecapas p Dependencia
Conelresultadodequeelsistematienebajo acoplamientoyporlotantoesmsfcilsu mantenimiento.

Capas
Relaciones Usopermitido(Allowedtouse)
Estableceunajerarquadecapas. Losmdulosdeunacapanopuedenutilizar arbitrariamentelosdeunacapasuperior. Reglasdeuso:nicamenteelnivel inmediatamenteinferior,ocualquiernivel inferior,etc.

Caractersticas
Reusabilidad,portabilidadytoleranciaafallas

39

27/05/2011

CapasenUML

Acoplamientoporcapas
Aplicacin Capa Aplicacin

Capa de acceso al Ambiente Ambiente


APLICACIN FUERTEMENTE ACOPLADA AL AMBIENTE

Ambiente
APLICACIN LIGERAMENTE ACOPLADA AL AMBIENTE

CAPA

PERMITIDO USAR

40

27/05/2011

Ejemplo.NET
Aplicacin .Net Framework Web Web Forms services Data y XML Clases Windows Forms

(ADONET, SQL, XSLT, XPATH, XML, etc)

Clases base del Framework

(IO,string,net security, text, reflection, collection, etc)

Common Language Runtime

(debug, exception, type checking, etc)

Plataforma Windows

DIAGRAMASENELDISEO

41

27/05/2011

ActualizandoDiagramas
LosdiagramasdeClasessonactualizados paramostrarlosmecanismosaser t l i implementados. Losdiagramasdesecuenciaseactualizan paramostrarlainteraccinentrelasclases realesdescubiertasylasquerepresentan y q p losmecanismosestratgicos.

UnDiagramadeClases Actualizado
Outgoing Interfaces GUI Widgets Incoming I i Interfaces

Business Rules

University Artifacts

Foundations
global

Error Handling
global

Database

42

27/05/2011

UnDiagramadeSecuencia Actualizado
: Registrar aForm : CurriculumMgr 1: open p 2: enter id 3: verify id 4: enter 5: create a 6: set number, name, description, 7: set number offerings, professor, 8: process 9: create course(number, name, description, credit hours, offerings, 10: create(number, name, description, 11: create offering(number, pofessor, 12: create(professor, time, 13: save 14: save(course) 15: get info 16: commit 17: save(offering) 18: get info 19: commit

theManager : CurriculumMgr

theCourse : Course

anOffering : (Course

dbMgr : TransactionMgr

dbCourse : DBCourse

dbOffering : DBOffering

Conclusiones
Loselementosdediseoestn directamenterelacionadosconaspectosde di t t l i d t d implementacin. Portalmotivo,sediseanyusanen correspondenciaconlaarquitecturaelegida ( (atributosdecalidad),herramientasde ), programacin,conexinalabasededatos, distribucin,etc.

43