SDD

Anuncio
2014
SDD
1
Stephanie
Buitrago
24/03/2014
SDD
TABLA DE CONTENIDO
LISTA DE FIGURAS ............................................................................................... 2
LISTA DE TABLAS ................................................................................................. 3
1. INTRODUCCIÓN ................................................................................................. 4
1.1
DESCRIPCIÓN DEL SISTEMA .............................................................. 4
1.2
DEFINICIONES, ACRÓNIMOS, Y ABREVIACIONES ....................... 4
1.3
REFERENCIAS ........................................................................................ 4
2. CONSIDERACIONES DE DISEÑO ................................................................ 4
2.1
SUPOSICIONES ....................................................................................... 4
2.2
RESTRICCIONES .................................................................................... 4
2.3
ENTORNO DEL SISTEMA ..................................................................... 4
3. METODOLOGIA DE DISEÑO........................................................................ 4
3.1
DISEÑO DEL SISTEMA.......................................................................... 5
3.1.1 Objetivos de diseño ............................................................................... 5
3.1.2 Identificación de subsistemas. ............................................................... 6
3.1.3 Aplicación de los principios de diseño .................................................. 6
3.2
IMPLEMENTACIÓN Y PRUEBAS ........................................................ 8
4. ARQUITECTURA ............................................................................................ 9
4.1
APRECIACIÓN GLOBAL ....................................................................... 9
4.2
MODELO DE DATOS ............................................................................. 9
4.3
DIAGRAMA DE CLASES ..................................................................... 10
4.4
ESTRATEGIAS DE DISEÑO ................................................................ 11
5. DISEÑO ALTO NIVEL .................................................................................. 13
5.1
DIAGRAMA DE DESPLIEGUE............................................................ 13
6. DISEÑO INTERFACES DE USUARIO ........................................................ 14
7. ANEXOS ......................................................................................................... 21
7.1
Referencias .............................................................................................. 21
7.2
Requerimientos ........................................................................................ 22
LISTA DE FIGURAS
Ilustración 1: Criterios para el Diseño[123] .............................................................. 5
Ilustración 2: Subsistemas ......................................................................................... 6
Ilustración 3: Principios del Diseño[122] .................................................................. 7
Ilustración 4: Bajo Acoplamiento[124] ..................................................................... 8
Ilustración 5: Diagrama de Clases ........................................................................... 11
Ilustración 6: Patrón de diseño[150]........................................................................ 12
Ilustración 7: Diagrama Despliegue [151] .............................................................. 13
Ilustración 8: Mapa de Navegación ......................................................................... 21
2
SDD
LISTA DE TABLAS
Tabla 1: Niveles de Prueba ........................................................................................ 9
3
SDD
1. INTRODUCCIÓN
El propósito de este documento es formalizar el diseño y las herramientas de diseño
que se utilizarán para el desarrollo de la aplicación propuesta por la alumna
Stephanie Buitrago para su trabajo de grado.
1.1 DESCRIPCIÓN DEL SISTEMA
Dresser es una aplicación
1.2 DEFINICIONES, ACRÓNIMOS, Y ABREVIACIONES
Ver Anexo Definiciones y Acrónimos
1.3 REFERENCIAS
Ver Anexo Referencias
2. CONSIDERACIONES DE DISEÑO
Este documento se encarga de brindar una descripción completa sobre la
funcionalidad del software y la expectativa sobre el producto por parte del
desarrollador y de los clientes. Igualmente, este es un documento de soporte para
los desarrolladores, en caso de que se vaya a continuar con el proyecto en otro
periodo academico.
2.1 SUPOSICIONES
Este producto será una aplicación independiente, que responderá con los requisitos
propuestos y tendrá un diseño modular para gestionar el proceso de
implementación.
2.2 RESTRICCIONES
Durante el transcurso de la realización de este documento, se ha estado
especificando todas las funciones del producto en la documentación de los casos de
uso (Ver anexo Casos de Uso.docx).
2.3 ENTORNO DEL SISTEMA
Las características del usuario se encuentran definidas dentro del Documento Casos
de Uso (Ver anexo Casos de Uso).
3. METODOLOGIA DE DISEÑO
La ingeniería de requerimientos de software consiste en descubrir qué
funcionalidad se tiene que crear para desarrollar las características del juego. El
diseño de software consiste en la planificación de cómo construir el sistema de
software de acuerdo con los requerimientos. El diseño de software implica
examinar todos los elementos del sistema para encontrar posibles formas de agrupar
los elementos según las relaciones que existan entre ellos.
4
SDD
En última instancia, esta actividad implica ciertos objetivos de diseño. Para
identificar los elementos y sus relaciones, se usaran reglas de diseño. Las reglas de
diseño comienzan con objetos y mensajes. Al reorganizar los elementos y refinar
las relaciones, aplicamos principios de diseño. Los principios de diseño ayudan a
identificar las colaboraciones de los objetos.
Por estas razones se ha decidido utilizar y aplicar unas modificaciones en los
métodos de diseño sugeridos por los autores Flynt & Salem y Bruegge[122][123].
3.1 DISEÑO DEL SISTEMA
La identificación de los requerimientos es necesario para el desarrollo del software,
se debe tener en cuenta el contexto en el que se pretende desarrollar la aplicación, la
población objetivo, y la meta que se quiere conseguir con la implementación del
proyecto. Además se deberá tener en cuenta el alcance definido, esto debido al
tiempo que toma el desarrollo vs el tiempo dado para desarrollar.
3.1.1
Objetivos de diseño
Los principales objetivos del diseño del sistema se pueden identificar a través de los
requerimientos del mismo, haciendo énfasis en los requerimientos no funcionales
(Ver Requerimientos del sistema). Esto se hace con el fin de poder generar un
producto de calidad que satisfaga todos los requerimientos y sus relaciones. Es por
esto que se han definido unos criterios para el diseño del sistema, estos se
encuentran descritos a continuación.
Costo
Usuario Final
Mantenibilidad
Ilustración 1: Criterios para el Diseño[123]
Como se muestra en la Ilustración 1, nuestros principales criterios de diseño son los
siguientes:
 Costo: Minimizar los costos del desarrollo del sistema, seguimiento
