Sie sind auf Seite 1von 15

UNIVERSIDAD CATLICA LOS

NGELES DE CHIMBOTE

TUTOR

: Carlos Alfredo Mendoza Corpus.

CURSO

: Ingeniera de Software I

ACTIVIDAD

: Actividad 02

ESCUELA

: Ingeniera.

CARRERA

: Ingeniera de Sistemas.

INTEGRANTES

: Cabezas Huanio, Rubn Kelvin.

HUARAZ - 2015

Patrones de Arquitectura de Ingeniera de Software

Un patrn de arquitectura de software es un esquema genrico probado para solucionar


un problema particular, el cual es recurrente dentro de un cierto contexto. Este
esquema se especifica describiendo los componentes, con sus responsabilidades y
relaciones.
Los patrones ayudan a construir sobre la experiencia colectiva de ingenieros de software
experimentados. Estos capturan la experiencia existente y que ha demostrado ser
exitosa en el desarrollo de software, y ayudan a promover las buenas prcticas de
diseo. Cada patrn aborda un problema especfico y recurrente en el diseo o
implementacin de un software.
Caractersticas:
Resuelve un problema, ya que representa una solucin, no suposiciones o
estrategias abstractas.
Captura soluciones a problemas, que han sido repetidamente probadas y no son
solo teoras o especulaciones.
Genera una solucin a un problema indirectamente (un enfoque necesario para
los problemas de diseo ms difciles).
No describe mdulos sino estructuras y mecanismos de relacin entre ellas.
Pone especial atencin a la esttica y a las utilidades. Tiene un componente
humano significante.
Uno de los aspectos ms importantes de patrones arquitectnicos es que
incorporan diversas cualidades de la calidad. Por ejemplo, algunos patrones
representan soluciones a los problemas de funcionamiento y otros se pueden
utilizar con xito en sistemas de alto-disponibilidad. En la fase de diseo
temprana, un arquitecto de software hace una opcin de la cual los patrones
arquitectnicos proporcionen lo mejor posible las calidades deseadas del
sistema.

Categoras de Patrones.
A. Patrones Arquitectnicos.
La seleccin de un patrn arquitectnico debera ser conducida por las
propiedades generales de la aplicacin a estudiar. Es til explorar varias
alternativas antes de decidir sobre un patrn arquitectnico especfico.
Diferentes patrones arquitectnicos implican diferentes consecuencias, an si
encaminan al mismo o a problemas similares.
Muchos sistemas de software no pueden ser estructurados de acuerdo a un
patrn arquitectnico simple. Deben dar soporte a muchos requerimientos de
sistema que pueden solamente ser direccionados por diferentes patrones
arquitectnicos. Por ejemplo, tener que disear tanto para flexibilidad de
componentes distribuidos en una red de computadoras heterogneas como
tambin para adaptabilidad de las interfaces de usuarios.

Del Fango a la Estructura


En esta categora se encuentran los patrones que ayudan a evitar un mar
de componentes u objetos apoyando una descomposicin controlada de
una tarea del sistema global en subtareas cooperantes.

Dentro de esta clasificacin se encuentran diferentes tipos de patrones que


proporcionan subdivisiones de alto nivel del sistema: Layers, Pipes and
Filters y Blackboard donde:
-

Layers: ayuda a estructurar aplicaciones que pueden ser descompuestas


en grupos de subtareas, en el que cada grupo pertenece a un nivel
particular de abstraccin.

Pipes and Filters: provee una estructura para sistemas que procesan un
flujo de datos. Cada paso del proceso esta encapsulado en un
componente filter. Los datos se pasan a travs de los pipes entre filters
adyacentes. La combinacin de filters permite construir familias de
sistemas relacionados.

Blackboard: es til para problemas en los cuales no se conoce ninguna


estrategia de solucin determinstica. En este patrn varios subsistemas
especializados ensamblan sus conocimientos para construir una posible
solucin parcial o aproximada.

