Buscar este blog

martes, 8 de febrero de 2011

Etapas del Diseño del Software


EL PROCESO DE DISEÑO
El diseño de software es un proceso mediante el que se traducen los requisitos en una representación del software. Este proceso puede implicar el desarrollo de varios modelos del sistema con diferentes niveles de abstracción.
El Diseño del Software es un proceso y un modelado a la vez. Un diseño de software es una descripción de la estructura del software que se va a implementar, los datos que son parte del sistema, las interfaces entre los componentes del sistema y, algunas veces, los algoritmos utilizados.
Los diseñadores no llegan inmediatamente a un diseño detallado, sino que lo desarrollan de manera iterativa a través de diversas versiones. El proceso de diseño conlleva a agregar formalidad y detalle durante el desarrollo del diseño y regresar a los diseños anteriores para corregirlos.
El diseño debe implementar todos los requisitos explícitos contenidos en el modelo de análisis y debe acumular todos los requisitos implícitos que desea el cliente.
Este diagrama sugiere que cada etapa conlleva a la otra, es decir, se presenta de forma secuencial. En realidad, las actividades del proceso del diseño se entrelazan. La retroalimentación entre etapas y la consecuente repetición del trabajo es inevitable en todos los procesos del diseño.


La etapa del Diseño del Sistema encierra cuatro etapas generales, las cuales son:

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.
Los principios para el diseño de datos son:
- Deben identificarse todas las estructuras de datos y las operaciones que se han de realizar sobre cada una de ellas.
- Debe establecerse y usarse un diccionario de datos para definir el diseño de los datos del programa.
- El diseño de datos de bajo nivel debe realizarse hasta el diseño detallado.
- El lenguaje de programación debe soportar la especificación y la realización de tipos abstractos de datos.

DISEÑO ARQUITECTONICO
El objetivo principal del diseño arquitectónico es desarrollar una estructura de programa modular y representar las relaciones de control entre los módulos. Define la relación entre cada uno de los elementos estructurales del programa.
Los métodos de diseño disponibles para realizar el diseño arquitectónico son:
- Diseño orientado al flujo de datos (estructurado).
- Diseño orientado a los objetos.
- Diseño orientado a los datos.
Formato de Especificaciones del diseño Arquitectónico:
- Descripción conceptual de estructuras y bases de datos.
- Nombres y atributos de los elementos de datos.
- Nombre y descripción funcional de cada modulo.
- Especificación de interfaces para cada modulo.
- Estructura de interconexión entre módulos.
- Interconexiones entre módulos y estructuras de datos.

DISEÑO DE INTERFAZ
Para cada subsistema se diseña y documenta su interfaz con otros subsistemas. Esta especificación de interfaz debe ser inequívoca ya que permite que el subsistema se utilice sin conocimiento de su funcionamiento.

DISEÑO DE PROCEDIMIENTOS
Transforma elementos estructurales de la arquitectura del programa. El procedimiento del software se centra sobre los detalles de procesamiento de cada módulo individual. El procedimiento debe proporcionar una especificación precisa del procesamiento, incluyendo la secuencia de procesos, las decisiones y la repetición de operaciones. La representación procedimental del software se realiza por capas. El diseño procedimental se realiza después de haber establecido la estructura del programa y de datos, y especifica los detalles algorítmicos del software.
En el diseño procedimental se utiliza una técnica conocida como programación estructurada, cuya filosofía es la construcción de algoritmos y programas modulares, descendentes ( top-down ) y de una entrada- una salida, lo cual facilita la legibilidad, prueba y mantenimiento.
Las notaciones del diseño procedimental son las siguientes:
-Diagrama de Flujo.
-Tablas de decisión.
-Lenguaje Estructurado o Pseudocódigo.

      Ahora bien de forma más detallada, cada una de estas 4 etapas encierra entre sí otras actividades especificas del proceso de diseño, entre ellas tenemos:  

-Diseño Arquitectónico: los subsistemas que forman el sistema y sus relaciones se identifican y documentan.
-Especificación Abstracta: para cada subsistema se produce una especificación abstracta de sus servicios y las restricciones bajo las cuales debe funcionar.
-Diseño de la interfaz: Describe como se comunica el Software consigo mismo, con los sistemas que operan junto con el y con los operadores y usuarios que lo emplean.
-Diseño de Componentes: Se asignan servicios a los componentes y se diseñan sus interfaces.
-Diseño de la Estructura de Datos: Se diseñan en detalle y especifica la estructura de los datos utilizados en la implementación del sistema.
-Diseño de algoritmos: se diseñan en detalle y especifican los algoritmos utilizados para proporcionar los servicios.

