El proceso de desarrollo de software

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

Programación Interactiva Fundamentos de Java. 2 Ejecución de un programa Para Java una clase ejecutable es aquella que es pública y tiene un método main()
Lenguaje de programación Java
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Entendiendo la definición de clases
Orientación a Objetos con Java SE
Tipos de Datos Abstractos Vector de Racionales
Programación Orientada a Objetos
El proceso de desarrollo de software
El Proceso de desarrollo de software
Problema abstracción DATOS ACCIONES Problemas y Programas Programa.
El proceso de desarrollo de software
Abstracciones y Modelos
Reusabilidad La productividad está basada en reusabilidad y extensibilidad El reusabilidad permite desarrollar nuevas aplicaciones a partir de componentes.
Lección 1 Introducción a la POO
Tipo de Dato Abstracto Tipos de datos:
Tratamiento de listas en Java
Aplicación del paradigma orientado a objetos
PROGRAMACION ORIENTADA A OBJETOS
Relaciones entre Clases La construcción de un sistema de software orientado a objetos consiste en definir un conjunto de clases relacionadas entre sí.
Programación Orientada a Objetos
Encapsulamiento y Abstracción
Abstracción de Datos La abstracción es un recurso fundamental en la programación orientada a objetos y está además fuertemente ligado a reusabilidad.
Programación Orientada a Objetos en Java
El concepto de clase Con frecuencia un término puede definirse de diferentes maneras según el enfoque. Desde el punto de vista del análisis y el diseño.
Genericidad Los datos de aplicaciones muy diferentes puede modelarse con frecuencia a partir de tipos de datos cuyas operaciones no dependen del tipo de.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Funciones en lenguaje C
Modificadores.
POO Java Módulo 3 Elementos de programas Identificadores
Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.
Lic. Rosemary Torrico Bascopé
PROGRAMACIÓN ORIENTADA A OBJETOS
Java Orientado a Objetos CLASES,OBJETOS Y MÉTODOS
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
SCJP Sun Certified Programmer for Java 6
Semana 5 Subprogramas..
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Patrones Creacionales
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Clases.
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Genericidad.
Unidad 2.1: INTRODUCCIÓN A LA ORIENTACIÓN A OBJETOS.
Introducción a la Programación Orientada a Objetos Una clase que modela los atributos y el comportamiento de una colección de objetos, define un tipo de.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Polimorfismo.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Abstracción.
Introducción a los TADs
Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz Implementar un TDA Matriz que brinde operaciones para calcular.
Introducción a la Programación Orientada a Objetos Sonia Rueda
Abstracción El concepto de abstracción es esencial en ciencias de la computación. Un programa es en sí mismo una abstracción, un modelo de la resolución.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Tipo.
Programación Orientada a Objetos: CLASES Y OBJETOS
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Arreglo.
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Diferencia entre implementar en RPA e IPOO - Diseño En.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Herencia.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Transcripción de la presentación:

El proceso de desarrollo de software El desarrollo de software es un proceso que permite construir un modelo de la resolución de un problema La construcción de un modelo requiere de la aplicación de un principio, una metodología y un conjunto de herramientas. Una metodología propone un conjunto de métodos, estrategias y técnicas. La programación es una actividad creativa sin embargo hay principios, metodologías y herramientas que orientan el desarrollo. La codificación es una etapa dentro de un proceso Introducción a la Programación Orientada a Objetos

El proceso de desarrollo de Software Herramientas DISEÑO Lenguaje de Modelado IMPLEMENTACIÓN Lenguaje de Programación IDE Introducción a la Programación Orientada a Objetos

Métodos+Técnicas+Estrategias El proceso de desarrollo de Software Resolución de un Problema Programa DATOS ACCIONES ABSTRACCIÓN Métodos+Técnicas+Estrategias Herramientas En los problemas de gran escala el proceso de abstracción es mayor Introducción a la Programación Orientada a Objetos

El proceso de desarrollo de Software DISEÑO IMPLEMENTACIÓN Subproblema 1 Módulo 1 Subproblema 2 Módulo 2 Programa Problema Subproblema 3 Módulo 3 Introducción a la Programación Orientada a Objetos

El proceso de desarrollo de Software Dividir y Conquistar ACCIONES + DATOS Introducción a la Programación Orientada a Objetos

