SlideShare uma empresa Scribd logo
1 de 27
T.S.U Freddy García
La historia de la arquitectura del software
remonta a la época de los años 60 se empieza a
utilizar el término cuando Edsger Dijkstra la
Universidad Tecnológica de Eindhoven en
Holanda en 1968 propuso que se establezca una
estructura correcta de los sistemas de software
antes de que se inicie la programación como
tal, escribiendo código de cualquier manera.

En 1972, Parnas publicó un ensayo en el que
discutía la forma en que la modularidad en el
diseño de sistemas podía mejorar la flexibilidad y
el control conceptual del sistema, introduciendo el
concepto de Ocultamiento de información, La
herencia de este concepto en la ingeniería y la
arquitectura ulterior es inmensa, y se confunde
estrechamente con la idea de abstracción.

un año después de la sesión en que se
fundara la ingeniería de software, P. I. Sharp
formuló que la ingeniería era diferente a la
“arquitectura”.
Fred Brooks Jr y Ken Iverson llamaban
arquitectura a la estructura conceptual de un
sistema en la perspectiva del programador

Brooks, diseñador del sistema operativo
OS/360 y Premio Turing 2000, utilizaba el
concepto de arquitectura del sistema para
designar “la especificación completa y
detallada de la interfaz de usuario”.
los métodos de desarrollo estructurado
demostraron no escalar suficientemente y fueron
dejando el lugar a un nuevo paradigma, el de la
programación orientada a objetos.
Hacia fines de la década de 1980 y comienzos de
la siguiente, la expresión arquitectura de software
comienza a aparecer en la literatura para hacer
referencia a la configuración morfológica de una
aplicación.

La década de 1990, creemos, será la década
de la arquitectura de software. Usamos el
término “arquitectura” en contraste con
“diseño”, para evocar nociones de
codificación,
de
abstracción,
de
estándares, de entrenamiento forma.

Si bien la AS acostumbra remontar sus antecedentes hasta la década de 1960, su historia no ha sido
tan continua como la del campo más amplio en el que se inscribe, la ingeniería de software. Después
de las tempranas inspiraciones del legendario Edsger Dijkstra, de David Parnas y de Fred Brooks, la AS
quedó en estado de vida latente durante unos cuantos años, hasta comenzar su expansión explosiva
con los manifiestos de Dewayne Perry de AT&T Bell Laboratories de New Jersey y Alexander Wolf de la
Universidad de Colorado. Puede decirse que Perry y Wolf fundaron la disciplina, y su llamamiento fue
respondido en primera instancia por los miembros de lo que podría llamarse la escuela estructuralista
de Carnegie Mellon: David Garlan, Mary Shaw, Paul Clements, Robert Allen.
Se trata entonces de una práctica joven, de apenas unos doce años de trabajo constante, que en
estos momentos experimenta una nueva ola creativa en el desarrollo cabal de sus técnicas en la
obra de Rick Kazman, Mark Klein, Len Bass y otros metodólogos en el contexto del SEI, en la
misma universidad. A comienzos del siglo XXI comienzan ya a discernirse tendencias, cuyas
desavenencias mutuas todavía son leves: al menos una en el sur de California (Irvine y Los
Ángeles) con Nenad Medvidovic, David Rosenblum y Richard Taylor, otra en el SRI de Menlo Park
con Mark Moriconi y sus colegas y otra más vinculada a las recomendaciones formales de la IEEE
y los trabajos de Rich Hilliard. Hoy se percibe también un conjunto de posturas europeas que
enfatizan mayormente cuestiones metodológicas vinculadas con escenarios y procuran inscribir
la arquitectura de software en el ciclo de vida, comenzando por la elicitación de los
requerimientos. Antes de Perry y Wolf, empero, se formularon ideas que serían fundamentales
para la disciplina ulterior. Comencemos entonces por el principio, aunque siempre cabrá la
posibilidad de discutir cuál puede haber sido el momento preciso en el que todo comenzó.
Perry y Wolf establecen
concepto
descriptivo que
define una forma
de articulación u
organización
arquitectónica

uno de los aspectos fundamentales de la disciplina

El conjunto de los estilos
cataloga las formas básicas
posibles de estructuras de
software, mientras que las
formas complejas se articulan
mediante composición de los
estilos fundamentales.

A diferencia de los patrones de diseños, que
son centenares, los estilos se ordenan en seis
o siete clases fundamentales y unos veinte
ejemplares, como máximo.

estilos conjugan elementos (o
“componentes”, como se los llama
aquí), conectores, configuraciones
y restricciones.

La descripción de un estilo se
puede formular en lenguaje
natural o en diagramas, pero lo
mejor es hacerlo en un lenguaje
de descripción arquitectónica o
en lenguajes formales de
especificación.

Las arquitecturas complejas o compuestas resultan del agregado o la composición de estilos más
básicos. Algunos estilos típicos son las arquitecturas basadas en flujo de datos, las peer-topeer, las de invocación implícita, las jerárquicas, las centradas en datos o las de intérpretemáquina virtual.
Lenguajes de descripción de arquitecturas
Ocupan una parte importante del trabajo arquitectónico desde la fundación de la disciplina.
 Se trata de un conjunto de propuestas de variado nivel de rigurosidad, casi todas ellas de extracción
académica, que fueron surgiendo desde comienzos de la década de 1990 hasta la actualidad, más o menos
en contemporaneidad con el proyecto de unificación de los lenguajes de modelado bajo la forma de UML.
Los ADL difiere sustancialmente de UML, que al menos en su versión 1.x se estima inadecuado en su
capacidad para expresar conectores en particular y en su modelo semántico en general para las clases de
descripción y análisis que se requieren.

Los ADLs permiten modelar una arquitectura mucho antes que se lleve a cabo la programación de las
aplicaciones que la componen, analizar su adecuación, determinar sus puntos críticos y eventualmente
simular su comportamiento.

Los ADLs son bien conocidos en los estudios universitarios de AS, pero muy pocos arquitectos de industria
parecen conocerlos y son menos aún quienes los utilizan como instrumento en el diseño arquitectónico de
sus proyectos.
 Hay unos veinte ADLs de primera magnitud y tal vez unos cuarenta o cincuenta propuestos en ponencias
