hora 1-5 uml

22

Click here to load reader

Upload: lulu-olvlo

Post on 24-Oct-2015

387 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Hora 1-5 UML

RESUMEN

Nombre(s): Olvera López Lourdes. Matrícula(s): 09101485

Número de equipo:

Nombre de la asignatura: Desarrollo de Proyectos de Software.

Nombre del profesor(a): Gabriela Orozco Magallón.

Hora 1: Introducción a UML.

Introducción.

Durante el proceso de desarrollo de software es importante que tanto el

equipo de desarrolladores como el cliente tengan un método de comunicación en

el cual se representen las ideas para solucionar una problemática. Este medio de

comunicación puede ser a través de UML que facilitará la captura de estas ideas

bajo una notación entendible para ambas partes, desarrolladores y cliente.

Desarrollo.

UML nos ayuda a crear un diseño detallado del sistema que solucionará la

problemática definida por el cliente. Este diseño detallado es un análisis cuidadoso

de las necesidades del cliente, y que generará un diseño sólido para construcción

del software de solución. El lenguaje de UML son los diagramas. Dichos

diagramas presentan las diversas perspectivas de un sismas, a las cuales se les

conoce como modelo. En los modelos UML se describe lo que el sistema hará

más no como se implementará.

UML cuanta con muchos diagramas que nos permiten examinar el sistema

desde varios puntos de vista, por ejemplo, el diagrama de clases representa a

todas las cosas que rodean al sistema y se identifican sus propiedades y atributos.

Page 2: Hora 1-5 UML

RESUMEN

También están los diagramas de casos de uso, en los que se describen las

acciones de un sistema desde el punto de vista del usuario. Este diagrama es una

valiosa herramienta para el analista, ya que es una técnica para identificar los

aciertos y errores de la obtención de los requerimientos para el sistema.

Conclusión.

UML es una herramienta que nos permite modelar un sistema desde

muchos puntos de vista y a generar un plano detallado para su construcción. Es

de gran importancia que estos modelos sean entendidos por el cliente, ya que de

lo contrario los modelos erróneos pasarían por todo el equipo de desarrollo dando

como resultado un sistema que no cumpla con las funcionalidades deseadas.

Preguntas y Respuestas.

1. He visto que se refiere al Lenguaje Unificado de Modelado como “UML” y

como “el UML”. ¿Cuál es el correcto?

- Los creadores del lenguaje prefieren el uso de “el UML”.

2. Ha indicado que el UML es adecuado para los analistas. No obstante, el

diagrama de distribución no parece ser algo muy útil en la fase de análisis

en el desarrollo de un sistema. ¿No sería más apropiado para una fase

posterior?

- En realidad nunca será demasiado pronto para empezar a pensar en la

distribución (u otras cuestiones que, tradicionalmente, se dejan para

fases posteriores del desarrollo). Aunque es cierto que el analista se

interesa por hablar con los clientes y usuarios, en las fases tempranas

del proceso en analista debería pensar en los equipos y componentes

que constituirán el hardware del sistema. En algunas ocasiones, el

cliente dicta esto; en otras, el cliente desea una recomendación del

equipo de desarrollo. Ciertamente, un arquitecto de sistemas encontrará

útil el diagrama de distribución.

Page 3: Hora 1-5 UML

RESUMEN

3. Ha mencionado que es posible hacer diagramas híbridos. ¿UML, perdón, el

UML, impone limitaciones respecto a los elementos que podrá combinar en

un diagrama?

- No. El UML no establece límites, no obstante, con frecuencia se da el

caso de que un diagrama contenga un tipo de elemento. Podrá colocar

símbolos de clases en un diagrama de distribución, pero ello no será

muy útil.

Taller.

Cuestionario.

1. ¿Por qué es necesario contar con diversos diagramas en el modelo de un

sistema?

- Cualquier sistema cuanta con diversos usuarios con intereses distintos.

Cada tipo de diagrama UML presenta una idea que podrá ser

comprendida por cualquiera de los usuarios.

