0% encontró este documento útil (0 votos)
256 vistas56 páginas

Introduccion Al Modelado Del Software

El documento introduce el lenguaje unificado de modelado (UML) como estándar para el modelado de software orientado a objetos. UML surgió de la unificación de varios métodos de análisis y diseño en los años 90 para eliminar la confusión entre notaciones. Desde entonces, UML ha evolucionado a través de varias versiones mantenidas por el OMG. UML proporciona una notación gráfica para modelar diferentes aspectos de un sistema, como la estructura, el comportamiento y las interacciones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
256 vistas56 páginas

Introduccion Al Modelado Del Software

El documento introduce el lenguaje unificado de modelado (UML) como estándar para el modelado de software orientado a objetos. UML surgió de la unificación de varios métodos de análisis y diseño en los años 90 para eliminar la confusión entre notaciones. Desde entonces, UML ha evolucionado a través de varias versiones mantenidas por el OMG. UML proporciona una notación gráfica para modelar diferentes aspectos de un sistema, como la estructura, el comportamiento y las interacciones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd

Introducción al modelado

del software
El lenguaje unificado de modelado, UML

 A mediados de los noventa existían muchos


métodos de análisis y diseño OO
 Mismos conceptos con distinta notación
 Mucha confusión.

 En 1994, Booch, Rumbaugh y Jacobson deciden


unificar las notaciones de sus métodos:
Unified Modeling Language (UML)
 Proceso de estandarización promovido por el OMG
http://www.omg.org
Explosión de métodos OO en los noventa

OMT Coad/Yourdon
Booch Champeaux
Jacobson Martin/Odell
Shlaer-Mellor OOram
Wirfs-Broks BON
Fusion Open
Catalysis
¡Y muchos más! ¡Guerra
de
métodos!
Evolución UML
 Grady Booch y Jim Rumbaugh comenzaron a unificar sus
métodos (Octubre, 1994).
 Borrador de UML (versión 0.8) (Octubre, 1995)
 Ivar Jacobson se une al proyecto (Noviembre, 1995).
 UML 0.9 y se crea un consorcio (Junio, 1996)
 OMG lanza una petición para un lenguaje unificado (1996)
 UML 1.0 es ofrecido al OMG (Enero, 1997)
 Se extiende el consorcio (Enero-Julio, 1997)
 UML 1.1 es ofrecido al OMG (Julio, 1997)
 OMG adopta UML 1.1 (Noviembre, 1997)
 Se crea el UML RTF (1998)
 UML 1.3 (Mayo 1999)
 UML 2.0 (principios de 2005)
OMG (Object Management Group)

 Propone, elabora y mantiene especificaciones


para aplicaciones empresariales distribuidas e
interoperables.
 Estándares OMG
– Corba
– UML y perfiles UML
– OCL
– MOF, XMI
– MDA
Ventajas de la unificación

 Reunir los puntos fuertes de cada método


 Idear nuevas mejoras
 Proporcionar estabilidad al mercado
– Proyectos basados en un lenguaje maduro
– Aparición de potentes herramientas
 Eliminar confusión en los usuarios
Objetivos en el diseño de UML
 Modelar sistemas, desde los requisitos hasta los
artefactos ejecutables desplegados en nodos,
utilizando técnicas OO.
 Cubrir las cuestiones relacionadas con el tamaño
propias de los sistemas complejos y críticos.
 Lenguaje utilizable por las personas y las
máquinas
 Encontrar equilibrio entre expresividad y
simplicidad.
Modelado del Software

 El modelado es el análisis y diseño de aplicaciones


software antes de escribir el código.
 Se crean un conjunto de modelos (“planos del
software”) que permiten especificar aspectos del
sistema como los requisitos, la estructura y el
comportamiento.
 Los modelos
– ayudan a razonar sobre el sistema
– favorecen la comunicación
– permiten documentar las decisiones
– permiten una generación automática de código
Modelos en otras áreas
¿Qué es un modelo?

