Você está na página 1de 24

Diseo de

Software

En sentido general, disear es una


forma de
resolucin de problemas.

Por ello, al disear se utilizan nociones como


Objetivos
Restricciones
Alternativas
Representaciones
Soluciones

Juega un papel clave en el desarrollo


de software
porque permite a los ingenieros de software
producir diversos modelos que: Caracterizan la solucin a
implementar.
Pueden ser analizados y evaluados con
dedeterminar si se satisfacen los requisitos.

el

fin

Facilitan el examen y evaluacin de alternativas.


Sirven para planificar las siguientes actividades del
desarrollo.

Perspectiva del Proceso

Disear es el esfuerzo para definir la


arquitectura, componentes, interfaces y otras
caractersticas de un sistema o componente.

El Diseo de Software es la actividad del ciclo de


vida del software en la cual se analizan los requisitos
para

producir una descripcin de la


estructura
interna del software que sirva de
base para
su construccin.
La salida es un conjunto de modelos y artefactos que
registran las principales decisiones adoptadas.
4

Perspectiva del Resultado

Un Diseo es el resultado de dicho esfuerzo.


Un Diseo Software describe:

La arquitectura del software


(cmo est
descompuesto y organizado en
componentes), La interfaces
entre dichos componentes, y
Los componentes a un nivel de
detalle que
permita su construccin.

El estndar ISO 12207 identifica dos


tipos de Diseo
Software:

Arquitectural

[alto nivel]

Describe la estructura y
organizacin de alto nivel, es
decir, los subsistemas o
componentes y sus relaciones
Detallado

Describe cada componente y su


comportamiento especfico, de
forma que puede procederse a su
construccin
5

Diseo Arquitectural
Es el primer paso en el diseo de un sistema, previo al
diseo detallado.
Su resultado se conoce como arquitectura del
software.
[se presenta despus]
Representa el enlace entre la especificacin de
requisitos y el diseo.
Puede llevarse a cabo en paralelo con actividades de
especificacin de requisitos.
Implica un esfuerzo creativo, de forma que las
actividades a realizar pueden cambiar segn la
naturaleza del sistema a desarrollar.

Durante el diseo arquitectural es


necesario adoptar algunas decisiones:
Existe una arquitectura genrica que pueda ser
usada?
Cmo ser distribuido el sistema?
Qu estilos arquitectnicos son apropiados?
Qu aproximacin se utilizar para estructurar el
sistema?
Cmo se descompondr el sistema en mdulos?
Qu estrategia de control se utilizar?
Cmo se evaluar el diseo arquitectural resultante?
Cmo se documentar la arquitectura?

Principios

Verdades bsicas o leyes generales que se utilizan


como base de razonamiento o como gua para actuar.

Los Principios del Diseo Software


son nociones clave
consideradas fundamentales en
muchas
aproximaciones
y
conceptos de diseo diferentes.

Abstraccin

Olvidar informacin que diferencia ciertas cosas y


as
poder tratarlas como si fueran similares.

En Software los mecanismos


bsicos de abstraccin son:
Parametrizacin Especificacin

Abstraccin Procedural
Abstraccin de Datos
Abstraccin de Control
(iteracin)
7

Acoplamiento y Cohesin
Acoplamiento: Fortaleza de las relaciones entre
mdulos

INTER

Cohesin: cmo estn relacionados los


elementos de un mismo mdulo.

INTRA

Descomposicin
Descomponer un software en diversas unidades ms
pequeas, habitualmente con el fin de situar

diferentes funcionalidades o
responsabilidades en diferentes
componentes.
Encapsulamiento [ocultamiento de
informacin]
Consiste en agrupar y empaquetar los elementos
y detalles internos de una abstraccin y hacer que
dichos detalles sean inaccesibles desde fuera.

Separacin
de
Implementacin

Interfaz

Definir un componente especificando una interfaz

conocida por otros


componentes o clientes , separada
de los detalles de cmo dicho
componente est realizado
(implementado).
pblica,

Suficiencia y Completitud

Asegurar que un componente software captura


todas las caractersticas importantes de una
abstraccin y ninguna ms.

