SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
DANIEL BRICEÑO
C.I.: 14.781.603
DEFINICIÓN

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.
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.
Ejemplo de un diseño descendente (top-down ) de un control de almacén :
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.
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.
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.
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.

                 Eficiencia
                 Mantenibilidad
                 Modificabilidad
                 Flexibilidad
                 Generalidad
                 Utilidad
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.
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.
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.

Weitere ähnliche Inhalte

Was ist angesagt?

Capitulo04
Capitulo04Capitulo04
Capitulo04martin
 
Fundamentos para el diseno de software
Fundamentos para el diseno de softwareFundamentos para el diseno de software
Fundamentos para el diseno de softwareMaraPierua
 
Diseño estructurado y las técnicas que lo caracterizan
Diseño estructurado y las técnicas que lo caracterizanDiseño estructurado y las técnicas que lo caracterizan
Diseño estructurado y las técnicas que lo caracterizanArianna Peralta
 
Diseño en-el-nivel-de-componentes
Diseño en-el-nivel-de-componentesDiseño en-el-nivel-de-componentes
Diseño en-el-nivel-de-componentesAndresRealp1
 
Diseño estructurado y las técnicas que lo caracterizan
Diseño estructurado y las técnicas que lo caracterizanDiseño estructurado y las técnicas que lo caracterizan
Diseño estructurado y las técnicas que lo caracterizanJonathan Bastidas
 
Fundamentos del diseño de software
Fundamentos del diseño de software Fundamentos del diseño de software
Fundamentos del diseño de software AlessandreMndez
 
Diseño detallado
Diseño detalladoDiseño detallado
Diseño detalladojose
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...negroues
 
Fundamentos del software
Fundamentos del softwareFundamentos del software
Fundamentos del softwaremrquaife
 

Was ist angesagt? (19)

Diseño a Nivel de Componentes
Diseño a Nivel de ComponentesDiseño a Nivel de Componentes
Diseño a Nivel de Componentes
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
Capitulo04
Capitulo04Capitulo04
Capitulo04
 
Diseño Estructurado
Diseño EstructuradoDiseño Estructurado
Diseño Estructurado
 
Conceptos de diseño
Conceptos de diseñoConceptos de diseño
Conceptos de diseño
 
Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de Software
 
10.el diseño en el nivel de componentes
10.el diseño en el nivel de componentes10.el diseño en el nivel de componentes
10.el diseño en el nivel de componentes
 
Proceso de diseño
Proceso de diseñoProceso de diseño
Proceso de diseño
 
Fundamentos para el diseno de software
Fundamentos para el diseno de softwareFundamentos para el diseno de software
Fundamentos para el diseno de software
 
Diseño estructurado y las técnicas que lo caracterizan
Diseño estructurado y las técnicas que lo caracterizanDiseño estructurado y las técnicas que lo caracterizan
Diseño estructurado y las técnicas que lo caracterizan
 
Diseño en-el-nivel-de-componentes
Diseño en-el-nivel-de-componentesDiseño en-el-nivel-de-componentes
Diseño en-el-nivel-de-componentes
 
Diseño estructurado y las técnicas que lo caracterizan
Diseño estructurado y las técnicas que lo caracterizanDiseño estructurado y las técnicas que lo caracterizan
Diseño estructurado y las técnicas que lo caracterizan
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
Fundamentos del diseño de software
Fundamentos del diseño de software Fundamentos del diseño de software
Fundamentos del diseño de software
 
Diseño detallado
Diseño detalladoDiseño detallado
Diseño detallado
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
Fundamentos del software
Fundamentos del softwareFundamentos del software
Fundamentos del software
 

Andere mochten auch

Taller integral de internet
Taller integral de internetTaller integral de internet
Taller integral de internetwomens
 
La población andaluza
La población andaluzaLa población andaluza
La población andaluzajesuso1971
 
Dossier sarah,camille,lise
Dossier sarah,camille,liseDossier sarah,camille,lise
Dossier sarah,camille,liseSarahfe
 
Didactique de la communication
Didactique de la communicationDidactique de la communication
Didactique de la communicationkhalid boujnani
 
Base de datos en access
Base de datos en accessBase de datos en access
Base de datos en accessSandra Trejo
 
Ff75 c 131122-brillergrâceauxtalentslatents
Ff75 c 131122-brillergrâceauxtalentslatentsFf75 c 131122-brillergrâceauxtalentslatents
Ff75 c 131122-brillergrâceauxtalentslatentsgroupeqpc44
 
Macroscope 5.0, le domaine Architecture
Macroscope 5.0, le domaine ArchitectureMacroscope 5.0, le domaine Architecture
Macroscope 5.0, le domaine ArchitectureMacroscope®
 

Andere mochten auch (20)

Soundcloud(1)
Soundcloud(1)Soundcloud(1)
Soundcloud(1)
 