que no han resistido el paso del tiempo o que no han encontrado su camino en el mercado.
Se han analizado esos lenguajes descriptivos en un documento aparte, en el cual se invita asimismo a su
discusión.
Existen organismos de estándares (ISO, CEN, IEEE, OMG) que han
codificado diferentes aspectos de la Arquitectura del Software

Cuyo objetivo es :

homogeneizar la terminología, los modelos y los procedimientos
Los emergentes del trabajo de sus comités son especificaciones y recomendaciones de
variada naturaleza, como RM-ODP, RUP, RDS, MDA, MOF, MEMO, XMI o IEEE 1471-2000

Las recomendaciones de los marcos se tratan con sumo respeto pero también
con alguna reticencia, tal vez porque se estima que los organismos
privilegiarían más un acuerdo regido por una necesidad de equidistancia que
una adecuada fundamentación formal, porque cualquier versión del estándar
que se mencione en un paper habrá caducado cuando se lo publique, o por
alguna otra razón que dejamos abierta para que se discuta.
La mayoría de los frameworks y estrategias reconoce entre tres y seis vistas, que son las que se
incluyen en el cuadro. Una vista es, para definirla sucintamente, un subconjunto resultante de
practicar una selección o abstracción sobre una realidad, desde un punto de vista determinado

Zachman
(Niveles)
Alcance
Empresa
Sistema lógico
Tecnología
Representación
Funcionamiento

TOGAF
(Arquitecturas)
Negocios
Datos
Aplicación
Tecnología

4+1
(Vistas)
Lógica
Proceso
Física
Desarrollo
Casos de uso

[BRJ99]
(Vistas)
Diseño
Proceso
Implementación
Despliegue
Casos de uso

POSA
(Vistas)
Lógica
Proceso
Física
Desarrollo

Tabla 1 - Vistas en los marcos de referencia

Microsoft
(Vistas)
Lógica
Conceptual
Física
La arquitectura empresarial de John Zachman:
identifica 36 vistas en la arquitectura (“celdas”) marco
de
referencia
basadas
en
seis
niveles
(scope,
empresa,
sistema
lógico, tecnología, representación detallada y
funcionamiento empresarial) y seis aspectos
(datos, función, red, gente, tiempo, motivación).

El Modelo de Referencia para Procesamiento
Distribuido Abierto (RM-ODP) es un estándar de ISO
y de ITU (ex-CCITT) que define un marco para la
especificación arquitectónica de grandes sistemas
distribuidos. Define, cinco puntos de vista
(viewpoints) para un sistema y su entorno:
empresa, información, computación, ingeniería y
tecnología.

En el uso corriente de AS se ha estimado
que este modelo es excesivamente rígido
y sobre-articulado. Parecería existir
cierto consenso sobre su excesiva
ambición y su posible obsolescencia.

De los cuatro estándares básicos que
componen el modelo, los dos primeros
se refieren a la motivación general del
mismo
y
a
sus
fundamentos
conceptuales y analíticos; el tercero
(ISO/IEC 10746-3; UTI-T X.903) a la
arquitectura, definiendo los puntos de
vistas referidos; y el cuarto (ISO/IEC
10746-4; UTI-T X.904) a la formalización
de la semántica arquitectónica
C4ISR Architecture Framework es el marco de
referencia arquitectónico promovido por el
Departamento de Defensa de Estados Unidos (DoD).
Algunos de los otros marcos se inspiran en él, como
es el caso de TOGAF.

En los albores de la moderna práctica de los
patrones, Buschmann y otros presentan listas
discrepantes de vistas en su texto popularmente
conocido como POSA. En la primera se las llama
“arquitecturas”, y son: (1) Arquitectura conceptual:
componentes, conectores; (2) Arquitectura de
módulos:
subsistemas, módulos, exportaciones, importaciones
;
(3)
Arquitectura
de
código:
archivos, directorios, bibliotecas, inclusiones; (4)
Arquitectura de ejecución: tareas, hilos, procesos.

En la versión 2 de C4I, completada en
diciembre de 1997, la definición de
arquitectura reconocida es exactamente
la misma que después se promulgaría
como canónica en IEEE 1471.

La segunda lista de vistas, por su
parte, incluye: (1) Vista lógica: el modelo
de objetos del diseño, o un modelo
correspondiente tal como un diagrama
de relación; (2) Vista de proceso:
aspectos
de
concurrencia
y
sincronización; (3) Vista física: el mapeo
del software en el hardware y sus
aspectos distribuidos; (4) Vista de
desarrollo: la organización estática del
software en su entorno de desarrollo.
Vistas de UML

Área
Estructural

Diagramas de casos de
uso

Vista de
implementación
Vista de despliegue

Diagrama de
componentes
Diagrama de despliegue

Vista de máquinas
de estados
Vista de actividad

Diagrama de estados

Vista de interacción

Gestión del
modelo

Diagramas
Diagrama de clases

Vista de casos de
uso

Dinámica

Vista
Vista estática

Diagrama de secuencia
Diagrama de
colaboración
Diagrama de clases

Diagrama de actividad

Conceptos principales
Clase, asociación, generalización,
dependencia, realización, interfaz
Caso de uso, actor, asociación,
extensión, inclusión, generalización de
casos de uso
Componente, interfaz, dependencia,
realización
Nodo, componente, dependencia,
localización
Estado, evento, transición, acción
Estado, actividad, transición de
terminación, división, unión
Interacción, objeto, mensaje, activación
Colaboración, interacción, rol de
colaboración, mensaje
Paquete, subsistema, modelo

Vista de gestión del
modelo
Tabla 2 - Vistas y diagramas de UML, basado en [RJB00: 22]
Vistas de UML Vistas y puntos de vista no están homogeneizados en textos y autores
 Cuando los “3” hablan de AS, las vistas no se refieren a viewpoints o concerns, sino a niveles de
abstracción
 Definición diferente de “arquitectura”
 Interfaces en vez de conectores
 Objetos en lugar de componentes (“elementos”)
 Los conectores no son conectores de primera clase
