Está en la página 1de 17

1

Instituto Tecnolgico Superior de Martnez de la


Torre

Ingeniera en Sistemas Computacionales.
Nombre de la asignatura: Ingeniera de Software.
Unidad III: Arquitecturas de software.

Docente: MA. Armando Hernndez Basilio.

Semestre y grupo: 6A.

Alumno:
Cesreo Mah Rubn
Sandoval Monzn Miguel Armando
Snchez Prez Emmanuel Julin
Rodrguez Zamudio Erick

Actividad: Resumen Unidad III.


Lugar y fecha: Martnez de la Torre, Ver. El 21 Mayo del 2014.


2

Unidad III: Arquitecturas de software.
Introduccin ..................................................................................................................... 3
3.1 DESCOMPOSICIN MODULAR ................................................................................. 4
Adaptabilidad: .................................................................................................................. 5
Estilos de descomposicin modular .............................................................................. 5
3.2 PATRONES DE DISEO ........................................................................................ 7
3.3 ARQUITECTURA DE DISEO ESPECFICO ............................................................. 8
3.4 DISEO DE SOFTWARE DE ARQUITECTURA MULTIPROCESO ........................... 9
3.5 DISEO DE SOFTWARE DE ARQUITECTURA CLIENTE SERVIDOR ................... 10
3.6 DISEO DE SOFTWARE DE ARQUITECTURA DISTRIBUIDA. .............................. 11
Arquitectura de objetos distribuidos............................................................................ 11
Middleware ..................................................................................................................... 12
Estndar CORBA ........................................................................................................... 12
3.7 Diseo de software de Arquitectura de Sistema de tiempo real ...................... 14
Sistema de tiempo real como sistema de estimulo ..................................................... 14
Sistemas operativos en tiempo real (RTOS) ................................................................ 14
Componentes del RTOS ................................................................................................ 14
3.8 Conclusin: ......................................................................................................... 16
3.9 Referencias bibliogrficas: ................................................................................. 17












3

Introduccin
En los inicios de la informtica, la programacin se consideraba un arte y se
desarrollaba como tal, debido a la dificultad que entraaba para la mayora de las
personas, pero con el tiempo se han ido descubriendo y desarrollando formas y
guas generales, con base a las cuales se puedan resolver los problemas. A estas,
se les ha denominado Arquitectura de Software, porque, a semejanza de los planos
de un edificio o construccin, estas indican la estructura, funcionamiento e
interaccin entre las partes del software.
Los buenos des arrolladores de software han adoptado, a menudo, uno o varios
patrones arquitectnicos como estrategias de organizacin del sistema, pero
utilizaban estos patrones de modo informal y no tenan ningn inters en hacerlos
explcitos en el sistema resultante.
En la presente investigacin se definen los diferentes conceptos, caractersticas y
tipos de arquitectura de software, provenientes de diferentes autores y pginas de
Internet del diseo de software as como la descomposicin modular y arquitectura
de dominio especfico.











4

Unidad 3 Arquitecturas de software.
3.1 DESCOMPOSICIN MODULAR
El diseo modular propone dividir el sistema en partes diferenciadas y definir sus
interfaces.
Ventajas del diseo modular son:
Claridad
Reduccin de costos
Reutilizacin
Los pasos a seguir son:
1. Identificar los mdulos
2. Describir cada mdulo
3. Describir las relaciones entre mdulos
Una descomposicin modular debe poseer ciertas cualidades mnimas para que se
pueda considerar valida.
1. Independencia funcional
2. Acoplamiento
3. Cohesin
4. Comprensibilidad
5. Adaptabilidad
Independencia funcional: Cada mdulo debe realizar una funcin concreta o un
conjunto de funciones afines.
Acoplamiento: El acoplamiento es una medida de la interconexin entre mdulos
en la estructura del programa.
Se tiende a que el acoplamiento sea lo menor posible, esto es, a reducir las
interconexiones entre los distintos mdulos de nuestra aplicacin.
Grados de acoplamiento
Fuerte:
Por contenido, cuando desde un mdulo se puede cambiar datos locales de
otro.


5