2. ¿Cuáles diagramas le dan una perspectiva estática de un sistema?

- Los diagramas de clases, objetos, componentes y distribución.

3. ¿Cuáles diagramas del dan un perspectiva dinámica de un sistema (esto

es, muestran los cambios progresivos)?

- Los diagramas de casos de uso, estados, secuencias, actividades y

colaboraciones.

Ejercicios.

1. Suponga que creará un sistema informático que juagara ajedrez con un

usuario. ¿Cuáles diagramas UML serían útiles para diseñar el sistema?

¿Por qué?

- Diagrama de casos de uso, porque en el representaría las acciones que

el usuario podría realizar dentro del juego, por ejemplo, los movimientos

de la piezas del tablero.

Page 4: Hora 1-5 UML

RESUMEN

- Diagrama de estados, porque en este representaría el resultado de los

movimientos del usuario en el tablero, como el comerse una pieza o

ganar el juego.

- Diagrama de clases y diagrama de objetos, lo utilizaría para definir a

cada una de las piezas del tablero.

- Diagrama de distribución, porque es necesario para describir las

condiciones en las que el juego se desempeñaría de la mejor manera,

por ejemplo, los gráficos y el modo de operarlo.

2. Para el sistema del ejercicio que ha completado, liste las preguntas que

formularía a un usuario potencial y por qué las haría.

- ¿el sistema contendrá niveles de juego, como: principiante, intermedio o

avanzado? Lo peguntaría para saber si una acción condicional existe

para que el usuario comenzara a jugar.

- ¿el sistema guardará los registros de los jugadores? Lo preguntaría

porque esto refleja un requerimiento funcional del sistema.

Hora 2. Orientación a objetos

Introducción.

Ya que UML maneja la orientación a objetos, ha retomado las ventajas de

este paradigma en los modelos de objetos, fomentando una metodología basada

en componentes para el desarrollo de software, de manera que primero se genera

un sistema mediante un conjunto de objetos, luego se podrá ampliar el sistema

agregándole funcionalidades a los componentes, y finalmente se podrá volver a

utilizar los objetos que se generaron, con lo cual se reducirá sustancialmente el

tiempo de desarrollo de un sistema.

Page 5: Hora 1-5 UML

RESUMEN

Desarrollo.

El principal propósito de la orientación a objetos es desarrollar software que

refleje un esquema del mundo real mediante objetos, en realidad, la orientación a

objetos funciona como una plantilla para fabricar objetos. Un objeto, es una

instancia de clase (o una categoría) que cuenta con una estructura, es decir

atributos (propiedades) y acciones. Las acciones son todas las actividades que el

objeto es capaz de realizar, y que trabajan en conjunto con los atributos para crear

características o rasgos propios de un objeto.

Además de atributos y acciones, la orientación a objetos considera otros

aspectos como la abstracción, herencia, polimorfismo y encapsulamiento. La

abstracción se refiere a quitar las propiedades y acciones de un objeto para dejar

sólo aquellas que sean necesarias. En el caso de la herencia, un objeto es una

instancia de una clase y por consecuencia un objeto tiene todas las características

de la clase de la que proviene. No importa qué atributos y acciones contenga la

clase, porque cada objeto de la clase heredará dichos atributos y operaciones.

En el caso del polimorfismo, una operación puede tener el mismo nombre

en diversas clases, y funcionar de forma distinta en cada una de ellas. El termino

encapsulamiento se refiere a los objetos que encapsulan lo que hacen; es decir,

ocultan la funcionalidad interna de sus operaciones, de otros objetos y del mundo

exterior.

Conclusión.

Como desarrolladores, el dominar los conceptos de la orientación a objetos

nos puede ayudar a comprender las ideas del cliente, y a representar sus puntos

de vista en términos que él pueda comprender. Es aquí cuando se utilizan los

diagramas UML, que tienen por objetivo extraer las características del mundo real

al mundo virtual para la generación de un sistema.

Page 6: Hora 1-5 UML

RESUMEN

