You are on page 1of 21

INGENIERIA DE SOFTWARE II

“ARQUITECTURA DE SOFTWARE”

Integrantes

 Garcia Gutierrez Kevin


 Garcia Velásquez Gabo

Docente
ING.DENNY JOHN FUENTES

Pimentel 08 de mayo del 2018


INDICE
1. Arquitectura de Software ................................................................................................................ 3
1.1. Fundamentos Básicos ……………………………………………………………………………

2. Modelo de Kruchten 4+1 vistas ……………………………………………………………………. 4


2.1. Vista Lógica …………………………………………………………………………………………… 5
2.2. Vista de Despliegue ………………………………………………………………………………. 7
2.3. Vista de Procesos …………………………………………………………………………………. 9
2.4. Vista Física …………………………………………………………………………………………… 10
2.5. +1 Vista de Escenarios …………………………………………………………………………. 12

3. Modelos de Arquitectura de Software ……………………………………………………. 13


3.1. Modelos Estructurales ………………………………………………………………………….
3.2. Modelos Dinámicos ……………………………………………………………………………
3.3. Modelo de Proceso ………………………………………………………………………….

4. Arquitecturas más Comunes ........................................................................................ 14


4.1. Arquitectura Monolítica ……………………………………………………………………………………15
4.2. Arquitectura Cliente – Servidor …………………………………………………………………………16
4.3. Arquitectura de 3 Capas …………………………………………………………………………………. 17
4.4. Arquitectura de N Capas ………………………………………………………………………………. 18

5. El Proceso de Arquitectura de Software ……………………………………………………………… 19

6. Linkografía ………………………………………………………………………………………………………… 20

2
ARQUITECTURA DE SOFTWARE

1. ¿Qué es la Arquitectura de Software?

La Arquitectura de Software es a grandes rasgos, una vista del sistema que


incluye los componentes principales del mismo, la conducta de esos componentes
según se la percibe desde el resto del sistema y las formas en que los componentes
interactúan y se coordinan para alcanzar la misión del sistema.

1.1. Fundamentos Básicos

La arquitectura de software se compone por:

 clientes y servidores.
 bases de datos.
 filtros.
 niveles en sistemas jerárquico.

Características:

La arquitectura de software forma la columna vertebral para construir un sistema de


software, es en gran medida responsable de permitir o no ciertos atributos de
calidad del sistema entre los que se destacan la confiabilidad y el rendimiento del
software. Además es un modelo abstracto reutilizable que puede transferirse de
un sistema a otro y que representa un medio de comunicación y discusión entre
participantes del proyecto, permitiendo así la interacción e intercambio entre los
desarrolladores con el objetivo final de establecer el intercambio de conocimientos
y puntos de vista entre ellos.

3
2. Modelo de Kruchten 4+1 vistas

Es una propuesta que consiste en un modelo llamado 4+1 vistas. Este modelo
describe el número de vistas que en él se proponen, 4 vistas que son consideradas
como ortogonales y la otra que es usada para vincular a las demás, en total serian
5 vistas.

Figura 1. Modelo de Kruchten 4+1 Vistas

4
2.1. Vista de Lógica

En esta vista se representa la funcionalidad que el sistema


proporcionara a los usuarios finales. Es decir, se representará lo que el
sistema debe hacer, y las funciones y servicios que ofrece. Para
completar documentación de esta vista se puede diagramar clases de
comunicación o de secuencia de UML.

Figura 2. Vista Lógica

5
Figura 3. Diseño Vista Lógica

Figura 4. Diseño de Vista Lógica

6
2.2. Vista de Despliegue

Se centra en la organización real de los módulos de software en el ambiente


de desarrollo.
El software se empaqueta en partes pequeñas que pueden ser bibliotecas o
subsistemas que son desarrollados por uno o un grupo de desarrolladores.
Los subsistemas se organizan en una jerarquía de capas, cada una brinda una
interfaz estrecha y bien definida hacia las capas superiores.

Figura 5. Vista de Procesos

7
Figura 6. Ejemplo Vista de Procesos

8
2.3. Vista de Procesos

Se tratan los aspectos de concurrencia y distribución, integridad del sistema,


y tolerancia a fallos.
Se especifica en cuál hilo de control se ejecuta efectivamente una operación de una
clase identificada en la vista lógica. Puede ser descrita como un conjunto de redes
lógicas de procesos que son ejecutados de forma independiente, y distribuidos a lo
largo de varios recursos de hardware conectados mediante un bus o a una red de
datos.

Figura 7. Vista de Procesos

9
2.4. Vista Física

Se toma en cuenta los requisitos no funcionales del sistema tales como,


disponibilidad, confiabilidad, desempeño entre otras más. El sistema se ejecuta
sobre varios nodos de procesamiento (hardware). Estos nodos son relacionados
con los elementos identificados de las vistas anteriores. En esta vista se especifican
varias configuraciones físicas. Por ejemplo, una para el desarrollo y las pruebas, o
para el despliegue del sistema en plataformas distintas.

Figura 8. Vista Física

10
Figura 9. Ejemplo Vista Física

11
2.5. (+1) Vista de Escenarios

Kruchten define una última vista:

Propone el uso de un pequeño subconjunto de escenarios que son


