Tema 3

Page 1

Tema 3: FUNDAMENTOS DEL DISEテ前 DEL SOFTWARE


CONCEPTO DE DISEÑO • Descripción o bosquejo de alguna cosa hecho por palabras. • En un sistema software la realización del diseño parte del SRD y no es nada trivial. Cuando no se tiene experiencia en el desarrollo concreto se hace de forma iterativa mediante ensayo y error, en caso contrario se aprovecha el “know-how” (saber hacer). • Las técnicas para realizar diseños nuevos son empíricas y no están suficientemente formalizadas, mientras que para proyectos ya conocidos, como los de gestión, existen herramientas tales como lenguajes de 4ª generación. • En el diseño se establece el CÓMO debe funcionar el sistema, determinando la organización y la estructura del software.


ACTIVIDADES DE UN DISEÑO SISTEMÁTICO

• DISEÑO ARQUITECTÓNICO, se abordan los aspectos estructurales y de organización del sistema, y su posible división en subsistemas • DISEÑO DETALLADO, organización y estructura de los módulos • DISEÑO PROCEDIMENTAL, organización de las operaciones o servicios que ofrecerá cada módulo. Se suele realizar en pseudocódigo o PDL, pero desarrollando sólo los aspectos más relevantes del algoritmo • DISEÑO DE DATOS, organización de la base d edatos del sistema. Se parte de los diagramas E-R. • DISEÑO DE LA INTERFAZ DE USUARIO, organizar y facilitar la utilización del sistema por parte del usuario El resultado de estas actividades debe plasmarse en el Documento d Diseño Software (SDD)


CONCEPTOS PARA EL DISEÑO •

ABSTACCIÓN, identificar los elementos significativos del sistema y abstraer la utilidad específica de cada uno –

ABSTRACCIONES FUNCIONALES, sirven para crear expresiones parametrizadas usando funciones o procedimientos

TIPOS ABSTRACTOS, junto con el tipo de datos se deben crear los métodos que manejan estos datos

MÁQUINAS ABSTRACTAS, definición formal del comportamiento de una máquina

MODULARIDAD, el diseño modular propone dividir el sistema en partes diferenciadas y definir sus interfaces. Sus ventajas: claridad, reducción de costos y reutilización

REFINAMIENTO, a partir de una idea no muy concreta se va refinando mediante aproximaciones hasta el detalle

ESTRUCTURAS DE DATOS, para organizar la información que maneja el sistema: registros, conjuntos, listas, pilas, colas, árboles, grafos, tablas, ficheros, ...

OCULTACIÓN, de la organización de los datos internos y de los detalles del algoritmo, se muestra en el interfaz sólo aquello que resultará invariable ante cambios. Ventajas: depuración, mantenimiento, ...

GENERICIDAD, consiste en diseñar un elemento genérico, con las características comunes a todos los elementos agrupados

HERENCIA, los elementos hijos heredan del padre su estructura y operaciones para ampliarlos, mejorarlos o adaptarlos. Es conveniente utilizar un lenguaje de programación orientado a objetos

POLIMORFISMO, es la propiedad de los elementos que pueden variar su formar sin cambiar su naturaleza. Se emplea el concepto de genericidad. En los hijos se puede producir la anulación de una operación. A veces en el padre interesa declarar un método sin implementarlo, lo harán los hijos en diferido

CONCURRENCIA, se trata de aprovechar al máximo el procesador garantizando unos tiempos máximos de respuesta para tareas críticas. Problemas de los sistemas con restricciones: –

Tareas concurrentes, asegurar que todas cumplen sus restricciones

Sincronización de tareas, determinando los puntos de sincronización entre ellas

Comunicación entre tareas, unas serán productoras de datos y otras consumidoras. Para evitar la corrupción de datos compartidos permitir sólo concurrencia en lectura con semáforos, monitores y regiones críticas

Interbloqueos (deadlock) cuando varias tareas esperan un evento que nunca se producirá


NOTACIONES PARA EL DISEÑO • Debe resultar precisa, clara y fácil de interpretar. • NOTACIONES ESTRUCTURALES, se desglosa y estructura el sistema en sus partes

– DIAGRAMAS DE BLOQUES

– CAJAS ADOSADAS


DIAGRAMAS DE ESTRUCTURA (Yourdon) Describen la estructura de los sistemas software como una jerarquía de módulos, reflejando sólo su organización estática RECTÁNGULO, módulo LÍNEA, relación entre módulos, el superior utiliza el módulo inferior ROMBO, opcional ARCO, repetitiva CIRCULO CON FLECHA, envio de datos o información de control (correcto, repetir, desconectar, etc)


DIAGRAMAS HIPO (Hierachy-Input-ProcessOutput) Se muestra primero la jerarqu铆a entre los m贸dulos del sistema

