Proceso de diseño

30
Ingeniería en Sistemas de Información Diseño de Sistemas (3K1)

description

UTN-FRT. Cátedra de Diseño de Sistemas. Unidad I. El Proceso de Diseño de Pressman. 3K1 - 2011

Transcript of Proceso de diseño

Page 1: Proceso de diseño

Ingeniería en Sistemas de Información

Diseño de Sistemas(3K1)

Page 2: Proceso de diseño

f) Ingeniería del Software Asistida por Computadora. Clasificación de CASE

 

Sommerville. Sección 4.5  

C. Proceso de Diseño Pressman. Cap. 13.2 Introducción.

 

I. Fases del diseño. Pressman. Sección 13.1Sommerville. Sección 4.3.2

II. Diseño y calidad del software Pressman. 13.2.1

III. Principios y conceptos del diseño. Pressman. Sección 13.3 y 13.4

IV. Documentación del Diseño. Pressman, Sección 13.8

V. Análisis y Diseño Orientado a Objetos Sommerville, Cap.14Larman, 2ª. Ed., Cap. 1.4Pressman, Cap.21 y 22

VI. Modelos de dominio, Casos de Uso. (revisión)

Larman, 1ª. Ed.,Cap. 9/11Larman, 2a. Ed. Cap. 9/11

VII. Del Análisis al Diseño Larman, 1ª. Ed. Cap. 15 Larman, 2ª. Ed. Cap. 14

Contenidos de la Unidad 1Introducción al Diseño

Page 3: Proceso de diseño

Fases del DiseñoEl diseño del software es un proceso iterativo por el cual, con los requisitos elaboramos un «plano» para construir el software. El Diseño se empieza a realizar en un nivel alto de abstracción: desde el objetivo del sistema mismo.A medida que ocurren las iteraciones del Diseño, el refinamiento subsiguiente lleva a niveles de abstracción más bajos.

Proceso de Diseño (Pressman, 13,2 -

Introducción)

Page 4: Proceso de diseño

Durante el proceso del Diseño, su calidad se evalúa con una serie de revisiones técnicas formales.

Hay 3 características que sirven de guía para evaluar un buen Diseño. Todo Diseño debe:

Implementar todos los requisitos explícitos del Análisis, y ajustarse a todos los requisitos implícitos que desea el cliente.

Ser una guía legible y comprensible para el programador y quienes comprueban y dan soporte al software.

Dar una imagen completa del software.

Diseño y Calidad del Software

(Pressman 13.2.1)

Page 5: Proceso de diseño

Para evaluar la calidad del Diseño, deben establecerse los criterios técnicos para un buen diseño; siguiendo estas directrices:

Un Diseño deberá presentar una Estructura Arquitectónica que:

se haya creado con Patrones de Diseño reconocibles, esté formada por componentes con características

de buen Diseño, se puedan implementar de forma evolutiva, facilitando

así la implementación y la comprobación.

Diseño y Calidad del Software

Directrices Generales de un buen Diseño

Page 6: Proceso de diseño

2. El Diseño deberá ser Modular => el Software se divide lógicamente en elementos que realizan funciones y subfunciones específicas.

3. El Diseño debe contener: distintas representaciones de datos, arquitectura, interfaces y componentes (módulos).

4. El Diseño debe conducir a estructuras de datos adecuadas a los objetos que se van a implementar y que procedan de Patrones de Datos reconocibles.

Diseño y Calidad del Software

Directrices Generales de un buen Diseño

Page 7: Proceso de diseño

5. El Diseño debe conducir a componentes con características funcionales independientes.6. El Diseño debe arribar a interfaces que reduzcan la complejidad de las conexiones entre los módulos y con el entorno externo.7. El Diseño debe derivarse mediante un método repetitivo y controlado por la información obtenida durante el análisis de los requisitos del software.

Diseño y Calidad del Software

Directrices Generales de un buen Diseño

Page 8: Proceso de diseño

Estas Directrices no se logran por sí solas. Se debe fomentar el buen Diseño aplicando:1.Principios de Diseño Fundamentales, 2.Una Metodología Sistemática 3.Una Revisión cuidadosa. Hay dos formas de diseñar un software: Una forma es construirlo de forma tan simple, que no

existan deficiencias obvias. Otra es hacerlo tan complicado, que tampoco existan

deficiencias obvias. La primera forma es mucho más difícil que la segunda.

Diseño y Calidad del Software

Directrices Generales de un buen Diseño

Page 9: Proceso de diseño

El Diseño del Software está en el núcleo técnico de la Ingeniería del Software.

Una vez que se analizan y especifican los Requisitos del Software, el Diseño del Software es la primera de las tres actividades técnicas:

Diseño Generación de Código Pruebas Que se requieren para construir y verificar el

Software.

Diseño del Software e Ingeniería del Software

(Pressman 13.1)

Page 10: Proceso de diseño