instancias de casos de uso. La función de los escenarios es relacionar las cuatro
vistas entre sí, de esta forma se cuenta con una perspectiva general del sistema,
que ayuda a descubrir nuevos elementos o validar la arquitectura.

Figura 10. Vista de Escenario Ultima Vista

12
3. Modelos de Arquitectura de Software

3.1. Modelos Estructurales

Son similares a la vista estructural, pero su énfasis primario


radica en la (usualmente una sola) estructura coherente del sistema
completo, en vez de concentrarse en su composición. Los modelos
de framework a menudo se refieren a dominios o clases de problemas
específicos. El trabajo que ejemplifica esta variante incluye
arquitecturas de software específicas de dominios, como CORBA, o
modelos basados en CORBA, o repositorios de componentes
específicos, como PRISM.

3.2. Modelos Dinámicos

Enfatizan la cualidad conductual de los sistemas, “Dinámico”


puede referirse a los cambios en la configuración del sistema, o a la
dinámica involucrada en el progreso de la computación, tales como
valores cambiantes de datos.

3.3. Modelos de proceso

Se concentran en la construcción de la arquitectura, y en los


pasos o procesos involucrados en esa construcción. En esta
perspectiva, la arquitectura es el resultado de seguir un argumento
(script) de proceso. Esta vista se ejemplifica con el actual trabajo
sobre programación de procesos para derivar arquitecturas.

13
4. Arquitecturas mas Comunes
4.1. Arquitectura Monolítica.

Es la arquitectura de los primeros sistemas operativos


constituidos fundamentalmente por un solo programa compuesto de
un conjunto de rutinas entrelazadas de tal forma que una puede llamar
a cualquier otra.

1. Interfaces gráficas de usuario (GUI).


2. Servicios de presentación, negocios y persistencia en la misma máquina.
3. No hay concurrencia de usuarios.

Figura 11. Arquitectura Monolítica

14
Ventajas:

1. Muy eficiente ya que se producen pocos cambios de contexto.

Desventajas:
1. Es difícil de depurar, un error en una función se puede manifestar en
otra distinta.
2. Difícil de ampliar.

4.2. Arquitectura Cliente – Servidor

Donde el software reparte su carga de computo en dos partes independientes,


que son los proveedores de los recursos o servicios (servidores) y los demandantes
(clientes), pero sin reparto claro de funciones.

Figura 12. Arquitectura Cliente - servidor

15
Ventajas:

1. Centralización del control.

2. Escalabilidad.

3. Fácil mantenimiento.

4. Tecnologías maduras y robustas.

4.3. Arquitectura 3 capas

La programación por capas es una arquitectura cliente – servidor en el


que el objetivo primordial es la separación de la lógica de negocios de la lógica de
diseño; un ejemplo de esto es la separación de la capa de datos de la capa de
presentación al usuario.

Figura 13. Arquitectura de 3 capas o Niveles

16
Ventajas:

1. Simplifica la comprensión y organización del desarrollo de sistemas


complejos.

2. Reduce las dependencias de forma que las capas más bajas no son
conscientes de ningún detalle de las superiores.

17
4.4. ARQUITECTURA DE N – CAPAS CON ORIENTACIÓN AL DOMINIO

Simplemente se crean las capas necesarias para resolver el problema que se


presente.

Figura 14. Arquitectura de N - Capas

18
5. El proceso de Arquitectura de Software

1. Es un proceso que involucra una metodología, principios, guías.


2. AS tiene como beneficios, reutilización, mejorar calidad, reducir costos,
reducir tiempos de entrega (time – to - market).
3. AS en Dominios Específicos.
4. AS de Líneas de Productos.

19
Linkografía:

Adrian Lasso. (2015). Arquitectura de Software. 03/05/2018, de Microsoft


Corporation Sitio web:
http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art110.asp

Michael Platt. (2014). Microsoft Architecture Overview. 03/05/218, de Microsoft


Corporation Sitio web:
http://msdn.microsoft.com/architecture/overview/default.aspx?pull=/library/en-
us/dnea/html/eaarchover.asp

Cervantes, H., Maceda P., & Castro Luis. (12 - 04 -2015). Arquitectura de
Software Conceptos y Ciclo de desarrollo. Mexico: Cengage Learning.

Vergara, J. & Umaña, H. (2018). A model-driven deployment approach for


scaling distributed software architectures on a cloud computing platform. 30-
04-2018, de IEEE Xplore Digital Library Sitio web: https://sci-
hub.tw/10.1109/ICSESS.2017.8342873

Kharchenko, O., Raichev, I., Bodnarchuk, I., & Zagorodna, N. (2018).


Optimization of software architecture selection for the system under design and
reengineering. 30-04-2018, de IEEE Xplore Digital Library Sitio web: https://sci-
hub.tw/10.1109/TCSET.2018.8336420

Pesantes, M., Lemus, C., Mitre, H., & Mejía, J. . (2013). Software Process
Architecture: Roadmap. 30-04-2018, de IEEE Xplore Digital Library Sitio web:
https://sci-hub.tw/10.1109/CERMA.2012.25

Maurice, H., Beek, T., & Antonio Bucchiarone ; Stefania Gnesi. (2013). Dynamic
Software Architecture Development: Towards an Automated Process. 30-04-
2018, de IEEE Xplore Digital Library Sitio web: https://sci-
hub.tw/10.1109/SEAA.2013.11

20
21

You might also like