La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Ingeniería de Software I

Presentaciones similares


Presentación del tema: "Ingeniería de Software I"— Transcripción de la presentación:

1 Ingeniería de Software I
Modelamiento con UML Ingeniería de Software I

2 Temas Modelamiento UML Elementos básicos Relaciones Diagramas

3 Modelamiento

4 Modelo Representación de una parte de un sistema (aspectos relevantes)
Ejemplo: Un Plano Una maqueta Un prototipo etc.

5 Ventajas Explorar diferentes soluciones
Realizar análisis de costos y estimaciones Minimizar los riesgos y errores Simplificar la complejidad del mundo real omitiendo aspectos no tan importantes

6 Modelamiento Visual Generar productos a partir del modelo
Mecanismo de comunicación Claro Fácil de modificar Generar productos a partir del modelo Documentar las decisiones tomadas

7 Unified Modeling Language
UML Unified Modeling Language

8 UML “Es un lenguaje para la especificación, visualización, construcción y documentación de los diferentes elementos de un sistema de software” Especificación UML

9 UML Desarrollado inicialmente por un equipo de personas (Rumbaugh, Jacobson, Booch) Adoptado en 1997 por OMG Versión actual: 1.4

10 UML No es una metodología ni un proceso Notación No define etapas
No define cómo elaborar cada diagrama Puede usarse en diversas metodologías Notación Sintaxis Semántica

11 UML Componentes de UML Elementos Relaciones Diagramas

12 Elementos básicos

13 Clase Colección de objetos con estructura, comportamiento, relaciones y semántica común Representa un concepto dentro del sistema Deben tener un nombre único dentro del paquete al cual pertenecen

14 Clase Estructura Comportamiento Relaciones con otros elementos
Atributos Comportamiento Operaciones (Métodos) Relaciones con otros elementos Notación Rectángulo con tres partes: Nombre, Atributos, Operaciones

15 Clase Nombre Clase atributo: tipo método (parámetos): tipo

16 Clase Ejemplo: Municipio nombre: String extensión: double
habitantes: int +setHabitantes(cantidad:int):String +getDensidad():double

17 Interfaz Conjunto de operaciones que caracterizan el comportamiento de un elemento No especifica estructura interna No tiene atributos No implementa las operaciones que define No es origen de asociaciones

18 Interfaz Notación Ejemplo: Un rectángulo con dos partes:
Nombre precedido de: <<interface>> Operaciones Un círculo con el nombre de la interfaz en la parte inferior Ejemplo:

19 <<interface>>
Interfaz <<interface>> ItemInventario +getCódigo():String +establecerFecha (fecha:Date):void ItemInventario

20 Objeto Instancia de una clase Tiene: Notación Identidad Valores
Rectángulo con dos partes: Nombre - Clase Atributos - Valores

21 Objeto nombre: Clase atributo = valor

22 Objeto Ejemplo: capitalDepto: Municipio unMunicipio: Municipio
nombre = “Cali” extensión = 564 habitantes = unMunicipio: Municipio

23 Componente Parte modular y reemplazable de un sistema, que encapsula una implementación y expone un conjunto de interfaces Puede ser implementado por uno o más “productos de software” (artifacts), como archivos binarios o ejecutables

24 Componente Notación Nombre

25 Nodo Objeto físico que representa un recurso de procesamiento Incluyen
Dispositivos de cómputo Recursos humanos Recursos mecánicos

26 Nodo Notación

27 Use Case (Caso de Uso) Unidad de funcionalidad proporcionada por un sistema, formada por: Secuencia de mensajes intercambiados entre el sistema y elementos externos, y Acciones llevadas a cabo por el sistema

28 Use Case Notación Nombre

29 Actor Conjunto coherente de roles que los usuarios ejecutan cuando interactúan con el sistema Notación Nombre

30 Diagramas

31 Diagrama de clases Representación visual de la estructura estática del sistema Clasificadores (clases, interfaces, paquetes) Relaciones estáticas

32 Diagrama de clases Relaciones Asociación Generalización Dependencia
Realización

33 Asociación Relación entre dos clasificadores (clases) que implica conexión entre las instancias Notación: nombre

34 Asociación Multiplicidad
Número de instancias de una clase relacionadas con UNA instancia de la otra Ejemplos: 1 0..4 1..* 2..5,8,10..20

35 Asociación Navegabilidad Roles rol ClaseA ClaseA

36 Asociación Ejemplo: Empresa Empleado empleador empleado Trabaja 1..*
0..2

37 Asociación Agregación Asociación Todo-Parte Ejemplo: Polígono Punto 1
3..* vértice

38 Asociación Composición Agregación más fuerte.
Una parte está incluida en UNA sola composición La composición es responsable por la disposición de sus partes.

39 Asociación Ejemplo: Materia Curso 1..*

40 Generalización Relación entre un elemento más general (padre) y otro más específico (hijo) Jerarquía - Relación “es”

