Modelado conceptual - Tema 1

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

¿Qué significado tiene la abstracción en la programación orientada a objetos?

  • Hacer que los objetos sean inmutables.
  • Capturar las características esenciales de un objeto. (correct)
  • Aumentar la complejidad del diseño.
  • Dividir una aplicación en módulos independientes.

¿Cuál de las siguientes opciones es un principio de la programación orientada a objetos?

  • Acoplamiento fuerte
  • Complejidad innecesaria
  • Encapsulamiento (correct)
  • Polimorfismo restrictivo

¿Qué característica de la programación orientada a objetos permite subdividir una aplicación en partes más pequeñas?

  • Abstracción
  • Modularidad (correct)
  • Herencia
  • Encapsulamiento

¿Cuál de las siguientes afirmaciones describe mejor el concepto de encapsulamiento?

<p>Agrupa elementos en una misma entidad para aumentar cohesión. (A)</p> Signup and view all the answers

La herencia en la programación orientada a objetos permite:

<p>Crear nuevas clases basadas en clases existentes. (C)</p> Signup and view all the answers

La modularidad en el diseño de software se refiere a:

<p>Dividir aplicaciones en módulos independientes. (C)</p> Signup and view all the answers

En programación orientada a objetos, el polimorfismo permite:

<p>Utilizar el mismo método en diferentes contextos. (C)</p> Signup and view all the answers

¿Cuál es el propósito del encapsulamiento en programación orientada a objetos?

<p>Proteger las propiedades de un objeto de accesos no autorizados. (D)</p> Signup and view all the answers

¿Qué es la composición en el contexto de la programación orientada a objetos?

<p>La creación de un objeto que es parte de otro. (D)</p> Signup and view all the answers

¿Qué tipo de atributo puede ser considerado inmutable en la clase Book?

<p>isbn (B)</p> Signup and view all the answers

En la clase Ticket, ¿qué representa el atributo nextTicketNumber?

<p>El próximo número que se asignará a un ticket. (C)</p> Signup and view all the answers

¿Cuál de las siguientes afirmaciones sobre visibilidad de atributos es correcta?

<p>Los atributos protegidos son accesibles dentro de su clase y subclases. (D)</p> Signup and view all the answers

¿Qué significa la propiedad de 'ocultación de información'?

<p>Que los detalles internos de un objeto están ocultos a los usuarios. (C)</p> Signup and view all the answers

En la clase Order, ¿qué indica que el atributo totalValue está inicializado a 0?

<p>Que el valor total comienza en cero hasta que se le asigna otro valor. (B)</p> Signup and view all the answers

¿Qué describe mejor el proceso de abstracción en programación orientada a objetos?

<p>La identificación de características relevantes para crear nuevos tipos de entidades. (B)</p> Signup and view all the answers

¿Cómo se determina el 'benefit' en la clase Book?

<p>Mediante la diferencia entre precio y costo. (A)</p> Signup and view all the answers

¿Qué atributos son comunes entre la clase Rectangle y Circle?

<p>center y borderColor (A)</p> Signup and view all the answers

¿Cuál de las siguientes es una clase derivada de User?

<p>Teacher (B)</p> Signup and view all the answers

Entre las clases CheckAccount y SavingsAccount, ¿cuál atributo está presente en ambas?

<p>number (D)</p> Signup and view all the answers

¿Qué representa la cardinalidad 1..* en el contexto de la relación entre Subject y Teacher?

<p>Un teacher puede tener entre uno y muchos subjects. (A)</p> Signup and view all the answers

¿Qué tipo de operación se realiza cuando se utiliza 'confirm()' en Payment?

<p>Se confirma el pago. (B)</p> Signup and view all the answers

¿Cuál de las siguientes afirmaciones sobre IncomingStudent y OutgoingStudent es correcta?

<p>Ambas son clases que extienden de Student. (B)</p> Signup and view all the answers

¿Qué atributo especifica un detalle único para la clase Teacher y no está presente en User?

<p>category (C)</p> Signup and view all the answers