Sistemas Distribuidos
Hoy da, an las pequeas compaas usan sistemas distribuidos. Pero
cules son las ventajas de los sistemas distribuidos que los hacen
interesantes?
Economa. Redes de computadoras que incorporan PCs y workstations
ofrecen una mejor relacin costo/performance que un mainframe.
Performance y Escalabilidad. Las aplicaciones distribuidas, usan recursos
disponibles en toda la red. La performance puede mejorar enormemente si
se utiliza en forma combinada, el poder de cmputo de varios nodos de red.
Adems, multiprocesadores y redes son fcilmente escalables.
Distribucin inherente. Algunas aplicaciones son naturalmente distribuidas,
por ejemplo aplicaciones de base de datos en un modelo Cliente-Servidor.
Fiabilidad. En la mayora de los casos, una mquina en una red o una CPU
en un sistema multiprocesador puede dejar de funcionar sin afectar el resto

del sistema. Los nodos centrales como los servidores de archivos son las
excepciones a esto, pero puede protegerse con sistemas auxiliares.
-

Broker :El patrn arquitectnico Broker puede usarse para estructurar


sistemas de software distribuidos con componentes desacoplados que
interactan por invocaciones de servicios remotos. Un componente
Broker es responsable de coordinar la comunicacin, remitir las
demandas, as como transmitir resultados y excepciones.

Sistemas Interactivos
Los sistemas actuales permiten un grado alto de interaccin del usuario,
generalmente, con la ayuda de interfaces de usuario grficas. El objetivo es
robustecer la utilidad de una aplicacin.
Al especificar la arquitectura de tales sistemas, el desafo es mantener la
funcionalidad central independiente de la interfaz de usuario. El centro de
los sistemas interactivos esta basado en los requerimientos funcionales del
sistema, y normalmente permanece estable. Las interfaces de usuario, sin
embargo, estn sujetas a cambio y modificacin.

El patrn Model-View-Controller (MVC) divide una aplicacin interactiva


en tres componentes. El modelo contiene la funcionalidad central y los
datos. Las vistas despliegan el informacin al usuario. Los controladores
se ocupan de las entradas del usuario. Las vistas y controladores juntos
forman la interfaz de usuario. Un mecanismo de propagacin de cambios
asegura la consistencia entre la interfaz de usuario y el modelo.

El patrn Presentation-Abstraction-Control (PAC) define una estructura


para los sistemas interactivos en forma de una jerarqua de agentes de
cooperantes. Cada agente es responsable de un aspecto especfico de la
funcionalidad de la aplicacin y consiste de tres componentes:
presentacin, abstraccin y control. Esta subdivisin separa los aspectos
de interaccin de hombre-computadora de los agentes de su centro
funcional y su comunicacin con otros agentes.

Sistemas Adaptables
Los sistemas evolucionan con el tiempo - se agrega nueva funcionalidad y los
servicios van cambiando. Ellos deben soportar nuevas versiones de operar
sistemas operativos, otras plataformas, otras interfases de usuarios y
bibliotecas.
El patrn Microkernel se aplica a los sistemas de software que deben
adaptarse a requisitos cambiantes del sistema. Separa la funcionalidad
central mnima de la funcionalidad extendida y las partes especficas de los
clientes. El microkernel tambin sirve como socket para conectar extensiones
y coordinar sus colaboraciones.
- El patrn Reflection provee un mecanismo para estructuras cambiantes y
conductas dinmicas de sistemas de software. Apoya la modificacin de
aspectos fundamentales, como el tipo de estructuras y mecanismos de
llamadas a funcin. En este patrn, una aplicacin es dividida en dos partes.
Un meta nivel que proporciona informacin sobre las propiedades
seleccionadas del sistema y un nivel base que incluye la lgica de la
aplicacin. Su aplicacin se construye sobre el meta nivel. Los cambios a la
informacin contenidos en el meta nivel, afectan al comportamiento del nivel
base.
B. Patrones de Diseo
Los patrones de diseo se han convertido en una tcnica importante para el
reuso del conocimiento de software. Cada patrn provee informacin sobre su
diseo, describiendo las clases, mtodos y relaciones que resuelven un problema
de diseo en particular.
Patrones de Creacin
Los patrones de creacin muestran la gua de cmo crear objetos. Las
decisiones que se deben tomar al momento de la creacin de los objetos
normalmente sern resueltas dinmicamente decidiendo qu clases
instanciar o qu objetos delegarn responsabilidades sobre otros objetos.

