Generalidades

Nombre:

Principios de Diseño y arquitectura de software

Créditos

2

Semanas

8 semanas ( 8-12 horas por semana)

Tipo:

High Touch. Encuentros síncronos semanales,

Profesor responsable

Dario Correal

Prerrequisitos

Programación básica en python

Objetivos de Aprendizaje

Al finalizar el curso el estudiante estará en capacidad de:

- Documentar de forma clara y sin ambigüedades requisitos de calidad, críticos para el éxito de un sistema

- Diseñar y documentar una arquitectura de software que satisfaga requisitos de calidad, especialmente relacionados con el desempeño y la facilidad de evolución del software

- Utilizar estilos y tácticas de arquitectura para satisfacer requisitos de calidad

- Aplicar patrones de diseño detallado como mecanismo de refinamiento de tácticas de arquitectura "

Descripción

En un mundo globalizado, donde los usuarios de las aplicaciones que construimos, se encuentran en cualquier parte del mundo, y en números que antes no podíamos ni siquiera pensar, se hace imprescindible diseñar software que responda de forma rápida y confiable a miles de usuarios al mismo tiempo. En este curso, aprenderemos cómo usar eficientemente los estilos y tácticas de arquitectura para garantizar el desempeño de las soluciones construidas, sin perder la capacidad de cambiar y evolucionar al ritmo de hoy. En este curso veremos aplicaciones prácticas de patrones de diseño detallado y su relación con una arquitectura de software moderna. Durante el curso, usted tendrá los roles de arquitecto y de diseñador de software, y deberá presentar y sustentar decisiones de diseño, explicando los beneficios de negocio y la viabilidad tecnológica de sus propuestas. El curso presenta diferentes retos de arquitectura y diseño con el fin de ir poniendo en práctica los temas vistos en el curso. Se seleccionarán elementos particulares del diseño para construir el código asociado y mediante experimentos validar las estrategias propuestas. Se utilizará el lenguaje de programación Python.

Estrategia global de evaluación

Se realizarán evaluaciones formativas y sumativas de manera semanal que permitirán dar cuenta de la apropiación de conceptos dados en los diferentes materiales que los estudiantes tendrán a su disposición.

El proyecto del curso se llevará a cabo de manera individual y tendrá entregas semanales que contarán con criterios predefinidos para su evaluación, seguimiento y retroalimentación.

Se realizarán dos exámenes (parciales) que recogerán los temas vistos y permitirán reconocer adquisición y apropiación de conceptos claves del curso.

Estructura del curso

El curso está compuesto por 8 módulos o semanas. Cada módulo tiene sus objetivos y un conjunto de lecciones con distintas actividades para el estudiante. Las actividades son de distinto tipo: videos, tutoriales, ejercicios, lecturas, entre otras.

El curso inicia con una motivación sobre el rol del arquitecto y del diseñador en la ingeniería de software. Presenta la relación entre arquitectura y diseño y el objetivo de cada una. Posteriormente se introducen los conceptos básicos de arquitectura de software y el papel que juegan los modelos de arquitectura. Se introduce UML como lenguaje de diseño. En la segunda parte del curso se presentan los estilos de arquitectura más representativos para los atributos de calidad Desempeño y facilidad de mantenimiento. En esta parte, se introducen las vistas de arquitectura y los tipos de modelos utilizados. Durante el curso, se presentan los patrones de diseño como estrategia de refinamiento de una decisión de arquitectura para lograr un requerimientos de calidad determinado.

Objetivos

Descripción

Se presenta el proyecto del curso , sus requerimientos y los resultados que espera el cliente.

Se realiza una encuesta para obtener información de los participantes al curso para saber su profesión, años de experiencia, motivaciones y expectativas.

Por medio de un video el profesor explica las actividades de arquitectura y diseño en el proceso de ingeniería de software, la relación entre ellos y los resultados esperados. Esto se complementará con una lectura. El profesor, presenta los procesos de diseño, como el ADD, que permiten refinar decisiones de arquitectura mediante la experimentación y validación de resultados. Mediante un video se explican las entradas requeridas para iniciar el proceso de diseño y haciendo énfasis especial en los motivadores de negocio (se da una definición general) y las restricciones (negocio/tecnología). Por medio de un tutorial se explican los procesos de diseño iterativos, y las entradas requeridas para iniciar el proceso. El caso de estudio (FotoAlpes) servirá para explicar y ejemplificar los temas del curso.

