Está en la página 1de 77

Diseo Orientado a Objetos

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Qu es mal diseo?
Rigidez: dificultad para introducir
cambios.
Fragilidad: efecto cascada.
Inmovilidad: reusabilidad dificultosa.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Agenda
Conceptos de Orientacin a Objetos
Principios de Diseo O-O

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Orientacin a Objetos
Revisin de conceptos

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Qu significa Orientado a
Objetos?
Un modelo es orientado a objetos cuando
est compuesto por un conjunto de
objetos que cooperan entre si envindose
mensajes. Dichos objetos pertenecen a
clases, las cuales pueden relacionarse
entre si por medio de la herencia.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Qu es un Objeto?
Un Objeto representa un tem o entidad
individual (ya sea conceptual o real) con
un rol bien definido en el dominio del
problema.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Objetos: algunos ejemplos


Dominio del Problema
Operaciones comerciales

Procesos industriales

Redes de Computadoras

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Objetos
Artculos, Facturas,
Ventas, Compras, Clientes,
Contratos, Crditos, etc.
Orden de Fabricacin,
Productos y piezas,
Mtodos, Mquinas, etc.
Nodos, Enlaces,
Protocolos, Dispositivos,
Usuarios, Permisos, etc.

Caracterizacin de un Objeto
Estado
Comportamiento
Identidad

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Clases: dos visiones


Plantilla (o template)
Una Clase es la especificacin o
descripcin genrica de un conjunto de
objetos

Conjunto de instancias
Una Clase es un conjunto de objetos que
comparten caractersticas y
comportamientos comunes
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniera de Software

Clases vs. Objetos


Objeto
entidad individual

Clase
Especificacin abstracta

Todo Objeto es instancia de una Clase

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Los Objetos colaboran entre si


Visin antropomrfica
objetos como entes vivos

Responsabilidades y Colaboraciones
Relaciones de uso

Relaciones estructurales
Agregacin o Composicin de Objetos

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Mensajes
La nica forma de acceder a un objeto
es envindole un Mensaje.
Acceder
obtener informacin del objeto
solicitar la realizacin de una accin

El objeto est encapsulado

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Encapsulamiento
Encapsular significa
esconder todos los
detalles de
implementacin de
un objeto,
revelando
solamente aquello
que es necesario
conocer para hacer
uso del mismo.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Enviando mensajes
Objeto
Emisor

Mensaje

Objeto
Receptor

Mtodo

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Emisor y Receptor
(cliente y servidor)
Selector y
Parmetros
Mtodo

Agrupando mtodos
Contratos
Protocolo

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Contratos
Un contrato (o interfaz) define un

conjunto cohesivo de requerimientos que


un cliente puede hacer a un server.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Contratos (cont.)
Un contrato es un conjunto cohesivo de
mtodos
Una clase puede implementar muchos
contratos
El mismo contrato puede ser implementado
por diferentes clases
Los contratos pueden especificarse
independientemente de las clases que los
implementan
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniera de Software

Ejemplo
public interface Ordenable
{
public int comparar(Ordenable o);
}
class ClaseA implements Ordenable
{
// ... Otras declaraciones ...
public int comparar(Ordenable o)
{
// compara
}
}

class ClaseB implements Ordenable


{
// ... Otras declaraciones ...
public int comparar(Ordenable o)
{
// compara
}
}

class Sorter
{
// ... Otras declaraciones ...
public void shell_sort(Sortable[] a) {....}
public void quick_sort(Sortable[] a) {....}
public void bubble_sort(Sortable[] a)
}

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Protocolo
El protocolo de una clase est formado

por el conjunto de aquellos mensajes que


puede responder

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Polimorfismo
Desde el punto de vista del receptor:
Es la capacidad de diferentes objetos de
responder de diferente manera ante el mismo
mensaje.

Desde el punto de vista del emisor:


Es la capacidad para manipular objetos de
diferentes clases solo en base al conocimiento de
sus propiedades comunes, sin tener en cuenta la
clase exacta a la que pertenecen.
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniera de Software

Herencia
Permite definir nuevas clases en base a
clases ya existentes
La subclase extiende la superclase,
redefiniendo y/o agregando
propiedades.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Principios de Diseo Orientado


