fundamentos de diseno de software

Upload: daniel-soriano-sanchez

Post on 15-Oct-2015

54 views

Category:

Documents


0 download

TRANSCRIPT

  • Fundamentos de Diseo de Software

  • *Diseo de Softwareactividades tcnicas: diseo, codificacin y prueba El diseo es tcnicamente la parte central de la ingeniera del softwareDurante el diseo se desarrollan, revisan y se documentan los refinamientos progresivos de las estructuras de datos, de la estructura del programa y de los detalles procedimentalesEl diseo da como resultado representaciones cuya calidad puede ser evaluada

    Mediante la aplicacin de metodologas de diseo se realizaEl diseo de datos transforma el modelo de informacin creado durante el anlisis, en las estructuras de datos que se van a requerir para implementar el software.El diseo arquitectnico define las relaciones entre los principales elementos estructurales del programa.El diseo procedimental transforma los elementos estructurales en una descripcin procedimental del software

    Finalmente, se genera el cdigo fuente y, para integrar y validar el software, se llevan a cabo las pruebas.

  • *Fundamentos del DiseoLos fundamentos del diseo ayudan al desarrollador de software a responder a estas preguntas:Qu criterios puedo utilizar para dividir el software en componentes individuales?Cmo se separan los detalles de una funcin o de la estructura de los datos de la representacin conceptual del software?Existen criterios uniformes que definan la calidad tcnica de un diseo de software?

    El principio de la sabidura de un programador est en reconocer la diferencia entre obtener un programa que funcione y uno que funcione correctamente

  • *Fundamentos del DiseoABSTRACCIN

    Cuando se considera una solucin modular para cualquier problema, pueden formularse varios niveles de abstraccin

    En el nivel superior de abstraccin se establece una solucin en trminos generales, en lenguaje natural. En los niveles inferiores de abstraccin se utiliza una orientacin ms procedimental. Por ltimo, en el nivel ms bajo de abstraccin, se establece una solucin, de forma que pueda implementarse directamente.

  • *Fundamentos del DiseoREFINAMIENTOLa arquitectura de un programa se desarrolla en niveles sucesivos de refinamiento de los detalles procedimentalesSe desarrolla una jerarqua descomponiendo una funcin de forma sucesiva hasta que se llega a las sentencias del lenguaje de programacin Comenzamos con una declaracin de la funcin (o una descripcin de la informacin) definida a un nivel superior de abstraccin. Es decir, la declaracin describe la funcin o la informacin conceptualmente, pero no proporciona informacin sobre el funcionamiento interno de la funcin o sobre la estructura interna de la informacin, sino que se va a realizando sucesivamente, dando cada vez ms detalles

  • *Fundamentos del DiseoMODULARIDAD (divide y vencers)

    El software se divide en componentes con nombres y ubicaciones determinados, que se denominan mdulos y que se integran para satisfacer los requisitos

    El software monoltico (es decir, un programa grande compuesto de un solo mdulo) no puede ser estudiado fcilmente, ya que el nmero de caminos de control, el nmero de variables y la complejidad global haran el cdigo prcticamente indescifrable

  • *Fundamentos del DiseoARQUITECTURA DEL SOFTWARE, La arquitectura del software se refiere a dos caractersticas importantes del software:La estructura jerrquica de los mdulos del softwareLa estructura de los datos

  • *Fundamentos del DiseoJERARQUA DE CONTROLTambin se le conoce como estructura del programa, y representa la organizacin jerrquica de los mdulos de un programa e implica una jerarqua de control. La representacin de jerarqua se suele representar con diagramas de rbol

  • *Fundamentos del DiseoESTRUCTURA DE DATOSLa estructura de datos es una representacin de la lgica que existe entre los elementos individuales de informacin. Debido a que la estructura de la informacin afectar de forma determinante al diseo procedimiental, la estructura de datos es tan importante como la estructura del programa en la representacin de la arquitectura del software.La estructura de datos dicta la organizacin, los mtodos de acceso, el grado de asociatividad y las alternativas para el tratamiento de la informacin.Las estructuras de datos clsicas son los elementos escalares, los arrays, las listas y los arboles

  • *Fundamentos del DiseoPROCEDIMIENTOS DEL SOFTWARELa estructura del programa define la jerarqua de control, independientemente de las decisiones y secuencias de procesamiento. El procedimiento del software se centra en los detalles de procesamiento de cada mdulo individual

  • *Fundamentos del DiseoOCULTAMIENTO DE INFORMACINEl concepto de modularidad nos lleva a la pregunta: cmo descomponer una solucin de software en el mejor conjunto de mdulos?El principio de ocultamiento de la informacin sugiere que los mdulos deben especificarse de forma que la informacin (procedimientos y datos) contenida dentro de un mdulo sea inaccesible a otros mdulos que no necesiten tal informacin.Por tanto se trata de definir una serie de mdulos independientes que se comuniquen slo a travs de la informacin necesaria para realizar la funcin de software.El uso de ocultamiento de informacin en el diseo facilitar las modificaciones, prueba y mantenimiento del software, ya que como la mayora de los datos y de los procedimientos estn ocultos a otras partes del software, ser menos probable que los errores que se introduzcan durante la modificacin se propaguen a otros mdulos del software.