Parcial I Flashcards

1
Q

¿Cuáles son las diferencias principales entre el enfoque estructurado y el orientado a
objetos?

A

El enfoque estructurado se centra en dividir tareas y procesos, tratando datos y funciones por separado, siendo ideal para programas lineales. En cambio, el enfoque orientado a objetos agrupa datos y funciones en “objetos”, permitiendo modelar sistemas más complejos y reflejar
interacciones del mundo real, promoviendo reusabilidad y
adaptabilidad.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Qué es una abstracción y para qué se utiliza?

A

Es la propiedad que permite representar las características esenciales de un objeto, sin
preocuparse de las restantes características (no esenciales). En decir, es la capacidad de simplificar una entidad compleja, destacando
sus características más relevantes y
descartando detalles no relevantes.
En el contexto de la programación OO, la abstracción permite modelar entidades del mundo real, permitiéndonos enfocarnos en lo que es realmente crucial para nuestro sistema o aplicación, mientras omitimos aspectos superfluos o irrelevantes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Cuál es el objetivo del encapsulamiento?

A

Tiene como objetivo principal asegurar que el contenido de la información de un objeto esté oculto al mundo exterior, garantizando la integridad y seguridad de los datos. Esta proteccion impide que los datos internos del objeto sean alterados de manera inadecuada o accidental. Como tambien, permite que sean modulares ya que al separar el
comportamiento del objeto de su implementación, se pueden realizar modificaciones en el objeto sin afectar a las aplicaciones que lo utilizan. Esta capacidad de ocultar y proteger los detalles internos y solo exponer lo necesario se traduce en una mayor flexibilidad y mantenibilidad del código, permitiendo adaptaciones y mejoras en los sistemas sin repercusiones negativas en su funcionamiento general.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Qué es un objeto? ¿Qué es una clase? ¿Qué diferencias existen entre ellos?

A

Un objeto es una instancia concreta de una clase. Representa una entidad individual en el sistema que tiene un estado específico, un comportamiento definido por su clase y una
identidad única. En el análisis y diseño, los objetos se utilizan para comprender cómo las instancias de las clases interactuarán entre sí y con otros sistemas.
Una clase conceptual se puede entender desde tres perspectivas:
* Símbolo: Se refiere a las palabras o imágenes que representan la clase conceptual. En el diseño, este símbolo puede ser el nombre de la clase o su representación
gráfica en un diagrama UML.
* Intensión: Es la definición de la clase conceptual. Describe lo que la clase significa, sus atributos, sus responsabilidades y cómo se relaciona con otras clases.
* Extensión: Corresponde al conjunto de ejemplos o instancias a los que se aplica la clase conceptual. En términos prácticos, cuando un software está en ejecución, las
instancias de una clase son los objetos que se han creado basándose en esa clase.
Las diferencias son que las clases actúan como un esquema o plantilla abstracta que define ciertas propiedades y acciones, mientras que el objeto es una manifestación
tangible de esa clase, existente durante la operación del software. Es decir, las clases establecen un marco teórico para abordar y estructurar el problema, y los objetos son la
materialización práctica de ese marco, ejecutando las acciones reales cuando el programa se encuentra en funcionamiento.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Un objeto se caracteriza por el estado, el comportamiento y la identidad. Explique cada una
de esas propiedades.

A
  • Estado: El estado de un objeto comprende todas sus propiedades, que suelen ser estáticas, junto con los valores actuales, que generalmente son dinámicos, de dichas propiedades. En esencia, el estado refleja las características y condiciones actuales de un objeto en un momento dado.
  • Comportamiento: Se refiere a cómo un objeto actúa y reacciona. Este comportamiento se manifiesta en términos de sus cambios de estado y la forma en que intercambia mensajes con otros objetos o consigo mismo. Es, esencialmente, la funcionalidad del objeto y cómo responde a diferentes situaciones o estímulos.
  • Identidad: Es la característica única de un objeto que lo diferencia de cualquier otro objeto, garantizando que cada entidad sea única e irrepetible, independientemente de su estado o comportamiento actual. La identidad permite distinguir un objeto específico de todos los demás en el sistema.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Qué son y para qué sirven las tarjetas CRC?

A