Comn, se emplea una zona comn de datos a la que tienen acceso varios
mdulos.
Moderado:
De control, la zona comn es un dispositivo externo al que estn ligados los
mdulos.
Dbil:
De datos, viene dado por los datos que intercambian los mdulos. Es el
mejor.
Sin acoplamiento directo, es el acoplamiento que no existe
Cohesin: Un mdulo coherente ejecuta una tarea sencilla en un procedimiento y
requiere poca interaccin con procedimientos que se ejecutan en otras partes de un
programa.
Comprensibilidad: Para facilitar los cambios, el mantenimiento y la reutilizacin de
mdulos es necesario que cada uno sea comprensible de forma aislada.

Adaptabilidad:
Previsin: es necesario prever que aspectos del sistema pueden ser
susceptibles de cambios en el futuro, y poner estos elementos en mdulos
independientes, de manera que su modificacin afecte al menor nmero de
mdulos posibles
Accesibilidad: debe resultar sencillo el acceso a los documentos de
especificacin, diseo, e implementacin
Consistencia: despus de cualquier adaptacin se debe mantener la
consistencia del sistema, incluidos los documentos afectados

Estilos de descomposicin modular
Hay dos estrategias principales que se pueden usar cuando se descomponga un
subsistema en mdulos:
Descomposicin orientada a objetos: En la que se descompone un
sistema en un conjunto de objetos que se comunican.



6

Descomposicin orientada a flujos de funciones: En la que se
descompone un sistema en mdulos funcionales que aceptan datos y los
transforman en datos de salida.


Fig. 01: descomposicin modular.

Ejemplo:
Sistema de procesamiento de facturas: Una organizacin ha emitido facturas a
sus clientes. Una vez por semana, los pagos realizados se comparan con las
facturas. Para esas facturas pagadas se emite un recibo. Para las facturas que no
has sido pagada dentro del plazo de pago se emite una reclamacin.

Fig. 02: Ejemplo descomposicin modular en una organizacin.


7


Fig. 03: Ejemplo descomposicin modular en una organizacin con
facturacin y recibos.

3.2 PATRONES DE DISEO

Un patrn de diseo se caracteriza como una regla de tres partes que expresa una
relacin entre cierto contexto, un problema y una solucin. Para el diseo de
software, el contexto permite al lector entender el ambiente en el que reside el
problema y qu solucin sera apropiada en dicho ambiente.
Coplien caracteriza un patrn de diseo eficaz del modo siguiente:
Resuelve un problema: los patrones entraan soluciones, no slo principios
o estrategias abstractas.
Es un concepto probado: los patrones incluyen soluciones con un historial,
no teoras o especulaciones
La solucin no es obvia: Los mejores patrones generan indirectamente una
solucin a un problema, enfoque necesario para los problemas ms difciles
del diseo
Describe una relacin: los patrones no slo describen mdulos, sino
estructuras y mecanismos ms profundos del sistema.
El patrn tiene un componente humano significativo: Todo el software
sirve para el confort humano o la calidad de vida; los mejores patrones
recurren explcitamente a la esttica y a la utilidad.


8

Dicho en forma ms clara, un buen patrn de diseo incorpora el conocimiento de
diseo pragmtico, ganado con dificultad, en una forma que permite que otros lo
reutilicen un milln de veces sin elaborarla dos veces de la misma forma.
Existen tres tipos de patrones de relevancia especial para el diseo orientado a
objetos:
Los patrones creacionales: se centran en la creacin, composicin y
representacin de objetos.
Los patrones estructurales: se centran en problemas y soluciones
asociados con la manera en la que se organizan e integran las clases y
objetos para construir una estructura ms grande.
Los patrones conductuales: se enfocan a problemas asociados con la
asignacin de responsabilidad entre los objetos y a la manera en la que se
efecta la comunicacin entre ellos.
3.3 ARQUITECTURA DE DISEO ESPECFICO

Al igual que los modelos gerenciales tambin pueden usarse los modelos
arquitectnicos que son especficos para un dominio particular de aplicacin. Si bien
las instancias de estos sistemas difieren en los detalles, la estructura arquitectnica
comn puede realizarse cuando se desarrollan nuevos sistemas.
Estos modelos arquitectnicos se denominan arquitecturas de dominio especfico,
existen dos tipos:
Modelos genricos: Son abstracciones obtenidas a partir de varios
sistemas reales. Encapsulan las caractersticas principales de estos
sistemas.
Modelos de referencia: son ms abstractos y describen una clase ms
amplia de sistemas. Constituyen un modo de informar los diseadores sobre
la estructura general de esta clase de sistemas. Los modelos de referencia
normalmente se obtienen a partir de un estudio del dominio de la aplicacin.
Representan una arquitectura ideal que incluye todas las caractersticas que
los sistemas podran incorporar.


