Está en la página 1de 46

Arquitectura de Software

Dr. Pedro Mejia Alvarez Cova Suazo Nancy Noem Prez Resndiz Marisol CINVESTAV IPN
Seccin de Computacin

Captulo 1 Ciclo de la Arquitectura de Negocios

INTRODUCCIN

. La vista arquitectural de un sistema es abstracta, proporcionando detalles acerca de la implementacin, los algoritmos, la representacin de datos e incluso el comportamiento y la interaccin entre elementos (cajas negras - black box).

Architecture Business Cycle - ABC

Los requerimientos no determinan del todo la arquitectura, ms bien est es adems resultado de influencias en los ambientes tcnicos, sociales y del negocio. Llamaremos a este ciclo de influencias, del ambiente a la arquitectura y de la arquitectura al ambiente como El Ciclo de la Arquitectura de Negocios (Architecture Business Cycle - ABC).

Cmo surgen las arquitecturas?

Influencias en la Arquitectura

Stakeholders

INFLUENCIAS EN LAS ARQUITECTURAS

La composicin de la organizacin. La formacin y la experiencia de los arquitectos. El ambiente tcnico.

Las arquitecturas afectan a los factores que las influencian

Ciclo de la Arquitectura de Negocios

Las arquitecturas afectan a los factores que las influencian

La composicin de la organizacin. Los objetivos de la organizacin. Los requerimientos del cliente. La experiencia de los arquitectos. Muy pocos sistemas influenciarn o cambiarn la cultura de la ingeniera de software, el ambiente tcnico en el cual los sistemas operan y aprenden.

El Proceso de Software y El Ciclo de la Arquitectura de Negocios (ABC)

Definir el caso de estudio para el sistema Entender los requerimientos Crear o seleccionar la arquitectura Comunicar la arquitectura Analizar y evaluar la arquitectura Implementar el sistema basado en la arquitectura Asegurar que la implementacin sea conforme a la arquitectura

Qu hace buena a una arquitectura?


Una arquitectura debera ...
ser producto de un arquitecto o un pequeo grupo de arquitectos con un lder definido. estar bien documentada, con al menos una vista dinmica y una vista esttica, utilizando una notacin que los stakeholders puedan entender fcilmente. ser evaluada y analizada con mtricas cuantitativas y cualitativas. presentarse como una implementacin incremental, para poder disear un esqueleto del sistema, mostrando primero la mnima funcionalidad y despus como puede ir creciendo. ser diseada por arquitectos que cuentan con los requerimientos funcionales y no funcionales del sistema.

Reglas estructurales para la arquitectura


La arquitectura debera tener bien definidos los mdulos. Cada mdulo debera tener bien definida las interfaces que encapsula. Estas interfaces permitirn desarrollar de manera independiente cada mdulo. La arquitectura nunca debe de depender de una versin de un producto o herramienta comercial. Los mdulos que producen datos debern estar separados de los mdulos que consumen datos. Esto permitir que cuando un dato sea aadido solo tenga que modificarse un mdulo. Cada tarea o proceso deber ser bien documentado, para que este pueda ser fcilmente modificado, quizs incluso en tiempo de ejecucin. La arquitectura deber caracterizarse como un conjunto de simples interacciones, esto es para incrementar la confiabilidad, la manteneabilidad, reducir el tiempo de desarrollo, etc.

Captulo 2 Qu es una Arquitectura de Software ?

DEFINICIN
Una Arquitectura de Sofware de un programa o de un sistema de cmputo es la estructura o estructuras de un Sistema. Dicha(s) estructura(s) comprenden: Elementos de software, Las propiedades visibles de dichos elementos, y Las relaciones entre los mismos.

Una arquitectura de software debe proporcionar cierta informacin:


La naturaleza de los elementos.
Si los elementos son procesos, programas, objetos, etc.

Las funciones de los elementos. El significado de las relaciones entre cada elemento. El significado de la distribucin de los elementos.
Por ejemplo. Elementos localizados en diferentes niveles.

EJEMPLO. Representacin de una Arquitectura de


Software poco informativa.

ELEMENTO 1

ELEMENTO 2

ELEMENTO 3

ELEMENTO 4

OTRAS DEFINICIONES DE LA ARQUITECTURA DE SOFTWARE


Arquitectura es un diseo de alto nivel. Arquitectura es la estructura general del sistema. Arquitectura es la estructura de componentes, relaciones, principios y pautas que definen su diseo y evolucin sobre el tiempo. Arquitectura es componentes y conectores.

PATRONES DE ARQUITECTURA

