DISEÑO DE SOFTWARE
Conceptos de diseño
Reybert Andrés Peñuela Sepúlveda
Corporación universitaria Iberoamericana
Fundamentos de diseño.
14 de noviembre del 2021
Diseño de El diseño de software agrupa el conjunto de principios, conceptos y prácticas
software que llevan al desarrollo de un sistema o producto de alta calidad. El objetivo
del diseño es producir un modelo o representación que tenga resistencia,
funcionalidad y belleza. Para lograrlo, debe practicarse la diversificación y
luego la convergencia.
Importancia El diseño permite modelar el sistema o producto que se va a construir. Este
modelo se evalúa respecto de la calidad y su mejora antes de generar código;
después, se efectúan pruebas y se involucra a muchos usuarios finales.
Pasos El diseño Primero, debe Luego, se Por último, se
representa al representarse la modelan las diseñan los
software de arquitectura del interfaces que componentes del
varias sistema o conectan al software que se
maneras, los producto. software con los utilizan para
pasos del usuarios finales, construir el sistema.
diseño son: con otros sistemas
y dispositivos, y
con sus propios
componentes
constitutivos.
Conceptos de Abstracción: Arquitectura: Patrones: División de
diseño Cuando se La arquitectura Un patrón de problemas:
considera es la estructura diseño describe La división de
una solución de organización una estructura de problemas es un
modular para de los diseño que concepto de diseño
cualquier componentes de resuelve un que sugiere que
problema, es un programa problema cualquier problema
posible (módulos), la particular del complejo puede
plantear forma en la que diseño dentro de manejarse con más
muchos éstos interactúan un contexto facilidad.
niveles de y la estructura de específico.
abstracción. datos que
utilizan.
SOLID GRAPS
En ingeniería de software, SOLID (Single "General Responsibility Assignment Software
responsibility, Open-closed, Liskov Patterns", o lo que es lo mismo, patrones
substitution, Interface segregation and generales de asignación de responsabilidades
Dependency inversion) es un acrónimo en software ya que la palabra 'grasp' significa
mnemónico introducido por Robert C. Martin comprender, entender o alcanzar.
a comienzos de la década del 2000 que
representa cinco principios básicos de la
programación orientada a objetos y el diseño.
S > SRP > Single Responsibility Principle: El grado de cohesión mide la coherencia de
Una clase debería concentrarse sólo en hacer una clase, esto es, lo coherente que es la
una cosa de tal forma que cuando cambie información que almacena una clase con las
algún requisito en mayor o menor medida responsabilidades y relaciones que ésta tiene
con otras clases.
dicho cambio sólo afecte a dicha clase por una El grado de acoplamiento indica lo
razón. vinculadas que están unas clases con otras, es
decir, lo que afecta un cambio en una clase a
las demás y por tanto lo dependientes que son
unas clases de otras.
O > OCP > Open / Closed Principle: El patrón controlador es un patrón que sirve
Cambia el comportamiento de una clase como intermediario entre una determinada
mediante herencia, polimorfismo y interfaz y el algoritmo que la implementa, de
composición. tal forma que es el controlador quien recibe
los datos del usuario y quien los envía a las
distintas clases según el método llamado.
L > LSP > Liskov Substitution Principle: El patrón creador nos ayuda a identificar
Las sub clases deben comportarse quién debe ser el responsable de la creación o
adecuadamente cuando sean usadas en lugar instanciación de nuevos objetos o clases. Este
de sus clases base. patrón nos dice que la nueva instancia podrá
ser creada por una clase
I > ISP > Interface Segregation Principle: La responsabilidad de la creación de un objeto
Mantén las interfaces pequeñas y cohesivas, o la implementación de un método, debe
que puedan coexistirunas con otras. recaer sobre la clase que conoce toda la
información necesaria para crearlo o
ejecutarlo, de este modo obtendremos un
diseño con mayor cohesión y cuya
información se mantiene encapsulada, es
decir, disminuye el acoplamiento.
REFERENCIAS BIBLIOGRAFICAS
• Conceptos de diseño, Roger S. Pressman. 2010. Ingeniería del software. Un enfoque
práctico. México: McGraw-Hill. 7ed.
• Diseño, Sánchez, Salvador, Silicia, Miguel Ángel y Rodríguez, Daniel. 2011. Ingeniería
del Software. Un enfoque desde la guía del SWEBOK. México: Alfaomega.