Modelado, Ingenieria de Software

70
1 Taller de Modelamiento y Diagramación de Sistemas Automatizados con la utilización de las herramientas CASE Rational Rose Actividad N.- 1 www.modelado.pnfi.org Ing. MSc. Douglas Galvis

description

Taller de Modelamiento y Diagramación de Sistemas Automatizados con la utilización de las herramientas CASE Rational Rose Actividad N.- 1 www.modelado.pnfi.org

Transcript of Modelado, Ingenieria de Software

Page 1: Modelado, Ingenieria de Software

1

Taller de Modelamiento y Diagramación de Sistemas Automatizados con la utilización de las herramientas

CASE Rational Rose

Actividad N.- 1

www.modelado.pnfi.org

Ing. MSc. Douglas Galvis

Page 2: Modelado, Ingenieria de Software

2

Contenidos:

1.- Objetivos del Taller.2.- Conceptualizaciones sobre : 2.1 Ingeniería de Software. 2.2 Proceso Unificado de Desarrollo 2.3 Lenguaje Modificado de Modelación (UML) 2.4 El proceso Unificado de Desarrollo (RUP) 2.5 Modelado y Diagramación de Casos de Usos del Negocio. (ejemplo tipo)3.- Modelamiento y Diagramación de un Sistema automatizado .4.- Utilización de la Herramienta CASE Rational Rose

Page 3: Modelado, Ingenieria de Software

3

1.- Objetivos del Taller

Unificación de los Conocimientos entre los Profesores que dictan la Cátedra de Ingeniería de Software, en las Unidades Curriculares de la malla del PNFI, en los trayectos 2 y 3.

Estandarizar el Modelamiento y la diagramación en los Proyectos Sociotecnológicos al final de los trayecto 2 y 4.

Institucionalizar la utilización de Herramientas CASE, para la elaboración del Modelamiento y diagramado de los Sistemas, como recursos tecnológicos en la formación de los profesionales que egresan de la UPTEM

Page 4: Modelado, Ingenieria de Software

4

Ingeniería del Software

Soporte automático o semiautomático para el proceso y los métodos.

Es el fundamento de la IS. Es la unión que mantiene juntas las capas de la tecnología.

Indican cómo construir técnicamente el Sw.

Page 5: Modelado, Ingenieria de Software

5

Mejores prácticas para el trabajo efectivo de un equipo en el

desarrollo del software.

(Dirige y organiza el proceso)

(Notación)

Page 6: Modelado, Ingenieria de Software

6

Lecturas Recomendadas

JACOBSON, Ivar; BOOCH, Grady, RUMBAUGH, James, “El Proceso Unificado de Desarrollo de Software”.2000. Addison Wesley.

BOOCH, Grady, RUMBAUGH, James, JACOBSON, Ivar; “El Lenguaje Unificado de Modelación. Libro introductorio”.2000. Addison Wesley.

•LARMAN, Craig “UML y patrones” 1999, Prentice Hall Iberoamericana.

RUMBAUGH, James, JACOBSON, Ivar, BOOCH, Grady; “El Lenguaje Unificado de Modelación. Manual de referencia”.2000. Addison Wesley.

Bibliografía

Page 7: Modelado, Ingenieria de Software

7

Lecturas Recomendadas

CONALLEN, Jim, “Building Web Applications with UML”.2002. 2nd edition. Addison Wesley.

BOOCH, Grady, MAKSIMCHUCK, Robert, ENGLEm Michael, YOUNG, Bobbi, CONALLEN, Jim, Houston, Kelli; “Objetct-Oriented Analysis and Design with Applications”. Third Edition. Addison Wesley. 2007.

HAMILTON, Kim, MILES, Russell; “Learning UML 2”.2006. O´ Reilly Media

Bibliografía

Page 8: Modelado, Ingenieria de Software

8

Proceso de Desarrollo de Software

Page 9: Modelado, Ingenieria de Software

9

Proceso

