1. IDENTIFICACIÓN

Asignatura ARQUITECTURA DE SOFTWARE
Área Ingeniería Aplicada Nivel 8
Código ASI-82 Pensum 10
Correquisito(s) Prerrequisito(s) PDI7-4
Créditos 2 TPS 4 TIS 2 TPT 64 TIT 32


2. JUSTIFICACIÓN

En el nivel más alto de responsabilidades del los profesionales de las tecnologías de la información está el Arquitecto de software.
A diferencia de un programador, el Arquitecto de Software debe dominar la mayor cantidad posible de tecnologías de software y prácticas de diseño, para así poder tomar decisiones adecuadas que garanticen el mejor desempeño, reuso, robustez, portabilidad, flexibilidad, escalabilidad y mantenibilidad de las aplicaciones. Estas decisiones sobre la estructura y dinámica de la aplicación deberán ser plasmadas en una notación formal estandarizada como lo es UML, para lo cual se requieren los conocimientos adquiridos en Ingeniería del Software cuyo paradigma vigente es la orientación a objetos.
El conocimiento aquí adquirido potencia al profesional al liderazgo de los proyectos de las tecnologías de la información.

3. OBJETIVO GENERAL

Desarrollar en el estudiante la capacidad de desempeñarse como arquitecto de software lo cual lo fundamenta para establecer los lineamientos formales de construcción para el desarrollo de aplicaciones robustas.

4. OBJETIVOS ESPECÍFICOS


  • Conocer los conceptos fundamentales de arquitectura de software: representación, técnicas y procesos.


  • Obtener la ventaja de conocer y dominar los patrones de arquitectura y diseño.


  • Conocer los detalles de implementación de los patrones de diseño.


  • Aprender a leer modelos de arquitectura simples, criticar y elaborar modelos de arquitectura considerando propósitos y stakeholders (personas involucradas).


  • 5. COMPETENCIAS Y CONTENIDOS TEMÁTICOS DEL CURSO

    COMPETENCIAS CONTENIDO TEMÁTICOINDICADOR DE LOGRO
    1. Definir los lineamientos formales de construcción para el desarrollo de aplicaciones de computadora robustas.
    Introducción
    • Definiciones y conceptos básicos de patrones en el proceso de diseño de software
    • ¿Qué son los patrones?
    • ¿Qué es un sistema de patrones?: granularidad, relación y utilidad
    • La documentación de los patrones
    Los patrones de diseño en el desarrollo de software
    • Antecedentes e historia
    • Patrones orientados a la creación:
    - Instancia única (Singleton)
    - Fabrica abstracta
    - Método abstracto
    - Prototipo
    - Constructor
    • Patrones orientados a la estructura:
    - Adaptador
    - Puente
    - Compuesto
    - Fachada
    - Intermediario
    - Decorador
    • Patrones orientados al comportamiento:
    - Método plantilla
    - Iterador
    - Comando
    - Observador
    - Mediador
    - Estado
    - Estrategia
    • Criterios para la selección y aplicación de los patrones
    Los patrones de arquitectura en el desarrollo de software
    • Definición y conceptos básicos de Arquitectura de Software:
    - Definiciones de Arquitectura de Software
    - Formas para describir la Arquitectura de Software
    - Formas de observar una Arquitectura de Software
    • Los Patrones de la Arquitectura:
    - Patrones para estructurar un sistema de software: Capas, Tuberías y Filtros, y Tablero
    - Patrones para distribuir un sistema de software: Intermediario (broker)
    - Patrones para sistemas de software que interactuar con seres humanos: MVC (Modelo-Vista-Controlador) y PAC (Presentación-Abstracción-Control)
    - Patrones para sistemas de software cambiantes: Reflexión y Núcleo simple
    - Patrones para sistemas adaptables: Microkernel y Reflexión
    • Los patrones de la Arquitectura Web:
    - Cliente Delgado Web
    - Cliente Robusto Web
    - Reparto Web
    Los patrones de arquitectura en el diseño de software
    • Introducción
    • Descomposición Estructural: Todo-Parte.
    • Organización de Trabajo: Maestro-Esclavo
    • Control de Acceso: Proxy
    • Administración: Procesador de Instrucciones (Comandos) y Manipulador de Vistas
    • Comunicación: Emisor-Receptor, Cliente-Despachador-Servidor y Publicador-Suscriptor
    Expresiones Idiomáticas (Idioms)
    • Para que Sirven las Expresiones Idiomáticas?
    • Expresiones Idiomáticas y Estilos
    • Dónde se pueden encontrar las Expresiones Idiomáticas?
    1. En ejercicios de análisis de aplicaciones existentes, reconoce y efectúa criterios sobre los patrones de arquitectura y diseño respectivos.
    2.En ejercicios de modelamiento de software, reconoce los patrones de arquitectura y diseño idóneos para la aplicación.
    3.En ejercicios de modelamiento de software, diseña mediante herramienta informática la arquitectura de una aplicación y genera código útil para iniciar el desarrollo.

    6.ESTRATEGIAS DIDÁCTICAS / METODOLÓGICAS

    7. ESTRATEGIAS DE SEGUIMIENTO Y EVALUACIÓN

    INDICADORES DE LOGRO ESTRATEGIAPORCENTAJE
    En ejercicios de análisis de aplicaciones existentes, reconoce y efectúa criterios sobre los patrones de arquitectura y diseño respectivos. Taller práctico evaluativo para analizar la arquitectura de una aplicación existente con base en la documentación técnica respectiva
    20 %
    En ejercicios de modelamiento de software, reconoce los patrones de arquitectura y diseño idóneos para la aplicación. Taller práctico evaluativo sobre la justificación de los patrones de arquitectura y diseño elegidos para un sistema propuesto.
    20 %
    En ejercicios de modelamiento de software, diseña mediante herramienta informática la arquitectura de una aplicación y genera código útil para iniciar el desarrollo. Taller práctico evaluativo del diseño de una aplicación mediante la herramienta ENTERPRISE ARCHITEC. 20 %
    Taller práctico evaluativo de obtención del diseño de una aplicación existente a partir del respectivo código fuente mediante la herramienta ENTERPRISE ARCHITEC 20 %
    Taller de generación de código a partir de un modelo mediante la herramienta ENTERPRISE ARCHITEC y ejercicio codificación de un prototipo 20 %

    8. BIBLIOGRAFÍA

    BASS, Len y otros. Software Architecture in Practice, 2ª edición. Addison-Wesley Professional, 2003. 560 p.
    SHAW, Mary. Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, 1996. 242 p.
    BUSCHMANN, Frank y otros. Pattern-Oriented Software Architecture Volume 1: A System of Patterns. Wiley. 1996. 476 p.
    FOWLER, Martin. Patterns of Enterprise Application Architecture. Addison-Wesley Professional, 2002. 560 p.
    SANGWAN, Raghvinder y otros. Integrating Software-Architecture-centric methods into the Rational Unified Process. En: Journal of Systems and Software, Vol. 81, Mayo 2008. Pag. 727-746