La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

El proceso de desarrollo de software

Presentaciones similares


Presentación del tema: "El proceso de desarrollo de software"— Transcripción de la presentación:

1 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

2 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

3 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

4 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

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

6 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

7 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

8 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

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

10 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

11 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

12 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

13 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

14 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

15 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

16 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

17 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

18 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

19 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

20 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

21 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

22 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

23 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

24 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

25 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

26 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

27 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

28 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

29 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

30 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

31 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

32 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

33 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

34 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

35 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

36 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

37 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

38 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

39 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

40 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

41 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

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

43 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

44 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

45 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

46 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


Descargar ppt "El proceso de desarrollo de software"

Presentaciones similares


Anuncios Google