9

Los modelos genricos tambin pueden servir como modelos de referencia y se
usan normalmente para comunicar conceptos del dominio y comprara o evaluar
posibles arquitecturas.
Las arquitecturas de referencia normalmente no se consideran como un camino
para la implementacin. Su principal funciones una forma de tratar arquitecturas
especficas del dominio. Un modelo de referencia proporciona un vocabulario para
realizar comparaciones. Dicho modelo acta como una base, frente a la cual los
sistemas pueden ser evaluados.

3.4 DISEO DE SOFTWARE DE ARQUITECTURA MULTIPROCESO

Es un sistema en el cual el sistema de software est formado por varios procesos
que pueden (aunque no necesariamente) ejecutarse sobre procesadores diferentes.
Es el modelo ms simple de un sistema distribuido.
Comn en sistemas gran desde tiempo real (estos sistemas recogen
informacin, toman decisiones usando esta informacin y envan seales a
los actuadores que modifican el entorno del sistema).
No son necesariamente sistemas distribuidos (si se disponen ms de un
procesador, entonces se puede implementar la distribucin).

Fig. 04: Ejemplo de arquitectura multiprocesos de un control de trfico.


10

3.5 DISEO DE SOFTWARE DE ARQUITECTURA CLIENTE SERVIDOR

Es una aplicacin que se modela como un conjunto de servicios proporcionados por
los servidores y un conjunto de clientes que usan estos servicios (orfaliy harkey,
1998).
Los principales componentes de este modelo son:

1. Un conjunto de servidores que ofrecen servicios a otros subsistemas.
2. Un conjunto de clientes que llaman a los servicios ofrecidos por los
servidores.
3. Una red que permite a los clientes acceder a estos servicios. (No es
estrictamente necesario ya que los clientes y los servidores podra
ejecutarse sobre una nica maquina).

Fig. 05: Estructura de arquitectura cliente-servidor.

Fig. 06: Ejemplo de un sistema bancario arquitectura C/S.


11

3.6 DISEO DE SOFTWARE DE ARQUITECTURA DISTRIBUIDA.

Un sistema distribuido es un sistema en el que el procesamiento de informacin se
distribuye sobre varias computadoras en vez de estar confinado en una nica
mquina.
Ventajas:
Comparticin de recursos.
Apertura
Concurrencia
Escalabilidad
Tolerancia a defectos.
Desventajas
Complejidad
Seguridad
Manejabilidad
Impredecibilidad

Arquitectura de objetos distribuidos

En esta arquitectura los componentes fundamentales del sistema son objetos que
proporcionan una interfaz a un conjunto de servicios que ellos suministran.
Otros objetos realizan llamadas a estos servicios sin hacer ninguna distincin lgica
entre un cliente y un servidor. Varias computadoras en una red y comunicarse a
travs de middleware.



12


Fig. 07 y 08: Estructura de arquitecturas de sistemas distribuidos.
Middleware
Se requiere middleware a dos niveles para soportar la computacin de objetos
distribuidos:
A nivel de comunicacin lgica, el middleware proporciona funcionalidades
que permiten a los objetos intercambiar datos y controlar informacin sobre
diferentes computadoras.
A nivel de componentes, proporciona una base para desarrollar
componentes compatibles. Estndares tales como CORBA, EJB o Active X
proporcionan una base para la implementacin de componentes con
mtodos estndar.
Estndar CORBA

Los estndares CORBA fueron definidos por el Object Management Group (OMG),
que define los estndares para el desarrollo orientado a objeto. Esta propone que
una aplicacin distribuida debera estar formada por varios componentes.
1. Objetos de aplicacin.
2. Objetos estndar definidos para un dominio especfico.
3. Servicios de computacin distribuida.
4. Facilidades horizontales tales como interfaz de usuario



13