Preguntas y respuestas.

1. Usted dijo que la orientación a objetos ha tomado por asalto al mundo del

software. ¿Qué no hay algunas aplicaciones importantes que no están

orientadas a objetos?

- Sí, y se conocen como sistemas "heredados" (programas que en

muchos casos son ejecutados para mostrar su época). La orientación a

objetos ofrece diversas ventajas, como la reusabilidad y un rápido

periodo de desarrollo. Por tales razones, muy probablemente verá las

nuevas aplicaciones (y las versiones rediseñadas de varias aplicaciones

antiguas) escritas bajo el esquema de la orientación a objetos.

Taller.

Cuestionario

1. ¿Qué es un objeto?

- Un objeto es una instancia de una clase.

2. ¿Cómo trabajan los objetos en conjunto?

- Los objetos trabajan en conjunto mediante el envío de mensajes entre

sí.

3. ¿Qué establece la multiplicidad?

- La multiplicidad establece la cantidad de objetos de una clase que se

relacionan con otro de una clase asociada.

4. ¿Pueden asociarse dos objetos entre sí en más de una manera?

- Sí, por ejemplo: dos personas pueden estar asociadas como amigos y

colaboradores.

Page 7: Hora 1-5 UML

RESUMEN

Hora 3. Uso de la orientación a objetos.

Introducción.

A UML y a la orientación a objetos no podemos tomarlos como dos

conceptos separados, por lo menos en este curso, ya que al aprender UML

hacemos referencia a los conceptos de la orientación a objetos que nos servirán

para extraer las características de los ejercicios propuestos más adelante. Además

de esto, es de gran ayuda conocer a que se refiere cada concepto utilizado en la

orientación a objetos y relacionarlo con uno de los diagramas de UML.

Desarrollo.

UML también maneja clases y paquetes, el símbolo que representa a una

clase es un rectángulo con el nombre de la clase empezando con la primera letra

en mayúscula. Un paquete es la manera en que el UML organiza un diagrama de

elementos, este de representa como una carpeta tabular cuyo nombre es una

cadena de texto, por ejemplo la palabra "Electrodomesticos::Lavadora", en la que

los dos puntos separan al nombre del paquete, que está a la izquierda, del nombre

de la clase, que va a la derecha. A este tipo de nombre de clase se le conoce

como nombre de ruta.

La definición de los atributos de una clase inicia luego de una línea que los

separa del nombre de la clase. Una clase podrá contener varios o ningún atributo.

El nombre de atributo consta de una sola palabra escrita en minúsculas. Es

posible agregar un valor especifico a cada atributo con el formato “= “valor” ” o “=

“tipo de dato” para asignar el tipo de datos que contendrá el atributo.

Una operación es algo que la clase puede realizar, su nombre se escribe de

la misma manera que el nombre de un atributo. La lista de operaciones se inicia

debajo de una línea que separa a las operaciones de los atributos, también es

posible establecer información adicional a las operaciones encerrando entre

paréntesis el parámetro y el tipo de dato utilizado para esa operación. La función

Page 8: Hora 1-5 UML

RESUMEN

de esto, que es un tipo de operación, devuelve un valor luego que finaliza su

trabajo. En una función podrá mostrar el tipo de valor que regresará.

Además de definir atributos y operaciones de una clase, también es posible

definir otro tipo de información adicional como la responsabilidad que es una

descripción de lo que hará la clase, es decir, lo que sus atributos y operaciones

intentan realizar en conjunto. También se pueden incluir notas adjuntas para

agregar mayor información a una clase. El fin de todo esto es incluir suficiente

información para definir una clase de forma inequívoca.

Conclusión.

Las clases con el vocabulario y terminología de un área del conocimiento,

conforme hablamos con los clientes, analizamos se área de conocimiento y

diseñamos sistemas que resuelvan los problemas de dicha área. Por este motivo

es que las clases deben ser definidas de forma exacta ya que así modelamos de

forma concreta la solución exacta para el área en la que se presenta la

