diseño estructurado

11
DANIEL BRICEÑO C.I.: 14.781.603

Upload: dascorp

Post on 24-Jun-2015

431 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Diseño estructurado

DANIEL BRICEÑO

C.I.: 14.781.603

Page 2: Diseño estructurado

El diseño estructurado persigue elaborar algoritmos que

cumplan la propiedad de modularidad, para ello, dado un

problema que se pretende resolver mediante la elaboración

de un programa de ordenador, se busca dividir dicho

programa en módulos siguiendo los principios de diseño de

Descomposición por refinamientos sucesivos, creación de una

Jerarquía modular y elaboración de módulos

Independientes.

DEFINICIÓN

Page 3: Diseño estructurado

TÉCNICAS DEL DISEÑO

ESTRUCTURADO Top Down

Técnica para diseñar que consiste en tomar el problema en forma

inicial como una cuestión global y descomponerlo sucesivamente en problemas más

pequeños y por lo tanto, de solución más sencilla.

La descomposición del problema original (y de las etapas subsecuentes),

puede detenerse cuando los problemas resultantes alcanzan un nivel de detalle

que el programador o analista pueden implementar fácilmente.

Objetivos básicos del Top-Down

Simplificación del problema y de los subprogramas de cada descomposición.

Las diferentes partes del problema pueden ser programadas de modo independiente e

incluso por diferentes personas.

El programa final queda estructurado en forma de bloque o módulos lo que hace mas

sencilla su lectura y mantenimiento.

Page 4: Diseño estructurado

Ejemplo de un diseño descendente (top-down ) de un control de almacén :

Page 5: Diseño estructurado

Bottom up

El diseño ascendente se refiere a la identificación de aquellos procesos que necesitan

computarizarse con forme vayan apareciendo, su análisis como sistema y su codificación, o

bien, la adquisición de paquetes de software para satisfacer el problema inmediato.

Cuando la programación se realiza internamente y haciendo un enfoque ascendente, es

difícil llegar a integrar los subsistemas al grado tal de que el desempeño global, sea fluido.

Los problemas de integración entre los subsistemas son sumamente costosos y muchos de

ellos no se solucionan hasta que la programación alcanza la fecha limite para la integración

total del sistema.

En esta fecha, ya se cuenta con muy poco tiempo, presupuesto o paciencia de los usuarios,

como para corregir aquellas delicadas interfaces, que en un principio, se ignoran.

Aunque cada subsistema parece ofrecer lo que se requiere, cuando se contempla al sistema

como una entidad global, adolece de ciertas limitaciones por haber tomado un enfoque

ascendente. Uno de ellos es la duplicación de esfuerzos para accesar el software y mas aun

al introducir los datos. Otro es, que se introducen al sistema muchos datos carentes de valor.

Un tercero y tal vez el mas serio inconveniente del enfoque ascendente, es que los objetivos

globales de la organización no fueron considerados y en consecuencia no se satisfacen.

Page 6: Diseño estructurado

Warnier Orr

Es una técnica que utiliza una representación semejante a la de cuadros sinópticos para mostrar

el funcionamiento y organización de los elementos que conforman el algoritmo.

Los diagramas Warnier Orr son útiles porque son compatibles con las técnicas de programación

estructurada ; y además, son fáciles de desarrollar.

Los diagramas Warnier Orr son fáciles de leer y modificar y no tienen que completarse antes

de ser útiles. Se van desarrollando hacia otras salidas del sistema.

Básicamente, utiliza una notación de llaves para organizar los módulos y se auxilia en la

siguiente simbología para indicar operaciones de control.

Nota : Los diagramas

Warnier Orr se leen

de izquierda a

derecha y de arriba

hacia abajo.

Page 7: Diseño estructurado

Objetivos Del Diseño Estructurado

"El diseño estructurado, tiende a transformar el desarrollo de software de una

práctica artesanal a una disciplina de ingeniería".

"Diseño" significa planear la forma y método de una solución. Es el proceso que

determina las características principales del sistema final, establece los límites en

performance y calidad que la mejor implementación puede alcanzar, y puede

