Programacion

47
Esta obra está bajo una licencia de Esta obra está bajo una licencia de Creative Commons Creative Commons. Autor: Jorge Sánchez Asenjo (año 2005) Autor: Jorge Sánchez Asenjo (año 2005) http://www.jorgesanchez.net http://www.jorgesanchez.net email:[email protected] email:[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.

description

Ayudarse a programa en culquier materia

Transcript of Programacion

Page 1: 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.

Page 2: Programacion

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.

Page 3: Programacion

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.

Page 4: Programacion

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

Page 5: Programacion

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

Page 6: Programacion

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

Page 7: Programacion

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)

Page 8: Programacion

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)

Page 9: Programacion

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

Page 10: Programacion

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

Page 11: Programacion

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

Page 12: Programacion

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

Page 13: Programacion

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: < > ≠≠ ≤≤ ≥≥

Page 14: Programacion

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

Page 15: Programacion

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

Page 16: Programacion

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

Page 17: Programacion

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

Page 18: Programacion

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

Page 19: Programacion

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

Page 20: Programacion

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

Page 21: Programacion

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

Page 22: Programacion

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

Page 23: Programacion

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

Page 24: Programacion

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

Page 25: Programacion

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)

Page 26: Programacion

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

Page 27: Programacion

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

Page 28: Programacion

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

Page 29: Programacion

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

Page 30: Programacion

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

Page 31: Programacion

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

Page 32: Programacion

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)

Page 33: Programacion

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)

Page 34: Programacion

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.

Page 35: Programacion

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

Page 36: Programacion

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

Page 37: Programacion

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

Page 38: Programacion

Copyleft - Jorge Sánchez ‘2005 – www.jorgesanchez.net

MetodologíasMetodologías. . UML. Clases. Forma simplificadaUML. Clases. Forma simplificada

Coche

Page 39: Programacion

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

Page 40: Programacion

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

Page 41: Programacion

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

Page 42: Programacion

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

Page 43: Programacion

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

Page 44: Programacion

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

Page 45: Programacion

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

Page 46: Programacion

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

Page 47: Programacion

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