problemática. Además así estimulamos al cliente a que diga más al respecto de su

área de conocimiento y que ponga en evidencia cierta información adicional para

el sistema.

Preguntas y respuestas.

1. Usted mencionó el uso del "sentido común” para generar el diagrama de

clases del baloncesto. Ello suena bien en tal instancia pero, ¿qué ocurre

cuando tengo que analizar un área desconocida para mí (donde el sentido

común no será de mucha ayuda)?

- Por lo general, contará con cierto apoyo en un área desconocida para

usted. Antes de que se reúna con un cliente o con un experto en el

campo, intente convertirse en un "sub-experto". Prepárese para la

reunión y lea cuanta documentación relacionada tenga a la mano.

Pregunte a sus entrevistados respecto a documentos o manuales que

Page 9: Hora 1-5 UML

RESUMEN

hayan escrito. Cuando haya terminado de leer, tendrá cierto

conocimiento básico y podrá realizar las preguntas indicadas.

2. ¿En qué momento tendría que mostrar la firma de una operación?

- Tal vez, luego de la fase de análisis de un proceso de desarrollo,

conforme se adentre en el diseño. La firma es una sección de

información que los desarrolladores podrían encontrar muy útil.

Taller.

Cuestionario.

1. ¿Cómo representa una clase en el UML?

- Con un rectángulo; el nombre de la clase se coloca dentro de él, en la

parte superior.

2. ¿Qué información se puede mostrar en un símbolo de clase?

- Se pueden colocar los atributos, operaciones y responsabilidades de la

clase.

3. ¿Qué es una restricción?

- Es una regla y se escribe entre llaves.

4. ¿Para qué se adjuntaría una nota a un símbolo de clase?

- Para agregar información que no se encuentra en los atributos,

operaciones o responsabilidades. Por ejemplo, podría desear que el

usuario del modelo lea un documento en particular que contenga

información respecto a la clase.

Ejercicios.

1. He aquí una breve (e incompleta) descripción del balompié:

Un equipo de balompié (o fútbol soccer) consiste en 11 jugadores de campo (el

portero y el resto, jugadores de cancha que, en ocasiones, se organizan en cuatro

defensas, tres centrales y tres delanteros). Los jugadores pueden usar cualquier

parte de su cuerpo (excepto las manos) para introducir el balón a la portería del

equipo contrario. La única excepción a esta regla la tiene el portero, quien puede

Page 10: Hora 1-5 UML

RESUMEN

utilizar también las manos para jugar el balón, pero sólo dentro del área de meta.

El campo de juego es un rectángulo de una longitud máxima de 120 m y mínima

de 90 m; y con una anchura no mayor de 90 m, ni menor de 45. Para partidos

internacionales, la longitud será de 110 m como máximo y 100 como mínimo; y

una anchura no superior a 75 m ni inferior a 64. En cualquier caso, deberá ser

mayor la longitud que la anchura. El campo de juego se dividirá en dos mitades

transversales de igual tamaño. El centro del campo será marcado con un punto

visible, alrededor del cual se trazará una circunferencia de 9.15 m de radio. La

meta del juego es pasar el balón a los delanteros, quienes están mejor preparados

para patear el balón a la portería. El portero (o arquero) es la última línea de

defensa que intentará bloquear, con cualquier parte de su cuerpo, los tiros de sus

opositores. Cada vez que evita un gol, es decir, que el balón entre a la portería,

habrá salvado su meta. Cada gol equivale a un punto. Un juego dura 90 minutos,

divididos en dos periodos de 45 minutos cada uno.

Válgase de la anterior información para crear un diagrama como el de la figura

3.15. Si usted conoce más del balompié de lo que he descrito, agregue tal

información a su diagrama.

2. Si usted conoce más del baloncesto de lo que hay en la figura 3.15,

agregue la información a tal diagrama.

Page 11: Hora 1-5 UML

RESUMEN

Hora 4. Uso de las relaciones.

Introducción.

Una vez obtenidas las clases y los objetos hay que establecer sus

