Anda di halaman 1dari 10

[ Project ]

Software Design Specification

Versión X

abril 15, 2008

[ Nombre de Equipo]

[ Logo ]
[Logo] [ Project ] – Especificación del Diseño de Software

Los párrafos escritos en el estilo de “Comentario” son una guía para quien escriba el
documento y deben removerse antes de entregarlo

Esta plantilla sirve como base para la Especificación del Diseño de Software.
Los diseños para sistemas de software deben ser personalizados a las necesidades del
proyecto. Esta plantilla solamente es un punto de inicio; la mayoría de los proyectos no
deben limitar su diseño de sistema a un documento único. Lo hacemos aquí por
conveniencia, para mostrar las generalidades de la información de diseño que los proyectos
deben incluir.
Así, aunque está organizado como un único documento, el material aquí expuesto se
empaquetaría en múltiples documentos dependiendo de las necesidades de cada proyecto.
Por lo tanto, esta plantilla ofrece un punto de inicio que servirá para muchas situaciones,
puesto que captura la información de diseño fundamental para producir un buen diseño y
para documentar las decisiones de diseño para uso futuro.

Page i
[Logo] [ Project ] – Especificación del Diseño de Software

Contenidos

CONTENIDOS....................................................................................................................II

1 INTRODUCCIÓN...............................................................................................................1
1.1 ANTECEDENTES............................................................................................................1
1.2 MAPA DE DISEÑO.........................................................................................................1
1.3 MATERIALES DE SOPORTE..............................................................................................1
1.4 DEFINICIONES Y ACRÓNIMOS..........................................................................................1

2 CONSIDERACIONES DE DISEÑO.........................................................................................2
2.1 SUPOSICIONES..............................................................................................................2
2.2 LIMITANTES.................................................................................................................2
2.3 AMBIENTE DEL SISTEMA................................................................................................2
2.4 METODOLOGÍA DE DISEÑO.............................................................................................2
2.5 RIESGOS......................................................................................................................2

3 ARQUITECTURA..............................................................................................................3
3.1 ANTECEDENTES............................................................................................................3
3.2 JUSTIFICACIÓN..............................................................................................................3
3.3 DETALLES DE COMPONENTES..........................................................................................3

4 DISEÑO DE ALTO NIVEL.................................................................................................4


4.1 VISTA CONCEPTUAL ....................................................................................................4

5 DISEÑO DE BAJO NIVEL .................................................................................................5


5.1 MÓDULO 1..N..............................................................................................................5

6 DISEÑO DE INTERFAZ DE USUARIO...................................................................................6


6.1 CONTROL DE LA APLICACIÓN.........................................................................................6
6.2 PANTALLA 1..N............................................................................................................6

7 MODELO DE IMPLEMENTACIÓN .......................................................................................7


7.1 MÓDULO 1..N..............................................................................................................7

Page ii
[Logo] [ Project ] – Especificación del Diseño de Software

1 Introducción
Este espacio puede usarse para ofrecer una introducción al diseño y para ligar a otros
materiales del proyecto.

1.1 Antecedentes
Descripción breve de alto nivel de la estructura, funcionalidad e interacciones del sistema
con sistemas externos, etc. Si se escribió correctamente esta parte en el documento de plan
de proyecto y el documento de requerimientos, se puede copiar aquí.

1.2 Mapa de Diseño


Resume la información contenida en este documento o en los artefactos de diseño
relacionados. Define todos los artefactos principales de diseño y/o las secciones de este
documento y si es apropiado, ofrece un resumen breve de cada uno. Para ADOO este es el
único documento de diseño que se te solicita producir.

1.3 Materiales de soporte


(Opcional) – Anota cualquier referencia o material relacionado aquí. Por ejemplo, si este
diseño requiere una interfaz con dispositivos de hardware del tipo X, entonces necesitas
hacer una referencia a la especificación del hardware X.