Define “quién” está haciendo “qué”, “cuándo” y “cómo” para alcanzar un determinado objetivo.

Proceso de desarrollo de software (PDS)

Requisitos del usuario Sistema informático

Page 10: Modelado, Ingenieria de Software

10

Proceso de desarrollo de software (PDS)

Page 11: Modelado, Ingenieria de Software

11

• Un proceso software debe especificar:– la secuencia de actividades a realizar por

el equipo de desarrollo: flujo de actividades

– productos que deben crearse: qué y cuándo

– asignación de tareas a cada miembro del equipo y al equipo como un todo

– proporcionar heurísticas– criterios para controlar el proceso

Proceso de desarrollo de software (PDS)

Page 12: Modelado, Ingenieria de Software

12

UML

Page 13: Modelado, Ingenieria de Software

13

“ Puede ser un seudocódigo, código, imágenes, diagramas, o largos paquetes de descripción; es decir, cualquier cosa

que ayude a describir un sistema ”

Lenguaje de modelación

= +

Page 14: Modelado, Ingenieria de Software

14

(Forma de expresar el

modelo)

Lenguaje de modelación

+=(Descripción

de lo que significa esa modelación)

Page 15: Modelado, Ingenieria de Software

15

• Diversos métodos y técnicas OO, con muchos aspectos en común pero utilizando distintas notaciones

• Inconvenientes para el aprendizaje, aplicación, construcción y uso de herramientas, etc.

• Pugna entre distintos enfoques (y correspondientes gurús)

Situación de partidaSituación de partida

Page 16: Modelado, Ingenieria de Software

16

• Descrito en "The Unified Modeling Language for

Object-Oriented Development" de Grady Booch,

James Rumbaugh e Ivar Jacobson.

• Basado en las experiencias personales de los

autores.

• Incorpora contribuciones de otras metodologías.

Lenguaje Unificado de Modelación

?

¿Qué es el UML- Unified Modeling Language?

U M L

Page 17: Modelado, Ingenieria de Software

17

• Ofrece un estándar para describir un “plano” del

sistema.

• Incluye aspectos conceptuales tales como procesos

de negocio y funciones del sistema y aspectos

concretos como espresiones de lenguajes de

programación, esquemas de BD y componentes de

software reutilizables.

Lenguaje Unificado de Modelación

?

¿Qué es el UML- Unified Modeling Language?

U M L

Page 18: Modelado, Ingenieria de Software

18

UML

DocumentarDocumentar

VisualizarVisualizar EspecificarEspecificar

ConstruirConstruir

Page 19: Modelado, Ingenieria de Software

19

UML no es un método

El UML es un lenguaje que permite la modelación de sistemas con tecnología orientada a objetos

Aprobado como estándar por OMG en noviembre de 1997

El Object Management Group u OMG (de sus siglas en inglés Grupo de Gestión de Objetos) es un consorcio dedicado al cuidado y el establecimiento de diversos estándares de tecnologías

orientadas a objetos, tales como UML, XMI, CORBA.

Page 20: Modelado, Ingenieria de Software

20

El esfuerzo de UML partió oficialmente en octubre de 1994, cuando Rumbaugh se unió a Booch en Rational.

El “Método Unificado” en su Versión 0.8, se presentó en el OOPSLA’95

El mismo año se unió Ivar Jacobson. Los “Tres Amigos” son socios en la compañía Rational Software. Herramienta CASE Rational Rose

Orígenes de UML

Page 21: Modelado, Ingenieria de Software

21

Creación del UML

Booch method OMT

Unified Method 0.8OOPSLA ´95

OOSEOther methods

UML 0.9Web - June ´96

publicfeedback

UML 1.5

UML 1.0UML partners

UML 2.0

Final submission to OMG, Sep ‘97

First submission to OMG, Jan ´97UML 1.1

OMG Acceptance, Nov 1997 Version 1.1

Page 22: Modelado, Ingenieria de Software

22

• Las primeras versiones de UML estaban más orientadas hacia la modelación del software y ahora se requiere más la modelación del sistema.

