Podcast
Questions and Answers
¿Qué enfoque se utiliza al implementar la descomposición algorítmica?
¿Qué enfoque se utiliza al implementar la descomposición algorítmica?
- Centrado en entidades específicas
- Sin un enfoque definido
- De arriba hacia abajo (correct)
- De abajo hacia arriba
Una desventaja de la descomposición algorítmica es que:
Una desventaja de la descomposición algorítmica es que:
- Facilita la reutilización del código
- La especificación de alto nivel cambia a menudo (correct)
- Descarta la relación entre entidades
- Permite una comprensión clara de la aplicación
En la descomposición orientada a objetos, el diseño se realiza:
En la descomposición orientada a objetos, el diseño se realiza:
- De manera adaptativa
- De arriba hacia abajo
- Sin considerar la complejidad
- De abajo hacia arriba (correct)
En la descomposición orientada a objetos, ¿cómo se consideran las entidades?
En la descomposición orientada a objetos, ¿cómo se consideran las entidades?
Los siguientes lenguajes están basados en la descomposición algorítmica, excepto:
Los siguientes lenguajes están basados en la descomposición algorítmica, excepto:
Una característica clave de la descomposición algorítmica incluye:
Una característica clave de la descomposición algorítmica incluye:
¿Cuál de las siguientes afirmaciones es cierta con respecto a la descomposición orientada a objetos?
¿Cuál de las siguientes afirmaciones es cierta con respecto a la descomposición orientada a objetos?
La descomposición algorítmica tiende a:
La descomposición algorítmica tiende a:
¿Qué característica de un objeto se refiere a sus propiedades y valores?
¿Qué característica de un objeto se refiere a sus propiedades y valores?
¿Cuál de las siguientes afirmaciones es verdadera sobre la identidad de un objeto?
¿Cuál de las siguientes afirmaciones es verdadera sobre la identidad de un objeto?
En la descomposición orientada a objetos, los objetos se comunican entre sí mediante:
En la descomposición orientada a objetos, los objetos se comunican entre sí mediante:
¿Cuál de las siguientes es una razón por la que la complejidad del software puede aumentar?
¿Cuál de las siguientes es una razón por la que la complejidad del software puede aumentar?
¿Cuál es una característica del comportamiento impredecible del software?
¿Cuál es una característica del comportamiento impredecible del software?
Una clase se puede definir como:
Una clase se puede definir como:
¿Cuál es uno de los desafíos que enfrentan los desarrolladores al alterar los requerimientos?
¿Cuál es uno de los desafíos que enfrentan los desarrolladores al alterar los requerimientos?
El comportamiento de un objeto se asocia principalmente a:
El comportamiento de un objeto se asocia principalmente a:
Study Notes
Propósito de Software
- Desarrollar tareas y/o cálculos complejos.
- Reducir intervención humana.
- Reducir errores.
- Facilitar la complejidad.
- Desarrollar tareas repetitivas.
Complejidad de Software
- Muchos objetos del mundo real presentan complejidad.
- Esto también se aplica al software:
- Sistemas de bases de datos.
- Sistemas financieros.
- Control de tráfico aéreo.
- La complejidad nunca puede ser eliminada, pero puede ser minimizada.
Razones para la complejidad de Software
- Problema de la complejidad del dominio.
- Algunos dominios son muy complejos, por ejemplo: finanzas, telecomunicaciones, etc.
- Esta complejidad se transmite al software.
- Los requerimientos no funcionales, como usabilidad, desempeño, costo, etc., agregan más complejidad.
Razones para la complejidad de Software
- Comunicación entre usuarios y desarrolladores
- Los usuarios tienen una idea muy vaga de qué esperar del software.
- Dificultad de los usuarios para expresar sus requerimientos.
- Los desarrolladores esperan los requerimientos en un formato específico.
- Los desarrolladores y usuarios carecen de experiencia en el dominio.
- Los usuarios obtienen una mejor idea después de ver un prototipo o un diseño.
- Pueden requerir un cambio que es difícil de implementar.
Razones para la complejidad de Software
- Naturaleza volátil de los requerimientos
- Cambios en los requerimientos.
- Puede ser difícil, pero no imposible, implementar un cambio.
- Los cambios futuros deben ser anticipados.
- Comportamiento impredecible del software
- El software se ejecuta en sistemas con componentes discretos.
- La aplicación puede tener múltiples hilos, variables, asignación de memoria.
- Un gran número de eventos y estados.
- Interacción entre componentes
Razones para la complejidad de Software
- Proceso de desarrollo
- Tamaño de los equipos de desarrollo.
- Ubicaciones geográficas.
- Comunicación y coordinación entre desarrolladores.
- Falta de recursos.
Minimizando la Complejidad
- Descomponer en partes más pequeñas hasta que cada una tenga un significado individualmente.
- Integrar las partes para construir el sistema final.
- “Divide et impera” - Divide y vencerás.
Descomposición Algorítmica
- Descomponer el problema en algoritmos.
- Cada algoritmo es parte de una serie de pasos (parte de todo el proceso).
- Este es un enfoque de arriba hacia abajo (top-down).
- Se inicia de una manera general.
- Luego se divide en pequeñas partes.
- El resultado final soluciona el problema como un diagrama de flujo.
Ejemplo
- Desarrollar un programa para la calificación de estudiantes.
- La aplicación deberá:
- Enrollar estudiantes.
- Aceptar resultados de exámenes.
- Calcular notas.
- Calcular promedios.
- Mostrar máximos y mínimos.
- La aplicación deberá:
Desventajas
- Desarrollo basado en especificaciones de alto nivel:
- Cambian a menudo en el tiempo.
- El código debe ser recodificado.
- Los algoritmos son específicos para la aplicación, por tanto, dificultan su reutilización.
- Dificultan agregar nuevas funcionalidades.
- Los datos se tratan con baja significancia.
- Se enfoca en operaciones:
- No se tiene idea de en qué entidad se realizan las operaciones.
- La comprensión en general de la aplicación se complica.
- No hay una relación entre las entidades del mundo real.
Lenguajes de Programación
- Algunos lenguajes basados en descomposición algorítmica:
- Fortran
- Cobol
- Pascal
- C
- ...
Descomposición Orientada a Objetos
- La abstracción de la complejidad y enfocarse solo en los detalles necesarios.
- Detalles no requeridos son ignorados.
- Solo enfocarse en los detalles esenciales.
- Esto lleva a entidades simples en el dominio del problema.
Descomposición Orientada a Objetos
- Reconoce la relación entre diferentes entidades:
- Algunas entidades pueden ser generalizadas.
- Entender cómo es la interacción y coordinación entre estas entidades.
- Esta coordinación da lugar a la funcionalidad del sistema.
Descomposición Orientada a Objetos
- Utiliza un diseño de abajo hacia arriba (bottom-up).
- El sistema se descompone en un conjunto autónomo, pero cooperativo de objetos.
- Algunas entidades pueden ser generalizadas.
- Estos objetos son representaciones abstractas en el dominio del problema.
- Diseñados con gran detalle.
- Cada objeto tiene su propio comportamiento
- Modelan objetos del mundo real.
Descomposición Orientada a Objetos
- Los objetos coordinan entre sí.
- Esta coordinación da lugar a la funcionalidad del sistema.
- Envían mensajes unos a otros.
Descomposición Orientada a Objetos
- Ventajas
- Separación de responsabilidades.
- El sistema se construye a base de objetos que representan entidades del mundo real.
- Muy cercano a los problemas del mundo real.
- Los datos tienen una importancia muy alta.
- Parte del objeto que no es visible externamente.
- Permite la generalización de objetos:
- Promueve la reutilización de funcionalidades comunes.
- Permite sistemas mas pequeños.
- Evolucionan incrementalmente en un periodo de tiempo.
Definición de Objeto
- Un objeto representa a un individuo, un item identificable, unidad o entidad ya sea real o abstracta con un rol claramente definido en el problema del dominio.
- Modela alguna parte de la realidad.
- Existe en espacio y tiempo.
- Tiene un comportamiento identificado y un propósito definido.
- Colabora con otros objetos para proveer un comportamiento de mayor nivel.
Definición de Objeto
- Características:
- Un objeto posee las siguientes características:
- Estado.
- Identidad.
- Comportamiento.
- Un objeto posee las siguientes características:
- La estructura y comportamiento de objetos similares se especifican en una clase.
- Un objeto es una instancia de una clase.
- Una clase es una plantilla para crear objetos.
Definición de Objeto
- Estado
- Las propiedades y sus valores constituyen el estado de un objeto.
- Se muestra como los atributos de un objeto.
- Campos, variables, etc.
- Se muestra como los atributos de un objeto.
- Puede ser de dos tipos:
- Estáticos: Atributos principales que no cambian.
- Dinámicos: Atributos que cambian como resultado de una operación realizada en un objeto.
- Las propiedades y sus valores constituyen el estado de un objeto.
Definición de Objeto
- Identidad
- Rasgo que hace que un objeto sea único y le da individualidad.
- Se representa a través de uno o más de un atributo del objeto.
- Campos, variables, etc.
- Se representa a través de uno o más de un atributo del objeto.
- Rasgo que hace que un objeto sea único y le da individualidad.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Este cuestionario explora los propósitos y la complejidad del software, así como las razones detrás de su desarrollo y dificultades. Profundiza en cómo la complejidad se presenta en diferentes dominios, como finanzas y telecomunicaciones, y cómo afectar la interacción entre usuarios y desarrolladores.