“Un modelo es una simplificación de la


realidad”

“Un modelo es resultado de un proceso de


abstracción y ayuda a comprender y
razonar sobre una realidad.
¿Qué es un modelo software?
Es una descripción de un aspecto del sistema,
escrita en un lenguaje bien definido.
El lenguaje unificado de modelado, UML

UML es un lenguaje para visualizar, especificar,


construir y documentar los artefactos (modelos)
de un sistema software, desde una perspectiva
orientada a objetos.

“Of the 14 million or so software professionals around


the world, many know of the existence of the UML yet
only a modest percent use the UML on a daily basis”
(Grady Booch, 2002)
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
Modelo de
Estructural
1. cerrarEdicionSubasta(es)
int numAjudicaciones =
: Minimo(pujas.length(),
ControladorAnuncios articulos.length());

: Sistema

2. cerrar() 5. numAdjs = calcularAdjudicaciones()

9. [1..numAdjs]* add(adj)
4. * cerrar()
: AnuncioSubasta : EdicionSubasta as : adjudicaciones :
AnuncioSubasta Adjudicacion
3. * as := get()

8. [1..numAdjs]* adj := crear(as, pg, a)


6. [1..numAdjs]* pg := get()
pujas : 7. [1..numAdjs]* a:= get()
PujaOrdinaria

adj :
Se recorre la colección de
Adjudicacion
pujas obteniendo las pujas
: ArticuloConcreto
ganadoras (consideramos
que la colección está
ordenada de mayor a menor Se crean tantas adjudicaciones
valor de puja). como pujas ganadoras haya.
Cada adjudicación se asocia
con un ArticuloConcreto, una
puja adjudicataria y con la
subasta.

Modelo de
Comportamiento
Utilidad del modelado

 Hay estructuras que no son visibles en los


programas.
 Ayuda a razonar sobre el cómo se implementa.
 Se facilita la comunicación entre el equipo al existir
un lenguaje común.
 Se dispone de documentación que trasciende al
proyecto.
 Generación de código a partir de modelos
– Ha surgido un nuevo paradigma de desarrollo de software
a partir de modelos (p.e. MDA de OMG)
Utilidad del modelado

 Los modelos:
– visualizan cómo es o queremos que sea el
sistema
– especifican la estructura y comportamiento del
sistema.
– guían la construcción del sistema.
– documentan las decisiones.
¿Por qué la mayoría de
empresas no practican el
modelado?

¿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?
Modelos en UML

 Modelado de Casos de Uso


 Modelado Estructural
 Modelado de Comportamiento
 Modelado de flujos de Actividades
 Modelado Implementación
 Modelado de Despliegue
Tipos de modelo
 ¿En qué etapa del proceso se usa? ¿Análisis o
Diseño?
 ¿Cuál es su grado de detalle? ¿Abstracto o
detallado?
 ¿Qué sistema describe? ¿Modelo de negocio o
modelo software?
 ¿Qué aspecto describe? ¿Estructural o de
comportamiento?
 ¿Es específico o independiente de la plataforma?
 ¿A qué plataforma va dirigido? EJB, JDBC, .NET,
CORBA, etc.
Propiedades del modelado

 La elección de los modelos tiene una profunda


influencia sobre cómo se acomete el problema y se
moldea la solución.
 Todo modelo debe estar ligado a la realidad.
 Un único modelo no es suficiente. Cualquier
sistema trivial se aborda mejor a través de un
pequeño conjunto de modelos casi independientes.
UML y el modelado

UML es un lenguaje para visualizar, especificar,


construir y documentar los artefactos (modelos) de
un sistema que involucra una gran cantidad de
software, desde una perspectiva orientada a objetos.

 UML es una notación, no es un proceso


 Se han definido muchos procesos para UML.
– Rational ha ideado RUP, el“proceso unificado”.
 Utilizable para sistemas que no sean software