• Necesidad de compartir modelos entre diferentes herramientas.

• Nuevas tecnologías: Arquitectura basada en componentes, MDA

• Las primeras versiones estaban más diseñadas para las personas y no para las máquinas, por lo que hay construcciones que no estaban suficientemente formalizadas.

¿Por qué UML 2.0?

Page 23: Modelado, Ingenieria de Software

23

GRADYBOOCH

IVARJACOBSON

JAMESRUMBAUGH

Object Modelling Technique 1991(OMT)

Object Oriented Analysis and Design with Applications 1994

Object Oriented Software Engineering: A Use Case Driven Approach 1992 (OOSE)

Las Bases de UML• Booch, • Rumbaugh• Jacobson

Rational Software Corporation. (1995)

Las Bases de UMLLas Bases de UML

Page 24: Modelado, Ingenieria de Software

24

• Modelar sistemas, a partir de los conceptos hacia los artefactos ejecutables, utilizando técnicas orientadas a objeto.

• Enfocarnos en las cuestiones de escala inherentes a sistemas complejos, críticos en su misión.

• Crear un lenguaje de modelación utilizable tanto por los humanos, como por las máquinas.

Premisas de UML según Booch, Jacobson y Rumbaugh

Page 25: Modelado, Ingenieria de Software

25

Contribuciones a UMLDiagrama de Casos de uso

Diagrama de Clases

Diagrama de Objetos

Diagrama de Secuencia

Diagrama de Estado

Diagrama de Componentes

Diagrama de Estructura Compuesta

Diagrama de Paquetes

Diagrama de Comunicación

Diagrama de Actividad

Diagrama de Tiempo

Diagrama de Despliegue

OOSE/Jacobson

OOAD/Booch

OMT/Rumbaugh

Otras mejores prácticas

Page 26: Modelado, Ingenieria de Software

26

• Es un lenguaje formal ya que cada elemento del lenguaje tiene un significado fuerte que ayuda a modelar un aspecto particular del sistema.

• Es conciso con una notación simple.

• Es comprensible porque describe todos los aspecto importante del sistema.

• Es escalable por lo que permite describir proyectos de diferentes tamaños.

Ventajas de UML

Page 27: Modelado, Ingenieria de Software

27

• Contiene las mejores prácticas de la comunidad orientada a objetos de los últimos 15 años.

• Es un estándar abierto.

• Da soporte a todo el ciclo de vida de desarrollo del software.

• Da soporte a diversas áreas de aplicación.

• Está soportado por muchas herramientas.

Ventajas de UML

Page 28: Modelado, Ingenieria de Software

28

• Carece de un semántica precisa, lo que ha dado lugar a que la interpretación de un modelo UML no pueda ser objetiva en ocasiones.

• No se presta con facilidad al diseño de sistemas distribuidos. En estos sistemas son importantes factores como transmisión, serialización, persistencia, etc. No se puede señalar si un objeto es persistente o remoto.

Limitaciones de UML

Page 29: Modelado, Ingenieria de Software

29

Un proceso de desarrollo de software debe ofrecer un conjunto de modelos que permitan expresar el producto de software desde cada una de las perspectivas de interés

Page 30: Modelado, Ingenieria de Software

30

Un producto de software es el código máquina y los ejecutables de un sistema

Un producto de software es el conjunto de artefactos que se necesitan para representarlo en forma comprensible para:

• Las máquinas.• Los trabajadores. • Los usuarios.• Los interesados.

¿artefactos?

¿Qué es un producto de software?

Page 31: Modelado, Ingenieria de Software

31

¿Artefactos?

Término general aplicable a cualquier tipo de información creada, cambiada o utilizada por los trabajadores en el desarrollo del sistema

• Diagramas UML y su texto.• Bocetos de interfaz.• Planes de prueba.

EjemplosEjemplos::

Page 32: Modelado, Ingenieria de Software

32

• Un modelo captura una vista de un sistema del

