Sei sulla pagina 1di 26

DISEO DE SOFTWARE

1. Parte

NOTAS DEL CURSO

Ingeniera Electrnica
Ing. Miguel Hernndez Borrero

1
Pasando del Anlisis al Diseo
[Pressman 05]

(c) P. Gomez-Gil, INAOEP. 2009 2


Diseo

Es el proceso de aplicar varias


tcnicas y principios con el propsito
de definir un dispositivo, proceso o
sistema con suficiente detalle que
permita su realizacin fsica.

Diseo es mas que programar o


escribir cdigo

(c) P. Gomez-Gil, INAOEP. 2009 3


Guas para un Diseo de Calidad

.. .Hay una diferencia entre hacer que


un software trabaje, y hacerlo que
trabaje correctamente. . .

(c) P. Gomez-Gil, INAOEP. 2009 4


Guas para un Diseo de Calidad (cont.)
1. Un buen diseo debe tener una arquitectura que:
1. Se ha creado utilizando estilos o patrones reconocidos
2. Esta hecho de componentes
3. Se puede implementar de una manera evolutiva, facilitando la
implementacin y las pruebas
2. Un buen diseo es modular, es decir, puede partirse de
manera lgica en elementos o subsistemas.
3. Un buen diseo contiene representaciones
diferenciales de datos, arquitectura, interfaces y
componentes.

(c) P. Gomez-Gil, INAOEP. 2009 5


Guas para un Diseo de Calidad (cont.)

4. Un buen diseo debe conducir a estructuras


de datos que son apropiadas para las clases a
implementarse, y que resultan de patrones
reconocidos.
5. Un buen diseo debe llevar a componentes
que presentan caractersticas funcionales
independientes.
6. Un buen diseo debe conducir a interfaces que
reducen la complejidad de las conexiones
entre componentes y el medio externo.
(c) P. Gomez-Gil, INAOEP. 2009 6
Guas para un Diseo de Calidad
(cont.)

Un buen diseo debe llevarse a cabo


utilizando mtodos repetibles y que es
conducida por la informacin obtenida en el
anlisis.
Un buen diseo debe representarse usando
una notacin que es efectiva en la manera que
comunica el significado del diseo.

(c) P. Gomez-Gil, INAOEP. 2009 7


Atributos de Calidad en el Diseo

Funcionalidad
Usabilidad
Confiabilidad
Desempeo
Sustentabilidad y que significa todo esto??

(c) P. Gomez-Gil, INAOEP. 2009 8


Conceptos fundamentales de Diseo
1. Abstraccin
2. Refinamiento
3. Arquitectura
4. Modularidad
5. Patrones
6. Clases del diseo

(c) P. Gomez-Gil, INAOEP. 2009 9


Conceptos fundamentales de diseo:
Abstraccin y Refinamiento

1. ABSTRACCIN
La solucin a cualquier problema se presenta en
varios niveles de abstraccin. En el nivel mas alto se
presenta una solucin general. En el nivel mas bajo se
presenta una solucin que puede implementarse
directamente.

2. REFINAMIENTO
La arquitectura de un programa se desarrolla a travs
del detallado sucesivo de niveles.

(c) P. Gomez-Gil, INAOEP. 2009 10


Conceptos fundamentales de diseo:
3. Arquitectura
La arquitectura de software se refiere a la estructura
global del software y la manera en que esta estructura
proporciona integridad conceptual al sistema.
Representa los componentes que tiene el software,
como interactan y la estructura de los datos que usan
estos componentes
El uso de patrones arquitectnicos permitirn a los
diseadores reutilizar componentes
La arquitectura del diseo se puede representar
utilizando diferentes modelos: Estructurales, Plantillas,
Dinmicos, de procesos, y funcionales.

(c) P. Gomez-Gil, INAOEP. 2009 11


Conceptos fundamentales de diseo:
4. Modularidad

Es un atributo del software que permite que un programa


sea manejable intelectualmente hablando.
Tericamente el aumento en el nmero de mdulos
disminuye la complejidad, y por lo tanto el esfuerzo de
resolver un problema; entonces con un nmero infinito
de mdulos tendramos un problema de complejidad
cero.
Sin embargo el aumento en el nmero de mdulos
genera un aumento en el costo por comunicacin entre
mdulos.

(c) P. Gomez-Gil, INAOEP. 2009 12


Nmero de mdulos vs. costo

COSTO O ESFUERZO
costo por
interface

Regin de
mnimo costo

costo por mdulo


NMERO DE MDULOS

(c) P. Gomez-Gil, INAOEP. 2009 13


Otras caractersticas de modularidad
COHESIN
Es la medida de la fuerza funcional de un mdulo o
clase. Se busca que la clase tenga la cohesin mas
alta posible, lo cual ocurre cuando todos sus
elementos contribuyen a la ejecucin de una misma
tarea.
ACOPLAMIENTO
Es la medida de la interdependencia relativa entre
clases. Se busca que exista el mnimo posible de
acoplamiento entre clases, lo cual sucede cuando
las clases se comunican solamente por medio de
mensajes.