a Objetos

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Principio de Apertura y
Clausura
Las clases debieran estar abiertas para

su extensin pero cerradas para su


modificacin

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Principio de Apertura y Clausura (cont.)

Apertura para la extensin


La clase puede extenderse para funcionar
de nuevas maneras

Clausura para la modificacin


El cdigo fuente es inviolable: no puede
modificarse

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Ejemplo
Figura
tipo
x
y

Circulo
radio
dibujarCirculo

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Rectangulo
largo
ancho
dibujarrectangulo

enum TipoFigura {circulo, rectangulo};

class Figura
{
public:
TipoFigura tipo;
int
x, y;
};

class Circulo: public Figura


{
public:
float radio;
void DibujarCirculo();
};

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

class Rectangulo: public Figura


{
public:
float largo;
float ancho;
void DibujarRectangulo();

};

typedef Figura* PunteroFigura;


void Pantalla::DibujarFiguras(PunteroFigura lista[], int n)
{
int i;
for(i = 0; i < n; i++)
{
Figura* fig = lista[i];
switch(fig->tipo)
{
case circulo:
Circulo* C = (Circulo*)fig;
C->DibujarCirculo();
break;
case rectangulo:
Rectangulo* R = (Rectangulo*)fig;
R->DibujarRectangulo();
}
}
}
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniera de Software

Figura
x
y
dibujar

Circulo
radio
dibujar

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Rectangulo
largo
ancho
dibujar

class Figura
{
public:
int x, y;
virtual void Dibujar() = 0;
};

class Circulo: public Figura


{
public:
float radio;
virtual void Dibujar();
};

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

class Rectangulo: public Figura


{
public:
float largo;
float ancho;
virtual void Dibujar();

};

typedef Figura* PunteroFigura;


void Pantalla::DibujarFiguras(PunteroFigura lista[], int n)
{
int i;
for(i = 0; i < n; i++)
{
Figura* fig = lista[i];
fig->Dibujar();
}
}

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Principio de Apertura y Clausura (cont.)


ClaseCliente

usa

ClaseServidora

La abstraccin es la clave!
ClaseCliente

ServidorAbstracto

ServidorConcreto1

ServidorConcreto3

ServidorConcreto2

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Principio de Apertura y Clausura (cont.)

Clausura estratgica
Es imposible lograr la clausura absoluta
ante todo tipo de cambio
El diseador debe seleccionar los cambios
ante los que clausurar el diseo

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Principio de Apertura y Clausura (cont.)

En vez de considerar que cosas podran

forzar un rediseo, considere que cosas


quiere ser capaz de cambiar sin
redisear

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Principio de Apertura y Clausura (cont.)

Heursticas derivadas
Todas las variables de instancia deben ser
privadas
No utilizar variables globales
La comprobacin de tipos en tiempo de
ejecucin (ej: RTTI o tags) es peligrosa
Disear hacia la interfaz, no hacia la
implementacin
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniera de Software

Principio del Ocultamiento de


la Informacin
Todos los detalles acerca de la

implementacin de una clase deben ser


invisibles e inaccesibles desde el exterior
de la misma

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Para qu ocultar?
El problema del Acoplamiento
Dificultad para entender las dependencias
Rigidez, Fragilidad, Inmovilidad

Ventajas del Ocultamiento


Clara separacin de interfaz e implementacin
Mayor nivel de abstraccin
Acceso controlado a la parte privada
Libertar para modificar la implementacin

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Dos principios derivados


Principio de las Mnimas Interfaces
Principio de las Interfaces Pequeas

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Principio de las Mnimas


Interfaces
Cada clase debiera comunicarse con la

menor cantidad posible de otras clases

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Ejemplo
void Agenda::AniversariosDeHoy(Personas lista[], int n)
{
int i;
for(i = 0; i < n; i++)
{
Persona* p = lista[i];
Fecha*
f = P->darFechaNacimiento()
if(f->esHoy())
{
AgregarPersonaQueCumpleHoy(p);
}

}
};

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Agenda

Persona
1

Fecha
1

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

void Agenda::AniversariosDeHoy(Personas lista[], int n)


