Introducción a UML Semana 9 tema 8: Introducción a UML Ramiro Banda Valdivia Contenido Familiarizándonos con los conceptos: • Arquitectura de software • De los requerimientos de software al programa (4 elementos) Niveles en el diseño: • Estilo arquitectónico • Patrones de diseño • Diseño de componentes Arquitectura de software y metodologías ágiles • Arquitectura y especificación formal en UML • Introducción al UML • Competente para entender diseños arquitectónicos • Elaborar gráficos(de software) con UML y entenderlos, no modelar ni menos generar código La arquitectura de software “Arquitectura” • Diseño de más alto nivel de la estructura de un sistema. • Una arquitectura de software se selecciona y diseña con base en objetivos (requisitos) y restricciones. Los objetivos son aquellos prefijados para el sistema de información, pero no solamente los de tipo funcional si no los no funcionales también otros objetivos como la mantenibilidad, auditabilidad, flexibilidad e interacción con otros sistemas de información. Las restricciones son aquellas limitaciones derivadas de las tecnologías disponibles para implementar sistemas de información. Unas arquitecturas son más recomendables de implementar con ciertas tecnologías mientras que otras tecnologías no son aptas para determinadas arquitecturas. Por ejemplo, no es viable emplear una arquitectura de software de tres capas para implementar sistemas en tiempo real. • La arquitectura de software define, de manera abstracta, los componentes que llevan a cabo alguna tarea de computación, sus interfaces y la comunicación entre ellos. Toda arquitectura debe ser implementable en una arquitectura física, que consiste simplemente en determinar qué computadora tendrá asignada cada tarea. Qué es una arquitectura software? • La arquitectura del software define el sistema en términos de sus componentes computacionales y de las relaciones entre ellos (Shaw & Garlan, 1996) • “Estructura o estructuras del sistema que comprende componentes de software, propiedades visibles de esos componentes y las relaciones entre ellos.” Arquitectura: Pensar primero en lo importante Diseño de alto nivel versus diseño detallado (David Budgen) Esqueleto versus Carne y Músculos (Rational Unify Process) Tipos de requerimientos de software • Requerimientos funcionales • Requerimientos no funcionales ¿Para que hacer una arquitectura? ¿Como debo hacer la división ? ¿Por que escoger un estilo arquitectónico? Algunos tipos de arquitectura • Tubos y filtros • Invocación implícita • Cliente servidor de 3 capas • Control de procesos • Sistema estratificado • Sistema de blackboard Pipas y filtros Administrador y herramientas Arquitectura de 3 capas Lenguajes de definición de arquitecturas DLA • Requieren una extensa capacitación. • – No son amigables para presentar • la arquitectura a personas ajenas • a la construcción del software. • – No tienen herramientas ni metodologías • de apoyo. • – Algunos se encuentran especializados • solo en un tipo particular • de sistemas. • – Sólo tienen en cuenta una sola • estructura del sistema. Vistazo al pdf adl.pdf Arquitectura Software y Metodologías Ágiles. ¿Realmente son compatibles? Fuente: https://www.applying.pe/2836-2/ ¿Qué es Agile? Entrega rápida y constante de valor y la aceptación del cambio. Es mejora continua. Es entregar una solución con un alto grado de calidad en un periodo corto de tiempo. Algo de diseño Sprints de “refactorización” ¿Cuanto de arquitectura? ¿Cuanto de arquitectura? • Rehacer sistema: • Producto nuevo: “Framework corporativo” UML UML permite que se represente de manera semi-formal la estructura general del sistema, con la ventaja de que este mismo lenguaje puede ser usado en todas las etapas de desarrollo del sistema y su representación gráfica puede ser usada para comunicarse con los usuarios. UML • un lenguaje gráfico de modelamiento que usa conceptos de orientación por objetos. Video Generalidades de UML • Elementos y relaciones • Elementos: • Clases • – Casos de uso • – Componentes • – Nodos • – Paquetes Relaciones: - Dependencia – Asociación – Generalización – Realización • Diagrama de clases • Diagrama de clases • De objetos • De interacción • De estado • De componentes • Físico • Diagrama de clases • De objetos • De interacción • De estado • De componentes • Físico • Diagrama de clases • De objetos • De interacción • De estado • De componentes • Físico • Diagrama de clases • De objetos • De interacción • De estado • De componentes • Físico • Diagrama de clases • De objetos • De interacción • De estado • De componentes • Físico Tres mecanismos de extensión de UML • 1. Valores Adicionados (tagged values): Mediante estos valores es • posible adicionarle nuevas propiedades o atributos a los elementos • del modelo de UML. • 2. Restricciones (constraints): Las restricciones permiten adicionar • nueva semántica o modificar la existente. • 3. Estereotipos: Los estereotipos permiten crear nuevos elementos • en el modelo basados en otros ya existentes. Cada nuevo estereotipo • puede reunir propiedades (tagged values) y restricciones particulares. ESTRUCTURAS DE ARQUITECTURA EN UML • Identificar componentes • Relaciones Caso de uso Actores Módulos Clases Unidades de software Sistemas externos Herramientas de software Procesador Dispositivo Entremos al diagrama de clases Diagrama de una clase Relaciones de generalización entre clases Relaciones de asociación Asociaciones de multiplicidad Tipos de asociación Ejemplo de composición y agregación Ejemplo de diagrama de clases Leamos UML Sistema veterinario Sistema de computadora Sistema de biblioteca o biblioteca Sistema bancario Calefacción en casa • Each employee works for one company (which can have 0 employees) • Each AdministrativeAssistant has one or more supervisors (who can have 0 or more employees) • Each Company has exactly one BoardOfDirectors (and viceversa) • Each Office is allocated to zero or more Employees (an Employee can have no office or at most one) • A Person is boardMember of 0 or more BoardOfDirectors (each BoardOfDirectors has from 3 to 8 Persons) Hacer en diagrama de clases • A house may have any number of pets living in it • • The two possible types of pets that can • live in a house are dogs and cats • • Each dog or cat has a name • • An animal’s house is its one and only • home • • You can ell an animal to make noise and it • will do its thing Solución Relaciones entre estructuras de arquitectura Revisar: • Representación de la arquitectura • de software usando UML • Sandra Victoria Hurtado Gil Universidad Icesi-I2T Fuentes consultadas y agradecimientos • Exercises on basic UML: Structures Paolo Ciancarini https://www.cs.unibo.it/~cianca/wwwpages/ids/esempi/uml-s.pdf • Introducción a UML David Pinelo Apuntes del Profesor Maximiliano Cristiá https://www.fceia.unr.edu.ar/~mcristia/ • Representación de la arquitectura • de software usando UML • Sandra Victoria Hurtado Gil • Universidad Icesi-I2T • Curso CSE 403, Spring 2007, Alverson • https://www.applying.pe/2836-2/