En los diferentes marcos, las vistas estáticas se corresponden con las perspectivas particulares de
los diferentes participantes (stakeholders),

Mientras que las vistas dinámicas tienen que ver con etapas del proceso, ciclo de vida o
metodología, caracterizadas como:
 requerimiento
 análisis
 diseño (o construcción, o modelado)

 implementación
 integración (prueba de conformidad, testing, evaluación).
 La terminología, lo mismo que la articulación temporal del proceso o el ciclo, depende de cada
marco.
 Posicionamiento en ciclo de vida (AS
en RUP)

 Ventajas y desventajas (ATAM)
 Elección de arquitectura

 Atributos de calidad & escenarios

 Análisis de arquitectura (SAAM)

 [Primitivas de atributo]

 Quality Attribute Workshop (QAW)

 Architecture Based Design (ABD)

 Revisión activa de diseño parcial (ARID)

 Tácticas Arquitectónicas

 Análisis de costo/beneficio (CBAM)

 Comparación de alternativas (SACAM)

 Reformulación: UML & RUP

 Diseño basado en atributos (ADD)
La idea de abstracción forma parte de lo que acaso sea la pieza conceptual más
importante de la AS, el concepto de estilo; un estilo se identifica a grandes rasgos
o, como se dice habitualmente, en un estilo “menos es más”. La misma idea
prevalece en todos los conceptos y procedimientos que se consideran
arquitectónicos. Para Len Bass, Paul Clements y Rick Kazman [BCK98], si una
decisión debe posponerse hasta el momento de tratar las cosas a un bajo nivel, no
se trata de una decisión de arquitectura. Clements y Northrop [CN96] sostienen que
el trabajo de Garlan y Shaw sobre los estilos arquitectónicos nos enseña que
aunque los programas pueden combinarse de maneras prácticamente infinitas, hay
mucho que ganar si nos restringimos a un conjunto relativamente pequeño de
elecciones cuando se trata de cooperación e interacción. Las ventajas incluyen
mejor reutilización, mejores análisis, menor tiempo se selección y mayor
interoperabilidad. “Menos es más” figura, de hecho, en el título y en los contenidos
de numerosos papers de la profesión [MB02] [CN96]. Conceptos como el de estilo, o
marcos como MSF, revelan su naturaleza arquitectónica en su abstracción y en su
generalidad.


Equivalente no funcional de los casos de uso



No contemplados en UML / RUP



Cuantificables - No hay diagramas de escenarios



Estímulo, ambiente, respuesta



Escenario de caso de uso:


Un usuario remoto de web requiere un reporte de base de datos en hora pico y

lo recibe dentro de los 5 segundos.


Escenario de crecimiento:


Agregar un nuevo servidor de base de datos para reducir latencia en escenario 1
a 2.5 segundos dentro de una persona-semana.



Escenario exploratorio:


La mitad de los servidores se bajará durante operación normal sin afectar la
disponibilidad del sistema.
David Garlan y Dewayne Perry, en su introducción al volumen de abril de 1995 de IEEE
Transactions on Software Engineering dedicado a la AS, en el cual se delinean las áreas
de investigación más promisorias, enumeran las siguientes:
1

Arquitectura como etapa de
ingeniería y diseño orientada
a objetos. Es el modelo de
James Rumbaugh, Ivar
Jacobson, Grady Booch, Craig
Larman y otros, ligado
estrechamente al mundo de
UML y Rational.

En la década de 1990 se establece definitivamente la
AS como un dominio todavía hoy separado de manera
confusa de ese marco global que es la ingeniería y de
esa práctica puntual que es el diseño. Aunque no hay
un discurso explícito y autoconsciente sobre escuelas
de AS, ni se ha publicado un estudio reconocido y
sistemático que analice las particularidades de cada
una, en la actualidad se pueden distinguir a grandes
rasgos unas seis corrientes.

2
Arquitectura estructural, basada en un
modelo estático de estilos, ADLs y vistas.
Constituye la corriente fundacional y
clásica de la disciplina. Los representantes
de esta corriente son todos
académicos, mayormente de la Universidad
Carnegie Mellon en Pittsburgh: Mary
Shaw, Paul Clements, David Garlan, Robert
Allen, Gregory Abowd, John Ockerbloom.

3
Estructuralismo arquitectónico radical.
Se trata de un desprendimiento de la
corriente anterior, mayoritariamente
europeo, que asume una actitud más
confrontativa con el mundo UML.
4

Arquitectura basada en
patrones. Si bien reconoce la
importancia de un modelo
emanado históricamente del
diseño orientado a objetos, esta
corriente surgida hacia 1996 no
se encuentra tan rígidamente
vinculada a UML en el
modelado, ni a CMM en la
metodología.

5
Arquitectura procesual. Desde comienzos
del siglo XXI, con centro en el SEI y con
participación de algunos (no todos) los
arquitectos de Carnegie Mellon de la
primera generación y muchos nombres
nuevos de la segunda: Rick Kazman, Len
Bass, Paul Clements, Felix Bachmann, Fabio
Peruzzi, Jeromy Carrière, Mario
Barbacci, Charles Weinstock.

6
Arquitectura basada en escenarios. Es
la corriente más nueva. Se trata de un
movimiento predominantemente
europeo, con centro en Holanda.
Recupera el nexo de la AS con los
requerimientos y la funcionalidad del
sistema, ocasionalmente borroso en la
arquitectura estructural clásica.
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

Especificaciones de
codificación
•

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

Arquitectura
http://www.sei.cmu.edu/ata/ata_init.html
Software Engineering Institute en la Universidad Carnegie Mellon de Pittsburgh, Pennsylvania

http://www.dstc.edu.au/Research/Projects/ODP/ref_model.html
servicios de información de RM-ODP

http://www.software.org/pub/architecture/dodaf.asp.
DoDAF (hogar del C4ISR)

http://www.software.org/pub/architecture/togaf.asp
TOGAF

http://www.techstreet.com/cgi-bin/detail?product_id=879737
El estándar IEEE 1471-2000