Son herramientas en el diseño orientado a objetos para esbozar de manera simplificada las clases y sus interacciones.
En una tarjeta CRC se detalla:
- El nombre de la clase: Debe reflejar claramente su esencia y función.
- Responsabilidades:
- Hacer: Las acciones que la clase debe realizar por sí misma, iniciar en otros, controlar en otros objetos.
- Conocer: Datos que la clase encapsula, objetos relacionados y lo que puede deducir o calcular.
- Conocimiento interno: Información que la clase maneja y encapsula.
- Servicios: Operaciones o métodos que la clase proporciona.
- Colaboradores: Otras clases necesarias para que la clase cumpla sus responsabilidades.
Sirven en el proceso de modelado, son una primera aproximación y son especialmente útiles para discusiones en equipo y sesiones de brainstorming. Una vez que las clases, responsabilidades y colaboraciones están claras, es posible refinar y profundizar en los detalles de las clases durante la fase de diseño.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Las entidades deben tener un atributo identificador para diferenciar una ocurrencia de
instancia de otra. ¿Pasa lo mismo con los objetos?

A

Sí, al igual que las entidades en un modelo de datos requieren de un atributo identificador para distinguir una instancia de otra, los objetos en la programación orientada a objetos también necesitan tener una identidad única para diferenciarse entre sí. Aunque dos objetos puedan tener el mismo estado y comportamiento, su identidad única garantiza que se traten como entidades separadas en el sistema.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

El modelo entidad interrelación modela entidades, ¿qué diferencia existe entre una entidad
y una clase?

A

El modelo entidad interrelación y la programación orientada a objetos operan en diferentes niveles de abstracción y tienen propósitos distintos, lo que conlleva a diferencias fundamentales entre una entidad y una clase.

Una entidad está enfocada en representar información específica dentro de una estructura de base de datos y sus relaciones, una clase es una estructura más abstracta en la
programación que define atributos y comportamientos, y puede ser utilizada para crear múltiples instancias u objetos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Qué son los atributos de un objeto? ¿Es el mismo concepto de atributo de las entidades en el modelo de datos?

A

Los atributos de un objeto representan las características o propiedades que el objeto tiene. Estos atributos almacenan datos específicos sobre ese objeto y pueden ser, por ejemplo,
nombre, edad, dirección, entre otros. Reflejan su estado actual y son determinados por la clase a partir de la cual se instanció el objeto.
No, aunque similares, no son el mismo concepto. En programación orientada a objetos, un atributo describe características y estado de un objeto y puede interactuar con métodos.
En modelos de datos, un atributo es una propiedad específica de una entidad centrada en el almacenamiento de información, sin interacción con comportamientos o métodos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Qué es una operación y que diferencias existen con método y el mensaje?

A

En programación O.O. , una operación define una acción que un objeto puede realizar, pero sin detallar cómo. El método es la realización concreta de esa operación, es decir, el “cómo” se lleva a cabo y la diferencia con el mensaje, es la solicitud que un objeto envía a otro para que ejecute una operación. Es decir, la operación dice qué hacer, el método muestra cómo hacerlo, y el mensaje pide que se haga.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Cuál es el beneficio de la generalización?

A

Es la práctica de abstraer características comunes y comportamientos de varias clases y agruparlos en una clase superior o “clase base”, tiene multiples beneficios como:
* Reutilización de código
* Facilita el mantenimiento
* Promueve la modularidad
* Flexibilidad

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Explique el concepto de herencia

A

Es la técnica que permite implementar la generalización. Gracias a la herencia, es posible que una clase (subclase) herede atributos y métodos de otra clase (superclase), lo que facilita la reutilización de código y la extensión de funcionalidades. En esencia, mientras la generalización proporciona el marco conceptual, la herencia es la herramienta que permite hacer realidad este concepto.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Qué significa herencia de atributos, métodos y asociaciones?

A

Herencia de atributos: Significa que la subclase hereda todos los atributos definidos en la superclase. Así, cualquier objeto de la subclase tendrá, por defecto, los atributos de la clase base. Por ejemplo, si tenemos una superclase “Vehículo” con un atributo “color”, y una subclase “Coche”, el “Coche” heredará el atributo “color” de “Vehículo”.

Herencia de métodos: La subclase hereda todos los métodos de la superclase, lo que le permite utilizar (y en algunos casos, sobrescribir o extender) los comportamientos definidos en la clase base. Usando el ejemplo anterior, si “Vehículo” tiene un método “encenderMotor()”, la subclase “Coche” también tendrá acceso a ese método.