Marco Conceptual de UML

 Bloques básicos de construcción


– Elementos
Estructurales, Comportamiento, Agrupación,
Anotación
– Relaciones
– Diagramas
 Reglas para combinar bloques
– Establecen qué es un modelo bien formado
 Mecanismos comunes
– Especificaciones, Extensibilidad, Dicotomía clase-
instancia, Dicotomía interfaz-realización
Elementos Estructurales

 Partes estáticas de un modelo


Ventana <<Interface>> colaboración
origen IAvisable
IAvisable
tamaño

abrir()
cerrar()
interface Gestión Pedidos
mover()
dibujar()

clase

RealizarCompra
caso de uso
Elementos Estructurales

Gestor Eventos
clase activa
suspender() FormularioPedido
vaciarCola()

componente
<<artifact>>
window.dll
Servidor

nodo

artefacto
Elementos de Comportamiento

Son las partes dinámicas de UML.

Interacción
Conjunto de mensajes intercambiados entre varios
objetos con un propósito particular.

cerrarPuja()
mensaje
Elementos de Comportamiento

Máquina de estados
Secuencia de estados por las que pasa un objeto durante
su vida en respuesta a eventos.

activado estado
Elementos de Agrupación

Son las partes de organización de los modelos UML

Modelo del Negocio


paquete

Un paquete incluye un conjunto de elementos de cualquier


naturaleza.

Tiene una naturaleza conceptual.


Elementos de Anotación

Son las partes explicativas de los modelos UML

Retorna 0 si no Nota
existe el valor
Relaciones

Dependencia

0..1 *
Asociación
patron empleado

Generalización

Realización
Ejemplo de diagrama de clases

IteradorCuenta

Cuenta Domiciliacion
1 0..n

Ahorro Corriente

Operacion
Periodica
Diagramas de UML 2.0
 Diagrama de Clases
 Diagrama de Objetos
 Diagrama de Componentes Diagramas no
 Diagrama de Estructura Compuesta son modelos
 Diagrama de Casos de Uso
 Diagrama Secuencia
 Diagrama Comunicación (antes de Colaboración)
 Diagrama de Estados
 Diagrama de Actividades
 Diagrama de Despliegue
 Diagrama de Artefactos
 Diagrama de Paquetes
 Diagrama de Tiempos
Diagramas de UML 2.0
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
Responsable Serv icio PE Alumno Sistema

Registrar Curso

Aprobar Curso
Modelo del
Preinscripción Negocio
Avisar
Admitidos

Matriculación
Hay alumnos?

no

Cambiar
admitidos Hay alumnos?

no Diagrama de
actividades
Cancelar Curso

Crear Proyecto

Cerrar Curso
Modelo
Casos de Usos

Realizar puja ordinaria


Cerrar edición de subasta

Pujador Cancelar puja ordinaria

Realizar pago de subasta ordinaria

Rechazar adjudicación
Sistema
Notif icar adjudicatario
Teleoperador Participante

Crear edición de subasta

Diagrama de
Anular anuncio de subasta casos de uso
Administrador
Anular edición de subasta
Diagrama Modelo
de clases Estructural
1. cerrarEdicionSubasta(es)
int numAjudicaciones =
: Minimo(pujas.length(),
ControladorAnuncios articulos.length()); Diagrama de
: Sistema comunicación
2. cerrar() 5. numAdjs = calcularAdjudicaciones()

9. [1..numAdjs]* add(adj)
4. * cerrar()
: AnuncioSubasta : EdicionSubasta as : adjudicaciones :
AnuncioSubasta Adjudicacion
3. * as := get()

8. [1..numAdjs]* adj := crear(as, pg, a)


6. [1..numAdjs]* pg := get()
pujas : 7. [1..numAdjs]* a:= get()
PujaOrdinaria

