SlideShare una empresa de Scribd logo
1 de 172
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 1
28/05/2021
Fundamentos de
modelado
Unidad 1
Material docente compilado por el docente Ph.D. Franklin Parrales Bravo
para uso de los cursos de Modelamiento de Software
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 2
28/05/2021
Objetivo general de la Unidad 1
Comprender la importancia del modelado de
software mediante el uso de técnicas para el
diseño de software.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 3
28/05/2021
Contenido
• Introducción al modelado
– Estructurado, Orientado a Objeto
• Conceptos de modelo
– Objeto, Atributos, Relaciones, Cardinalidad / multiplicidad.
• Utilidad de los modelos
– Comprender la realidad y el sistema
– Reducir la complejidad
• Principios de modelado
– Descomposición, Abstracción, Generalización / especialización
– Proyección / puntos de vista
– Uso de enfoques formales (UML)
• Herramientas de modelado
– MagicDraw
– Star UML
– Papyrus UML
– Rational Rose
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 4
28/05/2021
Introducción al modelado
• ¿Qué es un modelo?
• Enfoques de modelado
– Estructurado
– Orientado a objetos
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 5
28/05/2021
¿Qué es un modelo?
• Un modelo es una abstracción que se construye
para entender y resolver problemas.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 6
28/05/2021
¿Qué es un modelo software?
Es una descripción de un aspecto del sistema, escrita
en un lenguaje bien definido.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 7
28/05/2021
El modelado.
• Simplificación del objeto en el mundo real,
pero que es suficientemente realista como
para dar una idea de lo que ocurrirá en la
realidad y usarse como base del desarrollo.
• Es la primera fase creativa del desarrollo de
proyectos. Se compone de lo qué es análisis
y diseño.
• El modelado parte de lo que es la Ingeniería
de Requerimientos y devuelve un modelo
que puede ser construido (implantable a
través de lenguajes de programación).
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 8
28/05/2021
Modelado
• ¿Qué es un modelo?
– Un modelo es una representación de la
realidad. No sólo se modela software sino
prácticamente cualquier actividad.
• ¿Para qué se modela?
– Para resolver un problema más fácilmente
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 9
28/05/2021
Importancia del Modelado
• Casi el 80% de los proyectos
de software fallan.
• Nadie construye una casa
sin un plano.
• Actualmente existen muchas
herramientas que auxilian el
proceso de modelado como
Visio, ArgoUML, Rational
Rose, Together, etc.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 10
28/05/2021
Modelado
• Los modelos deben ser más baratos que la
realidad.
• Es más fácil para una persona entender un
diagrama que las líneas de código fuente de
un programa.
• Elaborar los diagramas, al igual que codificar,
consumen tiempo.
• Se deben construir modelos que sean
representativos para que sean útiles
(imaginense hacer un documento de 100
hojas que nadie va a leeer)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 11
28/05/2021
Modelado: Preguntas
• ¿Cuántos diagramas debo crear?
– No existe una respuesta específica.
• ¿Debo hacer diagramas de todo tipo?
– No, sólo se deben utilizar los diagramas que mejor
reflejen el modelado de la problemática.
• ¿Qué tan grande debe de ser un diagrama?
– Entre más grande sea un diagrama mayor es la
confusión.
– Se deben realizar diagramas bien detallados, pero no
tan detallados.
• ¿Cuánto texto debe complementar el modelo?
– Entre menos texto mejor, son como los comentarios
del código fuente: deben ser pocos pero claros.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 12
28/05/2021
Modelado: Recomendaciones
• Algunas recomendaciones para el modelado de
software son:
– No tenga a los programadores esperando los
modelos.
– Trabajar de una macrovista a una microvista
(enfoque Top-Down).
– Se debe documentar en forma económica.
– Si es obvio no se debe de modelar.
– Hacer hincapié en la especialización.
– Utilizar patrones de diseño.
– Rediseñar.
El rediseño es una técnica de reorganización que simplifica el diseño (o
código) de un componente sin cambiar su función o comportamiento.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 13
28/05/2021
Rediseño
• Es el proceso de cambiar un sistema de
software en forma tal que no se altera el
comportamiento externo del diseño, pero sí
se mejora su estructura interna.
• Se examina el diseño existente en busca de
redundancias, elementos de diseño no
utilizados, algoritmos ineficientes o
innecesarios, estructuras de datos mal
construidas o inapropiadas y cualquier otra
falla del diseño que pueda corregirse para
obtener un diseño mejor.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 14
28/05/2021
Rediseño
• Por ejemplo, una primera iteración de diseño
tal vez genere un componente con poca
cohesión (realiza tres funciones que tienen
poca relación entre sí).
• Después de un análisis cuidadoso, se decide
rediseñar el componente en tres
componentes separados, cada uno con
mucha cohesión.
• El resultado será un software más fácil de
integrar, de probar y de mantener.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 15
28/05/2021
Reducir Complejidad (1)
10
9
8
7
6
5
4
3
2
1
20 25 30 35
Complejidad del Diseño del Sistema
Faltas
por
mil
lineas
de
código
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 16
28/05/2021
Reducir Complejidad (2)
• Generalidad de la solución
– con menos componentes más simples resolver el
problema
– nivel de abstracción
• Adaptabilidad de la solución
– cubrir con una solución distintos problemas
particulares
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 17
28/05/2021
Introducción al modelado
• ¿Qué es un modelo?
• Enfoques de modelado
– Estructurado
– Orientado a objetos
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 18
28/05/2021
Topología de un sistema
estructurado
Topología de un sistema orientado a objetos
Modelado Estructurado vs O-O
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 19
28/05/2021
Introducción al modelado
• ¿Qué es un modelo?
• Enfoques de modelado
– Estructurado
– Orientado a objetos
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 20
28/05/2021
Modelado estructural
• El modelado estructural se ocupa de
desarrollar un modelo del diseño que
muestre la estructura dinámica; es decir,
llamadas a funciones.
• El objetivo del diseñador debe ser derivar
unidades de diseño que sean altamente
cohesivas y poco acopladas.
• En esencia, un diagrama de flujo de datos se
convierte en un diagrama de estructura.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 21
28/05/2021
Descomposición estructural
Nivel Superior
Primer Nivel de
descomposición
Segundo Nivel de
descomposición
Todo método de diseño abarca un tipo de descomposición a partir de una
descripción de alto nivel de los elementos claves del sistema, y creando
visiones a niveles inferiores para ver como las características y funciones
del sistema se acomodaran en conjunto.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 22
28/05/2021
Diseño descendente (Top-down)
• Permite abordar problemas complejos
• Descomponer el problema grande en varios
pequeños
– Módulos independientes
– Procedimientos, funciones y bloques de código
Modularidad
Función
F1
Función
F2
Procedimiento
P1
Programa
Principal
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 23
28/05/2021
Modelado Estructurado
• En análisis estructurado se utiliza la técnica
de:
– Diagrama de Flujo: para especificar procesos,
– Diagrama Entidad-Relación: para especificar
datos
– Diagramas de transición de estados: para control.
– Diagramas de contexto o de Flujo de Datos Nivel
1 para indicar arquitectura.
• Para el modelado de datos se recomienda
definir todos los objetos (entidades) y definir
sus atributos.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 24
28/05/2021
Introducción al modelado
• ¿Qué es un modelo?
• Enfoques de modelado
– Estructurado
– Orientado a objetos
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 25
28/05/2021
Modelamiento Orientado a Objetos
• Los modelos orientados a objeto describen
los sistemas de información desde un punto
de vista ontológico.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 26
28/05/2021
Descomposición O.O.
• Se descompone el sistema en un conjunto
de objetos que se comunican.
• Representación de datos y operaciones
asociadas se encapsulan en un objeto.
• Herencia, polimorfismo, sobrecarga de
operadores, enlace dinámico.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 27
28/05/2021
Ventajas y Desventajas del Modelado OO
• Ventajas
– La implementación de los objetos puede ser
cambiada sin afectar a otros objetos.
– Promueve la reutilización de componentes.
– Muchos objetos representan entidades de la
realidad por lo que es fácil entender la estructura
del sistema.
• Desventajas
– Para usar servicios se debe conocer el nombre
de la interface de otro objeto.
– Los cambios en las interfaces afectan a todos los
objetos que la usan.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 28
28/05/2021
Ejemplo de cambios de interface
Figura Geométrica
calcularArea(double par1)
Círculo
calcularArea(double par1)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 29
28/05/2021
Ejemplo de cambios de interface
Figura Geométrica
calcularArea(double par1)
Círculo
calcularArea(double par1)
Rectángulo
calcularArea(double par1)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 30
28/05/2021
Ejemplo de cambios de interface
Figura Geométrica
calcularArea(double par1,
double par2)
Círculo Rectángulo
calcularArea(double par1,
double par2)
calcularArea(double par1,
double par2)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 31
28/05/2021
Contenido
• Introducción al modelado
– Estructurado, Orientado a Objeto
• Conceptos de modelo
– Objeto, Atributos, Relaciones, Cardinalidad / multiplicidad.
• Utilidad de los modelos
– Comprender la realidad y el sistema
– Reducir la complejidad
• Principios de modelado
– Descomposición, Abstracción, Generalización / especialización
– Proyección / puntos de vista
– Uso de enfoques formales (UML)
• Herramientas de modelado
– MagicDraw
– Star UML
– Papyrus UML
– Rational Rose
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 32
28/05/2021
Conceptos de modelo
• Objeto
• Clase
• Atributos
• Métodos
• Relaciones
• Cardinalidad / multiplicidad
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 33
28/05/2021
Qué es un objeto?
• Un objeto es una abstracción de un conjunto
de cosas del mundo real de tal forma que:
– Todos los elementos del conjunto (las instancias)
tienen las mismas características.
– Todas las instancias están sujetas a y conforman
las mismas reglas.
Mundo Real Software
Abstracción
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 34
28/05/2021
Objetos
▪ Objeto = unidad atómica que encapsula
estado y comportamiento
▪ La encapsulación en un objeto permite
una alta cohesión y un bajo acoplamiento
▪ Un objeto puede caracterizar una entidad
física (coche) o abstracta (ecuación
matemática)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 35
28/05/2021
… Objetos
▪ El Modelado de Objetos permite representar el ciclo
de vida de los objetos a través de sus interacciones
▪ En UML, un objeto se representa por un rectángulo
con un nombre subrayado
Otro
Objeto
Un Objeto
Otro
Objeto
más
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 36
28/05/2021
… Objetos
▪ Ejemplo de varios objetos relacionados:
Felipe
Juan
Cuenta Corriente 101
Cuenta Corriente 114
Banco de Valencia
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 37
28/05/2021
… Objetos
▪ Objeto = Identidad + Estado + Comportamiento
▪ El estado está representado por los valores de los
atributos
▪ Un atributo toma un valor en un dominio concreto
Un coche
Azul
979 Kg
70 CV
...
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 38
28/05/2021
Qué es un objeto?
• Es una entidad tangible que muestra algún
comportamiento bien definido.
• Posee funcionalidad (operaciones que son
capaces de hacer y mensajes que son capaces
de responder).
• Características de los objetos: Identidad,
Clasificación, estado, comportamiento, herencia,
Polimorfismo (se verán más adelante).
– Estas características pueden ser usadas en forma
independiente, pero juntas se complementan.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 39
28/05/2021
Identidad
Variable Dirección
unCredito 10001324
unDebito 54647875
unaCuenta 87896545
unaCuentadeAhorros 87020486
Una tabla de símbolos
caballo
Doris
Residencia de Doris
Mi Computadora
Una bicicleta roja
cuenta bancaria
antena parabólica
Cada objeto tiene su propia identidad inherente
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 40
28/05/2021
▪ Oid (Object Identifier)
Cada objeto posee un oid. El oid establece la identidad
del objeto y tiene las siguientes características:
❖Constituye un identificador único y global para cada
objeto dentro del sistema
❖Es determinado en el momento de la creación del objeto
❖Es independiente de la localización física del objeto, es
decir, provee completa independencia de localización
Identidad
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 41
28/05/2021
❖Es independiente de las propiedades del objeto, lo cual
implica independencia de valor y de estructura
❖No cambia durante toda la vida del objeto. Además, un
oid no se reutiliza aunque el objeto deje de existir
❖No se tiene ningún control sobre los oids y su
manipulación resulta transparente
▪ Sin embargo, es preciso contar con algún medio para
hacer referencia a un objeto utilizando referencias del
dominio (valores de atributos)
… Identidad
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 42
28/05/2021
Clasificación
(1,3)
(2,2)
(2,1)
(5,2.5)
Vehículo
Punto
Figura
Animal
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 43
28/05/2021
Estado
▪ El estado evoluciona con el tiempo
▪ Algunos atributos pueden ser constantes
▪ El comportamiento agrupa las competencias de un
objeto y describe las acciones y reacciones de ese
objeto
▪ Las operaciones de un objeto son consecuencia de
un estímulo externo representado como mensaje
enviado desde otro objeto
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 44
28/05/2021
Comportamiento
▪ Ejemplo de interacción:
Otro objeto
Un objeto
Un mensaje
Operacion 1
Operacion 2
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 45
28/05/2021
… Comportamiento
▪ Los mensajes navegan por los enlaces, a
priori en ambas direcciones
▪ Estado y comportamiento están
relacionados
▪ Ejemplo: no es posible aterrizar un avión
si no está volando. Está volando como
consecuencia de haber despegado del
suelo
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 46
28/05/2021
Qué es un objeto?
• En términos de programación es una
variable.
• Un objeto es una instancia de una clase.
• Los objetos creados a partir de una clase,
tienen una estructura idéntica, pero cada
objeto puede tener valores distintos.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 47
28/05/2021
Conceptos de modelo
• Objeto
• Clase
• Atributos
• Métodos
• Relaciones
• Cardinalidad / multiplicidad
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 48
28/05/2021
❖ Una clase es una descripción de un conjunto de objetos que
comparten: atributos, operaciones, relaciones y semántica”.
❖ Una clase define los conceptos que forman parte del dominio del
problema o de la solución.
Dominio del problema:
Conceptos
Dominio de la solución:
Clases
Clase
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 49
28/05/2021
Clase
• Una clase describe un conjunto de ejemplares
(objetos) con propiedades y comportamientos
similares.
• Una clase se describe por:
– Nombre
– Interfaz (métodos, mensajes)
– Atributos (datos)
• En término de programación es un tipo de dato
definido por el usuario.
– Equivalente a un TDA. Ej: Rectangulo, Lista, Cola,
NumeroComplejo, etc.
• Las clases son las plantillas a partir de las cuales se
crean los objetos.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 50
28/05/2021
Clases
• Una clase es la descripción de un conjunto de
objetos que comparten los mismos:
– atributos (características)
– métodos (operaciones)
– relaciones
• La estructura de una clase esta compuesta de:
– Los atributos: Datos asociados a los elementos y que
toman valor al instanciar objetos de una clase.
– Las operaciones (métodos): Funciones o procesos
propios de los objetos de una clase.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 51
28/05/2021
Notación UML para clases
Identificador de la clase,
si es abstracta va en cursiva
atributos
métodos
Rectángulo
longitud
ancho
crearRectangulo
obtenerArea
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 52
28/05/2021
Clase Instancia 1 Instancia 2
Perro unPerro
Fido
Sultán
unPerro
nombre
Clases
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 53
28/05/2021
Clases y Objetos
Class Template
Objetos
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 54
28/05/2021
Conceptos de modelo
• Objeto
• Clase
• Atributos
• Métodos
• Relaciones
• Cardinalidad / multiplicidad
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 55
28/05/2021
Atributos
• Un atributo representa una propiedad que es
compartida por todos los objetos de una misma clase.
Ejemplo: Un persona tiene nombre, edad, etc.
• Los nombres de atributos son únicos dentro de una
misma clase.
• Cada atributo tiene un valor para cada instancia
• En UML:
– La primera letra de un atributo se escribe con minúscula.
– La sintaxis para los atributos en un diagrama UML de
clases es la siguiente:
• visibilidad nombre : tipo de dato
• Ejemplo: + nombre : String
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 56
28/05/2021
Clase Instancia 1 Instancia 2
atributo X valor x1 valor x2
Perro unPerro
nombre
peso
Sultán
19 libras
unPerro
Fido
9 libras
Atributos de Clases
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 57
28/05/2021
Perro
nombre
piel
peso
edad
estátus
Nombrar o identificar objetos
Describir características
Describir estados
Clases de Atributos
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 58
28/05/2021
¿Cómo encontrar atributos?
• Para encontrar atributos de una clase
preguntarse:
– Qué información necesitamos conocer sobre ese
objeto?
– Qué características necesitamos recordar en el
tiempo?
– Qué dato es importante para soportar las
responsabilidades de la clase en el sistema?
– Algunos atributos podrían ser extraídos del
análisis de los sustantivos y añadidos a la clase
apropiada.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 59
28/05/2021
Atributos
• Una entidad con estructura, comportamiento
o identidad debe ser modelado como una
clase, no como atributo de otra clase.
• Sólo considere atributos que directamente
estén relacionados a una aplicación
particular. Obtenga los atributos más
importantes primero, se adicionarán detalles
después.
• Asegúrese de dar a cada atributo un nombre
significativo.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 60
28/05/2021
Conceptos de modelo
• Objeto
• Clase
• Atributos
• Métodos
• Relaciones
• Cardinalidad / multiplicidad
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 61
28/05/2021
Métodos
• Los métodos, son los procesos que una
clase sabe cómo llevar a cabo. Ejemplo:
cambiar-dirección.
• Un objeto se caracteriza por el
comportamiento que es capaz de mostrar,
no solo por sus atributos.
• En el modelo estático, únicamente se muestra los
nombres de los métodos.
• La información de las operaciones se muestra en
el modelo dinámico.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 62
28/05/2021
Sinónimos de Método
– Operación
– Responsabilidad
– Servicio
– Función
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 63
28/05/2021
Clase Instancia 1 Instancia 2
Perro unPerro
atributo X valor x1 valor x2
nombre
peso
Sultán
19 libras
unPerro
Fido
9 libras
operación OPT OPT OPT
sentarse
girar
operaciones de
la clase
operaciones de
la clase
Métodos
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 64
28/05/2021
Métodos
• Puede ocurrir que una clase no tenga métodos.
• En UML:
– La primera letra de los nombres de los métodos se
escribe con minúscula.
– Los métodos pueden tener parámetros, y también
pueden retornar valores. La sintaxis para los
métodos en un diagrama UML de clases, es la
siguiente:
• visibilidad nombre (lista-de-parámetros): tipo-dato-a-retornar.
• Ejemplo: #addMessage (m : Message, len : Integer): Status
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 65
28/05/2021
Conceptos de modelo
• Objeto
• Clase
• Atributos
• Métodos
• Relaciones
• Cardinalidad / multiplicidad
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 66
28/05/2021
Relaciones entre Clases
▪ Las Relaciones modelan la forma en la que los
elementos estructurales se conectan entre sí.
▪ Los enlaces entre de objetos pueden representarse entre
las respectivas clases
▪ La asociación expresa una conexión bidireccional entre
objetos
▪ Una asociación es una abstracción de la relación
existente en los enlaces entre los objetos
Universidad Estudiante
Univ. de Murcia:Universidad Antonio:Estudiante
Una asociación
Un enlace
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 67
28/05/2021
Relación/Asociación
▪ Relaciones/asociaciones: Abstracciones que actúan de
unión entre los elementos.
▪ Formas de relación entre clases:
– Asociación y Agregación (vista como un caso particular de
asociación)
– Generalización/Especialización
– Dependencia y realización
Dependencia
Asociación
Generalización
Realización
Es una relación entre dos elementos, tal que un cambio en uno
puede afectar al otro.
Es una relación estructural que resume un conjunto de enlaces
que son conexiones entre objetos.
Es una relación en la que el elemento generalizado puede ser
substituido por cualquiera de los elementos hijos, ya que
comparten su estructura y comportamiento.
Es una relación que implica que la parte realizante cumple con
una serie de especificaciones propuestas por la clase realizada
(interfaces).
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 68
28/05/2021
Jerarquías de Relaciones
Avión militar Avión comercial
Avión de carga Avión de pasajeros
Motor Vendedor de billetes
Avión
1..4
1
Piloto
Reserva
n
1
Línea aérea
Vuelo
n
1
1..2
n
n
1
1
n
n
▪ Las relaciones de Agregación y Generalización forman
jerarquías de clases
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 69
28/05/2021
Una Asociación es una relación estructural fuerte, que indica que los
objetos de una clase forman parte del estado del objeto del otro extremo.
Persona Empresa
trabaja para
Asociación
Dirección del nombre
Nombre
Relación/Asociación
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 70
28/05/2021
En una asociación se puede navegar desde el objeto de una clase hasta
el objeto de la otra clase, y viceversa, si no se indica el sentido de
navegación.
Un rol es la cara que la clase de un extremo de la asociación presenta a la
clase del otro extremo
Persona Empresa
Navegabilidad
Nombre de rol
.empleado .patron
Navegabilidad de una Asociación
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 71
28/05/2021
Asociaciones circulares
• Una asociación podría ser circular si:
– Una instancia de la clase esta relacionada con otra
instancia(s) de la misma clase.
• Esta asociación se modela como una asociación que apunta
de regreso a la misma clase.
• Nombre de roles son muy útiles para clarificar esta
asociación.
Persona
*
1
trabajador
supervisor
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 72
28/05/2021
Generalización/especialización
(Herencia)
• Es un mecanismo para
compartir atributos y
métodos entre clases.
• Permite definir una clase hija
(subclase) a partir de una
clase padre (base,
superclase).
• Las subclases heredan los
atributos y métodos de las
superclases.
Mamífero
Perro Gato
Poodle
PastorAlemán
- colorOjo:String
+ getcolorOjo: String
- frecLadrido:int
+ ladrar::void
- frecMaullido:int
+maullar::void
+ esAleman::void + esFrances::void
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 73
28/05/2021
Agregación y Composición
➢ Una Agregación (relación “parte-de”) es una asociación en la que
una de las clases representa el “todo” y la/s otra/s la/s parte/s.
Puzle Pieza
Agregación
1 1..*
El todo
La parte
➢ Una Composición es una forma de agregación con una fuerte
relación de pertenencia y vida de las partes con el todo.
Banco Cuenta
1 1..*
Composición
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 74
28/05/2021
Realización y dependencia
❖ Una Realización se da entre dos elementos cuando uno de ellos
especifica un contrato y el otro garantiza que se cumple. Por
ejemplo: Una interfaz presenta una relación de realización con
la/s clase/s que la implementa/n.
❖ Una Dependencia modela una relación de uso. En una
dependencia no es necesario especificar un nombre.
Collections
<<Interface>>
Collection
.add()
addAll()
...
LinkedList
Realización
Dependencia
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 75
28/05/2021
Conceptos de modelo
• Objeto
• Clase
• Atributos
• Métodos
• Relaciones
• Cardinalidad / multiplicidad
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 76
28/05/2021
Multiplicidad/cardinalidad
➢ La Multiplicidad indica cuantos objetos de un extremo de la
asociación pueden conectarse con un objeto del otro extremo.
Sintaxis: valorMinimo..valorMaximo (por defecto es 1)
Ejemplos:1 = Uno, 0..1 = Cero o Uno, 0..* = Cero o muchos,
1..* = Uno o muchos,
0..1,3..4,6..* = Cualquier número excepto 2 y 5
Persona Empresa
Multiplicidad
.empleado .patron
1..* 0..1
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 77
28/05/2021
▪ Especificación de multiplicidad/cardinalidad
(mínima...máxima)
1 Uno y sólo uno
0..1 Cero o uno
M..N Desde M hasta N (enteros naturales)
* Cero o muchos
0..* Cero o muchos
1..* Uno o muchos (al menos uno)
▪ La multiplicidad mínima >= 1 establece una
restricción de existencia
Multiplicidad/cardinalidad
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 78
28/05/2021
A B
1
Una A siempre se asocia con una B
País Ciudad Capital
1
Vuelo Capitán
Cheque Beneficiario
1
1
Ejemplo de Multiplicidad/cardinalidad
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 79
28/05/2021
A B
1..*
Una A siempre se asocia con una o más B
Continente País
1..*
Compañía Persona
País Ciudad
1..*
1..*
Ejemplo de Multiplicidad/cardinalidad
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 80
28/05/2021
A B
0..1
Una A siempre se asocia con ninguna o con una B
Escritor Agente
0..1
Ejemplo de Multiplicidad/cardinalidad
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 81
28/05/2021
A B
*
Una A siempre se asocia con ninguna, con una o con más B
Persona Compañía
*
Ejemplo de Multiplicidad/cardinalidad
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 82
28/05/2021
Contenido
• Introducción al modelado
– Estructurado, Orientado a Objeto
• Conceptos de modelo
– Objeto, Atributos, Relaciones, Cardinalidad / multiplicidad.
• Utilidad de los modelos
– Comprender la realidad y el sistema
– Reducir la complejidad
• Principios de modelado
– Descomposición, Abstracción, Generalización / especialización
– Proyección / puntos de vista
– Uso de enfoques formales (UML)
• Herramientas de modelado
– MagicDraw
– Star UML
– Papyrus UML
– Rational Rose
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 83
28/05/2021
Utilidad del modelado
¿Por qué no escribo código
directamente?
Sería lo ideal pero ....
.... necesitamos escribir modelos,
aunque la mayoría de desarrolladores
todavía no practican el modelado
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 84
28/05/2021
Modelado de software
Construcción de Software
Ingeniería de requerimientos
Diseño
y
Arquitectura
de
Software
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 85
28/05/2021
¿Se obtienen beneficios con el
modelado?
Un coste en formación y tiempo
¿Una mejora de la productividad?
¿Una mejora de la calidad del software?
¿Por qué la mayoría de
empresas no practican el
modelado?
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 86
28/05/2021
¿Por qué se construyen modelos?
• Reducir la complejidad del sistema.
• Comunicar las ideas a otros.
• Visualización.
• Nos permite probar la entidad física antes
de construirla.
• Los modelos documentan las decisiones
que tomamos.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 87
28/05/2021
Comprensión de la realidad
• Simplificación del objeto en el mundo real,
pero que es suficientemente realista como
para dar una idea de lo que ocurrirá en la
realidad y usarse como base del
desarrollo.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 88
28/05/2021
Utilidad de los modelos
• Comprender la realidad
– Un modelo es una simplificación de la realidad
• Comprender el sistema
– Un modelo permite comprender mejore el sistema
que estamos desarrollando: sus elementos y sus
relaciones
• Reducir la complejidad
– Un modelo permite reducir la complejidad de
entender sistemas complejos en su totalidad
• Comunicar con otros
– Un modelo permite la comunicación entre los
desarrolladores y los clientes
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 89
28/05/2021
Contenido
• Introducción al modelado
– Estructurado, Orientado a Objeto
• Conceptos de modelo
– Objeto, Atributos, Relaciones, Cardinalidad / multiplicidad.
• Utilidad de los modelos
– Comprender la realidad y el sistema
– Reducir la complejidad
• Principios de modelado
– Descomposición, Abstracción, Generalización / especialización
– Proyección / puntos de vista
– Uso de enfoques formales (UML)
• Herramientas de modelado
– MagicDraw
– Star UML
– Papyrus UML
– Rational Rose
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 90
28/05/2021
Principios de modelado
• Descomposición
• Abstracción
• Generalización / especialización
• Polimorfismo
• Proyección / puntos de vista
• Uso de enfoques formales
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 91
28/05/2021
Diseño para el cambio
• ¿Qué puede cambiar?
– Algoritmos
• requerimientos de desempeño, escala
– Representación de los datos
• requerimientos de desempeño, escala
• cambios en interfaces
– equipos externos
– ambiente social
• Para reducir el impacto de los cambios:
Modularizar
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 92
28/05/2021
Descomposición
• La descomposición es un concepto de diseño que
sugiere que cualquier problema complejo puede
manejarse con más facilidad si se subdivide en
elementos susceptibles de resolverse u
optimizarse de manera independiente.
• Un problema es una característica o
comportamiento que se especifica en el modelo
de los requerimientos para el software.
• Al separar un problema en sus piezas más
pequeñas y por ello más manejables, se requiere
menos esfuerzo y tiempo para resolverlo.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 93
28/05/2021
Descomposición
• Si para dos problemas, p1 y p2, la
complejidad que se percibe para p1 es
mayor que la percibida para p2, entonces
se concluye que el esfuerzo requerido
para resolver p1 es mayor que el
necesario para resolver p2.
• Como caso general, este resultado es
intuitivamente obvio. Lleva más tiempo
resolver un problema difícil.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 94
28/05/2021
Descomposición
• También se concluye que cuando se combinan
dos problemas, con frecuencia la complejidad
percibida es mayor que la suma de la complejidad
tomada por separado.
– Esto lleva a la estrategia de divide y vencerás, pues
es más fácil resolver un problema complejo si se
divide en elementos manejables.
– Esto tiene implicaciones importantes en relación con
la modularidad del software.
• La modularidad es dividir el software en
componentes con nombres distintos y abordables
por separado, en ocasiones llamados módulos,
que se integran para satisfacer los requerimientos
del problema.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 95
28/05/2021
Descomposición: Jerarquía de módulos
• Dividir sucesivamente, obteniendo niveles
– Se formará una jerarquía de módulos
– Los de mas bajo nivel
• Resuelven problemas más pequeños y
• Contienen mas detalle
• Hasta que los módulos de nivel inferior
– Sean sumamente simples
– Y solo contengan funciones y procedimientos
– Que resuelven problemas independientes y
pequeños
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 96
28/05/2021
Descomposición
• Según el punto de vista de la descomposición, sería
posible concluir que si el software se dividiera en forma
indefinida, el esfuerzo requerido para desarrollarlo ¡sería
despreciable por pequeño!
• Desafortunadamente, hay otras fuerzas que entran en
juego y que hacen que esta conclusión sea (tristemente)
inválida.
– El esfuerzo (costo) de desarrollar un módulo
individual de software disminuye conforme aumenta
el número total de módulos
– Sin embargo, a medida que se incrementa el número
de módulos, el esfuerzo (costo) asociado con su
integración también aumenta
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 97
28/05/2021
Descomposición
Deben hacerse módulos, pero con cuidado para permanecer en
la cercanía de M. Debe evitarse hacer pocos o muchos
módulos.
Región de
costo mínimo
M
Costo
del
esfuerzo
Costo de integración
Costo total del software
Costo por módulo
Número de módulos
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 98
28/05/2021
Principios de modelado
• Descomposición
• Abstracción
• Generalización / especialización
• Polimorfismo
• Proyección / puntos de vista
• Uso de enfoques formales
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 99
28/05/2021
Abstracción
• Visión simplificada de una realidad de la
que sólo consideramos determinados
aspectos esenciales.
• Consiste en enfocarse en lo esencial.
• El propósito es limitar el universo.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 100
28/05/2021
Abstracción procedimental
• En un diseño descendente, un modulo
– Equivale a una “caja negra” y ejecuta una tarea
determinada
• Cada “caja negra” o procedimiento
– Nos interesa lo que hace, no como lo hace
– Puede conocer otras cajas negras y usarlas
• Un procedimiento/modulo ya escrito
– Se puede usar sin saber como esta escrito
– Basta con su nombre y una descripción
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 101
28/05/2021
Abstracción OO
• La intención general del modelamiento
orientado a objetos (OO) es abstraer
algunas características de sistemas
naturales complejos como son:
– Estado del objeto (Atributos).
– Comportamiento del objeto (Métodos).
– Comportamientos comunes entre objetos
relacionados.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 102
28/05/2021
Abstracción de datos
• Al analizar un problema, podemos centrarnos en:
– Los datos que vamos a necesitar y
– Las operaciones/métodos que se pueden realizar sobre los mismos
– Definirán sus TIPOS DE DATOS ABSTRACTOS o CLASES
• TDAs/Clases
– Los módulos los conocerán y usarán
– Sin interesarles como se escribieron sus operaciones/métodos
– Se pueden implementar usando estructuras de datos/clases
• Para diseñar una solución se deben desarrollar
– Algoritmos y
– TDAs/Clases
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 103
28/05/2021
Principios de modelado
• Descomposición
• Abstracción
• Generalización / especialización
• Polimorfismo
• Proyección / puntos de vista
• Uso de enfoques formales
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 104
28/05/2021
Herencia
(Generalización/especialización)
• Es un mecanismo para compartir atributos y
métodos entre clases.
• Permite definir una clase hija (subclase) a
partir de una clase padre (base, superclase).
• Las subclases heredan los atributos y
métodos de las superclases.
Superclase
Subclase
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 105
28/05/2021
• Por la herencia se forman jerarquías de
clases (superclases y subclases).
• La clase hija hereda el interfaz (con la
implementación de las operaciones) y los
atributos.
• Relación “es un”
• Permite la reutilización de código.
Herencia
(Generalización/especialización)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 106
28/05/2021
Ejemplo de Herencia
(Generalización/especialización)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 107
28/05/2021
Ejemplo de Herencia
(Generalización/especialización)
Mamífero
Perro Gato
Poodle
PastorAlemán
- colorOjo:String
+ getcolorOjo: String
- frecLadrido:int
+ ladrar::void
- frecMaullido:int
+maullar::void
+ esAleman::void + esFrances::void
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 108
28/05/2021
Herencia
(Generalización/especialización)
Auto
maxFuel
maxNroDePasajeros
modelo
velocidad
acelerar()
desacelerar()
doblarAIzq()
doblarADcha()
Avion
maxAltitud
maxFuel
maxNroDePasajeros
velocidad
nroDeMotores
acelerar()
desacelerar()
descender()
ascender()
ANTES DESPUES
Vehiculo
maxFuel
maxNroDePasajeros
velocidad
acelerar()
desacelerar()
Avion
maxAltitud
nroDeMotores
descender()
ascender()
Auto
modelo
doblarAIzq()
doblarADcha()
superclase
subclases
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 109
28/05/2021
Herencia
(Generalización/especialización)
Vehiculo
Auto Avion
public class Vehiculo {
}
public class Auto extends Vehiculo{
}
public class Avion extends Vehiculo{
}
Java
UML
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 110
28/05/2021
Herencia
(Generalización/especialización)
• Concepto de tipo: un tipo denota una interfase
particular. Ej.: Ser, Animal, Vegetal, etc.
• Un tipo es un subtipo de otro si su interfaz
contiene la interfase de su supertipo. Ej.: Animal
es un subtipo de Ser y un supertipo de Ave y
Mamifero.
• Diferencia entre los conceptos de clase e
interfase.
– El concepto de clase hace referencia a los atributos y
a las operaciones, junto con su implementación.
– El concepto de interfase hace referencia sólo a los
prototipos de las operaciones visibles.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 111
28/05/2021
Tipos de Herencia
(Generalización/especialización)
• Simple: una clase (clase hija) puede
heredar de otra clase (una clase padre).
• Múltiple: una clase (clase hija) puede
heredar de otras clases padres (tener
varias clases padres).
– No está disponible en todos los lenguajes
(disponible en C++; en Java sólo para la
herencia de interfase).
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 112
28/05/2021
Herencia Múltiple
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 113
28/05/2021
Herencia Múltiple
Problema de ambigüedad: unVehiculoAnfibio.Desplazarse();
Los lenguajes ofrecen mecanismos para deshacer la ambigüedad (en
C++ => unVehiculoAnfibio.VehiculoTerrestre::Desplazarse()).
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 114
28/05/2021
Tipos de Clases
• Clases abstractas
– No pueden ser instanciadas.
– Usadas solamente como superclases.
– Organizan características comunes a algunas clases y
especifican una interfaz común para todas sus subclases.
– Pueden tener métodos abstractos (métodos sin
implementación).
• Clases concretas o comunes
– Pueden ser instanciadas.
– Tiene un comportamiento específico.
– Implementan los métodos abstractos que heredan de las clases
abstractas.
• Clases finales
– Clases especiales que no pueden tener descendencia.
– Únicamente permiten instanciar objetos.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 115
28/05/2021
Tipos de Clases
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 116
28/05/2021
Clases Abstractas
• Su objetivo es especificar una interfase común
para todas sus subclases.
• El uso de clases abstractas puede simplificar el
modelamiento de las clases que participan en la
misma relación con otras clases.
• No siempre se pueden encontrar clases
abstractas.
• Deja sin definir una o más operaciones (sólo
declara sus prototipos – no tienen
implementación), que se definirán en subclases.
Estas operaciones se denominan operaciones
abstractas.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 117
28/05/2021
Clases Abstractas
Figura {Abstracto}
Circulo Rectangulo
public abstract class Figura {
...
}
public class Circulo extends Figura{
...
}
public class Rectangulo extends Figura{
...
}
Figura f = new Figura();
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 118
28/05/2021
Clases Abstractas
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 119
28/05/2021
Principios de modelado
• Descomposición
• Abstracción
• Generalización / especialización
• Polimorfismo
• Proyección / puntos de vista
• Uso de enfoques formales
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 120
28/05/2021
• Generalización
• Una generalización da lugar al
polimorfismo entre clases
de una jerarquía de
generalizaciones:
• Un objeto de una subclase
puede sustituir a un objeto
de la superclase en cualquier
contexto. Lo inverso no es
cierto.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 121
28/05/2021
Polimorfismo
• Significa que la misma operación/método puede
comportarse diferente en clases distintas.
• El polimorfismo está muy ligado a la herencia.
• Distintas instancias del mismo tipo interpretan el
mismo mensaje en diferentes formas.
• El polimorfismo requiere enlace dinámico
– Enlace dinámico: la llamada se resuelve en tiempo de
ejecución.
– Enlace estático: la llamada se resuelve en tiempo de
compilación
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 122
28/05/2021
Ejemplo de Polimorfismo
FiguraGeométrica
Atributo:
area
Método:
ObtenerArea
Atributos:
longitud
ancho
Métodos:
CrearRectangulo
ObtenerArea
Atributos:
radio
ancho
Métodos:
CrearCirculo
ObtenerArea
rectángulo círculo
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 123
28/05/2021
Ejemplo de Polimorfismo
método concreto
Figura f = new Rectangulo();
int s = f.obtenerArea();
método abstracto
Rectangulo
+obtenerArea()
Figura {abstracto}
+obtenerArea()
Circulo
+obtenerArea()
Método
abstracto
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 124
28/05/2021
Principios de modelado
• Descomposición
• Abstracción
• Generalización / especialización
• Polimorfismo
• Proyección / puntos de vista
• Uso de enfoques formales
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 125
28/05/2021
Proyección / puntos de vista
• Durante el desarrollo de un sistema software se requiere que
éste sea visto desde varias perspectivas.
• Diferentes usuarios miran el sistema de formas diferentes en
momentos diferentes.
• La arquitectura del sistema es clave para poder manejar estos
puntos de vista diferentes:
• Se organiza mejor a través de vistas arquitecturales
interrelacionadas.
• Proyecciones del modelo del sistema centradas en un aspecto particular.
• No se requiere una vista que contenga la semántica completa
de la aplicación. La semántica reside en el modelo.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 126
28/05/2021
Proyección / puntos de vista
Las 4 +1 Vistas Arquitecturales (Philippe Krutchen)
Vista de diseño
Vista de
implementación
Vista de
interacción
Vista de
despliegue
Vista de
casos de uso
Lógico Físico
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 127
28/05/2021
Proyección / puntos de vista
• Vista de Casos de Uso (Use Case View)
• Captura la funcionalidad del sistema tal y como es
percibido por los usuarios finales, analistas y encargados
de pruebas.
• Describe la funcionalidad en base a casos de uso.
• En esta vista no se especifica la organización real
del sistema software.
• Los diagramas que le corresponden son:
• Aspectos estáticos: diagramas de casos de uso.
• Aspectos dinámicos: diagramas de interacción, de estados y
de actividades.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 128
28/05/2021
Proyección / puntos de vista
• Vista de Diseño (Logical View)
• Captura las clases, interfaces y colaboraciones que
describen el sistema:
• En el dominio del problema
• En el dominio de la solución
• Las elementos que la forman dan soporte a los requisitos
funcionales
• del sistema.
• Los diagramas que le corresponden son:
• Aspectos estáticos: diagramas de clases y de objetos.
También son útiles los diagramas de estructura
compuesta de clases.
• Aspectos dinámicos: diagramas de interacción, de estados y
de actividades.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 129
28/05/2021
Proyección / puntos de vista
• Vista de Interacción (Process view)
• Captura el flujo de control entre las diversas partes del
sistema, incluyendo los posibles mecanismos de
concurrencia y sincronización.
• Abarca en especial requisitos no funcionales como el
rendimiento, escalabilidad y capacidad de
procesamiento.
• Los diagramas que le corresponden son los mismos que
la vista de diseño:
• Aspectos estáticos: diagramas de clases y de objetos.
• Aspectos dinámicos: diagramas de interacción, de estados y
de actividades.
• Pero atendiendo más las clases activas que controlan el
sistema y los mensajes entre ellas.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 130
28/05/2021
Proyección / puntos de vista
• Vista de Implementación (Development View)
• Captura los artefactos que se utilizan para ensamblar y poner
en producción el sistema software real.
• Define la arquitectura física del sistema
• Se centra en:
• La configuración de las distintas versiones de los archivos físicos,
• Correspondencia entre clases y ficheros de código fuente,
• Correspondencia entre componentes lógicos y artefactos físicos.
• Los diagramas que le corresponden son:
• Aspectos estáticos: diagramas de componentes (especialmente
la versión de artefactos) y de estructura compuesta.
• Aspectos dinámicos: diagramas de interacción, de estados y de
actividades.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 131
28/05/2021
Proyección / puntos de vista
• Vista de Despliegue (Physical View)
• Captura las características de instalación y ejecución del
sistema.
• Contiene los nodos y enlaces que forman la topología
hardware
• sobre la que se ejecuta el sistema software.
• Se ocupa principalmente de la distribución de las partes
que forman el sistema software real.
• Los diagramas que le corresponden son:
• Aspectos estáticos: diagramas de despliegue.
• Aspectos dinámicos: diagramas de interacción, de estados y
de actividades.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 132
28/05/2021
Proyección / puntos de vista
• Cada vista puede existir de forma independiente.
• Pero interactúan entre sí:
• Los nodos (vista de despliegue) contienen
componentes (vista de implementación).
• Dichos componentes representan la realización (software
real) de las clases, interfaces, colaboraciones y clases
activas (vistas de diseño y de interacción).
• Dichos elementos de las vistas de diseño e interacción
representan el sistema solución a los casos de uso (vista de
casos de uso) que expresan los requisitos.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 133
28/05/2021
Proyección / puntos de vista
Modelo
Funcionalidad del sistema
Estructura del sistema
(características estáticas)
Comportamiento del sistema
(características dinámicas)
captura
organizado en
•Vista de Casos de Uso (Funcionalidad)
•Vista de Diseño (Arquitectura interna)
•Vista de Interacción (Concurrencia y sincronización)
•Vista de Implementación (Arquitectura externa)
•Vista de Despliegue (Plataforma y distribución)
•Diagramas de Casos de Uso
•Diagramas de Clases
•Diagramas de Objetos
•Diagramas de Secuencia
•Diagramas de Colaboración
•Diagramas de Estado
•Diagramas de Actividad
•Diagramas de Componentes
•……
Vistas Arquitecturales Diagramas
visualizadas en
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 134
28/05/2021
Principios de modelado
• Descomposición
• Abstracción
• Generalización / especialización
• Polimorfismo
• Proyección / puntos de vista
• Uso de enfoques formales
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 135
28/05/2021
Unified Modeling Language
• Desarrollado en 1997 al fusionar las metodologías de Ivar
Jacobson, Jame Rumbaugh y Grady Booch
• Objetivo: Proveer un lenguaje común que puede ser usado
para el desarrollo de software
• Es el lenguaje estándar para modelar proyectos de
software que permite:
– Visualizar: La comunicación es a través de gráficos
– Especificar: construyendo modelos para el análisis, diseño,
implementación
– Construir: Permite la generación de código a partir de un modelo
UML, y la construcción de un modelo a partir del código (ingeniería
reversa)
– Documentar: Permite la documentación completa de todo el
sistema
• Aprobado como estándar por la OMG en 1997
• Actualmente se encuentra en la versión 2.4.1 (2012)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 136
28/05/2021
Unified Modeling Language
• Diagramas: Disponen un conjunto de elementos,
que representan el modelo desde distintas
perspectivas.
– Ingeniería directa: Es posible generar código a partir de
un modelo UML.
– Ingeniería inversa: Es posible generar un modelo UML a
partir de la implementación.
• En ambos casos se requiere mayor o menor
supervisión, en función de lo buenas que sean las
herramientas usadas.
• UML tiene nueve diagramas fundamentales,
clasificados en dos grupos, uno para modelar la
estructura estática del sistema y otro para modelar
el comportamiento dinámico.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 137
28/05/2021
Diagramas en UML
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 138
28/05/2021
Tipos de Diagramas
• Modelo Estático
– Construye y documenta los aspectos estáticos de un sistema.
– Refleja la estructura básica y estable de un sistema software.
– Crea una representación de los principales elementos del
dominio del problema
– Diagramas: Clases, Objetos, componentes y despliegue.
• Modelo Dinámico
– Crea los diagramas que muestran el comportamiento de un
sistema
– Diagramas: Casos de Uso, secuencia, colaboración, estados y
actividades
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 139
28/05/2021
Futuro de UML
• UML 2.4
• Extensiones de UML
• SysML - Systems Modeling Language (SysML, www.sysml.org)
• Generación automática de código a partir de modelos
• Model-Driven Engineering (MDE)
• Extendiendo UML mediante perfiles
• MARTE – Modeling and Analysis of Real-Time Embedded Systems
• Entornos avanzados basados en metamodelado
• Eclipse Modeling Framework (EMF)
• Modelado y generación de código en dominios específicos
• Domain-Specific Modeling (DSM, www.dsmforum.org)
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 140
28/05/2021
UML tiene tres bloques básicos de construcción, elementos,
relaciones y diagramas.
Elementos: Unidades básicas de construcción, cuatro tipos:
Estructurales: Partes estáticas de los modelos,
representan aspectos conceptuales o materiales.
De comportamiento: Partes dinámicas de los modelos,
representan comportamientos en el tiempo y espacio.
De agrupación: Partes organizativas de los modelos.
De Notación: Partes explicativas de los modelos.
Notación UML
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 141
28/05/2021
Elementos estructurales:
Clase
Clase activa
Describe un conjunto de objetos que comparten los
mismos atributos, métodos, relaciones y semántica.
Las clases implementan una o más interfaces.
Se trata de una clase, en la que existe procesos o hilos
de ejecución concurrentes con otros elementos. Las
líneas del contorno son más gruesas que en la clase
“normal”.
Notación UML
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 142
28/05/2021
Agrupación de métodos u operaciones que especifican
un servicio de una clase o componente, describiendo su
comportamiento, completo o parcial, externamente visible.
UML permite emplear un círculo para representar las
interfaces, aunque lo más normal es emplear la clase con
el nombre en cursiva.
Define una interacción entre elementos que cooperan
para proporcionar un comportamiento mayor que la
suma de los comportamientos de sus elementos.
Elementos estructurales:
Notación UML
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 143
28/05/2021
Describe un conjunto de secuencias de acciones que un
sistema ejecuta, para producir un resultado observable
de interés. Se emplea para estructurar los aspectos de
comportamiento de un modelo.
Parte física y por tanto reemplazable de un modelo, que
agrupa un conjunto de interfaces, archivos de código fuente,
clases, colaboraciones y proporciona la implementación de
dichos elementos.
Elemento físico que existe en tiempo de ejecución y
representa un recurso computacional con capacidad de
procesar.
Elementos estructurales:
Notación UML
Componente
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 144
28/05/2021
Elementos de comportamiento:
Comprende un conjunto de mensajes que se intercambian
entre un conjunto de objetos, para cumplir un objetivo
especifico.
Especifica la secuencia de estados por los que pasa un
objeto o una interacción, en respuesta a eventos.
Notación UML
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 145
28/05/2021
Elementos de agrupación:
Se emplea para organizar otros elementos en grupos.
Elementos de notación:
Partes explicativa de UML, que puede describir
textualmente cualquier aspecto del modelo.
Notación UML
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 146
28/05/2021
Relaciones: Abstracciones que actúan de unión entre los
elementos.
Dependencia
Asociación
Generalización
Realización
Es una relación entre dos elementos, tal que un cambio en uno
puede afectar al otro.
Es una relación estructural que resume un conjunto de enlaces
que son conexiones entre objetos.
Es una relación en la que el elemento generalizado puede ser
substituido por cualquiera de los elementos hijos, ya que
comparten su estructura y comportamiento.
Es una relación que implica que la parte realizante cumple con
una serie de especificaciones propuestas por la clase realizada
(interfaces).
Notación UML
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 147
28/05/2021
Modelos en UML
• Modelado de Casos de Uso
– Diagrama de Casos de Uso
• Modelado Estructural
– Diagrama de Clases
• Modelado de Comportamiento
– Diagramas de Interacción: Secuencia y Comunicación
– Diagramas de Estados
• Modelado de flujos de actividades (p.e. Modelo del Negocio)
– Diagramas de actividades
• Modelado Implementación
– Diagrama de Componentes
• Modelado de Despliegue
– Diagramas de Artefactos
– Diagramas de Despliegue
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 148
28/05/2021
Modelo
Casos de Usos
Teleoperador Participante
Realizar puja ordinaria
Cancelar puja ordinaria
Rechazar adjudicación
Pujador
Anular anuncio de subasta
Anular edición de subasta
Crear edición de subasta
Administrador
Cerrar edición de subasta
Realizar pago de subasta ordinaria
Notif icar adjudicatario
Sistema
Diagrama de
casos de uso
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 149
28/05/2021
Modelos en UML
• Modelado de Casos de Uso
– Diagrama de Casos de Uso
• Modelado Estructural
– Diagrama de Clases
• Modelado de Comportamiento
– Diagramas de Interacción: Secuencia y Comunicación
– Diagramas de Estados
• Modelado de flujos de actividades (p.e. Modelo del Negocio)
– Diagramas de actividades
• Modelado Implementación
– Diagrama de Componentes
• Modelado de Despliegue
– Diagramas de Artefactos
– Diagramas de Despliegue
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 150
28/05/2021
Modelado estructural
• Se describen los tipos de objetos de un sistema
y las relaciones estáticas que existen entre
ellos.
– Clases
– Interfaces
– Relaciones de dependencia, realización, generalización
y asociación (agregación, composición)
– También pueden incluir paquetes.
• Un diagrama de clase es una representación
gráfica de un modelo estructural.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 151
28/05/2021
Modelado estructural
• Diferentes perspectivas.
• Modelado Conceptual
– Conceptos del dominio del problema: atributos, restricciones
y relaciones entre ellos.
• Modelo del Análisis
– Clases que corresponden a conceptos del dominio
– Atributos y métodos
• Modelo de Diseño
– Incluye clases que corresponden a decisiones del diseño
• Modelo de Implementación
– Clases que corresponden a un lenguaje de programación
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 152
28/05/2021
Modelo
Conceptual Diagrama
de clases
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 153
28/05/2021
Modelo
Análisis
Diagrama
de clases
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 154
28/05/2021
Cuenta Domiciliacion
0..n
1
Ahorro Corriente
1 0..n
Operacion
Periodica
IteradorCuenta Modelo de
diseño
Diagrama
de clases
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 155
28/05/2021
Modelos en UML
• Modelado de Casos de Uso
– Diagrama de Casos de Uso
• Modelado Estructural
– Diagrama de Clases
• Modelado de Comportamiento
– Diagramas de Interacción: Secuencia y Comunicación
– Diagramas de Estados
• Modelado de flujos de actividades (p.e. Modelo del Negocio)
– Diagramas de actividades
• Modelado Implementación
– Diagrama de Componentes
• Modelado de Despliegue
– Diagramas de Artefactos
– Diagramas de Despliegue
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 156
28/05/2021
c:Cliente
:Transaccion
p:ProxyODBC
<<create>>
establecerAcciones
establecerValores
exito
<<destroy>>
establecerValores
tiempo
Línea de vida
Foco de
control
Modelo de
Comportamiento
Diagrama de
secuencia
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 157
28/05/2021
Modelo de
Comportamiento
: Sistema
as :
AnuncioSubasta
pujas :
PujaOrdinaria
adj :
Adjudicacion
: ArticuloConcreto
Se crean tantas adjudicaciones
como pujas ganadoras haya.
Cada adjudicación se asocia
con un ArticuloConcreto, una
puja adjudicataria y con la
subasta.
:
ControladorAnuncios
Se recorre la colección de
pujas obteniendo las pujas
ganadoras (consideramos
que la colección está
ordenada de mayor a menor
valor de puja).
adjudicaciones :
Adjudicacion
: EdicionSubasta
int numAjudicaciones =
Minimo(pujas.length(),
articulos.length());
: AnuncioSubasta
5. numAdjs = calcularAdjudicaciones()
1. cerrarEdicionSubasta(es)
6. [1..numAdjs]* pg := get()
8. [1..numAdjs]* adj := crear(as, pg, a)
7. [1..numAdjs]* a:= get()
9. [1..numAdjs]* add(adj)
2. cerrar()
4. * cerrar()
3. * as := get()
Diagrama de
comunicación
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 158
28/05/2021
Espera Venta Introduccion
Productos
Espera
Pago
introducirProducto
introducirProducto
Terminar Venta
Autorizacion
Pago
efectuar Pago Efectivo
efectuar Pago Tarjeta
manejarRespuesta
Diagrama
de estado
Modelo de
Comportamiento
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 159
28/05/2021
Modelos en UML
• Modelado de Casos de Uso
– Diagrama de Casos de Uso
• Modelado Estructural
– Diagrama de Clases
• Modelado de Comportamiento
– Diagramas de Interacción: Secuencia y Comunicación
– Diagramas de Estados
• Modelado de flujos de actividades (p.e. Modelo del Negocio)
– Diagramas de actividades
• Modelado Implementación
– Diagrama de Componentes
• Modelado de Despliegue
– Diagramas de Artefactos
– Diagramas de Despliegue
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 160
28/05/2021
Modelo del
Negocio
Diagrama de
actividades
Gestión de fondosbibliotecarios
Director Bibliotecario Usuario
Catalogar
nuevo libro
Registrar
préstamo
Leer libro
Registrar
devolución
[libro OK]
Retirar
libro
[libro deteriorado]
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 161
28/05/2021
Modelos en UML
• Modelado de Casos de Uso
– Diagrama de Casos de Uso
• Modelado Estructural
– Diagrama de Clases
• Modelado de Comportamiento
– Diagramas de Interacción: Secuencia y Comunicación
– Diagramas de Estados
• Modelado de flujos de actividades (p.e. Modelo del Negocio)
– Diagramas de actividades
• Modelado Implementación
– Diagrama de Componentes
• Modelado de Despliegue
– Diagramas de Artefactos
– Diagramas de Despliegue
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 162
28/05/2021
Diagrama de
componentes
Modelo de
implementación
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 163
28/05/2021
Modelos en UML
• Modelado de Casos de Uso
– Diagrama de Casos de Uso
• Modelado Estructural
– Diagrama de Clases
• Modelado de Comportamiento
– Diagramas de Interacción: Secuencia y Comunicación
– Diagramas de Estados
• Modelado de flujos de actividades (p.e. Modelo del Negocio)
– Diagramas de actividades
• Modelado Implementación
– Diagrama de Componentes
• Modelado de Despliegue
– Diagramas de Artefactos
– Diagramas de Despliegue
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 164
28/05/2021
hola.java
hola.html
hola.jpg
<<artifact>>
HolaMundo.class
HolaMundo
<<manifest>>
<<manifest>>
Modelo de
Despliegue
Diagrama de
artefactos
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 165
28/05/2021
Modelo de
Despliegue Diagrama de
despliegue
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 166
28/05/2021
Contenido
• Introducción al modelado
– Estructurado, Orientado a Objeto
• Conceptos de modelo
– Objeto, Atributos, Relaciones, Cardinalidad / multiplicidad.
• Utilidad de los modelos
– Comprender la realidad y el sistema
– Reducir la complejidad
• Principios de modelado
– Descomposición, Abstracción, Generalización / especialización
– Proyección / puntos de vista
– Uso de enfoques formales (UML)
• Herramientas de modelado
– MagicDraw
– Star UML
– Papyrus UML
– Rational Rose
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 167
28/05/2021
Herramienta MagicDraw UML
Es una herramienta CASE desarrollada por No Magic.
La herramienta es compatible con el estándar UML 2.3,
desarrollo de código para diversos lenguajes de
programación (Java, C++ y C#, entre otros) así como
para modelar datos
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 168
28/05/2021
Herramienta StarUML
StarUML es una herramienta UML de MKLab. El
software se licencia bajo una versión modificada de GNU
GPL hasta 2014, cuando se lanzó una versión 2.0.0
reescrita para pruebas beta bajo una licencia
propietaria.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 169
28/05/2021
Herramienta Papyrus UML
Es una herramienta UML 2 de código abierto basada en Eclipse
y bajo licencia EPL. Papyrus se puede utilizar como herramienta
independiente o como complemento de Eclipse. Proporciona
soporte para lenguajes específicos de dominio y SysML.
Papyrus está diseñado para ser fácilmente extensible ya que se
basa en el principio de los perfiles UML.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 170
28/05/2021
Herramienta Rational Rose
La aplicación IBM® Rational Rose® es una
herramienta de desarrollo y modelado de
componentes gráficos que utiliza el Lenguaje
unificado de modelado (UML) estándar del sector.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 171
28/05/2021
Herramienta diagrams.net
diagrams.net es un software de diagramas en línea
gratuito para hacer diagramas de flujo, diagramas de
procesos, organigramas, UML, ER y diagramas de
red.
Modelamiento de Software Carrera de Software
Ph.D. Franklin Parrales 172
28/05/2021
Fundamentos de
modelado
Unidad 1
Final de la unidad

Más contenido relacionado

La actualidad más candente

Cuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de softwareCuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de softwarepaoaboytes
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareJahiro Bojorquez
 
Tabla comparativa- metodologías de desarrollo
Tabla comparativa-  metodologías de desarrolloTabla comparativa-  metodologías de desarrollo
Tabla comparativa- metodologías de desarrolloitsarellano
 
Tm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareTm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareJulio Pari
 
fundamentos teoricos ingenieria de softwaare
fundamentos teoricos ingenieria de softwaarefundamentos teoricos ingenieria de softwaare
fundamentos teoricos ingenieria de softwaareLuz
 
Analisis y especificacion de requerimientos
Analisis y especificacion de requerimientosAnalisis y especificacion de requerimientos
Analisis y especificacion de requerimientosUPTP
 
Ingeniería del Software de Gestión. Tema 4
Ingeniería del Software de Gestión. Tema 4Ingeniería del Software de Gestión. Tema 4
Ingeniería del Software de Gestión. Tema 4Enrique Barreiro
 
metodologia de prototipos
metodologia de prototiposmetodologia de prototipos
metodologia de prototiposKeiner Valerio
 
Metodologia orientada a objetos
Metodologia orientada a objetosMetodologia orientada a objetos
Metodologia orientada a objetosMariana Rodríguez
 
IDR Unidad 2: Elicitación de requerimientos
IDR Unidad 2: Elicitación de requerimientosIDR Unidad 2: Elicitación de requerimientos
IDR Unidad 2: Elicitación de requerimientosFranklin Parrales Bravo
 
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWAREPSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWAREFranklin Parrales Bravo
 
Requerimiento funcional y no funcional
Requerimiento funcional y no funcional Requerimiento funcional y no funcional
Requerimiento funcional y no funcional CristobalFicaV
 

La actualidad más candente (20)

Plan desarrollo software
Plan desarrollo softwarePlan desarrollo software
Plan desarrollo software
 
Cuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de softwareCuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de software
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de software
 
Tabla comparativa- metodologías de desarrollo
Tabla comparativa-  metodologías de desarrolloTabla comparativa-  metodologías de desarrollo
Tabla comparativa- metodologías de desarrollo
 
PSW Unidad 1 PROCESO DE SOFTWARE
PSW Unidad 1 PROCESO DE SOFTWAREPSW Unidad 1 PROCESO DE SOFTWARE
PSW Unidad 1 PROCESO DE SOFTWARE
 
Tm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de softwareTm01 el modelado en el desarrollo de software
Tm01 el modelado en el desarrollo de software
 
fundamentos teoricos ingenieria de softwaare
fundamentos teoricos ingenieria de softwaarefundamentos teoricos ingenieria de softwaare
fundamentos teoricos ingenieria de softwaare
 
Analisis y especificacion de requerimientos
Analisis y especificacion de requerimientosAnalisis y especificacion de requerimientos
Analisis y especificacion de requerimientos
 
Metodologia Incremental
Metodologia IncrementalMetodologia Incremental
Metodologia Incremental
 
Arquitectura fisica y logica
Arquitectura fisica y logicaArquitectura fisica y logica
Arquitectura fisica y logica
 
Modelo evolutivo
Modelo evolutivoModelo evolutivo
Modelo evolutivo
 
Ingeniería del Software de Gestión. Tema 4
Ingeniería del Software de Gestión. Tema 4Ingeniería del Software de Gestión. Tema 4
Ingeniería del Software de Gestión. Tema 4
 
Diseño Estructurado
Diseño EstructuradoDiseño Estructurado
Diseño Estructurado
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
metodologia de prototipos
metodologia de prototiposmetodologia de prototipos
metodologia de prototipos
 
Metodologia orientada a objetos
Metodologia orientada a objetosMetodologia orientada a objetos
Metodologia orientada a objetos
 
IDR Unidad 2: Elicitación de requerimientos
IDR Unidad 2: Elicitación de requerimientosIDR Unidad 2: Elicitación de requerimientos
IDR Unidad 2: Elicitación de requerimientos
 
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWAREPSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
 
Requerimiento funcional y no funcional
Requerimiento funcional y no funcional Requerimiento funcional y no funcional
Requerimiento funcional y no funcional
 
Antecedentes MSF
Antecedentes MSFAntecedentes MSF
Antecedentes MSF
 

Similar a MOD Unidad 1: Fundamentos de modelado

1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseñolandeta_p
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosFranklin Parrales Bravo
 
IIS Unidad 3B Proceso de desarrollo de software
IIS Unidad 3B Proceso de desarrollo de softwareIIS Unidad 3B Proceso de desarrollo de software
IIS Unidad 3B Proceso de desarrollo de softwareFranklin Parrales Bravo
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetosjose_rob
 
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTEPRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTECAMILO
 
Contex taller de modelamiento de sw
Contex taller de modelamiento de swContex taller de modelamiento de sw
Contex taller de modelamiento de swDante PACHA APAZA
 
Contex taller de modelamiento de sw
Contex taller de modelamiento de swContex taller de modelamiento de sw
Contex taller de modelamiento de swDante PACHA APAZA
 
Presentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CostePresentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CosteCAMILO
 
Proyecto de Software y Coste
Proyecto de Software y CosteProyecto de Software y Coste
Proyecto de Software y CosteCAMILO
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSCAMILO
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoCAMILO
 
presentacion de software y estimacion de doste
presentacion de software y estimacion de dostepresentacion de software y estimacion de doste
presentacion de software y estimacion de dosteCAMILO
 
Proyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteProyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteCAMILO
 
Refactorización de Aplicaciones Orientadas a Objetos a Aspectos
Refactorización de Aplicaciones Orientadas a Objetos a AspectosRefactorización de Aplicaciones Orientadas a Objetos a Aspectos
Refactorización de Aplicaciones Orientadas a Objetos a AspectosJuan Carlos Olivares Rojas
 
Metodologias De Analisis Y Diseño De Sistemas
Metodologias De Analisis Y Diseño De SistemasMetodologias De Analisis Y Diseño De Sistemas
Metodologias De Analisis Y Diseño De Sistemasgrupo7inf162
 

Similar a MOD Unidad 1: Fundamentos de modelado (20)

1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelos
 
IIS Unidad 3B Proceso de desarrollo de software
IIS Unidad 3B Proceso de desarrollo de softwareIIS Unidad 3B Proceso de desarrollo de software
IIS Unidad 3B Proceso de desarrollo de software
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTEPRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
 
8.conceptos de diseño
8.conceptos de diseño8.conceptos de diseño
8.conceptos de diseño
 
Contex taller de modelamiento de sw
Contex taller de modelamiento de swContex taller de modelamiento de sw
Contex taller de modelamiento de sw
 
Contex taller de modelamiento de sw
Contex taller de modelamiento de swContex taller de modelamiento de sw
Contex taller de modelamiento de sw
 
Presentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CostePresentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de Coste
 
Proyecto de Software y Coste
Proyecto de Software y CosteProyecto de Software y Coste
Proyecto de Software y Coste
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOS
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de Costo
 
presentacion de software y estimacion de doste
presentacion de software y estimacion de dostepresentacion de software y estimacion de doste
presentacion de software y estimacion de doste
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
UML
UMLUML
UML
 
Proyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteProyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de Coste
 
Refactorización de Aplicaciones Orientadas a Objetos a Aspectos
Refactorización de Aplicaciones Orientadas a Objetos a AspectosRefactorización de Aplicaciones Orientadas a Objetos a Aspectos
Refactorización de Aplicaciones Orientadas a Objetos a Aspectos
 
Unidad 3 elaboracion de un proyecto (3)
Unidad  3   elaboracion de un proyecto (3)Unidad  3   elaboracion de un proyecto (3)
Unidad 3 elaboracion de un proyecto (3)
 
Juan velasquez
Juan velasquezJuan velasquez
Juan velasquez
 
Metodologias De Analisis Y Diseño De Sistemas
Metodologias De Analisis Y Diseño De SistemasMetodologias De Analisis Y Diseño De Sistemas
Metodologias De Analisis Y Diseño De Sistemas
 

Más de Franklin Parrales Bravo

Presentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaPresentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaFranklin Parrales Bravo
 
IW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebIW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebFranklin Parrales Bravo
 
IW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaIW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaFranklin Parrales Bravo
 
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebIW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebFranklin Parrales Bravo
 
AD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaAD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaFranklin Parrales Bravo
 
AD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasAD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasFranklin Parrales Bravo
 
EP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosEP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosFranklin Parrales Bravo
 
AD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosAD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosFranklin Parrales Bravo
 
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosAD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosFranklin Parrales Bravo
 
EP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosEP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosFranklin Parrales Bravo
 
EP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraEP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraFranklin Parrales Bravo
 
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareGCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareFranklin Parrales Bravo
 
GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software Franklin Parrales Bravo
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosFranklin Parrales Bravo
 
POO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosPOO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosFranklin Parrales Bravo
 
POO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosPOO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosFranklin Parrales Bravo
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosFranklin Parrales Bravo
 
RD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoRD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoFranklin Parrales Bravo
 
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4Franklin Parrales Bravo
 

Más de Franklin Parrales Bravo (20)

Presentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaPresentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en Cuenca
 
IW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebIW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería Web
 
IW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaIW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicua
 
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modeladoMOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
 
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebIW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
 
AD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaAD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuida
 
AD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasAD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidas
 
EP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosEP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgos
 
AD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosAD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidos
 
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosAD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
 
EP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosEP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectos
 
EP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraEP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestra
 
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareGCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
 
GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivos
 
POO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosPOO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilos
 
POO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosPOO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a Objetos
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a Objetos
 
RD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoRD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y Enrutamiento
 
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
 

Último

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfJonathanCovena1
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...JAVIER SOLIS NOYOLA
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdfDemetrio Ccesa Rayme
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesMarisolMartinez707897
 
Ensayo Paes competencia matematicas 2 Preuniversitario
Ensayo Paes competencia matematicas 2 PreuniversitarioEnsayo Paes competencia matematicas 2 Preuniversitario
Ensayo Paes competencia matematicas 2 Preuniversitariolucianosaldivia3
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxiemerc2024
 
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptxPLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptxCamuchaCrdovaAlonso
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfapunteshistoriamarmo
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuelabeltranponce75
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primariaWilian24
 
UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...
UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...
UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...rosalindatellodelagu
 
LA JUNGLA DE COLORES.pptx Cuento de animales
LA JUNGLA DE COLORES.pptx  Cuento de animalesLA JUNGLA DE COLORES.pptx  Cuento de animales
LA JUNGLA DE COLORES.pptx Cuento de animalesanllamas
 
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptxAEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptxhenarfdez
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 

Último (20)

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
Ensayo Paes competencia matematicas 2 Preuniversitario
Ensayo Paes competencia matematicas 2 PreuniversitarioEnsayo Paes competencia matematicas 2 Preuniversitario
Ensayo Paes competencia matematicas 2 Preuniversitario
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptxPLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...
UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...
UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...
 
LA JUNGLA DE COLORES.pptx Cuento de animales
LA JUNGLA DE COLORES.pptx  Cuento de animalesLA JUNGLA DE COLORES.pptx  Cuento de animales
LA JUNGLA DE COLORES.pptx Cuento de animales
 
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptxAEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 

MOD Unidad 1: Fundamentos de modelado

  • 1. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 1 28/05/2021 Fundamentos de modelado Unidad 1 Material docente compilado por el docente Ph.D. Franklin Parrales Bravo para uso de los cursos de Modelamiento de Software
  • 2. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 2 28/05/2021 Objetivo general de la Unidad 1 Comprender la importancia del modelado de software mediante el uso de técnicas para el diseño de software.
  • 3. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 3 28/05/2021 Contenido • Introducción al modelado – Estructurado, Orientado a Objeto • Conceptos de modelo – Objeto, Atributos, Relaciones, Cardinalidad / multiplicidad. • Utilidad de los modelos – Comprender la realidad y el sistema – Reducir la complejidad • Principios de modelado – Descomposición, Abstracción, Generalización / especialización – Proyección / puntos de vista – Uso de enfoques formales (UML) • Herramientas de modelado – MagicDraw – Star UML – Papyrus UML – Rational Rose
  • 4. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 4 28/05/2021 Introducción al modelado • ¿Qué es un modelo? • Enfoques de modelado – Estructurado – Orientado a objetos
  • 5. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 5 28/05/2021 ¿Qué es un modelo? • Un modelo es una abstracción que se construye para entender y resolver problemas.
  • 6. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 6 28/05/2021 ¿Qué es un modelo software? Es una descripción de un aspecto del sistema, escrita en un lenguaje bien definido.
  • 7. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 7 28/05/2021 El modelado. • Simplificación del objeto en el mundo real, pero que es suficientemente realista como para dar una idea de lo que ocurrirá en la realidad y usarse como base del desarrollo. • Es la primera fase creativa del desarrollo de proyectos. Se compone de lo qué es análisis y diseño. • El modelado parte de lo que es la Ingeniería de Requerimientos y devuelve un modelo que puede ser construido (implantable a través de lenguajes de programación).
  • 8. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 8 28/05/2021 Modelado • ¿Qué es un modelo? – Un modelo es una representación de la realidad. No sólo se modela software sino prácticamente cualquier actividad. • ¿Para qué se modela? – Para resolver un problema más fácilmente
  • 9. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 9 28/05/2021 Importancia del Modelado • Casi el 80% de los proyectos de software fallan. • Nadie construye una casa sin un plano. • Actualmente existen muchas herramientas que auxilian el proceso de modelado como Visio, ArgoUML, Rational Rose, Together, etc.
  • 10. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 10 28/05/2021 Modelado • Los modelos deben ser más baratos que la realidad. • Es más fácil para una persona entender un diagrama que las líneas de código fuente de un programa. • Elaborar los diagramas, al igual que codificar, consumen tiempo. • Se deben construir modelos que sean representativos para que sean útiles (imaginense hacer un documento de 100 hojas que nadie va a leeer)
  • 11. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 11 28/05/2021 Modelado: Preguntas • ¿Cuántos diagramas debo crear? – No existe una respuesta específica. • ¿Debo hacer diagramas de todo tipo? – No, sólo se deben utilizar los diagramas que mejor reflejen el modelado de la problemática. • ¿Qué tan grande debe de ser un diagrama? – Entre más grande sea un diagrama mayor es la confusión. – Se deben realizar diagramas bien detallados, pero no tan detallados. • ¿Cuánto texto debe complementar el modelo? – Entre menos texto mejor, son como los comentarios del código fuente: deben ser pocos pero claros.
  • 12. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 12 28/05/2021 Modelado: Recomendaciones • Algunas recomendaciones para el modelado de software son: – No tenga a los programadores esperando los modelos. – Trabajar de una macrovista a una microvista (enfoque Top-Down). – Se debe documentar en forma económica. – Si es obvio no se debe de modelar. – Hacer hincapié en la especialización. – Utilizar patrones de diseño. – Rediseñar. El rediseño es una técnica de reorganización que simplifica el diseño (o código) de un componente sin cambiar su función o comportamiento.
  • 13. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 13 28/05/2021 Rediseño • Es el proceso de cambiar un sistema de software en forma tal que no se altera el comportamiento externo del diseño, pero sí se mejora su estructura interna. • Se examina el diseño existente en busca de redundancias, elementos de diseño no utilizados, algoritmos ineficientes o innecesarios, estructuras de datos mal construidas o inapropiadas y cualquier otra falla del diseño que pueda corregirse para obtener un diseño mejor.
  • 14. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 14 28/05/2021 Rediseño • Por ejemplo, una primera iteración de diseño tal vez genere un componente con poca cohesión (realiza tres funciones que tienen poca relación entre sí). • Después de un análisis cuidadoso, se decide rediseñar el componente en tres componentes separados, cada uno con mucha cohesión. • El resultado será un software más fácil de integrar, de probar y de mantener.
  • 15. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 15 28/05/2021 Reducir Complejidad (1) 10 9 8 7 6 5 4 3 2 1 20 25 30 35 Complejidad del Diseño del Sistema Faltas por mil lineas de código
  • 16. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 16 28/05/2021 Reducir Complejidad (2) • Generalidad de la solución – con menos componentes más simples resolver el problema – nivel de abstracción • Adaptabilidad de la solución – cubrir con una solución distintos problemas particulares
  • 17. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 17 28/05/2021 Introducción al modelado • ¿Qué es un modelo? • Enfoques de modelado – Estructurado – Orientado a objetos
  • 18. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 18 28/05/2021 Topología de un sistema estructurado Topología de un sistema orientado a objetos Modelado Estructurado vs O-O
  • 19. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 19 28/05/2021 Introducción al modelado • ¿Qué es un modelo? • Enfoques de modelado – Estructurado – Orientado a objetos
  • 20. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 20 28/05/2021 Modelado estructural • El modelado estructural se ocupa de desarrollar un modelo del diseño que muestre la estructura dinámica; es decir, llamadas a funciones. • El objetivo del diseñador debe ser derivar unidades de diseño que sean altamente cohesivas y poco acopladas. • En esencia, un diagrama de flujo de datos se convierte en un diagrama de estructura.
  • 21. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 21 28/05/2021 Descomposición estructural Nivel Superior Primer Nivel de descomposición Segundo Nivel de descomposición Todo método de diseño abarca un tipo de descomposición a partir de una descripción de alto nivel de los elementos claves del sistema, y creando visiones a niveles inferiores para ver como las características y funciones del sistema se acomodaran en conjunto.
  • 22. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 22 28/05/2021 Diseño descendente (Top-down) • Permite abordar problemas complejos • Descomponer el problema grande en varios pequeños – Módulos independientes – Procedimientos, funciones y bloques de código Modularidad Función F1 Función F2 Procedimiento P1 Programa Principal
  • 23. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 23 28/05/2021 Modelado Estructurado • En análisis estructurado se utiliza la técnica de: – Diagrama de Flujo: para especificar procesos, – Diagrama Entidad-Relación: para especificar datos – Diagramas de transición de estados: para control. – Diagramas de contexto o de Flujo de Datos Nivel 1 para indicar arquitectura. • Para el modelado de datos se recomienda definir todos los objetos (entidades) y definir sus atributos.
  • 24. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 24 28/05/2021 Introducción al modelado • ¿Qué es un modelo? • Enfoques de modelado – Estructurado – Orientado a objetos
  • 25. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 25 28/05/2021 Modelamiento Orientado a Objetos • Los modelos orientados a objeto describen los sistemas de información desde un punto de vista ontológico.
  • 26. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 26 28/05/2021 Descomposición O.O. • Se descompone el sistema en un conjunto de objetos que se comunican. • Representación de datos y operaciones asociadas se encapsulan en un objeto. • Herencia, polimorfismo, sobrecarga de operadores, enlace dinámico.
  • 27. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 27 28/05/2021 Ventajas y Desventajas del Modelado OO • Ventajas – La implementación de los objetos puede ser cambiada sin afectar a otros objetos. – Promueve la reutilización de componentes. – Muchos objetos representan entidades de la realidad por lo que es fácil entender la estructura del sistema. • Desventajas – Para usar servicios se debe conocer el nombre de la interface de otro objeto. – Los cambios en las interfaces afectan a todos los objetos que la usan.
  • 28. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 28 28/05/2021 Ejemplo de cambios de interface Figura Geométrica calcularArea(double par1) Círculo calcularArea(double par1)
  • 29. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 29 28/05/2021 Ejemplo de cambios de interface Figura Geométrica calcularArea(double par1) Círculo calcularArea(double par1) Rectángulo calcularArea(double par1)
  • 30. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 30 28/05/2021 Ejemplo de cambios de interface Figura Geométrica calcularArea(double par1, double par2) Círculo Rectángulo calcularArea(double par1, double par2) calcularArea(double par1, double par2)
  • 31. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 31 28/05/2021 Contenido • Introducción al modelado – Estructurado, Orientado a Objeto • Conceptos de modelo – Objeto, Atributos, Relaciones, Cardinalidad / multiplicidad. • Utilidad de los modelos – Comprender la realidad y el sistema – Reducir la complejidad • Principios de modelado – Descomposición, Abstracción, Generalización / especialización – Proyección / puntos de vista – Uso de enfoques formales (UML) • Herramientas de modelado – MagicDraw – Star UML – Papyrus UML – Rational Rose
  • 32. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 32 28/05/2021 Conceptos de modelo • Objeto • Clase • Atributos • Métodos • Relaciones • Cardinalidad / multiplicidad
  • 33. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 33 28/05/2021 Qué es un objeto? • Un objeto es una abstracción de un conjunto de cosas del mundo real de tal forma que: – Todos los elementos del conjunto (las instancias) tienen las mismas características. – Todas las instancias están sujetas a y conforman las mismas reglas. Mundo Real Software Abstracción
  • 34. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 34 28/05/2021 Objetos ▪ Objeto = unidad atómica que encapsula estado y comportamiento ▪ La encapsulación en un objeto permite una alta cohesión y un bajo acoplamiento ▪ Un objeto puede caracterizar una entidad física (coche) o abstracta (ecuación matemática)
  • 35. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 35 28/05/2021 … Objetos ▪ El Modelado de Objetos permite representar el ciclo de vida de los objetos a través de sus interacciones ▪ En UML, un objeto se representa por un rectángulo con un nombre subrayado Otro Objeto Un Objeto Otro Objeto más
  • 36. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 36 28/05/2021 … Objetos ▪ Ejemplo de varios objetos relacionados: Felipe Juan Cuenta Corriente 101 Cuenta Corriente 114 Banco de Valencia
  • 37. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 37 28/05/2021 … Objetos ▪ Objeto = Identidad + Estado + Comportamiento ▪ El estado está representado por los valores de los atributos ▪ Un atributo toma un valor en un dominio concreto Un coche Azul 979 Kg 70 CV ...
  • 38. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 38 28/05/2021 Qué es un objeto? • Es una entidad tangible que muestra algún comportamiento bien definido. • Posee funcionalidad (operaciones que son capaces de hacer y mensajes que son capaces de responder). • Características de los objetos: Identidad, Clasificación, estado, comportamiento, herencia, Polimorfismo (se verán más adelante). – Estas características pueden ser usadas en forma independiente, pero juntas se complementan.
  • 39. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 39 28/05/2021 Identidad Variable Dirección unCredito 10001324 unDebito 54647875 unaCuenta 87896545 unaCuentadeAhorros 87020486 Una tabla de símbolos caballo Doris Residencia de Doris Mi Computadora Una bicicleta roja cuenta bancaria antena parabólica Cada objeto tiene su propia identidad inherente
  • 40. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 40 28/05/2021 ▪ Oid (Object Identifier) Cada objeto posee un oid. El oid establece la identidad del objeto y tiene las siguientes características: ❖Constituye un identificador único y global para cada objeto dentro del sistema ❖Es determinado en el momento de la creación del objeto ❖Es independiente de la localización física del objeto, es decir, provee completa independencia de localización Identidad
  • 41. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 41 28/05/2021 ❖Es independiente de las propiedades del objeto, lo cual implica independencia de valor y de estructura ❖No cambia durante toda la vida del objeto. Además, un oid no se reutiliza aunque el objeto deje de existir ❖No se tiene ningún control sobre los oids y su manipulación resulta transparente ▪ Sin embargo, es preciso contar con algún medio para hacer referencia a un objeto utilizando referencias del dominio (valores de atributos) … Identidad
  • 42. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 42 28/05/2021 Clasificación (1,3) (2,2) (2,1) (5,2.5) Vehículo Punto Figura Animal
  • 43. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 43 28/05/2021 Estado ▪ El estado evoluciona con el tiempo ▪ Algunos atributos pueden ser constantes ▪ El comportamiento agrupa las competencias de un objeto y describe las acciones y reacciones de ese objeto ▪ Las operaciones de un objeto son consecuencia de un estímulo externo representado como mensaje enviado desde otro objeto
  • 44. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 44 28/05/2021 Comportamiento ▪ Ejemplo de interacción: Otro objeto Un objeto Un mensaje Operacion 1 Operacion 2
  • 45. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 45 28/05/2021 … Comportamiento ▪ Los mensajes navegan por los enlaces, a priori en ambas direcciones ▪ Estado y comportamiento están relacionados ▪ Ejemplo: no es posible aterrizar un avión si no está volando. Está volando como consecuencia de haber despegado del suelo
  • 46. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 46 28/05/2021 Qué es un objeto? • En términos de programación es una variable. • Un objeto es una instancia de una clase. • Los objetos creados a partir de una clase, tienen una estructura idéntica, pero cada objeto puede tener valores distintos.
  • 47. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 47 28/05/2021 Conceptos de modelo • Objeto • Clase • Atributos • Métodos • Relaciones • Cardinalidad / multiplicidad
  • 48. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 48 28/05/2021 ❖ Una clase es una descripción de un conjunto de objetos que comparten: atributos, operaciones, relaciones y semántica”. ❖ Una clase define los conceptos que forman parte del dominio del problema o de la solución. Dominio del problema: Conceptos Dominio de la solución: Clases Clase
  • 49. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 49 28/05/2021 Clase • Una clase describe un conjunto de ejemplares (objetos) con propiedades y comportamientos similares. • Una clase se describe por: – Nombre – Interfaz (métodos, mensajes) – Atributos (datos) • En término de programación es un tipo de dato definido por el usuario. – Equivalente a un TDA. Ej: Rectangulo, Lista, Cola, NumeroComplejo, etc. • Las clases son las plantillas a partir de las cuales se crean los objetos.
  • 50. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 50 28/05/2021 Clases • Una clase es la descripción de un conjunto de objetos que comparten los mismos: – atributos (características) – métodos (operaciones) – relaciones • La estructura de una clase esta compuesta de: – Los atributos: Datos asociados a los elementos y que toman valor al instanciar objetos de una clase. – Las operaciones (métodos): Funciones o procesos propios de los objetos de una clase.
  • 51. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 51 28/05/2021 Notación UML para clases Identificador de la clase, si es abstracta va en cursiva atributos métodos Rectángulo longitud ancho crearRectangulo obtenerArea
  • 52. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 52 28/05/2021 Clase Instancia 1 Instancia 2 Perro unPerro Fido Sultán unPerro nombre Clases
  • 53. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 53 28/05/2021 Clases y Objetos Class Template Objetos
  • 54. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 54 28/05/2021 Conceptos de modelo • Objeto • Clase • Atributos • Métodos • Relaciones • Cardinalidad / multiplicidad
  • 55. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 55 28/05/2021 Atributos • Un atributo representa una propiedad que es compartida por todos los objetos de una misma clase. Ejemplo: Un persona tiene nombre, edad, etc. • Los nombres de atributos son únicos dentro de una misma clase. • Cada atributo tiene un valor para cada instancia • En UML: – La primera letra de un atributo se escribe con minúscula. – La sintaxis para los atributos en un diagrama UML de clases es la siguiente: • visibilidad nombre : tipo de dato • Ejemplo: + nombre : String
  • 56. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 56 28/05/2021 Clase Instancia 1 Instancia 2 atributo X valor x1 valor x2 Perro unPerro nombre peso Sultán 19 libras unPerro Fido 9 libras Atributos de Clases
  • 57. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 57 28/05/2021 Perro nombre piel peso edad estátus Nombrar o identificar objetos Describir características Describir estados Clases de Atributos
  • 58. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 58 28/05/2021 ¿Cómo encontrar atributos? • Para encontrar atributos de una clase preguntarse: – Qué información necesitamos conocer sobre ese objeto? – Qué características necesitamos recordar en el tiempo? – Qué dato es importante para soportar las responsabilidades de la clase en el sistema? – Algunos atributos podrían ser extraídos del análisis de los sustantivos y añadidos a la clase apropiada.
  • 59. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 59 28/05/2021 Atributos • Una entidad con estructura, comportamiento o identidad debe ser modelado como una clase, no como atributo de otra clase. • Sólo considere atributos que directamente estén relacionados a una aplicación particular. Obtenga los atributos más importantes primero, se adicionarán detalles después. • Asegúrese de dar a cada atributo un nombre significativo.
  • 60. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 60 28/05/2021 Conceptos de modelo • Objeto • Clase • Atributos • Métodos • Relaciones • Cardinalidad / multiplicidad
  • 61. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 61 28/05/2021 Métodos • Los métodos, son los procesos que una clase sabe cómo llevar a cabo. Ejemplo: cambiar-dirección. • Un objeto se caracteriza por el comportamiento que es capaz de mostrar, no solo por sus atributos. • En el modelo estático, únicamente se muestra los nombres de los métodos. • La información de las operaciones se muestra en el modelo dinámico.
  • 62. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 62 28/05/2021 Sinónimos de Método – Operación – Responsabilidad – Servicio – Función
  • 63. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 63 28/05/2021 Clase Instancia 1 Instancia 2 Perro unPerro atributo X valor x1 valor x2 nombre peso Sultán 19 libras unPerro Fido 9 libras operación OPT OPT OPT sentarse girar operaciones de la clase operaciones de la clase Métodos
  • 64. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 64 28/05/2021 Métodos • Puede ocurrir que una clase no tenga métodos. • En UML: – La primera letra de los nombres de los métodos se escribe con minúscula. – Los métodos pueden tener parámetros, y también pueden retornar valores. La sintaxis para los métodos en un diagrama UML de clases, es la siguiente: • visibilidad nombre (lista-de-parámetros): tipo-dato-a-retornar. • Ejemplo: #addMessage (m : Message, len : Integer): Status
  • 65. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 65 28/05/2021 Conceptos de modelo • Objeto • Clase • Atributos • Métodos • Relaciones • Cardinalidad / multiplicidad
  • 66. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 66 28/05/2021 Relaciones entre Clases ▪ Las Relaciones modelan la forma en la que los elementos estructurales se conectan entre sí. ▪ Los enlaces entre de objetos pueden representarse entre las respectivas clases ▪ La asociación expresa una conexión bidireccional entre objetos ▪ Una asociación es una abstracción de la relación existente en los enlaces entre los objetos Universidad Estudiante Univ. de Murcia:Universidad Antonio:Estudiante Una asociación Un enlace
  • 67. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 67 28/05/2021 Relación/Asociación ▪ Relaciones/asociaciones: Abstracciones que actúan de unión entre los elementos. ▪ Formas de relación entre clases: – Asociación y Agregación (vista como un caso particular de asociación) – Generalización/Especialización – Dependencia y realización Dependencia Asociación Generalización Realización Es una relación entre dos elementos, tal que un cambio en uno puede afectar al otro. Es una relación estructural que resume un conjunto de enlaces que son conexiones entre objetos. Es una relación en la que el elemento generalizado puede ser substituido por cualquiera de los elementos hijos, ya que comparten su estructura y comportamiento. Es una relación que implica que la parte realizante cumple con una serie de especificaciones propuestas por la clase realizada (interfaces).
  • 68. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 68 28/05/2021 Jerarquías de Relaciones Avión militar Avión comercial Avión de carga Avión de pasajeros Motor Vendedor de billetes Avión 1..4 1 Piloto Reserva n 1 Línea aérea Vuelo n 1 1..2 n n 1 1 n n ▪ Las relaciones de Agregación y Generalización forman jerarquías de clases
  • 69. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 69 28/05/2021 Una Asociación es una relación estructural fuerte, que indica que los objetos de una clase forman parte del estado del objeto del otro extremo. Persona Empresa trabaja para Asociación Dirección del nombre Nombre Relación/Asociación
  • 70. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 70 28/05/2021 En una asociación se puede navegar desde el objeto de una clase hasta el objeto de la otra clase, y viceversa, si no se indica el sentido de navegación. Un rol es la cara que la clase de un extremo de la asociación presenta a la clase del otro extremo Persona Empresa Navegabilidad Nombre de rol .empleado .patron Navegabilidad de una Asociación
  • 71. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 71 28/05/2021 Asociaciones circulares • Una asociación podría ser circular si: – Una instancia de la clase esta relacionada con otra instancia(s) de la misma clase. • Esta asociación se modela como una asociación que apunta de regreso a la misma clase. • Nombre de roles son muy útiles para clarificar esta asociación. Persona * 1 trabajador supervisor
  • 72. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 72 28/05/2021 Generalización/especialización (Herencia) • Es un mecanismo para compartir atributos y métodos entre clases. • Permite definir una clase hija (subclase) a partir de una clase padre (base, superclase). • Las subclases heredan los atributos y métodos de las superclases. Mamífero Perro Gato Poodle PastorAlemán - colorOjo:String + getcolorOjo: String - frecLadrido:int + ladrar::void - frecMaullido:int +maullar::void + esAleman::void + esFrances::void
  • 73. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 73 28/05/2021 Agregación y Composición ➢ Una Agregación (relación “parte-de”) es una asociación en la que una de las clases representa el “todo” y la/s otra/s la/s parte/s. Puzle Pieza Agregación 1 1..* El todo La parte ➢ Una Composición es una forma de agregación con una fuerte relación de pertenencia y vida de las partes con el todo. Banco Cuenta 1 1..* Composición
  • 74. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 74 28/05/2021 Realización y dependencia ❖ Una Realización se da entre dos elementos cuando uno de ellos especifica un contrato y el otro garantiza que se cumple. Por ejemplo: Una interfaz presenta una relación de realización con la/s clase/s que la implementa/n. ❖ Una Dependencia modela una relación de uso. En una dependencia no es necesario especificar un nombre. Collections <<Interface>> Collection .add() addAll() ... LinkedList Realización Dependencia
  • 75. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 75 28/05/2021 Conceptos de modelo • Objeto • Clase • Atributos • Métodos • Relaciones • Cardinalidad / multiplicidad
  • 76. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 76 28/05/2021 Multiplicidad/cardinalidad ➢ La Multiplicidad indica cuantos objetos de un extremo de la asociación pueden conectarse con un objeto del otro extremo. Sintaxis: valorMinimo..valorMaximo (por defecto es 1) Ejemplos:1 = Uno, 0..1 = Cero o Uno, 0..* = Cero o muchos, 1..* = Uno o muchos, 0..1,3..4,6..* = Cualquier número excepto 2 y 5 Persona Empresa Multiplicidad .empleado .patron 1..* 0..1
  • 77. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 77 28/05/2021 ▪ Especificación de multiplicidad/cardinalidad (mínima...máxima) 1 Uno y sólo uno 0..1 Cero o uno M..N Desde M hasta N (enteros naturales) * Cero o muchos 0..* Cero o muchos 1..* Uno o muchos (al menos uno) ▪ La multiplicidad mínima >= 1 establece una restricción de existencia Multiplicidad/cardinalidad
  • 78. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 78 28/05/2021 A B 1 Una A siempre se asocia con una B País Ciudad Capital 1 Vuelo Capitán Cheque Beneficiario 1 1 Ejemplo de Multiplicidad/cardinalidad
  • 79. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 79 28/05/2021 A B 1..* Una A siempre se asocia con una o más B Continente País 1..* Compañía Persona País Ciudad 1..* 1..* Ejemplo de Multiplicidad/cardinalidad
  • 80. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 80 28/05/2021 A B 0..1 Una A siempre se asocia con ninguna o con una B Escritor Agente 0..1 Ejemplo de Multiplicidad/cardinalidad
  • 81. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 81 28/05/2021 A B * Una A siempre se asocia con ninguna, con una o con más B Persona Compañía * Ejemplo de Multiplicidad/cardinalidad
  • 82. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 82 28/05/2021 Contenido • Introducción al modelado – Estructurado, Orientado a Objeto • Conceptos de modelo – Objeto, Atributos, Relaciones, Cardinalidad / multiplicidad. • Utilidad de los modelos – Comprender la realidad y el sistema – Reducir la complejidad • Principios de modelado – Descomposición, Abstracción, Generalización / especialización – Proyección / puntos de vista – Uso de enfoques formales (UML) • Herramientas de modelado – MagicDraw – Star UML – Papyrus UML – Rational Rose
  • 83. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 83 28/05/2021 Utilidad del modelado ¿Por qué no escribo código directamente? Sería lo ideal pero .... .... necesitamos escribir modelos, aunque la mayoría de desarrolladores todavía no practican el modelado
  • 84. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 84 28/05/2021 Modelado de software Construcción de Software Ingeniería de requerimientos Diseño y Arquitectura de Software
  • 85. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 85 28/05/2021 ¿Se obtienen beneficios con el modelado? Un coste en formación y tiempo ¿Una mejora de la productividad? ¿Una mejora de la calidad del software? ¿Por qué la mayoría de empresas no practican el modelado?
  • 86. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 86 28/05/2021 ¿Por qué se construyen modelos? • Reducir la complejidad del sistema. • Comunicar las ideas a otros. • Visualización. • Nos permite probar la entidad física antes de construirla. • Los modelos documentan las decisiones que tomamos.
  • 87. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 87 28/05/2021 Comprensión de la realidad • Simplificación del objeto en el mundo real, pero que es suficientemente realista como para dar una idea de lo que ocurrirá en la realidad y usarse como base del desarrollo.
  • 88. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 88 28/05/2021 Utilidad de los modelos • Comprender la realidad – Un modelo es una simplificación de la realidad • Comprender el sistema – Un modelo permite comprender mejore el sistema que estamos desarrollando: sus elementos y sus relaciones • Reducir la complejidad – Un modelo permite reducir la complejidad de entender sistemas complejos en su totalidad • Comunicar con otros – Un modelo permite la comunicación entre los desarrolladores y los clientes
  • 89. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 89 28/05/2021 Contenido • Introducción al modelado – Estructurado, Orientado a Objeto • Conceptos de modelo – Objeto, Atributos, Relaciones, Cardinalidad / multiplicidad. • Utilidad de los modelos – Comprender la realidad y el sistema – Reducir la complejidad • Principios de modelado – Descomposición, Abstracción, Generalización / especialización – Proyección / puntos de vista – Uso de enfoques formales (UML) • Herramientas de modelado – MagicDraw – Star UML – Papyrus UML – Rational Rose
  • 90. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 90 28/05/2021 Principios de modelado • Descomposición • Abstracción • Generalización / especialización • Polimorfismo • Proyección / puntos de vista • Uso de enfoques formales
  • 91. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 91 28/05/2021 Diseño para el cambio • ¿Qué puede cambiar? – Algoritmos • requerimientos de desempeño, escala – Representación de los datos • requerimientos de desempeño, escala • cambios en interfaces – equipos externos – ambiente social • Para reducir el impacto de los cambios: Modularizar
  • 92. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 92 28/05/2021 Descomposición • La descomposición es un concepto de diseño que sugiere que cualquier problema complejo puede manejarse con más facilidad si se subdivide en elementos susceptibles de resolverse u optimizarse de manera independiente. • Un problema es una característica o comportamiento que se especifica en el modelo de los requerimientos para el software. • Al separar un problema en sus piezas más pequeñas y por ello más manejables, se requiere menos esfuerzo y tiempo para resolverlo.
  • 93. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 93 28/05/2021 Descomposición • Si para dos problemas, p1 y p2, la complejidad que se percibe para p1 es mayor que la percibida para p2, entonces se concluye que el esfuerzo requerido para resolver p1 es mayor que el necesario para resolver p2. • Como caso general, este resultado es intuitivamente obvio. Lleva más tiempo resolver un problema difícil.
  • 94. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 94 28/05/2021 Descomposición • También se concluye que cuando se combinan dos problemas, con frecuencia la complejidad percibida es mayor que la suma de la complejidad tomada por separado. – Esto lleva a la estrategia de divide y vencerás, pues es más fácil resolver un problema complejo si se divide en elementos manejables. – Esto tiene implicaciones importantes en relación con la modularidad del software. • La modularidad es dividir el software en componentes con nombres distintos y abordables por separado, en ocasiones llamados módulos, que se integran para satisfacer los requerimientos del problema.
  • 95. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 95 28/05/2021 Descomposición: Jerarquía de módulos • Dividir sucesivamente, obteniendo niveles – Se formará una jerarquía de módulos – Los de mas bajo nivel • Resuelven problemas más pequeños y • Contienen mas detalle • Hasta que los módulos de nivel inferior – Sean sumamente simples – Y solo contengan funciones y procedimientos – Que resuelven problemas independientes y pequeños
  • 96. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 96 28/05/2021 Descomposición • Según el punto de vista de la descomposición, sería posible concluir que si el software se dividiera en forma indefinida, el esfuerzo requerido para desarrollarlo ¡sería despreciable por pequeño! • Desafortunadamente, hay otras fuerzas que entran en juego y que hacen que esta conclusión sea (tristemente) inválida. – El esfuerzo (costo) de desarrollar un módulo individual de software disminuye conforme aumenta el número total de módulos – Sin embargo, a medida que se incrementa el número de módulos, el esfuerzo (costo) asociado con su integración también aumenta
  • 97. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 97 28/05/2021 Descomposición Deben hacerse módulos, pero con cuidado para permanecer en la cercanía de M. Debe evitarse hacer pocos o muchos módulos. Región de costo mínimo M Costo del esfuerzo Costo de integración Costo total del software Costo por módulo Número de módulos
  • 98. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 98 28/05/2021 Principios de modelado • Descomposición • Abstracción • Generalización / especialización • Polimorfismo • Proyección / puntos de vista • Uso de enfoques formales
  • 99. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 99 28/05/2021 Abstracción • Visión simplificada de una realidad de la que sólo consideramos determinados aspectos esenciales. • Consiste en enfocarse en lo esencial. • El propósito es limitar el universo.
  • 100. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 100 28/05/2021 Abstracción procedimental • En un diseño descendente, un modulo – Equivale a una “caja negra” y ejecuta una tarea determinada • Cada “caja negra” o procedimiento – Nos interesa lo que hace, no como lo hace – Puede conocer otras cajas negras y usarlas • Un procedimiento/modulo ya escrito – Se puede usar sin saber como esta escrito – Basta con su nombre y una descripción
  • 101. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 101 28/05/2021 Abstracción OO • La intención general del modelamiento orientado a objetos (OO) es abstraer algunas características de sistemas naturales complejos como son: – Estado del objeto (Atributos). – Comportamiento del objeto (Métodos). – Comportamientos comunes entre objetos relacionados.
  • 102. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 102 28/05/2021 Abstracción de datos • Al analizar un problema, podemos centrarnos en: – Los datos que vamos a necesitar y – Las operaciones/métodos que se pueden realizar sobre los mismos – Definirán sus TIPOS DE DATOS ABSTRACTOS o CLASES • TDAs/Clases – Los módulos los conocerán y usarán – Sin interesarles como se escribieron sus operaciones/métodos – Se pueden implementar usando estructuras de datos/clases • Para diseñar una solución se deben desarrollar – Algoritmos y – TDAs/Clases
  • 103. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 103 28/05/2021 Principios de modelado • Descomposición • Abstracción • Generalización / especialización • Polimorfismo • Proyección / puntos de vista • Uso de enfoques formales
  • 104. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 104 28/05/2021 Herencia (Generalización/especialización) • Es un mecanismo para compartir atributos y métodos entre clases. • Permite definir una clase hija (subclase) a partir de una clase padre (base, superclase). • Las subclases heredan los atributos y métodos de las superclases. Superclase Subclase
  • 105. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 105 28/05/2021 • Por la herencia se forman jerarquías de clases (superclases y subclases). • La clase hija hereda el interfaz (con la implementación de las operaciones) y los atributos. • Relación “es un” • Permite la reutilización de código. Herencia (Generalización/especialización)
  • 106. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 106 28/05/2021 Ejemplo de Herencia (Generalización/especialización)
  • 107. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 107 28/05/2021 Ejemplo de Herencia (Generalización/especialización) Mamífero Perro Gato Poodle PastorAlemán - colorOjo:String + getcolorOjo: String - frecLadrido:int + ladrar::void - frecMaullido:int +maullar::void + esAleman::void + esFrances::void
  • 108. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 108 28/05/2021 Herencia (Generalización/especialización) Auto maxFuel maxNroDePasajeros modelo velocidad acelerar() desacelerar() doblarAIzq() doblarADcha() Avion maxAltitud maxFuel maxNroDePasajeros velocidad nroDeMotores acelerar() desacelerar() descender() ascender() ANTES DESPUES Vehiculo maxFuel maxNroDePasajeros velocidad acelerar() desacelerar() Avion maxAltitud nroDeMotores descender() ascender() Auto modelo doblarAIzq() doblarADcha() superclase subclases
  • 109. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 109 28/05/2021 Herencia (Generalización/especialización) Vehiculo Auto Avion public class Vehiculo { } public class Auto extends Vehiculo{ } public class Avion extends Vehiculo{ } Java UML
  • 110. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 110 28/05/2021 Herencia (Generalización/especialización) • Concepto de tipo: un tipo denota una interfase particular. Ej.: Ser, Animal, Vegetal, etc. • Un tipo es un subtipo de otro si su interfaz contiene la interfase de su supertipo. Ej.: Animal es un subtipo de Ser y un supertipo de Ave y Mamifero. • Diferencia entre los conceptos de clase e interfase. – El concepto de clase hace referencia a los atributos y a las operaciones, junto con su implementación. – El concepto de interfase hace referencia sólo a los prototipos de las operaciones visibles.
  • 111. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 111 28/05/2021 Tipos de Herencia (Generalización/especialización) • Simple: una clase (clase hija) puede heredar de otra clase (una clase padre). • Múltiple: una clase (clase hija) puede heredar de otras clases padres (tener varias clases padres). – No está disponible en todos los lenguajes (disponible en C++; en Java sólo para la herencia de interfase).
  • 112. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 112 28/05/2021 Herencia Múltiple
  • 113. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 113 28/05/2021 Herencia Múltiple Problema de ambigüedad: unVehiculoAnfibio.Desplazarse(); Los lenguajes ofrecen mecanismos para deshacer la ambigüedad (en C++ => unVehiculoAnfibio.VehiculoTerrestre::Desplazarse()).
  • 114. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 114 28/05/2021 Tipos de Clases • Clases abstractas – No pueden ser instanciadas. – Usadas solamente como superclases. – Organizan características comunes a algunas clases y especifican una interfaz común para todas sus subclases. – Pueden tener métodos abstractos (métodos sin implementación). • Clases concretas o comunes – Pueden ser instanciadas. – Tiene un comportamiento específico. – Implementan los métodos abstractos que heredan de las clases abstractas. • Clases finales – Clases especiales que no pueden tener descendencia. – Únicamente permiten instanciar objetos.
  • 115. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 115 28/05/2021 Tipos de Clases
  • 116. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 116 28/05/2021 Clases Abstractas • Su objetivo es especificar una interfase común para todas sus subclases. • El uso de clases abstractas puede simplificar el modelamiento de las clases que participan en la misma relación con otras clases. • No siempre se pueden encontrar clases abstractas. • Deja sin definir una o más operaciones (sólo declara sus prototipos – no tienen implementación), que se definirán en subclases. Estas operaciones se denominan operaciones abstractas.
  • 117. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 117 28/05/2021 Clases Abstractas Figura {Abstracto} Circulo Rectangulo public abstract class Figura { ... } public class Circulo extends Figura{ ... } public class Rectangulo extends Figura{ ... } Figura f = new Figura();
  • 118. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 118 28/05/2021 Clases Abstractas
  • 119. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 119 28/05/2021 Principios de modelado • Descomposición • Abstracción • Generalización / especialización • Polimorfismo • Proyección / puntos de vista • Uso de enfoques formales
  • 120. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 120 28/05/2021 • Generalización • Una generalización da lugar al polimorfismo entre clases de una jerarquía de generalizaciones: • Un objeto de una subclase puede sustituir a un objeto de la superclase en cualquier contexto. Lo inverso no es cierto.
  • 121. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 121 28/05/2021 Polimorfismo • Significa que la misma operación/método puede comportarse diferente en clases distintas. • El polimorfismo está muy ligado a la herencia. • Distintas instancias del mismo tipo interpretan el mismo mensaje en diferentes formas. • El polimorfismo requiere enlace dinámico – Enlace dinámico: la llamada se resuelve en tiempo de ejecución. – Enlace estático: la llamada se resuelve en tiempo de compilación
  • 122. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 122 28/05/2021 Ejemplo de Polimorfismo FiguraGeométrica Atributo: area Método: ObtenerArea Atributos: longitud ancho Métodos: CrearRectangulo ObtenerArea Atributos: radio ancho Métodos: CrearCirculo ObtenerArea rectángulo círculo
  • 123. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 123 28/05/2021 Ejemplo de Polimorfismo método concreto Figura f = new Rectangulo(); int s = f.obtenerArea(); método abstracto Rectangulo +obtenerArea() Figura {abstracto} +obtenerArea() Circulo +obtenerArea() Método abstracto
  • 124. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 124 28/05/2021 Principios de modelado • Descomposición • Abstracción • Generalización / especialización • Polimorfismo • Proyección / puntos de vista • Uso de enfoques formales
  • 125. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 125 28/05/2021 Proyección / puntos de vista • Durante el desarrollo de un sistema software se requiere que éste sea visto desde varias perspectivas. • Diferentes usuarios miran el sistema de formas diferentes en momentos diferentes. • La arquitectura del sistema es clave para poder manejar estos puntos de vista diferentes: • Se organiza mejor a través de vistas arquitecturales interrelacionadas. • Proyecciones del modelo del sistema centradas en un aspecto particular. • No se requiere una vista que contenga la semántica completa de la aplicación. La semántica reside en el modelo.
  • 126. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 126 28/05/2021 Proyección / puntos de vista Las 4 +1 Vistas Arquitecturales (Philippe Krutchen) Vista de diseño Vista de implementación Vista de interacción Vista de despliegue Vista de casos de uso Lógico Físico
  • 127. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 127 28/05/2021 Proyección / puntos de vista • Vista de Casos de Uso (Use Case View) • Captura la funcionalidad del sistema tal y como es percibido por los usuarios finales, analistas y encargados de pruebas. • Describe la funcionalidad en base a casos de uso. • En esta vista no se especifica la organización real del sistema software. • Los diagramas que le corresponden son: • Aspectos estáticos: diagramas de casos de uso. • Aspectos dinámicos: diagramas de interacción, de estados y de actividades.
  • 128. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 128 28/05/2021 Proyección / puntos de vista • Vista de Diseño (Logical View) • Captura las clases, interfaces y colaboraciones que describen el sistema: • En el dominio del problema • En el dominio de la solución • Las elementos que la forman dan soporte a los requisitos funcionales • del sistema. • Los diagramas que le corresponden son: • Aspectos estáticos: diagramas de clases y de objetos. También son útiles los diagramas de estructura compuesta de clases. • Aspectos dinámicos: diagramas de interacción, de estados y de actividades.
  • 129. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 129 28/05/2021 Proyección / puntos de vista • Vista de Interacción (Process view) • Captura el flujo de control entre las diversas partes del sistema, incluyendo los posibles mecanismos de concurrencia y sincronización. • Abarca en especial requisitos no funcionales como el rendimiento, escalabilidad y capacidad de procesamiento. • Los diagramas que le corresponden son los mismos que la vista de diseño: • Aspectos estáticos: diagramas de clases y de objetos. • Aspectos dinámicos: diagramas de interacción, de estados y de actividades. • Pero atendiendo más las clases activas que controlan el sistema y los mensajes entre ellas.
  • 130. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 130 28/05/2021 Proyección / puntos de vista • Vista de Implementación (Development View) • Captura los artefactos que se utilizan para ensamblar y poner en producción el sistema software real. • Define la arquitectura física del sistema • Se centra en: • La configuración de las distintas versiones de los archivos físicos, • Correspondencia entre clases y ficheros de código fuente, • Correspondencia entre componentes lógicos y artefactos físicos. • Los diagramas que le corresponden son: • Aspectos estáticos: diagramas de componentes (especialmente la versión de artefactos) y de estructura compuesta. • Aspectos dinámicos: diagramas de interacción, de estados y de actividades.
  • 131. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 131 28/05/2021 Proyección / puntos de vista • Vista de Despliegue (Physical View) • Captura las características de instalación y ejecución del sistema. • Contiene los nodos y enlaces que forman la topología hardware • sobre la que se ejecuta el sistema software. • Se ocupa principalmente de la distribución de las partes que forman el sistema software real. • Los diagramas que le corresponden son: • Aspectos estáticos: diagramas de despliegue. • Aspectos dinámicos: diagramas de interacción, de estados y de actividades.
  • 132. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 132 28/05/2021 Proyección / puntos de vista • Cada vista puede existir de forma independiente. • Pero interactúan entre sí: • Los nodos (vista de despliegue) contienen componentes (vista de implementación). • Dichos componentes representan la realización (software real) de las clases, interfaces, colaboraciones y clases activas (vistas de diseño y de interacción). • Dichos elementos de las vistas de diseño e interacción representan el sistema solución a los casos de uso (vista de casos de uso) que expresan los requisitos.
  • 133. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 133 28/05/2021 Proyección / puntos de vista Modelo Funcionalidad del sistema Estructura del sistema (características estáticas) Comportamiento del sistema (características dinámicas) captura organizado en •Vista de Casos de Uso (Funcionalidad) •Vista de Diseño (Arquitectura interna) •Vista de Interacción (Concurrencia y sincronización) •Vista de Implementación (Arquitectura externa) •Vista de Despliegue (Plataforma y distribución) •Diagramas de Casos de Uso •Diagramas de Clases •Diagramas de Objetos •Diagramas de Secuencia •Diagramas de Colaboración •Diagramas de Estado •Diagramas de Actividad •Diagramas de Componentes •…… Vistas Arquitecturales Diagramas visualizadas en
  • 134. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 134 28/05/2021 Principios de modelado • Descomposición • Abstracción • Generalización / especialización • Polimorfismo • Proyección / puntos de vista • Uso de enfoques formales
  • 135. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 135 28/05/2021 Unified Modeling Language • Desarrollado en 1997 al fusionar las metodologías de Ivar Jacobson, Jame Rumbaugh y Grady Booch • Objetivo: Proveer un lenguaje común que puede ser usado para el desarrollo de software • Es el lenguaje estándar para modelar proyectos de software que permite: – Visualizar: La comunicación es a través de gráficos – Especificar: construyendo modelos para el análisis, diseño, implementación – Construir: Permite la generación de código a partir de un modelo UML, y la construcción de un modelo a partir del código (ingeniería reversa) – Documentar: Permite la documentación completa de todo el sistema • Aprobado como estándar por la OMG en 1997 • Actualmente se encuentra en la versión 2.4.1 (2012)
  • 136. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 136 28/05/2021 Unified Modeling Language • Diagramas: Disponen un conjunto de elementos, que representan el modelo desde distintas perspectivas. – Ingeniería directa: Es posible generar código a partir de un modelo UML. – Ingeniería inversa: Es posible generar un modelo UML a partir de la implementación. • En ambos casos se requiere mayor o menor supervisión, en función de lo buenas que sean las herramientas usadas. • UML tiene nueve diagramas fundamentales, clasificados en dos grupos, uno para modelar la estructura estática del sistema y otro para modelar el comportamiento dinámico.
  • 137. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 137 28/05/2021 Diagramas en UML
  • 138. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 138 28/05/2021 Tipos de Diagramas • Modelo Estático – Construye y documenta los aspectos estáticos de un sistema. – Refleja la estructura básica y estable de un sistema software. – Crea una representación de los principales elementos del dominio del problema – Diagramas: Clases, Objetos, componentes y despliegue. • Modelo Dinámico – Crea los diagramas que muestran el comportamiento de un sistema – Diagramas: Casos de Uso, secuencia, colaboración, estados y actividades
  • 139. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 139 28/05/2021 Futuro de UML • UML 2.4 • Extensiones de UML • SysML - Systems Modeling Language (SysML, www.sysml.org) • Generación automática de código a partir de modelos • Model-Driven Engineering (MDE) • Extendiendo UML mediante perfiles • MARTE – Modeling and Analysis of Real-Time Embedded Systems • Entornos avanzados basados en metamodelado • Eclipse Modeling Framework (EMF) • Modelado y generación de código en dominios específicos • Domain-Specific Modeling (DSM, www.dsmforum.org)
  • 140. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 140 28/05/2021 UML tiene tres bloques básicos de construcción, elementos, relaciones y diagramas. Elementos: Unidades básicas de construcción, cuatro tipos: Estructurales: Partes estáticas de los modelos, representan aspectos conceptuales o materiales. De comportamiento: Partes dinámicas de los modelos, representan comportamientos en el tiempo y espacio. De agrupación: Partes organizativas de los modelos. De Notación: Partes explicativas de los modelos. Notación UML
  • 141. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 141 28/05/2021 Elementos estructurales: Clase Clase activa Describe un conjunto de objetos que comparten los mismos atributos, métodos, relaciones y semántica. Las clases implementan una o más interfaces. Se trata de una clase, en la que existe procesos o hilos de ejecución concurrentes con otros elementos. Las líneas del contorno son más gruesas que en la clase “normal”. Notación UML
  • 142. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 142 28/05/2021 Agrupación de métodos u operaciones que especifican un servicio de una clase o componente, describiendo su comportamiento, completo o parcial, externamente visible. UML permite emplear un círculo para representar las interfaces, aunque lo más normal es emplear la clase con el nombre en cursiva. Define una interacción entre elementos que cooperan para proporcionar un comportamiento mayor que la suma de los comportamientos de sus elementos. Elementos estructurales: Notación UML
  • 143. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 143 28/05/2021 Describe un conjunto de secuencias de acciones que un sistema ejecuta, para producir un resultado observable de interés. Se emplea para estructurar los aspectos de comportamiento de un modelo. Parte física y por tanto reemplazable de un modelo, que agrupa un conjunto de interfaces, archivos de código fuente, clases, colaboraciones y proporciona la implementación de dichos elementos. Elemento físico que existe en tiempo de ejecución y representa un recurso computacional con capacidad de procesar. Elementos estructurales: Notación UML Componente
  • 144. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 144 28/05/2021 Elementos de comportamiento: Comprende un conjunto de mensajes que se intercambian entre un conjunto de objetos, para cumplir un objetivo especifico. Especifica la secuencia de estados por los que pasa un objeto o una interacción, en respuesta a eventos. Notación UML
  • 145. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 145 28/05/2021 Elementos de agrupación: Se emplea para organizar otros elementos en grupos. Elementos de notación: Partes explicativa de UML, que puede describir textualmente cualquier aspecto del modelo. Notación UML
  • 146. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 146 28/05/2021 Relaciones: Abstracciones que actúan de unión entre los elementos. Dependencia Asociación Generalización Realización Es una relación entre dos elementos, tal que un cambio en uno puede afectar al otro. Es una relación estructural que resume un conjunto de enlaces que son conexiones entre objetos. Es una relación en la que el elemento generalizado puede ser substituido por cualquiera de los elementos hijos, ya que comparten su estructura y comportamiento. Es una relación que implica que la parte realizante cumple con una serie de especificaciones propuestas por la clase realizada (interfaces). Notación UML
  • 147. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 147 28/05/2021 Modelos en UML • Modelado de Casos de Uso – Diagrama de Casos de Uso • Modelado Estructural – Diagrama de Clases • Modelado de Comportamiento – Diagramas de Interacción: Secuencia y Comunicación – Diagramas de Estados • Modelado de flujos de actividades (p.e. Modelo del Negocio) – Diagramas de actividades • Modelado Implementación – Diagrama de Componentes • Modelado de Despliegue – Diagramas de Artefactos – Diagramas de Despliegue
  • 148. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 148 28/05/2021 Modelo Casos de Usos Teleoperador Participante Realizar puja ordinaria Cancelar puja ordinaria Rechazar adjudicación Pujador Anular anuncio de subasta Anular edición de subasta Crear edición de subasta Administrador Cerrar edición de subasta Realizar pago de subasta ordinaria Notif icar adjudicatario Sistema Diagrama de casos de uso
  • 149. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 149 28/05/2021 Modelos en UML • Modelado de Casos de Uso – Diagrama de Casos de Uso • Modelado Estructural – Diagrama de Clases • Modelado de Comportamiento – Diagramas de Interacción: Secuencia y Comunicación – Diagramas de Estados • Modelado de flujos de actividades (p.e. Modelo del Negocio) – Diagramas de actividades • Modelado Implementación – Diagrama de Componentes • Modelado de Despliegue – Diagramas de Artefactos – Diagramas de Despliegue
  • 150. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 150 28/05/2021 Modelado estructural • Se describen los tipos de objetos de un sistema y las relaciones estáticas que existen entre ellos. – Clases – Interfaces – Relaciones de dependencia, realización, generalización y asociación (agregación, composición) – También pueden incluir paquetes. • Un diagrama de clase es una representación gráfica de un modelo estructural.
  • 151. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 151 28/05/2021 Modelado estructural • Diferentes perspectivas. • Modelado Conceptual – Conceptos del dominio del problema: atributos, restricciones y relaciones entre ellos. • Modelo del Análisis – Clases que corresponden a conceptos del dominio – Atributos y métodos • Modelo de Diseño – Incluye clases que corresponden a decisiones del diseño • Modelo de Implementación – Clases que corresponden a un lenguaje de programación
  • 152. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 152 28/05/2021 Modelo Conceptual Diagrama de clases
  • 153. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 153 28/05/2021 Modelo Análisis Diagrama de clases
  • 154. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 154 28/05/2021 Cuenta Domiciliacion 0..n 1 Ahorro Corriente 1 0..n Operacion Periodica IteradorCuenta Modelo de diseño Diagrama de clases
  • 155. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 155 28/05/2021 Modelos en UML • Modelado de Casos de Uso – Diagrama de Casos de Uso • Modelado Estructural – Diagrama de Clases • Modelado de Comportamiento – Diagramas de Interacción: Secuencia y Comunicación – Diagramas de Estados • Modelado de flujos de actividades (p.e. Modelo del Negocio) – Diagramas de actividades • Modelado Implementación – Diagrama de Componentes • Modelado de Despliegue – Diagramas de Artefactos – Diagramas de Despliegue
  • 156. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 156 28/05/2021 c:Cliente :Transaccion p:ProxyODBC <<create>> establecerAcciones establecerValores exito <<destroy>> establecerValores tiempo Línea de vida Foco de control Modelo de Comportamiento Diagrama de secuencia
  • 157. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 157 28/05/2021 Modelo de Comportamiento : Sistema as : AnuncioSubasta pujas : PujaOrdinaria adj : Adjudicacion : ArticuloConcreto Se crean tantas adjudicaciones como pujas ganadoras haya. Cada adjudicación se asocia con un ArticuloConcreto, una puja adjudicataria y con la subasta. : ControladorAnuncios Se recorre la colección de pujas obteniendo las pujas ganadoras (consideramos que la colección está ordenada de mayor a menor valor de puja). adjudicaciones : Adjudicacion : EdicionSubasta int numAjudicaciones = Minimo(pujas.length(), articulos.length()); : AnuncioSubasta 5. numAdjs = calcularAdjudicaciones() 1. cerrarEdicionSubasta(es) 6. [1..numAdjs]* pg := get() 8. [1..numAdjs]* adj := crear(as, pg, a) 7. [1..numAdjs]* a:= get() 9. [1..numAdjs]* add(adj) 2. cerrar() 4. * cerrar() 3. * as := get() Diagrama de comunicación
  • 158. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 158 28/05/2021 Espera Venta Introduccion Productos Espera Pago introducirProducto introducirProducto Terminar Venta Autorizacion Pago efectuar Pago Efectivo efectuar Pago Tarjeta manejarRespuesta Diagrama de estado Modelo de Comportamiento
  • 159. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 159 28/05/2021 Modelos en UML • Modelado de Casos de Uso – Diagrama de Casos de Uso • Modelado Estructural – Diagrama de Clases • Modelado de Comportamiento – Diagramas de Interacción: Secuencia y Comunicación – Diagramas de Estados • Modelado de flujos de actividades (p.e. Modelo del Negocio) – Diagramas de actividades • Modelado Implementación – Diagrama de Componentes • Modelado de Despliegue – Diagramas de Artefactos – Diagramas de Despliegue
  • 160. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 160 28/05/2021 Modelo del Negocio Diagrama de actividades Gestión de fondosbibliotecarios Director Bibliotecario Usuario Catalogar nuevo libro Registrar préstamo Leer libro Registrar devolución [libro OK] Retirar libro [libro deteriorado]
  • 161. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 161 28/05/2021 Modelos en UML • Modelado de Casos de Uso – Diagrama de Casos de Uso • Modelado Estructural – Diagrama de Clases • Modelado de Comportamiento – Diagramas de Interacción: Secuencia y Comunicación – Diagramas de Estados • Modelado de flujos de actividades (p.e. Modelo del Negocio) – Diagramas de actividades • Modelado Implementación – Diagrama de Componentes • Modelado de Despliegue – Diagramas de Artefactos – Diagramas de Despliegue
  • 162. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 162 28/05/2021 Diagrama de componentes Modelo de implementación
  • 163. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 163 28/05/2021 Modelos en UML • Modelado de Casos de Uso – Diagrama de Casos de Uso • Modelado Estructural – Diagrama de Clases • Modelado de Comportamiento – Diagramas de Interacción: Secuencia y Comunicación – Diagramas de Estados • Modelado de flujos de actividades (p.e. Modelo del Negocio) – Diagramas de actividades • Modelado Implementación – Diagrama de Componentes • Modelado de Despliegue – Diagramas de Artefactos – Diagramas de Despliegue
  • 164. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 164 28/05/2021 hola.java hola.html hola.jpg <<artifact>> HolaMundo.class HolaMundo <<manifest>> <<manifest>> Modelo de Despliegue Diagrama de artefactos
  • 165. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 165 28/05/2021 Modelo de Despliegue Diagrama de despliegue
  • 166. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 166 28/05/2021 Contenido • Introducción al modelado – Estructurado, Orientado a Objeto • Conceptos de modelo – Objeto, Atributos, Relaciones, Cardinalidad / multiplicidad. • Utilidad de los modelos – Comprender la realidad y el sistema – Reducir la complejidad • Principios de modelado – Descomposición, Abstracción, Generalización / especialización – Proyección / puntos de vista – Uso de enfoques formales (UML) • Herramientas de modelado – MagicDraw – Star UML – Papyrus UML – Rational Rose
  • 167. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 167 28/05/2021 Herramienta MagicDraw UML Es una herramienta CASE desarrollada por No Magic. La herramienta es compatible con el estándar UML 2.3, desarrollo de código para diversos lenguajes de programación (Java, C++ y C#, entre otros) así como para modelar datos
  • 168. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 168 28/05/2021 Herramienta StarUML StarUML es una herramienta UML de MKLab. El software se licencia bajo una versión modificada de GNU GPL hasta 2014, cuando se lanzó una versión 2.0.0 reescrita para pruebas beta bajo una licencia propietaria.
  • 169. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 169 28/05/2021 Herramienta Papyrus UML Es una herramienta UML 2 de código abierto basada en Eclipse y bajo licencia EPL. Papyrus se puede utilizar como herramienta independiente o como complemento de Eclipse. Proporciona soporte para lenguajes específicos de dominio y SysML. Papyrus está diseñado para ser fácilmente extensible ya que se basa en el principio de los perfiles UML.
  • 170. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 170 28/05/2021 Herramienta Rational Rose La aplicación IBM® Rational Rose® es una herramienta de desarrollo y modelado de componentes gráficos que utiliza el Lenguaje unificado de modelado (UML) estándar del sector.
  • 171. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 171 28/05/2021 Herramienta diagrams.net diagrams.net es un software de diagramas en línea gratuito para hacer diagramas de flujo, diagramas de procesos, organigramas, UML, ER y diagramas de red.
  • 172. Modelamiento de Software Carrera de Software Ph.D. Franklin Parrales 172 28/05/2021 Fundamentos de modelado Unidad 1 Final de la unidad