En el contexto de herencia, ¿qué se entiende por 'especialización'?

<p>Crear subclases que añaden atributos específicos. (D)</p> Signup and view all the answers

¿Qué operación se caracteriza en las clases CreditCardPayment y PayPalPayment?

<p>Ambas heredan de la clase Payment. (D)</p> Signup and view all the answers

¿Cuáles son los atributos de la clase abstracta User?

<p>name, address y telephone (A)</p> Signup and view all the answers

¿Qué representa la multiplicidad en la asociación entre clases?

<p>El número de instancias de una clase que pueden estar asociadas a otra clase. (A)</p> Signup and view all the answers

En la asociación entre Person y Car, ¿cuál es el papel de 'driver'?

<p>Indica que una persona puede conducir varios coches. (A)</p> Signup and view all the answers

¿Qué indica la clase Subject en relación con la clase Teacher?

<p>Un profesor puede enseñar múltiples asignaturas. (D)</p> Signup and view all the answers

¿Cómo se describen los roles en una asociación?

<p>Son nombres que describen el tipo de interacción entre las clases. (B)</p> Signup and view all the answers

En el contexto de la clase Chapter, ¿qué representa la Lista 'exercises'?

<p>Los ejercicios que pertenecen a un capítulo específico. (A)</p> Signup and view all the answers

En una relación de asociación, ¿qué se entiende por '1 owner' y '* driver'?

<p>Cada coche tiene un solo dueño y múltiples conductores son posibles. (B)</p> Signup and view all the answers

¿Cuál es una implicación del método en la clase Car?

<p>Una persona puede actuar como dueño y conductor a la vez. (B)</p> Signup and view all the answers

¿Qué representa la asociación 'borrows' en el contexto de User y Book?

<p>La relación de un usuario que pide prestado un libro. (B)</p> Signup and view all the answers

¿Qué clase se utiliza para representar la respuesta de un estudiante a un ejercicio?

<p>Answer (C)</p> Signup and view all the answers

¿Cuál es la relación correcta entre las clases Order y OrderItem?

<p>Order tiene muchos OrderItems y OrderItem pertenece a un solo Order. (D)</p> Signup and view all the answers

Dentro de la clase Invoice, ¿qué representa el atributo state?

<p>El estado actual de la factura. (B)</p> Signup and view all the answers

En el contexto de SubscriptionManager, ¿qué acción realiza el método subscribe?

<p>Crea una suscripción entre un cliente y una revista. (D)</p> Signup and view all the answers

¿Qué clase representa a un cliente en el sistema de suscripciones?

<p>Customer (D)</p> Signup and view all the answers

En la relación entre User y Book, ¿qué tipo de asociación se establece?

<p>Uno a muchos (C)</p> Signup and view all the answers

¿Cuál de las siguientes afirmaciones es incorrecta sobre la clase Payment?

<p>Payment solo tiene una relación con Invoice. (B)</p> Signup and view all the answers

En el modelo presentado, ¿qué indica la multiplicidad 0..1 en la relación entre Person y Company?

<p>Una persona puede tener hasta un trabajo en una empresa. (C)</p> Signup and view all the answers

¿Qué aspecto caracteriza a una implementación de fuerte cohesión y bajo acoplamiento?

<p>Las clases se comunican de manera clara y concisa. (A)</p> Signup and view all the answers

¿Cuál es la función del método init en la clase Main?

<p>Crear nuevos clientes y revistas. (D)</p> Signup and view all the answers

¿Qué se puede inferir sobre la clase Exercise?

<p>Contiene una pregunta y sus posibles opciones. (C)</p> Signup and view all the answers

En el caso de suscripciones, ¿qué método se encarga de devolver el título de la revista que un cliente ha suscrito?

<p>getMagazine() (D)</p> Signup and view all the answers

¿Cuál es el estado inicial de una factura cuando es creada?

<p>New (B)</p> Signup and view all the answers

¿Qué representa la relación entre la clase Subscription y las clases Customer y Magazine?