determinar a que costos se alcanzará.

El diseño se caracteriza usualmente por un gran número de decisiones técnicas

individuales. En orden de transformar el desarrollo de software en una disciplina de

ingeniería, se debe sistematizar tales decisiones, hacerlas más explícitas y técnicas,

y menos implícitas y artesanales.

Un ingeniero no busca simplemente una solución, busca la mejor solución, dentro de

las limitaciones reconocidas, y realizando compromisos requeridos en el trabajo del

mundo real.

Page 8: Diseño estructurado

Eficiencia

Mantenibilidad

Modificabilidad

Flexibilidad

Generalidad

Utilidad

En orden de convertir el diseño de sistemas de computadoras en una disciplina

de ingeniería, previo a todo, debemos definir objetivos técnicos claros para los

programas de computadora como "sistemas". Es esencial además comprender

las restricciones primarias que condicionan las soluciones posibles.

Para realizar decisiones concisas y deliberadas, debemos identificar los puntos

de decisión .

Finalmente necesitamos una metodología que nos asista en la toma de

decisiones.

Dadas estas cosas: objetivos, restricciones, decisiones reconocidas, y una

metodología efectiva, podemos obtener soluciones de ingeniería, y no

artesanales.

Page 9: Diseño estructurado

Principios utilizados por el diseño estructurado

Abstracción

La noción psicológica de abstracción permite concentrarse en un problema al mismo nivel de

generalización, independientemente de los detalles irrelevantes de bajo nivel. El uso de la

abstracción también permite trabajar con conceptos y términos que son familiares al entorno

del problema, sin tener que transformarlos a una estructura no familiar.

Cada paso de un proceso de ingeniería de software es un refinamiento del nivel de

abstracción de la solución de software.

Conforme nos movemos por diferentes niveles de abstracción, trabajamos para crear

abstracciones de datos y de procedimientos. Una abstracción procedural es una determinada

secuencia de instrucciones que tienen una función limitada y específica.

Una abstracción de datos es una determinada colección de datos que describen un objeto.

Refinamiento sucesivo

El refinamiento sucesivo es una primera estrategia de diseño descendente propuesta por

Niklaus Wirth. La arquitectura de un programa se desarrolla en niveles sucesivos de

refinamiento de los detalles procedimentales. Se desarrolla una jerarquía descomponiendo

una declaración macroscópica de una función de una forma sucesiva, hasta que se llega a

las sentencias del lenguaje de programación.

Page 10: Diseño estructurado

Modularidad

La arquitectura implica modularidad, el software se divide en componentes con nombres y

ubicaciones determinados, que se denominan módulos, y que se integran para satisfacer los

requisitos del problema.

Arquitectura del software

La arquitectura del software se refiere a dos características importantes del software de

computadoras:

la estructura jerárquica de los componentes procedimentales (módulos)

la estructura de datos

Jerarquía de control

La jerarquía de control, también denominada estructura de programa, representa la

organización (frecuentemente jerárquica) de los componentes del programa (módulos) e

implica una jerarquía de control. No representa aspectos procedimentales del software,

tales como secuencias de procesos, o la repetición de operaciones.

Page 11: Diseño estructurado

Estructura de datos

La estructura de datos es una representación de la relación lógica existente entre los

elementos individuales de datos. Debido a que la estructura de la información afectará

invariablemente al diseño procedimental final, la estructura de datos es tan importante como

la estructura del programa en la representación de la arquitectura del software.

Procedimientos del software

La estructura del programa define la jerarquía de control, independientemente de las

decisiones y secuencias de procesamiento. 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 sucesos, los puntos concretos de decisiones, la repetición de operaciones, e

incluso la organización/estructura de los datos.

Ocultamiento de la información

El principio de ocultamiento de la información sugiere que los módulos se han de caracterizar

por decisiones de diseño que los oculten unos a otros. Los módulos deben especificarse y

diseñarse de forma que la información (procedimientos y datos) contenida dentro de un

módulo sea accesible a otros módulos únicamente a través de las interfaces formales

establecidas para cada módulo.