El proceso de desarrollo de Software Descomposición a partir de las ACCIONES DISEÑO IMPLEMENTACIÓN Internar Internar Facturar Facturar SISTEMA HOSPITAL HOSPITAL Operar Operar Introducción a la Programación Orientada a Objetos

El proceso de desarrollo de Software Descomposición a partir de los DATOS DISEÑO IMPLEMENTACIÓN Paciente Paciente Médico Médico SISTEMA HOSPITAL HOSPITAL Internacion Internacion Factura Factura Introducción a la Programación Orientada a Objetos

Programación Orientada a Objetos La programación orientada a objetos brinda un principio simple y una metodología que guía el proceso de desarrollo de software. La metodología propone identificar en la etapa de análisis los objetos relevantes del problema. En ejecución cada uno de los objetos relevantes del problema quedará asociado a un objeto de software. Introducción a la Programación Orientada a Objetos

Programación Orientada a Objetos Análisis Introducción a la Programación Orientada a Objetos

Programación Orientada a Objetos Diseño Internación Internado Paciente Médico Factura Planta Contratado Introducción a la Programación Orientada a Objetos

Programación Orientada a Objetos Implementación APLICACIÓN class Paciente class Médico class Internado class Planta class Contratado class Factura class Internación Introducción a la Programación Orientada a Objetos

Programación Orientada a Objetos Ejecución Durante la ejecución de un software desarrollado usando la metodología de orientación a objetos, se crean en memoria los objetos de software que mantienen un representación de los objetos del problema. } } Introducción a la Programación Orientada a Objetos

Programación Orientada a Objetos El modelo computacional Internación Médico Factura Internado El modelo computacional de la programación orientada a objetos es un mundo poblado de objetos comunicándose a través de mensajes. Cada objeto que recibe un mensaje ejecuta un servicio determinado por su clase. Introducción a la Programación Orientada a Objetos

El concepto de Objeto La término objeto se refiere entonces a: Los objetos del problema, es decir las entidades relevantes para modelar. Los objetos de software que se crean en ejecución, algunos de los cuales representan a entidades del problema. Toda entidad relevante del problema está asociada en ejecución a un objeto de software. No todo objeto de software se corresponde a una entidad del problema. El concepto central en la POO es el de OBJETO Introducción a la Programación Orientada a Objetos

El concepto de Objeto Objetos del problema Atributos Servicios Objeto de software Estado Interno Mensajes Identidad Introducción a la Programación Orientada a Objetos

El concepto de Objeto Cada objeto del problema está caracterizado a través de atributos y brinda un repertorio de servicios Cada objeto de software tiene una identidad y un estado interno y recibe mensajes en respuesta a los cuales ejecuta un servicio. La identidad distingue a un objeto de los demás. El concepto central en la POO es el de OBJETO Introducción a la Programación Orientada a Objetos

El concepto de Clase Los objetos de un problema se agrupan en clases de acuerdo a los atributos y servicios que los caracterizan. Una clase es un patrón o esquema que especifica los atributos y servicios compartidos por todos los objetos que pertenecen a ella. Desde el punto de vista del lenguaje de programación, una clase es una unidad de programación. Un sistema de software orientado a objetos va a estar conformado por una colección de clases relacionadas entre sí. Introducción a la Programación Orientada a Objetos

El concepto de Clase En la implementación cada atributo va a quedar asociado a una variable o atributo de instancia definido dentro de una clase. Cuando el valor de un atributo es compartido por todas las instancias de una clase, hablamos de atributo de clase. Cada servicio va a estar implementado a través de un constructor o de un método. Introducción a la Programación Orientada a Objetos

La interface de una clase Una clase puede pensarse como un PROVEEDOR de servicios. Cada servicio va a ser usados desde una clase CLIENTE. Entre la clase CLIENTE y la clase PROVEEDORA se establece un contrato a través de las responsabilidades que asume cada una. Un mismo problema puede modelarse de maneras diferentes. En cada diseño alternativo la asignación de responsabilidades puede variar. Introducción a la Programación Orientada a Objetos

La interface de una clase La clase CLIENTE solo conoce la interface de la clase PROVEEDORA. CLIENTE PROVEEDOR DE SERVICIOS interface La programación orientada a objetos propone que la interface de una clase esté constituida únicamente por un conjunto de servicios. Los atributos quedan encapsulados. Introducción a la Programación Orientada a Objetos

