Clase 1
Programación II Ingeniería de sistemas y computación Johan Giraldo
Hola ● Soy Johan Giraldo (@jsgiraldoh Redes sociales) ● DevOps Engineer ● Grupo Docker Community Leaders ● Me gusta compartir conocimientos ● Autor del Blog: Aprende Docker en Español
2
Introducción La programación orientada a objetos, POO, es un paradigma de programación que hace uso de elementos autónomos, denominados objetos, para simular el comportamiento del mundo real. En este paradigma, los objetos se comunican entre sí y llevan a cabo, diferentes actividades. Por ello, es importante tener claramente definido qué hace cada objeto (comportamiento), qué conoce (datos) y con quién se comunica (relaciones). Lo anterior se conoce como responsabilidades del objeto. 02/09/2021
Programación II
3
Introducción El paradigma de la POO se apoya en conceptos tales como abstracción, herencia, polimorfismo, cohesión, encapsulamiento y acoplamiento. La abstracción permite identificar las responsabilidades relativas a una clase y tiene como objetivo aislar las cualidades de un objeto, es decir, concebir el objeto desde su esencia. La abstracción sirve para identificar atributos y operaciones, para que todo esto sea llevado a una clase. Una clase es una plantilla para crear objetos.
02/09/2021
Programación II
4
Introducción En la POO se da mayor importancia a lo que hace el objeto y no al cómo lo hace. La herencia permite absorber elementos de una clase existente y mejorar la nueva clase, al aumentar nuevas funcionalidades o al modificar las ya existentes. El polimorfismo, requiere el uso de la herencia, y consiste en la capacidad que tienen objetos creados con diferentes clases, de reaccionar a mensajes (operaciones) de diferente forma. El acoplamiento hace referencia al grado de dependencia entre módulos de software. La cohesión hace alusión a la agrupación de funciones o unidades de software en una unidad independiente mayor. 02/09/2021
Programación II
5
Introducción En general, el acomplamiento y la cohesión son inversamente proporcionales, a bajo acoplamiento, se da alta cohesión. Un bajo acoplamiento es una buena señal de que el software se ha diseñado apropiadamente. El encapsulamiento, es un mecanismo de ocultación de información referente al estado del objeto, que pretente que el mismo solo pueda modificarse mediante el uso de operaciones definidas para el objeto (métodos modificadores y accesores). 02/09/2021
Programación II
6
Introducción Al final de este capítulo, debería poder: ◼ Introducirse en el paradigma orientado a objetos (POO). ◼ Conocer algunos de los conceptos usados en POO. ◼ Introducirse en el lenguaje UML.
02/09/2021
Programación II
7
Conceptos introductorios En el mundo real pueden apreciarse gran cantidad de objetos. Sillas, carros, ventiladores, celulares, portátiles y marcadores son ejemplos de ellos. La POO se basa en la creación y manipulación de este tipo de elementos. Un objeto posee propiedades y un comportamiento. Para construir objetos se debe hacer uso de clases. Un objeto es una materialización de una clase.
02/09/2021
Programación II
8
Conceptos introductorios En el mundo real pueden apreciarse gran cantidad de objetos. Sillas, carros, ventiladores, celulares, portátiles y marcadores son ejemplos de ellos. La POO se basa en la creación y manipulación de este tipo de elementos. Un objeto posee propiedades y un comportamiento. Para construir objetos se debe hacer uso de clases. Un objeto es una materialización de una clase.
02/09/2021
Programación II
9
Pasos para resolver un problema Para poder resolver un problema, el equipo de desarrollo en primer lugar debe identificar qué es lo que requiere el cliente, es decir, debe entender el problema. A esta etapa se le denomina análisis y como resultado, se obtiene el artefacto conocido como especificación de requisitos software (ERS). Durante esta etapa se llevan a cabos los siguientes pasos: ◼Identificar los requisitos funcionales (comprender lo que el cliente necesita que el programa haga). ◼Comprender el mundo del problema, es decir, las reglas y estructura de la empresa dentro de la cual va a funcionar el software. ◼Identificar los requisitos no funcionales. Este tipo de requisito se refiere a restricciones tales como hardware, rendimiento, interfaz de usuario, tiempo de respuesta, factores humanos, manuales y documentación, calidad, ambiente físico . 02/09/2021
Programación II
10
Pasos para resolver un problema
02/09/2021
Programación II
11
Objetos y clases “Un objeto es un elemento de un programa que almacena cierta información (estado del objeto), realiza algunas acciones (comportamiento del objeto), según sus responsabilidades y posee una única identidad en el sistema. Un objeto es un ejemplar de una clase” . Una clase es una plantilla para crear objetos y un objeto es una materialización de la una clase. Los objetos (o instancias de clases) se comunican mediante el envío de mensajes. Un programa en Java debe tener como mínimo una clase. Dentro de la clase de declaran los atributos y se especifica el comportamiento. Las características o propiedades son conocidas con el nombre de atributos. El comportamiento hace referencia a lo que el objeto puede efectuar y se logra mediante la implementación de métodos. Un método se compone de un grupo de instrucciones a través de la cuales se resuelve un problema específico. Todo método tiene una signatura, compuesta por el nombre del método, los parámetros (todo lo que se necesita para resolver el problema, pero que no forma parte del objeto) y los tipos de los parámetros, siendo de especial importancia el orden de los parámetros. Este orden define como se le deben enviar los argumentos al momento de la invocación. Aunque el comportamiento se define en la clase, es el objeto quien lo efectúa. 02/09/2021
Programación II
12
Proceso de identificación de clases, atributos y métodos a partir del enunciado del problema Para desarrollar el proceso de identificación de clases, atributos y métodos a partir del enunciado del problema Para identificar las entidades o clases se debe leer el enunciado del problema y a partir del mismo, resaltar los nombres o sustantivos. Es común que éstos se sean clases o atributos. Por su parte, el proceso de identificación de métodos, requiere que se resalten los verbos. A las clases, atributos y métodos se les debe dar un nombre válido (identificador).
02/09/2021
Programación II
13
Proceso de identificación de clases, atributos y métodos a partir del enunciado del problema Elementos
Recomendación para asignarle nombre
Clase
El nombre de la clase debe iniciar en mayúscula
Atributo
El nombre de un atributo, por convención inicia con letra minúscula. Si está compuesto por más de una palabra, a partir de la segunda palabra (cada palabra) empezará en mayúscula. Cada atributo tiene un nombre y un tipo de dato asociado.
Método
El nombre de un método debe iniciar con un verbo en infinitivo. Debe ser mnemotécnico y empezar con letra minúscula. Si está compuesto por dos palabras, entonces la primera palabra irá en minúscula y la inicial de la segunda en mayúscula.
02/09/2021
Programación II
14
Tipos de datos primitivos en Java
02/09/2021
Programación II
15
Principales tipos de datos trabajados
02/09/2021
Programación II
16
Sugerencias para el uso de identificadores
02/09/2021
Programación II
17
Enunciado 1 Caso de estudio del triángulo
02/09/2021
Programación II
18
Enunciado del triángulo, en el que se han subrayado los verbos y sustantivos
02/09/2021
Programación II
19
A partir de los elementos subrayados se construye la siguiente tabla: Elemento resaltado
Análisis
Aplicación
Se descarta aplicación, dado que corresponde al software que se desarrollará como tal.
Triángulo
Es la entidad más importante del mundo del problema. El triángulo se debe materializar. Ello se logra mediante la creación de una clase, que va a definir la naturaleza de un objeto de tipo triángulo, a partir de esta clase se crea una instancia u objeto de tipo Triángulo.
base
Es una propiedad del Triángulo. Se considera variable miembro de la clase Triangulo. Es de tipo primitivo (double)
altura
Es una propiedad del Triángulo. Se considera variable miembro de la clase Triangulo. Es de tipo primitivo (double)
ingresar base
Operación para fijar el atributo base. El valor puede venir desde la ventana, la consola, o ser inicializado por el programador.
Ingresar altura
Operación para fijar el atributo altura. El valor puede venir desde la ventana, la consola, o ser inicializado por el programador.
Calcular area
Operación para calcular el área. El área se calcula como el producto de la base por la altura. Partiendo de lo anterior,dado que estos datos fueron previamente ingresados, ya no se requiere ingreso de más datos para el cálculo del área.
02/09/2021
Programación II
20
Los verbos hallados permiten evidenciar los siguientes requisitos funcionales
02/09/2021
Programación II
21
Los verbos hallados permiten evidenciar los siguientes requisitos funcionales
02/09/2021
Programación II
22
En lenguaje UML
02/09/2021
Programación II
23
¡ GRACIAS !
02/09/2021
Programación II
24
Referencias ◼ Jaramillo, S., Cardona, T. (2019). Lógica de programación usando orientación a objetos y Java. ELIZCOM SAS
02/09/2021
Programación II
25