lunes, 20 de mayo de 2013

4.1.- ESTRATEGIAS DE DISEÑO


Descripción general del proceso y pruebas
Los principales pasos del proceso de desarrollo son los siguientes:
• Análisis del problema: da como resultado un modelo de objeto y una lista de
operaciones.
• Diseño: da como resultado un modelo de objeto de código, un diagrama de
dependencia de módulos y especificaciones de módulos.
• Implementación: da como resultado un código ejecutable.

Propiedades del diseño

La fase de diseño produce como resultado principal un modelo de objeto de código que
muestra la forma en la que se implementa el estado del sistema, y un diagrama de
dependencia de módulos que representa la división del sistema en módulos y el modo en
que éstos se relacionan entre sí. En el caso de módulos que presenten complicaciones,
resulta también conveniente disponer de un esquema con las especificaciones del módulo
antes de comenzar la codificación.
¿En qué se basa un buen diseño?
Estas propiedades clave son:
        Extensibilidad. El diseño debe ser capaz de soportar nuevas funciones. Aunque sea
perfecto en todos los demás aspectos, un sistema que no muestre disposición a
integrar el más ligero cambio o perfeccionamiento resulta inservible.
·         Fiabilidad. El sistema debe tener un comportamiento fiable, lo que no significa
solamente que no se bloquee ni corrompa los datos; debe además realizar todas sus
funciones correctamente y de la forma prevista por el usuario.
        Eficiencia. El consumo de recursos por parte del sistema debe ser racional, lo que
una vez más depende del contexto.


Por: Efrain Martinez Hernandez semestre:4to.  Modulo: 1

4.2.- DISEÑO DE OBJETOS


Objetos:
·         Todo el programa está construido en base a diferentes componentes (Objetos)
        Todo objeto del mundo real tiene 2 componentes: características y comportamiento.
Clase: Una clase es una plantilla genérica para un conjunto de objetos de similares características.
Herencia: La herencia básicamente consiste en que una clase puede heredar sus variables y métodos a varias subclases.
Envío de mensajes: Los mensajes son invocaciones a los métodos de los objetos.

Diseño de objetos: Es una técnica de diseño, la cual se caracteriza por la determinación y delegación de responsabilidades.
Análisis orientado a objetos
El modelo del análisis orientado a objetos ilustra información, funcionamiento y comportamiento.
Diseño orientado a objetos
 El diseño orientado a objetos transforma el modelo del análisis en un modelo de diseño que sirve como anteproyecto para la construcción de software.
Modelos del diseño
·         Estáticos. Estructura de subsistemas y/o clases y sus relaciones.
        Dinámicos. Se describen las estructuras que muestran la interacción entre objetos. ejemplos de UML: diagramas de secuencia, diagramas de estado.
                                                                                                                                