41 Generalización Ejemplo: SerVivo Animal Planta

42 Realización Relación entre una especificación y su implementación
Significa que el cliente soporta (al menos) todas las operaciones definidas en el proveedor

43 <<interface>>
Realización Ejemplo: <<interface>> ItemInventario +getvalor():double Libro +Libro() Libro ItemInventario

44 Dependencia Relación no estructural entre dos elementos, donde un cambio en uno de ellos (el independiente) puede afectar al otro (el dependiente)

45 Dependencia Ejemplos: Libro ItemInventario Venta Materias Matrícula

46 Diagrama de objetos Representa instancias de las clases y relaciones entre ellas (pueden ser temporales) “Foto” del estado del sistema en un momento dado Sirve para ejemplificar algún elemento complejo del sistema

47 Diagrama de objetos Ejemplo: Alexandra:Empleado Icesi: Empresa
Andrés:Empleado Daniel:Empleado

48 Diagrama de componentes
Diagrama de implementación Muestra la organización y las dependencias entre los componentes de software Incluye: Componentes Relaciones de dependencia (usando interfaces)

49 Diagrama de componentes
Ejemplo: A B <<EJBSession>> Sesión Catálogo <<EJBEntity>> Catálogo

50 Diagrama de deployment (despliegue)
Diagrama de implementación Configuración de los elementos de procesamiento y los componentes de software en tiempo de ejecución Muestra qué componentes pueden ejecutarse en cada nodo

51 Diagrama de deployment
Ejemplo: :Servidor :Cliente :compA :compB

52 Diagramas de interacción
Permiten modelar el comportamiento Colección de interacciones (mensajes) entre instancias (objetos) para lograr un objetivo específico Muestra llamados, creación y destrucción de instancias

53 Diagramas de interacción
Tipos Diagrama de Secuencia Énfasis en el tiempo (secuencia de los mensajes) Diagrama de Colaboración Énfasis en la estructura (relaciones entre los objetos)

54 Diagrama de secuencia Dos dimensiones: Elementos Vertical  tiempo
Horizontal  instancias (no tienen orden) Elementos Línea de vida Representa la existencia de la instancia

55 Diagrama de secuencia Elementos (cont.) Activación o Foco de control
Período durante el cual una instancia está llevando a cabo una acción Mensaje – Estímulo Comunicación entre dos instancias Invocar una operación Creación Destrucción Envío de una señal

56 Diagrama de secuencia Mensaje – Estímulo Anidado: Asíncrono:
De retorno:

57 Diagrama de secuencia objeto:Clase nuevo:Clase new(…) mensaje(…) X

58 Diagrama de colaboración
Representa diferentes instancias, sus roles, las relaciones entre ellas y sus interacciones La secuencia se indica numerando los mensajes Los enlaces entre las instancias pueden tener información adicional

59 Diagrama de colaboración
Formato mensajes: Predecesor / Expresión de secuencia Valor de retorno := Nombre (lista de parámetros) 3.6 [x>0]: mover(5,7) 5 repaint() 1.2 *[i:=1..n]: dibujarSegmento(i)

60 Diagrama de colaboración
objeto:Clase otro:Clase2 1 mensaje(…) rol nuevo:Clase3 new()

61 Diagrama de estados Describen el comportamiento de instancias de un elemento Máquinas de estado Pueden incluir variables Modelar comportamiento discreto

62 Diagrama de estados Elementos Estado Estado inicial Estado final
Transición Entradas/Salidas Variables

63 Diagrama de estados Listo Eliminado terminar eliminar / control=0

64 Diagrama de actividades
Variación de diagrama de estados Modelar procesos de negocio y flujos de datos/trabajo (workflow) Elementos adicionales: Subactividad Decisiones Íconos de control Bifurcaciones “Carriles” (Swimlanes)

65 Diagrama de actividades
Calcular costo total Autorizar [costo>=50] [costo<50]

66 Diagrama de use case Representa la funcionalidad de un sistema, de acuerdo a la interacción con el exterior Puede mostrar gráficamente el límite del sistema Sirve como herramienta de comunicación con los usuarios

67 Diagrama de use case Relaciones Asociación: Actor-Use Case
Generalización: Actor, Use Case Extends: Use Case – Use Case El comportamiento de un caso de uso (extendido) puede ser incluido en otro (base) Include: Use Case – Use Case El comportamiento de un caso de uso contiene al otro

68 Actualizar beneficios
Diagrama de use case Empleado Actualizar perfil Actualizar beneficios Administrador Actualizar valor hora <<include>>

69 Bibliografía The Unified Modeling Language User Guide. Booch, Jacobson, Rumbaugh The Unified Modeling Language Reference Manual. Rumbaugh, Booch, Jacobson. Especificación UML:


Descargar ppt "Ingeniería de Software I"

Presentaciones similares


Anuncios Google