Académique Documents
Professionnel Documents
Culture Documents
INGENIERÍA DE SOFTWARE I
TRABAJO PRÁCTICO 7: OBJETOS
TEORÍA
¿Qué son los métodos Orientados a Objetos?
Los métodos OO proveen un conjunto de técnicas para analizar, descomponer y modularizar
arquitecturas de software.
Se caracterizan por estructurar las arquitecturas de sistemas en base sus objetos (clases de
objetos) en lugar de las acciones que realiza.
OO provee objetos como el principal medio para abstraer y estructurar un sistema.
Un objeto puede modelar entidades del mundo real, puede capturar abstracciones de fenómenos
complejos, puede representar artefactos de software (pilas, gráficos, …).
En programación orientada por objetos un programa es una comunidad de agentes (objetos) que
interactúan entre ellos.
Cada objeto tiene un rol en la solución del problema.
Cada objeto provee un conjunto de servicios, implementado por métodos.
Los servicios de un objeto son usados por otros objetos.
Principales características del POO:
Encapsulamiento
Herencia
Abstracción
Polimorfismo
Ocultamiento
Los bloques principales de UML son:
Elementos del modelo: clases, interfaces, componentes, casos de usos, etc.
Relaciones: asociación, generalización, dependencias, etc.
Diagramas: diagrama de clases, diagrama de casos de usos, diagramas de interacción, etc.
Clase
estructura + operaciones
Conjunto de objetos con estructura, comportamiento relaciones y semántica común
Representa algo del Dm del problema o solución.
La noción de Clase viene de clasificación: agrupar (en un conjunto) objetos (elementos) que se
comportan de la misma manera (con respecto a la interfaz que describe el comportamiento).
Asociación
Describe conexiones semánticas entre los objetos individuales de clases dadas
Proporciona una “conexión” entre los objetos para el envío de mensajes (relación de
conocimiento).
Relaciona instancias (objetos) no clasificadores (clases).
Puede tener un rol que describe el papel específico que una clase juega en una asociación
Enlace (link): instancia de una asociación.
INTRODUCCIÓN AL ANÁLISIS DE SISTEMAS
INGENIERÍA DE SOFTWARE I
Relaciones
INTRODUCCIÓN AL ANÁLISIS DE SISTEMAS
INGENIERÍA DE SOFTWARE I
Diagrama de secuencia
Gráfico bidimensional. La dimensión vertical es el eje de tiempo. La dimensión horizontal
muestra los roles de clasificadores que representan objetos individuales en la colaboración.
Cada rol de clasificador es representada por una línea vertical que representa su línea de vida.
Una línea punteada representa el período de ‘existencia’ del objeto.
Una línea doble representa una activación del objeto.
Un mensaje es representado por una flecha desde la línea de vida de un objeto hacia la línea
de vida de otro objeto.
Diagrama de Interacción
Es un conjunto de mensajes que se intercambian dentro del contexto de una colaboración por
roles de clasificadores (objetos) a través de enlaces (instancias de asociación).
Un mensaje es una comunicación unidireccional entre objetos, un flujo de control con
información desde un emisor a un receptor.
Un mensaje puede tener parámetros.
Las interacciones son representadas por diagramas de secuencia (se enfocan en la relación de
tiempo) o diagramas de colaboración (se enfocan en las relaciones entre objetos).
Diagrama de secuencia
Gráfico bidimensional. La dimensión vertical es el eje de tiempo. La dimensión horizontal
muestra los roles de clasificadores que representan objetos individuales en la colaboración.
Cada rol de clasificador es representada por una línea vertical que representa su línea de vida.
Una línea punteada representa el período de ‘existencia’ del objeto.
Una línea doble representa una activación del objeto.
Un mensaje es representado por una flecha desde la línea de vida de un objeto hacia la línea
de vida de otro objeto.
INTRODUCCIÓN AL ANÁLISIS DE SISTEMAS
INGENIERÍA DE SOFTWARE I
Ejercicio 1
Considere las siguientes afirmaciones sobre los diagramas de interacción y tachar la opción incorrecta:
a) Los diagramas de interacción se usan para modelar el aspecto [dinámico] / [estático] de las
colaboraciones representando sociedades de objetos jugando roles específicos, trabajando en
conjunto para llevar a cabo algún comportamiento que es mayor que la suma de sus elementos.
b) Se puede modelar cada interacción de dos formas:
1) enfatizando en [la comparación entre los tiempos de vida de los objetos] / [el ordenamiento
temporal de los mensajes enviados entre objetos]
2) enfatizando en [los atributos y las operaciones de los objetos] / [la organización estructural
de los objetos]
c) Los diagramas de secuencia [son] / [no son] semánticamente equivalentes a los diagramas de
colaboración.
Tache la(s) opción(es) entre corchetes que no corresponda(n) en cada una de ellas.
Ejercicio 2
Para cada una de las siguientes afirmaciones discuta e indique si esta es Verdadera o Falsa.
Verdadero Falso
Una clase es un descriptor de un conjunto de objetos que comparten los
mismos atributos, operaciones, relaciones y semántica.
Una clase representa un concepto físico del domino de aplicación de un
sistema que se está modelando.
Un diagrama de clases enfoca una perspectiva comportamental al modelar
clases, sus atributos, sus operaciones, y relaciones entre clases
Ejercicio 3
Considere las siguientes listas de términos. La de la izquierda, lista nombres de tipos de relaciones que
se pueden dar entre clases. Mientras que la del centro, lista términos utilizados frecuentemente
cuando se leen relaciones entre clases a partir de un diagrama. A la derecha se ven las
representaciones en los diagramas.
Unir las letras con los números que se corresponden.
a) Especialización / Usa
Generalización 1)
b) Dependencia Es Parte de / Es una categoría de
2)
c) Realización Es un 3)
d) Agregación Implementa
4)
e) Asociación Conoce 5)
INTRODUCCIÓN AL ANÁLISIS DE SISTEMAS
INGENIERÍA DE SOFTWARE I
Ejercicio 4
Realizar el diagrama de Casos de Uso del siguiente planteo.
Presentación General
Es un sistema de administración de aeropuertos que implica el manejo y administración de todos los
componentes que conforman las actividades diarias entre ellos se encuentra como fundamentales o
críticos los siguientes:
1. Planificación y mantenimiento del programa de vuelos: este sistema deberá coordinar la
asignación de pistas y vuelos a los aviones, según la compañía, los horarios y origen y destino
de los mismos
2. Reserva, compra y cancelación de billetes: este sistema deberá administrar la reserva, compra
y cancelación de billetes para los diferentes vuelos.
3. Emisión de la tarjeta de embarque y facturación de equipajes: manejo y administración del
equipaje en tránsito para su correcto seguimiento y cobranza de ser necesario.
Además están los módulos que hacen al funcionamiento de los anteriores y componen los sistemas
accesorios, que son:
1. Sistema de validación de compras a crédito: conexión con el sistema bancario para validación
de tarjetas.
2. Aplicación que nos entrega información de otros aeropuertos.: conexión con otros
aeropuertos para manejo de tarjeta de embarque e información asociada a los pasajeros en
tránsito.
3. Aplicación para modificar manualmente los datos de la base de datos.: Modificaciones de los
datos principales asociados a las funcionalidades del sistema: aviones, vuelos, billetes,
retrasos, etc.
4. Aplicaciones de carga de datos: carga automática de datos, para hacer demostraciones y
pruebas de las diferentes aplicaciones.
5. Aplicación del controlador aéreo, para poder ir indicando salidas y llegadas de aviones.:
manejo del controladora aéreo para administrar despegues y llegadas realizadas
6. Aplicación de monitorización completa: observar el estado general del Aeropuerto, vuelos
programados, reservas, etc.
Ejercicio 5
Tomar dos Casos de Uso de los identificados en el Ejercicio 4 y realizar la descripción de los mismos
(Formato Casual)
Caso de Uso: NombreCasoDeUos
Actores: Actores
Propósito: Descripción del Caso de Uso
Pre Condición:
Post Condición:
Bibliografía
Apuntes de la Catedra
UML 1.4 RTF: www.celigent.com/omg/umlrtf
OMG UML Tutorials: www.celigent.com/omg/umlrtf/tutorials.htm
UML 2.0 Working Group: www.celigent.com/omg/adptf/wgs/uml2wg.htm
OMG UML Resources: www.omg.org/uml/
UML y Patrones de Craig Larman