Este documento presenta los fundamentos de la definición de arquitectura de software por un grupo de estudiantes. Incluye una introducción a conceptos clave de arquitectura de software según definiciones de IEEE y otros autores. Luego describe la evolución de modelos de arquitectura de software como monolítica, cliente-servidor y orientada a servicios. Finalmente discute principios de procesos de desarrollo de software modernos y el rol del arquitecto de software.
¿Eres arquitecto de software?, ¿quieres ser arquitecto de software?, o simplemente te gustaría escuchar un enfoque diferente y ligero que debe de considerar un arquitecto... Hagamos un puente entre análisis y diseño con la Arquitectura.
El análisis de requerimientos es una actividad enfocada en el espacio del problema. Ignora las necesidades y restricciones de grupos como desarrolladores y administradores de sistemas porque se enfoca en los deseos y necesidades del negocio, y no tanto en lo que es posible realizar tecnológicamente. Dicho de otra forma, se encarga del ‘¿qué?’ y no del ‘¿cómo?’.
El diseño de software es una actividad enfocada en el espacio de la solución y está enfocada principalmente a un grupo de personas: los desarrolladores. Se desempeña al rededor de un conjunto claramente definido de restricciones (los requerimientos del sistema) y es esencialmente un proceso de traducción estos en especificaciones para un sistema.
El objetivo de esta charla es describir cada una de las actividades que un arquitecto de software debe desempeñar durante el proceso de planeación, elaboración y entrega de la arquitectura de un sistema de software.
It refers to a group of abstractions and patterns that provide us a useful outline to guide us in the development of software in a computer system reference.
¿Eres arquitecto de software?, ¿quieres ser arquitecto de software?, o simplemente te gustaría escuchar un enfoque diferente y ligero que debe de considerar un arquitecto... Hagamos un puente entre análisis y diseño con la Arquitectura.
El análisis de requerimientos es una actividad enfocada en el espacio del problema. Ignora las necesidades y restricciones de grupos como desarrolladores y administradores de sistemas porque se enfoca en los deseos y necesidades del negocio, y no tanto en lo que es posible realizar tecnológicamente. Dicho de otra forma, se encarga del ‘¿qué?’ y no del ‘¿cómo?’.
El diseño de software es una actividad enfocada en el espacio de la solución y está enfocada principalmente a un grupo de personas: los desarrolladores. Se desempeña al rededor de un conjunto claramente definido de restricciones (los requerimientos del sistema) y es esencialmente un proceso de traducción estos en especificaciones para un sistema.
El objetivo de esta charla es describir cada una de las actividades que un arquitecto de software debe desempeñar durante el proceso de planeación, elaboración y entrega de la arquitectura de un sistema de software.
It refers to a group of abstractions and patterns that provide us a useful outline to guide us in the development of software in a computer system reference.
Introducción a la Arquitectura de Software.
Géneros Arquitectónicas
Estilos Arquitectónicos.
Diseño Arquitectónico.
Evaluación de los diseños alternativos para la Arquitectura.
U.T.N. - F.R.T. Cátedra de Diseño de Sistemas. 3K1. 2011. Unidad VI. Verificación y Validación del Diseño. Pruebas del Software. Ian Sommerville, Cap. 23
El modelo C4 se creó como una forma de ayudar a los equipos de desarrollo de software a describir y comunicar la arquitectura de software, tanto durante las sesiones de diseño iniciales como cuando se documenta retrospectivamente una base de código existente. Es una forma de crear mapas de su código, en varios niveles de detalle, de la misma manera que usaría algo como Google Maps para acercar y alejar un área que le interesa.
Introducción a la Arquitectura de Software.
Géneros Arquitectónicas
Estilos Arquitectónicos.
Diseño Arquitectónico.
Evaluación de los diseños alternativos para la Arquitectura.
U.T.N. - F.R.T. Cátedra de Diseño de Sistemas. 3K1. 2011. Unidad VI. Verificación y Validación del Diseño. Pruebas del Software. Ian Sommerville, Cap. 23
El modelo C4 se creó como una forma de ayudar a los equipos de desarrollo de software a describir y comunicar la arquitectura de software, tanto durante las sesiones de diseño iniciales como cuando se documenta retrospectivamente una base de código existente. Es una forma de crear mapas de su código, en varios niveles de detalle, de la misma manera que usaría algo como Google Maps para acercar y alejar un área que le interesa.
Ignacio Acisclo, Consultor Tecnológico en Autentia ofrece una charla sobre el patrón Singleton en los workshops de Patrones de Diseños que damos en nuestra oficina después de cada daily.
El tema de Lecciones Aprendidas en el transcurso de la ejecución de proyectos se nombra con frecuencia pero no hay demasiado escrito al respecto. Esta presentación pretende dar un paso inicial hacia la creación de un proceso dentro de la organización y brinda algunas pautas que podrán ser de utilidad para los Directores de Proyectos.
Name : Prasoon Dadhich
USN : 1MS09IS069
CODE
#include <iostream>
using namespace std;
class Singleton
{
private:
static bool instanceFlag;
static Singleton *single;
Singleton()
{
//private constructor
}
public:
static Singleton* getInstance();
void method();
~Singleton()
{
instanceFlag = false;
}
};
bool Singleton::instanceFlag = false;
Singleton* Singleton::single = NULL;
Singleton* Singleton::getInstance()
{
if(! instanceFlag)
{
single = new Singleton();
instanceFlag = true;
return single;
}
else
{
return single;
}
}
void Singleton::method()
{
cout << "Method of the singleton class" << endl;
}
int main()
{
Singleton *sc1,*sc2;
sc1 = Singleton::getInstance();
sc1->method();
sc2 = Singleton::getInstance();
sc2->method();
return 0;
}
Explanation
If we create any object of this class then the static object (player) will be returned and assigned to the new object.
Finally only one object will be there. The point is not how many times something gets executed, the point is, that the work is done by a single instance of the the class. This is ensured by the class method Singleton::getInstance().
As you can see in the above code,Client can access any instance of the singleton only through the getInstance() method.Once an instance is created,the instanceFlag value becomes true and then any further objects pointers created will be given the reference to the same object that has been created.
Also,make sure you notice the presence of a private constructor.This ensures that no new objects of the class are created and that all the class pointers get the same reference to work on.
Software Architectural And Detailed Design Description TemplateArash Sharif
A comprehensive template for describing software architecture and detailed design. I wrote it based on the IEEE 1471 and IEEE 1016 specifications. Visit http://orphanware.blogspot.com/ for more technical reading.
Ejemplo de Archimate. Depositario Central de Valores en MéxicoDavid Solis
La presentación contiene un ejemplo de un caso real desarrollado para ilustrar el uso de lenguaje de modelado ArchiMate® en el contexto del marco TOGAF®. El caso se refiere a Indeval, el Depositario Central de Valores en México. Muestra algunos de los viewpoints de la arquitectura empresarial realizada en 2006, sin embargo por el alcance y la complejidad de la entidad solo se presenta una muestra representativa de los elementos.
El diseño de una arquitectura de software consiste en una actividad inicial de la fase de diseño de un sistema software cuyo objetivo es identificar los subsistemas y
establecer un marco de trabajo para gestionar correctamente el control y la comunicación de dichos subsistemas a lo largo de todo el ciclo de vida del software.
Gestión de requisitos y su trazabilidad en la Gestión de Servicios TI: Una vi...OVERTI
Una demostración práctica de técnicas para la gestión de la trazabilidad de requisitos hacia elementos del SKMS tales como elementos de configuración, SLAs, Servicios… Para ello se integrará una aplicación de gestión de servicios TI con una aplicación de gestión de trazabilidad de requisitos y comprobaremos cómo interactúan entre ellas, realizando acciones como captura de requisitos, verificación del cumplimiento de requisitos, trazabilidad, porcentaje de requisitos cubiertos, etc… Además, mostraremos la capacidad de generación de informes que generan evidencias para controles internos y auditorías.
¿Por qué es importante el diseño arquitectónico?¿Qué decisiones se deben tomar respecto al sistema durante el diseño arquitectónico?¿Qué son los patrones o estilos arquitectónicos?¿Cuáles son los más usados en diferentes tipos de aplicaciones?
Presentación donde se describe el estado actual del modelo Cloud Computing y cómo este modelo está cambiando la manera en que las empresas adquieren infraestructuras, plataformas de desarrollo y aplicaciones. Presentación realizada en el evento Cloud Computing Latin American Conference 2011 organizado por Channel Planet.
Arquitectura evolutiva por Fausto de la TorreDiana Pinto
Se habló acerca de la arquitectura de software enfocada desde un punto de vista ágil en comparación al enfoque tradicional y la necesidad de adoptar un modelo evolutivo. Se vio porque la arquitectura de software importa y cómo llevarla a cabo en los proyectos ágiles.
@faustodelatog
LinkedIn: http://bit.ly/1nvfFH5
En esta presentación veremos por qué es importante la arquitectura de software en los proyectos y cómo llevarla a cabo en los proyectos ágiles de una manera evolutiva que permita abrazar el cambio en lugar de evitarlo.
Muchas veces se ha dicho que en los proyectos ágiles no se necesita arquitectos, no se los necesita como son concebidos, pero si se necesita de personas lleven a cabo la arquitectura, porque una buena arquitectura es la clave de éxito a largo plazo.
Hemos evidenciado que el cambio dificulta, que las mejores prácticas del ayer son antipatrones ahora y que en la actualidad la cantidad de herramientas a nuestra disposición nos apalanca nuevas posibilidades, de cómo tomar ventaja de esto y cómo evitar los problemas.
Hablaremos acerca de diferentes técnicas, herramientas y paradigmas que nos permita sentar las bases para el cambio y la evolución.
Nos dirigiremos hacia como gestionar los equipos y el rol del arquitecto evolutivo en contraste con el enfoque tradicional de diseño Up Front.
Diseñamos soluciones basadas en flujos de trabajo para optimizar procesos de TI, utilizando técnicas de automatización para ayudar a los negocios a escalar.
Analizamos, construimos y automatizamos procesos de TI con herramientas de Integración Continua y Despliegues Continuos (CI/CD) que entregan recursos de TI como servicios de Nube y aplicaciones.
Es un diagrama para La asistencia técnica o apoyo técnico es brindada por las compañías para que sus clientes puedan hacer uso de sus productos o servicios de la manera en que fueron puestos a la venta.
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...espinozaernesto427
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta intensidad son un tipo de lámpara eléctrica de descarga de gas que produce luz por medio de un arco eléctrico entre electrodos de tungsteno alojados dentro de un tubo de alúmina o cuarzo moldeado translúcido o transparente.
lámparas más eficientes del mercado, debido a su menor consumo y por la cantidad de luz que emiten. Adquieren una vida útil de hasta 50.000 horas y no generan calor alguna. Si quieres cambiar la iluminación de tu hogar para hacerla mucho más eficiente, ¡esta es tu mejor opción!
Las nuevas lámparas de descarga de alta intensidad producen más luz visible por unidad de energía eléctrica consumida que las lámparas fluorescentes e incandescentes, ya que una mayor proporción de su radiación es luz visible, en contraste con la infrarroja. Sin embargo, la salida de lúmenes de la iluminación HID puede deteriorarse hasta en un 70% durante 10,000 horas de funcionamiento.
Muchos vehículos modernos usan bombillas HID para los principales sistemas de iluminación, aunque algunas aplicaciones ahora están pasando de bombillas HID a tecnología LED y láser.1 Modelos de lámparas van desde las típicas lámparas de 35 a 100 W de los autos, a las de más de 15 kW que se utilizan en los proyectores de cines IMAX.
Esta tecnología HID no es nueva y fue demostrada por primera vez por Francis Hauksbee en 1705. Lámpara de Nernst.
Lámpara incandescente.
Lámpara de descarga. Lámpara fluorescente. Lámpara fluorescente compacta. Lámpara de haluro metálico. Lámpara de vapor de sodio. Lámpara de vapor de mercurio. Lámpara de neón. Lámpara de deuterio. Lámpara xenón.
Lámpara LED.
Lámpara de plasma.
Flash (fotografía) Las lámparas de descarga de alta intensidad (HID) son un tipo de lámparas de descarga de gas muy utilizadas en la industria de la iluminación. Estas lámparas producen luz creando un arco eléctrico entre dos electrodos a través de un gas ionizado. Las lámparas HID son conocidas por su gran eficacia a la hora de convertir la electricidad en luz y por su larga vida útil.
A diferencia de las luces fluorescentes, que necesitan un recubrimiento de fósforo para emitir luz visible, las lámparas HID no necesitan ningún recubrimiento en el interior de sus tubos. El propio arco eléctrico emite luz visible. Sin embargo, algunas lámparas de halogenuros metálicos y muchas lámparas de vapor de mercurio tienen un recubrimiento de fósforo en el interior de la bombilla para mejorar el espectro luminoso y reproducción cromática. Las lámparas HID están disponibles en varias potencias, que van desde los 25 vatios de las lámparas de halogenuros metálicos autobalastradas y los 35 vatios de las lámparas de vapor de sodio de alta intensidad hasta los 1.000 vatios de las lámparas de vapor de mercurio y vapor de sodio de alta intensidad, e incluso hasta los 1.500 vatios de las lámparas de halogenuros metálicos.
Las lámparas HID requieren un equipo de control especial llamado balasto para funcionar
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Telefónica
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0xWord escrito por Ibón Reinoso ( https://mypublicinbox.com/IBhone ) con Prólogo de Chema Alonso ( https://mypublicinbox.com/ChemaAlonso ). Puedes comprarlo aquí: https://0xword.com/es/libros/233-big-data-tecnologias-para-arquitecturas-data-centric.html
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital, siendo este un componente electrónico, por tanto se ha desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos.
En este documento analizamos ciertos conceptos relacionados con la ficha 1 y 2. Y concluimos, dando el porque es importante desarrollar nuestras habilidades de pensamiento.
Sara Sofia Bedoya Montezuma.
9-1.
3Redu: Responsabilidad, Resiliencia y Respetocdraco
¡Hola! Somos 3Redu, conformados por Juan Camilo y Cristian. Entendemos las dificultades que enfrentan muchos estudiantes al tratar de comprender conceptos matemáticos. Nuestro objetivo es brindar una solución inclusiva y accesible para todos.
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
Inteligencia Artificial y Ciberseguridad.pdfEmilio Casbas
Recopilación de los puntos más interesantes de diversas presentaciones, desde los visionarios conceptos de Alan Turing, pasando por la paradoja de Hans Moravec y la descripcion de Singularidad de Max Tegmark, hasta los innovadores avances de ChatGPT, y de cómo la IA está transformando la seguridad digital y protegiendo nuestras vidas.
Estructuras básicas_ conceptos básicos de programación.pdf
Fundamentos de la arquitectura del software
1. Fundamentos de Definición
de Arquitectura de Software
Integrantes:
Castillo Harving V-21.134.315
Garcia Ender V-16.126.317
Guzmán Mariam V-20.963.865
Muñoz Luis V-19.278.031
Rodriguez Maria V-22.114.256
Sandoval Anthony V-23.037.857
Septiembre 27 a Octubre 01 de 2005
Bogotá, Colombia
2. Arquitectura de Software
+ Que es una arquitectura?
+ “No estamos seguros, pero la reconocemos cuando
vemos una”
+ IEEE-1471-FAQ
2
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
3. Arquitectura de Software
+ IEEE 1471
+ Software Architecture in
Practice - Kazman
El nivel conceptual más alto de
un sistema en su ambiente.
“La estructura de
estructuras de un sistema,
la cual abarca
+ Arquitectura es la organización
componentes de software,
fundamental de un sistema
propiedades externas
visibles de estos
descrita en:
componentes y sus
– Sus componentes.
relaciones”.
– Relación entre ellos y con el
ambiente.
– Principios que guían su diseño y
evolución.
3
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
4. Discusión
+ Definir la arquitectura en los proyectos actuales es
crítico...
4
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
5. Evolución de Arquitecturas
+ Dos factores primarios en la ingeniería de software
que han incrementado la importancia de la
arquitectura:
5
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
6. Evolución de Arquitecturas
+ Aplicaciones Monolíticas
Arquitectura Cliente-Servidor
+ Interfaces gráficas de usuario (GUI).
+ Servicios de presentación, negocios
+ Clientes pesados, no estándar
+ Conexiones dedicadas a BD
y persistencia en la misma máquina.
+ No hay concurrencia de usuarios.
+ Alto acoplamiento entre tiers.
+ Protocolos pesados
+ Ejecución remota de SQLs
+ Alta administración
+ Bajo rendimiento
+ Alto tráfico de red
+ Baja accesibilidad
6
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
7. Evolución de Arquitecturas
+ Arquitectura Cliente-Servidor
Arquitectura de 3 niveles
Mejorada
+ Reutilización de lógica de negocio para
+ Lógica de negocios en BD
+ Clientes pesados, no estándar.
+ Conexiones dedicadas a la BD.
+ Mejora en rendimiento
diferentes clientes o sistemas.
+ Mejora la escalabilidad.
+ Mejora la flexibilidad.
+ Independencia de la base de datos.
+ Alta administración
+ Baja escalabilidad
+ Baja flexibilidad
+ Baja portabilidad
7
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
8. Evolución de Arquitecturas
+ Arquitectura de N-niveles
100.000+
+ Bajo costo de administración de clientes.
+ Alta accesibilidad.
+ Alta flexibilidad.
+ Alta disponibilidad y tolerancia a fallos.
+ Alta escalabilidad.
+ Independencia de DB
8
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
9. Evolución de Arquitecturas
+ Visión de Arquitectura Orientada a Servicios (SOA)
+ Requerimientos
Sistema
Batch
Portal de
Servicios Integrados
Arquitectónicos
+ Heterogeneidad
+ Escalabilidad
Base de
Datos
+ Disponibilidad
Servidor de
Procesos
+ Distribución
(BPM) Aplicaciones
+ Manejabilidad de Procesos
Legadas
+ Administración y monitoreo de procesos,
servicios e infraestructura
9
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
Cluster de
Servidores de
Aplicaciones
10. Que es un Arquitecto de Software?
•
Rational Unified Process
•
SUN SL-425:
Arquitecto es un rol en un proyecto de El arquitecto:
desarrollo de software el cual es
– Visualiza el comportamiento
responsable de:
del sistema.
– Crea los planos del sistema.
– Liderar el proceso de arquitectura. –
Define la forma en la cual los
– Producir los artefactos necesarios:
elementos del sistema
Documento de descripción de
trabajan en conjunto.
arquitectura
– Responsable de integrar los
– Modelos y prototipos de
requerimientos no-funcionales
arquitectura.
(NRFs) en el sistema.
10
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
11. Discusión
+ Existe alguna diferencia entre arquitectura y diseño
de software?
11
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
12. Arquitectura Vs. Diseño
+ La arquitectura y el diseño difieren en tres áreas:
Arquitectura
Diseño
Nivel de
Abstracción
Alto nivel
Bajo nivel. Enfoque
específico en detalles
Entregables
Planear subsistemas, interfaces
con sistemas externos,
servicios horizontales,
frameworks, componentes
reutilizables, prototipo
arquitectónico
Diseño detallado
componentes.
Selección de tecnologías,
Requerimientos no funcionales
(QoS),
Manejo de riesgos
Requerimientos
funcionales
Áreas de
Enfoque
12
Especificaciones de
codificación
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
13. Arquitectura Vs. Diseño
+ La arquitectura envuelve un conjunto de decisiones
estratégicas de diseño, lineamientos, reglas y
patrones que restringen el diseño y la implementación
de un software.
Código
Implementación
Diseño
Las decisiones
de arquitectura
causan un alto
impacto en los
proyectos de IT
Arquitectura
13
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
14. Discusión
+ Cuales son los principios fundamentales en los
métodos de desarrollo de software modernos?
14
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
15. Arquitectura y Procesos de Desarrollo
Principios Fundamentales de Procesos Modernos
+ Desarrollo iterativo e incremental.
+ Conducido por las calidades sistémicas.
+ Centrado en la arquitectura.
+ Dirigido por los casos de uso.
+ Basada en Modelos.
+ Mejores prácticas de diseño.
15
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
16. Arquitectura y Procesos de Desarrollo
+ Que es un Proceso de Arquitectura?
+ Rational Unified Process:
+ Secuencia de actividades
que conllevan a la
producción de artefactos
arquitectónicos:
– Descripción de arquitectura
– Prototipo arquitectónico
16
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
17. Arquitectura y Procesos de Desarrollo
Rational Unified Process:
SunTone AM:
En el proceso de definición de
arquitectura se producen:
Adicionalmente se producen:
Matriz Tecnológica de Layers
y Tiers
+ Template de Arquitectura
+
Arquitectura Inicial.
+ Arquitectura de Referencia.
+ Documento de Descripción de
arquitectura (SAD):
+
–
–
–
+
17
Subsistemas
Componentes
Arquitectura Runtime.
Guías para el proyecto y
estándares de Diseño.
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
18. Definición de Arquitectura en RUP
Fase de Inicio
+
Con respecto a la arquitectura, en la
fase de inicio de los proyectos se
establece:
Requerimientos no-funcionales
– Lista de riesgos y restricciones
– Arquitectura inicial
–
18
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
19. Definición de Arquitectura en RUP
Fase de Elaboración
+
+
19
Con respecto a la arquitectura, en la
fase de elaboración se establece:
– Arquitectura línea base.
Entregables:
– Documento de Definición de
Arquitectura.
– Prototipo evolutivo de arquitectura.
– Guías y Estándares de Diseño.
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
20. Definición de Arquitectura en RUP
+ Modelo de Vista 4+1
+ Framework para Descripción de Arquitectura, basado en vistas
lógicas y físicas UML y una vista funcional de casos de uso.
Logical View
Analysts/Designers
Structure
Implementation View
Programmers
Software management
End-user
Functionality
Use-Case View
Process View
System integrators
Performance
Scalability
Throughput
20
Deployment View
System engineering
System topology
Delivery, installation
communication
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
21. Definición de Arquitectura en RUP
Definir arquitectura
candidata
Evaluar Req.
No Funcionales (NFR)
Refinar y Seleccionar
la Arquitectura
Prototipar la
Arquitectura
Valorar Calidades
Sistémicas
21
Ajustar
Arquitectura
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
22. Definición de Arquitectura en SunTone AM
+
+
22
Metodología de desarrollo de software análoga al Unified
Process (UP) con un fuerte énfasis en Calidad de Servicio y
Patrones de diseño.
El cubo: framework conceptual, el cual provee una vista
tridimensional:
– Tiers lógicos
– Layers tecnológicos
– Calidades sistémicas
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
23. Definición de Arquitectura en SunTone AM
23
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
24. Definición de Arquitectura en SunTone
+ Principios Arquitectónicos
+ La arquitectura es primariamente necesaria para crear
un framework para el desarrollo basado en patrones y
para la entrega de calidades sistémicas predecibles.
Presentation
Action Factory
Business
Integration
Business
Database Integration
DAO
Factory
Business
Delegate
Action
Session Facade
Oracle DAO
Factory
Composite Entity
Front Controller
View
JSF Components
24
Service
Locator
Value
Object
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
DAO
OracleDAO
25. Definición de Arquitectura en IFM
+ Principios Arquitectónicos
+ El proceso de creación de arquitectura debe ser un
proceso de creación de valor.
+ La arquitectura se descompone en elementos
arquitectónicos (AEs).
+ La arquitectura se crea incrementalmente acorde a un
proceso secuencial dirigido por el ROI.
25
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
26. Definición de Arquitectura en IFM
+ Principios Arquitectónicos
+ La instanciación de los elementos arquitectónicos
(AEs) se realiza incrementalmente acorde a la
secuencia de MMFs, determinada por el ROI.
AE 1
AE 3
AE 7
AE 7
AE 8
AE 8
MMF A
26
AE 2
MMF B
MMF C
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
27. Ejemplo de Definición de
Arquitectura
+ eBank Trusted Hosting
+ Workshop de Arquitectura y Diseño de Aplicaciones J2EE
+ Curso WS50I - Lucasian Labs Ltda.
+ Entidad que presta el hosting
de los servicios de banca
personal en Internet
para un grupo de bancos.
27
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
28. Ejemplo de Definición de
Arquitectura
+ Dado un conjunto de requerimientos primarios
28
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
29. Ejemplo de Definición de
Arquitectura
+ Identificación de requerimientos funcionales y de
calidad de servicio (QoS)
29
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
30. Ejemplo de Definición de
Arquitectura
+ Identificación de supuestos, riesgos y restricciones
30
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
31. Ejemplo de Definición de
Arquitectura
+ Identificación de Actores y Casos de Uso primarios
31
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
32. Ejemplo de Definición de
Arquitectura
+ Arquitectura Lógica. Identificación de tiers lógicos,
subsistemas y paquetes
32
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
33. Ejemplo de Definición de
Arquitectura
+ Diseño de Arquitectura Runtime. Diagrama de
Despliegue.
33
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
34. Ejemplo de Definición de
Arquitectura
+ Plataforma Tecnológica. Definición de la matriz
tecnológica de layers y tiers
34
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
35. Discusión
+ Los requerimientos no funcionales son fuentes
comunes de riesgo…
35
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
36. Calidades Sistémicas
+ El manejo inadecuado de los requerimientos no
funcionales, es una de las fuentes más importante
de riesgo en los proyectos:
Reglas de negocio de alta complejidad.
– Calidades sistémicas
–
−
−
−
−
−
Seguridad
Rendimiento
Escalabilidad
Disponibilidad
Extensibilidad
+ La calidad de servicio (QoS = Quality Of Service) es
un riesgo primario relacionado con la arquitectura.
36
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
37. Calidades Sistémicas
+ Definición
+ Propiedades que establecen la
calidad de servicio (QoS) que un
sistema expone.
+ Son globales a toda la arquitectura
+ Influencian el diseño.
+ Son no-funcionales pero
+ Familias de
Calidades
Sistémicas
+ Manifiestas
+ Operacionales
+ Desarrollo
+ Evolutivas
observables.
37
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
38. Calidades Sistémicas Manifiestas
+ Observables por los usuarios del sistema.
+ Performance. Tiempo de respuesta desde el punto de vista del
usuario.
+ Reliability. Grado de probabilidad de realizar operaciones
correctamente.
+ Availability. Porcentaje de tiempo que un sistema puede
procesar solicitudes.
38
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
39. Calidades Sistémicas Operacionales
Observables cuando el sistema está operando en producción.
+ Throughput. Solicitudes atendidas + Security. Prevención de uso
por unidad de tiempo.
+ Manageability. Cantidad inversa de
esfuerzo para realizar labores
administrativas.
+ Serviceability. Esfuerzo para
actualizar el sistema para reparar
errores.
39
indeseado, por abuso o uso
inapropiado:
– Identidad
– Autoridad
– Confidencialidad
– Auditabilidad
– Integridad
+ Testability. Esfuerzo
invertido para detectar y
aislar errores.
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
40. Calidades Sistémicas - Evolutivas
+ Relacionadas con el comportamiento del sistema
cuando sufre algún cambio.
+ Escalability. La habilidad para
soportar la calidad de servicio
requerida conforme la carga aumenta.
+ Flexibility. Esfuerzo ahorrado cuando
se hace un cambio de configuración.
+ Portability. Esfuerzo ahorrado
+ Reusability. Esfuerzo ganado
en la utilización de componentes
existentes.
+ Extensibility. Esfuerzo ahorrado
para adicionar nuevas
funcionalidades.
cuando se migra a una infraestructura
+ Mantainability. Esfuerzo
diferente.
ahorrado para revisar y corregir
errores.
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
40
41. Lecciones Aprendidas en
Consultoría
+ Defina una persona o un grupo de personas experimentadas,
encargadas de definir y validar arquitectura de sus proyectos.
+ Establezca los requerimientos de calidad de servicio con los
expertos del dominio y con los usuarios finales.
+ Involucre al equipo de trabajo en el proceso de definición de
arquitectura.
+ Documente y comunique la arquitectura y
lineamientos de diseño y logre aceptación.
No la imponga.
+ Sea firme con las decisiones, valore impactos
e identifique riesgos.
41
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005
42. Lecciones Aprendidas en
Consultoría
+ Valore alternativas de arquitectura y diseño tomando en cuenta las
calidades sistémicas y relación costo-beneficio.
+ Instancie los mecanismos arquitectónicos definidos incrementalmente.
No los instancie en bloque.
+ Reutilice frameworks, patrones de diseño y mejores prácticas. Sea
racional en el uso de tecnologías.
+ Tenga siempre presente que requerimientos
de seguridad, integración con sistemas
externos, canales de comunicaciones
con poco ancho de banda,
crecimiento del volumen de
usuario, expectativas de cambios de
requerimientos son fuentes comunes de riesgo.
42
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 2005