Programacion
description
Transcript of Programacion
Esta obra está bajo una licencia de Esta obra está bajo una licencia de Creative CommonsCreative Commons..Autor: Jorge Sánchez Asenjo (año 2005)Autor: Jorge Sánchez Asenjo (año 2005)
http://www.jorgesanchez.nethttp://www.jorgesanchez.netemail:[email protected]:[email protected]
Esta obra está bajo una licencia de Reconocimiento-NoComercial-Esta obra está bajo una licencia de Reconocimiento-NoComercial-CompartirIgual de CreativeCommons. Para ver una copia de esta licencia, CompartirIgual de CreativeCommons. Para ver una copia de esta licencia,
visite:visite:http://creativecommons.org/licenses/by-nc-sa/2.0/es/http://creativecommons.org/licenses/by-nc-sa/2.0/es/
o envíe una carta a:o envíe una carta a:Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Introducción.Introducción. Conceptos previos Conceptos previos
Informática (RAE):Informática (RAE):Conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático de la información por medio de computadoras electrónicas.
Computadora:máquina capaz de aceptar unos datos de entrada, efectuar con ellos operaciones lógicas y aritméticas, y proporcionar la información resultante a través de un medio de salida.
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Introducción.Introducción. Algoritmos Algoritmos
Un ordenador por sí sólo no es capaz de Un ordenador por sí sólo no es capaz de hacer nada. Hace falta la ayuda de un hacer nada. Hace falta la ayuda de un programador.programador.El programador es que programa las El programador es que programa las instrucciones necesarias al ordenador para instrucciones necesarias al ordenador para realizar una tarearealizar una tareaAlgoritmo (RAE):Algoritmo (RAE): Conjunto ordenado y finito Conjunto ordenado y finito de operaciones que permite hallar la de operaciones que permite hallar la solución de un problema. solución de un problema.
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Introducción.Introducción. Algoritmos Algoritmos
Mediante algoritmos se solucionan los Mediante algoritmos se solucionan los problemasproblemasLos algoritmos son independientes del Los algoritmos son independientes del ordenador en el que se realizan las ordenador en el que se realizan las operacionesoperacionesLos algoritmos deben de ser:Los algoritmos deben de ser:
PrecisosPrecisosFinitosFinitosRepetibles Repetibles
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Introducción.Introducción. Algoritmos Algoritmos
Los algoritmos conviene que sean:Los algoritmos conviene que sean:Válidos (hacen lo que deben hacer)Válidos (hacen lo que deben hacer)Eficientes (no tardan un tiempo excesivo)Eficientes (no tardan un tiempo excesivo)Óptimos (es la mejor solución al problema)Óptimos (es la mejor solución al problema)
Un algoritmo posee:Un algoritmo posee:Datos de entradaDatos de entradaCálculos para conseguir el resultadoCálculos para conseguir el resultadoDatos de salida o resultantesDatos de salida o resultantes
A partir de unos datos de entrada se A partir de unos datos de entrada se consigue la salidaconsigue la salida
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Introducción.Introducción. Pasos para crear algoritmos Pasos para crear algoritmos
Análisis del problema. Análisis del problema. Hay que Hay que comprender el problemacomprender el problema
Diseño del algoritmoDiseño del algoritmo. Pasos para . Pasos para resolver el problema. Es mejor resolver el problema. Es mejor solucionar problemas pequeñossolucionar problemas pequeños
Prueba del algoritmoPrueba del algoritmo
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Introducción.Introducción. Algoritmos. Datos formales Algoritmos. Datos formales
Los algoritmos se construyen utilizando Los algoritmos se construyen utilizando elementos simples para que el lenguaje se elementos simples para que el lenguaje se parezca más al de las computadorasparezca más al de las computadoras
Los datos de los algoritmos son:Los datos de los algoritmos son:NúmerosNúmeros (10, 25, 5.32)(10, 25, 5.32)
TextosTextos (“Hola mundo”)(“Hola mundo”)
LógicosLógicos (VERDADERO, FALSO, true, false) (VERDADERO, FALSO, true, false)
Datos compuestos Datos compuestos (registros, listas)(registros, listas)
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Introducción.Introducción. Algoritmos. Datos formales Algoritmos. Datos formales
Los algoritmos pueden tener Los algoritmos pueden tener expresionesexpresiones, las , las cuales se componen de:cuales se componen de:
VariablesVariables (x, resta, saldo)(x, resta, saldo)
Operadores Operadores (+, -, *, >, <, Y(AND))(+, -, *, >, <, Y(AND))
Las instrucciones de los algoritmos pueden Las instrucciones de los algoritmos pueden serser
Primitivas Primitivas (entrada, salida, asignación)(entrada, salida, asignación)
De control De control (bucle, condición)(bucle, condición)
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Introducción.Introducción. Representación de Representación de algoritmosalgoritmos
Existen códigos especiales que sirven para Existen códigos especiales que sirven para representar algoritmosrepresentar algoritmos
La razón de su uso es normalizar la La razón de su uso es normalizar la escritura de algoritmosescritura de algoritmos
Hay Hay diagramas de flujodiagramas de flujo y y pseudocódigopseudocódigo
El primero trabaja con representaciones El primero trabaja con representaciones gráficas, el segundo con un lenguaje gráficas, el segundo con un lenguaje especialespecial
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Introducción.Introducción. Representación de Representación de algoritmosalgoritmos
Existen códigos especiales que sirven para Existen códigos especiales que sirven para representar algoritmosrepresentar algoritmos
La razón de su uso es normalizar la La razón de su uso es normalizar la escritura de algoritmosescritura de algoritmos
Hay Hay diagramas de flujodiagramas de flujo y y pseudocódigopseudocódigo
El primero trabaja con representaciones El primero trabaja con representaciones gráficas, el segundo con un lenguaje gráficas, el segundo con un lenguaje especialespecial
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Introducción.Introducción. Diagramas de flujo Diagramas de flujo
Inicio Representa el principio del algoritmo
Fin Representa el final del algoritmo
Operación
Entrada o salida de datos
Condición
Dirección del flujo del programa
Subprograma
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Introducción.Introducción. Pseudocódigo Pseudocódigo
Es otra forma de representar Es otra forma de representar algoritmosalgoritmos
Se asemeja más a los Se asemeja más a los lenguajes de programación de lenguajes de programación de alto nivelalto nivel
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Introducción.Introducción. Pseudocódigo. Instrucciones Pseudocódigo. Instrucciones
ESCRIBIRESCRIBIR. Muestra algo en el . Muestra algo en el dispositivo de salida (la pantalla dispositivo de salida (la pantalla normalmente)normalmente)LEER LEER variablevariable.. Lee un dato (del Lee un dato (del teclado) y lo almacena en esa variableteclado) y lo almacena en esa variable. Asignar valor. Asignar valorComparaciones: < > Comparaciones: < > ≠≠ ≤≤ ≥≥
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Introducción.Introducción. Pseudocódigo. Instrucciones Pseudocódigo. Instrucciones
SI SI condicióncondición ENTONCES ENTONCES instrucciones instrucciones [[SINO SINO instrucciones] instrucciones] FIN SIFIN SIEN CASO DE EN CASO DE variablevariablevalor1:instruccionesvalor1:instruccionesvalor2:instruccionesvalor2:instrucciones......EN OTRO CASO: EN OTRO CASO: instruccionesinstruccionesFIN EN CASO DEFIN EN CASO DE
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Introducción.Introducción. Pseudocódigo. Instrucciones Pseudocódigo. Instrucciones
MIENTRAS MIENTRAS condición condición HACER HACER instrucciones instrucciones FIN MIENTRASFIN MIENTRASREPETIR REPETIR instrucciones instrucciones HASTA HASTA condicióncondiciónPARA PARA variable variable DEDE valorInicial valorInicial A A valorFinal valorFinal [INCREMENTO [INCREMENTO valorvalor] ] instrucciones instrucciones FIN PARAFIN PARA
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Lenguajes.Lenguajes. Código máquina Código máquina
El ordenador sólo puede ejecutar El ordenador sólo puede ejecutar instrucciones en un lenguaje muy instrucciones en un lenguaje muy simple conocido como simple conocido como código máquinacódigo máquinaProgramar en ese lenguaje es muy Programar en ese lenguaje es muy complejocomplejoEjemplo, sumar 5+2 podría ser algo Ejemplo, sumar 5+2 podría ser algo como 1001011000101010como 1001011000101010
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Lenguajes.Lenguajes. Ensamblador Ensamblador
Es código escrito en un lenguaje que Es código escrito en un lenguaje que tiene representación exacta en el tiene representación exacta en el código máquinacódigo máquina
Cada programa creado en ensamblador Cada programa creado en ensamblador sirve para una sola máquinasirve para una sola máquina
Muy difícil de escribirMuy difícil de escribir
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Lenguajes.Lenguajes. Alto nivel Alto nivel
Los lenguajes de alto nivel se alejan de Los lenguajes de alto nivel se alejan de la máquina y se parecen más al la máquina y se parecen más al pseudocódigopseudocódigo
Se escriben programas que luego habrá Se escriben programas que luego habrá que ensamblar para convertirles en que ensamblar para convertirles en código máquinacódigo máquina
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Lenguajes.Lenguajes. Cuarta generación Cuarta generación
Se alejan aún más de la máquina y se Se alejan aún más de la máquina y se centran en la resolución del problemacentran en la resolución del problema
Permiten crear programas sin apenas Permiten crear programas sin apenas escribir códigoescribir código
Son más limitados pero mucho más Son más limitados pero mucho más rápidos de desarrollarrápidos de desarrollar
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Lenguajes.Lenguajes. Intérpretes Intérpretes
El intérprete es un software capaz de El intérprete es un software capaz de interpretar instrucciones escritas en interpretar instrucciones escritas en un lenguaje de alto nivel.un lenguaje de alto nivel.
Interpretan el código línea a línea de la Interpretan el código línea a línea de la primera a la últimaprimera a la última
Optimizan menos el códigoOptimizan menos el código
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Lenguajes.Lenguajes. Compilador Compilador
Software que traduce un programa Software que traduce un programa pero interpretando todo el código a la pero interpretando todo el código a la vezvez
El código es más eficienteEl código es más eficiente
Se tarda más en ejecutar el resultadoSe tarda más en ejecutar el resultado
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Lenguajes.Lenguajes. Historia Historia
FortranFortran. Primer lenguaje, orientado a . Primer lenguaje, orientado a problemas matemáticosproblemas matemáticosLispLisp. . Crea las funcionesCrea las funcionesCobolCobol. Orientado a aplicaciones de . Orientado a aplicaciones de gestión.gestión.BasicBasic.. Ideado para ser fácil de aprender Ideado para ser fácil de aprenderPascal.Pascal. Ideado también para ser sencillo Ideado también para ser sencillo de aprender, potencia la legibilidad del de aprender, potencia la legibilidad del códigocódigo
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Lenguajes.Lenguajes. Historia Historia
C.C. Lenguaje de nivel medio que otorga una Lenguaje de nivel medio que otorga una gran libertad al programadorgran libertad al programadorSQL.SQL. Lenguaje de consulta de bases de datos Lenguaje de consulta de bases de datosVisual Basic y Delphi.Visual Basic y Delphi. Lenguajes orientados a Lenguajes orientados a la creación mediante sintaxis sencilla de la creación mediante sintaxis sencilla de entornos gráficos de usuario.entornos gráficos de usuario.Prolog.Prolog. Ideado para resolver problemas de Ideado para resolver problemas de inteligencia artificialinteligencia artificialC++C++ Mejora de C para soportar el uso de Mejora de C para soportar el uso de objetosobjetos
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Lenguajes.Lenguajes. Historia Historia
Perl.Perl. Lenguaje que facilita el uso de las Lenguaje que facilita el uso de las expresiones normales (para crear expresiones normales (para crear consultas complicadas).consultas complicadas).HTML y XML.HTML y XML. Lenguajes de marcado Lenguajes de marcado para la maquetación y definición de para la maquetación y definición de documentosdocumentosJava.Java. Sintaxis heredada de C++. Pensado Sintaxis heredada de C++. Pensado para crear aplicaciones de red.para crear aplicaciones de red.PHP, ASP y JSP.PHP, ASP y JSP. Lenguajes combinados Lenguajes combinados para ejecutar instrucciones en un para ejecutar instrucciones en un servidor webservidor web
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Programación orientada a objetosProgramación orientada a objetos
La programación clásica (estructurada) La programación clásica (estructurada) se complica enormemente cuanto se complica enormemente cuanto mayor es el problemamayor es el problema
Una solución fue la programación Una solución fue la programación modularmodular
Una solución mejor es la POO (OOP)Una solución mejor es la POO (OOP)
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Programación orientada a objetosProgramación orientada a objetos. Idea . Idea generalgeneral
La POO consiste en definir objetosLa POO consiste en definir objetos
Cada objeto consta de una serie de Cada objeto consta de una serie de propiedades (variables) y de una serie propiedades (variables) y de una serie de métodos (funciones)de métodos (funciones)
El código se reparte entre los objetosEl código se reparte entre los objetos
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Programación orientada a objetosProgramación orientada a objetos. . Clases y objetosClases y objetos
ClaseClase:: Definición teórica de los Definición teórica de los objetos. Identifican tipos de objetosobjetos. Identifican tipos de objetosObjeto:Objeto: Una instancia particular de una Una instancia particular de una claseclaseMensajes:Mensajes: Comunicación entre un Comunicación entre un objeto y otro. En realidad son llamadas objeto y otro. En realidad son llamadas a procedimientos o variables públicas a procedimientos o variables públicas del objetodel objeto
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Programación orientada a objetosProgramación orientada a objetos. . PropiedadesPropiedades
Encapsulamiento:Encapsulamiento: El hecho de integrar en el El hecho de integrar en el objeto tanto métodos como propiedadesobjeto tanto métodos como propiedadesOcultación:Ocultación: Hay métodos y propiedades Hay métodos y propiedades públicos y métodos y propiedades privadospúblicos y métodos y propiedades privadosHerencia:Herencia: Las clases pueden heredarse de Las clases pueden heredarse de otras previasotras previasPolimorfismo:Polimorfismo: El mismo método puede estar El mismo método puede estar presente en varios objetos y su significado ser presente en varios objetos y su significado ser distintodistinto
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Programación orientada a objetosProgramación orientada a objetos. . Creación de programasCreación de programas
Todo es un objeto Todo es un objeto Un programa es un conjunto de Un programa es un conjunto de objetos que se comunicanobjetos que se comunicanTodo objeto posee una claseTodo objeto posee una claseTodos los objetos de una clase Todos los objetos de una clase reciben los mismos mensajesreciben los mismos mensajes
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Programación orientada a objetosProgramación orientada a objetos. . Creación de programasCreación de programas
• Escribir en papel lo que queremos hacer de forma Escribir en papel lo que queremos hacer de forma directadirecta
• Identificar las clases y objetosIdentificar las clases y objetos• Identificar las relaciones entre las clases (mensajes)Identificar las relaciones entre las clases (mensajes)• Identificar las propiedades y estados de los objetosIdentificar las propiedades y estados de los objetos• Identificar la secuencia correcta de mensajesIdentificar la secuencia correcta de mensajes• Estudiar cada clase e intentar definir su código de Estudiar cada clase e intentar definir su código de
forma independienteforma independiente• Definir el código de inicio de la aplicaciónDefinir el código de inicio de la aplicación
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Programación orientada a objetosProgramación orientada a objetos. . LenguajesLenguajes
A partir de la idea de esta programación A partir de la idea de esta programación aparecen lenguajes más o menos aparecen lenguajes más o menos implicados con esta ideaimplicados con esta ideaEl primer lenguaje que incorporó esta El primer lenguaje que incorporó esta idea fue Simula 67idea fue Simula 67Poco a poco incluso los lenguajes Poco a poco incluso los lenguajes clásicos se han adaptado a esta ideaclásicos se han adaptado a esta idea
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
Programación orientada a objetosProgramación orientada a objetos. . Lenguajes. TiposLenguajes. Tipos
Puros.Puros. Sólo se puede hacer programación Sólo se puede hacer programación orientada a objetos (por ejemplo Java)orientada a objetos (por ejemplo Java)Híbridos.Híbridos. Permiten también hacer Permiten también hacer programación estructurada (por ejemplo C++)programación estructurada (por ejemplo C++)Basados en objetos.Basados en objetos. Soportan algunos objetos Soportan algunos objetos (algunos lenguajes de macro)(algunos lenguajes de macro)Basados en clases.Basados en clases. Permiten usar objetos y Permiten usar objetos y clases (por ejemplo JavaScript)clases (por ejemplo JavaScript)Orientados a objetos.Orientados a objetos. Incluyen herencia Incluyen herencia (Visual Basic)(Visual Basic)
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
MetodologíasMetodologías. . IntroducciónIntroducción
Técnicas que permiten realizar un Técnicas que permiten realizar un modelomodelo previo de un programaprevio de un programa
Hay metodologías de todo tipo que modelan Hay metodologías de todo tipo que modelan tanto instrucciones como datostanto instrucciones como datos
Las metodologías intentar simplificar el Las metodologías intentar simplificar el diseño de una aplicacióndiseño de una aplicación
Al final el modelo hay que implementarle Al final el modelo hay que implementarle (escribirle en un determinado lenguaje)(escribirle en un determinado lenguaje)
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
MetodologíasMetodologías. . UMLUML
UML = UML = Unified modelling language, Unified modelling language, lenguaje de lenguaje de modelado universalmodelado universalNo es una metodología completa (una metodología No es una metodología completa (una metodología completa indica los pasos a realizar durante el completa indica los pasos a realizar durante el desarrollo del software)desarrollo del software)Es una notación, una forma de expresar modelos Es una notación, una forma de expresar modelos informáticosinformáticosEs un estándar Es un estándar de factode facto para diseñar aplicaciones para diseñar aplicaciones orientadas a objetosorientadas a objetosSe basa en diagramas que pueden servir tanto al Se basa en diagramas que pueden servir tanto al diseñador como al cliente.diseñador como al cliente.
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
MetodologíasMetodologías. . UMLUML
Es una metodología diseñada por los Es una metodología diseñada por los principales creadores de metodologíasprincipales creadores de metodologíasEstamos en la versión 1.3 (a punto de Estamos en la versión 1.3 (a punto de aparecer la 2.0)aparecer la 2.0)Sus responsables son el Sus responsables son el Object Management Object Management GroupGroup ((www.omg.orgwww.omg.org))La especificación está disponible en La especificación está disponible en www.omg.org/umlwww.omg.org/umlUML define 12 tipos de diagramas, cada uno UML define 12 tipos de diagramas, cada uno representa un aspecto del funcionamiento representa un aspecto del funcionamiento de una aplicaciónde una aplicación
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
MetodologíasMetodologías. . UML. ClasesUML. Clases
Clase:Clase: Descripción de una serie de Descripción de una serie de objetos con propiedades, métodos, objetos con propiedades, métodos, relaciones y semántica muy parecidarelaciones y semántica muy parecidaRepresentación:Representación:
Nombre
Atributos
Métodos
Responsabilidades
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
MetodologíasMetodologías. . UML. ClasesUML. Clases
Nombre:Nombre: Nombre de la clase Nombre de la clase
Atributos:Atributos: Datos que definen las propiedades Datos que definen las propiedades de la clase. de la clase.
Métodos:Métodos: Capacidades que puede realizar la Capacidades que puede realizar la clase. Pueden devolver datos y pueden clase. Pueden devolver datos y pueden requerir datos para su usorequerir datos para su uso
Responsabilidades:Responsabilidades: Opcional. Indica para qué Opcional. Indica para qué se utiliza la clasese utiliza la clase
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
MetodologíasMetodologías. . UML. Clases. Forma simplificadaUML. Clases. Forma simplificada
Coche
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
MetodologíasMetodologías. . UML. Clases. EjemploUML. Clases. Ejemplo
Cochemarca:Stringmodelo:String
matricula:Stringcolor:String
kilómetros:intvelocidad:int
acelerar(cantidad:int)frenar(cantidad:int)
arrancar()obtenerVelocidad():int
Transporta genteConsume gasolina
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
MetodologíasMetodologías. . UML. ObjetoUML. Objeto
Objeto:Objeto: Elemento con Elemento con significado concreto en una significado concreto en una aplicaciónaplicaciónRepresentación:Representación:
Coche19:Coche
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
MetodologíasMetodologías. . UMLUML
Paquete:Paquete: Estructura que sirve para Estructura que sirve para agrupar clasesagrupar clasesPueden agrupar otros paquetesPueden agrupar otros paquetesRepresentación:Representación:
Nombre
Clase1 Clase2
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
MetodologíasMetodologías. . UML. DiagramasUML. Diagramas
En UML hay varios tipos de diagramas En UML hay varios tipos de diagramas que modelizan las clases y objetosque modelizan las clases y objetosEn total hay 12 diagramasEn total hay 12 diagramasCuatro representan la estructura Cuatro representan la estructura estáticaestáticaCinco el comportamiento dinámicoCinco el comportamiento dinámicoTres se refieren a la organización Tres se refieren a la organización modularmodular
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
MetodologíasMetodologías. . UML. Diagrama de clases. UML. Diagrama de clases. RelaciónRelación
Programador
Nombre:texto;
Ordenador
Identificador:texto;Modelo:texto;Velocidad:entero1..* 0..*
Maneja
Nombre de la asociación
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
MetodologíasMetodologías. . UML. Diagrama de clases. UML. Diagrama de clases. AgregaciónAgregación
Alumno AsignaturaMatriculado en
1..* 1..11
Profesor
Matriculado en
Imparte
1..6
1..2
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
MetodologíasMetodologías. . UML. Diagrama de clases. UML. Diagrama de clases. Composición/AgregaciónComposición/Agregación
Punto
X:entero;Y:entero;
Mover(despl_x,
despl_y:entero)Mover(p:Punto)
Representa un punto en el espacio
Polígono
Regular:lógico;
Borrar()Mover(p:Punto)Rellenar(c:color)
Representa un polígono en el espacio
3..*
Expresa una relación todo/parte. El punto es parte del polígono
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
MetodologíasMetodologías. . UML. Diagrama de clases. UML. Diagrama de clases. GeneralizaciónGeneralización
Automóvil Motocicleta
Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net
MetodologíasMetodologías. . UML. Diagrama de clases. UML. Diagrama de clases. GeneralizaciónGeneralización
Trabajador
Encargado Administrativo Peón