Introducción al proceso de Diseño de Software | conjunto 2

El diseño de software es el proceso para transformar los requisitos del usuario en una forma adecuada, lo que ayuda al programador en la codificación e implementación del software. Durante la fase de diseño del software, se produce el documento de diseño, en función de los requisitos del cliente documentados en el documento SRS. Por lo tanto, el objetivo de esta fase es transformar el documento SRS en el documento de diseño. 

Los siguientes elementos se diseñan y documentan durante la fase de diseño: 
 

  • Se requieren diferentes módulos.
  • Relaciones de control entre módulos.
  • Interfaz entre diferentes módulos.
  • Estructura de datos entre los diferentes módulos.
  • Algoritmos necesarios para implementar entre los módulos individuales.

Objetivos del Diseño de Software: 
 

  1. Corrección: 
    Un buen diseño debe ser correcto, es decir, debe implementar correctamente todas las funcionalidades del sistema.
  2. Eficiencia: 
    un buen diseño de software debe abordar los problemas de optimización de recursos, tiempo y costos.
  3. Comprensibilidad: 
    Un buen diseño debe ser fácilmente comprensible, para lo cual debe ser modular y todos los módulos dispuestos en capas.
  4. Completitud: 
    el diseño debe tener todos los componentes, como estructuras de datos, módulos e interfaces externas, etc.
  5. Mantenibilidad: 
    un buen diseño de software debe ser fácil de cambiar cada vez que se realiza una solicitud de cambio desde el lado del cliente.

Conceptos de diseño de software: 
los conceptos se definen como una idea o invención principal que viene a nuestra mente o pensamiento para comprender algo. El concepto de diseño de software simplemente significa la idea o principio detrás del diseño. Describe cómo planea resolver el problema del diseño de software, la lógica o el pensamiento detrás de cómo diseñará el software. Permite al ingeniero de software crear el modelo del sistema, software o producto que se va a desarrollar o construir. El concepto de diseño de software proporciona una estructura o modelo esencial y de apoyo para desarrollar el software correcto. Hay muchos conceptos de diseño de software y algunos de ellos se dan a continuación: 
 

Los siguientes puntos deben tenerse en cuenta al diseñar el software: 
 

  1. Abstracción: ocultar datos irrelevantes 
    La abstracción simplemente significa ocultar los detalles para reducir la complejidad y aumentar la eficiencia o la calidad. Se necesitan diferentes niveles de abstracción y deben aplicarse en cada etapa del proceso de diseño para que cualquier error que esté presente pueda eliminarse para aumentar la eficiencia de la solución de software y refinar la solución de software. La solución debe describirse de manera amplia que cubra una amplia gama de cosas diferentes en un nivel superior de abstracción y debe proporcionarse una descripción más detallada de una solución de software en el nivel inferior de abstracción.
  2. Modularidad- subdividir el sistema 
    La modularidad simplemente significa dividir el sistema o proyecto en partes más pequeñas para reducir la complejidad del sistema o proyecto. De la misma manera, la modularidad en el diseño significa subdividir un sistema en partes más pequeñas para que estas partes puedan crearse de forma independiente y luego usarlas en diferentes sistemas para realizar diferentes funciones. Es necesario dividir el software en componentes conocidos como módulos porque hoy en día hay diferentes software disponibles, como el software monolítico, que es difícil de comprender para los ingenieros de software. Entonces, la modularidad en el diseño ahora se ha convertido en una tendencia y también es importante. Si el sistema contiene menos componentes, significaría que el sistema es complejo y requiere mucho esfuerzo (costo), pero si podemos dividir el sistema en componentes, el costo sería pequeño.
  3. Arquitectura: diseñar una estructura de algo 
    Arquitectura simplemente significa una técnica para diseñar una estructura de algo. La arquitectura en el diseño de software es un concepto que se centra en varios elementos y los datos de la estructura. Estos componentes interactúan entre sí y utilizan los datos de la estructura en la arquitectura.
  4. Refinamiento: elimina las impurezas 
    El refinamiento simplemente significa refinar algo para eliminar las impurezas si están presentes y aumentar la calidad. El concepto de refinamiento del diseño de software es en realidad un proceso de desarrollo o presentación del software o sistema de manera detallada que significa elaborar un sistema o software. El refinamiento es muy necesario para descubrir cualquier error si está presente y luego reducirlo.
  5. Patrón: una forma repetida 
    El patrón simplemente significa una forma o diseño repetido en el que la misma forma se repite varias veces para formar un patrón. El patrón en el proceso de diseño significa la repetición de una solución a un problema recurrente común dentro de un contexto determinado.
  6. Ocultar información: ocultar la información 
    Ocultar información simplemente significa ocultar la información para que nadie no deseado pueda acceder a ella. En el diseño de software, la ocultación de la información se logra mediante el diseño de los módulos de manera que la información recopilada o contenida en un módulo esté oculta y ningún otro módulo pueda acceder a ella.
  7. Refactorización: reconstruir algo 
    Refactorizar simplemente significa reconstruir algo de tal manera que no afecte el comportamiento de ninguna otra característica. La refactorización en el diseño de software significa reconstruir el diseño para reducir la complejidad y simplificarlo sin afectar el comportamiento o sus funciones. Fowler ha definido la refactorización como “el proceso de cambiar un sistema de software de manera que no afecte el comportamiento del diseño y mejore la estructura interna”.

Diferentes niveles de diseño de software: 
hay tres niveles diferentes de diseño de software. Están: 
 

  1. Diseño arquitectónico: 
    la arquitectura de un sistema puede verse como la estructura general del sistema y la forma en que la estructura proporciona la integridad conceptual del sistema. El diseño arquitectónico identifica el software como un sistema con muchos componentes que interactúan entre sí. En este nivel, los diseñadores obtienen la idea del dominio de la solución propuesta. 
     
  2. Diseño preliminar o de alto nivel: 
    aquí el problema se descompone en un conjunto de módulos, se identifica la relación de control entre varios módulos y también se identifican las interfaces entre varios módulos. El resultado de esta etapa se denomina arquitectura del programa. Las técnicas de representación del diseño utilizadas en esta etapa son el diagrama de estructura y UML. 
     
  3. Diseño detallado: 
    una vez que se completa el diseño de alto nivel, se lleva a cabo un diseño detallado. En el diseño detallado, cada módulo se examina cuidadosamente para diseñar la estructura de datos y los algoritmos. El resultado de la etapa se documenta en forma de un documento de especificación del módulo. 
     

Publicación traducida automáticamente

Artículo escrito por sanjoy_62 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *