UML Diagramas de Clases
|
|
|
- Manuela Rivas Jiménez
- hace 10 años
- Vistas:
Transcripción
1 UML (UML ilustrado) Universidad de Los Andes Demián Gutierrez Marzo
2 ( Qué Muestran?) La estructura estática del sistema modelado (piense en el plano estructural de un ingeniero civil) Las relaciones que existen entre las distintas clases y objetos del sistema Las clases y objetos del sistema y su estructura interna Se concentran en los elementos del sistema de forma independiente del tiempo (Muestran aspectos estáticos y no dinámicos) 2
3 ( Para qué Sirven?) Realizar la abstracción de un dominio y formalizar el análisis de los conceptos relacionados al mismo (Modelo de Dominio) (...o de cualquier tipo de conceptos) Definir / Documentar una solución de diseño, es decir, la estructura del sistema que se va a implementar en términos de clases y objetos Definir / Documentar modelado de datos (Cumplen la misma función en este sentido de los diagramas ERE) 3
4 Advertencia 4
5 Nota Importante El hecho de que exista cierta característica en un diagrama (ej: la declaración de métodos) no significa que de forma obligatoria se deba usar, simplemente son herramientas que están disponibles. Cuando usted arregla algo, no usa todas las herramientas de su caja de herramientas, sólo usa lo que necesita para realizar el trabajo. Igual ocurre con UML y las herramientas de modelado, use sólo las herramientas (diagramas / constructos) que necesita para una situación particular y no sobre use las herramientas, tratando de usarlas sólo porque si... 5
6 Qué es un Dominio de Aplicación? Qué es un Modelo de Dominio? 6
7 La mayoría de los conceptos que se presentan en las siguientes transparencias están relacionados con los conceptos de programación orientada a objetos (POO) vistos en PR2 7
8 Qué es una Clase? 8
9 ( Que es una Clase?) Clase / Clasificador: Definición de la estructura y el comportamiento de un conjunto de objetos que tienen (comparten) el mismo patrón estructural y de comportamiento Un ejemplo de una clase número complejo : Base de Datos: No les suena esto al concepto de tipo de entidad? 9
10 (Atributos y Objetos) Atributos: Propiedades relevantes de un clase Representan su estructura Pueden ser simples o compuestos Métodos: Comportamiento asociado a una clase 10
11 La relación que existe entre el código y una clase en UML es muy importante Necesito que hablemos el mismo idioma! 11
12 ( Que es una Clase?) public class ComplexNumber { private double r; private double i; public ComplexNumber(double r, double i) { this.r = r; this.i = i; } } public double norm() { return Math.sqrt(r * r + i * i); } El código es Java ;-) 12
13 ( Que es una Clase?) Visibilidad: - Privado ~ Paquete # Protegido + Público Valor por Defecto Tipo de Dato Nombre Atributo Nombre del Método Multiplicidad Parámetros de Entrada Tipo de Retorno Base de Datos: Generalmente, cuando se desarrolla un modelo de datos no se utiliza toda esta complejidad. Por ejemplo, generalmente no se definen métodos 13
14 ( Que es una Clase?) Para los Atributos: [visibilidad] [/] nombre [:tipo] [multiplicidad] [=valor por omisión] [{propiedad}] Para los Métodos: [visibilidad] nombre [(lista de parámetros)] [{propiedad}] Donde un parámetro es: [dirección (in/out/inout)] nombre: tipo [multiplicidad] [=valor por omisión] Las propiedades pueden una o mas de las siguientes: readonly, isquery, Concurrent, Guarded, Sequential, etcétera... o cualquier otra predefinida... 14
15 qué es un objeto? qué es una instancia? qué es instanciar? 15
16 Conceptos de Objetos () Instancia: Cada objeto que pertenece a una clase Instanciación / Instanciar: Proceso de generación o creación de las instancias (objetos) de una clase pedro = new Persona() Objeto: Representación de algo que se describe mediante un identificador, una estructura y un comportamiento. Instancia de una Clase 16
17 public class Persona { private private private private } String char Date String nombre; sexo; fechanac; profesion; public Persona( String nombre, char sexo, Date fechanac, String profesion) { this.nombre = nombre; this.sexo = sexo; this.fechanac = fechanac; this.profesion = profesion; } Existe una diferencia muy importante entre un Objeto y una Clase 17
18 7, 1988), Actor Persona p2 = new Persona( Andrea, 'F', new Date(14, 4, 1980), Ceramista ); Persona p3 = new Persona( María, 'F', new Date(23, 11, 1960), Médico Persona p4 = new Persona( Luis, 'M', new Date(12, ); ); Crear Instancias (Instanciar) Persona p1 = new Persona( Pedro, 'M', new Date(16, 1, 1977), Ingeniero ); 18
19 (Parametrizables / Abstractas / Utilitarias) Clases Parametrizables: Plantillas de clases que se pueden parametrizar con uno o más tipos de datos según sea necesario (Clases Genéricas) Clases Abstractas: Clases que no tienen implementación para todos los métodos definidos Clases Utilitarias: Clases que contienen librerías de funciones (no interesa mucho la implementación) 19
20 (Parametrizables / Abstractas / Utilitarias) public class Lista<Tipo> { public void insertar (Tipo t) { /* código */ } public void eliminar (Tipo t) { /* código */ } public Tipo eliminar (int pos) { /* código */ } public Tipo obtener { /* código */ } (int pos) public Iterador iterador () { /* código */ } } // La clase se usa de la siguiente forma: Lista<int> listadeenteros = new Lista<int>(); Lista<Persona> listadepersonas = new Lista<Persona>(); 20
21 (Parametrizables / Abstractas / Utilitarias) public abstract class FiguraBase { public void insertarencanvas(canvas c) { /* código */ } public void eliminardecanvas(canvas c) { /* código */ } // Los métodos siguientes son abstractos, // es decir, no tienen implementación } public public public public abstract abstract abstract abstract double double double double getarea(); getperimetro(); getrectcont(); getdibujar(); 21
22 (Especialización / Generalización / Herencia) Jerarquía de Clases: Relación ES-UN(A), abstracciones de generalización / especialización de clases Herencia: Propiedad que tienen las clases de heredar de sus superclases estructura y/o comportamiento (Simple / Múltiple) 22
23 (Especialización / Generalización / Herencia) Herencia: Disjunta / Traslapada Total / Parcial 23
24 (Especialización / Generalización / Herencia) public abstract class Figura { public abstract double calcarea (); public abstract void dibujar (Canvas canvas); } public class Rectangulo extends Figura { //... } public class Elipse extends Figura { //... } public class Cuadrado extends Rectangulo { //... } public class Circulo extends Elipse { //... } 24
25 Polimorfismo: Vista lógica o estructural se puede usar el mismo nombre para la definición de un método en varias clases sin importar la relación entre las mismas. Persona -oid: OID -nombre: Cadena(64)[1] -direccion: Cadena(128)[0..1] -telefono: Cadena(16)[0..1] Reescritura o sobrecarga: permite nombrar código diferente con el mismo nombre para más de una clase de objetos. Encadenamiento tardío: permite seleccionar el código adecuado al objeto definido en la invocación del método. +modifica() +despliega() Trabajador Estudia -cargo: TipoCargo[1] -sueldoactual: Moneda[0..1] -carrera: Tipo +despliega() +despliega() Preparador -fechaconcurso: Fecha[1] +despliega() Mayo,2008 EISULA. Dpto. De Computación. Isabel Besembel C. Base de Datos. Sem. A
26 Relaciones (Vínculos) Asociaciones? 1:1, 1:N y N:M? Eso se puede ver mejor con un ejemplo 26
27 Relaciones (Vínculos) 1:N Vínculo / Relación Trabaja En / Tiene Departamento de Control Departamento de Investigación de Operaciones Departamento de Computación Profesores Cuántos profesores puedo tener en el conjunto de entidades Profesores? Y en Departamentos? Departamentos Con cuantos profesores puede estar asociado un departamento? Y al contrario? 27
28 Relaciones (Vínculos) N:M Vínculo / Relación Dicta / Es dictada por Programación 10 Programación 20 Bases de Datos Profesores Cuántos profesores puedo tener en el conjunto de entidades Profesores? Y en Materias? Materias Con cuantos profesores puede estar asociado una materia? Y al contrario? 28
29 Relaciones (Vínculos) 1:1 Vínculo / Relación Es novia de / Es novio de Chicas Cuántos muchachos puedo tener en el conjunto de entidades Chicos? Y en Chicas? Chicos Con cuantos Chicos puede estar asociados (ser novios) de una Chica en particular? Y al contrario? 29
30 (Asociaciones) Asociaciones: Representan relaciones estructurales entre las clases (la forma en que están relacionadas entre si las clases) Cómo se implementan? 30
31 (Asociaciones) public class Departamento { // Una lista de profesores // (Un departamento tiene muchos profesores) private List<Profesor> profesorlist; } //... public class Profesor { // Una referencia a un departamento // (Un profesor pertenece sólo a un departamento) private Departamento departamentoref; } 31
32 (Asociaciones) public class Estudiante { // Una lista de asignaturas // (Un estudiante tiene muchas asignaturas) private List<Asignatura> asignaturalist; } //... public class Asignatura { // Una lista de estudiantes // (Una asignatura tiene muchos estudiantes) private List<Estudiante> estudiantelist; } 32
33 (Asociaciones) public class Estudiante { // Una lista de EstAsigRelacion (Una clase relaciã³n) private List<EstAsigRelacion> estasigrelacionlist; } public class EstAsigRelacion { // referencias cruzadas a las dos clases relacionadas private Estudiante estudianteref; private Asignatura asignaturaref; } public class Asignatura { // Una lista de EstAsigRelacion (Una clase relaciã³n) private List<EstAsigRelacion> estasigrelacionlist; } 33
34 (Asociaciones) Una relación muchos a muchos se puede ver como dos relaciones uno a muchos 34
35 (Asociaciones) public class Departamento { // Una referencia a una secretaria // (Un departamento tiene sólo una secretaria) private Secretaria secretariaref; } //... public class Secretaria { // Una referencia a un departamento // (Una secretaria pertenece sólo a un departamento) private Departamento departamentoref; } 35
36 (Asociaciones) public class Estudiante { // Una lista de Nota (Una clase asociación) private List<Nota> notalist; } public class Nota { // Datos de la asociación private double nota; private int asistencias } // referencias cruzadas a // las dos clases relacionadas private Estudiante estudianteref; private Seccion seccionref; public class Seccion { // Una lista de Nota (Una clase asociación) private List<Nota> notalist; } 36
37 (Asociaciones / Navegabilidad) Navegabilidad: Representan relaciones estructurales entre las clases (la forma en que están relacionadas entre si las clases) Navegable por ambos lados Navegable NO navegable Indefinido 37
38 (Agregación / Composición) Agregación: Es una relación en la que una de las clases representa un todo y la otra representa parte de ese todo Composición: Es una forma más fuerte de la agregación, en la que el todo no puede existir sin sus partes Cómo se implementan? Cuál es la diferencia con las asociaciones? 38
39 (Agregación / Composición) Composición: Las partes no pueden existir sin el todo Composición: El todo no puede existir sin las partes En contradicción con el ejemplo anterior: (Ejemplo Anterior) La parte (La rueda) puede existir sin el todo? 39
40 (Agregación / Composición) Peor aún... Agregación: Las partes pueden ser compartidas por varios todos! Composición: Las partes NO pueden ser compartidas por varios todos! 40
41 (Agregación / Composición) Precise semantics of shared aggregation varies by application area and modeler Indicates that the property is aggregated compositely, i.e., the composite object has responsibility for the existence and storage of the composed objects (parts) Citas tomadas literalmente del Estándar de UML 41
42 (Dependencia) Dependencia: Relación en la que una clase necesita (requiere) a otra para poder funcionar La clase persona depende de la clase teléfono 42
43 Qué / Cuál es la Interfaz de una clase? 43
44 (Interfaces / Realizaciones) Interfaz: Clase asociada que describe su comportamiento visible. Conjunto de métodos que describen el comportamiento visible de una clase EditorGrafico es una clase que usa la interfaz Idibujable, independientemente que la implemente un Círculo o cualquier otra clase (Polimorfismo) <<interface>> es un estereotipo 44
45 (Interfaces / Realizaciones) La interfaz IGeometrico es implementada / realizada tanto por Círculo como por Rectángulo Desde el punto de vista de POO, tanto Círculo como Rectángulo son objetos de tipo IGeometrico 45
46 (Interfaces / Realizaciones) import java.awt.point; import java.awt.rectangle; public class Circulo implements IGeometrico, IDibujable { private double centro; private double radio; public double getarea() { /* de IGeometrico */ } public double getperimetro() { /* de IGeometrico */ } public Rectangle getrectcont() { /* de IGeometrico */ } public void dibujar() { /* de IDibujable */ } public Point public void { /* de circulo */ } { /* de circulo */ } getcentro() setcentro(...) public double getradio() public void setradio(...) } { /* de circulo */ } { /* de circulo */ } 46
47 (Interfaces / Realizaciones) import java.awt.rectangle; public interface IGeometrico { public double getarea(); public double getperimetro(); } public Rectangle getrectcont(); public interface IDibujable { public void dibujar(); } 47
48 (Interfaces / Realizaciones) List<IDibujable> elementosdibujar; //... Algunos de estos son círculos, otros son rectángulos, estrellas, líneas, etcétera... Pero todos implementan la interfaz IDibujable for (IDibujable dibujable : elementosdibujar) { // No importa si dibujable es // un círculo, rectángulo, etcétera // Los puedo manejar a todos igual // porque tienen una interfaz en común dibujable.dibujar(); } El acto de magia de las interfaces y el polimorfismo! 48
49 ( Que es una Clase?) qué es acoplamiento? qué es cohesión? el acoplamiento más bajo posible y la cohesión más alta posible suele ser el objetivo de todo arquitecto, diseñador de software o programador lectura recomendada: 49
50 Ejemplos 50
51 (Un ejemplo conceptual) Modelo de Dominio 51
52 (Un ejemplo conceptual) 52
53 (Un ejemplo conceptual) Modelo de Dominio 53
54 (Un ejemplo conceptual) Modelo de Dominio 54
55 (Arquitectura de las clases GUI de CLEDA) Arquitectura Diseño OO 55
56 (Arquitectura del motor de Workflow CledaFlow) Arquitectura Diseño OO 56
57 A nivel de implementación 57
58 (Modelo Conceptual) class Dependencias +tieneescuelas Escuela 1..* +tienedepartamentos 1..* Departamento Dependencia Facultad/ Núcleo +tieneinstitutos * InstitutoDeI nvestigación +tienecentros * CentroDeInvestigación +tienelabs * LaboratorioDeInvestigación +tienepostgrados * Postgrado 58
59 (Modelo de Implementación) class películas «enumeration» TipoPelicula Película - titulo: string = Desconocido año: char = 0000 duracion: float = 0.0 tipo: TipoPelicula nuevapelicula() : void settitulo(string) : void gettitulo() : string setaño(char) : void getaño() : char setduracion(float) : void getduracion() : float modificapelicula() : void despliegapelicula() : void eliminapelicula() : void Estudio «enum» drama suspenso acción comedia +produce * +producidapor producción 1..* - nombre: string ciudad: string direccion: string dirweb: string fechafundacion: date pais: string telefonos: Lista nuevoestudio() : void modificaestudio() : void cierraestudio() : void despliegaestudio() : Estudio[] setnombre(string) : void setciudad(string) : void setdireccion(string) : void setdirweb(string) : void setfechafundacion(date) : void setpais(string) : void settelefonos(lista) : void getnombre() : string getciudad() : string getdireccion() : string getdirweb() : string getfechafundacion() : date getpais() : string gettelefonos() : string[] 59
60 class Préstamo de equipos Dependencia -tienedepartamentos Departamento 1..* -secretariade Dependencia Escuela 1 -secretariade 1 SolicitudDeEstudiante SolicitudDeProfesor -estudiantes 1..* -profesores 1..* Profesor -solicitadopor -solicita * * 1 -autorizadopor -autoriza * -solicita Equipo -controla -controladopor -secretaria * -solicitadopor Estudiante * * 1 Personal 1 -secretaria 1 Persona 60
61 class Geometría «enumeration» TipoColor «enumeration» TipoRelleno Polígono - DatoGeométrico «enumeration» TipoSombra relleno: TipoRelleno sombra: TipoSombra 3..* - -líneas {ordenado, hasta línea final = de línea inicial} - «enum» rojo verde negro color: TipoColor Punto -esquinasuperiorizquierda x: float y: float 1 -de 1 -líneas * 1 - -hasta Arco Rectángulo ancho: int largo: int - angulodeinicio: double angulodebarrido: double -líneas * Línea -líneas 2..* {ordenado} Polilínea 61
62 Lecturas recomendadas: (En Inglés) 62
63 REFERENCIAS Martin Fowler, UML Distilled, Pearson AddisonWesley 2da. Edición Booch, Rumbaugh, Jacobson, El Lenguaje Unificado de Modelado, Pearson Addison-Wesley 1ra. Edición 63
64 Gracias Gracias! 64
Curso de Java POO: Programación orientada a objetos
Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos
Programación Orientada a Objetos en Java
Programación Orientada a Objetos en Java Curso 2006-2007 Tema 4 Herencia y Polimorfismo Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Herencia
2.2.- Paradigmas de la POO
2.2.- Paradigmas de la POO Los principios propios de la orientación a objetos son: 2.2.1.- Abstracción de Datos 2.2.2.- Encapsulamiento 2.2.3.- Ocultamiento 2.2.4.- Herencia 2.2.5.- Polimorfismo Cualquier
TEMA 8: DIAGRAMA DE CLASE EN UML
TEMA 8: DIAGRAMA DE CLASE EN UML Diagramas en UML El bloque de construcción básico de UML es un Diagrama Introducción a UML 2 1 Diagrama de Clase Los diagramas de clases son los más utilizados en el modelado
Notación UML para modelado Orientado a Objetos
1 Notación UML para modelado Orientado a Objetos 2 Notación UML para modelado Orientado a Objetos Índice 1.1. Qué es UML?.. 3 1.2. Por qué interesa UML en la asignatura de Programación Orientada a Objetos?3
Diagrama de Clases. Diagrama de Clases
Diagrama de Clases 1 Diagrama de Clases El propósito de este diagrama es el de representar los objetos fundamentales del sistema, es decir los que percibe el usuario y con los que espera tratar para completar
Introducción al UML. Domingo Hernández H. Escuela de Ingeniería de Sistemas Departamento de computación
Introducción al UML Domingo Hernández H. Escuela de Ingeniería de Sistemas Departamento de computación Contenido Qué es UML?. Diagramas Utilizados en UML. Ejemplos. Qué es UML UML es un Lenguaje de Modelado
Programación Orientada a Objetos con Java
Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer [email protected] Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la
Universidad de Cantabria [email protected]
Herencia Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria [email protected] Objetivos Aprender los conceptos de herencia Comprender la forma de derivar una
Introducción a la programación orientada a objetos
Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación
Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos:
Tutorial de UML Introducción: El Lenguaje de Modelamiento Unificado (UML - Unified Modeling Language) es un lenguaje gráfico para visualizar, especificar y documentar cada una de las partes que comprende
PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso
PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer
M III ABSTRACCIÓN Y CLASIFICACIÓN
M III ABSTRACCIÓN Y CLASIFICACIÓN COMPLEJIDAD Y ABSTRACCIÓN La abstracción en el desarrollo del programario En todo el proceso de abstracción siempre hay una parte de la situación o del problema que se
UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos
2.1. Principios básicos del Modelado de Objetos UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos Hoy en día muchos de los procesos que intervienen en un negocio o empresa y que resuelven
Introducción a la Programación Orientada a Objetos (POO) Introducción a la Programación Orientada a Objetos (POO)
Diseño Orientado a Objetos. Metodología enfocada a la solución de problemas complejos. Complejidad del software. Problemas difíciles de precisar. Definición de requerimientos vago y cambio en el desarrollo
TEMA 1.-Programación orientada a objetos (POO) Objetivo
CURSO DE UML Dotar al alumno de los fundamentos de la programación orientada a objetos (POO, a partir de ahora), definir las características básicas del lenguaje de modelado unificado (Unified Modeling
Programación orientada a objetos
Repaso Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual [email protected]! Clase! Objeto! Atributo o variable de instancia! Método! Instanciar/crear un objeto!
Diagramas de Clase en UML 1.1
Diagramas de Clase en UML. Francisco José García Peñalvo Licenciado en Informática. Profesor del Área de Lenguajes y Sistemas Informáticos de la Universidad de Burgos. [email protected] Carlos Pardo Aguilar
EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011
EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 1. (0,75 PUNTOS) Identificad a continuación las sentencias que son ciertas, descartando
Relaciones entre Clases Programación Avanzada Prim. 2009 FCC-Buap Profesor: M. C. Miguel Rodríguez Hernandez
Relaciones entre Clases Programación Avanzada Prim 2009 FCC-Buap Profesor: M C Miguel Rodríguez Hernandez Asociación Es una relación binaria general que describe una actividad entre dos clases Se describe
UML. Lenguaje de Modelado Unificado
Lenguaje de Modelado Unificado Concepto de Reseña Histórica Características Estándares que conforman Modelo Relacional con Ventajas Críticas Concepto de (Unified( Modeling language) Es un lenguaje usado
Java Inicial (20 horas)
Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción
Clases abstractas e interfaces
Clases abstractas e interfaces Clases abstractas Una clase abstracta es una clase que no se puede instanciar se usa únicamente para definir subclases Cuándo es una clase abstracta? En cuanto uno de sus
Relaciones entre clases: Diagramas de clases UML
Relaciones entre clases: Diagramas de clases UML Las relaciones existentes entre las distintas clases nos indican cómo se comunican los objetos de esas clases entre sí: Los mensajes navegan por las relaciones
PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez
PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Encapsulamiento: Control de Acceso Clases en Java (1) UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO En Java se organizan las clases en paquetes
DIAGRAMA DE CLASES EN UML
DIAGRAMA DE CLASES EN UML Mg. Juan José Flores Cueto [email protected] Ing. Carmen Bertolotti Zuñiga [email protected] INTRODUCCIÓN UML (Unified Modeling Language) es un lenguaje que permite modelar,
Diagramas de clases de UML
Qué es UML? UML ( Unified Modeling Language ) es un lenguaje visual para crear modelos de sistemas. Diagramas de clases de UML Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad
UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS
UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS CURSO: JAVA BASICO PROFESOR: EMERSON CASTAÑEDA SANABRIA TEMA: Programación Orientada a Objetos OBJETIVOS: Familiarizarse con la Programación
Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos
Conceptos ELO329: Diseño y Programación Orientados a Objetos 1 Paradigmas de Programación Historia: Los computadores parten cableados por hardware, Luego se introduce la programación en binario, Se desarrolla
Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle
Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Tipos de herencia Herencia y niveles de visibilidad Herencia y creación Redefinición de métodos Conversión
Programación Orientada a Objetos en Java
Programación Orientada a Objetos en Java Curso 2006-2007 Tema 3 Clases y Objetos Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Clases y
Modelo Entidad-Relación
Modelo Entidad-Relación El modelo de datos de entidad-relación (ER) se basa en una percepción de un mundo real que consiste en un conjunto de objetos básicos llamados entidades y de relaciones entre estos
Programación en Java. Programación en OO
Programación en OO Lección 4:Programación en OO 1. Herencia 2. Modificadores de Acceso 3. Interfaces Herencia Es la acción en la que una clase obtiene los métodos y propiedades definidos en otra clase,
GUIA PROGRAMACIÓN ORIENTADA A OBJETOS
GUIA PROGRAMACIÓN ORIENTADA A OBJETOS 1. Por qué la P.O.O? R= A medida que se van desarrollando los lenguajes, se va desarrollando también la posibilidad de resolver problemas más complejos. En la evolución
Diseño orientado a los objetos
Diseño orientado a los objetos El Diseño Orientado a los Objetos (DOO) crea una representación del problema del mundo real y la hace corresponder con el ámbito de la solución, que es el software. A diferencia
RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA
UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí
Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL
Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL DNI Apellidos y nombre 1. Cuál de las siguientes afirmaciones no es una causa de los problemas del software?
UML. Diagramas de Estados Diagrama de Actividades (UML Ilustrado) Universidad de los Andes Demián Gutierrez Mayo 2011 1
UML Diagramas de Estados Diagrama de Actividades (UML Ilustrado) Universidad de los Andes Demián Gutierrez Mayo 2011 1 Diagramas de Estados Diagramas de Estados 2 Diagramas de Estados ( Qué Muestran?)
Ingeniería del Software I
- 1 - Ingeniería del Software I Introducción al Modelo Conceptual 2do. Cuatrimestre 2005 INTRODUCCIÓN... 2 CLASES CONCEPTUALES... 3 ESTRATEGIAS PARA IDENTIFICAR CLASES CONCEPTUALES... 3 Utilizar lista
PHP y MySQL. Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases
PHP y MySQL Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases Herencia de Objetos La herencia permite crear muchas clases que son similares entre si, sin tener
Clases y Objetos. Informática II Ingeniería Electrónica
Clases y Objetos Informática II Ingeniería Electrónica Los Tipos de Datos Hasta ahora, en un programa podemos usar para representar variables a: Tipos fundamentales : enteros (int), caracteres (char),
Principios Básicos de Orientación a Objetos. Orientación a Objetos
Principios Básicos de Orientación a Objetos Orientación a Objetos Abstracción Encapsulación Modularidad Jerarquia Qué es Abstracción? Es la capacidad de conceptualizar entidades genéricas de información
Modelado arquitectónico con UML
Modelado arquitectónico con UML Qué es la arquitectura de software El modelo de 4+1 vistas arquitectónicas Cohesión y acoplamiento Cómo lograr una descomposición modular eficaz Criterios para la selección
Primer avance de proyecto de software para la gestión de inscripciones en cursos
Primer avance de proyecto de software para la gestión de inscripciones en cursos 1. Introducción Andrés Felipe Bustamante García, Carolina Sarmiento González En este documento se presentan los resultados
Introducción a la Programación Orientada a Objetos
Introducción a la Programación Orientada a Objetos El paradigma imperativo. En un programa se tienen una serie de variables con las cuales operamos y modificamos mediante sentencias y funciones para producir
Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.
Partes de un programa en Java A. Ejemplo de un Programa en Java /* class Ejemplo1 { //comienza la clase Ejemplo1. public static void main(string[] args) { // comienza el método main. JFrame miventana;
1. Qué tipos de relación hay entre las siguientes clases?
Ejercicios Tema 8: Herencia 1. Qué tipos de relación hay entre las siguientes clases? Personal de la Universidad PAS Profesor 1 n Estudiante a) herencia y asociación b) herencia y dependencia c) dependencia
Java: Clases Abstractas e Interfaces
Clases abstractas e interfaces Java: Clases Abstractas e Interfaces Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile [email protected] A nivel conceptual,
Yalù Galicia Hernàndez. Yalú Galicia Hdez. (FCC/BUAP)
Yalù Galicia Hernàndez Yalú Galicia Hdez. (FCC/BUAP) 1 Introducción Qué es la Programación Orientada a Objetos? Conceptos básicos Abstracción Jerarquía Encapsulación Objeto Clase Herencia Polimorfismo
POO en Java IV: Herencia (Parte 1)
Herencia POO en Java IV: Herencia (Parte 1) Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile [email protected] Es la derivación de una clase a partir de otra existente.
Lo básico de Javascript. ISIS2603 Departamento de Sistemas y Computación Universidad de los Andes
Lo básico de Javascript ISIS2603 Departamento de Sistemas y Computación Universidad de los Andes Javascript Permite extender las capacidades de HTML Se utiliza principalmente del lado del cliente para
2.4 Modelado conceptual
2.4 Modelado conceptual 2.4. Búsqueda de conceptos Un modelo conceptual muestra clases conceptuales significativas en un dominio del problema; es el artefacto más importante que se crea durante el análisis
Casos de Uso Diagramas de Casos de Uso. Universidad de los Andes Demián Gutierrez Abril 2011 1
Casos de Uso Diagramas de Casos de Uso Universidad de los Andes Demián Gutierrez Abril 2011 1 Casos de Uso ( Qué es un caso de uso?) Caso de Uso? 2 Casos de Uso ( Qué es un caso de uso?) Un caso de uso
Prácticas de Programación
Prácticas de Programación Tema 1. Introducción al análisis y diseño de programas Tema 2. Clases y objetos Tema 4. Tratamiento de errores Tema 5. Aspectos avanzados de los tipos de datos Tema 6. Modularidad
Tema 5. Diseño detallado.
Ingeniería del Software II 2011 Tema 5. Diseño detallado. Diseño del Software. Los requisitos y el análisis orientado a objetos se centran en aprender a hacer lo correcto: Entender los objetos de nuestro
POLIMORFISMO "una interfaz, múltiples métodos".
"una interfaz, múltiples métodos". 20/02/2007 Polimorfismo 2 Indice Definición y caracteristicas Objetivos. SOBRRESCRITURA-SOBRECARGA SOBRECARGA Clases y métodos abstractos INTERFACES (herencia múltiple)
Programación Avanzada SOLUCIÓN EXAMEN FEBRERO 2011
Programación Avanzada SOLUCIÓN EXAMEN FEBRERO 2011 Por favor siga las siguientes indicaciones: Escriba con lápiz y de forma prolija. Escriba las hojas de un solo lado Escriba su nombre y número de documento
BASES DE DATOS. Ivon Tarazona Oriana Gomez
BASES DE DATOS Ivon Tarazona Oriana Gomez Introducción Introducción Ventajas e (Unified Modeling Language) Es un lenguaje usado para especificar, visualizar y documentar los diferentes aspectos relativos
Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado
Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado 1. Introducción Unified Modeling Languaje Fuente: Booch- Jacobson-Rumbauch y diversos sitios Internet, entre otros:
3. DIAGRAMAS DE CLASES...19 3.1. INTRODUCCIÓN... 19 3.2. DIAGRAMAS DE CLASES... 19 3.2.1. Perspectivas...20 3.2.2. Clases...20 3.2.2.1.
3. DIAGRAMAS DE CLASES...19 3.1. INTRODUCCIÓN... 19 3.2. DIAGRAMAS DE CLASES... 19 3.2.1. Perspectivas...20 3.2.2. Clases...20 3.2.2.1. Compartimento del nombre...21 3.2.2.2. Compartimento de la lista
3.- Diseño estructural: Diagrama de clases. Mª Antonia Zapata Máster Bases de Datos e Internet
3.- Diseño estructural: Diagrama de clases Mª Antonia Zapata Máster Bases de Datos e Internet Introducción Los diagramas de clases sirven para representar la estructura estática de un sistema incluyendo
Programación Orientada a Objetos Analista Programador Universitario Plan 2008 Año 2010
INTRODUCCION Un concepto fundamental que debemos tener en cuenta a la hora de modelar la realidad por medio de objetos es que los mismos no son entidades aisladas. Los objetos interactúan entre ellos constantemente
http://www.cem.itesm.mx/extension/ms
Diplomado Programación orientada a objetos con Java y UML Las empresas necesitan contar con sistemas de información modernos, ágiles y de calidad para alcanzar sus objetivos y ser cada vez más competitivos
CAPÍTULO IV - GUÍA PARA HACER ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS
CAPÍTULO IV - GUÍA PARA HACER ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS 4.1 Diferencias entre análisis y diseño La división entre el análisis y diseño es poco clara, el trabajo de los dos se mezcla continuamente
Práctica 2 Gráficos Vectoriales con SVG (versión 29.09.14)
Práctica 2 Gráficos Vectoriales con SVG (versión 29.09.14) Programación 3 Curso 2011-2012 Departamento de Lenguajes y Sistemas Informáticos Universidad de Alicante 1. Introducción En esta segunda práctica
INGENIERÍA DEL SOFTWARE I Práctica 4 Interacciones
INGENIERÍA DEL SOFTWARE I Práctica 4 Interacciones Univ. Cantabria Fac. de Ciencias Patricia López Modelo de Casos de Uso vs Modelo de Análisis Modelo de Casos de Uso Modelo de Análisis Descrito con el
GESTIÓN DE REDES PARTE III
PARTE III Arquitectura de Gestión OSI 3.1 Introducción La gestión de red OSI, pensada inicialmente para la gestión de las propias redes OSI, debe su implantación práctica al ser adoptada por los estándares
CONTENIDOS. 1. Completar el ejemplo de Herencia: Superclase Persona-Subclase Alumno
CONTENIDOS 1. Completar el ejemplo de Herencia: Superclase Persona-Subclase Alumno 2. Redefinición de métodos. 3. Jerarquía de clases. 4. Ejecución de los pasos de mensajes con Herencia. 5. Problemas con
Índice. http://www.dicampus.es
Módulo 2 UML Índice Introducción a UML Lenguaje Unificado de Modelado (UML) Diagramas UML Diagramas de casos de uso Diagramas estructurales: Clases Diagramas estructurales: Objetos Diagramas de interacción:
JavaScript como Orientación a Objetos
Gustavo Lacoste ([email protected]) October 2012 Resumen El objetivo de las siguientes notas es generar una estructura en JavaScript que nos permita reutilizar de manera limpia las funciones creadas
Metodología Orientada a Objetos Clave 43100007 Maestría en Sistemas Computacionales
Metodología Orientada a Objetos Clave 43100007 Maestría en Sistemas Computacionales Modulo 03 UML: Vista de Casos de Uso Artefacto: Actores Catedrático MSC. Jose Juan Aviña Grimaldo e-mail [email protected]
ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 7 Herencia y Composición en POO
ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 7 Herencia y Composición en POO Contenido Introducción... 1 Concepto de la Herencia... 2 Relación de
Repetir el proceso para cada abstracción identificada hasta que el diseño este expresado en términos sencillos
I. INTRODUCCIÓN El reciente aumento de aplicaciones en donde se utiliza la computadora ha sido posible debido a un hardware de bajo costo, por lo cual la demanda de software ha crecido de forma exponencial.
Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código
Tema 6 Reutilización de código Programación 2015-2016 Programación - Tema 6: Reutilización de código 1 Tema 6. Reutilización de código Modularidad. Implementación de métodos. Uso de métodos. Programación
Capitulo III. Diseño del Sistema.
Capitulo III. Diseño del Sistema. Para el desarrollo del sistema en la presente tesis se utilizo el paradigma orientado a objetos utilizando el lenguaje Java en su versión 1.2. Por medio de este lenguaje
ISO 19103. Lenguaje de Esquema Conceptual
ISO 19103 Lenguaje de Esquema Conceptual La ISO 19103 establece normas y guías para la adopción y uso de un Lenguaje de Esquema Conceptual (CSL) para desarrollar modelos o esquemas de información geográfica,
Tutorial Enterprise Architect 7.5 Versión en español
Página 1 de Tutorial Enterprise Architect 7.5 Versión en español Página 2 de Índice Aspectos básicos Vistazo general. 3 Diagrama de Clases.. 4 Atributos 6 Métodos. 10 Relaciones.. 11 Configuración de Opciones
Patrones de Diseño Orientados a Objetos 2 Parte
Patrones de Diseño Orientados a Objetos 2 Parte Patrón Observador Observer (Patrón de Comportamiento) Patrón Observador Observer Observador (en inglés: Observer) es un patrón de diseño que define una dependencia
Entidad Formadora: Plan Local De Formación Convocatoria 2010
Entidad Formadora: Enterprise Architect Comenzando Puede iniciar Enterprise Architect desde el ícono que se creó en su escritorio de Windows durante la instalación, o alternativamente: 1. Abrir el menú
Capítulo 6. Introducción a la POO
Capítulo 6. Introducción a la POO 6. 1. Clases, Objetos y Métodos Definición La Programación Orientada a Objetos (POO) es una forma especial de programar, más cercana a cómo expresaríamos las cosas en
DISEÑO DE COMPONENTES DE SOFTWARE *
DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP * Resumen del capítulo 10 de libro de [Pressman 2010] V:18-11-2008 (c) P. Gomez-Gil, INAOE.
Diagramas del UML. A continuación se describirán los diagramas más comunes del UML y los conceptos que representan: Diagrama de Clases
El UML está compuesto por diversos elementos gráficos que se combinan para conformar diagramas. Debido a que el UML es un lenguaje, cuenta con reglas para combinar tales elementos. La finalidad de los
Diagramas de Clases ~ 1 ~ Ing. Fabián Silva Alvarado
Diagramas de Clases ~ 1 ~ Ing. Fabián Silva Alvarado DIAGRAMAS DE CLASES RELACIONES ENTRE CLASES Una vez que tengamos todas nuestras clases, será necesario que estas se asocien, con el fin de mostrar la
Patrones de software y refactorización de código
Patrones de software y refactorización de código Introducción y antecedentes de los patrones de software Los patrones permiten construir sobre la experiencia colectiva de ingenieros de software habilidosos.
CONTENIDO. Programación orientada a objetos - POO. Clases. Constructores y destructores. Definiciones. Entrada y salida
INFORMÁTICA II 1 CONTENIDO 2 1 Programación orientada a objetos - POO 2 Clases 3 Constructores y destructores 4 Definiciones 5 Entrada y salida PROGRAMACIÓN ORIENTADA A OBJETOS Los lenguajes de programación
3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)
3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.
TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA
TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA II. Objetos distribuidos y CORBA 1. Objetos Distribuidos 2. CORBA 1. Características 2. Modelo de trabajo 3. ORB 4. Arquitectura
Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA [email protected].
Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO LAEFF - INTA [email protected] Qué es Java? Java es un lenguaje de programación orientado a objetos desarrollado por Sun
Definición de clases: Herencia, polimorfismo, ligadura dinámica
Tema 7 Definición de clases: Herencia, polimorfismo, ligadura dinámica Con alguna frecuencia es necesario definir clases de objetos entre las cuales hay elementos comunes. En una aplicación en la cual
Curso de Python Inicial
Logo IAA-CSIC Curso organizado por el Gabinete de Formación del CSIC Curso de Python Inicial Clases Contenidos 1. Paradigmas de la Programación 2. Programación Orientada a objetos 3. Clases 4. Objetos
BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS. Dámaso López Aragón
BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS Dámaso López Aragón Introducción En la actualidad, la orientación a objetos es una nueva forma de comprender los problemas y modelar el negocio de una empresa,
LENGUAJES DE CONSULTA ORIENTADOS A OBJETOS
LENGUAJES DE CONSULTA ORIENTADOS A OBJETOS Los lenguajes de consulta constituyen una funcionalidad importante de los SGBDOO. El usuario puede recuperar los datos especificando simplemente las condiciones
Principios y Métricas para el diseño de software
Principios y Métricas para el diseño de software Pablo Echevarria - [email protected] Impreso: 8 de junio de 2009 Disclaimer Documento sin ningún tipo de garantía ni revisión de la cátedra. Abstract un
Generación de código para Hibernate desde modelos UML
Generación de código para Hibernate desde modelos UML Alejandro Nogueiro Mariscal Ingeniería Técnica en Informática de Sistemas, Universidad de Cádiz 24 de Septiembre 2012 1 / 35 Índice 1 Motivación y
La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática
La Necesidad de Modelar Analogía Arquitectónica Tiene sentido poner ladrillos sin hacer antes los planos? El modelo, los planos, ayuda a afrontar la complejidad del proyecto. Cuál es el lenguaje adecuado
Presentación. Cómo Aprender UML? Grupo de Ingeniería de Software Centro de Investigación en Matemáticas Guanajuato, México 2007
Presentación Cómo Aprender UML? Grupo de Ingeniería de Software Centro de Investigación en Matemáticas Guanajuato, México 2007 Desarrollada por: Efraín Salomón Flores Correo electrónico: [email protected]
Benemérita Universidad Autónoma del Estado de Puebla
Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 5 Profr: María del Carmen Cerón Garnica Alumno: Roberto