1.4 Definiciones y Acrónimos


(Opcional) –Lista cualquier definición del proyecto y acrónimo introducido al proyecto por
este diseño.

Page 1
[Logo] [ Project ] – Especificación del Diseño de Software

2 Consideraciones de Diseño
Esta sección describe cuestiones que necesitan ser resueltas antes o durante la terminación
del diseño así como cuestiones que pueden influir el proceso de diseño.

2.1 Suposiciones
Describe cualquier suposición, antecedente o dependencia del software, su uso, el ambiente
operativo o cualquier otra cuestión significativa. Estas son las cosas que supones verdaderas
y que afectan directamente el diseño

2.2 Limitantes
Describe cualquier limitante sobre el sistema que tenga impacto significativo sobre el diseño
del sistema (limitantes de tecnología, requerimientos de ejecución, características de usuario
final, validación de requerimientos, limitantes del proyecto, etc.). Anota las cosas que el
cliente te dijo que afectan directamente el diseño (la base de datos debe estar hecha en un
DBMS open source…)

2.3 Ambiente del Sistema


Describe el hardware y software en el que el sistema debe operar y con el que tiene que
operar.

2.4 Metodología de Diseño


(Opcional) –Resume el enfoque que usarás para crear y evolucionar los diseños de este
sistema. Cubre cualquier proceso, convención, política, técnica u otras cuestiones que guíen
el trabajo de diseño. Se espera que uses una técnica orientada a objetos con UML.

2.5 Riesgos
(Opcional) - Describe cualquier riesgo notable del sistema y no las estrategias tomadas para
mitigar riesgos o preparar cambios. Hazlo específico para el diseño, no para la
administración del proyecto. Por ejemplo, si hay un algoritmo especialmente difícil que se
tiene que implementar.

Page 2
[Logo] [ Project ] – Especificación del Diseño de Software

3 Arquitectura
La arquitectura muestra la vista de diseño de nivel superior de un sistema, y es la base para
el trabajo más detallado. Aquí se muestran los componentes de más alto nivel del sistema
que estás construyendo y sus relaciones

3.1 Antecedentes
Esta sección revisa de manera general la descomposición funcional y estructural del sistema.
Enfócate en cómo y por qué el sistema se ha descompuesto de esta manera más que en los
detalles de componentes particulares. Incluye información de las responsabilidades y roles
principales del sistema.

3.2 Justificación
Esta sección discute por qué estás usando esa arquitectura en particular.

3.3 Detalles de componentes


(Opcional) Si tu equipo no necesita la sección 4, incluye un resumen de la operación de cada
componente principal y cómo interactúa con otros elementos de la arquitectura.

Page 3
[Logo] [ Project ] – Especificación del Diseño de Software

4 Diseño de Alto Nivel


Esta sección describe en detalle los elementos discutidos en la Arquitectura. Normalmente
esta sección se dividiría en documentos separados para diferentes áreas del diseño. Para
ADOO usamos este único documento.
Los diseños de alto nivel son más efectivos si tratan de modelar grupos de elementos de
sistema desde diferentes vistas. Los puntos de vista típicos son:
a. Conceptual o Lógica: esta es la vista más usada en la Sección 3. Esta vista muestra
los elementos funcionales lógicos del sistema. Cada componente representa una
funcionalidad similar. Para UML, este sería un diagrama de componentes o de
paquetes.
b. Proceso: esta vista es la vista en tiempo de ejecución del sistema. Los componentes
son hilos o procesos o aplicaciones distribuidas. En UML, sería un diagrama de
interacción de procesos.
c. Física: esta vista es para sistemas distribuidos. Los componentes son procesadores
físicos que tienen partes del sistema ejecutándose en ellos. Para UML, este sería un
diagrama de despliegue (deployment diagram)
d. Módulo: esta vista es para la administración del proyecto y la organización del
código. Los componentes son típicamente archivos o directorios que muestran cómo
serán diseñados la estructura de de directorios y el ambiente de desarrollo
e. Seguridad: esta vista se enfoca sobre los componentes que cooperan para ofrecer
características de seguridad en el sistema. Con frecuencia es un subconjunto de la
vista Conceptual.