Cada actividad transforma la información para originar un software de computadora validado.

«Los peligros más comunes de la Ingeniería del Software son las transiciones desde el Análisis hasta el Diseño; y desde el Diseño hasta el Código».

Cada elemento del Análisis brinda la información necesaria para crear los 4 Modelos de Diseño requeridos para una Especificación Completa de Diseño.

Diseño del Software e Ingeniería del Software

Page 11: Proceso de diseño

En la figura siguiente vemos el flujo de información durante el Diseño del Software.

Los Requisitos del Software, manifestados por los Modelos de Datos Funcionales y de Comportamiento, alimentan la tarea del Diseño.

Con los distintos Métodos del Diseño, se producen los 4 Modelos del Diseño:

1.Diseño de Datos2.Diseño Arquitectónico3.Diseño de Interfaces 4.Diseño de Componentes.

Diseño del Software e Ingeniería del Software

Page 12: Proceso de diseño

Diseño del Software e Ingeniería del SoftwareFigura de los 4 Modelos del Diseño

Page 13: Proceso de diseño

Diseño de Datos: transforma el modelo de información que se crea durante el Análisis en las Estructuras de Datos que se necesitarán para implementar el Software.

Le sirven de base => Los Objetos y las Relaciones definidas en los Diagramas de Entidad-Relación y los datos detallados que se representan en el Diccionario de Datos.

Parte del Diseño de Datos puede darse junto con el Diseño de la Arquitectura del Software.

Mientras se diseñan los componentes del software, pueden aparecer más detalles de Diseño.

Diseño del Software e Ingeniería del Software

Page 14: Proceso de diseño

Diseño Arquitectónico: define la relación entre los :

Elementos estructurales principales del Software,

los Patrones de Diseño que se utilizan, y las restricciones que afectan a la forma en que

se pueden aplicar los Patrones de Diseño Arquitectónicos.

Diseño del Software e Ingeniería del Software

Page 15: Proceso de diseño

Diseño de Interfaces: Describe la manera de comunicarse el Software:

Dentro de sí mismo, Con Sistemas que interoperan dentro de él, y Con las personas que lo utilizan. Una interfaz implica un flujo de información (por ejemplo,

datos y/o control) y un tipo específico de comportamiento. => los Diagramas de Flujo de Control y de Datos

brindan gran parte de la información que se requiere para el Diseño de la Interfaz.

Diseño del Software e Ingeniería del Software

Page 16: Proceso de diseño

Diseño a Nivel de Componentes: transforma los elementos estructurales de la arquitectura del software en una descripción procedimental de los componentes del software.

La información que se obtiene las siguientes fases del Análisis:

EP (Especificación de Procesos), EC (Especificación de Control), y DTE (Diagramas de Transición de Estado). Sirve como base para el Diseño de Componentes.

Diseño del Software e Ingeniería del Software

Page 17: Proceso de diseño

La importancia del Diseño del Software se puede describir con una sola palabra: calidad.

El Diseño es el lugar en donde se fomentará la calidad en la Ingeniería del Software.

El Diseño proporciona las Representaciones del Software que se pueden evaluar en cuanto a calidad.

El Diseño es la única forma de convertir exactamente los requisitos de un cliente en un producto o Sistema de Software finalizado.

Diseño del Software e Ingeniería del Software

Page 18: Proceso de diseño

El Diseño del Software sirve como fundamento para todos los pasos siguientes del soporte del software y de la ingeniería del software.

Sin un diseño, corremos el riesgo de construir un sistema inestable ; que:

1.Fallará cuando se lleven a cabo cambios; 2.Puede resultar difícil de comprobar;3.cuya calidad no puede evaluarse hasta muy avanzado el

proceso;4.Con Mala Administración de los Tiempos;5.Muy caro.

Diseño del Software e Ingeniería del Software

Page 19: Proceso de diseño

f) Ingeniería del Software Asistida por Computadora. Clasificación de CASE

 

Sommerville. Sección 4.5  

C. Proceso de Diseño Pressman. Cap. 13.2 Introducción.

 

I. Fases del diseño. Pressman. Sección 13.1Sommerville. Sección 4.3.2

II. Diseño y calidad del software Pressman. 13.2.1

III. Principios y conceptos del diseño. Pressman. Sección 13.3 y 13.4

IV. Documentación del Diseño. Pressman, Sección 13.8

V. Análisis y Diseño Orientado a Objetos Sommerville, Cap.14Larman, 2ª. Ed., Cap. 1.4Pressman, Cap.21 y 22

VI. Modelos de dominio, Casos de Uso. (revisión)

Larman, 1ª. Ed.,Cap. 9/11Larman, 2a. Ed. Cap. 9/11

VII. Del Análisis al Diseño Larman, 1ª. Ed. Cap. 15 Larman, 2ª. Ed. Cap. 14

Contenidos de la Unidad 1Introducción al Diseño

Page 20: Proceso de diseño