Un patrn de arquitectura es una descripcin de elementos y los tipos de relacin, junto con un grupo de restricciones en cmo deben ser usados. Un ejemplo de este tipo, es la Arquitectura Cliente-Servidor.

MODELO DE REFERENCIA

Un modelo de referencia es una descomposicin de un problema en un cierto nmero de partes que cooperativamente resuelven el mismo. Ejemplos Partes de un Compilador. Partes de un Sistema manejador de Base de Datos.

ARQUITECTURA DE REFERENCIA

Es un modelo de referencia planeado sobre elementos de software y el flujo de datos entre ellos. Un elemento de software puede implementar parte de una funcin o de varias funciones.

POR QU ES IMPORTANTE LA ARQUITECTURA DE SOFTWARE ? (1)


Comunicacin entre las personas involucradas
La arquitectura representa una abstraccin que puede ser base para el entendimiento, concenso, negociacin y comunicacin.

Decisiones tempranas de diseo


Define limitaciones en la Implementacin. Dicta la Estructura Organizacional. Oculta o muestra los Atributos del Sistema. Hace ms fcil controlar los cambios. Ayuda en el prototipado evolutivo. Proporciona Estimaciones de Costos y Calendarizacin ms exactos.

POR QU ES IMPORTANTE LA ARQUITECTURA DE SOFTWARE ? (2)


Abstraccin transferible de un sistema
La arquitectura constituye un modelo de cmo esta el sistema estructurado y como sus elementos trabajan en conjunto; por lo que puede ser aplicada a otros sistemas que exhiban similares requerimientos y atributos.

ESTRUCTURAS Y VISTAS
VISTA. Representacin de un conjunto de elementos y las relaciones entre ellos (escritos y ledos por clientes, usuarios, etc.). ESTRUCTURA. Conjunto de elementos que por s mismos, existen en software o hardware. Se dividen en:
Mdulos. Componentes-conectores. Estructuras de Asignacin.

Estructuras
Mdulos
Descomposicin Uso Capas Clases

Componente-Conector
ClienteServidor Proceso Datos Compartidos

Concurrencia

Asignacin
Asignacin de Trabajo Despliegue

Implementacin

Captulo 7 Diseo de la Arquitectura

La Arquitectura en el Ciclo de Vida


Software Concept Ciclo de Vida de Entregas Evolutivas

Preliminary Requirements Analysis Develop Final Version Design of Architecture and System Core Develop a Version

Incorporate Customer Feedback

Deliver the Version

Ellicit Customer Feedbak

DISEO DE LA ARQUITECTURA

Attribute-Driven Design (ADD), esta es una aproximacin basada en la recursiva descomposicin de procesos, donde cada estado, tcticas y patrones arquitecturales son escogidos para satisfacer un conjunto de escenarios y entonces la funcionalidad es asignada a mdulos. La entrada a este mtodo son todos los requerimientos funcionales, no funcionales y las limitaciones del sistema.

Sistema de Puertas Automticas para un Garage


CUALIDADES EN LOS ESCENARIOS:
los dispositivos y controles para abrir y cerrar la puerta los procesadores si se detecta un obstculo, en el momento que se este cerrando la puerta, esta tendr que detenerse y abrirse nuevamente en 0.1 segundos la puerta automtica podr ser checada y administrada desde el sistema de informacin casero, a travs de un protocolo especifico

Pasos para realizar el diseo

Escoger el mdulo a descomponer. Refinar el mdulo. Escoger los Drivers Arquitecturales. Escoger los Patrones Arquitecturales. Instanciar los mdulos, asignar la funcionalidad a cada uno y representarlos usando mltiples vistas. Definir las interfaces de los mdulos hijos. Documentar las interacciones y limitaciones entre cada mdulo. Verificar y refinar casos de uso y escenarios.

Escoger los patrones Arquitecturales

User Interface

Non-Performance Critical Computation

Performance Critical Computation

Virtual Machine

Scheduler That Guarantees Deadlines

Patrn Arquitectural que utiliza tcticas en el SAPG

Instanciar los mdulos, asignar la funcionalidad a cada uno y representarlos usando mltiples vistas.

User Interface

Diagnosis

Raising/Lowering Door

Obstacle Detection

Communication Virtual Machine

Sensor/Actuator (Control) Virtual Machine

Scheduler That Guarantees Deadlines

Primer nivel de descomposicin del SAPG

Representacin usando mltiples vistas

VISTA DE MDULOS (DESCOMPOSICIN). (VISTA DE COMPONENTE-CONECTOR) CONCURRENCIA.


Dos usuarios haciendo cosas similares al mismo tiempo. Usuario ejecutando mltiples actividades simultneamente. Encender el sistema. Apagar el sistema. Sincronizacin.

