Click here to load reader
Upload
lulu-olvlo
View
387
Download
7
Embed Size (px)
Citation preview
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.
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.
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.
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.
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.
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.
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
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
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
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.
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.
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.
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
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.
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.
RESUMEN