Está en la página 1de 7

Actividad 1 - Proceso de diseño de software

Jhon Freddy Ortiz Gómez.

Corporación Universitaria Iberoamericana.


Ingeniería de Software.
Fundamentos de diseño
(JOSE NEIRA_07092020_C1_202034_II)
Septiembre del 2020
Introducción ii

En la actualidad los sistemas de software están revolucionando al mundo y en el diario


vivir de la humanidad, todos los días salen tecnologías nuevas relacionados con el software
como nuevos lenguajes de programación, estilos de programación y demás, es por esto que
existen principios como lo son SOLID y GRASP que ayudan con la estructuración del
modelo de diseño del software con el fin de optimizar dicho proceso; En este trabajo se
darán a conocer detalles claves de estos principios y sus diferencias.
1

Principios SOLID:

Los principios Solid están conformados por 5 principios los cuales fueron enunciados por

Robert C. Martin y los cuales se enfocan en la calidad con la que se elabora un sistema de

información, como definición tenemos que SOLID es:

Un acrónimo de: Single responsability, Open-closed, Liskov substitucion, Interface

segregation, y Dependency inversion los cuales son principios de la programación

orientada a objetos con la intención de lograr el fácil mantenimiento de un sistema

informático, adicionalmente aplicando dichos principios se logra que un código sea mas

entendible, legible y de fácil testeo.

Principio de Única responsabilidad:

Este principio se fundamenta en que no debería existir más de una razón para cambiar

una clase, es decir, que una clase debe concentrarse en una sola cosa de tal forma que

cuando cambie un requisito de cierta forma dicho cambio solo afecte una clase

Principio abierto / cerrado:

Este principio se fundamenta en que las entidades como clases, modulos, funciones etc.

Deben estar abiertas a la extensión pero no a la modificación, es decir, cambiar el

comportamiento de una clase mediante la herencia, polimorfismo y composición.

Principio de sustitución de Liskov (Barbara Liskov):


2

Básicamente lo que se busca con este principio es que las subclases deben comportarse

adecuadamente cuando sean usadas en lugar de sus clases base.

Principio de segregación de interfaces:

Los clientes no deberían ser forzados a depender de unas interfaces de las cuales no

hacen uso, la función principal de este principio es permitir el correcto funcionamiento

entre interfaces, su comunicación y coexistencia.

Principio de inversión de dependencias:

Este principio se fundamenta en que los módulos de alto nivel no deben depender de los

de bajo nivel ya que ambos deben depender de abstracciones y estas a su vez no deben

depender de detalles, de otro modo lo que busca este principio es lograr un sistema

robusto y flexible adicionalmente facilita la reutilización de código.

Principios GRASP:

Grasp es un acrónimo de General Responsability Assignment Software Patterns y son una

serie de buenas practicas que al igual que SOLID están enfocadas a buscar la calidad del

desarrollo de sistemas de información, se centra en la estructura y las responsabilidades

de las clases que componen el sistema de información.

Las características de este principio son:


3

Alta cohesión y bajo acoplamiento:

Lo que se busca con esta característica es que las clases contengan información

consistente, coherente respecto a las relaciones y responsabilidades con las demás clases

y adicionalmente que entre clases no exista gran vinculación, es decir, que tanto afecta

los cambios hechos en una clase x en una clase y haciendo que dependan unas de otras.

Experto en información:

Este patrón nos indica que la responsabilidad de la creación de un objeto o la

implementación de un método debe ser de la clase quien conoce toda la información

necesaria para crearla o ejecutarla disminuyendo el acoplamiento y aumentando la

cohesión

Fabricación pura:

Es una solución para las clases poco cohesivas y en donde no se pueden implementar

algunos métodos, para esto se crea una clase genérica con la cual se busca mejorar la

estructura y el diseño del sistema.

Indirección:

Con este patrón lo que se busca es optimizar las clases con bajo acoplamiento entre si

asignando algún objeto mediador entre los objetos para proteger el primer objeto de los

cambios del segundo

Polimorfismo:

Básicamente es permitir que varias clases se comporten de acuerdo a un tipo, en donde

dicho comportamiento es diferente dependiendo del tipo que sean


4

Variaciones protegidas:

El cambio es una constante en los sistemas de información, es por esto que es muy

importante que los sistemas de información sean de fácil cambio, sin que afecten en gran

medida el comportamiento original del sistema que que se pueda estructurar de una

manera fácil y eficaz, sin tener que regresar al inicio o dedicar mayor esfuerzo en dicha

modificación, este patrón lo que busca es proteger las interfaces que pueden presentar

modificaciones por medio del polimorfismo de modo que quede lo menos ligado al

sistema de información

Caracteristica SOLID GRASP

Objetivo Busca principalmente un diseño de software de Busca la calidad de los

principal calidad con todos sus complementos y desarrollos de sistemas de

definiciones. información pero se centra

en clases y estructuras del

sistema.

Principales Escalabilidad del sistema, hace que el Optimiza el funcionamiento

beneficios mantenimiento sea mas sencillo, estructura y general del sistema de

organiza todo el proceso de desarrollo. información, comunicación

entre clases, dependencia,

cohesión, acoplamiento.

Características S: Single Responsability Principle (SRP) Alta cohesión

O: Open / Closed Principle Controlador


5

L: Liskov Substitution Principle Creador

I: Interface Segregation Principle Experto en información

D: Dependency Inversion Principle Fabricación pura

Indirección

Polimorfismo

Variaciones protegidas

También podría gustarte