Diseño 2.1 Diseño de procesos propuestos 2.1.1 Herramientas CASE para diseño 2.2 Diseño arquitectónico 2.3 diseño de datos 2.4 Diseño de interfaz de usuario Diseño de procesos propuestos • El diseño es el proceso creativo de transformación del problema en una solución para satisfacer los requerimientos planteados en la especificación de requerimientos. • Un diseño de calidad proporciona representaciones del software en las que se puede evaluar la calidad del mismo, permite una “traducción” correcta de los requisitos en un programa y sirve como fundamento para las actividades posteriores (implementación, prueba y mantenimiento). • Sin diseño se corre el riesgo de construir un sistema inestable, no escalable y difícil de probar. Por norma general la falta de diseño provoca grandes dificultades en la gestión del proyecto y aumenta considerablemente el tiempo que se dedica a las pruebas. Herramientas CASE para el diseño Estas herramientas pueden proveer muchos beneficios en todas las etapas del proceso de desarrollo de software, algunas de ellas son: • Verificar el uso de todos los elementos en el sistema diseñado. • Automatizar el dibujo de diagramas. • Ayudar en la documentación del sistema. • Ayudar en la creación de relaciones en la Base de Datos. • Generar estructuras de código. Objetivo • Mejorar la productividad del software. • Aumentar la calidad del software. • Reducir el tiempo y costo de desarrollo y mantenimiento de los sistemas informáticos. • Mejorar la planificación de un proyecto.. • Ayuda a la reutilización del software, portabilidad y estandarización de la documentación. • Gestión global en todas las fases de desarrollo de software con una misma herramienta. • Facilitar el uso de las distintas metodologías propias de la ingeniería del software. La estructura CASE se basa en la siguiente terminología • CASE de alto nivel son aquellas herramientas que automatizan o apoyan las fases finales o superiores del ciclo de vida del desarrollo de sistemas como la planificación de sistemas, el análisis de sistemas y el diseño de sistemas. • CASE de bajo nivel son aquellas herramientas que automatizan o apoyan las fases finales o inferiores del ciclo de vida como el diseño detallado de sistemas, la implantación de sistemas y el soporte de sistemas. • CASE cruzado de ciclo de vida se aplica a aquellas herramientas que apoyan actividades que tienen lugar a lo largo de todo el ciclo de vida, se incluyen actividades como la gestión de proyectos y la estimación Diseño arquitectónico El proceso de diseño inicial que identifica estos subsistemas y establece como se lleva a cabo su control y comunicación se llama diseño arquitectónico. Las actividades principales del Diseño arquitectónico son decisiones: • Estructuración del sistema en varios subsistemas principales. • Descomposición modular donde cada subsistema se divide en componentes o módulos interconectados. • Modelado del control o estructuración de un plan de control para la ejecución del sistema por partes. El diseño arquitectónico construye una salida que no es otra cosa que una serie de documentos con diversas perspectivas de la arquitectura del sistema: Modelo estructural estático. Describe subsistemas o componentes a desarrollar como unidades separadas. Modelo de proceso dinámico. Describe la organización del sistema en tiempo de ejecución. Modelo de interfaz. Describe la definición de los servicios ofrecidos por cada subsistema a través de su interfaz pública. Modelos de relación. Describe las relaciones entre los distintos módulos o subsistemas, por ejemplo: los flujos de datos entre subsistemas. Modelo de distribución. Describe como se distribuyen los subsistemas entre los componentes físicos (computadores, nodos de red…) Diseño de datos El diseño de datos es la primera de las tres actividades de diseño, los datos bien diseñados pueden conducir a una mejor estructura de programa, a una modularidad efectiva y a una complejidad procedimental reducida. PRINCIPIOS PARA EL DISEÑO DE DATOS. 1.-Deben identificarse todas las estructuras de datos y las operaciones que se han de realizar sobre cada una de ellas. 2.-Debe establecerse y usarse un diccionario de datos para definir el diseño de los datos del programa. 3.-El diseño de datos de bajo nivel debe realizarse hasta el diseño detallado. 4.- El lenguaje de programación debe soportar la especificación y la realización de tipos abstractos de datos. El diseño de interfaz de usuario Es el diseño de computadoras, aplicaciones, máquinas, dispositivos de comunicación móvil, aplicaciones de software, y sitios web enfocado en la experiencia de usuario y la interacción. Normalmente es una actividad multidisciplinaria que involucra a varias ramas es decir al diseño y el conocimiento como el diseño gráfico, industrial, web, de software y la ergonomía; y está implicado en un amplio rango de proyectos, desde sistemas para computadoras, vehículos hasta aviones comerciales. Su objetivo es que las aplicaciones o los objetos sean más atractivos y además, hacer que la interacción con el usuario sea lo más intuitiva posible, conocido como el diseño centrado en el usuario. En este sentido las disciplinas del diseño industrial y gráfico se encargan de que la actividad a desarrollar se comunique y aprenda lo más rápidamente, a través de recursos como la gráfica, los pictogramas, los estereotipos y la simbología, todo sin afectar el funcionamiento técnico eficiente.