Herencia de asociaciones: se refiere a la capacidad de una subclase para heredar relaciones o asociaciones establecidas en la superclase. Por ejemplo, si la clase “Vehículo” está asociada con la clase “Conductor”, y tenemos una subclase “Motocicleta” que hereda de “Vehículo”, “Motocicleta” también podría heredar esa asociación con “Conductor”.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Qué es una operación polimórfica? ¿Para qué se utiliza?

A

Una operación polimorifica es la que que posibilita que diferentes clases puedan ser tratadas como si fueran de una misma superclase, con la ventaja de actuar de manera específica según el objeto con el que se está trabajando. Su esencia reside en la frase: “Un
único interfaz, múltiples métodos”.
Es decir, un único mensaje enviado a diferentes objetos puede resultar en comportamientos completamente diferentes, dependiendo de la naturaleza del objeto que recibe el mensaje.
Por ejemplo se utiliza para:
* Referirse a objetos de diferentes clases mediante un mismo elemento de programa: Esto significa que una variable de tipo de una superclase podría referirse a un objeto de cualquiera de sus subclases.
* Realizar la misma operación de diferentes formas: Aunque el nombre de la operación o método pueda ser el mismo, su implementación varía dependiendo de la clase del objeto. Esto permite, por ejemplo, que diferentes objetos respondan a una función como “dibujar” de maneras únicas dependiendo de si son círculos, triángulos o cuadrados.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Qué diferencia existe entre asociación, agregación y composición?

A

Son mecanismos que describen diferentes niveles de relación entre clases y sus diferencias son:
* Asociación: Es una colaboración simple entre clases, donde los objetos de una clase pueden estar relacionados con objetos de otra, pero pueden existir de manera independiente. Por ejemplo, un “Profesor” puede enseñar a un “Estudiante”, pero ambos pueden existir por separado.
* Agregación: Es una relación “todo-parte” en la que un objeto (el “todo”) contiene a otro (la “parte”). Sin embargo, la “parte” puede existir independientemente del “todo”. Por ejemplo, una “Universidad” tiene “Departamentos”, pero un “Departamento” puede subsistir sin la “Universidad”.
* Composición: Representa una relación más fuerte que la agregación, en la que si el objeto “todo” es eliminado, el objeto “parte” también lo es. Por ejemplo, una “Canción” está compuesta por “Notas musicales” y si eliminamos la “Canción”, las”Notas musicales” desaparecen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Qué es y para que se utiliza la Ingeniería de Requisitos?

A

La ingeniería de requisitos es un pilar esencial en el desarrollo de software, se encarga de identificar, analizar y documentar las necesidades de los usuarios y las partes. Implica la recopilación precisa de requisitos, su análisis, documentación y validación, además de gestionar cambios en el proceso. Su objetivo es asegurar que el software cumpla con las expectativas, se adapte a la necesidad, evitando futuros problemas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

¿Qué es un requisito de software? ¿Cuáles son las características deseables?

A

Un requisito de software es una descripción detallada de lo que el software debe lograr, guiando su diseño y desarrollo. Los requisitos efectivos poseen claridad, especificidad, consistencia, completitud, relevancia, verificabilidad, ausencia de ambigüedad y factibilidad. Además, deben mantener coherencia con la visión general del proyecto, ser rastreables para entender su evolución, y contar con una jerarquía de prioridades para facilitar la toma de decisiones. Estas características aseguran que los requisitos sean comprensibles, alcanzables y guíen la creación exitosa de software que cumpla con las expectativas y necesidades de los usuarios.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

¿Qué es la Elicitación?

A

La elicitación es el proceso de obtener información y datos sobre los requisitos del software directamente de las personas involucradas, con el objetivo de capturar de manera precisa y completa lo que el software debe lograr. Implica técnicas de comunicación y consulta, como entrevistas, encuestas, discusiones y observación, que permiten a los analistas obtener una comprensión profunda de lo que se requiere del software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

¿Porque es necesaria la Elicitación?

A