http://www.software.org/pub/architecture/zachman.asp.
El marco de referencia empresarial de Zachman


Mary Shaw, David Garlan, 1996
 Inspirado en trabajo de Parnas, 1972 (“On the criteria to be used in decomposing systems
into modules”) – Datos compartidos vs ocultamiento de información



Sistema de indexación de palabras claves
 Datos compartidos
 Tipos abstractos de datos
 Invocación implícita
 Tubería y filtros



Comparación de versatilidad, dependencia, modularidad, reutilización, refinamiento, ventajas &
desventajas



Antes de escribir una línea de código



Tablas de comparación de atributos



Asignación de pesos a prioridades
 Rumbaugh-Booch-Jacobson 1991
 (1) transformaciones en lote, (2) transformaciones continuas, (3) interfaz
interactiva, (4) simulación dinámica de objetos del mundo real, (5) sistemas de
tiempo real, (6) administrador de transacciones con almacenamiento y
actualización de datos
 Pero: “estilos arquitectónicos”, “arquitecturas comunes”, “marcos de referencia
arquitectónicos prototípicos”, “formas comunes”, “clases de sistemas”
 Definición no exhaustiva
 Criterios taxonómicos no homogéneos
 Taxones de distinto nivel de inclusión
 Algunos tipos pueden incluir otros (ej. 6 y 3)
•

Perry & Wolf, 1992

•

Incluyen:
– Componentes (2003, “elementos”)
– Conectores
– Estructuras (topologías, configuraciones)
– Restricciones (constraints)







Estilos de Flujo de Datos

Tubería y filtros
Estilos Centrados en Datos

Arquitecturas de Pizarra o
Repositorio
Estilos de Llamada y Retorno

Model-View-Controller (MVC)

Arquitecturas en Capas

Arquitecturas Orientadas a Objetos

Arquitecturas Basadas en
Componentes
Estilos Derivados

C2

GenVoca

REST



Estilos de Código Móvil




Arquitectura de Máquinas Virtuales

Estilos heterogéneos





Sistemas de control de procesos
Arquitecturas Basadas en Atributos

Estilos Peer-to-Peer


Arquitecturas Basadas en Eventos



Arquitecturas Orientadas a
Servicios (SOA)



Arquitecturas Basadas en Recursos
Arquitectura del software

Mais conteúdo relacionado

Mais procurados

Componentes y evolucion del modelado de negocios(investigacion)
Componentes y evolucion del modelado de negocios(investigacion)Componentes y evolucion del modelado de negocios(investigacion)
Componentes y evolucion del modelado de negocios(investigacion)Anel Sosa
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicaslandeta_p
 
Conceptualización de tecnología orientada a objetos
Conceptualización de tecnología orientada a objetosConceptualización de tecnología orientada a objetos
Conceptualización de tecnología orientada a objetosJose Luis Garduño Torres
 
LINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCH
LINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCHLINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCH
LINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCHPerozoAlejandro
 
Ejemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rupEjemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rupXochitl Saucedo Muñoz
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosJuan Carlos Olivares Rojas
 
Modelado UML de sistema punto venta
Modelado UML de sistema punto ventaModelado UML de sistema punto venta
Modelado UML de sistema punto ventaRafael Diaz
 
Tecnicas y herramientas de desarrollo de software(1)
Tecnicas y herramientas de desarrollo de software(1)Tecnicas y herramientas de desarrollo de software(1)
Tecnicas y herramientas de desarrollo de software(1)Gustavo Gualsema
 
Metodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y EmergentesMetodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y EmergentesMiguel Rodríguez
 
Ventajas y desventajas de visual studio
Ventajas  y desventajas de visual studioVentajas  y desventajas de visual studio
Ventajas y desventajas de visual studioruthmayhuavale
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetoshector_h30
 

Mais procurados (20)

Componentes y evolucion del modelado de negocios(investigacion)
Componentes y evolucion del modelado de negocios(investigacion)Componentes y evolucion del modelado de negocios(investigacion)
Componentes y evolucion del modelado de negocios(investigacion)
 
Ejemplo rup
Ejemplo rupEjemplo rup
Ejemplo rup
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
Diagrama de Componentes
Diagrama de ComponentesDiagrama de Componentes
Diagrama de Componentes
 
Conceptualización de tecnología orientada a objetos
Conceptualización de tecnología orientada a objetosConceptualización de tecnología orientada a objetos
Conceptualización de tecnología orientada a objetos
 
LINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCH
LINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCHLINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCH
LINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCH
 
Ejemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rupEjemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rup
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de Requerimientos
 
Modelado UML de sistema punto venta
Modelado UML de sistema punto ventaModelado UML de sistema punto venta
Modelado UML de sistema punto venta
 
Tecnicas y herramientas de desarrollo de software(1)
Tecnicas y herramientas de desarrollo de software(1)Tecnicas y herramientas de desarrollo de software(1)
Tecnicas y herramientas de desarrollo de software(1)
 
Metodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y EmergentesMetodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y Emergentes
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
Ventajas y desventajas de visual studio
Ventajas  y desventajas de visual studioVentajas  y desventajas de visual studio
Ventajas y desventajas de visual studio
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
Tópicos Avanzados de Programación - Unidad 1 GUI
Tópicos Avanzados de Programación - Unidad 1 GUITópicos Avanzados de Programación - Unidad 1 GUI
Tópicos Avanzados de Programación - Unidad 1 GUI
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
 
Análisis estructurado
Análisis estructuradoAnálisis estructurado
Análisis estructurado
 
Diagrama de Colaboración
Diagrama de ColaboraciónDiagrama de Colaboración
Diagrama de Colaboración
 

Destaque

Principios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwarePrincipios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwareJose Patricio Bovet Derpich
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREjose_rob
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de softwareRoque Rueda
 
Diseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-softwareDiseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-softwareAndresRealp1
 
Estilos de Software
Estilos de SoftwareEstilos de Software
Estilos de Softwarebjjuarez
 
Gestion De Proyecto De Desarrollo De Software
Gestion De Proyecto De Desarrollo De SoftwareGestion De Proyecto De Desarrollo De Software
Gestion De Proyecto De Desarrollo De SoftwareDecimo Sistemas
 
