Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
UML
Curso: Desarrollo de Sistemas de Informacin
10 de Agosto
Aprendizajes Esperados
Comprender los conceptos asociados a la clase y el diseo de un diagrama de clases que representen la solucin para proyectos planteados.
UML
Actividades a Realizar
Conocer trminos bsicos de Orientacin a Objetos. Estudiar las tcnicas de modelado de datos UML. Comprender diagramas de clases para ser aplicados a una problemtica. Construir clases sencillas, aplicando conceptos aprendidos.
UML
Introduccin
El trmino de Programacin Orientada a Objetos indica ms una forma de diseo y una metodologa de desarrollo de software que un lenguaje de programacin.
UML
UML
Lenguaje Unificado de Modelado (Unified Modeling Language). Lenguaje de modelado de sistemas de software. Lenguaje grfico para construir, documentar, visualizar y especificar un sistema de software.
UML
Diagramas UML
Modela procesos de negocios, funciones, esquemas de bases de datos, expresiones de lenguajes de programacin, etc. En UML 2.0 hay 13 tipos de diagramas. - Diagramas de estructura: Diagrama de clases Diagrama de componentes Diagrama de objetos Diagrama de estructura compuesta (UML 2.0) Diagrama de despliegue Diagrama de paquetes
UML
Diagramas UML
-Diagramas de comportamiento: Diagrama de actividades Diagrama de casos de uso Diagrama de estados -Diagramas de interaccin: Diagrama de secuencia Diagrama de comunicacin Diagrama de tiempos (UML 2.0) Diagrama de vista de interaccin (UML 2.0) Algunos programas gratuitos para modelar en UML son: ArgoUML, Dia, gModeler, MonoUML, StarUML, TCM, Umbrello Herramienta, UMLet.
UML
Paradigma OO
Resultado de la evolucin natural de la programacin, devenido en metodologa de programacin de propsito general que simula la forma en que el hombre trabaja y cuya idea bsica es que percibimos al mundo que nos rodea como una variedad de objetos.
UML
UML
Beneficios POO
Beneficios que se obtienen con el desarrollo de la P.O.O. Permite obtener aplicaciones ms modificables, fcilmente extendibles y a partir de componentes reusables. Esta reusabilidad del cdigo disminuye el tiempo que se utiliza en el desarrollo y hace que el desarrollo del software sea mas intuitivo. El esfuerzo del programador ante una aplicacin orientada a objetos se centra en la identificacin de las clases, sus atributos y operaciones asociadas
UML
Conceptos Bsicos
Un Objeto es una entidad con una estructura de datos interna bien definida, junto a un conjunto de acciones que describen su comportamiento. Es la unidad bsica de la POO.
Objetos
Un objeto o instancia es una variable concreta de una clase con su propia copia de variables miembros. Un objeto tiene estado, comportamiento e identidad. Tiene datos internos que le dan el estado. Tiene mtodos para producir comportamiento. Cada objeto tiene una direccin nica en memoria lo que le da identidad.
UML
Objetos
son cosas que se pueden percibir por los 5 sentidos..
UML
Objetos
Caractersticas de Objetos Reales Tienen propiedades especficas Tienen un comportamiento Relaciones.
Ejemplos:
Perro: Propiedades su nombre, su color, su estado de hambre. Comportamiento est ladrando, est corriendo..
Bicicleta: Propiedades marca, cadencia de los pedales, velocidades. Comportamientos frenado, acelerado, cambios.
UML
Objetos
Los objetos, son modelados a partir de los objetos reales, basndose en sus propiedades y comportamientos. Las propiedades o atributos de un objeto se almacenan en VARIABLES Los comportamientos se implementan utilizando los METODOS Variable: es un item de data referenciado por un identificador. Metodo: es una funcin o procedimiento asociado a un objeto. Son las operaciones que pueden realizarse sobre el objeto.
UML
Objetos
Mensajes
UML
Objetos
Mensajes Instruccin que se enva a un objeto.
El objeto al cual se le enva el mensaje El mtodo que se desea ejecutar. Cualquier otra informacin que necesite el mtodo para
poder actuar (parmetros).
Objeto.mtodo(parmetros)
Ejemplo: Telefono.llamar(2416881)
UML
Conceptos Bsicos
Mensaje: Forma de solicitar una accin a un objeto.
Cliente Emisor
Servidor
Mensaje
Receptor Objeto
UML
Conceptos Bsicos
Una clase es: una categora de objetos con caractersticas comunes. una plantilla que se usa para crear mltiples objetos con caractersticas similares.
Las clases engloban las caractersticas de un conjunto particular de objetos. Ejemplo: Florista
UML
Conceptos Bsicos
Las clases son tipos de variables o tipos de datos creados por el usuario. Las clases pueden estar formadas por variables miembros y funciones miembros.
UML
Conceptos Bsicos
Cada clase puede estar compuesta por:
UML
Ejemplos:
Variables Miembros
Funciones miembros Variables Miembros Funciones miembros
Florista
Nombre Salario Edad Vender flores Enviar flores a otra ciudad
UML
Clases
Mientras que un objeto es una entidad concreta que existe en tiempo y espacio, una clase representa slo una abstraccin, la escencia del objeto.
UML
Clases
Instancias de una Clase
Son aquellos objetos de esa clase, que aunque tienen las mismas caractersticas tienen valores asociados diferentes para esas caractersticas.
Ejemplo: Clase Telfono
014-975874
9785482
UML
Consultas?
Ejercicios
Buscar 4 ejemplos de clase indicando sus caractersticas (atributos) y comportamiento (mtodos). Para cada clase, mencionar tres instancias e indicar los valores de los atributos.
UML
Aprendizajes Esperados
Conocer la estructura de atributos y mtodos de una clase. Entender la visibilidad de una clase. Comprender las relaciones entre las clases. Aplicar las buenas prcticas para el diseo de Clases. Trabajar con las herramientas StarUML y/o ArgoUML para disear Clases.
La sintaxis de una operacin en UML es: Visibilidad <nombre> (lista de parmetros): tipo que retorna
Donde visibilidad es uno de los siguientes:
Visibilidad
Publico: Un atributo, propiedad o mtodo pblico es visible fuera de clase en cualquier parte. Se nos ocultan otros detalles tcnicos. (+) Protegido: Un elemento protegido es visible solamente en la unidad donde se declare la clase y en cualquier clase que descienda de sta. (#) Privado: Un atributo, propiedad o mtodo privado es invisible fuera de la unidad donde se lo declara. (slo sus mtodos de la misma clase lo pueden accesar).(-)
Ejemplo
Persona #nombre: cadena = " " #rut: cadena = " " #edad: entero = 0 +mostrarEdad(rutPersona): entero
Diagrama de Clases
Multiplicidad 0..1
empleador
rol
Rol: Identificado como un nombre a los finales de la lnea, describe la semntica de la relacin en el sentido indicado. Cada asociacin tiene dos roles; cada rol es una direccin en la asociacin. El rol puede estar representado en el nombre de la clase.
Si la multiplicidad mnima = 0 establece una relacin OPCIONAL. Si la multiplicidad mnima >= 1 establece una relacin OBLIGATORIA.
Ejemplos:
Ejemplos
Asociacin
Relacin estructural que describe conexin entre objetos. Lnea que une dos o ms clases. Tipos de asociaciones Unaria Binaria N-aria
UML DISEO DE CLASES
una
Asociacin
Asociacin Binaria: Representa una relacin sencilla entre dos clases, no muy fuerte (es decir, no se exige dependencia existencial). Se indica como una lnea slida que une dos clases. Asociacin n-aria: Es una asociacin entre tres o ms clases. Se representa como un diamante del cual salen lneas de asociacin a las clases.
UML DISEO DE CLASES
Asociacin Binaria
Departamento
dirige 0..1 director 1
Profesor
Un cliente puede tener asociadas muchas Ordenes de Compra, en cambio una orden de compra solo puede tener asociado un cliente.
Asociacin n-aria
empleador Empresa trabajadores Empleado
1..*
superior 0..1
subordinado 1..*
Relaciones involutivas
Cuando la misma clase aparece en los dos extremos de la asociacin.
Composicin
Por Valor: Es un tipo de relacin esttica, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye. Es una asociacin fuerte que implica:
Dependencia existencial. El elemento dependiente desaparece al destruirse el que lo contiene y, si es de cardinalidad 1, es creado al mismo tiempo. Hay una pertenencia fuerte. Se puede decir que el objeto contenido es parte constitutiva y vital del que lo contiene.
UML DISEO DE CLASES
Composicin
Los objetivos contenidos no son compartidos, esto es, no hacen parte del estado de otro objeto. Son relaciones que impliquen en su significado que una clase est compuesta por otras clases dependientes.
Se denota dibujando un rombo coloreado del lado de la clase que contiene a la otra en la relacin.
Ejemplo 1: Composicin
Ejemplo 2: Composicin
La relacin entre ambos objetos es tal, que el contenido es una parte importante del contenedor, de tal forma que el primero no tiene sentido suelto, y el segundo, necesita definir al primero para ampliar su significado. El avin tiene sentido por si solo, pero esta claro que esta compuesto de 2 alas, esta claro, que un avin siempre tendr sus dos alas, y estas siempre sern del mismo avin.
Ejemplo 3: Composicin
Agregacin
Por Referencia: Tipo de relacin dinmica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye. Son relaciones que implican en su significado que una clase contiene a otras clases independientes. Cuando deja de existir la clase agregada no tiene por qu dejar de existir el resto de las clases de la agregacin Se denota por un rombo sin rellenar en un o de los extremos.
Ejemplo 1: Agregacin
Un objeto de tipo, ciudad tiene una lista de objetos de tipo aereopuerto, esto quiere decir, que una ciudad, tiene un nmero de aereopuertos, destacar, que la cardinalidad del extremo que lleva el rombo, es siempre uno.
Ejemplo 2: Agregacin
Un Almacn posee Clientes y Cuentas (los rombos van en el objeto que posee las referencias). Cuando se destruye el Objeto Almacn tambin son destruidos los objetos Cuenta asociados, en cambio no son afectados los objetos Cliente asociados.
Dependencia
Relacin (ms dbil que una asociacin) que muestra la relacin entre un cliente y el proveedor de un servicio usado por el cliente. Es una relacin donde existen entidades independientes y otras dependientes, lo que implica que cambiar el elemento independiente puede requerir cambios en los dependientes. Se representa con una lnea punteada direccional, indicando el sentido de la dependencia.
UML DISEO DE CLASES
Ejemplo: Dependencia
Generalizacin/Especializacin
Relacin entre una superclase (clase padre) y sus subclases (clases hijos). Objetos de distintas clases pueden tener atributos similares y exhibir comportamientos parecidos (ej. Animales, mamferos)
Ejemplo 1: Generalizacin
Ejemplo 2: Generalizacin
Clase Abstracta
Se denota con el nombre de la clase y de los mtodos con letra "itlica". Esto indica que la clase definida no puede ser instanciada pues posee mtodos abstractos (an no han sido definidos, es decir, sin implementacin). La nica forma de utilizarla es definiendo subclases, que implementan los mtodos abstractos definidos.
Identificacin de Clases
Problema
Una biblioteca contiene libros y revistas. Puede haber varias copias de un libro. Algunos de los libros son reservados slo para prstamos a corto plazo. Todos los otros pueden ser prestados a cualquier miembro de la biblioteca por tres semanas. Los miembros de la biblioteca pueden normalmente solicitar hasta seis items de una vez, pero miembros del staff pueden solicitar hasta doce items a la vez. Solamente miembros del staff pueden obtener prestado revistas.
El sistema debe conservar la pista de cuando los libros y revistas son prestados y retornados forzando las reglas de la biblioteca.
Problema
Una biblioteca contiene libros y revistas. Puede haber varias copias de un libro. Algunos de los libros son reservados slo para prstamos a corto plazo. Todos los otros pueden ser prestados a cualquier miembro de la biblioteca por tres semanas. Los miembros de la biblioteca pueden normalmente solicitar hasta seis items de una vez, pero miembros del staff pueden solicitar hasta doce items a la vez. Solamente miembros del staff pueden obtener prestado revistas.
El sistema debe conservar la pista de cuando los libros y revistas son prestados y retornados forzando las reglas de la biblioteca.
Clases Candidatas
Biblioteca Libro Revista Copia PrstamosACortoPlazo MiembroDeBiblioteca Semana Itemlibro o revista Tiempo MiembroDelStaff Sistema Regla Nombre del Sistema
Operaciones
MiembroDeBiblioteca MiembroDeBiblioteca MiembroDeStaff MiembroDeStaff pide prestado devuelve pide prestado devuelve Copia Copia Revista Revista
Diagrama de Clases
Club de Baile
Consejos Prcticos
No lanzarse a dibujar clases y asociaciones sin sentido Elaborar un modelo simple Los nombres de objetos, asociaciones, atributos y operaciones deben ser significativos Tratar de usar asociaciones binarias Utilizar los elementos necesarios Documentar el modelo
UML DISEO DE CLASES
Aprendizajes Esperados
Conocer y disear los documentos asociados al Anlisis de sistema. Conocer y aplicar Diagramas de casos de Uso, escenario, diseo de prototipo en el proceso de Anlisis de Sistema.
UML
Actividades a Realizar
Repasar conceptos (requerimientos). de especificacin de requisitos
UML
Los requisitos funcionales (que debe hacer el sistema) se pueden especificar por niveles y estos deben corresponder con diagramas de casos de uso. Los requerimientos mal planteados incrementan los costos.
Requerimientos Funcionales
Son declaraciones de los servicios que proveer el sistema, de la manera en que ste reaccionar a entradas particulares. Los requerimientos funcionales de un sistema describen la funcionalidad o los servicios que se espera que ste provea.
Excepciones No tiene bonos para alquilar. Los bonos que tiene no sirven para
Requerimientos No Funcionales
Restricciones de los servicios o funciones ofrecidos por el sistema. Incluyen restricciones de tiempo, sobre el proceso de desarrollo, estndares, etc.
Alternativamente definen las restricciones del sistema como la capacidad de los dispositivos de entrada/salida y la representacin de datos que se utiliza en la interface del sistema.
Tipos de Requerimientos
Requerimientos del producto.
Especifican el comportamiento del producto;
como los requerimientos de desempeo en la rapidez de ejecucin del sistema y cunta memoria se requiere;
Los de fiabilidad que fijan la tasa de fallas para que el sistema sea aceptable; Los de portabilidad.
Tipos de Requerimientos
Requerimientos organizacionales. Se derivan de las polticas y procedimientos existentes en la organizacin del cliente y en la del desarrollador:
estndares en los procesos que deben utilizarse; requerimientos de implementacin como los lenguajes de programacin o el mtodo de diseo a utilizar. los requerimientos de entrega que especifican cundo se entregar el producto y su documentacin.
Tipos de Requerimientos
Requerimientos externos. Se derivan de los factores externos al sistema y de su proceso de desarrollo.
Requerimientos que definen la manera en que el sistema interacta con los otros sistemas de la organizacin. Requerimientos legales que deben seguirse para asegurar que el sistema opere dentro de la ley. Requerimientos ticos. Estos ltimos son impuestos al sistema para asegurar que ser aceptado por el usuario y por el pblico en general.
Casos de Uso
Describen el comportamiento del sistema bajo la forma de acciones y reacciones bajo el punto de vista del usuario. Los casos de uso describen funcionalidad del sistema sin dar detalles de implementacin. Permiten la comunicacin entre desarrolladores y usuarios. Permiten definir los lmites de un sistema y las relaciones entre el sistema y el entorno.
Casos de Usos
Un diagrama de Casos de Uso muestra la distintas operaciones que se esperan de una aplicacin o sistema y cmo se relaciona con su entorno (usuario u otras aplicaciones). Es una herramienta esencial para la captura de requerimientos y para la planificacin y control de un proyecto interactivo.
Casos de Usos
Se representa en el diagrama por una elipse que denota un requerimiento solucionando por el sistema. Cada caso de uso de uso es una operacin completa desarrollada por los actores y por el sistema en un dilogo.
Casos de Uso
Ejemplo:
Actor A
Caso de Uso A
Caso de Uso B
Actor B
88
Ejemplos
Supervisor
Administrativo
Preparar Catlogo
Sistema Inventario
Actor
Es un usuario del sistema, que necesita o usa alguno de los casos de uso. Un usuario puede jugar ms de un rol. Un solo actor puede actuar en muchos casos de uso; recprocamente, un caso de uso puede tener varios actores. Los actores no necesitan ser humanos pueden ser sistemas externos que necesitan alguna informacin del sistema actual.
Un Actor
Puede ser
Un usuario humano Un sistema que provee o recibe informacin del sistema Es una Abstraccin un Rol, no es una persona o un cargo determinado.
Tipos de Actores
Principal: Inicia el Caso de Uso Secundario: Participa en el caso de uso.
Escenarios
Los Casos de uso describen la funcionalidad del sistema a alto nivel, los escenarios describen la funcionalidad de una parte.
Comunicacin
Entre un actor y un caso de uso, denota la participacin del actor en el caso de uso determinado.
Actor
Caso de Uso
Inclusin
Una instancia del Caso de Uso origen incluye tambin el comportamiento descrito por el Caso de Uso destino. <<include>> en su versin actual, reemplaz al denominado <<uses>>
99
Ejemplo Inclusin
Extensin
El Caso de Uso origen extiende comportamiento del Caso de Uso destino. <<extends>> el
102
Ejemplo extend
Include vs extend
<<include>> pretende evitar duplicacin de interacciones en distintos casos de uso, la relacin <<extends>> pretende describir una variacin del comportamiento normal de un caso de uso, sobre todo cuando dicha variacin pudiera complicar la legibilidad del caso de uso.
106
cules son las tareas del actor? qu informacin crea, guarda, modifica, destruye o lee el actor? debe el actor notificar al sistema los cambios externos? debe el sistema informar al actor de los cambios internos?
UML DIAGRAMAS DE CASOS DE USO
107
108
109
Casos de Usos