(VISTA ESTRUCTURAS DE ASIGNACIN) IMPLEMENTACIN.

FORMAR EQUIPOS DE TRABAJO

La estructura arquitectural repercute directamente en la formacin de estos equipos, debido a que se elegirn dependiendo de la funcionalidad (dominio) de los mdulos, es decir se organizarn tomando en cuenta a la gente ms especializada o con mayores conocimientos en el rea.

Crear un esqueleto del sistema

Una vez que hemos diseado la arquitectura del sistema y hemos formado los grupos de trabajo, tenemos todo lo necesario para poder hacer una implementacin del sistema, el cual me permitir estar interactuando con el cliente e ir realizando modificaciones sobre el mismo, hasta que se este en condiciones de entregar un producto final.

Caso Prctico
SIMULACIN DE VUELOS

INTRODUCCIN
La creacin y mantenimiento de estos sistemas presentas grandes retos de desarrollo:
Ejecucin en tiempo real Modificabilidad (realizar cambios en los requerimientos) Escalabilidad (extender la funcionalidad) Integrabilidad (comodidad con la cual el desarrollo de
elementos, incluyendo aquellos realizados por terceros, se pueden realizar sepradamente y finalmente juntarlos para satisfacer todos los requerimientos)

El patrn creado para dicho sistema es un Modelo Estructural.

RELACIN CON LA ARQUITECTURA DEL NEGOCIO

REQUERIMIENTOS Y CUALIDADES
Se tienen 3 roles:
Tripulacin. El propsito es instruir al piloto y tripulacin en cmo operar una nave area, ejecutar maniobras y responder ante ciertas situaciones en la vida real. Ambiente. Comprende la atmsfera, armas, amenazas, etc. Instructor. El instructor es responsable de monitorear el rendimiento de pilotos, as como de iniciar situaciones de entrenamiento (previamente contempladas o introducidas por el instructor). Cuenta conuna consola para monitorear las actividades, introducir funciones errneas y controlar el ambiente.

ESTADOS DE EJECUCIN
Un simulador de vuelos tiene diferentes estados. Operando (funcionamiento normal) Configuracin (se realizan cambios
entrenamiento)

la

sesin

de

Detener (detiene la simulacin) Repeticin (usado para demostrar a la tripulacin que fue lo
que realiz durante la simulacin)

PROBLEMAS

1. Los costos para pruebas, cambios y eliminacin de errores exceden los costos de desarrollo. 2. No es clara la planeacin entre la estructura de software y la estructura de los simuladores.

SOLUCIN

Controles de Cabina

Vehculo Areo

Desplegados en cabina

Sist. Visual

Sist. de movimiento

TRIPULACI N

Ambiente

Sist. Auditivo

Estacin del Instructor

Modelo de Referencia para el Simulador de Vuelos

Tratamiento del Tiempo


Existen dos maneras de controlar el tiempo en un simulador de vuelos. Control Peridico.
Tiene un quantum fijo. Una simulacin ser capaz de mantener el tiempo de simulacin y el tiempo real sincronizados tanto como cada proceso pueda avanzar su estado al siguiente periodo.

Control Basado en Eventos.


Agrega un evento a la cola de eventos. Mientras haya eventos, elegir el evento que tenga menor tiempo de simulacin, se establece el tiempo del evento seleccionado y se invoca el proceso para dicho evento.

Patrn de la Arquitectura del Modelo Estructural


Los componentes de dicho modelo al nivel ms general son: La parte de Ejecucin.
Maneja la coordinacin de la sincronizacin entre procesos, la administracin de eventos, integridad y compartimiento de datos.

La parte de Aplicacin. Maneja

el clculo de la simulacin del vuelo. Sus funciones son implementadas por los subsistemas y sus hijos.

Mdulos del Modelo de Ejecucin

Sincronizador del Tiempo Secuenciador peridico Manejador de Eventos Sustituto

Mdulos del Modelo de Aplicacin

Controlador de Subsistemas
Pasa datos para y desde otras instancias de controladores de subsistemas y a sus hijos.

Controlador de hijos de los Subsistemas


Pasa datos solamente para y desde sus padres. Pueden inicializarse con algn valor particular, pueden producir salidas anormales o reflejar una condicin de malfuncionamiento.

Descomposicin de Grupos y de Sistemas

La descomposicin ms general del modelo es el grupo, los grupos se descomponen en sistemas y los sistemas se descomponen en subsistemas. Estos ltimos proveen las instancias para los controladores de los subsistemas. Uso de Tablas n-Cuadros. tiles para capturar la entrada y salida de un mdulo