2012_2_CiBasico_Tema5FuentesPedagogíaYEducaciónSocial
2012_2_CiBasico_Tema5FuentesPedagogíaYEducaciónSocial2012_2_CiBasico_Tema5FuentesPedagogíaYEducaciónSocial
2012_2_CiBasico_Tema5FuentesPedagogíaYEducaciónSocial
 
Tour du monde-la_paloma
Tour du monde-la_palomaTour du monde-la_paloma
Tour du monde-la_paloma
 
Vuelta encontrada
Vuelta encontradaVuelta encontrada
Vuelta encontrada
 
Thermo d tente
Thermo d tenteThermo d tente
Thermo d tente
 
2014_1_ciAvanzTema6_3TrobesAvanzMiCuenta
2014_1_ciAvanzTema6_3TrobesAvanzMiCuenta2014_1_ciAvanzTema6_3TrobesAvanzMiCuenta
2014_1_ciAvanzTema6_3TrobesAvanzMiCuenta
 
2012_2_ciBásico_Tema5Documentación
2012_2_ciBásico_Tema5Documentación2012_2_ciBásico_Tema5Documentación
2012_2_ciBásico_Tema5Documentación
 
Newsstand
NewsstandNewsstand
Newsstand
 
Cahier csa 2013
Cahier csa 2013Cahier csa 2013
Cahier csa 2013
 
Taller integral de internet
Taller integral de internetTaller integral de internet
Taller integral de internet
 
Montage Annie
Montage AnnieMontage Annie
Montage Annie
 
Coeducación
CoeducaciónCoeducación
Coeducación
 
La población andaluza
La población andaluzaLa población andaluza
La población andaluza
 
Dossier sarah,camille,lise
Dossier sarah,camille,liseDossier sarah,camille,lise
Dossier sarah,camille,lise
 
Didactique de la communication
Didactique de la communicationDidactique de la communication
Didactique de la communication
 
Recursos en Periodismo y Comunicación Audiovisual
Recursos en Periodismo y Comunicación AudiovisualRecursos en Periodismo y Comunicación Audiovisual
Recursos en Periodismo y Comunicación Audiovisual
 
Base de datos en access
Base de datos en accessBase de datos en access
Base de datos en access
 
Ff75 c 131122-brillergrâceauxtalentslatents
Ff75 c 131122-brillergrâceauxtalentslatentsFf75 c 131122-brillergrâceauxtalentslatents
Ff75 c 131122-brillergrâceauxtalentslatents
 
Macroscope 5.0, le domaine Architecture
Macroscope 5.0, le domaine ArchitectureMacroscope 5.0, le domaine Architecture
Macroscope 5.0, le domaine Architecture
 
Vieilles photos inédites
Vieilles photos inéditesVieilles photos inédites
Vieilles photos inédites
 

Ähnlich wie Diseño estructurado

Diseño del software
Diseño del softwareDiseño del software
Diseño del softwaregenesisptc_
 
Fundamentos basicos del diseño de software
Fundamentos basicos del diseño de softwareFundamentos basicos del diseño de software
Fundamentos basicos del diseño de softwareJesús Molleda
 
Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto de SoftwareMaricela Ramirez
 
Diseño, Mantenimiento de Software +
Diseño, Mantenimiento de Software +Diseño, Mantenimiento de Software +
Diseño, Mantenimiento de Software +Valentina
 
Fundamentos para el diseño de un software
Fundamentos para el diseño de un softwareFundamentos para el diseño de un software
Fundamentos para el diseño de un softwaressalzar
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructuradoangelan00
 
Fundamentos del diseno de software jesus marcano
Fundamentos del diseno de software   jesus marcanoFundamentos del diseno de software   jesus marcano
Fundamentos del diseno de software jesus marcanoGalderIL057
 
Presentación Diseño de Software Gabriel Augusto Peña Antonetti CI 27687011
Presentación Diseño de Software Gabriel Augusto Peña Antonetti CI 27687011Presentación Diseño de Software Gabriel Augusto Peña Antonetti CI 27687011
Presentación Diseño de Software Gabriel Augusto Peña Antonetti CI 27687011gabrielpea60
 
Fundamentos Básicos del Diseño de Software
Fundamentos Básicos del Diseño de SoftwareFundamentos Básicos del Diseño de Software
Fundamentos Básicos del Diseño de SoftwareJoseCaira2
 
Fundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de softwareFundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de softwareGerardo Valera
 
Weitzenfeld guardaticomputacion2008
Weitzenfeld guardaticomputacion2008Weitzenfeld guardaticomputacion2008
Weitzenfeld guardaticomputacion2008Cesar Jimenez
 
Ra semana 13 2
Ra semana 13 2Ra semana 13 2
Ra semana 13 2victdiazm
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de softwareandres Mora
 
Trabajo de Christian Oblitas
Trabajo de Christian OblitasTrabajo de Christian Oblitas
Trabajo de Christian OblitasChristian1705
 

Ähnlich wie Diseño estructurado (20)

Guillermo cárdenas
Guillermo cárdenasGuillermo cárdenas
Guillermo cárdenas
 