{
int i;
for(i = 0; i < n; i++)
{
Persona* p = lista[i];
if(p->CumpleHoy())
{
AgregarPersonaQueCumpleHoy(p);
}
}
};
bool Persona::CumpleHoy()
{
return fechaNacimiento->esHoy();
}

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Agenda

Persona
1

Fecha
1

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Principio de las Interfaces


Pequeas
Si dos clases se comunican, debieran

intercambiar la menor cantidad posible de


informacin

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Ejemplo
void AlgunaClase::HacerAlgoConUnTiempo(Tiempo t)
{
long horas, minutos, segundos;
long horaEnSegundos;

Tiempo
horas
minutos
segundos
darHoras
darMinutos
darSegundos

horas
= t->DarHoras();
minutos = t->DarMinutos();
segundos = t->DarSegundos();
horaEnSegundos = horas * 3600 + minutos * 60 + segundos;
Procesar(horaEnSegundos);
}

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

void AlgunaClase:: HacerAlgoConUnTiempo(Tiempo* t)


{
long horaEnSegundos = t->DarHoraEnSegundos();

Procesar(horaEnSegundos);
}
long Tiempo::DarHoraEnSegundos()
{
return horas * 3600 + minutos * 60 + segundos;
}

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Tiempo
horas
minutos
segundos
darHoras
darMinutos
darSegundos
darHoraEnSegundos

Principio de Substitucin
Las funciones que usan referencias a

instancias de una clase determinada,


deben ser capaces de operar con objetos
pertenecientes a las subclases sin
saberlo

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Principio de Substitucin (cont.)

Dicho de otra forma:


Las subclases de una clase deben

disearse de tal forma que sus instancias


puedan intercambiarse libremente con
instancias de la superclase

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Ejemplo
Rectangulo

Cuadrado

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

class Rectangulo
{
private:
long alto, largo;
public:
virtual void AsignarAlto(float a) { alto = a; }
virtual float DarAlto()
{ return alto; }
virtual void AsignarLargo(float l) { largo = l; }
virtual float DarLargo()
{ return largo; }

};

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

class Cuadrado: public Rectangulo


{
public:
virtual void AsignarAlto(float a);
virtual void AsignarLargo(float l)
};

void AsignarAlto(float a)
{
Rectangulo::AsignarAlto(a);
Rectangulo::AsignarLargo(a);
}
void AsignarLargo(float l)
{
Rectangulo::AsignarAlto(l);
Rectangulo::AsignarLargo(l);
}
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniera de Software

void test(Rectangulo* r)
{
r->AsignarAlto(5);
r->AsignarLargo(4);
float superficie = r->DarAlto() * r->DarLargo();
if(superficie != 20)
{
MostrarError();
}
}
void main()
{
Rectangulo* r = new Rectangulo;
Cuadrado*
c = new Cuadrado;
test(r);
test(c);

// aqu funciona bien


// AQU DA ERROR!!

}
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniera de Software

Principio de Inversin de la
Dependencia
Las clases de alto nivel no debieran

depender de las clases de bajo nivel;


ambas debieran depender de
abstracciones.
Las abstracciones no debieran depender
de los detalles; los detalles debieran
depender de las abstracciones.
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniera de Software

Ejemplo
Copiador

Teclado

Impresora

void Copiador::Copiar(Teclado* t, Impresora* i)


{
char c = t->LeerCaracter();
while(c != EOF)
{
i->EscribirCaracter(c);
c = t->LeerCaracter()
}
}

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Copiador

Reader

Teclado

Scanner

Writer

Disco

Impresora

class Reader
{
public:
virtual char LeerCaracter() = 0;
}
class Writer
{
public:
virtual void EscribirCaracter(char c) = 0;
}
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniera de Software

Pantalla

void Copiador::Copiar(Reader* r, Writer* w)


{
char c = r->LeerCaracter();
while(c != EOF)
{
w->EscribirCaracter(c);
c = w->LeerCaracter()
}
}

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Estratificacin
PoliticasGlobales

Mecanismos intermedios

Utilidades de bajo nivel

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Estratificacin + Abstraccin
PoliticasGlobales

Mecanismos abstractos

Mecanismos intermedios

Utilidades abstractas