La elicitación es necesaria para garantizar que los requisitos del software se comprendan y documenten de manera precisa, evitando malentendidos, suposiciones erróneas y requisitos incompletos, lo que en última instancia conduce al desarrollo exitoso de un software que satisfaga las necesidades de los usuarios y partes interesadas.
Las razones fundamentales son: Entender las necesidades reales, Evitar suposiciones incorrectas, Aclarar ambigüedades, Identificar requisitos no evidentes, Considerar cambios en el contexto, Validación de requisitos, Mejorar la calidad del software

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Investigue y Explique la técnica de Elicitación, Brainstorming.

A

El brainstorming es una técnica de elicitación de requisitos que involucra a un grupo de personas en la generación libre y creativa de ideas relacionadas con un tema específico. Los participantes comparten ideas sin críticas inmediatas, lo que fomenta la diversidad y originalidad de las propuestas. Después de la fase de generación de ideas, se evalúan y refinan las más prometedoras. Esta técnica aprovecha la colaboración y la creatividad de un grupo diverso para identificar soluciones y requisitos potenciales de manera innovadora.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

¿Cuál es la diferencia entre la técnica Brainstorming y Prototipos?

A

La diferencia clave entre el brainstorming y los prototipos es que el brainstorming se centra en la generación de ideas y soluciones en las etapas iniciales, mientras que los prototipos son modelos prácticos que representan el software de manera tangible y se utilizan para validar y refinar los requisitos después de su identificación.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Mencione al menos 4 problemas para la identificación de requisitos

A

Cuatro problemas comunes en la identificación de requisitos son: falta de comunicación efectiva entre usuarios y analistas, requisitos que cambian sin control, poca participación de usuarios en el proceso y falta de conocimiento profundo del dominio del software por parte de los analistas. Estos desafíos pueden llevar a malentendidos, requisitos inconsistentes o incompletos, y un software que no cumple las necesidades reales de los usuarios.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Definir y explicar los tipos de Requisitos que conozca

A

Los tipos de requisitos en el desarrollo de software son:
Requisitos Funcionales: Lo que el software debe hacer, como acciones en
respuesta a estímulos.
* Requisitos No Funcionales: Aspectos de calidad como seguridad, rendimiento y
usabilidad.
* Requisitos de Usuario: Expectativas en lenguaje natural de los usuarios.
* Requisitos del Sistema: Versiones técnicas de los requisitos de usuario.
* Requisitos Implícitos/Explícitos: Implicados o claramente expresados.
* Requisitos de Dominio: Basados en regulaciones o contexto específico.
* Requisitos de Interfaz: Conexiones con otros sistemas.
* Requisitos de Rendimiento: Niveles de rendimiento esperados.
* Requisitos de Seguridad: Medidas de protección y acceso.
* Requisitos de Usabilidad: Criterios de facilidad de uso.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

¿Cuál es la relación entre los tipos de requisitos: usuarios y funcionales?

A

Los requisitos de usuarios y funcionales están interconectados en el sentido de que los requisitos de usuarios son la inspiración y la guía para los requisitos funcionales. Los requisitos de usuarios describen las necesidades generales de los usuarios, mientras que los requisitos funcionales traducen esas necesidades en acciones y comportamientos específicos del software. Trabajar en conjunto, estos tipos de requisitos aseguran que el software cumpla con las expectativas y necesidades reales de los usuarios finales.

25
Q

¿Qué tipo de requisito debe ser considerado de mayor importancia?

A

El tipo de requisito que debe considerarse de mayor importancia depende en gran medida del contexto del proyecto, las necesidades de los usuarios y las metas del sistema de software. No hay un único tipo de requisito que sea universalmente más importante que los demás, ya que cada tipo cumple un propósito específico y es esencial para el éxito general del proyecto.

26
Q

Indique 3 ejemplos de cada tipo de requisito.

A

Requisitos Funcionales:
- Registro de usuarios con información básica.
- Cálculo automático de total en el carrito de compras.
- Generación automática de informes contables.

Requisitos No Funcionales:
- Carga de página en máximo 2 segundos.
- Soporte para al menos 1000 usuarios simultáneos.
- Cumplimiento de accesibilidad normativo.

Requisitos de Usuario:
- Ver historial de compras y pedidos.
- Personalización de perfil con foto y biografía.
- Búsqueda de productos por nombre, categoría y precio.

Requisitos de Sistema:
- Encriptación de datos normativo.
- Compatibilidad con MySQL y manejo de grandes datos.
- Copias de seguridad diarias en servidor externo.