<p>Cada suscripción une un cliente específico a una revista específica. (A)</p> Signup and view all the answers

¿Cuál es la relación entre la clase 'Person' y la lista 'siblings'?

<p>Una autoasociación donde 'Person' puede tener múltiples 'siblings'. (C)</p> Signup and view all the answers

¿Cuál de las siguientes afirmaciones sobre la relación entre 'Person' y 'Car' es correcta?

<p>Un 'Car' solo puede pertenecer a una 'Person'. (A), Una 'Person' puede poseer múltiples 'Car'. (B)</p> Signup and view all the answers

En el contexto de restricciones, ¿cuál de las siguientes afirmaciones es verdadera respecto a 'Student' y 'Course'?

<p>Cada 'Course' tiene que pertenecer a un 'Degree' específico. (A)</p> Signup and view all the answers

¿Qué indica la relación representada en los diagramas entre 'Employee' y 'Department'?

<p>Un 'Department' puede tener múltiples 'Employee'. (C), Cada 'Employee' pertenece a un solo 'Department'. (D)</p> Signup and view all the answers

En la relación de autoasociación, ¿qué representa el atributo 'supervisor' en 'Employee'?

<p>Cada 'Employee' puede tener un solo 'supervisor', pero no es obligatorio. (B), El 'supervisor' debe ser del mismo 'Department'. (C)</p> Signup and view all the answers

¿Qué representa el método 'addCourse' en la clase 'Student'?

<p>Añade un 'Course' a la lista de un 'Student' solo si coincide con su 'Degree'. (A)</p> Signup and view all the answers

En la asociación de clases 'Sale', 'Person' y 'Car', ¿qué indica la relación '1..*' entre 'Person' y 'Sale'?

<p>Cada 'Sale' debe ser realizada por solo una 'Person'. (C), Una 'Person' puede realizar múltiples 'Sales'. (D)</p> Signup and view all the answers

En la clase 'Table', ¿cuál es la función de 'TableStyle'?

<p>Especifica el color de fuente y el color de relleno. (B)</p> Signup and view all the answers

¿Qué atributo en la clase 'Person' permite almacenar múltiples automóviles?

<p>owner (D)</p> Signup and view all the answers

En el contexto de restricciones en empleados, ¿cuál de las siguientes opciones es correcta?

<p>El departamento de un 'Employee' siempre es igual al de su 'supervisor'. (A)</p> Signup and view all the answers

En el contexto de operaciones, ¿cómo se puede definir la relación entre un 'Person' y un 'Car'?

<p>Una operación que permite múltiples 'buys' para un mismo 'Car'. (A), Una operación que involucra un 'buy' único. (D)</p> Signup and view all the answers

¿Qué indica el método 'getOwner' en la clase 'Car'?

<p>Devuelve el propietario actual de un 'Car'. (C)</p> Signup and view all the answers

¿Cómo se relacionan 'Employee' y 'Contract' en la representación de clases?

<p>Un 'Employee' puede estar asociado a múltiples 'Contracts'. (A), Cada 'Contract' puede ser asociado a un solo 'Employee'. (B)</p> Signup and view all the answers

En la estructura de clases, ¿cuál es el papel de 'Degree'?

<p>Define la relación de un 'Student' con sus 'Courses'. (C)</p> Signup and view all the answers

Flashcards

Abstracción (POO)

Es la capacidad de representar las características esenciales de un objeto, capturando su comportamiento. Permite modelar la realidad y crear clases para resolver un problema.

Encapsulamiento (POO)

Consiste en reunir todos los elementos relacionados a una misma entidad, manteniendo un mismo nivel de abstracción. Esto mejora la cohesión de los componentes del sistema.

Modularidad (POO)

Es la capacidad de dividir una aplicación en partes más pequeñas e independientes, llamadas módulos. Esto facilita el desarrollo y la mantenibilidad del sistema.

Herencia (POO)

Es la posibilidad de crear nuevas clases (subclases) que heredan las características de una clase padre (superclase). Se usa para extender y reutilizar código.