adj :
Se recorre la colección de
Adjudicacion
pujas obteniendo las pujas
: ArticuloConcreto
ganadoras (consideramos
que la colección está
ordenada de mayor a menor Se crean tantas adjudicaciones
valor de puja). como pujas ganadoras haya.
Cada adjudicación se asocia
con un ArticuloConcreto, una
puja adjudicataria y con la
subasta.

Modelo de
Comportamiento
Máquina de Estado

Diagrama introducirProducto

de estado

Espera Venta introducirProducto Introduccion


Productos

Terminar Venta

manejarRespuesta
efectuar Pago Efectivo Espera
Pago

Autorizacion
Pago
efectuar Pago Tarjeta
Mecanismos comunes de UML

 Dicotomía clasificador /instancia

Persona
Elena : Elena :
nombre Persona Persona
direccion
telefono
: Persona : Persona
Mecanismos comunes de UML

 Dicotomía interfaz / implementación

IOrtografia

IDiccionario asistenteOrtografico

IUnknown
Mecanismos comunes de UML

 Dicotomía rol / tipo

Pedido

cliente: Persona

El tipo declara la clase de una entidad, por ejemplo un objeto o


parámetro, y el rol describe el significado de la entidad en un
determinado contexto, tal como una clase, componente o
colaboración.
Mecanismo de extensibilidad de UML

 Estereotipos
– Extienden el vocabulario de UML, permitiendo definir
nuevos tipos de elementos y relaciones a partir de
los existentes pero específicos de un problema o
dominio.
– Algunos son predefinidos en UML.
 Valores etiquetados
– Extienden las propiedades de un estereotipo,
permitiendo crear nueva información en la
especificación del estereotipo.
 Restricciones
– Especifican condiciones sobre los elementos del
modelo.
Perfiles UML

 UML es una familia de lenguajes


– Lenguaje core + Perfiles
 Un perfil define una extensión de UML mediante la
especialización de UML.
 Un perfil define una forma específica de usar UML para
un dominio concreto: EJB, aplicaciones web, CORBA,
modelado del negocio, esquemas relacionales, ..
 Agrupación de un conjunto de estereotipos, valores
etiquetados y restricciones, con su
correspondiente notación.
Ejemplos de estereotipos predefinidos
Clase estereotipadas

<<Actor>>
Cliente

Cliente
IComparator
Estereotipos y Valores Etiquetados

<<Table>> <<BusinessEntity>>
Cliente
Empleado <<UniqueId>> id : String
nombre : String
<<key>> dni : String 1 apellido : String
nombre : String
edad : int <<Query>> findByLastName()

Estereotipo: Table Estereotipo: BusinessEntity


Valores Etiquetados: key Valores Etiquetados: UniqueID y Query
Restricciones
 Se expresan en OCL
 Permiten asociar información que no se puede
expresar en UML
 Ejemplo: “Dos tablas de un mismo esquema
relacional deben tener distinto nombre”.

context Table
inv: tablasDistintoNombre
tablas -> forAll ( t1, t2 |
t1.name = t2.name implies t1 = t2)
end
Restricciones

{xor}
restricciones

{self.esposa.sexo = mujer and


self.esposo.sexo = hombre}
¡Hola, Mundo!

import java.awt.Graphics;
class HolaMundo extends java.applet.Applet {
public void paint (Graphics g) {
g.drawString (“¡Hola, Mundo!”,10,10);
}
}

HolaMundo
g.drawString
("Hola, mundo”)
paint()
Diagrama de Clases
Organización en Paquetes
Organización en Paquetes

java

HolaMundo
applet

awt

lang
Diagrama de Secuencia
root : Thread : Toolkit : ComponentPeer target : HolaMundo

run
callbackLoop

handleExpose
paint
Diagrama de Artefactos

HolaMundo

<<manifest>> <<manifest>>

hola.java
<<artifact>>
HolaMundo.class

hola.html

hola.jpg

También podría gustarte