Elementos principales de CORBA
Modelo de objetos para objetos de aplicacin: Considera que un objeto es una
encapsulacin de atributos y servicios, como ocurre en los objetos normales. Si un
objeto desea usar los servicios de otro, lo hace a travs de la interfaz (IDL)
Intermediario de peticiones de objetos (ORB): Conoce a los objetos que estn
solicitando servicios y a sus interfaces para as gestionar la comunicacin entre
ellos.
Conjunto de servicios de objetos que son servicios generales.

Fig. 09: Estructura CORBA.
Ventajas del modelo de objetos distribuidos:

Los objetos que proporcionan servicios pueden ejecutarse sobre cualquier
nodo de la red.
Es una arquitectura de sistema abierta que permite aadir nuevos recursos
si es necesario.
El sistema es flexible y escalable. Se pueden crear diferentes instancias del
sistema proporcionndolos mismos servicios por objetos diferentes o por
objetos reproducidos.
Es posible re configurar el sistema de forma dinmica mediante la migracin
de objetos a travs de la red.


14

3.7 Diseo de software de Arquitectura de Sistema de tiempo real

Un sistema de tiempo reales un sistema de software cuyo correcto funcionamiento
depende de los resultados producidos por el mismo y del instante de tiempo en el
que se producen estos resultados.
Sistema de tiempo real como sistema de estimulo
Una forma de ver un sistema de tiempo reales como un sistema de
estmulo/respuesta. Dado un determinado estmulo de entrada, el sistema debe
producirla correspondiente salida.

Fig. 10: Estructura de un sistema de tiempo real.
Los sistemas de tiempo real pueden ser:
Estmulos peridicos: Ocurren a intervalos de tiempo predecibles.
Estmulos a peridicos: Ocurren de forma irregular. Normalmente son
provocados utilizando el mecanismo de interrupciones de la computadora.
Sistemas operativos en tiempo real (RTOS)
Un RTOS gestiona los procesos y asignacin de recursos en un sistema de tiempo
real. Lanza y de tiene los procesos para que los estmulos puedan ser manejados y
asigna memoria y recursos del procesador.
Componentes del RTOS
Los componentes de un RTOS de penden del tamao y la complejidad del sistema
que se est desarrollando. Normalmente, exceptuando los sistemas ms sencillos,
todos incluyen:


15

1. Un reloj de tiempo real: Proporciona informacin para planificar los
procesos de forma peridica.
2. Un manejador de interrupciones: Gestin a las solicitudes a peridicas
de los servicios.
3. Planificador: Se encarga de examinarlos procesos que pueden ser
ejecutados y elegir uno de ellos para su ejecucin.
4. Gestor de recursos: Dado un proceso que es planificado para ejecucin,
el gestor de recursos asigna la memoria adecuada y los recursos del
procesador.
5. Despachador: Tiene la funcin de iniciar la ejecucin de un programa.

Niveles de prioridad
Nivel de Interrupcin: Es el nivel de prioridad ms alto. Se asigna a proceso
que necesitan una respuesta muy rpida. Uno de estos procesos ser el
proceso del reloj de tiempo real.
Nivel de Reloj: Este nivel de prioridad se asigna a los procesos peridicos










16

3.8 Conclusin:

Dentro las arquitecturas de SW existentes que hemos definido anteriormente
existen diferencias importantes que debemos tomar en cuenta antes de llevar a
cabo la construccin de un programa, en la materia de Ingeniera de software
generalmente en la fase de diseo, se analizan estos puntos de acuerdo a los
requisitos y la lgica de metodologas para que este cumpla sus funcionalidades de
manera ptima, tomando en cuenta que algunas arquitecturas de software pueden
ser utilizadas como remplazo de otras, se debe definir con anterioridad la viabilidad
en la utilizacin de esa arquitectura.
La arquitectura del software depende directa y proporcionalmente a los requisitos
del mismo.












17

3.9 Referencias bibliogrficas:

Ian Sommerville (2005).Ingeniera de Software. 7ma Ed,Cap12,pp.12241-258.
Agustn,R.(2013).Arquitectura de software.
Recuperadode:http://ithroshuejutla.blogspot.mx/
Vite,L.(2013).Unidad3:Arquitectura de software.
Recuperadode:http://ithuejutlalvf.blogspot.mx/2013/05/unidad-3-
arquitecturas-de-software.html

También podría gustarte