relaciones entre sí. Ya que sin estas relaciones es como si hubiéramos escrito

una lista de elementos, en lugar de una representación de un área del

conocimiento. Estas relaciones son el resultado de saber cómo se conectan las

clases entre sí.

Desarrollo.

Cuando las clases se conectan entre sí de forma conceptual, se le conoce

como asociación. Por ejemplos, la frase: "un jugador participa en un equipo"

visualiza que ambas clases, jugador y equipo, se asociaran mediante una línea

con el nombre de la asociación: "participa en”. Indicar la dirección de la relación es

también parte de la asociación, esto se hará con un triángulo relleno que apunte

en la dirección apropiada, en este caso la asociación apuntaría de jugador a

equipo. También e importante marcar las restricciones de la asociación, estas

restricciones van entre llaves sobre la línea de asociación.

Una asociación, al igual que una clase, puede contener atributos y

operaciones, ósea que se puede concebir a una clase de asociación de la misma

forma en que lo haría con una clase estándar, y utilizará una línea discontinua

para conectarla a la línea de asociación. Una clase de asociación puede tener

asociaciones con otras clases. Así como un objeto es una instancia de una clase,

una asociación también cuenta con instancias que se conoces como vínculos.

Dentro de asociación también existe la multiplicidad, que se refiere a la

cantidad de objetos de una clase que se relacionan con un objeto de la clase

asociada; se representa con números en el diagrama, que se colocan sobre la

línea de asociación junto a la clase correspondiente.

Page 12: Hora 1-5 UML

RESUMEN

Conclusión.

Al hablar de una asociación nos podemos referir a la dependencia entre

clases, una clase utiliza a otra. Estas dependencias se proyectan a través de las

operaciones de una clase que utiliza a otra. Dentro de estas dependencias

podemos encontrar herencia entre clases y multiplicidades entre en cada extremo

de su relación generando un tipo de cordialidad entre las clases asociadas.

Preguntas y respuestas.

1. ¿En alguna ocasión se le puede poner nombre a una relación de herencia,

como se hace en una asociación?

- El UML no le impide que adjudique un nombre a una relación de

herencia, pero por lo general esto no es necesario.

Taller.

Cuestionarios.

1. ¿Cómo representaría la multiplicidad?

- En uno de los extremos de la línea de asociación, coloque en el extremo

lejano la cantidad de objetos que provienen de la clase que se relacionen

con un objeto del extremo próximo.

2. ¿Cómo descubrirá la herencia?

- En la lista de clases de su modelo inicial, localice dos o más clases que

compartan atributos y operaciones. Ya sea que otra clase de su modelo

inicial se convierta en la clase principal de las clases que comparten

atributos, o que tenga que crear una clase principal.

3. ¿Qué es una clase abstracta?

- Una clase abstracta es aquella que funciona como la base de la herencia,

aunque no provee objetos.

4. ¿Cuál es el efecto de un calificador?

- El efecto de un calificador es reducir una multiplicidad de uno a muchos

a una de uno a uno.

Page 13: Hora 1-5 UML

RESUMEN

Ejercicios.

1. Tome como base el modelo del baloncesto de la Hora 3, y agregue vínculos

que expresen las relaciones que ha visto en esta hora. Si conoce el juego

del baloncesto, siéntase con libertad de agregar los vínculos que

representen su conocimiento.

2. De acuerdo con un viejo adagio: "Un abogado que se defiende a sí mismo,

tiene por cliente a un tonto." Cree un modelo que refleje esta pieza de

sabiduría.

Hora 5. Agregación, composición, interfaces y realización.

Introducción.

Para completar las nociones de clases y objetos que llevamos hasta el

momento, es necesario conectar estos conceptos con relaciones adicionales,

como la agregación, composición, interfaces y realización, que nos ayuden a

comprender y darle forma a toda esta información. Como resultado obtendremos

un panorama de lo que son los diagramas de contexto y su función dentro del

desarrollo de software.

Desarrollo.

Cuando una clase consta de otras clases, es un tipo especial de relación

