Arquitectura Propietaria Examen Final
Ingeniería de Software
Abarca el desarrollo de sistemas de software
Arquitectura
Asocia las capacidades del sistema especificadas en el requerimiento con los componentes del sistema que habrán de implementarla. La descripción arquitectónica incluye componentes y conectores (en términos de estilos) y la definición de operadores que crean sistemas a partir de subsistemas o, en otros términos, componen estilos complejos a partir de estilos simples
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
Pipes and Filters
Cada componente lee las entradas y las transforma en salidas
Pipes and Filters
Cada componente tiene un conjunto de entrada y un conjunto de salida
Patron
Codifica conocimiento específico acumulado por la experiencia en un dominio
Diseno del codigo
Comprende algoritmos y estructuras de datos; los componentes son aquí primitivas del lenguaje de programación, tales como números, caracteres, punteros e hilos de control. También hay operadores primitivos
SPICE
Constituye un estándar internacional para los procesos de desarrollo de software y que proporciona un marco de trabajo uniforme para la gestión e ingeniería de software
Trazabilidad
Define la forma en la que un proceso de negocio dado se implementará en el sistema propuesto.
David Parnas
Demostró que los criterios seleccionados en la descomposición de un sistema impactan en la estructura de los programas y propuso diversos principios de diseño que debían seguirse a fin de obtener una estructura adecuada
Roy Fielding
Desarrolló el modelo REST
David Parnas
Desarrolló temas tales como módulos con ocultamiento de información, estructuras de software y familias de programas, enfatizando siempre la búsqueda de calidad del software, medible en términos de economías en los procesos de desarrollo y mantenimiento
Modelo de caso de uso
Describe la funcionalidad propuesta del nuevo sistema. Representa una unidad discreta de interacción entre un usuario (humano o máquina) y el sistema
Conetor Input
Destaca que el objeto o recurso conectado se consume durante el procesamiento
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
Perry y Wolf
El primer estudio en que aparece la expresión "arquitectura de software" en el sentido en que hoy lo conocemos es sin duda el de:
Repetible
En este nivel las organizaciones disponen de unas prácticas institucionalizadas de gestión de proyectos, existen unas métricas básicas y un razonable seguimiento de la calidad. La relación con subcontratistas y clientes está gestionada sistemáticamente.
Arquitectura como etapa de ingenieria y diseno orientada a objetos
En este postura, la arquitectura se restringe a las fases iniciales y preliminares del proceso y concierne a los niveles más elevados de abstracción, pero no está sistemáticamente ligada al requerimiento que viene antes o a la composición del diseño que viene después
Modelos dinamicos
Enfatiza la cualidad conductual de los sistemas.Puede referirse a los cambios en la configuración del sistema, o a la dinámica involucrada en el progreso de la computación, tales como valores cambiantes de datos
Actividad
Es la especificación de una secuencia parametrizada de comportamiento
Arquitectura de Software
Es la organización fundamental de un sistema encarnada en sus componentes, las relaciones entre ellos y el ambiente y los principios que orientan su diseño y evolución
Evento
Es la recepción de algún objeto, un momento o fecha cumplidos, una notificación o cualquier otro disparador que inicie un proceso de negocio
Flujo de objeto
Es la ruta a lo largo de la cual pueden pasar objetos o datos
Estilo
Es un concepto descriptivo que define una forma de articulación u organización arquitectónica
Nodo
Es un elemento de hardware o software
Componente
Es un elemento propio de un estilo
Clase
Es un elemento que define los atributos y comportamientos que un objeto podrá generar
CMM
Es un modelo de calidad para desarrollo de software que proporciona un marco de trabajo a las organizaciones para guiar sus actividades por las mejores prácticas de producción
Artefacto
Es un producto del proceso de desarrollo de software, que puede incluir los modelos del proceso (e.g. modelos de Casos de Uso, modelos de Diseño, etc.), archivos fuente, ejecutables, documentos de diseño, reportes de prueba, prototipos, manuales de usuario y más
Puerta
Es un punto de conexión para conectar un mensaje dentro de un fragmento con un mensaje fuera del fragmento
Proceso de negocio
Es una colección de actividades diseñadas para producir una salida específica para un cliente o un mercado en particular. Esto implica un fuerte énfasis en cómo se realiza el trabajo dentro de una organización, en contraposición con un enfoque del producto en qué se produce
Trazado
Es una especialización de una dependencia, vinculando elementos del modelo o conjuntos de elementos que representan la misma idea a través de los modelos
Interfaz
Es una especificación que los implementadores han acordado realizar. Si se realiza, se garantiza que las clases soporten un comportamiento requerido, que permite que el sistema trate los elementos no relacionados en la misma manera - es decir a través de la interfaz común
Clase Asociacion
Es una estructura que permite una conexión de asociación para tener conexiones y atributos
Diagrama de Secuencia
Es una forma de diagrama de interacción que muestra los objetos como líneas de vida a lo largo de la página y con sus interacciones en el tiempo representadas como mensajes dibujados como flechas desde la línea de vida origen hasta la línea de vida destino
Desarrollo Integrado de Producto y Proceso
Es una metodología que logra una colaboración oportuna de los protagonistas durante la vida del producto para satisfacer mejor las necesidades, expectativas y requerimientos del cliente
Fragmento combinado
Es una o más secuencias de procesos incluidas en un marco y ejecutadas bajo circunstancias nombradas específicas
Invariante de estado
Es una restricción ubicada en una línea de vida que debe ser verdadera en el tiempo de ejecución. Esta se muestra como un rectángulo con los extremos en semicírculos
Patron
Es una solución a un problema en un contexto
Vista Arquitectónica
Es una vista abstracta, aportando el más alto nivel de comprensión y la supresión o diferimiento del detalle inherente a la mayor parte de las abstracciones
Arquitectura de Software
Es, a grandes rasgos, una vista del sistema que incluye los componentes principales del mismo, la conducta de esos componentes según se la percibe desde el resto del sistema y las formas en que los componentes interactúan y se coordinan para alcanzar la misión del sistema
Ingeniería de Sistemas
Esta disciplina abarca el desarrollo de sistemas completos, lo cual puede o no incluir software
Suministradores Externos
Esta disciplina abarca la adquisición de productos de suministradores bajo estas circunstancias
Modelo REST
Establece definitivamente el tema de las tecnologías de Internet y los modelos orientados a servicios y recursos en el centro de las preocupaciones de la disciplina
CMM
Este modelo tiene como objetivo evaluar los procesos en sus distintos niveles de madurez, identificar los niveles a través de los cuales una organización debe llegar a establecer una cultura de excelencia en la ingeniería de software
Definido
Este nivel las organizaciones disponen de correctos procedimientos de coordinación entre grupos, formación del personal, técnicas de ingeniería más detalladas y un nivel más avanzado de métricas en los procesos. Se implementan técnicas de revisión por pares (peer reviews)
UML
Está compuesto por una notación muy específica y por las reglas semánticas relacionadas para la construcción de sistemas de software. En sí mismo no prescribe ni aconseja cómo usar esta notación en el proceso de desarrollo o como parte de una metodología de diseño orientada a objetos
Conector goal
Indica que el objeto adjunto al proceso describe el objetivo del proceso, un objetivo es la justificación para llevar a cabo la actividad
Conector Output
Indica que el proceso de negocio produce algún objeto (físico o lógico) que es de valor para la organización, como un ítem externamente visible o como un producto interno (posiblemente alimentando otro proceso)
Conector Supply
Indica que la información u objeto conectado al proceso no se gasta en la fase de procesamiento
Arquitectura procesual
Intenta establecer modelos de ciclo de vida y técnicas de elicitación de requerimientos, brainstorming, diseño, análisis, selección de alternativas, validación, comparación, estimación de calidad y justificación económica específicas para la arquitectura de software. Toda la documentación puede encontrarse ordenada en el SEI, pero no se mezcla jamás con la de CMM, a la que redefine de punta a punta. Otras variantes dentro de la corriente procesual caracterizan de otras maneras de etapas del proceso: extracción de arquitectura, generalización, reutilización
Academia
La arquitectura consiste en componentes y conectores de primera clase
Academia
La arquitectura se define explícitamente
Industria
La funcionalidad y los atributos de calidad (Rendimiento, robustez,tamaño,reusabilidad,mantenibilidad) tienen igual importancia
Optimizado
La organización completa está volcada en la mejora continua de los procesos. Se hace uso intensivo de las métricas y se gestiona el proceso de innovación
Industria
Las interfaces se proporcionan mediante entidades (clases de componentes). Las entidades de interfaz no tienen diferencias explícitas de entidades que no son de interfaz
Inicial
Las organizaciones en este nivel no disponen de un ambiente estable para el desarrollo y mantenimiento de software. Aunque se utilicen técnicas correctas de ingeniería, los esfuerzos se ven minados por falta de planificación. El éxito de los proyectos se basa la mayoría de las veces en el esfuerzo personal, aunque a menudo se producen fracasos y casi siempre retrasos y sobrecostes. El resultado de los proyectos es impredecible
Tipo Abstracto y OO
Las representaciones de los datos y las operaciones estan encapsulados en un tipo abstracto de datos u objeto
Academia
Los componentes reutilizables son entidades de caja negra
Industria
Los componentes son grandes piezas de software de estructuras interna compleja, no necesariamente encapsulados
Academia
Los componentes tienen interfaces con un solo punto de acceso
Academia
Los lenguajes de descripcion de arquitectura (ADLs) describen la arquitectura explícitamente y a veces la generan
Estructuralismo arquitectónico radical
Mayoritariamente europeo, que asume una actitud más confrontativa con el mundo UML. En el seno de este movimiento hay al menos dos tendencias, una que excluye de plano la relevancia del modelado orientado a objetos para la AS y otra que procura definir nuevos metamodelos y estereotipos de UML como correctivos de la situación
Diagramas de despliegue
Modela la arquitectura en tiempo de ejecución de un sistema. Esto muestra la configuración de los elementos de hardware y muestra cómo los elementos y artefactos del software se trazan en esos nodos
Diagrama de Actividades
Muestran el flujo de trabajo desde el punto de inicio hasta el punto final detallando muchas de las rutas de decisiones que existen en el progreso de eventos contenidos en la actividad
Industria
No hay conectores explícitos de primera clase (a veces hay soluciones ad hoc de binding en tiempo de ejecución)
Arquitectura basada en patrones
No se encuentra tan rígidamente vinculada a UML en el modelado, ni a CMM en la metodología. En esta manifestación de la AS prevalece cierta tolerancia hacia modelos de proceso tácticos, no tan macroscópicos, y eventualmente se expresa cierta simpatía por las ideas de Martin Fowler y las premisas de la programación extrema
ADL
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
Industria
Prevalece una comprensión conceptual de la arquitectura. Las definiciones explícitas son mínimas, eventualmente mediante notaciones
Edsger Dijkstra
Propuso que se establezca una estructuración correcta de los sistemas de software antes de lanzarse a programar, escribiendo código de cualquier manera
Arquitectura basada en escenarios
Recupera el nexo de la AS con los requerimientos y la funcionalidad del sistema, ocasionalmente borroso en la arquitectura estructural clásica. Los teóricos y practicantes de esta modalidad de arquitectura se inscriben dentro del canon delineado por la arquitectura procesual, respecto de la cual el movimiento constituye una especialización. En esta corriente suele utilizarse diagramas de casos de uso UML como herramienta informal u ocasional, dado que los casos de uso son uno de los escenarios posibles
Diseno ejecutable
Remite al diseño de código a un nivel de detalle todavía más bajo y trata cuestiones tales como la asignación de memoria, los formatos de datos, etcétera
Linea de vida
Representa un participante individual en un diagrama de secuencia. Usualmente tiene un rectángulo que contiene el nombre del objeto
Gestionado
Se caracteriza por que las organizaciones disponen de un conjunto de métricas significativas de calidad y productividad, que se usan de modo sistemático para la toma de decisiones y la gestión de riesgos. El software resultante es de alta calidad
Modelos de proceso
Se concentran en la construcción de la arquitectura, y en los pasos o procesos involucrados en esa construcción
Academia
Se otorga prioridad a la funcionalidad y la verificación formal
Generalizacion
Se usa para indicar herencia. Dibujada desde un clasificador específico a un clasificador general, la implicación general es que el origen hereda las características del destino
Dependencia
Se usa para modelar un alto rango de relaciones dependientes entre elementos del modelo
Agregaciones
Se usan para describir elementos que están compuestos de componentes más pequeños
Diagramas de tiempos
Se usan para mostrar el cambio en el estado o valor de uno o más elementos en el tiempo. Este también puede mostrar la interacción entre los eventos de tiempos, las restricciones de tiempos y la duración que los gobiernan
Industria
Se utilizan lenguajes de programación
Mensajes Perdidos
Son aquellos que han sido enviados pero que no han llegado al destino esperado, o que han llegado a un destino que no se muestra en el diagrama actual
Modelos de framework
Son similares a la vista estructural, pero su énfasis primario radica en la (usualmente una sola) estructura coherente del sistema completo, en vez de concentrarse en su composición. A menudo se refieren a dominios o clases de problemas específicos
Modelos estructurales
Sostienen que la AS está compuesta por componentes, conexiones entre ellos y (usualmente) otros aspectos tales como configuración, estilo, restricciones, semántica, análisis, propiedades, racionalizaciones, requerimientos, necesidades de los participantes. El trabajo en esta área está caracterizada por el desarrollo de lenguajes de descripción arquitectónica (ADLs)
Invocacion Implicita basada en eventos
Un componente anuncia uno o mas eventos y otros componentes registran el interes en un evento asociando un procedimiento a dicho evento
Modelos funcionales
Una minoría considera la arquitectura como un conjunto de componentes funcionales, organizados en capas que proporcionan servicios hacia arriba. Es tal vez útil pensar en esta visión como un framework particular
Frederick Brooks
Utilizaba el concepto de arquitectura del sistema para designar "la especificación completa y detallada de la interfaz de usuario" y consideraba que el arquitecto es un agente del usuario, igual que lo es quien diseña su casa, empleando una nomenclatura que ya nadie aplica de ese modo
Anidamiento
es un conector que muestra que el elemento fuente se anida dentro del elemento destino
Diagrama de Clase
muestra los bloques de construcción de cualquier sistema orientado a objetos. Describen la vista estática del modelo o parte del modelo, describiendo qué atributos y comportamientos tienen en lugar de detallar los métodos para realizar operaciones
Mensajes
se muestran como flechas. Pueden ser completos, perdidos o encontrados; síncronos o asíncronos: llamadas o señales