Se asignará una tarea sobre el contexto del proyecto del curso, para identificar motivadores de negocio y restricciones de tecnología.

Se llevará a cabo una evaluación tipo cuestionario sobre las entradas de un proceso de diseño.

Los temas que se abordarán esta semana son:

Sesión sincrónica

Se realizará una revisión sobre los objetivos del curso y la metodología. Se discutirá el proyecto del curso y el caso de estudio.

Se hará una revisión de la encuesta de presentación y una breve introducción de cada participante.

Se motivará la participación para la siguiente semana.

Objetivos

Descripción

Se presenta la importancia de los atributos de calidad y la especificación de requerimientos, las clasificaciones y tipos de atributos de calidad. Igualmente por medio de un tutorial se abordará el uso de los escenarios de calidad para la especificación de requisitos de calidad. Esto se acompañará con una lectura complementaria. Se realiza una presentación con detalle del proceso de construcción de los escenarios de calidad, identificación de atributos de calidad y la especificación de atributos de calidad. Los requisitos de calidad se abordarán en el contexto del ejemplo (caso) del curso.

Esta semana se busca que en el proyecto en un primer momento se identifiquen y especifiquen requisitos de calidad asociados a los atributos de calidad Desempeño y Facilidad de modificación. Se presentan estrategias para identificar y asignar prioridades a los requisitos de calidad y se complementa con una lectura. Por medio de un tutorial se presentará de manera detallada el proceso de priorización de requisitos de calidad y se compartirá un ejemplo de manejo de requisitos de calidad, en el contexto del ejemplo del curso.

La segunda parte del proyecto para esta semana busca que los estudiantes realicen la priorización de requisitos de calidad.

Los temas que se abordarán esta semana son:

Sesión sincrónica

Objetivos

Descripción

Al inicio de esta semana los estudiantes encontrarán un video en donde se presentarán los objetivos de la semana y la importancia de separar en vistas los modelos de una arquitectura. Por medio de un video el profesor hará una presentación general de las vistas de arquitectura, diferencia entre vista y punto de vista. Por medio de un tutorial permitirá conocer de manera general el propósito de las vistas de arquitectura y de la descripción de cada una de las vistas de la arquitectura. Con una lectura y un video se abordarán los tipos de diagramas UML que se van a usar en el curso y su propósito. Para el tema de puntos de vistas y vistas se utilizarán lecturas y presentaciones detalladas. Con un tutorial se hará una presentación detallada de las vistas de arquitectura. Se revisarán las vistas y modelos UML en el contexto del ejemplo del curso.

En términos del proyecto se describen las vistas de arquitectura, el propósito de cada una de ellas en el proyecto y los objetivos y modelos que se construirá en cada una.

Los temas que se abordarán esta semana son:

Sesión sincrónica

Revisión de resultados de la Hoja de Trabajo - II (Partes A y B)

Trabajo en grupos y discusión de algunos ejemplos de las hoja de trabajo II

Objetivos

Descripción

Por medio de dos videos el profesor presenta los tipos de modelos a diseñar y el uso de estilos y patrones, así como la diferencia entre cada familia de modelos. Esto se complementará con una lectura. Los estudiantes tendrán acceso a tutoriales que abordan los temas de familias de modelos y la relación con el ejemplo del curso. Esto tendrá una evaluación específica sobre el tema. La diferencia entre estilo y patrón, así como los estilos de arquitectura y sus características se revisarán en videos y lecturas.

En el proyecto se espera desarrollar: la identificación de familias de modelos asociadas a los puntos de vista de la hoja de trabajo III.

Los temas que se abordarán esta semana son:

Sesión sincrónica

Resolución de dudas de la hoja de trabajo III

Revisión de un estilo de arquitectura en un software conocido, discusión del grupo sobre el tema.

Objetivos