El Rol de un Arquitecto de Software
El Rol de un Arquitecto de SoftwareEl Rol de un Arquitecto de Software
El Rol de un Arquitecto de SoftwareSorey García
 
Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Marta Silvia Tabares
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de softwareLiliana Pacheco
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Softwarelcastillo110
 
Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Marta Silvia Tabares
 
Proceso del diseño arquitectónico
Proceso del diseño arquitectónicoProceso del diseño arquitectónico
Proceso del diseño arquitectónicoDiamante Xahuen
 
El proceso de diseño arquitectonico
El proceso de diseño arquitectonicoEl proceso de diseño arquitectonico
El proceso de diseño arquitectonicoMarce F.
 
Estilos y tendencias del diseño arquitectonico
Estilos y tendencias del diseño arquitectonicoEstilos y tendencias del diseño arquitectonico
Estilos y tendencias del diseño arquitectonicojdmanchas
 
Proceso metodológico del diseño arquitectónico
Proceso metodológico del diseño arquitectónicoProceso metodológico del diseño arquitectónico
Proceso metodológico del diseño arquitectónicoJorge Granados Valencia
 

Destaque (20)

Principios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwarePrincipios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del software
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
 
Software exposicion
Software exposicionSoftware exposicion
Software exposicion
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
Arquitectura software
Arquitectura softwareArquitectura software
Arquitectura software
 
Diseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-softwareDiseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-software
 
Estilos de Software
Estilos de SoftwareEstilos de Software
Estilos de Software
 
Gestion De Proyecto De Desarrollo De Software
Gestion De Proyecto De Desarrollo De SoftwareGestion De Proyecto De Desarrollo De Software
Gestion De Proyecto De Desarrollo De Software
 
Metodologia clasica en cascada
Metodologia clasica en cascadaMetodologia clasica en cascada
Metodologia clasica en cascada
 
El Rol de un Arquitecto de Software
El Rol de un Arquitecto de SoftwareEl Rol de un Arquitecto de Software
El Rol de un Arquitecto de Software
 
Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Software
 
Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2
 
Proceso del diseño arquitectónico
Proceso del diseño arquitectónicoProceso del diseño arquitectónico
Proceso del diseño arquitectónico
 
El proceso de diseño arquitectonico
El proceso de diseño arquitectonicoEl proceso de diseño arquitectonico
El proceso de diseño arquitectonico
 
Estilos y tendencias del diseño arquitectonico
Estilos y tendencias del diseño arquitectonicoEstilos y tendencias del diseño arquitectonico
Estilos y tendencias del diseño arquitectonico
 
Proceso metodológico del diseño arquitectónico
Proceso metodológico del diseño arquitectónicoProceso metodológico del diseño arquitectónico
Proceso metodológico del diseño arquitectónico
 

Semelhante a Arquitectura del software

Semelhante a Arquitectura del software (20)

Fundamentos arquitectura del software
Fundamentos arquitectura del softwareFundamentos arquitectura del software
Fundamentos arquitectura del software
 
Fundamentos arquitectura del software
Fundamentos arquitectura del softwareFundamentos arquitectura del software
Fundamentos arquitectura del software
 
Fundamentos arquitectura del software
Fundamentos arquitectura del softwareFundamentos arquitectura del software
Fundamentos arquitectura del software
 
Arquitectura del software
Arquitectura del softwareArquitectura del software
Arquitectura del software
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
Arquitectura del software
Arquitectura del softwareArquitectura del software
Arquitectura del software
 
ArqSoft
ArqSoftArqSoft
ArqSoft
 
Monografia pipeline
Monografia pipelineMonografia pipeline
Monografia pipeline
 
Patrones de Diseño
Patrones de DiseñoPatrones de Diseño
Patrones de Diseño
 
Arquitectura dpsw
Arquitectura dpswArquitectura dpsw
Arquitectura dpsw
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
Guia Yahveh
Guia YahvehGuia Yahveh
Guia Yahveh
 
investigacion uml
investigacion umlinvestigacion uml
investigacion uml
 
Uml
UmlUml
Uml
 
Do daf
Do dafDo daf
Do daf
 
Unidad 1 y 2 de desarrollo
Unidad 1 y 2 de desarrolloUnidad 1 y 2 de desarrollo
Unidad 1 y 2 de desarrollo
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Monografia decorator
Monografia decoratorMonografia decorator
Monografia decorator
 
Leo métodos de modelado para aplicaciones web-4
Leo métodos de modelado para aplicaciones web-4Leo métodos de modelado para aplicaciones web-4
Leo métodos de modelado para aplicaciones web-4
 

Último

Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 

Último (20)

Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 

