Principios de Programación

IdyllicConcreteArt avatar
IdyllicConcreteArt
·
·
Download

Start Quiz

Study Flashcards

16 Questions

¿Cuál es la definición de un problema en la resolución de problemas?

Un conjunto de hechos o circunstancias que dificultan la consecución de algún fin

¿Qué es un lenguaje de bajo nivel?

Un lenguaje que no tiene procedimientos ni funciones

¿Qué es la abstracción de control en un lenguaje estructurado?

La utilización de procedimientos y funciones

¿Qué es la principal ventaja de los lenguajes orientados a objetos?

La separación clara entre interfaz e implementación

¿Cuál es el paso inicial en el proceso de resolución de problemas?

Análisis del problema

¿Qué es un algoritmo en la resolución de problemas?

Un conjunto de reglas finito y no ambiguo

¿Qué es una estructura de datos en la resolución de problemas?

Una disposición en memoria de la información

¿Cuál es el resultado final del proceso de resolución de problemas?

Un programa

¿Cuál es el principal objetivo de la modularidad en el desarrollo de software?

Dividir la complejidad del problema en partes manejables

¿Qué es la Ocultación de la Implementación?

La visibilidad de la implementación del módulo solo dentro del módulo

¿Cuál es el beneficio principal de reutilizar programas y librerías existentes?

No tener que partir de cero en el desarrollo del software

¿Qué característica de la calidad del software se refiere a la capacidad de ampliar el software para adaptarse a cambios futuros?

Escalable

¿Cuál es la función principal de la abstracción en el desarrollo de software?

Resumir la información no relevante

¿Qué es un Tipo Abstracto de Datos (TAD)?

Un conjunto de valores que pueden tomar los datos junto con una serie de operaciones que los manipulan

¿Por qué es importante repartir la funcionalidad del programa de manera uniforme?

Para facilitar el mantenimiento del software

¿Qué es la modularidad en el desarrollo de software?

La división del programa en módulos que se comunican entre sí

Study Notes

Resolución de Problemas

  • Un problema es un conjunto de hechos o circunstancias que dificultan la consecución de algún fin.
  • Para resolver un problema, se utiliza un algoritmo (conjunto de reglas finito y no ambiguo) y una estructura de datos (disposición en memoria de la información).

Evolución de la Programación

  • Lenguajes de bajo nivel:
    • No existen procedimientos ni funciones.
    • No existen registros ni tipos definidos por el usuario.
    • No existen bloques estructurados (while, repeat, etc.).
  • Lenguajes estructurados:
    • Abstracción de lenguajes estructurados:
      • Procedimientos y funciones son abstracciones de control.
      • Tipos definidos por el usuario son abstracciones de datos.
      • Unidades, módulos o paquetes son abstracciones de nivel superior: abstracciones de funcionalidades.
    • Inconvenientes de los lenguajes estructurados:
      • Los datos y los procedimientos de manipulación van por separado.
      • Es necesario garantizar la ocultación de la implementación.
      • Proliferación de variables globales.
      • Los programas son cada vez más complejos y difíciles de mantener.
  • Lenguajes Orientados a Objetos:
    • Una clase encapsula los datos de un tipo y las operaciones sobre el mismo.
    • Una clase es, al mismo tiempo, un tipo abstracto de datos y un módulo que encierra un conjunto de funciones relacionadas.
    • Separación clara entre interfaz (parte visible desde fuera) e implementación (oculta).

Proceso de Resolución de Problemas

    1. Análisis del problema.
    1. Diseño del programa (algoritmo y estructuras).
    1. Implementación (programación).
    1. Verificación y pruebas.

Conclusiones

  • Proceso de análisis y diseño: No empezar tecleando código como locos.
  • Usar abstracciones, respetando los dos principios básicos:
    • Encapsulación: Las funciones relacionadas deben ir juntas (clases, módulos, paquetes, etc.).
    • Ocultación de la implementación: Los aspectos de implementación no son visibles fuera del módulo, clase, etc.
  • Reutilizar programas, librerías, tipos, etc. Existentes y programar pensando en la posible reutilización futura.
  • No resolver casos concretos, sino el problema en general.
  • Repartir bien la funcionalidad: Repartir la complejidad del problema de forma uniforme.

Calidad del Software

  • La sociedad exige un software de calidad:
    • Correcto: Cumple las especificaciones.
    • Robusto: Tolerante a fallos.
    • Escalable: Se puede ampliar.
    • Portable: Para cualquier plataforma.
    • Precisión: Sin cotas de error en los cálculos.
    • Eficiente: Uso óptimo de los recursos.
    • Fácil: Sencillo de manejar e intuitivo.
  • Para abordar la calidad del software:
    • Modularidad (divide y venderás).
    • Abstracción.
    • Encapsulación.
    • Ocultación de la información.

Tipo Abstracto de Datos (TAD)

  • Definición: Conjunto de valores que pueden tomar los datos junto con una serie de operaciones que los manipulan.
  • Representación de TADs como una caja negra.

Este cuestionario evalúa tus conocimientos sobre los principios básicos de programación, como la abstracción y ocultación de la implementación.

Make Your Own Quizzes and Flashcards

Convert your notes into interactive study material.

Get started for free

More Quizzes Like This

Open-Closed Principle Quiz
5 questions

Open-Closed Principle Quiz

TriumphalRainforest avatar
TriumphalRainforest
Principles of Class Design Quiz
15 questions
Software Design Patterns and Principles Quiz
12 questions
Java Programming Principles
18 questions
Use Quizgecko on...
Browser
Browser