Para ADOO, no es necesario documentar todas estas vistas. Para muchas aplicaciones
pequeñas, la vista conceptual es suficiente. Documentar estas vistas te ayudará a diseñar e
implementar el sistema. Si tienes una sola vista, y esa vista se discute adecuadamente en la
sección 3, entonces esta sección puede ser borrada completamente.

4.1 Vista Conceptual


Ofrece una descripción y diagramas de un elemento o conjunto de elementos del sistema que
describa una vista o modelo claramente definido del sistema entero o de un subconjunto del
sistema

Page 4
[Logo] [ Project ] – Especificación del Diseño de Software

5 Diseño de Bajo Nivel


Esta sección ofrece descripciones de bajo nivel que soportan directamente la construcción
de módulos. Normalmente esta sección se dividiría en documentos separados para diferentes
áreas del diseño. Para cada componente necesitamos descomponerlo en sus módulos o
unidades fundamentales. Para una implementación en Java, nuestros componentes serían
paquetes. Luego el diseño de bajo nivel tomaría cada paquete y lo descompondría en sus
clases. Para sistemas más pequeños, puedes tener un diagrama de clases único en UML al
que cada descripción de módulo haga referencia.

5.1 Módulo 1..n


Ofrecer o referenciar descripciones detalladas o diagramas de este módulo de software.
Para cada paquete en la Vista Conceptual (4.1 o 3) deberíamos desarrollar un diagrama de
clases en UML que represente la estructura estática de la clase. También deberíamos incluir
diagramas de interacción para mostrar la interacción dinámica entre clases. Para
documentar esta sección es importante señalar qué patrones de diseño se aplicaron para la
asignación de responsabilidades.

Page 5
[Logo] [ Project ] – Especificación del Diseño de Software

6 Diseño de Interfaz de Usuario


Esta sección ofrece descripciones de la interfaz de usuario que directamente apoyan la
construcción de pantallas de interfaz de usuario.

6.1 Control de la Aplicación


Detalla el comportamiento común que todas las pantallas tendrán. Los detalles comunes
como menus, menus popup, toolbars, status bar, barras de título, comportamiento drag and
drop del mouse, etc., deben describirse aquí.

6.2 Pantalla 1..n


Ilustra todas las pantallas de usuario principales y describe el comportamiento y los cambios
de estado que el usuario experimentará.
Un diagrama o tabla de transición de pantallas puede crearse de manera opcional para
ilustrar el flujo de control a través de varias pantallas.
No necesariamente tienen que ser capturas de pantalla reales, dado que en realidad no se ha
implementado la aplicación. Pueden ser dibujos de powerpoint o pantallas creadas en Visual
Basic o en alguna otra herramienta de creación rápida de GUI’s.

Page 6
[Logo] [ Project ] – Especificación del Diseño de Software

7 Modelo de Implementación
Esta sección ofrece descripciones de los artefactos de implementación como el código fuente,
las definiciones de bases de datos, las páginas JSP/XML/HTML, etc.
La implementación en un lenguaje orientado a objetos requiere la escritura de código fuente
para las definiciones de clases e interfaces y las definiciones de los métodos. Estas
definiciones serán descritas en las siguientes secciones, módulo a módulo.

7.1 Módulo 1..n


Ofrecer o referenciar descripciones detalladas del modelo de implementación para cada
paquete en la Vista Conceptual (4.1 o 3) que represente la derivación de los diagramas de
clases de del diseño y los diagramas de interacción de la secciones 5 y 6 al lenguaje de
programación que se ha decidido utilizar para la implementación.

Page 7

Anda mungkin juga menyukai