El concepto de clase en Java En Java un programa va a estar conformado por una colección de clases. Cada clase define un conjunto de miembros que pueden ser: variables y constantes constructores métodos (comandos y consultas) Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad <<atributos de instancia>> CP: entero poblacion : entero superficie: real Se asumen valores no negativos <<Constructores>> Ciudad(cod :entero) Ciudad(cod,p:entero,s:entero) <<Comandos>> establecerPoblacion (p : entero) establecerSuperficie(s:real) aumentarPoblacion(p:entero) <<Consultas>> obtenerCP(): entero obtenerPoblacion () : entero obtenerSuperficie():real densidad():real Se incrementa la población en p, el valor de p puede ser negativo pero se asume controlado que la población sigue siendo no negativa cantidad de habitantes por kilómetro cuadrado. Asume superficie mayor que 0. Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad class Ciudad { //atributos de instancia /*El codigo se establece al crearse la ciudad y no cambia */ private int CP; private int poblacion; private float superficie; //Constructores public Ciudad (int cod){ CP = cod; } … //Comandos public void establecerPoblacion (int p){ poblacion = p; } //Consultas public int obtenerPoblacion () { return poblacion; } } Ciudad <<atributos de instancia>> CP: entero poblacion : entero superficie: real <<Constructores>> Ciudad(cod :entero) Ciudad(cod,p:entero,s:entero) <<Comandos>> establecerPoblacion (p : entero) establecerSuperficie(s:real) aumentarPoblacion(p:entero) <<Consultas>> obtenerCP(): entero obtenerPoblacion () : entero obtenerSuperficie():real densidad():real Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad Los constructores y los métodos que brindan servicios para las clases CLIENTES se declaran como públicos para que sean visibles y puedan ser usados desde el exterior. La interface de una clase está conformada por los miembros públicos de esa clase. En el ejemplo de la clase CIUDAD los atributos de instancia solo son visibles dentro de la clase y los constructores y métodos forman parte de la interface. Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad class Ciudad { //atributos de instancia /*El codigo se establece al crearse la ciudad y no cambia */ private int CP; private int poblacion; private float superficie; //Constructores public Ciudad (int cod){ CP = cod; } … //Comandos public void establecerPoblacion (int p){ poblacion = p; } //Consultas public int obtenerPoblacion () { return poblacion; } } class tester{ … Ciudad ciu; ciu = new Ciudad(8000); } CLIENTE PROVEEDORA Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad La instrucción de declaración:   Ciudad ciu; Reserva espacio en memoria para una variable con nombre ciu Luego de la declaración, la instrucción de creación: ciu = new Ciudad(8000); Reserva un espacio en memoria para mantener el estado interno del objeto. Liga el objeto de software a la variable ciu. Invoca al constructor   Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad La siguiente instrucción declara la variable y crea el objeto:    Ciudad ciu = new Ciudad(8000); Reserva espacio en memoria para una variable con nombre ciu Reserva un espacio en memoria para mantener el estado interno del objeto. Liga el objeto de software a la variable ciu. Invoca al constructor   Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad Un diagrama de objetos ofrece una visión abstracta de la memoria:    Ciudad ciu = new Ciudad(8000); ciu 8000 CP población 0.0 superficie Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad class Ciudad private int CP; private int poblacion; private float superficie; public Ciudad (int cod) { CP = cod; } class tester { … Ciudad ciu; ciu 8000 CP población ciu=new Ciudad(8000); 0.0 superficie Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad class Ciudad private int CP; private int poblacion; private float superficie; public Ciudad (int cod, int pob, float sup) { CP = cod; poblacion = pob ; superficie = sup ; } o class tester { … Ciudad o; 7550 CP 25700 población o=new Ciudad(7550, 25700,98); 98 0.0 superficie Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad <<atributos de instancia>> CP: entero poblacion : entero superficie: real <<Constructores>> <<Comandos>> aumentarPoblacion(p:int) … <<Consultas>> Se incrementa la población en p, el valor de p puede ser negativo pero se asume controlado que la población sigue siendo no negativa Los comandos son métodos que en general afectan el estado interno (setter o mutators) Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad class tester{ … Ciudad ciu; ciu.aumentarPoblacion(100); } class Ciudad { … private int CP; private int poblacion; private float superficie; //Comandos public aumentarPoblacion(int p) { poblacion += p; } } Observemos que si el parámetro fuera negativo habría que controlar que la población siga siendo no negativa antes de enviar el mensaje. CLIENTE PROVEEDORA Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad class tester{ … Ciudad ciu; ciu.aumentarPoblacion(-100); } class Ciudad { … private int CP; private int poblacion; private float superficie; //Comandos public aumentarPoblacion(int p) { poblacion += p; } } if(ciu.obtenerPoblación()-100>0) El diseño establece que es la clase cliente la responsable de garantizar que los valores de los atributos no son negativos. CLIENTE PROVEEDORA Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad class Ciudad private int CP; private int poblacion; private float superficie; public void aumentarPoblacion (int pob) { poblacion =+ pob; } o Ciudad o; 7550 o=new Ciudad(7550,25700,98); o.aumentarPoblacion(100); CP 25700 25800 población 98 0.0 superficie Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad <<atributos de instancia>> CP: entero poblacion : entero superficie: real <<Constructores>> <<Comandos>> … <<Consultas>> densidad (): real cantidad de habitantes por kilómetro cuadrado. Asume superficie mayor que 0. Las consultas son métodos que computan un valor y devuelven un resultado (getter). La inversa no es necesariamente válida, es decir que un método devuelva un resultado no lo convierte en una consulta. Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad class tester{ … Ciudad ciu; if(ciu.obtenerSuperficie()>0) d = ciu.densidad(); } class Ciudad { … private int CP; private int poblacion; private float superficie; //Consultas public float densidad () { //Asume que se invoca si //superficie es mayor que 0 return poblacion/superficie; } } El diseño establece que es la clase cliente la responsable de garantizar que la densidad pueda computarse. CLIENTE PROVEEDORA Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad Ciudad c1 = new Ciudad(8000); Ciudad c2 ; c2 = c1; c1 8000 CP c2 población 0.0 superficie Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad Ciudad c1 = new Ciudad(8000); Ciudad c2 = new Ciudad(8000); c2 c1 8000 8000 CP CP población población 0.0 0.0 superficie superficie Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad <<atributos de instancia>> CP: entero poblacion : entero superficie: real Retorna verdadero si la ciudad que recibe el mensaje tiene la misma población que la ciudad que pasa como parámetro Retorna el CP de la ciudad con mayor población entre las dos comparadas . Si ambas tienen la misma población retorna el CP del objeto que recibió el mensaje … <<Consultas>> igualPoblacion (ciu :Ciudad) : boolean mayorPoblacion (ciu :Ciudad) : entero ciudadMayorPoblación (ciu : Ciudad ) : Ciudad Retorna la ciudad con mayor población entre las dos comparadas . Si ambas tienen la misma población retorna la el objeto que recibió el mensaje Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad public boolean igualPoblacion(Ciudad ciu){ boolean ig; if (poblacion == ciu.obtenerPoblacion()) ig = true; else ig = false; return ig; } … } Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad class TestCiudad{ public static void main (String[] args) { … Ciudad origen,destino; origen= new Ciudad(7600,1000,100); destino= new Ciudad (8200,1000,25); if (origen.igualPoblacion(destino)) System.out.println(“ “); } Introducción a la Objetos y Mensajes

Caso de Estudio: Ciudad public boolean igualPoblacion(Ciudad ciu){ return poblacion == ciu.obtenerPoblacion(); } Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad public int mayorPoblacion(Ciudad ciu){ int c; if (poblacion >= ciu.obtenerPoblacion()) c = CP; else c = ciu.obtenerCP(); return c; } Introducción a la Programación Orientada a Objetos

Caso de Estudio: Ciudad public Ciudad ciudadMayorPoblacion(Ciudad ciu){ Ciudad c; if (poblacion >= ciu.obtenerPoblacion()) c = this; else c = ciu; return c; } La variable c es local al método ciudadMayorPoblación. Al terminar la ejecución de este método desaparece la variable pero NO el objeto. Introducción a la Programación Orientada a Objetos

Contenido de esta clase Lenguaje de modelado y lenguaje de programación El modelo computacional de la POO La clase Cliente y la clase Proveedor Responsabilidades Diagramas de memoria Introducción a la Programación Orientada a Objetos

Contenido de la próxima clase Variables. Alcance y Tipo. Variables elementales y de tipo Clase. Declaración, Modificación y Comparación. Objetos y Referencias Identidad, igualdad y equivalencia equals clone y copy Introducción a la Programación Orientada a Objetos