Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Proceso de Diseño de Software

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 6

Corporación Universitaria Iberoamericana

Fundamentos De Ingeniería De Software


Julián Felipe Ávila Santa
Proceso De Diseño De Software

Bogotá D.C
11 Marzo 2021
Resumen:
El diseño de software inicialmente fue concebido como una filosofía donde la manera de
desarrollar software era casi tan literal como la manera de diseñar un edificio, donde este debía
tener tres puntos clave resistencia, funcionalidad, y belleza, cada punto totalmente necesario y
fundamentado con el propósito de generar en el usuario una experiencia de comodidad, y de alta
calidad del sistema. Esto se logra con la diversificación y convergencia de la información, la
divergencia nos permite desacoplar una unidad de información en tantas partes como sea posible
para tener un claro y total entendimiento del sistema, y la convergencia nos permite desarrollar la
comunicación y el acoplamiento de esa información aislada, dentro de un sistema de información.
El diseño de un software empieza con el desarrollo del análisis y modelado de requerimientos,
estos dan pie al diseño de arquitecturas, clases, datos, interfases y de componentes. Estos
componentes nos permiten desarrollar un excelente diseño de una aplicación, a partir de un
excelente diseño, lograremos brindar calidad al usuario, puesto que la calidad de un software ira
totalmente ligada y dependiente al diseño que se sometió este, un mal diseño de un producto puede
traer consecuencias catastróficas, tales como, inestabilidad, que después de recibir un pequeño
cambio falle todo el producto, difícil de testear (probar) y no poder brindar un mantenimiento de
este, rápido y eficaz, convirtiéndolo en un producto difícil y costoso de mantener.

El diseño de software siempre será iterativo eso quiere decir que la mayor parte del tiempo estará
en ejecución un nuevo diseño, sea para el levantamiento de todo un sistema de información o para
nuevos requerimientos solicitados después del cumplimiento de la totalidad del proyecto previsto,
o durante el desarrollo del producto pueden aparecer nuevos requerimientos, por lo cual es por esto
que el diseño siempre se verá inmerso en el desarrollo de una aplicación, y precisamente por eso
se debe contar con un diseño capaz de ser fácil de adaptarse a nuevos requerimientos en cualquier
punto del desarrollo. Como anteriormente lo habíamos indicado la calidad del producto se ve
reflejada por su alto nivel de diseño, y su alto nivel de diseño permite que el producto sea escalable,
y la manera de lograr esto es siguiendo lineamientos tales como: una arquitectura con estilo y
patrones arquitectónicos reconocibles, compuesta por buenas características de diseño, y permiten
una implementación evolutiva, el software debe estar dividido en elementos o subsistemas,
distintas representaciones de datos (arquitectura, interfaces, componentes), estructuras de datos
apropiadas para las clases que se van a implementar, desarrollo de componentes que tengan
funcionalidades independientes, interfaces que permitan una fácil conexión entre componentes y
deberá representarse como una notación que represente claramente su significado, cada uno de los
lineamientos se producirá mediante el desarrollo de tres pilares, los principios de los diseños
fundamentales, el desarrollo de una metodología sistemática, y con revisión periódica.

El objetivo de todo diseño de software es alcanzar y representar de manera efectiva los atributos
impuestos por Hewlett Packard, los cuales se les denomino atributos FURPS siglas las cuales
representan funcionalidad, usabilidad, confiabilidad, rendimiento y mantenibilidad. Estos atributos
del diseño de software se pueden contrastar con los conceptos fundamentales del diseño ya que
ambos se encargan de encaminar al producto final, en la dirección del funcionamiento totalmente
adecuado y correcto, evitando conducirlo por el camino mediocre del esta bien mientras que
“funciona”, porque una cosa es que el sistema simplemente funcione, y otra muy diferente es que
este tenga estándares de calidad tan altos que no se limite al simple funcionamiento, sino que opte
por brindar un excelente recurso donde el comportamiento de este es excepcional en cada parte que
lo compone. Los conceptos fundamentales para el desarrollo de software con altos estándares de
calidad son los siguiente: abstracción, arquitectura, patrones, división de problemas, modularidad,
ocultamiento de información, independencia funcional, refinamiento, aspecto, rediseño, conceptos
de diseño orientados a objetos, y clases de diseños, cada uno de estos son conceptos sumamente
importantes e imprescindibles dentro del diseño, dado que permiten abordar cualquier tipo de
requerimiento con suma facilidad, esto porque nos permite incluir cosas como la modularidad,
cohesión de datos, acoplamiento débil, manejo de su requerimientos en un sub modulo especifico,
refinamiento de diseños, entre otros tipos de facilidades que abren ante nosotros, claro, todo esto
mientras sepamos desarrollar cada concepto adecuadamente.

Por último, el modelo de diseño es otra herramienta necesaria para la construcción y el desarrollo
efectivo del software, dado que este nos ayuda a generar diagramas, como su propio nombre lo
dice modelar, es decir diagramar, plasmar en diagramas ideas o conceptos del proyecto, esto con
la finalidad de lograr aterrizar las ideas y poderlas compartir de una manera más representativa y
adecuada. Estos modelos se pueden desarrollar gracias a un nivel de abstracción de datos elevado.
Como bien se sabe cada modelo será refinado en forma progresiva según avance el diseño del
producto. Existen diferentes elementos del diseño de estos modelos a tener en cuenta, como lo son:
elementos del diseño de datos, elementos del diseño arquitectónico, elementos del diseño de
la interfaz, elementos de diseño en el nivel de los componentes, y elementos del diseño de
despliegue, cada uno de estos modelos desarrollados para poder representar de manera más
detallada, como funcionara el producto desde diferentes ambientes o puntos de vista, eso quiere
decir que cada elemento me da un panorama totalmente claro de algo en específico. Los elementos
de diseño de datos me enseñan como se suministrarán y manipularan los datos dentro de una base
de datos, y como existirá una cohesión entre ellos. Los elementos del diseño arquitectónico nos
dan una visión más general del software. Los elementos del diseño de la interfaz nos permiten ver
como funcionara la interfaz del usuario, y como estará compuesta para que el usuario externo
realice la manipulación de datos e inserción de los mismos. Los elementos de diseño en el nivel de
los componentes me permitirán identificar como está diseñado cada componente, definiendo la
estructura interna de cada uno de estos. Y por último el diseño de despliegue me permite ver la
forma en la que funcionara el software y sus diferentes subsistemas dentro del ambiente físico de
la computadora.
A continuación, observaremos un cuadro comparativo entre los patrones GRASP y los
principios SOLID:
Bibliografías:

Guillermo Pantaleo. (2015). Ingeniería del software (Primera edición). Alfaomega.

Martín, M. J. (2018, 22 noviembre). SOLID. https://profile.es/blog/principios-solid-desarrollo-

software-calidad/. https://profile.es/blog/principios-solid-desarrollo-software-calidad/

Patrones básicos de Asignación de responsabilidades. (s. f.). https://rcasalla.gitbooks.io/libro-

desarrollo-de-software/content/libro/temas/t_disenio/di_grasp.html

Pressman, R. S. (2010). Ingeniería del software: un enfoque práctico (Séptima Edición).

McGraw-Hill Education.

También podría gustarte