mundo real. Es una abstracción de dicho sistema,

considerando un cierto propósito. Así, el modelo

describe completamente aquellos aspectos del

sistema que son relevantes al propósito del

modelo, y a un apropiado nivel de detalle.

• Diagrama: una representación gráfica de una

colección de elementos de modelado, a menudo

dibujada como un grafo con vértices conectados

por arcos

Modelos y DiagramasModelos y Diagramas

Page 33: Modelado, Ingenieria de Software

33

Modelo de Casos de Uso

Modelo de Diseño

Modelo de Implementación

Trazabilidad entre los modelos

Secuenciacronológica

ModelosModelos

Modelo de Despliegue

Modelo de Análisis

Modelo de Prueba

Page 34: Modelado, Ingenieria de Software

34

Modelo de Casos de Uso

Modelos y Diagramas

Diagrama de Casos de Uso del Negocio

Diagrama de Secuencia

Diagrama de Comunicación

Diagrama de Casos de Uso del Sistema

Diagrama de Actividades

Diagrama de Estado

Diagrama de Paquetes

Page 35: Modelado, Ingenieria de Software

35

Casos de Uso y Diagramas de Casos de Uso

Diagramas de UML

Casos de usoDiagrama de casos de uso

Page 36: Modelado, Ingenieria de Software

36

Casos de Uso es una técnica para capturar información de cómo un sistema o negocio trabaja, o de cómo se desea que trabaje

No pertenece estrictamente al enfoque orientado a objeto, es una técnica para captura de requisitos

Diagrama de casos de uso

ClienteSolicitar Préstamo

Page 37: Modelado, Ingenieria de Software

37

Diagramas de estructura estática Diagrama de clases Diagrama de Objetos

Diagramas de UML

Page 38: Modelado, Ingenieria de Software

38

Un diagrama de clases presenta las clases del sistema con sus relaciones estructurales y de herencia

La definición de clase incluye definiciones para atributos y operaciones

El modelo de casos de uso aporta información para establecer las clases, objetos, atributos y operaciones

Diagrama de clases

ProfesorDepartamento

0..1 1..*0..1

Page 39: Modelado, Ingenieria de Software

39

Diagramas UML

Diagramas del comportamientoDiagramas de EstadoDiagramas de ActividadDiagramas de SecuenciaDiagrama de ComunicaciónDiagrama de tiempo

Diagrama de Secuencia Diagrama de Comunicación

Page 40: Modelado, Ingenieria de Software

40

con préstamos

sin préstamos

alta baja

prestar devolver[ número_préstamos = 1 ]

prestar

devolver[ número_préstamos > 1 ]

número_préstamos = 0

número_préstamos > 0

Socio

número : intnombre : char[50]número_prestamos : int = 0

alta()baja()prestar(código_libro : int, fecha : date)devolver(código_libro : int, fecha : date)

Diagrama de estado

Page 41: Modelado, Ingenieria de Software

41

Diagrama de actividades

Buscar bebida

¿hay café?

Poner café en filtro

Añadir agua al depósito

Coger taza

Poner filtro en máquina

Encender máquina

Hacer café

Servir café Beber

Servir jugo

¿hay jugo?

SÍNO

NO

Page 42: Modelado, Ingenieria de Software

42

Diagrama de secuencia

: Encargado:WInPréstamos :Socio :Video :Préstamo

prestar(video, socio)

verificar situación socio

verificar situación video

registrar préstamo

entregar recibo

Page 43: Modelado, Ingenieria de Software

43

: Encargado

:WInPréstamos

:Socio

:Video

:Préstamo

1: prestar(video, socio)

2: verificar situación socio

3: verificar situación video

4: registrar préstamo5: entregar recibo

Diagrama de comunicación

Page 44: Modelado, Ingenieria de Software

44

Diagramas de implementación Diagramas de componentes Diagramas de instalación/Distribución

(Despliegue)

Diagramas de UML

Diagrama de componentes

Page 45: Modelado, Ingenieria de Software