Utilizar las tácticas de arquitectura y los patrones de diseño detallado para expresar decisiones críticas en el cumplimiento de requisitos de calidad.

Utilizar tácticas y patrones de diseño para favorecer el atributo de calidad desempeño.

Descripción

Por medio de un video se presenta de manera general el uso de tácticas de arquitectura y de las principales tácticas de arquitectura en desempeño. Esto se complementa con una lectura. Un tutorial sobre la explicación y uso de las tácticas de arquitectura favorece la práctica de los estudiantes. Luego se evalúa el tema para comprobar la comprensión de los conceptos.

Se ejemplifica el uso de tácticas en el contexto del caso que se está estudiando en el curso

Se explica la relación entre tácticas de arquitectura y patrones de diseño, con un video y un tutorial. También se explica con un tutorial el detalle de los tipos de patrones y explicación general de los más importantes. Los temas vistos serán evaluados para verificar el proceso, dudas y comprensiones hasta el momento.

En el proyecto se trabaja para identificar, primero tácticas de arquitectura para desempeño; en segundo lugar se realiza la selección de tácticas de arquitectura y patrones de diseño.

Los temas que se abordarán esta semana son:

Sesión sincrónica

Resolución de dudas de la hoja de trabajo - IV

Revisión de la aplicación de patrones de diseño en un producto conocido

Motivación para la siguiente semana.

Objetivos

Descripción

Se realiza una explicación indicando la importancia de los patrones MV-* Luego se abordan los estilos de arquitectura para facilitar el mantenimiento del SW. Se complementan los videos explicativos con lecturas.Por medio de tutoriales se explican los estilos de arquitectura que favorecen la facilidad de mantenimiento del software y se usa el caso de estudio para ilustrar los estilos de arquitectura que favorecen la facilidad de mantenimiento. Se motiva la necesidad de entender las tácticas de arquitectura para mantenimiento, por medio de un video y una lectura. Con un tutorial se exploran las tácticas de arquitectura para mantenimiento. Se completa el temario de la semana con una explicación general de patrones MV-* que se complementa con una lectura y un tutorial. Se hace la vinculación de los temas vistos en el caso de estudio transversal.

Para el proyecto se trabaja en la identificación de estilos de arquitectura y tácticas de facilidad de mantenimiento para el proyecto, así como en la identificación de patrones.

Los temas que se abordarán esta semana son:

Sesión sincrónica

Revisión de dudas sobre la hoja de trabajo - V

Motivación para la siguiente semana

Objetivos

Utilizar tácticas y patrones de diseño para favorecer el atributo de calidad facilidad de mantenimiento

Descripción

Se inician los temas de la semana explicando la importancia de los patrones detallados, tanto por medio de un video como de lecturas complementarias. Con tutoriales se realiza la explicación de los patrones detallados de facilidad de mantenimiento y la aplicación de los conceptos vistos en el caso de estudio del curso. Se tendrán videos de entrevistas con expertos en temas de arquitectura y diseño. Por medio de un foro se buscará intercambiar ideas y opiniones de la aplicación de los temas del curso y su relación con lo expresado por los entrevistados.

En el proyecto se realiza la identificación de patrones detallados de mantenimiento.

Los temas que se abordarán esta semana son:

Sesión sincrónica

Trabajo en grupos sobre las entrevistas

Revisión de dudas sobre la hoja de trabajo VI

Objetivos

Realizar una retrospectiva del curso para verificar el logro de los objetivos propuestos inicialmente.

Presentar los resultados del proyecto de curso.

Descripción

Se realiza una revisión general de los objetivos del curso, además una recopilación de los temas vistos, y una motivación de lo que viene en el siguiente curso. Por medio de una hoja de trabajo se busca analizar e integrar los principales conceptos vistos en el curso. Se fomenta la participación en el foro para discutir con compañeros sobre la aplicación de los conceptos vistos en el curso y su aplicación en el proyecto. Se publica en un manejador de contenido el proyecto de cada estudiante para que pueda ser visto por todos los interesados. Se realiza una evaluación (parcial) que recoge los temas vistos desde la semana 5.

Sesión sincrónica

Revisión de hoja de trabajo VII

Cierre del curso