Utilidades de bajo nivel

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Principio de la Segregacin de
las Interfaces
Los clientes de una clase no debieran ser
forzados a depender de interfaces que no
utilizan

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Principio de Segregacin de las Interfaces (cont.)

Fenmeno de las interfaces gordas


Clase A

Clase B

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Clase C

Principio de Segregacin de las Interfaces (cont.)

Solucin:
Clase B

Contrato B

Contrato C

Clase A

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Clase C

Principio de Segregacin de las Interfaces (cont.)

En sintesis:
Diferentes clientes implican interfaces

separadas

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Ejemplo
Diagrama

InspectorPosicional

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

InspectorDeFiguras

InspectorPosicional

InformadorPosicional

InspectorDeFiguras

InformadorDeFiguras

Diagrama

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Principio de la Dependencia
Acclica
La estructura de dependencias entre

mdulos debe ser un grafo acclico


dirigido

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Principio de la Dependencia Acclica (cont.)

Modulo:
Conjunto de clases relacionadas, que se
puede tratar como una unidad.
Paquete A

Paquete B

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Ejemplo
Aplicacion

Ventanas
de Mensajes

Ventanas
de Tareas

Tareas
Base de
Datos

Utilidades

Ventanas

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Cajas de
Dialogo

Aplicacion

Ventanas
de Mensajes

Ventanas
de Tareas

Tareas
Base de
Datos

Utilidades

Ventanas

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Cajas de
Dialogo

Cajas de Dialogo

Clase X

Cajas de Dialogo

Clase X
Clase Abstracta Y

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Aplicacion

Clase Y

Aplicacion

Clase Y

DISEO ORIENTADO A OBJETOS


Un sistema orientado a objetos se disea considerando la
interaccin entre ellos, tales objetos mantienen su propio estado
local (localidades de memoria) y otorgan operaciones sobre tales
estados.
o1:C1
o3:C3
o4:C4
estado o1
estado o3
estado o4
ops1 ()
ops3 ()
ops4 ()

o2:C3
estado o2
ops3 ()
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniera de Software

o6:C1
estado o6
ops1 ()

o5:C5
estado o5
ops5 ()

ESTRATEGIAS DEL DISEO


ORIENTADO A OBJETOS
El proceso de diseo orientado a objetos involucra disear clases de
objetos y las relaciones entre estas clases. Dichas clases definen a los
objetos en el sistema y sus interacciones.
Diseo Orientado 2
1
Anlisis Orientado
a Objetos.
Desarrollo de un modelo
Orientado a objetos del
dominio de la
aplicacin

3
Programacin Orientado
a Objetos.
Elaborar un diseo
de software usando un lenguaje
de programacin
Tal como: JAVA, C++ u otro

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

a Objetos.
Desarrollo de un modelo
Orientado a objetos de un
sistema de Software,
para implementar los
requerimientos

LAS ASOCIACIONES EN UML


La asociacin es una relacin muy simple y es utilizada de forma
regular en UML para indicar que ya sea un atributo de un objeto es un
objeto asociado o la implementacin de un mtodo del objeto recae en
un objeto asociado. Una de las asociaciones ms frecuentes es la de
agregacin.
es miembro
Empleado
Departamento
de
es supervisado
por
supervis
a
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniera de Software

Supervisor

OBJETOS CONCURRENTES
Conceptualmente, un objeto requiere un servicio de otro pero enviando una peticin de
servicio o mensaje a ese objeto. Al no existir alguna forma de requerimiento para la
ejecucin serial el modelo general de la interaccin permite a los objetos ejecutarse
concurrentemente como procesos paralelos.

o1:C1
estado o1
ops1 ()
Objetos ejecutndose
en la misma mquina
u objetos distribuidos
ejecutndose
en
diferentes mquinas

o2:C2
estado o2
ops2 ()

on:Cn
estado on
Universidad Nacional Mayor de San Marcos
opsn ()
E.A.P. de Ingeniera de Software

CONCURRENCIA

ok:Ck
estado ok
opsk ()