45

Interfaz de Terminal

Gestión de Cuentas Rutinas de conexión Acceso a BD

Control y Análisis

Diagrama de componentes

Page 46: Modelado, Ingenieria de Software

46

Diagrama de despliegue

Punto de Venta

Servidor Central

Terminal de Consulta

Gestión de Cuentas

Comment

Interfaz de Terminal

Comment

Rutinas de Coneccion

Comment

Rutinas de Coneccion

Comment

Interfaz de Terminal

Comment

Rutinas de Coneccion

Comment

Acceso a BD

Comment

Control y Análisis

Comment

Page 47: Modelado, Ingenieria de Software

47

Tomado de:Rosenberg, Doug, Kendall Scott. Applying use case driven object modeling with UML: an annotated e-commerce example.

¿Cómo se relacionan los diagramas?Solo para comprender la

secuencia de pasos

Page 48: Modelado, Ingenieria de Software

48

¿Cómo se relacionan los diagramas?Solo para comprender la

secuencia de pasos

Tomado de:Rosenberg, Doug, Kendall Scott. Applying use case driven object modeling with UML: an annotated e-commerce example.

Page 49: Modelado, Ingenieria de Software

49

Tomado de:Rosenberg, Doug, Kendall Scott. Applying use case driven object modeling with UML: an annotated e-commerce example.

¿Cómo se relacionan los diagramas?Solo para comprender la

secuencia de pasos

Page 50: Modelado, Ingenieria de Software

50

Tomado de:Rosenberg, Doug, Kendall Scott. Applying use case driven object modeling with UML: an annotated e-commerce example.

¿Cómo se relacionan los diagramas?Solo para comprender la

secuencia de pasos

¿Cómo se relacionan los diagramas?

Page 51: Modelado, Ingenieria de Software

51

UML define una notación que se expresa como diagramas sirven para representar modelos/subsistemas o partes de ellos

El 80 por ciento de la mayoría de los problemas pueden modelarse usando alrededor del 20 por ciento de UML-- Grady Booch

Resumen

Page 52: Modelado, Ingenieria de Software

52

El Proceso Unificado de Desarrollo

(Rational Unified Process- RUP)

Page 53: Modelado, Ingenieria de Software

53

Rational Unified Process

RUP es un proceso para el desarrollo de software orientado a objeto que utiliza UML

para describir un sistema

Rational Software Corporation, 1998

Page 54: Modelado, Ingenieria de Software

54

Rational Unified Process 5.0

Rational Objectory Process 4.1

Rational Objectory Process 4.0

Rational Approach Objectory

Process

Pruebas de rendimiento y carga(Performance Awareness)

Ingeniería de Negocios

Diseño OO de IU

Ingeniería de Datos(Vigortech)

UML 1.2

Proceso SQA(SQA Inc.)

UML 1.0

Administración de Configuración y Cambios

(Pure-Atria)

Escuela de Requerimientos(Requisite Inc.)

OMTBooch

UML 0.8

1998

1997

1996

1995

Ericsson method1967

1987

Evolución de RUP

Page 55: Modelado, Ingenieria de Software

55

Estructura Estática de RUP

Fases e Iteraciones

Disciplinas del Proceso

Actividades, flujo de trabajo

Artefactos Modelos, reportes, documentos

Trabajadores

¿Cómo ocurre el proceso y sus

detalles?

¿Qué se produce u obtiene?

¿Quién lo hace o se responsabiliza?

¿Cuándo ocurre el proceso?

Page 56: Modelado, Ingenieria de Software

56

Estructura Dinámica

Tiempo

Concepción Elaboración Construcción Transición

• Concepción Define el alcance del proyecto y eldesarrollo de los casos del

negocio.• Elaboración Planifica el proyecto, especifica

las características y define los

cimientos de la arquitectura.• Construcción Construye el producto.

• Transición Implementa el producto a sususuarios.

Page 57: Modelado, Ingenieria de Software

57

Fases-Flujos de trabajo de RUP