Y en los diagramas HIPO de detalle hay 3 zonas: Entrada, Proceso y Salida


DIAGRAMAS DE JACKSON El proceso de diseño es sistemático y se lleva a cabo en tres pasos: •

Especificación de la estructura de datos de entrada y de salida

Obtención de la estructura del programa

Expansión de la estructura del programa para lograr el diseño detallado


NOTACIONES ESTÁTICAS • Describen las características estáticas del sistema, tales como la organización de la información, sin tener en cuenta su evolución durante el funcionamiento del sistema. • Las notaciones son las mismas que se emplean en la especificación: – DICCIONARIO DE DATOS, dónde se detalla la estructura interna de los datos que maneja el sistema. En el diseño se amplía y se completa el diccionario de la especificación hasta el nivel de detalle necesario para iniciar la codificación. – DIAGRAMAS ENTIDAD-RELACIÓN, definiendo las relaciones entre datos y la organización de la información. Se amplia y detalla el diagrama de la especificación con las nuevas entidades y relaciones.


NOTACIONES DINÁMICAS • Permiten describir el funcionamiento del sistema durante su funcionamiento. • Las notaciones son las misma utilizadas en la especificación: – DIAGRAMAS DE FLUJO DE DATOS, serán mucho más exhaustivos que los de la especificación. – DIAGRAMAS DE TRANSICIÓN DE ESTADOS, más detallados que reflejen las transiciones entre estados internos. – LENGUAJE DE DESCRIPCIÓN DE PROGRAMAS (PLD), permite realizar la especificación funcional del sistema.


NOTACIONES HIBRIDAS: DIAGRAMAS DE OBJETOS De acuerdo con las propiedades de los objetos podemos tener relaciones especiales entre ellos: • CLASIFICACIÓN, ESPECIALIZACIÓN O HERENCIA • COMPOSICIÓN, permite describir un objeto mediante los elementos que lo forman


DOCUMENTOS DE DISEÑO: ADD •

1. INTRODUCCIÓN – Para dar una visión general de todo el documento. Los contenidos de los apartados como en el SRD –

1.1 Objetivo ...

1.2 Ámbito

1.3 Definiciones, siglas y abreviaturas

1.4 Referencias

2. PANORÁMICA DEL SISTEMA, visión general de los requisitos funcionales y de otro tipo del sistema a diseñar

3. CONTEXTO DEL SISTEMA, si posee conexiones con otros –

3.n Definición de interfaz externa

4. DISEÑO DEL SISTEMA, se describe el nivel superior del diseño del sistema –

4.1 Metodología de diseño de alto nivel

4.2 Descomposición del sistema , primer nivel de descomposición del sistema en sus componentes principales

5. DISEÑO DE LOS COMPONENTES, se procede a la decripción detallada de l,os componentes mencionados en 4.2 –

5.n Identificador del componente

5.n.l Tipo (subprograma, módulo, procedimiento, proceso, datos

5.n.2 Objetivo, o necesidad de que exista el componente

5.n.3 Función , lo que hace el componente

5.n.4 Subordinados, se enumeran todos los componentes que utiliza

5.n.5 Dependencias y su naturaleza: invocación de operación, datos compartidos, inicialización, creación, etc.

5.n.6 Interfases, de cómo otros componentes interactúan con éste

5.n.7 Recursos , elementos usados por el componente

5.n.8 Referencias, que se han utilizado en el texto

5.n.9 Proceso, algoritmos o reglas que utiliza el componente para realizar su función

5.n.l0 Datos, descripción de los datos, su tipo, sus valores iniciales, se puede realizar con un diccionario de datos

6. VIABILIDAD y RECURSOS ESTIMADOS

7. MATRIZ REQUISITOS/COMPONENTES, se pone en las filas los requisitos y en las columnas los componentes


DOCUMENTOS DE DISEÑO: DDD Parte 1. DESCRIPCIÓN GENERAL 1. INTRODUCCIÓN 1.1 Objetivo 1.2 Ámbito 1.3 Definiciones, siglas y abreviaturas 1.4 Referencias 1.5 Panorámica 2. NORMAS, CONVENIOS y PROCEDIMIENTOS 2.1 Normas de diseño de bajo nivel 2.2 Normas y convenios de documentación 2.3 Convenios de nombres (ficheros, programas, módulos, etc.) 2.4 Normas de programación 2.5 Herramientas de desarrollo de software Parte 2. ESPECIFICACIONES DE DISEÑO DETALLADO n. Identificador del componente n.l Identificador n.2 Tipo n.3 Objetivo n.4 Función n.5 Subordinados n.6 Dependencias n.7 Interfases n.8 Recursos n.9 Referencias n.l0 Proceso n.ll Datos APÉNDICE A. LISTADOS FUENTE APÉNDICE E. MATRIZ REQUISITOS/COMPONENTES


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.