Proceso de Diseño y Comparacion de Metodos GRASP y SOLID

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

1

Proceso De Diseño De Software

Estos son los distintos principios básicos de diseño de software.

-En el proceso de diseño no se deben usar orejas

-El diseño debería poder ser rastreado hasta el modelo de análisis

-El diseño debe ser original

-El diseño debe tener uniformidad e integración

-El diseño debe ser susceptible a cambios

-El diseño no es escribir Código y escribir Código no es diseñar

-El diseño debe ser evaluado durante su construcción para mantener su calidad

Concepto de diseño.

Los con conceptos de diseño generan un marco de trabajo para poder diseñar software de mejor

manera, y favorecen a la creación de software y su calidad de construcción los diferentes

conceptos de diseño a tratar son:

-Abstracción

-Refinamiento sucesivo (descomposición)

-ocultación de la información

-Arquitectura del software

-jerarquía de control
-División estructural

-Estructura de datos

-Procedimiento de software

Abstracción: En la abstracción existen diferentes grados y entre mayor sea el grado es una

solución en general y entre menor sea el grado se relaciona a elementos más específicos

Abstracción procedimental: Esta abstracción permite describir procesos omitiendo detalles

irrelevantes

Abstracción de datos: Esta abstracción permite describir un objeto sin la necesidad de conocerlo

a detalle.

Refinamiento sucesivo: El refinamiento tiene un concepto de diseño descendente y es un

complemento de la abstracción. Con el refinamiento sucesivo se inicia con una función de alto

grado y a medida que se ban produciendo cambios se va refinando el enunciado.

Ocultación De información: En la ocultación de la ocultación de información se caracteriza por

esconder información de otros módulos, las modificaciones y pruebas se realizan más

cómodamente y se evita el ingreso de errores de frontera o involuntarios al estar solucionando un

problema.
Arquitectura: La arquitectura es la encarga de ver y dar forma a los distintos tipos de

componentes físicos con el software y de qué manera se comunican entre ellos y el software, la

arquitectura en la mayoría de ocasiones se diseña para ciertos tipos de componentes y sistemas

haciendo que estas sean extremadamente complejas y únicas. Las arquitecturas son diseñadas

para resolver problemas y darles un orden especifico.

Jerarquía de control: La jerarquía de control se encarga de ordenar el programa y los módulos de

este debido al flujo de control que estos tienen, esta no muestra procedimientos, no es aplicable

a todas las arquitecturas y la forma más fácil de representarla es atreves de ramificaciones que

represente el control de los demás módulos(entorno).

División estructural: La división estructural se caracteriza por partir el programa de forma

vertical y horizontal, la división horizontal se encarga de definir ramas separadas en la jerarquía

modular para cada función principal del programa (módulos de control, módulos de enfoque,

entrada y salida). Los veneficios de esta partición son: proporciona un software más fácil de

probar, es más fácil de mantener, produce menos efectos secundarios y el software es más fácil

de ampliar

Estructura de datos: La estructura de datos se encarga de la relación lógica que hay entre los

distintos elementos individuales de datos, aquí la estructura de datos indica la organización, los

métodos de acceso, el grado de asociatividad y las alternativas de la información. Las estructuras

clásicas son: Elemento escalar, vector secuencial, espacio n-dimensional y lista enlazada
Comparativa de los patrones GRASP y principios
SOLID
Patrones GRASP Principios SOLID

patrón experto: Este patrón se encarga de Los principios SOLID se crearon como

asignar responsabilidades, como la una solución a desafío en el que se

creación de un objeto o la convierte a la hora de crear un software

implementación escalable

de un método, la responsabilidad de este Los principios SOLID como sus siglas

método recae sobre la clase en específico lo indican:

que tiene toda la información S: Single responsibility principle o

que se necesita para crearlo Principio de responsabilidad única

O: Open/close principle o Principio

patrón creador: Este patrón se encarga y de abierto/cerrado

nos ayuda a la creación de nuevos objetos o L: Liskov substitucion principle o

clases y lo característico de este Principio de sustitución de Liskov

patrón es que la nueva instancia tiene la I: Interface segregación principle o

información necesaria para crear el Principio de segregación de la interfaz

objeto o usa las instancias ya creadas D: Dendency inversión principle o

también puede manejar y almacenar Principio de inversión de dependencia

varias instancias de la clase

S: Principio de responsabilidad única como

patrón controlador: Este patrón se encarga su nombre lo indica estable que una clase o

de ser un intermediario entre una interfaz y microservicio debe ser responsable

el algoritmo que la compone,


esta misma que recibe los datos del solo de una sola cosa, ya que si se llega a

usuario y va enviando distintas clases producir un cambio este tendrá

según el método llamado. Este patrón repercusiones a las demás clases

plantea que la personalización y la lógica

de negocios deben estar separadas para O: Principio abierto/serrado, este

tener un mejor rendimiento, principio establece que las entidades del

poder reutilizar mejor el código y tener software (clases, módulos y funciones)

un mejor control deberían estar abiertos para su extensión,

pero cerrados para su modificación

patrón fabrica pura: El patrón de fabrica no

se encarga del dominio de un tema o L: Principio de sustitución de Liskov,

solución de un problema, sino que este criterio declara que una subclase

su función es evitar el acoplamiento, debería ser sustituible por su superclase,

aumentar la cohesión y potenciar la pero si al cambiar esa clase el programa

reutilización del código, esta es una buena falla se estaría incumpliendo ese principio,

solución cuando el programador no sepa este principio permite que el

que hacer y este termine con una clase programa tenga una jerarquía de clase es

poco cohesiva o tenga otra clase que fácil de entender y Código reutilizable

pueda implementar algunos métodos, en

conclusión, este patrón puede que no I: Principio de segregación de interfaz, este

represente mayor cosa pero al principio indica que los clientes no

implementarlo deberían estar forzados a usar

esta mejora la estructura del sistema


interfaces que no usen, si un cliente tiene

una interfaz que no use, pero los demás

clientes usan este cliente

se verá forzado a usar esa interfaz y

terminará afectado por esa misma. así que lo

más indicado a hacer es implementar una

interfaz a cada clase para que no haya

problemas

D: Principio de inversión de dependencias,

este principio establece que las dependencias

deben estar con las abstractas

y no en las cocreaciones, lo que plantea es

que los módulos de alto nivel y bajo nivel

no depender uno del otro si no

que dependan de las abstracciones y que las

abstracciones no dependan de los datos, sino

que los datos dependan de la

abstracciones. En un punto el programa o

aplicación quedara formado por muchos

módulos en ese momento se deben usar

las inyecciones de dependencias para

controlar de forma correcta las

funcionalidades en vez de tener el código


desordenado además facilitara el testeo del

programa

Referencias bibliográficas: https://enmilocalfunciona.io/principios-solid/

También podría gustarte