Módulo Arquitectura de Software
Módulo Arquitectura de Software
ARQUITECTURA DE
SOFTWARE
INGENIERÍA DE SISTEMAS
Arquitectura de Software
sfs
© Corporación Universitaria
Remington
Medellín, Colombia
Derechos Reservados ©2011
Primera edición
2021
Ingeniera de Sistemas
Piedad María Metaute Paniagua
Facultad de Ingenierías
Comité académico
Jorge Mauricio Sepúlveda Castaño
Decano de la Facultad de Ingenierías
[email protected]
Edición y Montaje
Dirección de Educación a Distancia y Virtual
Equipo de diseño gráfico
www.uniremington.edu.co
[email protected]
3
TABLA DE CONTENIDO
Pág.
4
2.5 PRUEBA INICIAL 41
5
3.10 TEMA 5. IMPLEMENTACIÓN DE LA ARQUITECTURA 99
5 GLOSARIO 127
6 BIBLIOGRAFÍA 129
Arquitectura de Software
sfs
PROPÓSITO GENERAL
ARQUITECTURA DE
SOFTWARE
Con el desarrollo del módulo, se pretende dar bases que permitan la elaboración de
propuestas relacionadas con el diseño arquitectónico para una necesidad real, en la cual
se puedan aplicar, técnicas, patrones, herramientas de diseño, donde se visualicen
soluciones arquitectónicas viables, antes de la construcción del producto de software.
Arquitectura de Software
sfs
ARQUITECTURA DE
SOFTWARE
a
OBJETIVO GENERAL
Diseñar arquitecturas de software, teniendo en cuenta las necesidades del cliente, métodos
y patrones arquitectónicos, así como las tendencias actuales de la arquitectura de software,
buscando calidad en el software que se desea construir de acuerdo con las expectativas
requeridas.
OBJETIVOS ESPECÍFICOS
➢ Identificar generalidades de la arquitectura de software, en relación con el papel del
arquitecto, ciclo de vida de la arquitectura y los componentes del Driver Arquitectónico.
➢ Identificar los componentes de algunos patrones de diseño arquitectónico, así como sus
ventajas y desventajas.
➢ Analizar cada una de las etapas del ciclo de vida de la arquitectura, así como las
herramientas y elementos que componen los drivers arquitectónicos, los diseños, la
documentación, la evaluación y la comunicación de la arquitectura del software.
Generalizaciones de la Gestión de la
Patrones Arquitectónicos
Arquitectura de Software Arquitectura de Software
Arquitectura de Software
sfs
8
1 UNIDAD 1. GENERALIZACIONES DE LA ARQUITECTURA
DE SOFTWARE
1.1 MAPA CONCEPTUAL
• Características de calidad del software: Son atributos que deberá cumplir el software
como por ejemplo de seguridad, usabilidad, eficiencia, buscando con ello cumplir con
requisitos de calidad.
• Ciclo de vida: Son fases que se deben tener en cuenta para la realización de procesos,
donde integrados constituyen un producto o un servicio.
Arquitectura de Software
sfs
9
• Desarrollo de software: Consiste en la construcción de un producto de software, basado
en los requisitos funcionales y no funcionales.
• Patrones de diseño: Es un esquema o base para el diseño, al cual se le adiciona una serie
de elementos que integrados buscan solucionar una necesidad.
10
1.5 PRUEBA INICIAL
Ubicar el número del concepto, en el paréntesis del significado que corresponda. Ver tabla 01.
Conceptualización General sobe Arquitectura de Software.
Fases para el
Lenguaje de Modelamiento Unificado, aplicable a todo
diseño de una
4 ( ) el ciclo para la elaboración de un producto
arquitectura de
informático.
software.
11
Persona encargada de pensar todos los aspectos de la
arquitectura, de todas las directrices, principios y
7 MVC ( )
desarrollo de los aspectos técnicos de un proyecto de
software.
Diagrama de
10 ( ) Metodología ágil para el desarrollo de software.
despliegue
El Diseño Arquitectónico, es una etapa intermedia en el ciclo de vida del software y se ubica
seguida de la Ingeniería de Requisitos, antes de los diseños del software. Es así como estos diseños
Arquitectura de Software
sfs
12
arquitectónicos generan beneficios importantes tanto para quienes elaboran el software como
para quienes lo requieren.
Entre algunos beneficios que genera el diseño arquitectónico se encuentran que este sirve
de guía, facilita la intervención del código, presenta claridad tanto para usuarios
informáticos como para usuarios no informáticos, minimiza el riesgo ya que de antemano
se ha considerado varios aspectos que ayuda a clarificar posibles inconvenientes que se
pueden presentar en el desarrollo, visualizando su impacto y de suceder el abordaje del
riesgo. De igual forma la arquitectura previa al desarrollo permite definir el alcance de la
aplicación, siendo útil además para aumentar la rentabilidad ya que disminuye con
reprocesos los que normalmente están relacionados con el aumento en el consumo de
recursos. A continuación, se amplía un poco más.
No es lo mismo trabajar aplicando una guía que ya fue analizada y validada, que realizar
un producto o un proceso utilizando la improvisación. Un ejemplo que se puede abordar
para realizar un comparativo puede ser un paseo familiar improvisado y otro planeado,
donde el improvisado tiene más riesgo de que el tiempo no se utilice de forma adecuada,
los costos para visitar lugares pueden ser más altos, los lugares no estén disponibles, entre
otros aspectos. En el caso del paseo planeado, ya se conocen los lugares a visitar, el tiempo
en cada lugar, el costo, el número de días programado, entre otros. En ese caso se
recomienda que antes de construir el software se elabore el diseño de la arquitectura.
• Facilita que tanto los informáticos como los usuarios finales estén informados
Una buena arquitectura, da claridad sobre la forma como se estructurará todos los
componentes del software, desde la parte específica del programa hasta la parte física
que se requerirá para su funcionamiento, dando información suficiente de acuerdo al
interés, donde al usuario final le interesará aspectos más externos como funcionalidad,
Arquitectura de Software
sfs
13
máquinas requeridas, entre otras, mientras que a los usuarios informáticos les interesará
estructuración interna del programa y una visión clara sobre los recursos para su
implementación.
• Reduce el riesgo
Permite tener una visión más amplia sobre la proyección de recursos en el tiempo, como
por ejemplo la adaptabilidad que deberá tener el software ante un cambio de tecnología,
cambio de reglas del negocio, nuevas legislaciones gubernamentales, entre otras,
ayudando así para que el software siga vigente ante determinados ajustes.
La arquitectura define los límites a los cuales puede llegar el sistema, sin ningún
inconveniente, como por ejemplo el nivel de seguridad, de rendimiento, disponibilidad,
fiabilidad, interoperabilidad, mantenibilidad, entre otros, siempre teniendo en cuenta la
calidad tanto en los requisitos funcionales como en los requisitos no funcionales.
• Aumento de la rentabilidad
Para el cliente es importante que el software cumpla con sus necesidades, pero de igual
forma que su precio sea asequible y para ello la arquitectura a través de su diseño muestra
la infraestructura tecnológica requerida para cubrir las expectativas (Servidores, servicios,
equipos de escritorio, dispositivos móviles, así como el tipo de base de datos, Sistemas
operativos, entre otros.
Es así como una buena arquitectura de software permite realizar mejores programas, de forma
más rápida, utilizando los costos adecuados y mayor seguridad en lo que se construye. Ver imagen
01. Algunos Beneficios del Diseño Arquitectónico antes de construir el software.
Imagen 01. Algunos Beneficios del Diseño Arquitectónico antes de construir el software
Arquitectura de Software
sfs
14
15
• Conclusión (no se escribe la palabra conclusión, se desarrolla. Es un aporte
personal)
• Referentes.
Nota: debe contener una página completa en letra Arial, tamaño 12.
TIPS
Una buena arquitectura de software define el alcance del programa,
ofrece pautas claras para la construcción del software, reduce el
riesgo, facilita la comunicación y aumenta la rentabilidad.
16
Imagen 02. Arquitecto de Software
Fuente: https://jucaripo.com/wp-content/uploads/2019/05/arquitectura-software.jpg
Es función del Arquitecto de Software, el análisis sobre las características de calidad que
deberá tenerse en cuenta en el software, siendo importante que ese tipo de requisitos
puedan ser medibles, alcanzables y comprobables y de igual forma deberá quedar claro la
prioridad de los atributos como por ejemplo si la seguridad es más importante que el
rendimiento, si la usabilidad es más importante que la escalabilidad, pero teniendo en
cuenta todos los que se requieran para que el software tenga calidad.
• Selección de la Tecnología
17
El Arquitecto deberá tener mentalidad abierta, con la capacidad de realizar ajustes
significativos en el caso que se requiera, todo ello basado en proceso de evaluación y
retroalimentación que en definitiva deberá satisfacer las necesidades de los clientes, tanto
en su funcionalidad como en su calidad.
• Facilitador
El arquitecto deberá ser un facilitador en el sentido que servirá de apoyo tanto al equipo
de desarrollo como a equipos de otras áreas como por ejemplo los de seguridad
informática, los de base de datos, los de gobierno TI y todas aquellas que de una u otra
forma se relacionen con la arquitectura de software.
• Líder y Formador
• Aseguramiento de la Calidad
18
Imagen 03. Algunas de las funciones del Arquitecto de Software
19
1.7.2 TALLER DE ENTRENAMIENTO
Teniendo en cuenta la información del ejercicio de aprendizaje anterior. Elaborar un mapa
conceptual, utilizando una herramienta de software como por ejemplo Cmaptools. El mapa
conceptual debe quedar muy claro y concreto. Consultar normas para realizar un mapa
conceptual.
TIPS
El Arquitecto de Software, deberá ser un líder, con gran capacidad de
integrar equipos de trabajo y amplios conocimientos administrativos y
técnicos en temáticas relacionadas con la tecnología informática.
20
A continuación, se realiza descripción de cada una de las fases del ciclo de vida de la arquitectura
de software.
• Requerimientos
• Los atributos de calidad, corresponde a los requisitos no funcionales que deberán ser
medibles, alcanzables y comprobables, de acuerdo con las funcionalidades que se
requiera en el software.
Driver Arquitectónicos
Los Driver Arquitectónicos, corresponden al conjunto de los requisitos funcionales, los atributos
de calidad y las restricciones. A continuación, se ejemplifica la conformación de los drivers. Ver
imagen 05. Conformación Driver Arquitectónicos.
Arquitectura de Software
sfs
21
Imagen 05. Conformación Driver Arquitectónicos
• Diseño
• Documentación
• Evaluación
22
software, antes de iniciar la codificación, lo que permite realizar ajustes que, de ser
detectados en otras etapas, generaría sobre costos y reproceso. Aunque la evaluación
realmente se puede evidenciar cuando el software se encuentra en producción.
• Implementación
Imagen 06. Ciclo de la arquitectura de Software asociado al ciclo de vida del software
23
➢ Video: 35 COSAS QUE NO SABÍAS SOBRE ARQUITECTURA DE SOFTWARE
➢ ” Ver Video”: https://www.youtube.com/watch?v=HJIG_sLZJd4
Conclusión
Arquitectura de Software
sfs
24
TIPS
Antes de realizar un diseño arquitectónico, es necesario tener claro
los requisitos funcionales del software, los atributos de calidad que
debe cumplir, así como sus restricciones.
Para la ingeniería de software, los requerimientos pueden partir de una necesidad, una idea, un
reto o una oportunidad de negocio que requiera ser sistematizada a través de medios
informáticos, donde un cliente y/o usuario real o proyectado (por los creadores de software),
tiene determinada necesidad de software, la que es transmitida al equipo de desarrollo, el cual
analiza los requerimientos, los convierte en requisitos de software plasmándolo en documentos
que reciben el nombre de Especificación, donde además se incorpora los requisitos no
funcionales (requisitos de calidad que se espera que tenga el software), así como sus restricciones
o limitaciones tanto funcionales, tiempos de entrega del producto y los costos en los cuales se
puede incurrir para su elaboración. Ver imagen 07. Problema y Solución Informática.
Arquitectura de Software
sfs
25
Imagen 07. Problema y Solución Informática
Cuando se habla de cliente, se hace alusión a aquella persona natural o jurídica que paga
por el producto informático, es así como las necesidades normalmente están alineadas a
una misión, visión o expectativas, bajo reglas o lineamientos con sus respectiva
limitaciones o restricciones que pueden ser de índole procedimental o a nivel de recursos.
Para la arquitectura de software se deberá crear un documento, donde se clarifique la
visión y alcance que tendrá el producto.
El usuario final será aquella persona o sistema que utilizará el software, donde no
necesariamente es el que paga por su elaboración. Se tiene en cuenta los requerimientos
del usuario, así como los atributos de calidad que deberá aplicársele al producto. Para la
arquitectura de software se deberá crear un documento, donde se clarifique los
requerimientos de usuario y los atributos o características de calidad.
El equipo de desarrollo se conforma por todos aquellos perfiles que de alguna u otra forma
contribuyen con la creación del producto de software (Arquitecto, programadores,
diseñadores, analistas…), los que se encargarán de tomar los requerimientos de usuario y
sacar los requisitos del sistema, los requisitos funcionales detallados, elaborar las
Arquitectura de Software
sfs
26
interfaces externas y analizar las restricciones. Para la arquitectura de software se deberá
crear un documento, donde se especifique los requisitos del software. Ver imagen 08.
Abordaje de los requerimientos y requisitos.
Ubicando un ejemplo de acuerdo con el nivel de abstracción, con relación a los interesados, el
documento de visión y alcance deberá evidenciar puntualmente los objetivos que se esperan
cumplir. Desde el lado del usuario final los requerimientos y atributos de calidad se deberán
evidenciar a través del uso de herramientas de ingeniería de software como por ejemplo casos
de uso, historias de usuario o cualquier otra herramienta apta para su interpretación que
posteriormente se pueda plasmar en etapas más avanzadas para su desarrollo. Ver imagen 09.
Ejemplo de Requerimientos y Requisitos e imagen 10. Herramientas para requerimientos de
usuario
Arquitectura de Software
sfs
27
Imagen 09. Requerimientos y Requisitos
28
1.9.2 TALLER DE ENTRENAMIENTO
Marca una X, según corresponda (si el Requisito es Funcional (RF) o si es Requisito No Funcional
(RNF)). Ver tabla 03. Requisitos Funcionales y No Funcionales.
2 Informe de facturación
8 Matrículas en línea
TIPS
De una buena especificación de los Requisitos Funcionales y los
Requisitos No Funcionales, dependerá que la Arquitectura de
Software se soporte sobre bases firmes.
Arquitectura de Software
sfs
29
1.10 TEMA 5. CARACTERÍSTICAS DE CALIDAD (ISO25000-2014)
Las características o atributos de calidad forman parte importante en el diseño de la arquitectura
de software, ya que su relevancia apunta hacia la satisfacción de los objetivos del negocio del
sistema, es decir, su importancia para el cliente.
Las características de calidad están representadas por los requisitos no funcionales como son:
Adecuación funcional, eficiencia en el desempeño, compatibilidad, usabilidad, fiabilidad,
seguridad, mantenibilidad, portabilidad. Todo ello con sus respectivas sub-características que
son elegidas de acuerdo con la necesidad que se requiera implementar en el software.
30
Cada característica se divide en varias sub-características o sub-atributos de calidad, que en caso
de elegirse para el software algunas de ellas, deberá evidenciarse la forma en que puedan ser
medibles, evidenciables para cumplir con los requisitos no funcionales requeridos. Ver imágenes
de sub-características de calidad ISO 25000.
• Adecuación Funcional
• Eficiencia de desempeño
31
• Compatibilidad
Capacidad de dos o más sistemas o componentes para intercambiar información y/o llevar a
cabo sus funciones requeridas cuando comparten el mismo entorno hardware o software. Esta
característica se subdivide a su vez en las siguientes subcaracterísticas. Ver imagen14. Sub
característica de calidad Compatibilidad.
• Usabilidad
Capacidad del producto software para ser entendido, aprendido, usado y resultar atractivo para
el usuario, cuando se usa bajo determinadas condiciones. Esta característica se subdivide a su
vez en las siguientes sub-características. Ver imagen15. Sub característica de calidad Usabilidad.
32
• Fiabilidad
• Seguridad
33
• Mantenibilidad
Esta característica representa la capacidad del producto software para ser modificado efectiva
y eficientemente, debido a necesidades evolutivas, correctivas o perfectivas. Esta característica
se subdivide a su vez en las siguientes sub-características. Ver imagen18. Sub característica de
calidad Mantenibilidad
• Portabilidad
Arquitectura de Software
sfs
34
Capacidad del producto o componente de ser transferido de forma efectiva y eficiente de un
entorno hardware, software, operacional o de utilización a otro. Esta característica se subdivide
a su vez en las siguientes sub-características. Ver imagen19. Sub característica de Portabilidad.
Las diferentes validaciones que se proponga para la evaluación de los requisitos no funcionales
dependerán del tipo de software, de sus requisitos funcionales, de las necesidades del cliente
y demás factores relacionados con las reglas del negocio, el alcance del software y todo aquello
que tenga relación con su especificidad. Teniendo como base esas necesidades, el arquitecto
procederá a evidenciar esos cuestionamientos en el diseño arquitectónico. En la siguiente imagen
se plantean algunos cuestionamientos. Ver imagen20. Algunos cuestionamientos para medir los
requisitos no funcionales.
35
• ¿Qué importancia tienen los requisitos no funcionales o atributos de calidad los productos
de software?
Arquitectura de Software
sfs
36
1.10.2 TALLER DE ENTRENAMIENTO
Analizar y responder bajo tu punto de vista las preguntas planteadas, relacionadas con los
Requisitos No Funcionales aplicables a los sistemas informáticos. Ver tabla 04. Aplicabilidad de
los atributos de calidad.
Responder los
Característica Preguntas cuestionamientos planteados,
desde tu punto de vista.
37
¿Qué impacto se tendría si el
Mantenibilidad desempeño del software baja por
alguna modificación a éste?
TIPS
Las características o atributos de calidad equivalen a los requisitos no
funcionales (RNF) del software, el usuario no los solicita, pero el
experto (a) informático los debe incorporar.
• RESTRICCIONES TÉCNICAS
✓ Métodos de diseño o implementación utilizado.
✓ Productos de hardware disponibles.
✓ Lenguajes de programación disponible.
✓ Personal de desarrollo disponible.
Arquitectura de Software
sfs
38
• RESTRICCIONES ADMINISTRATIVAS
✓ Proceso de desarrollo del sistema requerido.
✓ Costo y tiempo de desarrollo.
✓ Equipo de desarrollo.
✓ Elección de productos de desarrollo.
✓ Hardware en el cual se implantará el sistema.
✓ Incorporación de componentes comerciales.
Tanto los requisitos funcionales, como los no funcionales y las restricciones son el insumo para la
conformación del DRIVER ARQUITECTÓNICO, a utilizarse en la primera etapa de la Arquitectura
de Software que corresponde a la etapa de los Requerimientos de la Arquitectura.
1. ¿Qué es un requerimiento?
39
Tabla 05. Prueba de Entrenamiento
TIPS
Tanto los requisitos funcionales, como los no funcionales y las
restricciones son el insumo para la conformación del DRIVER
ARQUITECTÓNICO, a utilizarse en la primera etapa de la
Arquitectura de Software que corresponde a la etapa de los
Requerimientos de la Arquitectura.
Arquitectura de Software
40
2 UNIDAD 2. PATRONES ARQUITECTÓNICOS
2.1.1 MAPA CONCEPTUAL
41
2.4 OBJETIVOS ESPECÍFICOS
➢ Analizar la importancia de diferentes patrones arquitectónicos para el diseño de la
arquitectura de software.
➢ Diferenciar aspectos importantes de la arquitectura Cliente-Servidor, para la utilización en
diseños arquitectónicos.
➢ Identificar los principales aportes de la arquitectura por Capas para diseños
arquitectónicos
➢ Identificar los principales aportes de la arquitectura Modelo Vista y Controlador para los
diseños arquitectónicos.
➢ Diferenciar los principales componentes de la arquitectura orientada a servicios.
42
Los patrones son soluciones conceptuales. Esto significa que no pueden usarse de forma directa,
sino que deben ser “instanciados”, es decir, adecuados al contexto y al problema específico que
se busca resolver.
Tanto patrones como tácticas son conceptos de diseño abstractos que deben adecuarse al
problema particular y ser implementados posteriormente en el código. Existen, sin embargo,
otros conceptos de diseño, los cuales no son abstractos, sino que son código concreto: los
frameworks (marcos de trabajo). Estos son elementos reutilizables de software que proveen
funcionalidad genérica y se enfocan en la resolución de un problema específico, como puede ser
la construcción de interfaces de usuario o la persistencia de objetos en una base de datos
relacional. Frameworks, patrones y tácticas están relacionados pues, en general, los primeros
implementan una variedad de patrones y de tácticas. Un ejemplo de ello son los frameworks
enfocados en la creación de interfaces de usuario que, frecuentemente, implementan el patrón
llamado Modelo-Vista-Controlador. Ver imagen22. Frameworks Arquitectónicos.
43
2.6.2 TALLER DE ENTRENAMIENTO
Resolver las siguientes preguntas:
• Qué es un frameworks
TIPS
La reutilización de código corresponde a una técnica que se puede
utilizar, sólo se debe verificar si los componentes a utilizar son de uso
libre o pago.
Permite integrar diferentes componentes en una sola estructura arquitectónica. Ellos son:
• Presentación/Captación de la información.
• Procesos.
• Almacenamiento de la información.
• Puestos de trabajo
• Comunicaciones.
Arquitectura de Software
44
Ver imagen23. Patrón Arquitectónico Cliente-Servidor
➢ Tanto el cliente como el servidor pueden realizar tareas en conjunto, pero de igual forma
tienen independencia par realizar tareas de forma individual.
➢ Tanto la plataforma del cliente como la del servidor, podrá sufrir modificaciones,
actualizaciones, sin que el usuario final se de cuenta de lo que se está realizando,
permitiendo aplicar una de las características de calidad como es la escalabilidad.
45
Ventajas
Desventajas
• Puede generarse lentitud en las respuestas esperadas, cuando los recursos instalados no
soporten altos tráficos de procesos e información.
• Cuando el servidor sale de funcionamiento por cualquier motivo, afecta significativamente
al cliente, ya que los servicios no estarán disponibles.
• Los servidores normalmente requieren software y hardware de alta capacidad para
soportar los servicios de los clientes, generando respuestas oportunas, lo que aumenta los
costos de implementación y mantenimiento.
• No existe interacción directa entre clientes, ya que existe de por medio un servidor, que
se encarga de recibir y entregar procesos e información a los clientes.
➢ Video: CLIENTE-SERVIDOR
➢ ” Ver Video”: https://www.youtube.com/watch?v=SPmbxvvT7Aw
46
TIPS
El patrón Cliente-Servidor, permite optimizar procesos y recursos.
La arquitectura basada en capas se fundamenta en el ROL en relación con la interacción que tiene
la capa con otras capas, de igual forma cada capa posee RESPONSABILIDADES donde se deberá
tener claridad sobre la funcionalidad que deberá ser desarrollada.
Es la capa más cercana al usuario final, está compuesta por las vistas de usuario o
formularios y sus respectivos controles, donde esta capa debe estar en capacidad de
identificar los tipos de datos y mensajes que se pueden devolver para la interfaz de
usuario.
Está compuesta por los diferentes componentes de la aplicación, entre ellos clases,
objetos, métodos, interrelaciones. Es la parte central del programa, ya que hace posible
que los datos que ingresan a través de la capa de presentación sean procesados de
acuerdo con las condiciones del negocio y entrelazados con los almacenamientos de
datos.
47
Es la capa que permite la interacción con las bases de datos, utilizando componentes,
procedimientos almacenados que buscan la inserción y extracción de los datos. Permite
la comunicación de la lógica del negocio con la base de datos. Ver imagen24. Patrón
Arquitectónico Capas.
Fuente: https://arevalomaria.files.wordpress.com/2011/03/componentes.png
• Cada capa posee una responsabilidad clara, con interacción entre una capa y otra para
intercambiar información.
Arquitectura de Software
48
• Los recursos físicos donde se ubican las capas (computadora), puede darse en la misma
máquina o distribuir capas en diferentes máquinas, estando en capacidad de compartir
información.
• Para que exista comunicación entre un componente y otros de diferentes capas, se debe
realizar una excelente definición que obedece a funcionamientos claramente definidos.
• Las funcionalidades se definen claramente entre capas, donde cada capa asigna
información y abstracción a la capa superior, es así como la vista o capa de presentación
asigna responsabilidades a la capa de la lógica del negocio y esta a su vez a la de datos.
Ventajas
Desventajas
• En ocasiones se deben aplicar cambios a varias capas, generado por un cambio que afecta
a varios componentes, ya sea entre la misma capa u otras.
• Pueden existir redundancias entre varias capas, lo que puede generar ineficiencias en
funcionalidad.
• Dificultad de diseñar correctamente partes muy pequeñas de las capas (granularidad)
49
➢ Video: ARQUITECTURA DEL SOFTWARE MULTICAPA
➢ ” Ver Video”: https://www.youtube.com/watch?v=kHvxX1E9vIU
TIPS
El patrón por Capas permite estructuras el software en partes donde
se establecen límites, pero de igual forma permite realizar
integraciones para conformar un todo funcional.
Elementos de MVC
• Modelo
El modelo hace alusión a los datos del dominio (entidades que sirven para almacenar y
recuperar información del sistema), representado por aquellos elementos que permiten
el almacenamiento y manejo de datos, tanto las estructuras de base de datos como
estructuras tipo clases y la implementación de reglas, acciones y restricciones
relacionadas con las entidades del dominio.
Arquitectura de Software
50
• Vista
Las vistas deberán ser diseñadas, teniendo en cuenta los parámetros de usabilidad
facilitándole al usuario final su entendimiento de forma natural, ya que los elementos de
interacción constituyen la puerta de entrada del producto de software.
• Controlador
El controlador, permite integrar los Datos, con la Vista, ya que sirve de intermediario al
traducir las necesidades del usuario en información que, de acuerdo con la solicitud,
realiza el proceso y para ello utiliza los datos acorde a las reglas del negocio. El controlador
se convierte en el Coordinador entre la vista y los datos. Ver imagen25. Patrón
Arquitectura MVC
Ventajas
51
• La aplicación de pruebas unitarias se facilita, debido a que cada componente tiene una
funcionalidad específica.
• Se puede reutilizar los componentes, ya sea dentro del mismo programa u otros
programas.
• Se adapta fácilmente a equipos de desarrollo y a diversas tecnologías.
Desventajas
52
Según UAH (2015), presenta un modelo donde puede observarse, un esquema dividido en 2
zonas; una que abarca el ámbito funcional de la arquitectura y otra vinculada a la calidad de
servicio. Ver imagen26. Elementos de la Arquitectura Orientada a Servicios.
Funciones
53
• Registro de Servicios: es un repositorio de descripciones de servicios y datos que pueden
utilizar los proveedores de servicios para publicar sus servicios, así como los consumidores
de servicios para descubrir o hallar servicios disponibles.
Calidad de Servicio
Fuente: Fuente:
https://ingenieriadelsoftwareuah2015.files.wor https://magmdf2014.files.wordpress.com/
dpress.com/2015/03/soa-11.jpg 2014/12/soablog5.png
Características
54
• Deberá satisfacer requisitos de calidad como rendimiento, fiabilidad, disponibilidad,
seguridad.
• Permite agilizar los procesos para que puedan hacer negocios de manera más eficiente.
• Proporciona espacios para que los clientes se adapten fácilmente al cambio y avance
tecnológico.
Motiva hacia la implementación de nuevas estrategias, acordes con las necesidades económicas
y sociales.
Ventajas
Desventajas
55
• Exige altos niveles de conocimiento del negocio, para seleccionar procesos, clasificarlos y
agrupar los que son comunes, con el fin de formar capas de servicios para ser accedidas
en el momento que se requieran.
• La actualización de un servicio a nivel de interfaz, codificación, entre otros requiere de
evaluaciones donde se evidencie su impacto, poniendo a prueba el buen diseño del
servicio.
TIPS
El patrón Orientado a Servicios (SOA), favorece el uso de servicios de
terceros que pueden ser integrados a programas propios
56
Este tema se orienta hacia la indagación de tendencias y el análisis que se debe realizar para
abordar patrones que se estén proponiendo para mejorar o revaluar los ya existentes.
No es difícil reconocer la relación causal entre la inversión en agilidad técnica y cualquier número
de potenciales beneficios estratégicos y operacionales. Por ejemplo, una arquitectura moderna,
flexible, proporciona el fundamento que se necesita para respaldar el desarrollo y despliegue
rápidos de soluciones que, a su vez, permiten innovación y crecimiento. En un panorama
competitivo que continuamente es redibujado por la disrupción tecnológica, el tiempo-al-
mercado puede ser un diferenciador del mercado. A la luz de esto, financiar consistentemente
iniciativas de modernización de la pila de tecnología – al tiempo que se permanece consciente de
los intercambios – puede bien valer la pena la inversión.
los arquitectos de iniciativa son responsables por el diseño de un proyecto o de una iniciativa de-
cara-al-negocio. Trabajan con unidades de negocio para ayudarles a definir y dar forma a sus
necesidades de tecnología para acondicionarlas con las metas de la empresa ágil general,
utilizando capacidades entregadas a través de los servicios de la empresa.
TIPS
Lo que hoy se constituye como última tecnología, mañana estará
obsoleto
Arquitectura de Software
57
3 UNIDAD 3. GESTIÓN DE LA ARQUITECTURA DE
SOFTWARE
3.1 MAPA CONCEPTUAL
58
3.3 OBJETIVO GENERAL
➢ Analizar cada una de las etapas del ciclo de vida de la arquitectura, así como las
herramientas y elementos que componen los drivers arquitectónicos, los diseños, la
documentación, la evaluación y la comunicación de la arquitectura del software.
59
El Diseño Físico tiene que ver con mostrar el detalle de los
3 componentes y configuraciones como por ejemplo las máquinas y su
distribución.
El diseño del software y su codificación son etapas que se desarrollan
4
antes de realizar los diseños arquitectónicos.
Una buena arquitectura del software permite detectar errores antes
5
de construir el producto informático.
Objetivo: Identificar los drivers arquitectónicos de acuerdo con la situación planteada, en cuanto
a la visión y alcance del negocio y los requerimientos de la arquitectura, donde se desea mejorar
cada día el servicio de tanqueo, en las diferentes estaciones de servicio de Texaco en Envigado y
sabaneta.
Situación: En las estaciones de gasolina Texaco del municipio de Envigado y del municipio de
Sabaneta (municipios cercanos a Medellín), se requiere un software que maneje la información
de los diferentes tanqueos que se realizan (autoservicio), donde los vehículos pueden ser de
varios tipos (moto, automóvil, escalera, bus, entre otros). Cuando el vehículo llega por primera
vez, deberá ser registrado por el conductor, donde un lector tomará la placa del vehículo y en una
pantalla táctil de forma ágil, se podrá ubicar información para terminar el registro, como por
Arquitectura de Software
60
ejemplo la identificación del dueño del vehículo, la cual será sincronizada y verificada
automáticamente con las bases de datos donde se encuentre matriculado dicho vehículo
(Secretaría de Tránsito), si el vehículo ya ha sido registrado en cualquier estación de Texaco
Envigado y Sabaneta, bastará con pasar por el punto donde se encuentra el lector de placa para
iniciar su proceso de abastecimiento de combustible.
Para el proceso de abastecimiento de combustible, se podrá elegir un tanqueo por valor o por
cantidad de galones, ya sea corriente, extra, diésel, entre otras opciones, donde el software
deberá sincronizarse con el servicio de pago, a través de tarjeta débito o crédito, NO permitirá el
pago en efectivo.
De igual forma el sistema deberá enviar al dueño del vehículo un mensaje de texto al teléfono
móvil, donde se le informe lugar del tanqueo, fecha, hora, tipo de combustible, cantidad.
El sistema deberá permitir los siguientes informes para el Gerente (listado de tanqueos diarios,
mensuales, vehículos que más utilizan el servicio, recibo para el conductor).
Es importante tener en cuenta que dicha aplicación deberá ser web y móvil, y deberá contar con
servidor (es), servicios, dispositivos, aplicaciones, entre otras que garanticen calidad en el
producto y servicio.
Para desarrollar el ejemplo, se trabajará con los siguientes puntos, aclarando que esto dependerá
del formato que utilice cada Arquitecto, donde en todo caso se deberá ver reflejado los elementos
del Driver (Requisitos Funcionales, Requisitos No Funcionales y Restricciones), lo que será la base
para la segunda etapa correspondiente al Diseño de la Arquitectura.
61
✓ Alcance del sistema.
✓ Contexto del sistema (tabla de interesados y diagrama de contexto)
✓ Entorno de operación, en relación con máquinas, aplicaciones, dispositivos,
sistemas externos, Sistemas Operativos, entre otros.
✓ Información adicional en caso de existir (tiempo de entrega tanto para
funcionalidad como para otros servicios, avances…)
• Requerimientos de la arquitectura
✓ Requisitos Funcionales
✓ Casos de uso o historias de usuario (derivados del documento de visión y alcance)
✓ Especificación del caso de uso.
✓ Casos de uso primarios
➢ REQUISITOS NO FUNCIONALES
➢ RESTRICCIONES
A continuación, se presenta el desarrollo de la Visión y alcance del negocio, así como los
Requerimientos de la arquitectura, relacionados con la situación planteada para la Gasolinera
Texaco.
La gasolinera TEXACO para 2022, tiene previsto incrementar sus ventas en un 30% en las
estaciones de servicio de Envigado y Sabaneta, y ser reconocida por su innovación y calidad en el
auto servicio, donde los vehículos podrán acceder al suministro de combustible con lectura a
través de dispositivo electrónico de su placa sincronizándose los datos del vehículo con el Sistema
de Tránsito donde se encuentre registrado, donde el cliente podrá realizar su pago Online,
ofreciéndosele seguridad, confiabilidad, eficiencia, compatibilidad en todo momento.
Contexto del negocio (antecedentes, descripción del problema o necesidad, reto o idea).
Arquitectura de Software
62
La Chevron Texaco es una de las empresas líderes en el país en cuanto al suministro de
combustibles, por la calidad, ya que mezclan su producto con Techron para un mejor rendimiento
y limpieza, lo que se traduce en una mayor duración de los motores de los vehículos. La empresa
quiere fortalecer la calidad del servicio de suministro de combustible, implementando un
software que permita agilizar el procedimiento de tanqueo de los vehículos y la realización del
pago Online, así como los respectivos reportes. Para ampliar la información. Ver la situación que
se plantea arriba.
Objetivos del negocio en relación con lo que se espera del sistema, visión de la solución, donde
se elabora tabla con (id y descripción del objetivo del negocio).
ON-01 Aumentar las ventas en las estaciones de Envigado y Sabaneta a 2022 en un 30%.
Permitir al usuario realizar pagos por medio de las plataformas de pago que existen
ON-03
actualmente.
Sincronizarse con las diferentes bases de datos de los Sistemas de Tránsito de los
ON-04
municipios para validar información de los propietarios de los vehículos
ON-05 Obtener informes del sistema tanto para la gerencia como para el cliente
Características del sistema, utilizando tabla (Id, descripción, prioridad, id del objetivo del
negocio asociado). Ver
Arquitectura de Software
63
Tabla 08. Características del Sistema
Objetivo de
ID Descripción Prioridad Negocio
Asociado
64
El sistema deberá integrarse sincronizarse adecuadamente
CAR-
con el Sistema de Tránsito de los diferentes municipios, Alta 0N-06
14
donde esté inscrito el vehículo.
Descripción Responsabilidades
• Levantamiento de requerimientos
Analistas • Análisis
Diseñadores • Desarrollo del sistema
• Desarrollo de la base de datos
Arquitectura de Software
65
Desarrolladores, • Implementación del sistema
entre otros usuarios • Capacitación al personal
informáticos • Mantenimiento del sistema
• El sistema deberá poder ser usado desde los siguientes navegadores web:
o Internet Explorer 11
o Microsoft Edge
o Firefox 10+
o Google Chrome 17+
Arquitectura de Software
66
o Safari
o Opera
• Los siguientes dispositivos móviles deberán ser soportados por el sistema:
o iPhone/iPod Touch, iOS 6+
o Android 4+
• El sistema será desarrollado en Java con el framework Sprint Boot, dependiendo del
perfil de programadores del equipo.
• Servidor de aplicación será usado un servidor DELL PowerEdge T330 tower Server cuyas
características son las siguientes:
o Sistema operativo Windows 2016 STD
o Procesador Intel Xeon E3 1230 v5 Quad Core 3.4GHz 8MB
o Memoria RAM de 32GB DDR4
o Almacenamiento de 16TB (4 x 4TB) HDD, PERC S130 RAID.
• La base de datos será gestionada sobre otro servidor DELL PowerEdge T330 tower cuyas
características se pueden ver en el punto anterior, esta base de datos será desarrollada
en MySQL.
• Se usarán tabletas de alto rendimiento para el registro ágil de los vehículos.
• Se utilizará una cámara NLGhost para hacer el escaneo de las placas, las características
de la cámara son las siguientes:
• Se usará la metodología para desarrollo ágil SCRUM.
• Se utilizará servicios web como PayPal, PSE y los de los diferentes bancos para el pago
con tarjeta y así integrar el sistema con los sistemas de pago.
• Se usará la información de las bases de datos de las Secretarias de Tránsito, inicialmente
las del municipio de Sabaneta y Envigado para la validación y registro de los vehículos.
Información adicional en caso de existir (tiempo de entrega tanto para funcionalidad como para
otros servicios, avances)
67
• El sistema debe estar completamente funcional al momento de la entrega incluyendo la
integración con las plataformas virtuales de pagos y las oficinas de tránsito a la cual
pertenecen los vehículos.
• El sistema debe ser pensado para que a futuro se pueda expandir a las diferentes
gasolineras de Chevron Texaco del país.
Requerimientos de la arquitectura
Requisitos Funcionales
68
CUADRO DE ESPECIFICACIÓN DEL CASO DE USO
Tabla 11.
Especificación Característica
Descripción del Caso de Uso
de Casos de asociada
UsoID_CU
CAR-01, CAR-
CU-001 Registrar vehículo utilizando un lector de placa 03, CAR-09,
CAR-12
CAR-04, CAR-
Consulta la información del propietario del vehículo en las
CU-004 09, CAR-10,
bases de datos del tránsito
CAR-11
CAR-07, CAR-
Realizar pago utilizando un servicio a terceros, utilizando
CU-006 10, CAR-11,
tarjeta
CAR-13
69
CASOS DE USO PRIMARIOS
Se seleccionan los casos de uso principales que se deben considerar para el abordaje de la
arquitectura del software. Ver Tabla 12. Casos de Uso primarios o principales para la Arquitectura
Registro del vehículo, utilizando un lector de placa, siendo este evento uno de
los más importantes, ya que abre todo el proceso de autoservicio de
CU-01 combustible, Interacción con las bases de datos del Tránsito, con el fin de
validar la información del dueño del vehículo, ayudando con esto a la seguridad
del vehículo.
Realizar el pago del servicio obtenido, con la restricción que debe pagarse con
CU-006
tarjeta y utilizando un servicio de pago a terceros.
Los diversos reportes que pueda sacar el gerente son importantes para poder
CU-07 generar métricas e indicadores y así aplicar políticas de mercadeo que ayuden
a la empresa, así como el recibo de pago al usuario.
REQUISITOS NO FUNCIONALES
Atributos de calidad relevantes para el sistema (Se trabajó para este análisis con cuatro atributos
de calidad como son la Adecuación Funcional, la Seguridad, la Compatibilidad y la fiabilidad). Ver
Tabla 13. Requisitos de calidad a considerarse en la arquitectura.
Arquitectura de Software
70
Tabla 13. Requisitos de calidad a considerarse en la arquitectura
Restricciones
71
El tiempo del servicio en la parte de registro y tanqueo no
De los usuarios
debe ser superior a 5 minutos.
Objetivo: Identificar los drivers arquitectónicos de acuerdo con la situación planteada, en cuanto
a la visión y alcance del negocio y los requerimientos de la arquitectura, donde se desea mejorar
cada día el acercamiento entre institución y acudientes o padres de familia.
Situación: La institución educativa San Antonio de Prado, dentro de su visión se proyecta como
una institución reconocida por su alto nivel académico y formación humana, donde se debe
mejorar cada día entre otras cosas el acercamiento entre la institución y los acudientes o padres
de familia, ya que estos últimos muchas veces no se dan cuenta si sus niños (as) ingresaron al
colegio, donde se ha dado el caso de que algunos de ellos salen de su casa uniformados, no asisten
al colegio y regresan a casa supuestamente después de la jornada académica como si hubiesen
estado estudiando.
Arquitectura de Software
72
De igual forma dentro del colegio se presenta muchas veces que algunos estudiantes no ingresan
a algunas clases, donde los docentes no se dan cuenta si están dentro de la institución o se
quedaron por fuera.
Es así como dicha institución requiere de un software que le ayude con dicha gestión, enviándole
un mensaje al acudiente cuando el estudiante ingrese y cuando sale de la institución, de igual
forma cuando ingresa a cada clase, teniendo en cuenta que los estudiantes cambian de salón,
para recibir cada asignatura.
El sistema también debe enviar al móvil del docente una notificación sobre que estudiante faltó
al colegio por cada grupo donde le corresponda clase ese día.
Es importante tener en cuenta que dicha aplicación deberá ser web y móvil, deberá funcionar
para las tres sedes que posee el colegio, donde se instalará un equipo en la portería de cada sede
y un dispositivo para el ingreso a cada aula, los que deberán estar conectados a un servidor en la
nube. También deberá contar con atributos de calidad que garantice la seguridad, compatibilidad,
seguridad y eficiencia en el producto de software.
El sistema no manejará notas ni hojas de vida de los estudiantes y deberá estar listo y probado en
el mes diciembre de este año.
➢ Página Institucional:
https://www.iesanantoniodeprado.edu.co/
➢ PEI Institucional:
https://media.master2000.net/uploads/78/2019/PROYECTO_EDUCATIVO_INSTITUCION
AL_2019.pdf
Se pide:
73
3) Objetivos del negocio en relación con lo que se espera del sistema, visión de la solución
(elaborar tabla con id y descripción del objetivo del negocio)
4) Construcción de tabla sobre características del sistema (crear tabla con Id, descripción,
prioridad, id del objetivo del negocio asociado).
1) Drivers funcionales
2) Driver (cuadro de atributos de calidad relevantes para el sistema, trabajar mínimo con 4).
TIPS
Los requerimientos corresponden a la primera fase de la Arquitectura
del Software y está compuesta por los Drivers Arquitectónicos
(Requisitos Funcionales, Requisitos No Funcionales o de Calidad y las
Restricciones).
Arquitectura de Software
74
3.7 TEMA 2. DISEÑOS ARQUITECTÓNICOS
Según Cervantes, Velasco, y Castro (2016), el diseño es la especificación de un objeto, creado por
algún agente, que busca alcanzar ciertos objetivos, en un entorno particular, usando un conjunto
de componentes básicos, satisfaciendo una serie de requerimientos y sujetándose a
determinadas restricciones, donde la etapa de diseño de la arquitectura puede verse como una
transformación, que realiza el arquitecto, de los drivers hacia las distintas estructuras que
componen a la arquitectura. Teniendo en cuenta la toma de decisiones en relación con los drivers
de la arquitectura y la creación de estructuras para satisfacerlos, la Identificación de todos los
módulos, el diseño de sus interfaces, el diseño de los detalles de implementación de módulos
previo a su codificación y prueba, los principios de diseño, el método a utilizar, el patrón
arquitectónico, así como las herramientas de diseño. Ver imagen30. Ciclo de vida de la
arquitectura de software (Diseño).
75
Cervantes, Velasco, y Castro (2016) Puntualizan que:
• El objeto se refiere a las distintas estructuras (físicas, lógicas, de ejecución) que componen
la arquitectura de software.
• El agente es el(los) arquitecto(s) de software u otros encargados del diseño.
• Los objetivos son la satisfacción de los requerimientos que influyen a la arquitectura (los
drivers) y la partición del sistema con el fin de realizar estimación o guiar su desarrollo.
• El entorno se refiere tanto al contexto de uso del sistema, por parte de los usuarios finales,
como al ambiente en que se desarrolla el sistema.
• Los componentes básicos son los elementos de diseño, o bien, los conceptos de diseño.
• El conjunto de requerimientos incluye la lista de drivers, tanto los requerimientos
funcionales como los no funcionales (principalmente los atributos de calidad).
• Las restricciones son todas las limitaciones impuestas ya sea por el cliente o por la
organización de desarrollo; también son parte de los drivers.
La siguiente imagen muestra los diferentes niveles de diseño, iniciando con aspectos macro, hasta
llegar a un detalle que genere mayor entendimiento. Ver imagen31. Niveles del Diseño de la
Arquitectura.
76
Para realizar el diseño arquitectónico, se deberá tener presente los siguientes principios. Ver
imagen32. Principios de diseño.
• PATRONES
En 1994 apareció el primer catálogo de patrones de diseño que, hasta la fecha, sigue siendo
una obra de referencia, y que se llama Patrones de diseño: elementos de software orientado
a objetos reutilizables (Gamma, Helm, Johnson y Vlissides, 1994). Este libro, cuyos autores
son conocidos como el “GoF”, o “Gang of Four” (banda de los cuatro) documenta 23 patrones
enfocados a problemas de diseño de granularidad relativamente fina.
Los patrones son soluciones conceptuales. Esto significa que no pueden usarse de forma
directa, sino que deben ser “instanciados”, es decir, adecuados al contexto y al problema
específico que se busca resolver.
77
“Cada patrón es una regla de 3 partes, que expresa una relación entre un contexto, un
problema y una solución. Como un elemento en el mundo, cada patrón es una relación
entre un contexto, un sistema de fuerzas que ocurren repetidamente en ese contexto y
una configuración espacial que permite que esas fuerzas se resuelvan entre sí. Como
elemento de un lenguaje, un patrón es una instrucción que muestra como puede ser usada
esta configuración espacial una y otra vez para resolver el sistema de fuerzas, siempre que
el contexto lo haga relevante.”
Los patrones arquitectónicos se utilizan para expresar una estructura de organización base o
esquema para un software. Muestran aspectos fundamentales de la estructura de un sistema
software. Especifican un conjunto predefinido de subsistemas con sus responsabilidades y una
serie de recomendaciones para organizar los distintos componentes. Ver imagen33. Patrones
PATRONES
PATRONES
IDIOM PATRONES DE DISEÑO
ARQUITECTÓNICOS
Se centran en la estructura
Esquemas para refinar los
del sistema, en la definición
subsistemas o componentes
de subsistemas, sus
de sistema software o sus
Patrones que ayudan a responsabilidades y reglas
relaciones, describen una
implementar aspectos sobre las relaciones entre
estructura recurrente y
particulares del diseño en un ellos. Proporcionan un
común que resuelve un
lenguaje de programación conjunto predefinido de
problema de diseño dentro
específico, como los descritos subsistemas, sus
de un contexto como los
por Coplien (1991) resonsabilidades y las líneas
descritos por Gamma (1995).
guía para organizar sus
También los patrones GRASP
relaciones. Buschman (1996)
estarían en esta categoría
o Shaw y Galan (1996)
• TÁCTICAS
Las tácticas son conceptos de diseño que influyen sobre el control de la respuesta a un atributo
de calidad particular. A diferencia de los patrones, no presentan soluciones conceptuales
Arquitectura de Software
78
detalladas, sino que son técnicas probadas de las ciencias de la computación con las que se
resuelven problemas en aspectos particulares relacionados con diversos atributos de calidad. Ver
imagen34. Ejemplo de táctica para el atributo de seguridad.
• FRAMEWORKS
Tanto patrones como tácticas son conceptos de diseño abstractos que deben adecuarse al
problema particular y ser implementados posteriormente en el código. Existen, sin embargo,
otros conceptos de diseño, los cuales no son abstractos, sino que son código concreto: los
frameworks (marcos de trabajo). Estos son elementos reutilizables de software que proveen
funcionalidad genérica y se enfocan en la resolución de un problema específico, como puede ser
la construcción de interfaces de usuario o la persistencia de objetos en una base de datos
relacional.
Frameworks, patrones y tácticas están relacionados pues, en general, los primeros implementan
una variedad de patrones y de tácticas. Un ejemplo de ello son los frameworks enfocados en la
creación de interfaces de usuario que, frecuentemente, implementan el patrón llamado Modelo-
Vista-Controlador. Ver imagen35. frameworks Arquitectónicos.
Arquitectura de Software
79
35. Frameworks Arquitectónicos
Fuente: https://bbarrosa.files.wordpress.com/2019/07/mejores-lenguajes-de-programacion-2018-1080x675.jpg
80
Imagen36. Método Diseño Guiado por Atributos (ADD) o (Attribute Driven Design, o ADD)
81
Imagen37. Método Diseño Centrado en la Arquitectura, o ACDM
82
Imagen38. Método de Definición de Arquitecturas de Rozanski y Woods
83
REPRESENTACIÓN DE LA ARQUITECTURA EN CAPAS
Fuente: https://sg.com.mx/buzz/autores/humberto-cervantes
VISTA LÓGICA
Incluyen clases, paquetes, módulos o subsistemas. Así mismo, las relaciones o formas de
organización utilizadas con frecuencia incluyen es-parte-de (que se emplea para representar una
relación de agregación o composición), depende-de (la cual se usa para indicar que la unidad
requiere de otra para funcionar correctamente), y es-un (que se utiliza para indicar que la unidad
es “hija” de otra unidad la cual funge como “padre” y, por lo tanto, la unidad “hija” posee algunas
de sus características). La relación <<usa>> se utiliza para indicar el tipo de vínculo entre los
Arquitectura de Software
84
elementos de las vistas; <<usa>> es el mecanismo para indicar una relación depende-de en UML.
Ver imagen40. Diseño de Vista Lógica, utilizando un diagrama de paquetes.
Fuente: https://sg.com.mx/buzz/autores/humberto-cervantes
VISTA DE COMPORTAMIENTO
Las vistas de comportamiento describen estructuras cuyos elementos denotan entidades visibles
en tiempo de ejecución, por ejemplo, instancias, procesos, objetos, clientes, servidores o
Arquitectura de Software
85
almacenes de datos. Además del nombre, el tipo y la funcionalidad ofrecidos, las propiedades de
los elementos en este tipo de vistas incluyen por lo habitual información sobre valores específicos
de atributos de calidad que pueden observarse cuando se ejecuta el sistema, por ejemplo,
confiabilidad, desempeño o seguridad. Por otra parte, las relaciones describen la naturaleza de
los mecanismos o protocolos de comunicación utilizados para la comunicación entre los
elementos de la vista. De esta forma, flujo-de-datos, llamada-a-procedimiento-remoto, acceso-
compartido, broadcasting (captura de fuentes de video en tiempo real), o incluso SOAP (protocolo
estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de
intercambio de datos XML), son ejemplos válidos de relaciones que pueden emplearse durante la
documentación de vistas de comportamiento (Clements, et al., 2010). Ver imagen41. Diseño de
Vista de Comportamiento, utilizando un diagrama de secuencia.
Fuente: https://sg.com.mx/buzz/autores/humberto-cervantes
Arquitectura de Software
86
Imagen42. Diseño Vista Física
Fuente: https://sg.com.mx/buzz/autores/humberto-cervantes
Ver los siguientes videos, donde se puede observar la forma de diseñar diagramas UML,
requeridos para el diseño de la arquitectura de software.
87
3.7.1 EJERCICIO DE APRENDIZAJE
Visualizar cada uno de los videos, donde se observa paso a paso cómo diseñar diagramas tipo
UML
En esta sección se presenta el patrón a utilizar (Cliente-Servidor, VMC, Capas, entre otros…),
basado en el patrón arquitectónico seleccionado.
El diagrama general deberá mostrar los elementos del patrón elegido y los elementos principales
de la situación abordada (tema- reto). Tener en cuenta los Driver elaborados, ya que será la base
para presentar este diseño. Ver imagen43. Ejemplo de diagrama basado en capas.
88
Fuente: http://repositorio.cedia.org.ec/bitstream/123456789/952/1/Documento%20de%20Arquitectura%20CAD-
CAM.pdf
3. Justificación
Describa por qué se seleccionó dicho patrón arquitectónico, en relación con la temática
planteada.
En este caso se trabajará con el método ACDM, hasta la etapa 4, tener en cuenta que, con la
elaboración de los Driver Arquitectónicos, ya se ha desarrollado hasta la etapa 2 del método
ACDM, la etapa 3 y 4 corresponde al diseño. Ver imagen44. Apartes del método de diseño ACDM.
• Diagrama de Clase
• Diagrama de componentes.
• Diagrama de secuencia, donde se muestre los casos de uso primarios que aparecen
en el Driver.
Arquitectura de Software
89
• Diagrama de despliegue donde aparezca el hardware y software requerido (equipos,
software)
• Modelo relacional.
Nota: Utilizar un lenguaje modelador (Enterprise Architect, ArgoUML, Umbrello, Cacoo, entre
otros). Cada diagrama deberá estar documentado.
✓ El Diseño Arquitectónico
90
TIPS
El diseño de la arquitectura permite visualizar la forma como definirá
las estructuras tanto físicas y lógicas para la construcción del
software.
91
Cervantes, Velasco y Castro, (2016). Plantean que la documentación permite mejora la
comunicación de información sobre la arquitectura, preserva la información sobre la
arquitectura, guía la generación de artefactos en otras fases del ciclo de vida, proveer un lenguaje
común entre diversos interesados en el sistema. Para lo cual se utilizarán métodos que describen
de manera más explícita tanto las entradas requeridas como la secuencia de acciones que
comprenden y las salidas generadas, los marcos conceptuales proveen un conjunto de conceptos
que deben considerarse al documentar la arquitectura, donde ambos buscan decidir de manera
más sistemática cuáles vistas y de qué modo elaborarlas. Algunos son: Vistas y más allá (Vers and
Beyond), 4+1 Vistas (4+1 Vers), Método de diseño centrado en la arquitectura (ACDM) Puntos de
vista y perspectivas (Verpoints and Perspectives).
1. Vistas lógicas.
2. Vistas de comportamiento.
3. Vistas físicas.
92
NOTACIONES
93
Imagen48. Tipos de notaciones
INFORMAL
No se explica claramente el
significado y relación de
cada elemento, por lo tanto,
se presta para una
inadecuada interpretación.
SEMI INFORMAL
94
FORMAL
95
describiéndolos con detalle. La
información explícita acerca de estos
incluye, propiedades, interfaces o
comportamiento.
96
MÉTODO 4+1 VISTA
97
MÉTODO DE DISEÑO CENTRADO EN LA ARQUITECTURA (ACDM)
Se debe tomar el documento de los Driver Arquitectónico, el del diseño, se integra y se ajusta con
el método en mención.
TIPS
Una buena documentación de la Arquitectura del software facilitará
la comunicación entre los diferentes usuarios (cliente-usuario final y
expertos informáticos).
Arquitectura de Software
98
3.9 TEMA 4. EVALUACIÓN DE LA ARQUITECTURA
La fase de evaluación de la arquitectura permite realizar revisiones del diseño, teniendo como
objetivo principal la mitigación de riesgos asociados a la pregunta ¿El diseño de la arquitectura
satisface a los requerimientos que influyen a la arquitectura y, principalmente, a los atributos de
calidad? Para lo cual se establecen técnicas como por ejemplo Checklists y cuestionarios,
evaluaciones basadas en escenarios, en simulación, modelos matemáticas, la experiencia las
cuales buscan que el diseño sea viable en relación con la necesidad que deberá satisfacer el
sistema de software. Ver imagen49. Ciclo de vida de la arquitectura de software.
Normalmente las técnicas las técnicas de evaluación son aplicadas cuando la arquitectura está en
producción, evaluándose de forma cualitativa, en relación con las técnicas de evaluación
cuantitativa, estas se aplican normalmente cuando el software ya ha sido terminado o
implementado.
Arquitectura de Software
99
Entre los métodos más utilizados para la evaluación de arquitectura de software tenemos SAAM,
ATAM, ARID:
Los que pueden ser ampliados, de acuerdo con el interés de cada estudiante.
TIPS
La evaluación de la arquitectura permite realizar ajustes,
especialmente en los atributos de calidad.
100
Continuación del ejemplo que se viene desarrollando, en relación con el Diseño Arquitectónico
• PRESENTACIÓN
Tanto los usuarios administradores como los usuarios normales dispondrán de una aplicación
cliente que será web, para el caso de los usuarios normales, dispondrán de tabletas de alto
rendimiento por medio de las cuales podrán interactuar con la aplicación. Los usuarios
administradores podrán ingresar a la aplicación desde el mismo servidor de aplicaciones o desde
cualquier PC que cuente con un navegador web. Ver imagen. Estructura general Arquitectónica.
101
• JUSTIFICACIÓN
Características como la asignación única de responsabilidades de cada una de las capas, el bajo
acoplamiento y la alta cohesión, nos dan la posibilidad diseñar aplicaciones fáciles de mantener
que permiten escalabilidad, mejorando la estabilidad del sistema lo que impacta la disponibilidad
de este dando un plus de calidad y confiabilidad por parte de nuestros clientes y usuarios.
Este modelo permite hacer sistemas más robustos a los cuales le podemos ir haciendo los ajustes
que se requieran sin sacrificar la calidad del producto.
Otra bondad de este modelo es la posibilidad de poder integrar módulos externos para que
funcionen con nuestra aplicación, esta característica se alinea con el diseño de nuestra aplicación
Arquitectura de Software
102
ya que se tiene contemplado hacer uso de módulos como el de pago y consulta a bases de datos
de entidades externas.
• DISEÑO
Método Seleccionado
Para este caso se utilizará el Método de Diseño Centrado en la Arquitectura (ACDM), teniendo
en cuenta que ya contamos con los Drivers Arquitectónicos y con base en estos se realizará todo
el proceso de diseño de la arquitectura. De igual manera, los drivers arquitectónicos nos están
proporcionando de primera mano el alcance que tendrá el proyecto y todas las especificaciones
requeridas para el avance del proceso de diseño.
103
Nombre: Registro de vehículos
Fecha: 14/05/2020
Precondiciones:
Ingresar con el vehículo a cualquiera de las estaciones de los municipios
de Envigado y Sabaneta.
Flujo normal:
1. Tomar la placa con el lector: Permite tomar la placa del vehículo de manera automática
con el lector de placas.
2. Comprobación de placa: Permite verificar si la placa existe en el sistema o si es una placa
nueva.
3. Conexión con la ST: Se conecta con los servicios de la secretaría de transito del
municipio para completar los datos del propietario de acuerdo con la placa recolectada
con el lector.
4. Completar datos: Por medio de una interfaz de usuario le permite al conductor
completar los datos adicionales que sean requeridos al momento del registro y aceptar
el registro para ser guardado en la base de datos.
Flujo Alternativo:
2.A - Si la placa ya está registrada en el sistema direcciona al conductor al proceso de tanqueo.
3.B - SI hay algún problema con la conexión o el cargue de datos desde la secretaría de transito
del municipio, le despliega al conductor la interfaz para que ingrese los datos requeridos.
Post condiciones:
El vehículo ha quedado registrado en el sistema con su respectivo propietario para futuras
transacciones.
104
Caso de uso CU-002 – Tanquear
Fecha: 14/05/2020
105
Flujo normal:
1. El sistema le despliega al usuario una interfaz con las opciones de tanqueo.
2. El conductor selecciona el tipo de combustible a tanquear.
3. El conductor indica si quiere tanquear por galones o por monto.
4. El conductor indica la cantidad de galones o monto para el tanqueo.
5. Se genera el cobro en el sistema parea ser remitido al pago.
Flujo Alternativo:
1.A - EL conductor cancela la transacción y se retira.
Post condiciones:
106
Nombre: Realizar pago con tarjeta
Fecha: 14/05/2020
Precondiciones:
Haber realizado el proceso de tanqueo del vehículo
Flujo normal:
1. Le indica al conductor el valor total a pagar de acuerdo con el tanqueo realizado
2. Le permite al conductor seleccionar el modelo de pago y la aplicación a usar.
3. Dirige al usuario a la aplicación seleccionada para que siga con el procedimiento
de pago en ésta.
4. La aplicación seleccionada por el usuario devuelve el resultado del pago al sistema
y al usuario confirmando el pago realizado por éste.
5. El sistema carga el pago del conductor y genera el comprobante de la transacción,
el cual será enviado vía email.
Flujo Alternativo:
4.A - EL proceso de pago no fue satisfactorio y le indica al usuario que debe
seleccionar otro medio de pago.
Post condiciones:
EL conductor se retira con el carro tanqueado y con el comprobante de la
transacción vía email.
107
Caso de uso CU-003 y CU-007 Generar Informes
Fecha: 14/05/2020
Precondiciones:
Conductor: Haber realizado el proceso pago de un servicio.
Arquitectura de Software
108
Gerente: Haberse logueado en el sistema.
Flujo normal:
1. El gerente genera el reporte de tanqueos realizados en un día.
2. El gerente genera el reporte de tanqueos realizados en un mes.
3. El gerente genera el reporte de vehículos que más usan el servicio.
4. El gerente genera el reporte de tanqueo de un conductor en específico.
5. El sistema le genera al conductor el comprobante de la transacción y se lo envía
por correo electrónico.
Flujo Alternativo:
Ninguno
Post condiciones:
Reportes generados.
La aplicación será implementada para operar en las 4 estaciones de Sabaneta (Antioquia) y las 4
estaciones de servicio de Envigado (Antioquia). Cuando el vehículo llega por primera vez, deberá
ser registrado por el conductor, donde un lector tomará la placa del vehículo y en una pantalla
táctil de forma ágil, se podrá ubicar información para terminar el registro, como por ejemplo la
identificación del dueño del vehículo, la cual será sincronizada y verificada automáticamente con
las bases de datos donde se encuentre matriculado dicho vehículo, si el vehículo ya ha sido
registrado en cualquier estación de Texaco Envigado y Sabaneta, bastará con pasar por el punto
donde se encuentra el lector de placa para iniciar su proceso de abastecimiento de combustible.
Arquitectura de Software
109
Diseño de los componentes
Vista Lógica
Fecha: 14/05/2020
Arquitectura de Software
110
Descripción de los componentes:
• Paquete de Presentación: Representa los componentes de la capa de presentación.
• Interfaz Administrador: Representa la interfaz del administrador y sus componentes.
• Interfaz Usuario: Representa la interfaz del usuario y sus componentes.
• Paquete de Negocio: Representa los componentes de la capa de negocio
• Servicios: Representa los servicios que van a ser usados en la capa de negocio.
• Subsistemas de creación de Informes: Representa los componentes usados por el
negocio para la creación de los informes.
• Envió de Notificaciones: Representa los componentes usado por el negocio para el envió
de notificaciones.
• Paquete de Datos: Representa los componentes de la capa de Datos.
• Persistencia: Representa los componentes usados para realizar la persistencia de los
datos.
• Modelo de Datos: Representa los componentes para la lógica de uso de los datos.
• Acceso a entidades Persistidas: Representa los componentes usados que permiten el
acceso a las diferentes bases de datos.
• Paquete Interfaz: Representa los componentes de interfaces usadas en las vistas web y
móviles
• Paquete Dominio: Representa los componentes de interfaces usadas en las clases de
negocio y reglas de negocio.
• Vista Web: Representa las interfaces usadas en la presentación web.
• Vista Móviles: Representa las interfaces usadas en la presentación móvil.
• Clases de Negocio: Representa los componentes usados para aplicar las clases del
negocio.
111
4. El paquete interfaz y todos sus componentes dependen del paquete negocio.
5. El paquete negocio y todos sus componentes dependen del paquete dominio.
6. El paquete datos depende del paquete dominio.
Diagrama de Clases
112
Nombre: Diagrama de clases
Fecha: 14/05/2020
113
Diagrama de componentes
Fecha: 14/05/2020
Arquitectura de Software
114
115
8. El componente Sistema de pagos le despliega una interfaz al conductor para que
realice su proceso de pago.
9. El componente Generación de reportes le despliega una interfaz al gerente para que
pueda realizar el pedido de los reportes que requiera.
Vista de comportamiento
Diagramas de secuencia
116
Nombre: CU-001 Registrar vehículo
Fecha: 14/05/2020
Descripción:
Éste es el proceso encargado de registrar los vehículos nuevos en el sistema.
Actores: Conductor
117
Fecha: 14/05/2020
Descripción:
Aquí se describe el proceso en el que se escoge el tipo de tanqueo y la cantidad
Actores: Conductor
118
4. El conductor selecciona la cantidad de combustible a tanquear.
5. El sistema toma los datos de la interfaz delo conductor y realiza el proceso de cobro.
6. El sistema genera el respectivo comprobante de pago con los datos.
7. Carga en la interfaz del conductor el comprobante de pago para aceptación y envía
también las diferentes opciones de pago para que el usuario seleccione la de su
preferencia.
8. FIN
119
Nombre: CU-006 Proceso de pago
Fecha: 14/05/2020
Descripción:
Actores: Conductor
120
121
Nombre: CU-007 Generación de Informes
Fecha: 14/05/2020
122
Vista Física
Diagrama de Despliegue
Fecha: 14/05/2020
Arquitectura de Software
123
Descripción de los componentes:
• Nodo Servidor de Aplicaciones: Representa los artefactos usados en este nodo
• Nodo Servidor de Base de Datos: Representa el artefacto usado para la base de datos
• Dispositivo Lector: Representa el artefacto que se usara para el lector
• Nodo Pc Cliente: Representa los artefactos que serán necesarios para la ejecución desde
el pc del cliente
• Nodo Tableta de Alto Rendimiento: representa los artefactos que serán usados
• Componente de Aplicación de Pagos Externa: Representa el artefacto de entidades de
pagos externas.
• Componente de Aplicación Consulta a Base de Datos Externas: Representa los
artefactos de las bases de datos de entidades externas.
• Dispositivos de Conexión o Acces Point: Representa los artefactos que permiten las
conexiones
Hemos concluido que la arquitectura de software nos permite razonar acerca de las decisiones
de diseño y atributos de calidad que deben estar presentes en el sistema que estemos diseñando.
124
vaya a desarrollar, las que servirán como guía a todo el equipo (usuarios informáticos y no
informáticos) debiendo ser debidamente documentadas y comunicadas de manera asertiva.
En cuanto a los atributos de calidad, éstos nos permiten determinar lo que va más allá de lo
funcional garantizando que el sistema funcione correctamente. Sabemos que existen muchos
atributos de calidad, donde se debe escoger cuidadosamente los requeridos garantizando su
correcto funcionamiento y la calidad del producto de software.
Es importante tener en cuenta que la arquitectura aplicada puede tener siempre distintos
elementos dependiendo de la persona, contexto o incluso la empresa encargada de revisar la
arquitectura. Esto irá en función de lo que quiera cada uno de los actores que intervengan, no es
lo mismo si lo mira el Product Owner, seguramente para él es muy importante que las
características que desea que tenga el sistema se evidencien en la arquitectura, si lo observa un
desarrollador, para él es importante por ejemplo las herramientas de desarrollo contempladas en
la arquitectura, ya que será relevante todo lo que la herramienta permita hacer. Para un usuario
final el punto de vista con seguridad sería otro, o para una persona de soporte que miraría más
la parte física de la arquitectura y los componentes de esta.
Teniendo en cuenta lo anterior podríamos decir que en la arquitectura hay muchos elementos
que son fundamentales y es que estos dependen del contexto, del equipo y las necesidades del
proyecto.
TIPS
La implementación de la arquitectura será la fase final de la
arquitectura de software, entregando así el insumo para la aplicación
de procesos técnicas y metodologías de ingeniería de software, para
el desarrollo de un software de calidad.
Arquitectura de Software
125
4 PISTAS DE APRENDIZAJE
• Una buena arquitectura de software define el alcance del programa, ofrece pautas claras para
la construcción del software, reduce el riesgo, facilita la comunicación y aumenta la
rentabilidad.
• El Arquitecto de Software, deberá ser un líder, con gran capacidad de integrar equipos de
trabajo y amplios conocimientos administrativos y técnicos en temáticas relacionadas con la
tecnología informática.
• Antes de realizar un diseño arquitectónico, es necesario tener claro los requisitos funcionales
del software, los atributos de calidad que debe cumplir, así como sus restricciones.
• Las características o atributos de calidad equivalen a los requisitos no funcionales (RNF) del
software, el usuario no los solicita, pero el experto (a) informático los debe incorporar.
• Tanto los requisitos funcionales, como los no funcionales y las restricciones son el insumo
para la conformación del DRIVER ARQUITECTÓNICO, a utilizarse en la primera etapa de la
Arquitectura de Software que corresponde a la etapa de los Requerimientos de la
Arquitectura.
• La reutilización de código corresponde a una técnica que se puede utilizar, sólo se debe
verificar si los componentes a utilizar son de uso libre o pago.
• El patrón por Capas permite estructuras el software en partes donde se establecen límites,
pero de igual forma permite realizar integraciones para conformar un todo funcional.
• El patrón Orientado a Servicios (SOA), favorece el uso de servicios de terceros que pueden ser
integrados a programas propios.
126
• Los requerimientos corresponden a la primera fase de la Arquitectura del Software y está
compuesta por los Drivers Arquitectónicos (Requisitos Funcionales, Requisitos No Funcionales
o de Calidad y las Restricciones).
• El diseño de la arquitectura permite visualizar la forma como definirá las estructuras tanto
físicas y lógicas para la construcción del software.
127
5 GLOSARIO
• Arquitectura de Software: Corresponde a guías generales que basadas en los requisitos del
software, las características de calidad y las restricciones se diseñan con el fin de orientar el
proceso de ingeniería de software, en relación a su estructura física, lógica y dinámica.
• Características de calidad del software: Son atributos que deberá cumplir el software como
por ejemplo de seguridad, usabilidad, eficiencia, buscando con ello cumplir con requisitos de
calidad.
• Ciclo de vida: Son fases que se deben tener en cuenta para la realización de procesos, donde
integrados constituyen un producto o un servicio.
• Diseño Físico: establece el detalle de los componentes y configuraciones como por ejemplo
las máquinas y su distribución.
128
• Patrón por Capas: Es un modelo que permite realizar una división del sistema, buscando con
ello que el diseño del software quede más entendible y fácil de manejar.
• Patrones de diseño: Es un esquema o base para el diseño, al cual se le adiciona una serie de
elementos que integrados buscan solucionar una necesidad.
• Políticas: Se refiere a reglas, protocolos que son definidos para realizar los procesos.
• Restricciones técnicas: indica los recursos, métodos, materiales y la forma como se debe
operar colocando límites para su manejo.
Arquitectura de Software
129
6 BIBLIOGRAFÍA
Consultado de:
Este capítulo recomienda al estudiante las https://elibro.net/es/ereader/remington/56
fuentes de consulta bibliográficas y digitales 294
para ampliar su conocimiento, por lo tanto,
deben estar en la biblioteca digital de la • Carrillo, J. y Moreno, D. (2020), Normas APA
Remington. Utilice la biblioteca digital 7.ª edición. Guía de citación y referenciación.
http://biblioteca.remington.edu.co/es/ para Segunda versión revisada y ampliada 2020.
la consulta de bibliografía a la cual puede Consultado de:
acceder el estudiante. https://www.ucentral.edu.co/sites/default/f
iles/inline-files/guia-normas-apa-7-ed-2020-
FUENTES BIBLIOGRÁFICAS
08-12.pdf
• Amaya, Y. (2015), Guía metodológica ágil,
para el desarrollo de aplicaciones móviles • Cervantes, H., Velasco, P. y Castro, L. (2016).
“AEGIS-MD”. Consultado de Arquitectura de software. Conceptos y ciclo
https://www.researchgate.net/publication/ de desarrollo. ISBN: 978-607-522-456-5.
318353356_Guia_metodologica_agil_para_ Web:
el_desarrollo_de_aplicaciones_moviles_AEG https://www.researchgate.net/profile/Perla
IS-MD _Velasco-
Elizondo/publication/281137715_Arquitectu
• Anaya, R. (2012). Una visión de la enseñanza ra_de_Software_Conceptos_y_Ciclo_de_Des
de la ingeniería de software como apoyo al arrollo/links/57144e1408aeebe07c0641ab/
mejoramiento de las empresas de software. Arquitectura-de-Software-Conceptos-y-
Revista Universidad EAFIT, 42(141), 60-76. Ciclo-de-Desarrollo.pdf
130
http://biblioteca.uniremington.edu.co/index • ISO/IEC 25000, (2014).La familia de normas
.php/login ISO/IEC 25000. Web:
https://iso25000.com/index.php/normas-
• Dolors, C. Ribera, S. Teniente, E. (2015), iso-25000
Especificación de sistemas software en UML
ISBN: 9788498801163 Editorial: Universitat • ISO/IEC 25010 (2016), Calidad del producto
Politècnica de Catalunya de software.
https://iso25000.com/index.php/normas-
• Echeverri, J. Aristizábal, M. González, L. iso-25000/iso-25010?limit=3&start=6
(2013).Reflexiones sobre ingeniería de
requisitos y pruebas de software. • Muñoz Periñán, I. L., & Gómez Arenas, L. D. S.
ISBN: 9789585807037. (2011). Vista ampliada para Gerencia de
Editorial: Corporación Universitaria Proyectos usando mejores prácticas del
Remington. Consultado de: PMBok® cuarta edición y CMMI®-SVC V. 1.2
https://elibro.net/es/ereader/remington/68 nivel de capacidad o madurez.
913?col_q=Ingenier%C3%ADa__de__Softwa
re&col_code=ELC004&prev=col • Pressman, R. (2010). Ingeniería del Software
7ed. un enfoque práctico.
• Eduardo Diez (2014. )Aseguramiento de la ISBN:9786071503145. Consultado de:
Calidad en la Construcción de Sistemas http://cotana.informatica.edu.bo/download
Basados en el Conocimiento: Un Enfoque s/ld-
Práctico. Consultado de Ingenieria.de.software.enfoque.practico.7ed
https://www.researchgate.net/publication/ .Pressman.PDF
285138688_Aseguramiento_de_la_Calidad_
en_la_Construccion_de_Sistemas_Basados_ • Pressman. Roger S. Ingeniería de Software,
en_el_Conocimiento_Un_Enfoque_Practico Un enfoque práctico. (2010). Edición 7.
Editorial McGraw Hill.
• IEEE Computer Society (2004). SWEBOK -
Guide to the Software Engineering Body of • Reinoso, Carlos Billy. Introducción a la
Knowledge, 2004. (Capítulos 4 y 5) Arquitectura de Software. (2004). Versión 1.
http://www.swebok.org/ Universidad de Buenos Aires.
131
• Rozanski, N., Woods, E. Software Systems
Architecture. (2005). Editorial Addison-
Wesley. Software Engineering Institute,
(2019). architect of software.
https://www.sei.cmu.edu/search.cfm#stq=a
rchitect%20of%20software&stp=1