OBJETOS CONCURRENTES
En la prctica, la mayora de los lenguajes de programacin tienen por omisin
un modelo de ejecucin serial de tal forma que las ejecuciones para los servicios
del objeto se implementan en la misma forma que las llamadas a las funciones.
Logrando con ello suspender la llamada a tal objeto.
Sin embargo, Java y C++ proporcionan un mecanismo llamado Thread (Hilos),
que permite la ejecucin de objetos de forma concurrente.

TIPOS DE
IMPLEMENTACIN
DE OBJETOS
CONCURRENTES

SERVIDORES. Donde el objeto es ejecutado como un


proceso en paralelo. Los mtodos inician en respuesta a un
mensaje externo y se pueden ejecutar en paralelo con
mtodos asociados con otros objetos. Cuando finaliza, el
objeto se suspende y espera por ms peticiones de servicio.
Aplicado en sistemas distribuidos.
OBJETOS ACTIVOS. El estado del objeto puede cambiar
por operaciones internas ejecutadas dentro del mismo
objeto. El objeto nunca se suspende por s mismo, como en
el caso anterior. Aplicado en sistemas de tiempo real.

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

UN PROCESO DE DISEO ORIENTADO A


OBJETOS
Se tomar un software que se encuentra inmerso en una estacin climatolgica
automatizada, como ejemplo de diseo. Las etapas del proceso se encuentran
estrechamente relacionadas y se listan a continuacin:
1. Entendimiento y definicin del contexto de las formas de uso del
sistema
2. Diseo de la arquitectura del sistema
3. Identificacin de los objetos principales del sistema
4. Desarrollo de los modelos de diseo
5. Especificacin de las interfaces de los objetos

A continuacin se describen las caractersticas que la planta climatolgica tiene,


as como tambin las necesidades que tiene. Tomando en consideracin y en gran
detalle el hecho de que cada una de ellas debern de ser tomadas para el diseo
correspondiente.
Universidad Nacional Mayor de San Marcos
E.A.P. de Ingeniera de Software

UN PROCESO DE DISEO
ORIENTADO A OBJETOS
Un sistema de registro del clima es necesario con el fin de generar mapas
climatolgicos haciendo uso de datos recabados de estaciones climatolgicas
lejanas y desatendidas, adems de otras fuentes de datos tales como:
observadores climatolgicos e informacin va satlite. Las estaciones
climatolgicas transmiten sus datos a la computadora en respuesta a las
peticiones de esa mquina.

Un sistema computacional dedicado valida los datos coleccionados y recaba la


Informacin de las diferentes fuentes. Tales datos son almacenados para
Posteriormente, son utilizados en conjunto con la informacin contenida dentro
De una base de datos de mapas digitalizados, para crear los mapas climatolgicos.
Dichos mapas, pueden ser impresos para su distribucin o pueden ser desplegados
En un nmero determinado de formatos

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

DISEO DE LA ARQUITECTURA
Subsistema
Desplegado de los datos

En donde los objetos se relacionan con la


forma en la que los datos puedan ser
presentados en forma adecuada a los seres
humanos

Subsistema
Almacenamiento de datos

En donde los objetos se relacionan con la


forma en la que los datos puedan ser
almacenados para su uso posterior

Subsistema
Procesamiento de datos

En donde los objetos se relacionan con la


verificacin e integracin de los datos

Subsistema
Coleccin de datos

En donde los objetos se relacionan con la


adquisicin de los datos de las fuentes
remotas

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

PAQUETES DE UML
En la figura anterior se han mostrado las capas y se ha incluido el nombre de la capa en un
smbolo de paquete de UML que se ha denotado como un subsistema. Un paquete de UML
representa una coleccin de objetos y otros paquetes. Se verifica que cada capa incluye un
nmero determinado de otros componentes.
Subsistema de
Coleccin de datos

Subsistema de
desplegado de datos

Observador

Satlite

Interfaz de
usuario

Mapa de
desplegado

Comms

Estacin
climatolgica

Mapa de
impresin

Mapa
Ballon
Subsistema
Almacenamiento de datos

Subsistema de
Procesamiento de datos

Checar
datos

Almacenamiento
de datos
Integracin
de datos

Universidad Nacional Mayor de San Marcos


E.A.P. de Ingeniera de Software

Almacenamiento
de mapas

Almacenamiento
de datos

También podría gustarte