Signup and view all the flashcards

Polimorfismo (POO)

Es la capacidad de que una misma operación o método se comporte de diferentes maneras, dependiendo del objeto al que se aplica.

Signup and view all the flashcards

Clase (POO)

Se refiere a una abstracción de un concepto general, como un objeto en la vida real (ej: 'Coche').

Signup and view all the flashcards

Instancia (POO)

Es una instancia específica de una clase, representa un objeto real (ej: 'Mi coche rojo').

Signup and view all the flashcards

Clase abstracta (POO)

Es una clase que no se puede instanciar directamente, sirve como plantilla para otras clases.

Signup and view all the flashcards

Encapsulamiento y Ocultación de información

El encapsulamiento y la ocultación información protegen los atributos de un objeto y evitan modificaciones no autorizadas.

Signup and view all the flashcards

Atributo

Un atributo es una característica o propiedad que describe un objeto, por ejemplo, el color de un coche o el precio de un libro.

Signup and view all the flashcards

Atributo 'private'

Un atributo con visibilidad 'private' solo es accesible dentro de la clase y no se puede modificar desde fuera.

Signup and view all the flashcards

Atributo 'public'

Un atributo con visibilidad 'public' es accesible desde cualquier parte del programa y se puede modificar desde fuera.

Signup and view all the flashcards

Atributo Deriva

Los atributos con valores derivados se calculan a partir de otros atributos existentes.

Signup and view all the flashcards

Multiplicidad 1

Un atributo con multiplicidad '1' solo puede tener un solo valor.

Signup and view all the flashcards

Multiplicidad *

Un atributo con multiplicidad '*' puede tener varios valores.

Signup and view all the flashcards

Atributo Estático

Los atributos estáticos pertenecen a la clase en lugar de a los objetos individuales y son compartidos por todas sus instancias.

Signup and view all the flashcards

Atributos y métodos

Un atributo define una propiedad de una clase, por ejemplo, el nombre de un profesor. Los métodos son las acciones que una clase puede realizar, como "enseñar" una asignatura.

Signup and view all the flashcards

Multiplicidades en estado estable

Las multiplicidades representan cuántos objetos de una clase se pueden relacionar con otros objetos. En un estado estable, se analiza el número máximo de objetos que pueden estar involucrados en la relación.

Signup and view all the flashcards

Asociación

Una asociación es una conexión entre dos clases. Describe cómo se relacionan los objetos de las clases.

Signup and view all the flashcards

Roles

Los roles describen el tipo de interacción entre dos clases. Por ejemplo, un profesor puede "enseñar" una asignatura y el estudiante puede "aprender" de ella.

Signup and view all the flashcards

Nombre de la asociación vs roles

El nombre de la asociación describe la relación entre dos clases, mientras que los roles describen la interacción específica entre los objetos.

Signup and view all the flashcards

Nombre de los roles

El nombre de los roles proporciona información adicional sobre la interacción entre dos clases. Por ejemplo, "ejercicios" en la clase Exercise indica que un ejercicio "pertenece a" un capítulo.

Signup and view all the flashcards

Herencia

La herencia permite crear nuevas clases que heredan las características de una clase padre. Esto facilita la reutilización de código y la creación de jerarquías de clases.

Signup and view all the flashcards

Generalización

La generalización es el proceso de identificar características comunes entre diferentes clases para crear una clase padre.

Signup and view all the flashcards

Especialización

La especialización permite crear clases hijas que heredan las características de una clase padre y añaden características adicionales.

Signup and view all the flashcards

Clase abstracta

Una clase abstracta define un modelo común para otras clases, pero no se puede instanciar directamente.

Signup and view all the flashcards

Herencia: Subclase y Superclase

En la herencia, la clase hija (subclase) hereda las características de la clase padre (superclase).

Signup and view all the flashcards

Operaciones polimórficas

Las operaciones polimórficas son métodos o funciones que se comportan de forma diferente dependiendo del objeto al que se apliquen.

Signup and view all the flashcards

Cardinalidad

