Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Descripción breve
Este material ha sido compilado con fines exclusivamente didácticos
El análisis da como resultado el modelo de requerimientos, el cual está conformado por los siguientes
productos:
El modelo de análisis describe el sistema por completo desde el punto de vista de los actores y sirve
como la base de comunicación entre el cliente y los desarrolladores. Sin embargo, el modelo de análisis
no contiene información acerca de la estructura interna del sistema, su configuración de hardware o,
en términos más generales, la manera en que se debe realizar el sistema.
El diseño de software es la actividad del ciclo de vida de ingeniería de software en la que se analizan
los requisitos de software para producir una descripción de la estructura interna del software que servirá
de base para su construcción: como se expresa en la Fig.1. Un diseño de software (el resultado) describe
la arquitectura del software, es decir, cómo se descompone y organiza el software en componentes, y
las interfaces entre esos componentes. También debe describir los componentes con un nivel de detalle
que permita su construcción.
Fig.1 Transformación del modelo de análisis al modelo de diseño (Pressman & Maxim, 2015)
Una lista de objetivos de diseño que describe las cualidades del sistema que deben optimizar
los desarrolladores. Los objetivos de diseño se derivan de los requerimientos no funcionales.
Una arquitectura de software que describe la descomposición en subsistemas desde el punto
de vista de responsabilidades del subsistema, dependencias entre subsistemas,
correspondencia de los subsistemas con el hardware y decisiones de política principales, como
el flujo de control, control de acceso y almacenamiento de datos.
2. Conceptos de diseño
Sin importar el método de diseño que se utilice, debe aplicarse un conjunto de conceptos básicos al
diseño en el nivel de datos, arquitectura, interfaz y componentes. La descomposición en subsistemas
constituye la mayor parte del diseño del sistema. Los desarrolladores dividen el sistema en partes
manejables para tratar la complejidad: cada subsistema se asigna a un equipo y se realiza en forma
independiente. Sin embargo, para que esto sea posible, los desarrolladores necesitan enfrentar los
siguientes asuntos:
El primer paso del diseño es el diseño arquitectónico, también denominado diseño de alto nivel
o diseño de nivel superior, describe cómo se organiza el software en componentes. Su
resultado se conoce como arquitectura del software. La arquitectura del software es la
descripción de los elementos que lo forman y de las interrelaciones entre ellos. Representa el
enlace entre la especificación de requisitos y el diseño. Puede llevarse a cabo en paralelo con
actividades de especificación de requisitos. Implica un esfuerzo creativo, de forma que las
actividades a realizar pueden cambiar según la naturaleza del sistema a desarrollar.
El segundo paso corresponde al diseño detallado, en este paso se refina y expande el diseño
preliminar de un sistema o componente en la medida en que el diseño sea lo suficientemente
completo para permitir la codificación y las pruebas. Para el efecto se realizan las siguientes
actividades:
o se desarrolla un diseño detallado de cada componente de software, que describe
las unidades de software que se construirán;
o se definen las interfaces externas de cada unidad de software; y
o se establece la coherencia y la trazabilidad entre el diseño detallado y los requisitos
y el diseño arquitectónico.
4.1 Abstracción
La abstracción es "una vista de un objeto que se enfoca en la información relevante para un propósito
particular e ignora el resto de la información" [1] (ver Abstracción en el KA de Fundamentos de
Computación). En el contexto del diseño de software, dos mecanismos de abstracción clave son la
parametrización y la especificación. La abstracción por parametrización se extrae de los detalles de las
representaciones de datos al representar los datos como parámetros con nombre. La abstracción por
especificación conduce a tres tipos principales de abstracción: abstracción de procedimiento,
abstracción de datos y abstracción de control (iteración).
Lograr la suficiencia y la integridad significa garantizar que un componente de software capture todas
las características importantes de una abstracción y nada más. El carácter primitivo significa que el
diseño debe basarse en patrones que sean fáciles de implementar.
Diagramas de actividad: se utiliza para mostrar el flujo de control de una actividad a. Se puede
usar para representar actividades concurrentes.
Diagramas de comunicación: se usan para mostrar las interacciones que ocurren entre un
grupo de objetos; se hace hincapié en los objetos, sus enlaces, y los mensajes que
intercambian en estos enlaces.
Diagramas de flujo de datos (DFD): se utilizan para mostrar el flujo de datos entre elementos.
Un diagrama de flujo de datos proporciona “una descripción basada en el modelado de la
circulación de información alrededor de una red de elementos operativos, con cada elemento
haciendo uso de o la modificación de la información que fluye en ese elemento. Los flujos de
datos (y, por lo tanto, los diagramas de flujo de datos) se pueden utilizar para el análisis de
5. Referencias
Bruegge, B., & Dutoit, A. (2010). Ingeniería de Software Orientada a Objetos. México:
Pearson Educación.
IEEE Computer Society. (2008). Systems and software engineering — Software life
cycle processes. Génova: IEEE.