Abstract Factory :Crea familias de objetos relacionados o dependientes


sin necesidad de especificar su clase concretamente se usa el patrn
Abstract Factory cuando el sistema a desarrollar debe:

Ser independiente de cmo se crean, se componen y se


representan sus productos.

Debera ser configurado mediante una de las mltiples familias de


productos posibles.

Se disea una familia de objetos relacionados que deben ser


usados en conjunto.

Proveer una librera de una clase de productos y es necesario


revelar

simplemente

sus

interfaces,

pero

ocultar

sus

implementaciones
-

Builder: Separa el proceso de construccin de un objeto complejo de su


representacin, para que el mismo proceso de construccin pueda crear
diferentes representaciones.
Aplicabilidad
Se utiliza el patrn Builder cuando:
El algoritmo para crear objetos complejos debe ser independiente de las
partes que constituyen el objeto y la forma en que son ensamblados.
La construccin de procesos debe permitir diferentes representaciones
para el objeto que se construye.

Prototype :El patrn Prototype (Prototipo), crea objetos nuevos


copindolos, clonando una instancia creada previamente.
Se utiliza este patrn cuando un sistema debe ser independiente de cmo
se crean, se componen y se representan sus productos, adems cuando:

Las clases a instanciar son especificadas en tiempo de ejecucin

Para evitar la construccin de una jerarqua de la clase de fbricas que


se asemeja a la jerarqua de la clase de productos

Cuando instancias de una clase pueden tener una de las


combinaciones de diferentes estados.

Cuando es necesario la creacin de distintas variantes de un objeto.


Entonces, el cdigo que utilizan esos objetos solicitar una copia del
objeto que necesite, una copia significa otra instancia del objeto. El
nico requisito que debe cumplir el objeto es la posibilidad de
clonarse.

Patrones Estructurales
Detallan la manera en que se pueden relacionar, distintos tipos de objetos,
para trabajar unos con otros y formar estructuras de mayor tamao.
-

Adapter
El patrn Adapter se aplica para convertir una interfaz de una clase en
otra, haciendo que una clase a la que le fuera imposible utilizar la primer
interfase, haga uso de ella por medio de la segunda. Es decir, permite que
stas trabajen juntas, lo que de otra forma sera incompatible.
El patrn Adapter se recomienda utilizar cuando:
Es necesario el uso de una clase existente, y su interfaz es distinta a la que
se necesita.
Se requiere crear una clase reusable que coopere con clases no
relacionadas, es decir, con clases que no necesariamente tienen
interfaces compatibles.

Bridge
Mediante el patrn Bridge es posible desacoplar una abstraccin de su
implementacin, de forma que ambas puedan modificarse de manera
independiente sin necesidad de alterar por ello la otra.
Se puede utilizar el patrn Bridge cuando:

- Se desea evitar una vinculacin permanente entre la abstraccin y su


implementacin. Este puede ser el caso en que la implementacin debe
ser seleccionada o modificada en tiempo de ejecucin.
- Las abstracciones y sus implementaciones deben ser extensibles a travs
de subclases. En este caso, el patrn Bridge permite combinar diferentes
abstracciones

implementaciones

extenderlas

en

forma

independiente.
- Los clientes no deben tener que recompilar el cdigo cuando se lleven a
cabo modificaciones en la implementacin de una abstraccin.
-

Composite
El patrn Composite admite construir objetos complejos por medio de la
composicin recursiva de objetos similares u otros ms simples en una
estructura en forma de rbol. Adems permite que dichos objetos sean
tratados de manera semejante, sin hacer distinciones entre ellos.
Se recomienda utilizar el patrn Composite cuando:
Es necesario representar la jerarqua completa de objetos.
Se necesita que el cliente no note la diferencia entre una composicin de
objetos y un objeto individual, de esta forma el cliente tratar a todos los
objetos en la composicin de la estructura uniformemente.

Proxy
El patrn Proxy se emplea como intermediario para acceder a un objeto,
controlando el acceso a l.
El patrn Proxy es aplicable cuando se necesita referenciar a un objeto en
forma ms refinada y verstil que con un simple puntero. En las siguientes
situaciones es conveniente el uso del patrn Proxy:
Un proxy remoto provee una representacin local de un objeto ubicado
en un espacio de direccin diferente.
Un proxy virtual crea objetos de gran tamao bajo demanda.

