Diseño de Software: Fundamentos, Proceso y Conceptos Clave en Ingeniería

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,63 KB

El Diseño en la Ingeniería de Software: Conceptos Fundamentales

¿Qué es el Diseño?

El diseño es el primer paso en la fase de desarrollo de cualquier producto o sistema de ingeniería. Se define como el proceso de aplicar distintas técnicas y principios con el propósito de definir un dispositivo, proceso o sistema con los suficientes detalles como para permitir su realización física.

Importancia del Diseño en el Desarrollo de Software

El diseño es, técnicamente, la parte central de la ingeniería del software. Sin un diseño adecuado, se corre el riesgo de construir un sistema inestable, propenso a fallar ante pequeños cambios, difícil de probar y cuya calidad no pueda ser evaluada de manera efectiva.

El Proceso de Diseño de Software

El diseño del software es un proceso mediante el cual se traducen los requisitos en una representación del software que se acerca mucho al código fuente.

Etapas del Diseño de Software

  • Diseño Preliminar: Se centra en la transformación de los requisitos en los datos y la arquitectura del software.
  • Diseño Detallado: Se ocupa del refinamiento y de la representación arquitectónica, lo que conduce a una estructura de datos refinada y a las representaciones algorítmicas del software.

Conceptos Clave en el Diseño de Software

Revisión Técnica Formal (RTF)

Las Revisiones Técnicas Formales (RTF) son una actividad de garantía del software cuyos objetivos son: descubrir errores, verificar el software, garantizar su calidad y hacer que los proyectos sean manejables.

Abstracciones en el Diseño

  • Abstracción de Datos: Es un conjunto de datos que describen un objeto, compuesto por un conjunto de partes de información.
  • Abstracción Procedimental: Es una secuencia determinada de instrucciones que tienen una función limitada y específica.

Refinamiento Sucesivo

El refinamiento sucesivo es una estrategia de diseño descendente propuesta por Niklaus Wirth. Se refiere a los detalles de procesamiento, donde la arquitectura de un programa se desarrolla en niveles sucesivos de refinamiento de los detalles procedimentales.

Modularidad

La modularidad se refiere a la descomposición de un programa en partes para mantenerlo y desarrollarlo más eficientemente. El software se divide en componentes con nombres y ubicaciones determinados, que se denominan módulos o unidades de software y que se integran para satisfacer los requisitos del usuario o proveedor.

Arquitectura del Software

La arquitectura del software se refiere a dos características importantes del software:

  • La estructura jerárquica de los componentes procedimentales (módulos o unidades de software).
  • La estructura de los datos, que se obtiene del análisis del problema efectuado anteriormente.

Jerarquía de Control

También conocida como estructura del programa, representa la organización jerárquica de los módulos de un programa e implica una jerarquía de control.

Estructura de Datos

La estructura de datos es una representación de la lógica que existe entre los elementos individuales de información.

Tipos de Módulos

Módulos secuenciales, módulo incremental, módulos paralelos.

Independencia Funcional

La independencia funcional es una derivación directa de la modularidad, de la abstracción y del ocultamiento de información.

Cohesión

La cohesión es una extensión del concepto de ocultamiento de información.

Acoplamiento

El acoplamiento es una medida de la interconexión entre los módulos de una estructura de programa.

Actividades de Diseño en Ingeniería de Software

El diseño de software implica varias actividades clave:

  • Diseño de Datos: Es la primera de las tres actividades de diseño realizadas durante la ingeniería del software.
  • Diseño Arquitectónico: Su objetivo principal es desarrollar una estructura de programa modular y representar las relaciones de control entre los módulos.
  • Diseño Procedimental: Se realiza después de que se ha establecido la estructura del programa y de los datos.

Lenguaje de Diseño de Programas (LDP)

Un Lenguaje de Diseño de Programas (LDP), también conocido como lenguaje estructurado o pseudocódigo, es un lenguaje que utiliza el vocabulario de un lenguaje natural y la sintaxis de otro (generalmente un lenguaje de programación).

Entradas relacionadas: