Ingeniería en Sistemas de...

95
Modelos de Software Ingeniería en Sistemas de Información 2018

Transcript of Ingeniería en Sistemas de...

Modelos de SoftwareIngeniería en Sistemas de Información

2018

M. Larrea Modelos de Software

Introducción

Modelos de Software

2

M. Larrea Modelos de Software

Introducción

Modelos de Software

3

M. Larrea Modelos de Software

¿Qué es un Modelo?

Representación en pequeño de alguna cosa

4

Introducción

M. Larrea Modelos de Software

¿Qué es un Modelo?

Representación en pequeño de alguna cosa

5

Introducción

M. Larrea Modelos de Software

¿Qué es un Modelo?

Representación en pequeño de alguna cosa

6

Introducción

M. Larrea Modelos de Software

¿Qué es un Modelo?

Representación en pequeño de alguna cosa

7

Introducción

M. Larrea Modelos de Software

¿Qué es el Modelado?

8

Introducción

M. Larrea Modelos de Software

¿Qué es el Modelado?

“Se entiende por modelado al proceso de creación de una representación o imagen (el

modelo) de un objeto real”

9

Introducción

M. Larrea Modelos de Software

¿De qué sirve aprender esto?

10

Introducción

M. Larrea Modelos de Software

¿De qué sirve aprender esto?

Piensen en este curso como un curso de idioma

11

Introducción

M. Larrea Modelos de Software

¿De qué sirve aprender esto?

12

Introducción

Implemente un método público que tome un entero

y retorne un string. El método debe llamarse foo.

Implement a public method that takes an integer and

returns a string. The method should be called

foo.

Gennemføre en offentlig metode, der tager et heltal

og returnerer en streng. Fremgangsmåden må

kaldes foo.

实现,它接受一个整数并返

回一个字符串的公共方法。

该方法必须叫做foo。

M. Larrea Modelos de Software

¿De qué sirve aprender esto?

13

Introducción

Implemente un método público que tome un entero

y retorne un string. El método debe llamarse foo.

Implement a public method that takes an integer and

returns a string. The method should be called

foo.

Gennemføre en offentlig metode, der tager et heltal

og returnerer en streng. Fremgangsmåden må

kaldes foo.

实现,它接受一个整数并返

回一个字符串的公共方法。

该方法必须叫做foo。

+public String foo(int i)

M. Larrea Modelos de Software

¿De qué sirve aprender esto?

14

Introducción

M. Larrea Modelos de Software

¿De qué sirve aprender esto?

15

Introducción

M. Larrea Modelos de Software

Introducción

Modelos de Software

16

M. Larrea Modelos de Software

Modelado de Software

El modelado es independiente del paradigma de programación o de las herramientas de desarrollo. En esta

materia vamos a trabajar, principalmente, sobre el modelado bajo el paradigma orientado a objetos.

17

Introducción

M. Larrea Modelos de Software

Modelado de Software

Cada uno de estos modelos presenta una visión diferente, pero conectada, del sistema.

18

Introducción

M. Larrea Modelos de Software

Modelado de Software¿Cuáles son los objetivos del modelado?

El desarrollo de modelos permite contestar las siguientes preguntas: ¿Quién va a usar el sistema? ¿Qué va a hacer

el sistema? ¿Dónde y cuándo se va a usar el sistema?

19

Introducción

M. Larrea Modelos de Software

Modelado de Software¿Cuáles son los objetivos del modelado?

El proceso de desarrollo de los modelos es un proceso a través del cual el equipo de desarrollo logra conocer más y

mejor el sistema a desarrollar.

20

Introducción

M. Larrea Modelos de Software

Modelado de Software¿Cuáles son los objetivos de la materia?

Nuestro objetivo es que, al final de la materia, ustedes sepan cuáles son los distintos tipos de modelos que

existen y cuándo corresponde aplicar cada uno de ellos. También queremos que sean capaces de leer un modelo.

21

Introducción

M. Larrea Modelos de Software

Modelado de Software¿Cuáles son los objetivos de la materia?

No entraremos en profundidad en cómo crear modelos a partir de problemas abstractos, pero si se espera que

puedan leer cualquier modelo, en cualquier dominio de aplicación.

22

Introducción

M. Larrea Modelos de Software

Modelado de Software¿Cómo se materializa un modelo?

23

Introducción

M. Larrea Modelos de Software

Modelado de Software¿Cómo se materializa un modelo?

Con una representación gráfica.

Con texto.

Diagramas, dibujos.

Informes.

24

Introducción

M. Larrea Modelos de Software

Modelado de Software¿Cómo se materializa un modelo?

25

Introducción

M. Larrea Modelos de Software

Modelado de Software¿Cómo se materializa un modelo?

26

Introducción

M. Larrea Modelos de Software

Modelado de Software¿Cómo se materializa un modelo?

27

Introducción

M. Larrea Modelos de Software

Modelado de Software¿Cómo se materializa un modelo?

28

Introducción

M. Larrea Modelos de Software

Modelado de Software¿Cómo se materializa un modelo?

29

Introducción

M. Larrea Modelos de Software

Modelado de SoftwareUn poco de historia...

30

Introducción

M. Larrea Modelos de Software

Historia del Modelado

Entre 1940 y 1960 surge la actividad de “programar”. En un principio quien programaba era quien usaba el programa. No había estimación ni gestión alguna.

La “computadora” no estaba en un escritorio sino era una habitación completa. Los “programas” no eran archivos de texto sino tarjetas físicas perforadas.

31

Introducción

M. Larrea Modelos de Software

Historia del Modelado

337

32

Introducción

M. Larrea Modelos de Software

Historia del Modelado

33

Introducción

M. Larrea Modelos de Software

Historia del Modelado

34

Introducción

M. Larrea Modelos de Software

Historia del Modelado

35

Introducción

M. Larrea Modelos de Software

Historia del Modelado

36

Introducción

https://goo.gl/S3Bzje

M. Larrea Modelos de Software

Historia del Modelado

El hardware era específico a cada tarea. No había una computadora de propósito general. Los primeros lenguajes de propósito general fueron COBOL, FORTRAN y ALGOL.

37

Introducción

M. Larrea Modelos de Software

Historia del Modelado

Ada Lovelace(1815-1852)

Es reconocida como la primera programadora de la historia.

38

Introducción

M. Larrea Modelos de Software

Historia del Modelado

39

Introducción

M. Larrea Modelos de Software

Historia del Modelado

40

Introducción

M. Larrea Modelos de Software

Historia del Modelado

41

Introducción

Este software fue escrito en 1840 ¿qué ocurría en el mundo en 1840?

M. Larrea Modelos de Software

Historia del Modelado

42

Introducción

Este software fue escrito en 1840 ¿qué ocurría en el mundo en 1840?

La Argentina llevaba ya más de dos décadas sin un gobierno centralizado y sin una Constitución, si se exceptúa el corto período de la presidencia de Bernardino Rivadavia, que no fue reconocida en todo el país. El gobernador porteño, Juan Manuel de Rosas, había sido legítimamente electo en su provincia y las demás le habían delegado el manejo de las relaciones exteriores y la paz y guerra.

M. Larrea Modelos de Software

Historia del Modelado

43

Introducción

Este software fue escrito en 1840 ¿qué ocurría en el mundo en 1840?

El 19 de enero de 1840, la expedición de Charles Wilkes descubre la Antártida.

M. Larrea Modelos de Software

Historia del Modelado

44

Introducción

Este software fue escrito en 1840 ¿qué ocurría en el mundo en 1840?

El 23 de marzo de 1840 se saca la primera foto registrada de la luna.

M. Larrea Modelos de Software

Historia del Modelado

45

Introducción

Este software fue escrito en 1840 ¿qué ocurría en el mundo en 1840?

El 23 de marzo de 1840 se saca la primera foto registrada de la luna.

http://worldtimeline.info/wor1840.htm

M. Larrea Modelos de Software

Historia del Modelado

Grace Brewster Murray Hopper(1906-1992)

Fue la primera programadora de la MARK I. Inventó el primer compilador y sentó las bases para los lenguajes

de alto nivel.

Una grosa.

46

Introducción

M. Larrea Modelos de Software

Historia del Modelado

Margaret Hamilton(1936 - )

Fue directora de la División de Ingeniería de Software del Laboratorio

de Instrumentación del MIT, donde con su equipo desarrolló el software

de navegación para el Programa Espacial Apolo.

Grosa++.

47

Introducción

M. Larrea Modelos de Software

Historia del Modelado

En 1960 la programación tenía poco o nada de análisis. Los únicos diagramas que se utilizaban eran los flowchart.

48

Introducción

M. Larrea Modelos de Software

Historia del Modelado

Flowchart

49

Introducción

M. Larrea Modelos de Software

Historia del Modelado

Aparecen las subrutinas y con ellas la idea de módulos.

Para 1972 existe la programación estructurada y el concepto de diseño top-down.

En los 70 tenemos el data flow oriented y data structure design

En los 80 hay una maduración del desarrollo de software

En mediados, finales de los 80 se populariza el concepto de OO

50

Introducción

M. Larrea Modelos de Software

Historia del Modelado

Aparecen las ideas de Diseño Orientado a Objetos y Análisis Orientado a Objetos.

El análisis estático OO es en análisis de las clases.

Object Modeling Technique (OMT, 1991)

OMT introduce la importancia del comportamiento dinámico.

51

Introducción

M. Larrea Modelos de Software

Historia del Modelado

En 1992 (Jacobson) se introduce el concepto de Caso de Uso, como una forma de modelar los requerimientos funcionales.

Para esta altura diferentes autores presentan diferentes formas de modelar, diferentes formas de notar los modelos.

Entre 1993 y 1997 se realizaron diferentes intentos de unificar los sistemas de modelado.

52

Introducción

M. Larrea Modelos de Software

Historia del Modelado

Aparece el Lenguaje Unificado de Modelado (UML, por sus siglas en inglés, Unified Modeling Language). UML es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; está respaldado por el OMG (Object Management Group). Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema

53

Introducción

M. Larrea Modelos de Software

Historia del Modelado

Desde el año 2005, UML es un estándar aprobado por la ISO como ISO/IEC 19501:2005 Information technology.

54

Introducción

M. Larrea Modelos de Software

Modelado de Software

UML

55

Introducción

M. Larrea Modelos de Software

UML

Como herramienta de modelado, UML nos ofrece la posibilidad de modelar diferentes vistas de un mismo sistema.

Use case view

Static view

Dynamic interaction view

Dynamic state machine view

Structural component view

Dynamic concurrent view

Deployment view

56

Introducción

M. Larrea Modelos de Software

UML

Algunas características especiales de UML:

UML es un lenguaje, tiene una sintaxis y una semántica.

Con UML no solo modelamos la cosa X, sino el contexto en donde ocurre X.

UML es flexible, MUY flexible.

TODO es opcional. Se usa sólo lo que se necesita.

57

Introducción

M. Larrea Modelos de Software

UML

Algunas características especiales de UML:

Casi nunca vamos a realizar un modelado completo.

UML está diseñado para estar abierto a interpretaciones.

UML está diseñado para ser extendido.

58

Introducción

M. Larrea Modelos de Software

Modelado de Software

Representaciones Gráficas

59

Introducción

M. Larrea Modelos de Software

Representaciones Gráficas

“Una imagen vale más que mil palabras”UML combina gráficos con texto. El objetivo es transmitir un

mensaje claro y sin interferencias.

60

Introducción

M. Larrea Modelos de Software

Representaciones Gráficas

Tenemos que transmitir un concepto o idea, sin que el medio de transmisión sea un obstáculo.

61

Introducción

M. Larrea Modelos de Software

Representaciones Gráficas

Tenemos que transmitir un concepto o idea, sin que el medio de transmisión sea un obstáculo.

Las clases serán de 8 a 12 en el aula 38B

62

Introducción

M. Larrea Modelos de Software

Representaciones Gráficas

Tenemos que transmitir un concepto o idea, sin que el medio de transmisión sea un obstáculo.

Las clases serán de 8 a 12 en el aula 38B

63

Introducción

M. Larrea Modelos de Software

Representaciones Gráficas

Tenemos que transmitir un concepto o idea, sin que el medio de transmisión sea un obstáculo.

.-.. .- ... / -.-. .-.. .- ... . ... / ... . .-. .- -. / -.. . / ---.. / .- / .---- ..--- / . -. / . .-.. / .- ..- .-.. .- / ...-- ---.. -...

64

Introducción

M. Larrea Modelos de Software

Modelado de Software

Escala.

65

Introducción

M. Larrea Modelos de Software

Escala

.

66

Introducción

M. Larrea Modelos de Software

Escala

La escala es la relación matemática que existe entre las dimensiones reales y las del dibujo que representa la realidad sobre un plano o un mapa. Es la relación de

proporción que existe entre las medidas de un mapa con las originales.

67

Introducción

M. Larrea Modelos de Software

Escala

68

Introducción

M. Larrea Modelos de Software

Modelados de Software

Principios de Modelado

69

Introducción

M. Larrea Modelos de Software

Principios de Modelado

AbstracciónProyección

DescomposiciónGeneralización

70

Introducción

M. Larrea Modelos de Software

Principios de Modelado

AbstracciónUn modelo puede pensarse como una abstracción de un sistema más complejo. Un modelo funciona como una lupa, aumenta ciertas partes del sistema mientras oculta o disminuye otras.

71

Introducción

M. Larrea Modelos de Software

Principios de Modelado

AbstracciónLa abstracción de un modelo define su complejidad. En el caso del modelado de software la siguiente regla es fundamental:

Un modelo debe ser tan complejo como sea necesario, ni más, ni menos.

A veces se requiere sacrificar exactitud, en favor de entendimiento.

72

Introducción

M. Larrea Modelos de Software

Principios de Modelado

ProyecciónCada elemento en un diagrama UML debe poder proyectarse a un elemento real del sistema. Los mejores modelos son los que están más ligados a la realidad.

73

Introducción

M. Larrea Modelos de Software

Principios de Modelado

DescomposiciónEncarar un problema grandes muchas veces hace que sea imposible encontrar una solución. Descomponer el problema en subproblemas puede ayudar.

74

Introducción

M. Larrea Modelos de Software

Principios de Modelado

DescomposiciónModelar un sistema en un único diagrama es imposible. Además de tener múltiples vistas de un mismo sistema, cada vista se dividirá en múltiples partes o jerarquías.

Distintos niveles de abstracción generan una descomposición. La descomposición debe ser natural e intuitiva.

75

Introducción

M. Larrea Modelos de Software

Principios de Modelado

GeneralizaciónGeneralidad. Se trata de un método que, además de buscar la descripción de las cosas en particular, elabora afirmaciones de tipo general.

El modelado busca aplicar la generalización para la descripción de las cosas.

76

Introducción

M. Larrea Modelos de Software

Modelado de Software

Lectura de un Dibujo

77

Introducción

M. Larrea Modelos de Software

Lectura de un Dibujo

78

Introducción

M. Larrea Modelos de Software

Lectura de un Dibujo

79

Introducción

M. Larrea Modelos de Software

Lectura de un Dibujo

80

Introducción

M. Larrea Modelos de Software

Modelado de Software

Normas para Dibujar

81

Introducción

M. Larrea Modelos de Software

Normas para Dibujar

Normas para Dibujar

82

Introducción

M. Larrea Modelos de Software

Normas para Dibujar

Normas para Dibujar

83

Introducción

M. Larrea Modelos de Software

Normas para Dibujar

Normas para Dibujar

84

Introducción

M. Larrea Modelos de Software

Modelado de Software

Herramientas para el Modelado

85

Introducción

M. Larrea Modelos de Software

Herramientas para el Modelado

Herramientas para el Modelado

86

Introducción

M. Larrea Modelos de Software

Herramientas para el Modelado

87

Introducción

M. Larrea Modelos de Software

Resumen

88

Introducción

M. Larrea Modelos de Software

¿Qué es un Modelo?

Representación en pequeño de alguna cosa

89

Introducción

M. Larrea Modelos de Software

¿Qué es un Modelo?

Representación en pequeño de alguna cosa

90

Introducción

M. Larrea Modelos de Software

¿De qué sirve aprender esto?

91

Introducción

M. Larrea Modelos de Software

Historia del Modelado

Aparece el Lenguaje Unificado de Modelado (UML, por sus siglas en inglés, Unified Modeling Language). UML es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; está respaldado por el OMG (Object Management Group). Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema

92

Introducción

M. Larrea Modelos de Software

UML

Como herramienta de modelado, UML nos ofrece la posibilidad de modelar diferentes vistas de un mismo sistema.

Use case view

Static view

Dynamic interaction view

Dynamic state machine view

Structural component view

Dynamic concurrent view

Deployment view

93

Introducción

M. Larrea Modelos de Software

Herramientas para el Modelado

Herramientas para el Modelado

94

Introducción

M. Larrea Modelos de Software 95

Introducción