El Diseño de Software es un proceso y también un modelo.

El Proceso de Diseño es una secuencia de pasos que describen todos los aspectos del software que se va construir.

Pero el proceso de diseño no es sólo un recetario. Son factores críticos para el éxito de un Diseño: El conocimiento creativo, La experiencia en el tema, Un sentido de lo que hace, y Un compromiso general con la calidad.

Principios del Diseño(Pressman, 13.3)

Page 21: Proceso de diseño

El Modelo de Diseño es el equivalente a los planes de un arquitecto para una casa.

Comienza representando todo lo que se va a construir (por ejemplo, una representación en tres dimensiones de la casa) y refina lentamente hasta proporcionar la guía para construir cada detalle (por ejemplo, el diseño de la plomería).

De modo similar, el Modelo de Diseño que se crea para el Software, proporciona diversas visiones diferentes de Software.

Principios del Diseño

Page 22: Proceso de diseño

Los principios básicos de diseño permiten al Ingeniero del Software navegar por el Proceso de Diseño.

Davis sugiere un conjunto de principios para el Diseño del Software:

1) En el Proceso de Diseño no se deben usar «orejeras».

Un buen diseñador deberá tener en cuenta enfoques alternativos, juzgando todos los que se basan en los requisitos del problema, los recursos disponibles para realizar el trabajo y los conceptos de Diseño.

Principios del Diseño

Page 23: Proceso de diseño

2) «El Diseño debe poder rastrearse hasta el Modelo de Análisis». Como un solo elemento del Modelo de Diseño suele hacer un seguimiento de los múltiples requisitos, debemos poder rastrear cómo se han satisfecho los requisitos en ese Modelo.

Principios del Diseño

Page 24: Proceso de diseño

3) «El diseño no debe inventar nada que ya esté inventado». Los sistemas se construyen usando un conjunto de patrones de diseño, muchos de los cuales ya se han encontrado antes.

Estos patrones deberán elegirse siempre como una alternativa para reinventar.

Hay poco tiempo y los recursos son limitados. El tiempo de diseño se deberá invertir en la

representación verdadera de ideas nuevas y en la integración de esos patrones que ya existen.

Principios del Diseño

Page 25: Proceso de diseño

4) El diseño deberá «minimizar la distancia intelectual» entre el software y el problema como si de la misma vida real se tratara.

la Estructura del Diseño del Software (siempre que sea posible) debe imitar la Estructura del Dominio del Problema.

Principios del Diseño

Page 26: Proceso de diseño

5) El Diseño deberá presentar uniformidad e integración.Un diseño es uniforme si parece que fue una sola persona la que lo desarrolló por completo. Las reglas de estilo y de formato deberán definirse para un equipo de diseño antes de comenzar el trabajo sobre el diseño.Un diseño se integra si se tiene cuidado a la hora de definir interfaces entre los componentes del diseño.La consistencia del diseño y la uniformidad son cruciales para construir sistemas grandes.

Principios del Diseño

Page 27: Proceso de diseño

6) El diseño deberá estructurarse para admitir cambios.

7) El diseño deberá estructurarse para degradarse poco a poco, incluso cuando se enfrenta con datos, sucesos o condiciones de operación aberrantes. Un software bien diseñado no deberá nunca explotar como una «bomba».Deberá diseñarse para adaptarse a circunstancias inusuales, y si debe terminar de funcionar, que lo haga de forma suave.

Principios del Diseño

Page 28: Proceso de diseño

8) El diseño no es escribir código y escribir código no es diseñar.

Aún cuando se crean diseños procedimentales para componentes de programas, el nivel de abstracción del Modelo de Diseño es mayor que el Código Fuente.

9) El diseño debe evaluarse en función de la calidad, mientras se va creando, no después de terminarlo.

Para ayudar al diseñador en la evaluación de la calidad se disponen de: Conceptos de Diseño y Medidas de Diseño.

Principios del Diseño

Page 29: Proceso de diseño

10) El diseño deberá revisarse para minimizar los errores conceptuales (semánticos).

A veces, tendemos a centrarnos en minucias, cuando se revisa el diseño.

Nos olvidamos del bosque, por culpa de los árboles.

Debemos asegurarnos de haber afrontado los elementos conceptuales principales, antes de preocuparnos por la sintaxis del Modelo del Diseño.

Principios del Diseño

Page 30: Proceso de diseño

Cuando los Principios de Diseño se aplican adecuadamente, creamos un Diseño que muestra los factores de calidad internos y externos.

Los factores de calidad externos son las propiedades del software que pueden ser observadas fácilmente por los usuarios (velocidad, fiabilidad, grado de corrección, usabilidad, etc.).

Los factores de calidad internos importan para los ingenieros del software.

Desde una perspectiva técnica, conducen a un diseño de alta calidad.

Para lograr los factores de calidad internos, el diseñador deberá comprender los Conceptos de Diseño básicos.

Principios del Diseño