conocida cerno agregación o acumulación, significa que los componentes y la

clase que constituyen son una asociación que conforma un todo. Una agregación

se representa como una jerarquía dentro de la clase completa en la parte superior,

y los componentes por debajo de ella. Una línea conectará el todo con un

componente mediante un rombo sin relleno que se colocará en la línea más

cercana al todo.

Un tipo representativo de una agregación es la composición, en una

composición, cada componente pertenece solamente a un todo. El símbolo que

Page 14: Hora 1-5 UML

RESUMEN

representa a una composición es el mismo que el de una agregación, excepto que

el rombo está relleno. A menudo las composiciones figuran dentro de los

diagramas de contexto. Este tipo de diagramas funciona como un mapa detallado

de alguna sección de un mapa de mayores dimensiones.

UML permite capturar el conjunto reutilizable de operaciones mediante

interfaces, que son un conjunto de operaciones que especifica cierto aspecto de la

funcionalidad de una clase, y es un conjunto de operaciones que una clase

presenta a otras. Una clase se relaciona con una interfaz mediante la realización,

misma que se indica por una línea discontinua con una punta de flecha en forma

de triángulo sin rellenar que apunte a la interfaz.

Conclusión.

Con la aglomeración de los conceptos tratados en este tema, da como

resultado un panorama de un diagrama de contexto, el cual tiene la función de

especificar cada una de las clases dentro de un sistema. Además nos muestra la

forma en que las clases se relacionan con otros objetos, creando un mapa

detallado del sistema.

Preguntas y respuestas.

1. ¿Se considera transitiva a la agregación? Es decir, si la clase 3 es un

componente de la clase 2, y la clase 2 es un componente de la clase 1, ¿la

clase 3 será un componente de la clase 1?

- Así es, la agregación es transitiva. En nuestro ejemplo, los botones y la

bola del ratón son parte del ratón, a la vez que son parte de la

computadora.

2. ¿La palabra ''interfaz'' implica ''interfaz de usuario" o GUI?

- No. Es algo más genérico. Una interfaz es tan sólo un conjunto de

operaciones que una clase presenta a las demás clases. De hecho, una

de estas operaciones podría ser (aunque no necesariamente) la del

usuario.

Page 15: Hora 1-5 UML

RESUMEN

Taller.

Cuestionario.

1. ¿Cuál es la diferencia entre una agregación y una composición?

- Tanto una agregación como una composición especifican una

asociación de componentes que conforman a un todo. En una

agregación, un componente puede ser parte de más de un todo. En una

composición, un componente sólo puede ser parte de un todo.

2. ¿Qué es la realización?

- Es la relación entre una clase y una interfaz. Se dice que la clase realiza

las operaciones en la interfaz.

3. Mencione los tres niveles de visibilidad y describa lo que significa cada uno

de ellos.

- Si los atributos y operaciones de una clase tienen una visibilidad pública,

pueden ser utilizados por otra. Si la visibilidad está protegida, una clase

secundaria (u otra descendiente) podría utilizarlos. Si son privados, sólo

la clase que los contiene podrá utilizarlos. Las operaciones de una

interfaz tienen una visibilidad pública.

Ejercicios.

1. Cree un diagrama de contexto de composición de una revista. Tome en

cuenta la tabla de contenido, la editorial, los artículos y las columnas.

Luego, cree un diagrama de contexto del sistema que muestre a la revista

junto con el suscriptor y el comprador en el puesto de revistas.

2. En la actualidad, el tipo más popular de GUI es la interfaz WIMP (ventanas,

iconos, menús y puntero, por sus siglas en inglés). Dibuje un diagrama de

clases de la interfaz WIMP, y haga uso de todo el conocimiento adecuado

del UML que ha adquirido hasta ahora. Además de las clases indicadas en

las siglas, incluya los elementos relacionados como las barras de

desplazamiento y el cursor, así como cualquiera de las otras clases

necesarias.

Page 16: Hora 1-5 UML

RESUMEN