27
Q

¿Cuáles son los posibles actores en la Ingeniería de Requisitos?

A

En la Ingeniería de Requisitos, los actores son las personas y grupos involucrados en el desarrollo de software. Algunos actores incluyen usuarios finales, clientes, analistas de negocio, diseñadores, desarrolladores, probadores y gerentes de proyecto. También pueden estar presentes expertos en el dominio y reguladores externos en algunos casos.
Cada uno desempeña un papel importante al proporcionar conocimientos y perspectivas que ayudan a definir los requisitos y garantizar que el software cumpla con las expectativas y necesidades de todos.

28
Q

¿Cómo relacionaría los requisitos con los Casos de Uso?

A

Los requisitos y los casos de uso están estrechamente entrelazados en la Ingeniería de Requisitos. Los requisitos funcionales y de usuario actúan como cimientos para la creación de casos de uso, que son escenarios específicos que ilustran cómo los usuarios interactúan con el sistema para cumplir con esos requisitos.
Los casos de uso capturan interacciones concretas entre actores y el sistema, desglosando los requisitos en situaciones comprensibles. Además de servir como documentación detallada, los casos de uso son herramientas para verificar y validar que los requisitos se cumplan adecuadamente, comunicar claramente con las partes interesadas y asegurar una comprensión compartida del sistema en desarrollo

29
Q

¿Cuál es el objetivo de realizar el diagrama de contexto?

A

El objetivo principal del diagrama de contexto es mostrar de manera clara cómo un sistema interactúa con su entorno externo, estableciendo límites y resaltando las interacciones clave. Esto ayuda a comprender las funciones principales del sistema, identificar actores externos y facilitar la comunicación con las partes interesadas. Además, sirve como punto de partida para un análisis más detallado y la creación de otros diagramas.

30
Q

Relacione el tema Casos de Usos y Escenarios

A

Generalización vs. Instancia: Un caso de uso es una generalización de un comportamiento
esperado, mientras que un escenario es una instancia específica de ese comportamiento.

Múltiples Escenarios para un Caso de Uso: Un solo caso de uso puede tener múltiples escenarios asociados. Por ejemplo, un caso de uso podría ser “Retirar dinero del cajero automático”, y podría haber varios escenarios asociados, como “Retiro exitoso”, “Retiro fallido debido a saldo insuficiente”, “Retiro fallido debido a un error del sistema”, etc.

Validación: Los escenarios son útiles para validar casos de uso. Al crear escenarios específicos, los analistas y stakeholders pueden asegurarse de que el caso de uso cubre todas las posibles interacciones y contingencias.

Documentación y Pruebas: Los escenarios son a menudo utilizados como base para la documentación de pruebas y para crear casos de prueba. Al tener escenarios detallados, los equipos de prueba pueden entender mejor cómo se espera que funcione el sistema en diferentes situaciones.

Comunicación con Stakeholders: Los escenarios, al ser más específicos y concretos, a menudo son más fáciles de entender para los stakeholders que no son técnicos. Pueden ayudar a aclarar y visualizar cómo se espera que funcione el sistema en situaciones reales.

31
Q

Relacione el tema Casos de Usos y Colaboraciones.

A

Descomposición de Funcionalidad: Mientras que un caso de uso describe una funcionalidad a nivel alto desde la perspectiva del usuario, las colaboraciones descomponen esa funcionalidad en interacciones específicas entre objetos o componentes del sistema.

Implementación de Casos de Uso: Para implementar un caso de uso específico, es probable que varios objetos o componentes del sistema necesiten colaborar entre sí. Estas colaboraciones son las que realmente implementan la funcionalidad descrita en el caso de
uso.

Mapeo: Un caso de uso puede mapearse a varias colaboraciones. Por ejemplo, un caso de uso “Realizar Compra” podría mapearse a colaboraciones como “Seleccionar Producto”, “Agregar al Carrito”, “Realizar Pago”, entre otros.

Detallando el Comportamiento: Mientras que los casos de uso proporcionan una visión general del comportamiento esperado, las colaboraciones proporcionan detalles sobre cómo se logra ese comportamiento a nivel de objeto o componente.

Validación y Verificación: Las colaboraciones ayudan en la validación y verificación de que los casos de uso se han implementado correctamente. Al revisar las colaboraciones, los desarrolladores y analistas pueden asegurarse de que todas las interacciones necesarias para implementar un caso de uso están presentes y son correctas.

