2.1. Trabajo Escritto Actividad 2 - Implementación de Principios SOLID y Grasp

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 11

1

Implementación de Principios SOLID y GRASP

Luis Hernando Murcia Amórtegui

Facultad de Ingeniería Software, Corporación Universitaria Iberoamericana

C2 Fundamentos de Diseño de Software

Ingeniera Mary Luz Rubiano Acosta

7 de Noviembre de 2021
2

Introducción

En el siguiente trabajo se realizó la implementación de los principios de patrones SOLID y

GRASP. Mediante el material compartido por el docente se realizó la implementación de los

principios aplicados en la sintaxis Java, el lector podrá ver el desarrollo de la implementación

con toda la documentación correspondiente, en los principios se realizaron ejemplos con

diferentes contextos de la vida real, las implementaciones también están compartidas en los

repositorios Github en donde se dejara el link de acceso con la finalidad de que el lector pueda

visualizar y tener una crítica sobre el desarrollo. Los principios serán explicados con ejemplos y

con teoría para que el lector no solo evidencie la información con ejemplos, también para tener

un punto de comparación con otras sintaxis y otros desarrollos realizados por otras personas.

1. Principios SOLID
3

SOLID es un conjunto de principios que están en una abreviatura en ingles según el principio,

los principios del patrón referenciado son los siguientes;

1. S: Single responsability principle = Principio de responsabilidad única.

2. O: Open/Close principle = Principio de abierto o cerrado.

3. L: Liskov substitution principle = Principio de sustitución de Liskov

4. I: Interface segregation principle = Principio de segregación de la interfaz.

5. D: Dependency inversión principle = principio de inversión de dependencia.

Las aplicaciones de los principios harán del mantenimiento de un software una tarea mucho

más sencilla, una mejor forma para agregar nuevas funcionalidades al software, reusabilidad, y

calidad del desarrollo (Martín, 2019, párr. 1-6).

1.1. Principio de responsabilidad única


4

Para este caso las clases deben de estar definidas con una tarea en específico y no tener dos

tareas en una sola clase, a continuación, se mostrará en la imagen 1 un ejemplo del mal uso, y

en la imagen 2 un ejemplo del buen uso del principio de responsabilidad única.

1. Imagen 1, ejemplo mal uso principio Responsabilidad Única.

En la imagen 1, se creó un método restaDatos en la clase sumaDatos, en teoría no aplica el

principio responsabilidad única ya que se está realizando una ejecución no solo de una suma

sino también de una resta dentro de la clase sumaDatos, en este punto hay un mal uso del

método y se requiere separar el método restarDatos en una clase independiente para que así

la clase sumarDatos tenga como única tarea sumar los datos ingresados por el usuario desde

la clase principal la cual instancio la clase sumarDatos para enviar los datos ingresados por el

usuario y enviar el método de suma a la clase principal.


5
6

2. Imagen 2, buen uso principio de responsabilidad única.

En la imagen 2 se puede evidenciar el buen uso del principio Responsabilidad Única, las

entradas de los datos se generan desde la clase principal, existen dos clases más, una llamada

RUSumaDatos la cual recibirá los datos de usuario mediante una instanciación de la clase

principal, se asigna los atributos mediante un constructor para ejecutar mediante un método

una operación aritmética de suma, la resta realiza la misma metodología, lo único que cambia

es que esta abstraída en otra clase y cumple otra función, para este caso es la de restar los

datos que ingreso el usurario mediante un void retornar un valor de tipo entero(INTEGER).
7

3. Imagen resultado implementación principio Responsabilidad Única.

Como se puede ver en la imagen 3, una vez se compila el programa para su ejecución, se

evidencia que la clase principal pide los datos al usuario, posterior mente los guarda en las

variables asignadas y las envía por medio de una instancia de la clase RUSumaDatos y

RURestaDatos, a su vez llama los métodos correspondientes que mostraran en consola los

resultados de las operaciones, para este ejemplo la suma y las restas ingresados por consola.

3.1. Principio Abierto/Cerrado

Una clase preparada por el desarrollador debería estar disponible para extender de la clase los

métodos y atributos almacenados, sin que estos puedan mover o modificar la clase que se

extiende, para ello se verá a continuación en la imagen 3 el mal uso de este principio.
8

4. Imagen, mal uso del principio abierto y cerrado.

Para este caso se tomará el resultado de la suma y el valora ingresado por el usuario,

mediante un módulo se determinará si la suma de los de los números corresponde a un

número par o impar, el problema es que el método se encuentra junto con el método

restarDatos, por ende, se está realizando un mal uso, ya que está utilizando la misma clase y

se puede dar para errores a la hora de realizar alguna modificación.


9

5. Imagen buen uso principio Abierto/Cerrado

En la imagen 5 podemos evidenciar el método con un buen uso correspondiente al principio

Abierto/Cerrado, en el cual el método moduloDatos está heredando el resultado del método

sumarDatos sin que este mismo pueda afectar los atributos del método sumarDatos, para

finalizar, se realiza el modulo entre resultado y valora ingresado por el usuario por consola los

cuales determinaran mediante una condicional si el numero es par o impar, en la clase principal

ya no se llama mediante el objeto datos al método sumarDatos, ya que moduloDatos esta

heredando la clase sumarDatos por ende ya trae encapsulada la operación aritmética de sumar

los datos pero de la cual el método moduloDatos no puede modificar sus valores iniciales.
10

6. Resultado final de la ejecución.


11

También podría gustarte