Hay dos tipos de Descomposicin


Estructuracin/Organizacin del sistema:

El sistema en subsistemas
Descomposicin modular:
Subsistemas en mdulos.

Subsistemas vs Mdulos
No siempre hay una diferenciacin clara
Subsistema: Un sistema en s mismo, cuyo

funcionamiento es independiente de
los
servicios provistos
por otros subsistemas.

Mdulo: Componente de un sistema que provee


servicios

a otros componentes y que no se


considera un
sistema separado.

Aproximaciones para
Descomposicin Modular:

Objetos

El (sub)-sistema se
descompone en objetos que
interactan.
Tubera o Flujo de Datos
[orientado a funciones]

El (sub)-sistema se
descompone
en mdulos funcionales que
transforman entradas en
salidas.

Al disear software es necesario enfrentarse


a varios problemas o dificultades importantes.
Atributos de Calidad que deben satisfacerse.
Ej: Rendimiento. Cmo descomponer, organizar y empaquetar

componentes.

Aspectos del comportamiento del software que no son

del dominio del problema o aplicacin,


sino de dominios
laterales que afectan de manera
transversal a la funcionalidad del
sistema.
Estos aspectos no suelen suponer
unidades de descomposicin
funcional, sino que son propiedades
que afectan a diversos componentes (en su
rendimiento o semntica) de forma
sistemtica.

10

En los ltimos aos se est abordando


el problema del
Diseo de Sistemas Software
Genricos
mediante Lneas de Producto
Software
Su objetivo es el diseo de familias de

programas, es decir, colecciones de


programas que
tienen muchas cosas en comn.
Ej: Gestin de Tiendas de Venta al Pblico

Haciendo reutilizacin al mximo, pero


permitiendo adaptacin y variabilidad en
cada producto particular.

Los principales Aspectos Software a


enfrentar son :
Concurrencia.

Cmo repartir el software en


procesos, tareas o hilos de ejecucin
y abordar los problemas de eficiencia,
atomicidad, sincronizacin y
Planificacin asociados.
Control y Manejo de Eventos.

Cmo organizar datos y flujo de


control.
Cmo manejar eventos reactivos y
temporales
mediante mecanismos como

11

Los principales Aspectos Software a


enfrentar son
(cont.):

Distribucin de componentes.

Cmo distribuir el software en el


hardware.
Cmo comunicar los componentes.
Cmo utilizar el middleware para
tratar con software heterogneo.
Manejo de Errores y Excepciones y Tolerancia
a Fallos.

Cmo prevenir y tolerar fallos y


tratar condiciones excepcionales
(no previstas).

Los principales Aspectos Software a


enfrentar son
(cont.):

Interaccin y Presentacin.

Cmo estructurar y organizar las


interacciones con el usuario y la
presentacin de informacin.
Ej.: separando la presentacin de
la lgica de negocio usando la
aproximacin MVC
(Modelo-Vista-Controlador).
Persistencia de Datos.

Cmo se manejan los datos que


tienen
una
vida
superior
e
independiente a las ejecuciones
12

La arquitectura de un sistema es
la descripcin de los elementos que
lo forman y de las interrelaciones
entre ellos.

Arquitectura

Estructura interna de algo


Forma en que algo es construido u organizado

Arquitectura Software

Descripcin de los subsistemas y componentes de un

sistema software y de las


interrelaciones entre ellos

13

Disponer de la Arquitectura de
forma explcita supone las
siguientes ventajas

Comunicacin con los interesados

Puede utilizarse para la discusin


sobre cmo ser el sistema.
Anlisis del Sistema

Permite el anlisis del


cumplimiento de los
requisitos no funcionales.

Reutilizacin a gran escala

Puede servir para un grupo de


sistemas parecidos.

Diseo Basado en Componentes


(CBD)
Un Componente Software es una unidad
independiente con interfaces y dependencias bien

definidas, que pueda ser


desarrollada y desplegada de
forma independiente.
Principio de Caja Negra.
CBD aborda problemas para proveer,
desarrollar e integrar componentes.
Su finalidad es mejorar la reutilizacin.

44

Você também pode gostar