Diseño del software
Diseño del softwareDiseño del software
Diseño del software
 
Fundamentos basicos del diseño de software
Fundamentos basicos del diseño de softwareFundamentos basicos del diseño de software
Fundamentos basicos del diseño de software
 
Fundamentos
FundamentosFundamentos
Fundamentos
 
Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto de Software
 
Adrian adrianza
Adrian adrianzaAdrian adrianza
Adrian adrianza
 
Software exposicion
Software exposicionSoftware exposicion
Software exposicion
 
Diseño, Mantenimiento de Software +
Diseño, Mantenimiento de Software +Diseño, Mantenimiento de Software +
Diseño, Mantenimiento de Software +
 
Fundamentos para el diseño de un software
Fundamentos para el diseño de un softwareFundamentos para el diseño de un software
Fundamentos para el diseño de un software
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
Fundamentos del diseno de software jesus marcano
Fundamentos del diseno de software   jesus marcanoFundamentos del diseno de software   jesus marcano
Fundamentos del diseno de software jesus marcano
 
Presentación Diseño de Software Gabriel Augusto Peña Antonetti CI 27687011
Presentación Diseño de Software Gabriel Augusto Peña Antonetti CI 27687011Presentación Diseño de Software Gabriel Augusto Peña Antonetti CI 27687011
Presentación Diseño de Software Gabriel Augusto Peña Antonetti CI 27687011
 
Fundamentos Básicos del Diseño de Software
Fundamentos Básicos del Diseño de SoftwareFundamentos Básicos del Diseño de Software
Fundamentos Básicos del Diseño de Software
 
Presentacion
PresentacionPresentacion
Presentacion
 
Fundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de softwareFundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de software
 
Weitzenfeld guardaticomputacion2008
Weitzenfeld guardaticomputacion2008Weitzenfeld guardaticomputacion2008
Weitzenfeld guardaticomputacion2008
 
Ra semana 13 2
Ra semana 13 2Ra semana 13 2
Ra semana 13 2
 
Juan velasquez
Juan velasquezJuan velasquez
Juan velasquez
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
Trabajo de Christian Oblitas
Trabajo de Christian OblitasTrabajo de Christian Oblitas
Trabajo de Christian Oblitas
 

Mehr von Dascorp

Condesadores y bobinas
Condesadores y bobinasCondesadores y bobinas
Condesadores y bobinasDascorp
 
Lab n2 daniel briceño
Lab n2 daniel briceñoLab n2 daniel briceño
Lab n2 daniel briceñoDascorp
 
Pre practica n2 daniel briceño
Pre practica n2 daniel briceñoPre practica n2 daniel briceño
Pre practica n2 daniel briceñoDascorp
 
Mapa conceptual tipos de rotacion
Mapa conceptual tipos de rotacionMapa conceptual tipos de rotacion
Mapa conceptual tipos de rotacionDascorp
 
Paradigmas tecnoeconomicos
Paradigmas tecnoeconomicosParadigmas tecnoeconomicos
Paradigmas tecnoeconomicosDascorp
 
Ejercicio propuesto
Ejercicio propuestoEjercicio propuesto
Ejercicio propuestoDascorp
 
Mapaconceptual d
Mapaconceptual dMapaconceptual d
Mapaconceptual dDascorp
 
Estructuras discretas II
Estructuras discretas IIEstructuras discretas II
Estructuras discretas IIDascorp
 

Mehr von Dascorp (8)

Condesadores y bobinas
Condesadores y bobinasCondesadores y bobinas
Condesadores y bobinas
 
Lab n2 daniel briceño
Lab n2 daniel briceñoLab n2 daniel briceño
Lab n2 daniel briceño
 
Pre practica n2 daniel briceño
Pre practica n2 daniel briceñoPre practica n2 daniel briceño
Pre practica n2 daniel briceño
 
Mapa conceptual tipos de rotacion
Mapa conceptual tipos de rotacionMapa conceptual tipos de rotacion
Mapa conceptual tipos de rotacion
 
Paradigmas tecnoeconomicos
Paradigmas tecnoeconomicosParadigmas tecnoeconomicos
Paradigmas tecnoeconomicos
 
Ejercicio propuesto
Ejercicio propuestoEjercicio propuesto
Ejercicio propuesto
 
Mapaconceptual d
Mapaconceptual dMapaconceptual d
Mapaconceptual d
 
Estructuras discretas II
Estructuras discretas IIEstructuras discretas II
Estructuras discretas II
 

Diseño estructurado

  • 2. DEFINICIÓN 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.
  • 3. 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.
  • 4. Ejemplo de un diseño descendente (top-down ) de un control de almacén :
  • 5. 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.
  • 6. 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.
  • 7. 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.
  • 8. 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. Eficiencia Mantenibilidad Modificabilidad Flexibilidad Generalidad Utilidad
  • 9. 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.
  • 10. 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.
  • 11. 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.