Page 58: Modelado, Ingenieria de Software

58

Características del ciclo de vida de RUP

Dirigido por Casos de Uso. Centrado en la arquitectura. Iterativo e incremental.

Page 59: Modelado, Ingenieria de Software

59

Dirigido por Casos de Uso

Ciclo de vida de RUP

(Reflejar lo que los futuros usuarios necesitan y desean)

Representa los requerimientos

funcionales

Requisitos Análisis Diseño Implementación Prueba

Caso de Uso

Guían el proceso de desarrollo porque los modelos que se crean llevan a

cabo los casos de uso.

Page 60: Modelado, Ingenieria de Software

60

Caso de Uso Realización de Análisis Realización de Diseño

Caso de Prueba

X

«trace» «trace»

«trace»«trace»

Pruebas Funcionales

PruebasUnitarias

Dirigido por Casos de Uso

Ciclo de vida de RUP

Page 61: Modelado, Ingenieria de Software

61

Dirigido por Casos de Uso

Ciclo de vida de RUP

Page 62: Modelado, Ingenieria de Software

62

Centrado en la arquitectura

Ciclo de vida de RUP

En la construcción,vista de:

A) Estructura.B) Calefacción.C) Plomería.D) Electricidad. Estáticos

DinámicosAspectos

Page 63: Modelado, Ingenieria de Software

63

Centrado en la arquitectura

Ciclo de vida de RUP

(Visión común del sistema completo en la que desarrolladores y usuarios deben estar de acuerdo )

• Describe los elementos del modelo que son más importantes para su construcción, los cimientos del sistema que son necesarios como base para comprenderlo, desarrollarlo y producirlo económicamente.

• Se desarrolla mediante iteraciones comenzando por los CU relevantes desde el punto de vista de la arquitectura.

Page 64: Modelado, Ingenieria de Software

64

Centrado en la arquitectura

Ciclo de vida de RUP

Vista lógica

Vista de componentes

Vista de despliegue

Vista física

Vista de Casos de uso Vista de

diseño

Vista de actividades

Vista de estado

Vista estática Vista de

Casos de uso

Vista de despliegue

Vista de componentes

Vista de Gestión del

modelo

Perfil

Page 65: Modelado, Ingenieria de Software

65

Iterativo e incremental

Ciclo de vida de RUP

Hito de los Hito de los objetivosobjetivos

Hito de la Hito de la arquitecturaarquitectura

Hito de la Hito de la funcionalidad funcionalidad operativaoperativa

Hito de la Hito de la versión del versión del productoproducto

• Dentro de cada fase hay hitos (artefactos a construir) asociados a resultados de cada iteración.

• La terminación de una iteración produce un nuevo incremento.

Page 66: Modelado, Ingenieria de Software

66

EnfoqueCascada

EnfoqueIterativo eIncremental

Iterativo e incremental

Ciclo de vida de RUP

Page 67: Modelado, Ingenieria de Software

67

Grado de Finalización de Artefactos

Iterativo e incremental

Ciclo de vida de RUP

Page 68: Modelado, Ingenieria de Software

68

Beneficios de la iteración

•Reduce el coste del riesgo al coste de un solo incremento.

•Menos riesgo de no sacar el producto al mercado en fecha.

•Acelera el ritmo de desarrollo.

•Las necesidades del usuario y correspondientes requisitos no pueden definirse completamente al principio. Se requieren iteraciones sucesivas.

Page 69: Modelado, Ingenieria de Software

69

RUP

• RUP es un proceso que garantiza la elaboración de todas las fases de un producto de software orientado a objetos.

•RUP es dirigido por los casos de uso, centrado en la arquitectura, iterativo e incremental.

• RUP utiliza el UML.

• UML es un lenguaje que permite la modelación de sistemas con tecnología orientada a objetos

Page 70: Modelado, Ingenieria de Software

70

Desarrolloen equipos

UML y RUP

Lenguaje deModelamiento

ProcesoUnificado