Un proxy de proteccin controla el acceso al objeto original, controlando


quien accede a cada mtodo y otorgando los permisos basndose en el
invocador.
Patrones de Comportamiento
Los patrones de comportamiento describen la forma de como organizar,
administrar, y combinar conductas y responsabilidades de objetos,
centrndose en la comunicacin entre ellos. Frecuentemente, describen
como los distintos elementos colaboran entre si para conseguir un objetivo.
-

Template Method
El patrn Template Method proporciona un mtodo abstracto que
permite que las subclases redefinan partes del mtodo sin reescribirlo
completamente manteniendo su estructura inicial.
Se utiliza el patrn Template Method para
Proporcionar un esqueleto para un mtodo permitiendo a las subclases
redefinir partes especficas del mismo.
Centralizar partes de un mtodo que se definen en todos los subtipos de
una clase, pero que siempre tiene una pequea diferencia en cada
subclase.
Controlar las operaciones que se necesitan redefinir en las subclases.

Observer
El patrn Observer define una dependencia del tipo uno-a-muchos entre
objetos, de manera que cuando uno de los objetos cambia su estado, el
observer se encarga de notificar este cambio a todos los otros objetos
dependientes.
Se puede utilizar el patrn Observer cuando se presentan las siguientes
situaciones:

Una abstraccin tiene dos aspectos, uno dependiente del otro.


Encapsulndolos en objetos separados se permite variarlos y reusarlos de
forma independiente.
- Cuando un cambio en un objeto implica cambiar otros y no se conoce
de antemano cuantos objetos deben actualizarse
-

Command
Este patrn permite solicitar una operacin a un objeto sin conocer
realmente el contenido de esta operacin, ni el receptor real de la misma.
Para ello se encapsula la peticin como un objeto, facilitando la
parametrizacin de los mtodos.
Se puede utilizar el patrn Command cuando se necesita:
Facilitar la parametrizacin de las acciones a realizar
Independizar el momento de peticin del de ejecucin
Implementar CallBacks, especificando que rdenes se necesitan ejecutar
en ciertas situaciones bajo otras rdenes. Es decir, un parmetro de una
orden puede ser otra orden a ejecutar. .

State:El patrn State permite que un objeto cambie en tiempo de


ejecucin su comportamiento cuando cambia su estado interno.
Se puede utilizar el patrn State en cualquiera de los siguientes casos:
o El comportamiento de un objeto depende de su estado y este cambia
con mucha frecuencia.
o Los mtodos tienen largas y mltiples sentencias condicionales que
dependen del estado del objeto. Estos estados generalmente son
representados por constantes enumeradas y largas sentencias
switch/case dentro de los mtodos. El patrn State ubica cada
rama del condicional en clases separadas.

Strategy :El patrn Strategy define una familia de algoritmos, encapsula


cada uno y los hace intercambiables, permitiendo que el algoritmo vare
independientemente del cliente que haga uso de l.
Se puede utilizar el patrn Strategy cuando:
Se quiera ofrecer la posibilidad de configurar una clase con una gama de
comportamientos disponibles.
Se necesiten diferentes variantes de un algoritmo.
Un algoritmo use datos que el cliente no tenga por qu conocer

Null Object:El patrn Null Object provee un objeto como un substituto


por la falta de un objeto de un tipo dado. El Objeto Nulo no realiza nada
aunque esto no significa que no sea inteligente. Este oculta los detalles
de sus colaboradores.
Se puede utilizar el patrn Null Object cuando:
Un objeto requiere de un colaborador. El patrn Null Object no introduce
esta colaboracin, hace uso de una colaboracin que ya existe.
Algunos casos del colaborador que no deben hacer nada.
Cuando necesita abstraer el manejo de objetos nulos fuera del cliente.

Type Object:Desacopla instancias de sus clases para que estas clases