(c) P. Gomez-Gil, INAOEP. 2009 14


Conceptos fundamentales de diseo:
5. Patrones

Un patrn de diseo describe una estructura de


diseo que resuelve un problema de diseo
particular, dentro de un contexto especfico.
Un patrn de diseo provee informacin que
permite al diseador determinar si el patrn es
aplicable, si puede re-usarse y si se puede usar
como gua para desarrollar algn patrn similar
con estructura diferente.

(c) P. Gomez-Gil, INAOEP. 2009 15


Conceptos Fundamentales del diseo (cont.)
6. Clases de Diseo
Las clases generadas en el anlisis definen el dominio
del problema.
En el diseo, las clases se definen de manera que se
refinan las clases obtenidas en el anlisis a fin de que se
puedan implementar,
El diseo crea un nuevo conjunto de clases que permiten
implementar la infraestructura de software que va a
sostener la solucin.

(c) P. Gomez-Gil, INAOEP. 2009 16


Niveles de clases del diseo

Se sugieren 5 niveles de clases de diseo:


Clases para el manejo de la interfaz con el
usuario
Clases para el dominio del negocio
Clases para el proceso
Clases para la persistencia
Clases de administracin y control del sistema

(c) P. Gomez-Gil, INAOEP. 2009 17


Caractersticas de clases bien
formadas
Completa y suficiente. Una clase de diseo debe tener
todos los atributos y mtodos razonablemente esperados para
existir.
Primitividad. Los mtodos se deben enfocar en resolver UN
servicio de la clase. Una vez que se ha implementado un
servicio a travs de un mtodo, la clase no debe proveer
ninguna otra manera de hacer la misma cosa
Alta cohesin. Una clase con un diseo cohesivo tiene un
conjunto pequeo y enfocado de responsabilidades y enfoca
exclusivamente sus atributos y mtodos a cumplir esas
responsabilidades
Bajo acoplamiento. Aunque las clases tienen que colaborar
entre s, esta colaboracin debe ser lo mnimo necesario

(c) P. Gomez-Gil, INAOEP. 2009 18


El modelo de diseo
Puede verse desde 2 posibles dimensiones: proceso y
abstraccin
La dimensin del proceso indica la evolucin del modelo
confirme se van ejecutado el proceso de desarrollo de
software
La dimensin de abstraccin representa el nivel de
detalle que surge cuando cada elemento del modelo de
anlisis se va transformando en su equivalente de
diseo, y posteriormente se va refinando iterativamente
La lnea punteada en la figura indica la frontera (difusa)
entre anlisis y diseo

(c) P. Gomez-Gil, INAOEP. 2009 19


Dimensiones del modelo de diseo
[Pressman 05]

(c) P. Gomez-Gil, INAOEP. 2009 20


Elementos de diseo de datos
Crea el modelo de datos e informacin,
representado en un nivel de abstraccin alto, y
se va refinando progresivamente
En la implementacin este modelo de datos se
traduce en bases de datos, las cuales en un
futuro formarn warehouses que permitirn el
manejo de sistemas administradores de
conocimiento de la empresa

(c) P. Gomez-Gil, INAOEP. 2009 21


Elementos de diseo de arquitectura
El modelo de arquitectura se obtiene
principalmente de 3 fuentes:
1. Informacin acerca del dominio de
aplicacin del software a construirse
2. Elementos del modelo de anlisis tales
como diagramas de flujo o clases generadas
en el anlisis sus relaciones y
colaboraciones
3. Disponibilidad de patrones de arquitectura

(c) P. Gomez-Gil, INAOEP. 2009 22


Elementos de diseo de interfaz
Los elementos de diseo de interfaz describen
como la informacin fluye entrando y saliendo del
sistema, y como se comunican a travs de los
componentes definidos como parte de la
arquitectura
Hay 3 elementos importantes en el diseo de
interfaces:
1. Interfaz con el usuario
2. Interfaces externas con otros sistemas, dispositivos,
redes u otros productores o consumidores de
informacin
3. Interfaces internas entre los diferentes componentes
de diseo
(c) P. Gomez-Gil, INAOEP. 2009 23
Diseo de interfaces externas
Requiere informacin definitiva sobre la
entidad a la cual la informacin se manda
o recibe.
Debe incluir pruebas de errores y
caractersticas de seguridad

(c) P. Gomez-Gil, INAOEP. 2009 24


Diseo de interfaces internas
Est fuertemente relacionado con el diseo a nivel
componentes (diseo detallado)
En algunos casos, una interface se disea de igual
manera que una clase.
Segn la OMG una interfaz es un especificador
de operaciones externamente visibles (publicas)
de una clase, componente u otro clasificador
(incluyendo subsistemas) sin la especificacin de
una estructura interna
Una interfaz es un conjunto de operaciones que
describe alguna parte del comportamiento de un
sistema y las operaciones necesarias para
accesar esas operaciones
(c) P. Gomez-Gil, INAOEP. 2009 25
GRACIAS
(c) P. Gomez-Gil, INAOEP. 2009 26

Potrebbero piacerti anche