11

ATRIBUTOS

  • Upload
    clau-rc

  • View
    213

  • Download
    1

Embed Size (px)

DESCRIPTION

Ing. Requerimentos

Citation preview

DIAGRAMAS DE CLASES

Diagramas de ClasesEl Diagrama de Clases es el diagrama principal para el anlisis y diseo. Un diagrama de clases presenta las clases del sistema con sus relaciones estructurales y de herencia. La definicin de clase incluye definiciones para atributos y operaciones. El modelo de casos de uso aporta informacin para establecer las clases, objetos, atributos y operaciones.

El mundo real puede ser visto desde abstracciones diferentes (subjetividad)

NOTACION.-Cada clase se representa en un rectngulo con tres compartimientos:

Nombre de la

Clase 1

Atributo 1

Atributo 2

.................

Operacion1( )

Operacion2( )

.................

Nombre de la clase

Atributos de la clase

Operaciones de la clase

Atributos:

Los atributos de una clase no deberan ser manipulables directamente por el resto de objetos. Por esta razn se crearon niveles de visibilidad para los elementos que son:

Privado (-): es el ms fuerte. Esta parte es totalmente invisible (excepto para clases friends en terminologa C++).

Protegido (#): Los atributos/operaciones protegidos estn visibles para las clases friends y para las clases derivadas de la original.

Pblico (+): Los atributos/operaciones pblicos son visibles a otras clases (cuando se trata de atributos se est transgrediendo el principio de encapsulacin).

Mtodos:

Los mtodos u operaciones de una clase son la forma en como sta interacta con su entorno, stos pueden tener las caractersticas:

Privado (-): Indica que el mtodo slo ser accesible desde dentro de la clase (slo otros mtodos de la clase lo pueden acceder).

Protegido (#): Indica que el mtodo no ser accesible desde fuera de la clase, pero si podr ser accesado por mtodos de la clase adems de mtodos de las subclases que se deriven (ver herencia).

Pblico (+): Indica que el mtodo ser visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados.

Ejemplos de Clases:

Alumno

- Nombre

- Direccin

- Carnet_Identidad

+ Estudiar( )

+ Tomar_apuntes( )

Automvil

- Ruedas

- Asientos

- Puertas

+ Arrancar ( )

+ Acelerar ( )

+ Frenar ( )

+ Girar ( )

Cliente

- Nombre

- Direccin

- Telfono

+ Comprar ( )

+ Devolver ( )

Relaciones entre clases:Los enlaces entre objetos pueden representarse entre las respectivas clases y sus formas de relacin son:

Asociacin

Agregacin (vista como un caso particular de asociacin)

Generalizacin/Especializacin.

Las relaciones de Agregacin y Generalizacin forman jerarquas de clases.

Asociacin:La asociacin expresa una conexin bidireccional entre objetos. Una asociacin es una abstraccin de la relacin existente en los enlaces entre los objetos. Puede determinarse por la especificacin de multiplicidad (mnima...mxima)

Multiplicidad:

Representa el nmero de objetos que pueden conectarse a travs de una relacin de asociacin.

Existen tres tipos de multiplicidad o cardinalidad.

Uno a Uno

Uno a Muchos Muchos a Muchos

NotacinLectura

1Exactamente Uno

*Muchos

01Cero a uno

0*Cero a muchos

1*Uno a Muchos (al menos uno)

MNDe M hasta N (enteros naturales)

Ejemplos:

1...*1...*

1*

1*Roles:

Para indicar el papel que juega una clase en una asociacin se puede especificar un nombre de rol.

Ejemplo 1:

*Emplea1*

ContratanteEmpleadoEjemplo 2:

2

Es_padre_de

*

Se representa en el extremo de la asociacin junto a la clase que desempea dicho rol.Clases Asociacin:

Cuando una asociacin tiene propiedades propias se representa como una clase unida a la lnea de la asociacin por medio de una lnea a trazos. Tanto la lnea como el rectngulo de clase representan el mismo elemento conceptual: la asociacin. Por tanto ambos tienen el mismo nombre, el de la asociacin. Cuando la clase asociacin slo tiene atributos el nombre suele ponerse sobre la lnea (como ocurre en el ejemplo de la Figura 11). Por el contrario, cuando la clase asociacin tiene alguna operacin o asociacin propia, entonces se pone el nombre en la clase asociacin y se puede quitar de la lnea.

Ejemplo:

*Emplea1*

ContratanteEmpleado

Agregacin:

Para modelar objetos complejos, n bastan los tipos de datos bsicos que proveen los lenguajes: enteros, reales y secuencias de caracteres. Cuando se requiere componer objetos que son instancias de clases definidas por el desarrollador de la aplicacin, tenemos dos posibilidades:

Por Valor: Es un tipo de relacin esttica, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye. Este tipo de relacin es comnmente llamada Composicin (el Objeto base se construye a partir del objeto incluido, es decir, es "parte/todo").

Por Referencia: Es un tipo de relacin dinmica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye. Este tipo de relacin es comnmente llamada Agregacin (el objeto base utiliza al incluido para su funcionamiento).

Un Ejemplo es el siguiente:

En donde se destaca que:

Un Almacen posee Clientes y Cuentas (los rombos van en el objeto que posee las referencias).

Cuando se destruye el Objeto Almacn tambin son destruidos los objetos Cuenta asociados, en cambio no son afectados los objetos Cliente asociados.

La composicin (por Valor) se destaca por un rombo relleno.La agregacin (por Referencia) se destaca por un rombo transparente.La relacin de agregacin tiene cardinalidad o multiplicidad.

Ejemplo: 2

Ejemplo: 3

**

Generalizacin:Permite gestionar la complejidad mediante un ordenamiento taxonmico de clases, se obtiene usando los mecanismos de abstraccin de Generalizacin y/o Especializacin. La Generalizacin consiste en factorizar las propiedades comunes de un conjunto de clases en una clase ms general. Los nombres usados: clase padre - clase hija. Otros nombres: superclase - subclase, clase base - clase derivada. Las subclases heredan propiedades de sus clases padre, es decir, atributos y operaciones (y asociaciones) de la clase padre estn disponibles en sus clases hijas. La Generalizacin y Especializacin son equivalentes en cuanto al resultado: la jerarqua y herencia establecidas. Generalizacin y Especializacin no son operaciones reflexivas ni simtricas pero s transitivas. La especializacin es una tcnica muy eficaz para la extensin y reutilizacin.

La Notacin para la Generalizacin/Especializacin es un triangulo que conecta una superclase con sus subclases.

La superclase se conecta a la parte superior del triangulo.La subclase se conecta mediante una lnea a la base del triangulo.

Ejemplo:

Vehiculo

- Ruedas

- Puertas

- Asiento

+ Arrancar( )

+ Acelerar( )

+ Frenar( )

+ Girar( )

Automvil

- Deportivo

+ Correr( )

Camin

- Remolque

+ Cargar( )

Construccin de un Diagrama de Clases de Diseo

Normalmente se tiene una idea de un Diagrama de Clases, con una asignacin de responsabilidades inicial. En caso de que no se tenga dicho Diagrama de Clases Borrador, puede seguirse la siguiente estrategia:

1. Identificar todas las clases participantes en la solucin software. Esto se lleva a cabo analizando los Diagramas de Interaccin.

2. Representarlas en un diagrama de clases.

3. Duplicar los atributos que aparezcan en los conceptos asociados del Modelo Conceptual.

4. Aadir los mtodos, segn aparecen en los Diagramas de Interaccin.

5. Aadir informacin de tipo a los atributos y mtodos.

6. Aadir las asociaciones necesarias para soportar la visibilidad de atributos requerida.

7. Aadir flechas de navegabilidad a las asociaciones para indicar la direccin de visibilidad de los atributos.

8. Aadir relaciones de dependencia para indicar visibilidad no correspondiente a atributos.

Algunos de estos pasos se van realizando segn se vayan completando los Diagramas de Interaccin correspondientes. No existe precedencia entre la realizacin del Diagrama de Clases de Diseo y los Diagramas de Interaccin. Ambos tipos de diagramas se realizan en paralelo, y unas veces se trabaja primero ms en el de clases y otras veces se trabaja primero ms en los de interaccin.No todas las clases que aparecan en el Modelo Conceptual tienen por qu aparecer en el Diagrama de Clases de Diseo. De hecho, tan solo se incluirn aquellas clases que tengan inters en cuanto a que se les ha asignado algn tipo de responsabilidad en el diseo del sistema. No hay, por tanto, un transicin directa entre el Modelo Conceptual y el Diagrama de Clases de Diseo, debido a que ambos se basan en enfoques completamente distintos: el primero en comprensin de un dominio, y el segundo en una solucin software.En el Diagrama de Clases de Diseo se aaden los detalles referentes al lenguaje de programacin que se vaya a usar. Por ejemplo, los tipos de los atributos y parmetros se expresarn en el lenguaje de implementacin escogido.

Ejemplo de Aplicacin

Consignatario de Industrias Venado El Alto

Persona

Compaa

Trabaja_para

Aeropuerto

Vuelo

Proyecto_Software

Lenguaje_prog

Persona

Trabaja_en_proyecto

Trabaja_para

Compaa

Persona

Aeropuerto

Vuelo

Carrera

Facultad

Universidad

Monitor

Salario

Trabajador

Empresa

Trabajador

Empresa

Padre

Persona

Hijo

Teclado

CPU

Ordenador