Vous êtes sur la page 1sur 33

Universidad de Los Lagos

Fundamentos de Diseo de Software INFT.1

Profesor : Hermn Alfaro F. Hermon.alfaro@tm-mas.com

Diseo de Software

Una vez que se han establecido los requisitos del software, el diseo es la primera de tres actividades tcnicas: diseo, codificacin y prueba El diseo es tcnicamente la parte central de la ingeniera del software Durante 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 procedimentales El diseo da como resultado representaciones cuya calidad puede ser evaluada Mediante la aplicacin de metodologas de diseo se realiza

El 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.

El Proceso de Diseo de Software

Desde el punto de vista de la gestin del proyecto, el diseo del software se realiza en dos etapas: el diseo preliminar y el diseo detallado

El diseo preliminar se centra en la transformacin de los requisitos en los datos y la arquitectura del software. El diseo detallado se ocupa del refinamiento y de la representacin arquitectnica que lleva a una estructura de datos refinada y a las representaciones algortimicas del software.

Adems del diseo de datos, del diseo arquitectnico y del desarrollo procedimental, muchas aplicaciones modernas requieren un diseo de la interfaz

Criterios para determinar la Calidad del Diseo de Software


Un diseo debe tener una organizacin jerrquica Un diseo debe ser modular, es decir, el software debe estar dividido en elementos que realicen funciones especficas Un diseo debe llevar a mdulos que exhiban caractersticas funcionales independientes Un diseo debe conducir a interfaces que reduzcan la complejidad de las conexiones entre los mdulos y el exterior

Fundamentos del Diseo

Los 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
5

Fundamentos del Diseo

ABSTRACCIN

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 Diseo

REFINAMIENTO

La arquitectura de un programa se desarrolla en niveles sucesivos de refinamiento de los detalles procedimentales Se 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 Diseo

MODULARIDAD (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 Diseo

ARQUITECTURA DEL SOFTWARE, La arquitectura del software se refiere a dos caractersticas importantes del software:

La estructura jerrquica de los mdulos del software La estructura de los datos

Fundamentos del Diseo

JERARQUA DE CONTROL

Tambin 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

10

Fundamentos del Diseo

ESTRUCTURA DE DATOS

La 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

11

Fundamentos del Diseo

PROCEDIMIENTOS DEL SOFTWARE

La 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

12

Fundamentos del Diseo

OCULTAMIENTO DE INFORMACIN

El 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.
13

Diseo Modular

Independencia Funcional

La independencia funcional es una derivacin directa de la modularidad, de la abstraccin y del ocultamiento de informacin

La independencia se mide con dos criterios cualitativos que son la cohesin y el acoplamiento.

14

Cohesin

Grados de Cohesin

Cohesin.

Baja cohesin.

Cohesin coincidente. El mdulo hace muchas cosas sin relacin. Cohesin lgica. El mdulo hace muchas cosas relacionadas lgicamente. Cohesin temporal. El mdulo hace muchas cosas relacionadas por el hecho que deben hacerse al mismo tiempo. Cohesin procedimental. El mdulo hace varias cosas relacionadas que deben ejecutarse en cierto orden. Cohesin de comunicacin. El mdulo hace varias cosas que trabajan sobre una sola estructura de datos. Cohesin funcional. El mdulo hace una sola cosa.

Cohesin moderada.

Alta cohesin.

Se busca una moderada o alta cohesin.

Grados de Cohesin
Funcional

17

Grados de Cohesin
Comunicacional

18

Grados de Cohesin
Procedimental

19

Grados de Cohesin
Temporal

20

Grados de Cohesin
Lgica

21

Grados de Cohesin
Coincidental

22

Acoplamiento

Grados de Acoplamiento

Grados de Acoplamiento

Grados de Acoplamiento

Grados de Acoplamiento

Tipo de acoplamiento.

Bajo acoplamiento.

Sin acoplamiento. El mdulo es independiente. Acoplamiento de datos. El mdulo recibe una lista de argumentos de quien lo llama. Acoplamiento de control. El mdulo recibe una bandera de quien lo llama y se comporta de una manera u otra dependiendo del valor de la bandera. Acoplamiento externo. El mdulo esta acoplado a un dispositivo de I/O externo. Este tipo de acoplamiento debe limitarse a unos pocos mdulos. Acoplamiento comn. El mdulo utiliza variables globales o comunes. Acoplamiento de contenido. El mdulo usa datos contenidos dentro de los lmites de otro mdulo.

Acoplamiento moderado.

Alto acoplamiento.

Se busca un bajo o moderado acoplamiento y limitar el uso de variables globales.

Grados de Acoplamiento

Ej.: Acoplamiento Normal

28

Grados de Acoplamiento

Ej.: Acoplamiento normal

29

Grados de Acoplamiento

Ej.: Acoplamiento por datos

30

Grados de Acoplamiento

Ej.: Acoplamiento de control

31

Grados de Acoplamiento

Ej.: como se resuelve el caso anterior

32

Evaluacin y Validacin del Diseo

Vous aimerez peut-être aussi