32
Q

Explique qué significa Asociación en Casos de Usos.

A

La asociación en casos de uso se refiere a la relación que se establece entre un actor y un caso de uso en un diagrama de casos de uso. Esta relación indica que el actor participa en el caso de uso y puede interactuar con el sistema para lograr un objetivo específico. La asociación se representa gráficamente como una línea que conecta un actor con un caso de uso, y denota la capacidad del actor para enviar o recibir mensajes del sistema durante la ejecución de ese caso de uso. Es esencial para mostrar qué actores están involucrados en qué funcionalidades y cómo interactúan con el sistema.

33
Q

Diferencias entre la relación Include y Extend.

A

Naturaleza de la Relación:
➢ Include: Es una relación de inclusión obligatoria. Cuando un caso de uso A incluye a un caso de uso B, significa que A siempre ejecutará la funcionalidad de B como parte de su proceso.
➢ Extend: Es una relación condicional. Un caso de uso A puede extender un caso de uso B, pero la funcionalidad de A solo se ejecutará en B bajo ciertas condiciones específicas.

Dirección:
➢ Include: La flecha apunta hacia el caso de uso que está siendo incluido.
➢ Extend: La flecha apunta hacia el caso de uso base que puede ser extendido.

Propósito:
➢ Include: Se utiliza para reutilizar funcionalidad común entre varios casos de uso, evitando la repetición y modularizando el comportamiento.
➢ Extend: Se utiliza para modelar comportamientos opcionales o excepcionales que pueden ocurrir en ciertas circunstancias, pero no siempre son parte del flujo principal.

Ejecución:
➢ Include: El caso de uso incluido siempre se ejecuta cuando se invoca el caso de uso base.
➢ Extend: El caso de uso de extensión solo se ejecuta si se cumplen ciertas condiciones predefinidas durante la ejecución del caso de uso base.

34
Q

Explique qué significa Generalización en Casos de Usos.

A

La Generalización en casos de uso es una relación jerárquica entre un caso de uso “padre” (general) y uno o más casos de uso “hijo” (específicos). El caso de uso hijo hereda el comportamiento del padre pero puede agregar o modificar ciertas características para adaptarse a situaciones más específicas. Gráficamente, se representa con una línea con una flecha en un extremo, apuntando hacia el caso de uso padre. Esta relación permite modularidad y evita redundancias en el modelado, ya que comportamientos comunes se definen en el caso de uso general y las variaciones en los casos de uso específicos.

35
Q

Desarrolle 2 casos de ejemplo de Casos de Uso con problemas frecuentes.

A

Sistema de Reservas de Hotel
Caso de Uso: Reservar Habitación

Problemas frecuentes:
➢ Ambigüedad en los flujos: Si el caso de uso simplemente indica “El cliente selecciona una habitación y la reserva”, no se especifica cómo manejar situaciones donde la habitación ya está reservada, cómo se procesa el pago o qué hacer si el pago falla.
➢ Falta de detalles en las precondiciones: Si no se menciona que el cliente debe estar registrado o haber iniciado sesión para hacer una reserva, podría llevar a confusiones en el desarrollo y en la implementación de las reglas de negocio.

Sistema de Compras en Línea
Caso de Uso: Agregar Producto al Carrito

Problemas frecuentes:
➢ No manejar excepciones: Si el caso de uso no especifica qué hacer cuando un producto está agotado o si hay un límite de cantidad por cliente, el sistema podría permitir agregar productos al carrito sin restricciones, llevando a problemas en el proceso de compra.
➢ Dependencia de interfaces específicas: Si el caso de uso indica “El cliente hace clic en el botón ‘Agregar al Carrito’”, se está asumiendo una interfaz específica. Los casos de uso deben ser independientes de la interfaz y centrarse en las funcionalidades.

En ambos ejemplos, los problemas surgen de no ser lo suficientemente detallado o específico en la descripción del caso de uso, lo que puede llevar a malentendidos y errores en la implementación del sistema.

36
Q

¿Qué describe el diagrama de comunicación?

A

El diagrama de comunicación enfatiza la organización estructural de los objetos dentro de un sistema de software, centrándose en cómo, cuándo y con quiénes interactúan para ejecutar una funcionalidad específica.