Patrones del diseño
Son soluciones simples y elegantes a problemas específicos y comunes del diseño orientado a objetos. Son soluciones basadas en la experiencia y que se ha demostrado que funcionan. Tipos: de creación, estructurales, de comportamiento.
Métodos
El método de Booch: este método abarca un micro proceso de desarrollo y un macro proceso de desarrollo tanto para el análisis como para el diseño. El nivel micro define un conjunto de tareas de análisis que se reaplican en cada etapa en el macro proceso.
El método de Rumbaugh: Este método mejor conocido como OMT, se utiliza para el análisis, diseño del sistema y diseño a nivel de objetos.
El método de Jacobson: también llamado OOSE (que en español significa ingeniería del Software Orientada a Objetos este método, en el análisis, se diferencia de los otros por la importancia que da al caso de uso.


Por: Efrain Martinez Hernandez semestre:4to.  Modulo: 1

4.3.- DISEÑO DE SISTEMA


Diseño es el proceso de aplicar distintas técnicas y principios con el propósito de definir un dispositivo, proceso, o sistema, con los suficientes detalles como para permitir su realización física.
El objetivo del diseñador es producir un modelo de una entidad que se construirá más
Adelante. El proceso por el cual se desarrolla el modelo combina:
·         la intuición y los criterios en base a la experiencia de construir entidades similares
·         un conjunto de principios y/o heurísticas que guían la forma en la que se desarrolla el modelo
·         un conjunto de criterios que permiten discernir sobre calidad
·         un proceso de iteración que conduce finalmente a una representación del diseño final.
La actividad de Diseño se dedica a asignar porciones de la especificación estructurada
(También conocida como modelo esencial) a procesadores adecuados (sean máquinas o humanos) y a labores apropiadas (o tareas, particiones, etc.) dentro de cada procesador. Dentro de cada labor, la actividad de diseño se dedica a la creación de una jerarquía apropiada de módulos de programas y de interfaces entre ellos para implantar la especificación creada en la actividad de análisis.
Diseño estructurado.
Diseño estructurado es el proceso de decidir que componentes, y la interconexión entre los mismos, para solucionar un problema bien especificado.
El diseño es una actividad que comienza cuando el analista de sistemas ha producido un conjunto de requerimientos funcionales lógicos para un sistema, y finaliza cuando el diseñador ha especificado los componentes del sistema y las relaciones entre los mismos.
Una vez que se han establecido los requisitos del software (en el análisis), el diseño del software es la primera de tres actividades técnicas: diseño, codificación, y prueba. Cada actividad transforma la información de forma que finalmente se obtiene un software para computadora válido.
El diseño de datos transforma el modelo del campo de información, creado durante el análisis, en las estructuras de datos que se van a requerir para implementar el software. El diseño estructural define las relaciones entre los principales elementos estructurales del programa. El objetivo principal del diseño estructural es desarrollar una estructura de programa modular y representar las relaciones de control entre los módulos. El diseño procedimental transforma los elementos estructurales en una descripción procedimental del software. El diseño procedimental se realiza después de que se ha establecido la estructura del programa y de los datos. Define los algoritmos de procesamiento necesarios.
Concluido el diseño se genera el código fuente y para integrar y validar el software, se llevan a cabo pruebas de testeo.
La importancia del diseño del software se puede sentar con una única palabra: calidad. El diseño es el proceso en el que se asienta la calidad del desarrollo del software. El diseño produce las representaciones del software de las que puede evaluarse su calidad. El diseño sirve como base para todas las posteriores etapas del desarrollo y de la fase de mantenimiento.

Por: Efrain Martinez Hernandez semestre:4to.  Modulo: 1

4.4.- REVISION DEL DISEÑO


Cuando el diseño se completa se mantienen reuniones con los clientes para revisarlo antes de avanzar al desarrollo.
El proceso de revisión se realiza en tres etapas en correspondencia con los pasos del proceso de diseño:
1.      Revisión del diseño preliminar.
2.      Revisión crítica del diseño.
3.      Revisión del diseño de programas.
Revisión del diseño preliminar
Los clientes y usuarios se reúnen para validar el diseño conceptual. Se asegura que todos los aspectos relativos a los requerimientos han sido apropiadamente contemplados en el diseño.
Durante la revisión se presenta a la audiencia el diseño conceptual. Al hacerlo, se demuestra que el sistema tiene la estructura requerida, las funciones y las características especificadas por los documentos de análisis.
Todos los participantes, en conjunto, verifican que el diseño propuesto incluya el hardware necesario, interfaces con otros sistemas, entradas y salidas.
Los clientes aprueban los diálogos y menús, los formatos de los informes y el tratamiento de defectos propuestos.
Revisión crítica del diseño
Realiza una revisión crítica del diseño, donde se presenta una vista general del diseño técnico. Se tratan dos puntos:


·         si el diseño implementa todos los requerimientos y si es un diseño de calidad. Usando diagramas, datos o ambas cosas, se explican las estrategias de diseño alternativa y como y porque se han tomado las principales decisiones de diseño.
·         Si se identifican problemas mayores el diseño se rehace.
Revisión del diseño de programas
Cuando el diseño técnico resulta satisfactorio, los diseñadores de programas estarán en posición de interpretarlo como el conjunto  de descripciones de diseño para los componentes reales, que deben ser codificados y probados.
Después de completar los diseños de programas, pero antes de comenzar la codificación, presentan sus planes. Este proceso se centra en la detección de defectos más que en su corrección. Además se esta evaluando el diseño no a los diseñadores.
El proceso beneficia a todos al encontrar defectos y problemas cuando aún son fáciles y poco costosos de corregir.
Documentando el diseño
Una parte de la documentación esta dirigida a clientes y usuarios, en lenguaje natural para describir que es lo que el sistema hará.
La segunda parte usa la terminología técnica para escribir la estructura del sistema, datos y funciones.
Pauta de los informes:
  1.  Justificación racional del diseño: donde se delinean las cuestiones criticas y compromisos que fueron considerados en la generación del diseño.
  2.  Descripción de los componentes del sistema: una de las secciones debería indicar como interactúan los usuarios con el sistema incluyendo: 
·         Menús y otros formatos de presentación en pantalla.
·          Interfaces hombre – maquina.
·          Formatos de los informes.
·          Entrada: sobre los datos.
·          Salida: sobre los datos.
·          Características funcionales generales.
·          Exigencias de perfomance.
·          Procedimientos de archivos.
·         Enfoque del tratamiento de defectos
Por lo general, un conjunto de diagramas o de notaciones formales describe la organización y estructura global del sistema, incluyendo todos los niveles de abstracción.


Por: Efrain Martinez Hernandez semestre:4to.  Modulo: 1

4.5.- DIAGRAMAS DE SECUENCIAS DE DISEÑO


La fase de diseño ( y los modelos UML resultantes) expande y detalla los modelos de análisis tomando en cuenta todas las implicaciones y restricciones técnicas.
El propósito del diseño es especificar una solución que trabaje y pueda ser fácilmente extensible. Las clases definidas en el análisis que fueron detalladas y se añadieron nuevas clases para manejar tareas técnicas como base de datos, interfaz de usuario, comunicación, dispositivos etc.
Diagramas de secuencia                                            
Los casos de uso deben ser realizados durante esta etapa. Para describir el comportamiento dinámico del sistema, cualquiera de los diagramas de interacción del UML, pueden ser utilizados.

Ejemplos de diagrama de secuencia



























Por: Efrain Martinez Hernandez semestre:4to.  Modulo: 1

4.6.- HERRAMIENTAS CASE PARA EL DISEÑO




El  objetivo de una herramienta CASE  es acelerar el proceso para el que han sido diseñadas, en el caso para a automatizar o apoyar una o mas fases del ciclo de vida del desarrollo de sistemas.
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.

La principal ventaja de la utilización de una herramienta CASE, es la mejora de la calidad de los desarrollos realizados y, en segundo término, el aumento de la productividad. Para conseguir estos dos objetivos es conveniente contar con una organización y una metodología de trabajo, además de la propia herramienta. La mejora de calidad se consigue reduciendo sustancialmente muchos de los problemas de análisis y diseño, inherentes a los proyectos de mediano y gran tamaño (lógica del diseño, coherencia, consolidación, etc.). La mejora de productividad se consigue a través de la automatización de determinadas tareas, como la generación de código y la reutilización de objetos o módulos.

Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior) o front-end, orientadas a la automatización y soporte de las actividades desarrolladas durante las primeras fases del desarrollo: análisis y diseño.
El CASE se concibe como el conjunto de cuatro herramientas que tocan las disciplinas que van desde la estrategia de la empresa, y la concepción del sistema de información, hasta el análisis, diseño y la generación de los mismos programas. Las herramientas I-CASE se basan en una metodología. Tienen un repositorio y
aportan técnicas estructuradas para todas las fases del ciclo de vida. Estas son las características que les confieren su mayor ventaja: una mejora de la calidad de los desarrollos.
Herramientas de planificación de sistemas de gestión. Sirven para modelizar los requisitos de información estratégica de una organización. Proporcionan un "metamodelo" del cual se pueden obtener sistemas de información específicos. Su objetivo principal es ayudar a comprender mejor cómo se mueve la información entre las distintas unidades organizativas. Estas herramientas proporcionan una ayuda importante cuando se diseñan nuevas estrategias para los sistemas de información y cuando los métodos y sistemas actuales no satisfacen las necesidades de la organización. 
Herramientas de análisis y diseño. Permiten al desarrollador crear un modelo del sistema que se va a construir y también la evaluación de la validez y consistencia de este modelo. Proporcionan un grado de confianza en la representación del análisis y ayudan a eliminar errores con anticipación. 
• Herramientas de análisis y diseño (Modelamiento).
• Herramientas de creación de prototipos y de simulación.
• Herramientas para el diseño y desarrollo de interfaces.
• Máquinas de análisis y diseño (Modelamiento).
Repositorio Base de datos central de una herramienta CASE. El repositorio amplía el concepto de diccionario de datos para incluir toda la información que se va generando a lo largo del ciclo de vida del sistema, como por ejemplo: componentes de análisis y diseño (diagramas de flujo de datos, diagramas entidad-relación, esquemas de bases de datos, diseños de pantallas), estructuras de programas, algoritmos, etc. En algunas referencias se le denomina Diccionario de Recursos de Información. La mayoría de herramientas CASE poseen un repositorio propio o bien trabajan sobre un repositorio suministrado por otro fabricante o vendedor. Apoyándose en la existencia del repositorio se efectúan comprobaciones de integridad y consistencia.
El objetivo principal de esta herramienta es poder mostrar al usuario, desde los momentos iniciales del diseño, el aspecto que tendrá la aplicación una vez desarrollada. Ello facilitará la aplicación de los cambios que se consideren necesarios, todavía en la fase de diseño. La herramienta será tanto más útil, cuanto más rápidamente permita la construcción del prototipo y por tanto antes, se consiga la implicación del usuario final en el diseño de la aplicación. 


Por: Efrain Martinez Hernandez semestre:4to.  Modulo: 1