Objetivo de aprendizaje 3.1.A: Representar el diseño de un programa utilizando lenguaje natural o creando diagramas que indiquen las clases del programa y las abstracciones de datos y procedimentales presentes en cada clase, incluyendo todos los atributos y comportamientos.
- 3.1.A.1 La abstracción es el proceso de reducir la complejidad centrándose en la idea principal. Al ocultar detalles irrelevantes para la pregunta actual y agrupar detalles relacionados y útiles, la abstracción reduce la complejidad y permite centrarse en la idea.
- 3.1.A.2 La abstracción de datos proporciona una separación entre las propiedades abstractas de un tipo de datos y los detalles concretos de su representación. La abstracción de datos gestiona la complejidad al asignar un nombre a los datos sin referenciar los detalles específicos de la representación. Los datos pueden adoptar la forma de una variable única o una colección de datos, como en una clase o un conjunto de datos.
- 3.1.A.3 Un atributo es un tipo de abstracción de datos definido en una clase fuera de cualquier método o constructor. Una variable de instancia es un atributo cuyo valor es único para cada instancia de la clase. Una variable de clase es un atributo compartido por todas las instancias de la clase.
- 3.1.A.4 La abstracción procedural proporciona un nombre para un proceso y permite utilizar un método conociendo únicamente lo que hace, no cómo lo hace. A través de la descomposición de métodos, un programador divide los comportamientos más grandes de la clase en comportamientos más pequeños creando métodos para representar cada comportamiento individual pequeño. Una abstracción procedural puede extraer características compartidas para generalizar la funcionalidad en lugar de duplicar código. Esto permite la reutilización de código, lo cual ayuda a gestionar la complejidad.
- 3.1.A.5 El uso de parámetros permite generalizar los procedimientos, habilitando la reutilización de los procedimientos con una gama de valores de entrada o argumentos.
- 3.1.A.6 El uso de la abstracción procedural en un programa permite a los programadores cambiar los internals de un método (para hacerlo más rápido, más eficiente, usar menos almacenamiento, etc.) sin necesidad de notificar a los usuarios del método sobre el cambio, siempre que se preserven la firma del método y lo que el método hace.
- 3.1.A.7 Antes de implementar una clase, es útil dedicarse tiempo a diseñar cada clase, incluidos sus atributos y comportamientos. Este diseño puede representarse mediante lenguaje natural o diagramas.