de los requerimientos a través de la trazabilidad, desarrollo rápido e
incremental.
5
SDD
 Mantenimiento: Minimizar el número de errores del sistema,
interfaces bien definidas, legibilidad del sistema.
 Usuario Final: La facilidad de usa para el usuario, robustez del
sistema, minimizar la tolerancia a los fallos.
La unificación de todos estos criterios de diseño permite generar una confiabilidad
del sistema para el usuario y para el cumplimiento de los requerimientos, además
también nos permite una portabilidad del sistema y una eficiencia del mismo [123].
3.1.2
Identificación de subsistemas.
Los subsistemas fueron previamente clasificados en el entregable anterior (Ver
SRS). Al hacer la clasificación de los requerimientos también se pudo concluir
como debería ser el manejo de los subsistemas en general. Estos son los tres
principales subsistemas del producto: Modelo, Vista y Controlador.
Ilustración 2: Subsistemas
Los subsistemas descritos en la ilustración 2, interactúan entre sí llevando la
información necesaria hasta el usuario final, el controlador es quien conoce la
lógica de negocio, el modelo es quien se comunica con la base de datos para
acceder a la información solicitada y la vista es la encargada de comunicarse con el
cliente para mostrar la información
3.1.3
Aplicación de los principios de diseño
Los principios de diseño nos ayudaran a dar una medida para perfeccionar las
relaciones que se desarrollan dentro y entre las componentes que conforman el
sistema de software. Además estos también nos darán a conocer cómo reformar el
sistema a través de mejoras incrementales. Se pueden utilizar estos principios para
ayudar a determinar cómo combinar, dividir, eliminar, y generalmente refinar los
elementos del sistema [122].
6
SDD
Buscar
Cohesión
Compartir
Recursos
Principios
de Diseño
Evitar
Acompla
-miento
Descomposicion
Ilustración 3: Principios del Diseño[122]
3.1.3.1 Buscar Cohesión
La cohesión se refiere a cómo podemos unir todas las dependencias de una manera
adecuada, es decir la cohesión mide la dependencia entre los componentes del
sistema. Es por esto que es deseable que en el sistema se descompongan los
componentes en subsistemas para asignar las responsabilidades adecuadas a cada
subsistema y a cada componente [122].
3.1.3.2 Evitar Acoplamiento
El acoplamiento se refiere al grado en el cual los elementos dependen unos de
otros. Cada elemento en un sistema, en cierta medida, depende de otros elementos
en el sistema. Por otra lado, cuando los elementos dependen demasiado unos de
otros, sus dependencias requieren que, cuando una parte del sistema debe ser
cambiado, muchas otras partes del sistema que tenga que ser cambiados también
[122].
7
SDD
8
Ilustración 4: Bajo Acoplamiento[124]
Es por esto que se busca que entre los subsistemas y componentes existan las
mínimas dependencias entre ellos.
3.1.3.3 Descomposición
La descomposición es un camino para lograr el acoplamiento y la cohesión. Se
puede descomponer una entidad dividiéndola en partes más pequeñas. Así pues
dividir un conjunto grande de funcionalidades en más pequeños separados por
subsistemas o componentes más pequeños reduciendo la complejidad. Se puede
observar en la Sección 3.1.2 la división que se realizó en el sistema en general para
lograr una bajo acoplamiento y alta cohesión [122].
3.1.3.4 Compartir recursos
Existen diferentes formas de ver los recursos. Compartirlos nos indica que hay
existen varias funcionalidades que necesitan de un mismo servicio. Los elementos
que proporcionan un determinado tipo de servicio se pueden agrupar en una clase o
componente. Por esto otros componentes pueden entonces recurrir a los servicios
que esta clase o componente ofrecen. Al aplicar esta colaboración se reduce la
complejidad [122].
3.1.3.5 Trazabilidad de requerimientos
En el entregable anterior se desarrollo y se describió como se realizaría la
trazabilidad de los requerimientos (ver SRS), esto es de gran ayuda para el SDD,
debido a que nos guiará en el desarrollo y planteamiento del diseño a partir de cada
una de las relaciones que se plantearon en la trazabilidad.
3.2 IMPLEMENTACIÓN Y PRUEBAS
La especificación de los requerimientos se realiza de la siguiente manera, según los
criterios definidos, basándose en la plantilla de “Requerimientos Templates Contrux[200]” con algunas modificaciones pertinentes que se adapten al desarrollo
del software.
SDD
Para lograr un análisis adecuado de todas las pruebas que se realizaran se
establecen los siguientes niveles de prueba.
Test
Unitaria
Objetivo
Personas
Descubrir errores de los
datos, lógica y algoritmos
Tester, equipo de
desarrollo y equipo de
pruebas
Tester
Funcionales
Descubrir errores de
implementación de
requerimientos
Tabla 1: Niveles de Prueba
4. ARQUITECTURA
Esta sección del documento contiene todos los requerimientos definidos para el
proyecto.
4.1 APRECIACIÓN GLOBAL
La arquitectura de la aplicación Dresser se desarrolló como una arquitectura
Modelo, Vista, Controlador, debido a que no existe un servidor o un cliente fijo, es
decir todos los nodos de la red establecida pueden ser clientes o servidores y se
comportan de igual manera, sin embarga hay que aclarar que existe una maquina
que es la anfitriona de una partida.
4.2 MODELO DE DATOS
A continuación se muestra el modelo entidad relación definido para la aplicación.
9
SDD
10
4.3 DIAGRAMA DE CLASES
Los requerimientos relacionados a las características del sistema son detallados y
especificados en el siguiente anexo (ver Anexo Requerimientos).
A continuación se muestra el diagrama de clases definido para el proyecto:
SDD
11
Ilustración 5: Diagrama de Clases
4.4 ESTRATEGIAS DE DISEÑO
Para el desarrollo de la aplicación Dresser se implementarán el siguiente patrón de
diseño en el código [125].
SDD
12
Ilustración 6: Patrón de diseño[150]
SDD
5. DISEÑO ALTO NIVEL
5.1 DIAGRAMA DE DESPLIEGUE
A continuación se muestra la arquitectura de alto nivel definido para la aplicación.
13
Ilustración 7: Diagrama Despliegue [151]
Los módulos que se observan en el diagrama anterior se describen a continuación:



Despachador: maneja el enrutamiento de solicitud del explorador. Analiza la
solicitud Web y realiza un procesamiento avanzado alrededor del HTTP, como
manejo las cookies, sesiones, métodos de petición, etc.
Controlador: una vez el despachador ha procesado la solicitud envía la
petición al controlador correspondiente. Este permite que los datos se
encuentren disponibles según sea necesario, controla la renderización de las
vistas y su redireccionamiento. Además, gestiona las sesiones de usuario, el
flujo de la aplicación, las características de almacenamiento en caché, módulos
auxiliares, etc.
Vista: es llamada por el controlador correspondiente, quien renderiza la
presentación de la página web solicitada. Este módulo proporciona diseños
SDD

magistrales, plantillas de búsqueda y ayudantes que colaboran a la generación
del código HTML y otros formatos de presentación.
Active Record: es un patrón arquitectónico usado para administrar los datos en
bases de datos relacionales a través de objetos. Mapea los objetos relacionales
con las clases. Este módulo construye la capa del Modelo que se utiliza para
crear las clases del modelo, que contienen la lógica de negocio, maneja las
validaciones y las relaciones.
6. DISEÑO INTERFACES DE USUARIO
14
SDD
15
SDD
16
SDD
17
SDD
18
SDD
19
SDD
20
SDD
21
Ilustración 8: Mapa de Navegación
7. ANEXOS
7.1 Referencias
SDD
7.2 Requerimientos
22
Descargar