martes, 1 de febrero de 2011

Diseño Conceptual Lógico y Físico



Diseño Conceptual
El diseño conceptual o síntesis de proceso es la etapa en la cual se arma el software, es decir se define un esquema de organización o diagrama de flujo básico que presenta la secuencia de operaciones necesarias para transformar las ideas en los productos deseados. No se especifica qué apariencia va a tener el software, sino que se centra en el concepto mismo del mismo: su arquitectura de información. Por simple que parezca, la conceptualización del software es un tema complejo de alta responsabilidad, ya que los errores de esta etapa se trasladarán y amplificarán en las etapas siguientes.
Como principales objetivos se tiene:
- La perspectiva que cada usuario tiene de los datos.
-La naturaleza de los datos, independientemente de su representación física.
- El uso de los datos a través de las áreas de aplicación.
Diseño Lógico
El diseño lógico es una descripción de los requisitos funcionales de un sistema. En otras palabras, es la expresión conceptual de lo que hará el sistema para resolver los problemas identificados en el análisis previo. Cuando los analistas formulan un diseño lógico escriben las especificaciones detalladas del nuevo sistema, esto es, describen sus características como son: las salidas, entradas, archivos, bases de datos y procedimientos; todas de manera que cubran los requerimientos del proyecto.
El diseño lógico de un sistema de información es como el plano de un ingeniero para armar un automóvil: muestra las características principales (motor, transmisión y área para los pasajeros) y cómo se relacionan unas características con otras (dónde se conectan entre sí los componentes del sistema, o por ejemplo, cuán separadas están las puertas. También especifica las formas de entrada y las descripciones de las pantallas de todos los procedimientos a fin de mantener los detalles de los mismos. Las especificaciones de los procedimientos describen métodos para introducir los datos, corridas de informes copiados de archivos y detección de problemas.
Podemos decir que el diseño lógico de sistemas se refiere lo que hará el nuevo sistema. El diseño lógico, incluye planear el propósito de cada elemento del sistema, sin hacer consideraciones de hardware y software. En pocas palabras el esquema lógico es una fuente de información para el diseño físico.
Diseño Físico
El diseño físico de sistemas es la forma en que se lograrán las tareas del sistema, lo que incluye la manera de conjuntar sus componentes y las funciones que realizará cada uno de éstos. En el diseño físico se especifican las características de los componentes del sistema requeridos para poner en práctica el diseño lógico.  El diseño físico, actividad que sigue al diseño lógico, produce programas de software, archivos y un sistema en marcha, las especificaciones del diseño indican a los programadores qué debe hacer el sistema. Los programadores a su vez escriben los programas que aceptan entradas por parte de los usuarios, procesan los datos, producen los informes y almacenan estos datos en los archivos. A demás en el diseño físico se especifican las características de los componentes del sistema requerido en prácticas del diseño lógico.
En el diseño físico deben delinearse las características de cada uno de los componentes que se enumeran a continuación:
- Diseño de hardware: debe especificarse todo el equipo de cómputo, lo que incluye todo dispositivo de entrada, procedimientos y salidas con sus características de rendimiento; por ejemplo, en el diseño lógico se especifica que la base de datos debe contener grandes volúmenes de datos históricos, por lo que se requerirá de los dispositivos de almacenamiento del sistema que sean de gran capacidad.
- Diseño de software: deben especificarse las características de todo el software, por ejemplo si en el diseño lógico se indica que puede suceder que en determinado momento una gran cantidad de usuarios deba actualizar al mismo tiempo su información en la base de datos, en el diseño físico debe especificarse un sistema de administración de base de datos que lo permita. Las especificaciones del diseño lógico como requisitos de salidas, entradas, y procedimientos de los programas, también se toman en cuenta durante el diseño físico del sistema.
- Diseño de base de datos: es necesario detallar el tipo estructura y funciones de las base de datos, las relaciones de los elementos de datos establecidos en el diseño lógico y físico. Estas relaciones incluyen aspectos tales como las rutas de acceso y la organización de estructuras de archivos.