Arquitectura del software

  • 2. La historia de la arquitectura del software remonta a la época de los años 60 se empieza a utilizar el término cuando Edsger Dijkstra la Universidad Tecnológica de Eindhoven en Holanda en 1968 propuso que se establezca una estructura correcta de los sistemas de software antes de que se inicie la programación como tal, escribiendo código de cualquier manera. En 1972, Parnas publicó un ensayo en el que discutía la forma en que la modularidad en el diseño de sistemas podía mejorar la flexibilidad y el control conceptual del sistema, introduciendo el concepto de Ocultamiento de información, La herencia de este concepto en la ingeniería y la arquitectura ulterior es inmensa, y se confunde estrechamente con la idea de abstracción. un año después de la sesión en que se fundara la ingeniería de software, P. I. Sharp formuló que la ingeniería era diferente a la “arquitectura”. Fred Brooks Jr y Ken Iverson llamaban arquitectura a la estructura conceptual de un sistema en la perspectiva del programador Brooks, diseñador del sistema operativo OS/360 y Premio Turing 2000, utilizaba el concepto de arquitectura del sistema para designar “la especificación completa y detallada de la interfaz de usuario”.
  • 3. los métodos de desarrollo estructurado demostraron no escalar suficientemente y fueron dejando el lugar a un nuevo paradigma, el de la programación orientada a objetos. Hacia fines de la década de 1980 y comienzos de la siguiente, la expresión arquitectura de software comienza a aparecer en la literatura para hacer referencia a la configuración morfológica de una aplicación. La década de 1990, creemos, será la década de la arquitectura de software. Usamos el término “arquitectura” en contraste con “diseño”, para evocar nociones de codificación, de abstracción, de estándares, de entrenamiento forma. Si bien la AS acostumbra remontar sus antecedentes hasta la década de 1960, su historia no ha sido tan continua como la del campo más amplio en el que se inscribe, la ingeniería de software. Después de las tempranas inspiraciones del legendario Edsger Dijkstra, de David Parnas y de Fred Brooks, la AS quedó en estado de vida latente durante unos cuantos años, hasta comenzar su expansión explosiva con los manifiestos de Dewayne Perry de AT&T Bell Laboratories de New Jersey y Alexander Wolf de la Universidad de Colorado. Puede decirse que Perry y Wolf fundaron la disciplina, y su llamamiento fue respondido en primera instancia por los miembros de lo que podría llamarse la escuela estructuralista de Carnegie Mellon: David Garlan, Mary Shaw, Paul Clements, Robert Allen.
  • 4. Se trata entonces de una práctica joven, de apenas unos doce años de trabajo constante, que en estos momentos experimenta una nueva ola creativa en el desarrollo cabal de sus técnicas en la obra de Rick Kazman, Mark Klein, Len Bass y otros metodólogos en el contexto del SEI, en la misma universidad. A comienzos del siglo XXI comienzan ya a discernirse tendencias, cuyas desavenencias mutuas todavía son leves: al menos una en el sur de California (Irvine y Los Ángeles) con Nenad Medvidovic, David Rosenblum y Richard Taylor, otra en el SRI de Menlo Park con Mark Moriconi y sus colegas y otra más vinculada a las recomendaciones formales de la IEEE y los trabajos de Rich Hilliard. Hoy se percibe también un conjunto de posturas europeas que enfatizan mayormente cuestiones metodológicas vinculadas con escenarios y procuran inscribir la arquitectura de software en el ciclo de vida, comenzando por la elicitación de los requerimientos. Antes de Perry y Wolf, empero, se formularon ideas que serían fundamentales para la disciplina ulterior. Comencemos entonces por el principio, aunque siempre cabrá la posibilidad de discutir cuál puede haber sido el momento preciso en el que todo comenzó.
  • 5. Perry y Wolf establecen concepto descriptivo que define una forma de articulación u organización arquitectónica uno de los aspectos fundamentales de la disciplina El conjunto de los estilos cataloga las formas básicas posibles de estructuras de software, mientras que las formas complejas se articulan mediante composición de los estilos fundamentales. A diferencia de los patrones de diseños, que son centenares, los estilos se ordenan en seis o siete clases fundamentales y unos veinte ejemplares, como máximo. estilos conjugan elementos (o “componentes”, como se los llama aquí), conectores, configuraciones y restricciones. La descripción de un estilo se puede formular en lenguaje natural o en diagramas, pero lo mejor es hacerlo en un lenguaje de descripción arquitectónica o en lenguajes formales de especificación. Las arquitecturas complejas o compuestas resultan del agregado o la composición de estilos más básicos. Algunos estilos típicos son las arquitecturas basadas en flujo de datos, las peer-topeer, las de invocación implícita, las jerárquicas, las centradas en datos o las de intérpretemáquina virtual.
  • 6. Lenguajes de descripción de arquitecturas Ocupan una parte importante del trabajo arquitectónico desde la fundación de la disciplina.  Se trata de un conjunto de propuestas de variado nivel de rigurosidad, casi todas ellas de extracción académica, que fueron surgiendo desde comienzos de la década de 1990 hasta la actualidad, más o menos en contemporaneidad con el proyecto de unificación de los lenguajes de modelado bajo la forma de UML. Los ADL difiere sustancialmente de UML, que al menos en su versión 1.x se estima inadecuado en su capacidad para expresar conectores en particular y en su modelo semántico en general para las clases de descripción y análisis que se requieren. Los ADLs permiten modelar una arquitectura mucho antes que se lleve a cabo la programación de las aplicaciones que la componen, analizar su adecuación, determinar sus puntos críticos y eventualmente simular su comportamiento.  Los ADLs son bien conocidos en los estudios universitarios de AS, pero muy pocos arquitectos de industria parecen conocerlos y son menos aún quienes los utilizan como instrumento en el diseño arquitectónico de sus proyectos.  Hay unos veinte ADLs de primera magnitud y tal vez unos cuarenta o cincuenta propuestos en ponencias que no han resistido el paso del tiempo o que no han encontrado su camino en el mercado. Se han analizado esos lenguajes descriptivos en un documento aparte, en el cual se invita asimismo a su discusión.
  • 7. Existen organismos de estándares (ISO, CEN, IEEE, OMG) que han codificado diferentes aspectos de la Arquitectura del Software Cuyo objetivo es : homogeneizar la terminología, los modelos y los procedimientos Los emergentes del trabajo de sus comités son especificaciones y recomendaciones de variada naturaleza, como RM-ODP, RUP, RDS, MDA, MOF, MEMO, XMI o IEEE 1471-2000 Las recomendaciones de los marcos se tratan con sumo respeto pero también con alguna reticencia, tal vez porque se estima que los organismos privilegiarían más un acuerdo regido por una necesidad de equidistancia que una adecuada fundamentación formal, porque cualquier versión del estándar que se mencione en un paper habrá caducado cuando se lo publique, o por alguna otra razón que dejamos abierta para que se discuta.
  • 8. La mayoría de los frameworks y estrategias reconoce entre tres y seis vistas, que son las que se incluyen en el cuadro. Una vista es, para definirla sucintamente, un subconjunto resultante de practicar una selección o abstracción sobre una realidad, desde un punto de vista determinado Zachman (Niveles) Alcance Empresa Sistema lógico Tecnología Representación Funcionamiento TOGAF (Arquitecturas) Negocios Datos Aplicación Tecnología 4+1 (Vistas) Lógica Proceso Física Desarrollo Casos de uso [BRJ99] (Vistas) Diseño Proceso Implementación Despliegue Casos de uso POSA (Vistas) Lógica Proceso Física Desarrollo Tabla 1 - Vistas en los marcos de referencia Microsoft (Vistas) Lógica Conceptual Física
  • 9. La arquitectura empresarial de John Zachman: identifica 36 vistas en la arquitectura (“celdas”) marco de referencia basadas en seis niveles (scope, empresa, sistema lógico, tecnología, representación detallada y funcionamiento empresarial) y seis aspectos (datos, función, red, gente, tiempo, motivación). El Modelo de Referencia para Procesamiento Distribuido Abierto (RM-ODP) es un estándar de ISO y de ITU (ex-CCITT) que define un marco para la especificación arquitectónica de grandes sistemas distribuidos. Define, cinco puntos de vista (viewpoints) para un sistema y su entorno: empresa, información, computación, ingeniería y tecnología. En el uso corriente de AS se ha estimado que este modelo es excesivamente rígido y sobre-articulado. Parecería existir cierto consenso sobre su excesiva ambición y su posible obsolescencia. De los cuatro estándares básicos que componen el modelo, los dos primeros se refieren a la motivación general del mismo y a sus fundamentos conceptuales y analíticos; el tercero (ISO/IEC 10746-3; UTI-T X.903) a la arquitectura, definiendo los puntos de vistas referidos; y el cuarto (ISO/IEC 10746-4; UTI-T X.904) a la formalización de la semántica arquitectónica
  • 10. C4ISR Architecture Framework es el marco de referencia arquitectónico promovido por el Departamento de Defensa de Estados Unidos (DoD). Algunos de los otros marcos se inspiran en él, como es el caso de TOGAF. En los albores de la moderna práctica de los patrones, Buschmann y otros presentan listas discrepantes de vistas en su texto popularmente conocido como POSA. En la primera se las llama “arquitecturas”, y son: (1) Arquitectura conceptual: componentes, conectores; (2) Arquitectura de módulos: subsistemas, módulos, exportaciones, importaciones ; (3) Arquitectura de código: archivos, directorios, bibliotecas, inclusiones; (4) Arquitectura de ejecución: tareas, hilos, procesos. En la versión 2 de C4I, completada en diciembre de 1997, la definición de arquitectura reconocida es exactamente la misma que después se promulgaría como canónica en IEEE 1471. La segunda lista de vistas, por su parte, incluye: (1) Vista lógica: el modelo de objetos del diseño, o un modelo correspondiente tal como un diagrama de relación; (2) Vista de proceso: aspectos de concurrencia y sincronización; (3) Vista física: el mapeo del software en el hardware y sus aspectos distribuidos; (4) Vista de desarrollo: la organización estática del software en su entorno de desarrollo.
  • 11. Vistas de UML Área Estructural Diagramas de casos de uso Vista de implementación Vista de despliegue Diagrama de componentes Diagrama de despliegue Vista de máquinas de estados Vista de actividad Diagrama de estados Vista de interacción Gestión del modelo Diagramas Diagrama de clases Vista de casos de uso Dinámica Vista Vista estática Diagrama de secuencia Diagrama de colaboración Diagrama de clases Diagrama de actividad Conceptos principales Clase, asociación, generalización, dependencia, realización, interfaz Caso de uso, actor, asociación, extensión, inclusión, generalización de casos de uso Componente, interfaz, dependencia, realización Nodo, componente, dependencia, localización Estado, evento, transición, acción Estado, actividad, transición de terminación, división, unión Interacción, objeto, mensaje, activación Colaboración, interacción, rol de colaboración, mensaje Paquete, subsistema, modelo Vista de gestión del modelo Tabla 2 - Vistas y diagramas de UML, basado en [RJB00: 22]
  • 12. Vistas de UML Vistas y puntos de vista no están homogeneizados en textos y autores  Cuando los “3” hablan de AS, las vistas no se refieren a viewpoints o concerns, sino a niveles de abstracción  Definición diferente de “arquitectura”  Interfaces en vez de conectores  Objetos en lugar de componentes (“elementos”)  Los conectores no son conectores de primera clase
  • 13. En los diferentes marcos, las vistas estáticas se corresponden con las perspectivas particulares de los diferentes participantes (stakeholders), Mientras que las vistas dinámicas tienen que ver con etapas del proceso, ciclo de vida o metodología, caracterizadas como:  requerimiento  análisis  diseño (o construcción, o modelado)  implementación  integración (prueba de conformidad, testing, evaluación).  La terminología, lo mismo que la articulación temporal del proceso o el ciclo, depende de cada marco.
  • 14.  Posicionamiento en ciclo de vida (AS en RUP)  Ventajas y desventajas (ATAM)  Elección de arquitectura  Atributos de calidad & escenarios  Análisis de arquitectura (SAAM)  [Primitivas de atributo]  Quality Attribute Workshop (QAW)  Architecture Based Design (ABD)  Revisión activa de diseño parcial (ARID)  Tácticas Arquitectónicas  Análisis de costo/beneficio (CBAM)  Comparación de alternativas (SACAM)  Reformulación: UML & RUP  Diseño basado en atributos (ADD)
  • 15. La idea de abstracción forma parte de lo que acaso sea la pieza conceptual más importante de la AS, el concepto de estilo; un estilo se identifica a grandes rasgos o, como se dice habitualmente, en un estilo “menos es más”. La misma idea prevalece en todos los conceptos y procedimientos que se consideran arquitectónicos. Para Len Bass, Paul Clements y Rick Kazman [BCK98], si una decisión debe posponerse hasta el momento de tratar las cosas a un bajo nivel, no se trata de una decisión de arquitectura. Clements y Northrop [CN96] sostienen que el trabajo de Garlan y Shaw sobre los estilos arquitectónicos nos enseña que aunque los programas pueden combinarse de maneras prácticamente infinitas, hay mucho que ganar si nos restringimos a un conjunto relativamente pequeño de elecciones cuando se trata de cooperación e interacción. Las ventajas incluyen mejor reutilización, mejores análisis, menor tiempo se selección y mayor interoperabilidad. “Menos es más” figura, de hecho, en el título y en los contenidos de numerosos papers de la profesión [MB02] [CN96]. Conceptos como el de estilo, o marcos como MSF, revelan su naturaleza arquitectónica en su abstracción y en su generalidad.
  • 16.  Equivalente no funcional de los casos de uso  No contemplados en UML / RUP  Cuantificables - No hay diagramas de escenarios  Estímulo, ambiente, respuesta  Escenario de caso de uso:  Un usuario remoto de web requiere un reporte de base de datos en hora pico y lo recibe dentro de los 5 segundos.  Escenario de crecimiento:  Agregar un nuevo servidor de base de datos para reducir latencia en escenario 1 a 2.5 segundos dentro de una persona-semana.  Escenario exploratorio:  La mitad de los servidores se bajará durante operación normal sin afectar la disponibilidad del sistema.
  • 17. David Garlan y Dewayne Perry, en su introducción al volumen de abril de 1995 de IEEE Transactions on Software Engineering dedicado a la AS, en el cual se delinean las áreas de investigación más promisorias, enumeran las siguientes:
  • 18. 1 Arquitectura como etapa de ingeniería y diseño orientada a objetos. Es el modelo de James Rumbaugh, Ivar Jacobson, Grady Booch, Craig Larman y otros, ligado estrechamente al mundo de UML y Rational. En la década de 1990 se establece definitivamente la AS como un dominio todavía hoy separado de manera confusa de ese marco global que es la ingeniería y de esa práctica puntual que es el diseño. Aunque no hay un discurso explícito y autoconsciente sobre escuelas de AS, ni se ha publicado un estudio reconocido y sistemático que analice las particularidades de cada una, en la actualidad se pueden distinguir a grandes rasgos unas seis corrientes. 2 Arquitectura estructural, basada en un modelo estático de estilos, ADLs y vistas. Constituye la corriente fundacional y clásica de la disciplina. Los representantes de esta corriente son todos académicos, mayormente de la Universidad Carnegie Mellon en Pittsburgh: Mary Shaw, Paul Clements, David Garlan, Robert Allen, Gregory Abowd, John Ockerbloom. 3 Estructuralismo arquitectónico radical. Se trata de un desprendimiento de la corriente anterior, mayoritariamente europeo, que asume una actitud más confrontativa con el mundo UML.
  • 19. 4 Arquitectura basada en patrones. Si bien reconoce la importancia de un modelo emanado históricamente del diseño orientado a objetos, esta corriente surgida hacia 1996 no se encuentra tan rígidamente vinculada a UML en el modelado, ni a CMM en la metodología. 5 Arquitectura procesual. Desde comienzos del siglo XXI, con centro en el SEI y con participación de algunos (no todos) los arquitectos de Carnegie Mellon de la primera generación y muchos nombres nuevos de la segunda: Rick Kazman, Len Bass, Paul Clements, Felix Bachmann, Fabio Peruzzi, Jeromy Carrière, Mario Barbacci, Charles Weinstock. 6 Arquitectura basada en escenarios. Es la corriente más nueva. Se trata de un movimiento predominantemente europeo, con centro en Holanda. Recupera el nexo de la AS con los requerimientos y la funcionalidad del sistema, ocasionalmente borroso en la arquitectura estructural clásica.
  • 20. 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 Especificaciones de codificación
  • 21. • 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 Arquitectura
  • 22. http://www.sei.cmu.edu/ata/ata_init.html Software Engineering Institute en la Universidad Carnegie Mellon de Pittsburgh, Pennsylvania http://www.dstc.edu.au/Research/Projects/ODP/ref_model.html servicios de información de RM-ODP http://www.software.org/pub/architecture/dodaf.asp. DoDAF (hogar del C4ISR) http://www.software.org/pub/architecture/togaf.asp TOGAF http://www.techstreet.com/cgi-bin/detail?product_id=879737 El estándar IEEE 1471-2000 http://www.software.org/pub/architecture/zachman.asp. El marco de referencia empresarial de Zachman
  • 23.  Mary Shaw, David Garlan, 1996  Inspirado en trabajo de Parnas, 1972 (“On the criteria to be used in decomposing systems into modules”) – Datos compartidos vs ocultamiento de información  Sistema de indexación de palabras claves  Datos compartidos  Tipos abstractos de datos  Invocación implícita  Tubería y filtros  Comparación de versatilidad, dependencia, modularidad, reutilización, refinamiento, ventajas & desventajas  Antes de escribir una línea de código  Tablas de comparación de atributos  Asignación de pesos a prioridades
  • 24.  Rumbaugh-Booch-Jacobson 1991  (1) transformaciones en lote, (2) transformaciones continuas, (3) interfaz interactiva, (4) simulación dinámica de objetos del mundo real, (5) sistemas de tiempo real, (6) administrador de transacciones con almacenamiento y actualización de datos  Pero: “estilos arquitectónicos”, “arquitecturas comunes”, “marcos de referencia arquitectónicos prototípicos”, “formas comunes”, “clases de sistemas”  Definición no exhaustiva  Criterios taxonómicos no homogéneos  Taxones de distinto nivel de inclusión  Algunos tipos pueden incluir otros (ej. 6 y 3)
  • 25. • Perry & Wolf, 1992 • Incluyen: – Componentes (2003, “elementos”) – Conectores – Estructuras (topologías, configuraciones) – Restricciones (constraints)
  • 26.     Estilos de Flujo de Datos  Tubería y filtros Estilos Centrados en Datos  Arquitecturas de Pizarra o Repositorio Estilos de Llamada y Retorno  Model-View-Controller (MVC)  Arquitecturas en Capas  Arquitecturas Orientadas a Objetos  Arquitecturas Basadas en Componentes Estilos Derivados  C2  GenVoca  REST  Estilos de Código Móvil   Arquitectura de Máquinas Virtuales Estilos heterogéneos    Sistemas de control de procesos Arquitecturas Basadas en Atributos Estilos Peer-to-Peer  Arquitecturas Basadas en Eventos  Arquitecturas Orientadas a Servicios (SOA)  Arquitecturas Basadas en Recursos