La cardinalidad indica el rango de instancias posibles en una relación.

Signup and view all the flashcards

Interfaz

Una interfaz define un conjunto de métodos que deben implementarse en las clases que la usen.

Signup and view all the flashcards

String

Es un tipo de dato que representa un conjunto de caracteres, como una palabra o una frase.

Signup and view all the flashcards

Clase modal

Es una clase que representa un estado específico de un objeto, como un pedido que puede estar 'en proceso' o 'completado'.

Signup and view all the flashcards

Atributo 'static'

Se refiere a los objetos que se comparten por todas las instancias de la clase, generalmente en formato singular, como una lista de todos los cursos que se ofrecen en una universidad.

Signup and view all the flashcards

Clase

Es un modelo que nos ayuda a capturar el comportamiento y la estructura de un objeto.

Signup and view all the flashcards

Instancia

Es una instancia específica de una clase, como un objeto real, por ejemplo 'Porsche 911 2022'.

Signup and view all the flashcards

Clase de lógica

Es una clase que contiene una lógica y métodos para realizar operaciones en una clase específica.

Signup and view all the flashcards

Asociación 1:N

Es un tipo de relación entre dos clases, donde una instancia de una clase puede estar relacionada con varias instancias de otra clase.

Signup and view all the flashcards

Modularidad

Es un principio de diseño que busca dividir un programa en partes independientes y con funciones específicas, promoviendo la organización y la reutilización de código.

Signup and view all the flashcards

Encapsulamiento

Es un principio donde se agrupan elementos relacionados con un mismo objeto, impidiendo modificaciones no autorizadas desde fuera de la clase.

Signup and view all the flashcards

Polimorfismo

Es la capacidad de utilizar el mismo método para realizar operaciones diferentes, dependiendo de la clase donde se aplique el método.

Signup and view all the flashcards

Navegabilidad

La navegabilidad en una asociación define la dirección en la que una clase puede acceder a los objetos de otra clase.

Signup and view all the flashcards

Autoasociación

Una clase puede tener una asociación con sí misma, llamada autoasociación. Se usa para representar relaciones entre objetos de la misma clase.

Signup and view all the flashcards

Asociación vs. Operación

Las operaciones son acciones que se realizan sobre un objeto, mientras que las asociaciones representan relaciones estructurales entre objetos.

Signup and view all the flashcards

Restricciones

Las restricciones en las asociaciones especifican reglas adicionales para la relación entre clases, limitando las conexiones posibles entre los objetos.

Signup and view all the flashcards

Agregación

Una agregación es una relación entre clases que indica que una clase 'contiene' objetos de otra clase, pero no es responsable de su creación. Representa una relación de 'tiene un'.

Signup and view all the flashcards

Composición

Una composición es una relación entre clases que indica que una clase 'contiene' objetos de otra clase y es responsable de su creación y destrucción. Representa una relación de 'parte de'.

Signup and view all the flashcards

Método Estático

Un método estático es una función que pertenece a la clase en lugar de a un objeto. Se declara con la palabra clave 'static' y se puede llamar sin necesidad de una instancia de la clase.

Signup and view all the flashcards

Herencia múltiple

La herencia múltiple permite que una clase hereda propiedades y métodos de varias clases padre. No es soportada por todos los lenguajes de programación.

Signup and view all the flashcards

Study Notes

Ingeniería del Software 1 - Curso 2024-2025: Modelado Conceptual

  • Se trata de una introducción a los Diagramas de Clases, una herramienta clave en la Ingeniería del Software.
  • El curso es impartido por Miguel Alemán Flores, Agustín Salgado y Ana Plácido.
  • Un proverbio chino destaca el valor de la experiencia: "Si escucho olvido, si veo recuerdo, si hago comprendo".