puedan ser implementadas como instancias de una clase. El patrn Type
Object permite crear las nuevas "clases" dinmicamente en tiempo de
ejecucin, porque stas son instancias, y tambin permite al sistema
crear instancias de esas instancias de tipo clase.
Se recomienda aplicar el patrn de diseo Type Object cuando:
Las instancias de una clase necesitan estar agrupadas para implementar
los atributos y/o comportamiento comn.
La clase necesita una subclase por cada grupo para implementar los
atributos y/o comportamientos del grupo.

La clase requiere un gran nmero de subclases y/o la variedad total de


subclases que quizs se requieren y se desconoce.
-

Decorador:El patrn de diseo Decorador proporciona una forma flexible


de

incorporar

eliminar

funcionalidad

de

un

componente

dinmicamente sin modificar su aspecto o su funcionalidad.


Es til hacer uso del patrn Decorator cuando:
Se desea realizar cambios en forma dinmica de forma transparente a los
usuarios, sin las restricciones propias de la creacin de subclases.
Sea posible introducir o quitar responsabilidades de los componentes en
tiempo de ejecucin.

Ejemplos de Tipos de Sistemas Informticos:


A. Sistemas de procesamiento bsico de la informacin.
Sistemas de procesamiento de transacciones (TPS). Estos se dedican al
proceso fsico de los datos relacionados con ciertas transacciones rutinarias
y aisladas en el trabajo habitual de las entidades socioeconmicas, tales
como el :

Control de inventarios.

Control de activos fijos.

Nmina de sueldos o salarios, explotan poco las posibilidades de las


mquinas y el software actual.

Sistemas de automatizacin de oficinas (OAS). Incluye el empleo de


procesadores de texto, hojas electrnicas de datos, preparadores de
exposiciones, calendarizacin, comunicacin mediante correos electrnicos,
videoconferencias, implican la bsqueda y captacin de operaciones y en
muchos casos, la preparacin de decisiones para ejecutivos y directivos.
Pueden solucionar tareas tpicas de las oficinas, como la programacin y
control de actividades mediante agendas electrnicas individuales y
colectivas, registro y control de acuerdos y directrices, escritura y

conformacin de textos en informes, folletos, creacin, actualizacin y


consulta de bases de datos relacionadas con clientes y vendedores.
Sistemas de informacin para la direccin (MIS). Estos sistemas han
abarcado los TPS, integrando las mismas mediante sistemas de bases de
datos, y almacenes de datos, de forma tal que el sistema puede reflejar la
realidad compleja de una entidad socioeconmica, con todos sus
subsistemas y relaciones informativas. Se orientan, sobre todo, a
proporcionar informacin para la toma de decisiones y el control, por lo que
puede asegurarse que el rol de la computadora en estos sistemas es
relativamente pasivo.
Los MIS actuales abarcan una gran cantidad de funciones y tareas, tiene
enormes y complejos sistemas de bases de datos. Logran con una simple
entrada de informacin primaria que se desencadenen todas las operaciones
que esa entrada genera, sin que los usuarios-operadores tengan que
intervenir en nada ms que la entrada inicial. Ejemplo de este son los:

Software Mnica.

Visual conta.

Versat Sarasola.

Atenas para la contabilidad.

B. Sistemas de apoyo a la toma de decisiones. Se apoyan en los MIS, los que


crean y actualizan las bases de datos, que los primeros utilizan.
Un tipo muy importante de DSS son los sistemas empresariales de planeacin
de recursos (ERP).

Sistema de apoyo a las decisiones individuales

Sistema de apoyo a las decisiones en grupo

C. Sistemas basados en tcnicas WEB.


El auge en el mundo de uno de los servicios de la Internet, el World Wide
Web (W.W.W) ha hecho que surgiera una nueva modalidad de sistemas a partir
de la tecnologa WEB, y en el concepto de hipertexto e hipermedia.

Intranets

Sitios WEBs de orientacin externa

D. Sistemas de gestin del conocimiento.


Los sistemas que se encargan de esa gestin, o sea, deteccin, adquisicin,
conservacin y difusin del conocimiento son los sistemas de gestin del
conocimiento. Dos tipos de sistemas que utilizan las entidades socioeconmicas
son:

Sistemas de informacin de marketing (SIM)

Sistemas de gestin de relaciones (e-CRM).

Das könnte Ihnen auch gefallen