37
Q

¿Qué diferencia tiene con el diagrama de secuencia?

A

La distinción principal entre el diagrama de comunicación y el de secuencia reside en su representación de las interacciones entre objetos. Mientras que el primero se enfoca en las asociaciones e interacciones entre objetos sin priorizar el orden temporal de las acciones, el segundo destaca precisamente la secuencia temporal de las interacciones.

38
Q

¿Qué marcan los números que anteceden los mensajes?

A

En un diagrama de comunicación, los números que preceden a los mensajes indican la secuencia en la que estos son enviados, estableciendo el orden de las interacciones entre objetos, aunque el énfasis del diagrama no recae en el aspecto temporal.

39
Q

¿Qué activa un mensaje en objeto destino?

A

Un mensaje en un objeto destino activa una operación o método en dicho objeto, provocando que el receptor ejecute una acción en respuesta al mensaje. Este mensaje también simboliza la relación entre las clases de los objetos, ya sea de asociación o dependencia, y debe ser visible en ambas direcciones de la relación.

40
Q

¿Cuál es el principal objetivo de la elaboración, dentro del proceso de desarrollo propuesto (UP), de los diagramas de comunicación en la etapa de diseño?

A

Elaborar diagramas de comunicación en la etapa de diseño, dentro del Proceso Unificado (UP), tiene como objetivo principal visualizar y entender las interacciones entre los objetos del sistema, facilitando así el diseño y refinamiento de la arquitectura del mismo.

41
Q

¿Qué describe el diagrama de secuencia?

A

El diagrama de secuencia ilustra cómo las instancias de objetos colaboran para realizar una funcionalidad específica, poniendo un especial énfasis en la secuencia temporal de los mensajes intercambiados durante las interacciones.

42
Q

¿Cómo se representan las interacciones entre objetos en el diagrama?

A

Las interacciones entre objetos en el diagrama se representan mediante flechas que conectan los objetos, indicando la dirección de los mensajes desde el emisor al receptor y originándose desde la actividad que dispara el mensaje.

43
Q

¿Qué representa el eje vertical en la gráfica del diagrama?

A

El eje vertical en la gráfica del diagrama simboliza los objetos involucrados en la interacción, con cada objeto posicionado en su correspondiente eje y flechas interconectándolos para indicar las interacciones temporales entre ellos.

44
Q

¿Cómo se representan los mensajes entre objetos?

A

Los mensajes entre objetos, que son las interacciones, se representan mediante flechas, las cuales llevan una etiqueta que muestra el nombre del mensaje, su número, parámetros y dirección, desde el emisor hasta el receptor.

45
Q

¿Qué es un diagrama de secuencia de sistema?

A

Un diagrama de secuencia de sistema (DSS) muestra la interacción entre objetos de alto nivel en un sistema o entre sistemas, destacando la importancia de representar de manera precisa la secuencia temporal de los mensajes intercambiados entre objetos.

46
Q

¿Para qué los utilizo y en qué etapa de proceso de desarrollo?

A

Los diagramas de secuencia se emplean para visualizar y entender cómo los objetos interactúan para alcanzar los objetivos del sistema. Generalmente, se utilizan en las etapas de diseño y análisis del proceso de desarrollo de software, siendo reconocidos como una buena práctica en diseño y análisis.

47
Q

¿Cómo se relacionan los diagramas de secuencia con los casos de uso?

A

Los diagramas de secuencia y los casos de uso están estrechamente relacionados ya que los primeros ilustran cómo los objetos interactúan para cumplir los objetivos definidos por los segundos. Mientras los casos de uso describen la funcionalidad a un nivel alto, los diagramas de secuencia proporcionan detalles sobre cómo se llevan a cabo las interacciones entre objetos para cumplir con esos casos de uso, enfocándose en la cronología de las interacciones.

48
Q

Para cada una de las siguientes afirmaciones discuta e indique si esta es Verdadera o Falsa.

A

a. Verdadera. El diagrama de actividades modela aspectos dinámicos y el flujo de control de un sistema.
b. Verdadera. Pueden ser utilizados en diferentes contextos y etapas del desarrollo para modelar flujos de trabajo y lógica de negocio.
c. Verdadera. Es común utilizar diagramas de actividad para entender y mejorar los procesos de negocio existentes en una empresa.
d. Verdadera. Los diagramas de actividades pueden ser utilizados para modelar el flujo de control en varios contextos y etapas del desarrollo, incluyendo múltiples casos de uso y clases.