Conceptos Clave

  • Objeto: Entidad fundamental en la Programación Orientada a Objetos (POO).
  • Clase: Plantilla para crear objetos, encapsulando sus propiedades y métodos.
  • Instancia: Una copia específica de un objeto basado en una clase.
  • Clase abstracta: Clase que no se puede instanciar directamente, sirve como base para otras clases.
  • Atributo: Característica o propiedad de un objeto (e.g., color, peso).
  • Público/Privado: Accesibilidad de atributos y métodos.
  • Composición: Relación de todo-parte donde la parte no puede existir sin el todo.
  • Asociación: Relación entre clases donde las partes tienen una existencia independiente.
  • Autoasociación: Relación entre distintos objetos de la misma clase.
  • Rol: Nombre que representa la función de un objeto en una asociación.
  • Agregación: Relación de todo-parte donde la parte puede existir independientemente.
  • Operación/Método: Acción que puede realizar un objeto.
  • Navegabilidad: Dirección de una asociación.
  • Multiplicidad: Número de instancias en una asociación.
  • Herencia: Mecanismo que permite crear nuevas clases a partir de existentes, extendiendo sus características.
  • Generalización: Clasificación que agrupa entidades con propiedades comunes.
  • Especificación: Restricciones sobre los atributos de entidades.
  • Restricción: Condición sobre un atributo.
  • Histórico: Información relevante en el pasado.
  • Abstracción: Representar las características esenciales de una entidad.
  • Encapsulamiento: Unir los elementos relacionados de una entidad.
  • Modularidad: Propiedad que permite subdividir una aplicación en partes.
  • Polimorfismo: Facilidad de compartir el mismo nombre para comportamientos distintos.

Diagramas UML

  • UML (Unified Modeling Language) es un lenguaje para modelar sistemas.
  • Diversos diagramas se usan para representar distintos aspectos: Estructura, Comportamiento e Interacción entre elementos.
  • Diferentes diagramas como Diagramas de Clase (DC), Diagramas de Casos de Uso (DCU), Diagramas de Secuencia, Diagramas de Interacción, etc.

Modelado Conceptual

  • El modelado conceptual ayuda a entender el problema del cliente y a diseñar la solución de forma más eficaz.
  • Representa un conjunto de conceptos interrelacionados que describen un dominio o sistema.

Tipos de Datos

  • Primitivos: String, Boolean, Integer, Real, Float, UnlimitedNatural, etc.
  • Definidos por el usuario: Tipos creados para representar conceptos específicos (e.g., Weekday, Address, ISBN).
  • Visibilidad: Especifica el nivel de acceso a un atributo (privada, pública, protegida).
  • Nombre: Identificador del atributo.
  • Multiplicidad: Número de instancias que puede tener un atributo (e.g., 0..1, 1..*, etc.)
  • Enumeración: Tipos que enumeran posibles valores. (e.g., Estado de un pedido o estado de Pago).

Atributos, Métodos, y Instancias

  • Atributos: Características de una clase.
  • Métodos: Acciones que se pueden realizar sobre un objeto.
  • Instancias: Copias específicas de un objeto.

Agregación y Composición

  • Agregación: Relación entre un todo y sus partes donde la parte puede existir independientemente.
  • Composición: Relación de todo-parte donde la parte no puede existir sin el todo.

Restricciones

  • Condiciones que deben cumplirse en las asociaciones (ej: Student pertenece a un solo Degree, pero puede tomar varios cursos).

Paquetes, Clases e Instancias

  • Los paquetes agrupan clases relacionadas.
  • Las clases son plantillas.
  • Las instancias representan objetos concretos.

Clases Modales

  • Representan atributos que pueden ser de un determinado tipo (ej: Order con la clase OrderState).
  • Un tipo de clase se puede definir para los posibles estados de algo (e.g. InvoiceState)

Clases de Control del Sistema

  • Control del sistema: Es la clase que gestiona y/o controla el flujo del sistema entero.

Bibliografía

  • Se proporcionan varias fuentes para profundizar en el tema, incluyendo especificaciones UML y manuales de referencia.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Object-Oriented Programming Concepts Quiz
5 questions
Object-Oriented Programming Concepts
10 questions
Object-Oriented Programming Concepts
40 questions
Use Quizgecko on...
Browser
Browser