49
Q

¿A qué se refiere con región Interrumpible en un diagrama de actividad?

A

Una región interrumpible es una parte del diagrama de actividad que puede ser interrumpida por un evento específico, generalmente representado por una región rectangular con líneas punteadas. Por ejemplo, en un proceso de compra, una región interrumpible podría representar el proceso de check-out, que podría ser interrumpido por eventos como “Cancelar Compra” o “Sesión Expirada”.

50
Q

¿Qué implica un nodo de decisión y combinación?

A

Un nodo de decisión es un punto en el diagrama de actividad donde el flujo se divide en base a una condición o guarda. Un nodo de combinación es donde los diferentes flujos se unen de nuevo. A menudo, el mismo nodo se utiliza tanto para la decisión como para la combinación para indicar que uno de los flujos salientes se elige en función de una condición y que los flujos entrantes se sincronizan.

51
Q

Explique y ejemplifique el elemento Flujo de objetos y Objeto en un diagrama de Actividad.

A

El flujo de objetos muestra cómo los objetos son creados, utilizados y destruidos a través de las actividades. Un objeto es una instancia de una clase y se representa como un rectángulo con esquinas redondeadas. Por ejemplo, en un diagrama de actividad de un proceso de fabricación, un objeto podría ser “Producto” y los flujos de objetos podrían mostrar cómo este objeto se mueve a través de actividades como “Ensamblar”, “Verificar Calidad” y “Empacar”.

52
Q

Explique y ejemplifique el elemento Nodo final y sus tipos en un diagrama de Actividad.

A

Los nodos finales indican el final de un flujo en un diagrama de actividad. Hay dos tipos principales:
Nodo final de actividad: Representa el final de la actividad completa.
Nodo final de flujo: Indica el final de un flujo específico, pero no necesariamente de toda la actividad.
Por ejemplo, en un diagrama de actividad de un proceso de compra, un nodo final de actividad podría ser “Compra Completada”, mientras que un nodo final de flujo podría indicar el final de un subproceso como “Pago Procesado”.

53
Q

Explique y ejemplifique el elemento Restricción de acción en un diagrama de Actividad.

A

La restricción de acción es una expresión que debe ser verdadera para que la acción asociada se ejecute. Por ejemplo, en un diagrama de actividad que describe el proceso de compra en línea, una acción como “Enviar Confirmación de Pedido” podría tener una restricción de acción [Pago Aprobado] para asegurar que el correo de confirmación solo se envíe si el pago ha sido aprobado.

54
Q
  1. ¿Se puede utilizar para detallar situaciones donde el proceso paralelo puede ocurrir en la ejecución de algunas actividades?
A

Sí, los diagramas de actividad pueden representar procesos paralelos mediante el uso de barras de sincronización (barras horizontales o verticales) que indican la bifurcación (fork) y la unión (join) de flujos paralelos de control.

55
Q
  1. ¿Qué diferencia tiene con el diagrama de flujo?
A

Aunque ambos, el diagrama de actividad y el diagrama de flujo, representan el flujo de trabajo y procesos, el diagrama de actividad tiene una notación más rica que permite representar paralelismo, decisiones condicionales y sincronización de manera más detallada y está más enfocado en mostrar la lógica de negocio en el contexto de un sistema, mientras que el diagrama de flujo es una herramienta general para representar procesos y no está ligado a una metodología específica como UML.

56
Q
  1. ¿Qué diferencia tiene con el diagrama de secuencia?
A

Mientras que el diagrama de actividad se enfoca en representar el flujo de trabajo entre diferentes actividades, el diagrama de secuencia se centra en mostrar las interacciones entre los objetos y las clases en una secuencia temporal específica, destacando el orden en que los mensajes son procesados y respondidos.

57
Q

¿Qué describe el diagrama de actividad?

A

El diagrama de actividad en UML describe el flujo de trabajo entre diversas actividades y acciones dentro de un sistema. Muestra el flujo de control de una actividad a otra, representando tanto las decisiones condicionales como la paralelización de procesos, facilitando la visualización de la lógica de negocio y los procesos operativos.

58
Q
A