23
Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Ob UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos Fase de Analisis Fase de Diseño Programación Orientada a Objetos

Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Embed Size (px)

Citation preview

Page 1: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Análisis y Diseño Orientado a Objetos

• UML: Lenguaje de Modelamiento Unificado

• Toma de Requerimientos

• Fase de Analisis

• Fase de Diseño

•Programación Orientada a Objetos

Page 2: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Análisis y Diseño Orientado a Objetos

• Toma de Requerimientos

• Casos de Uso

• Actores

• Pre-Condiciones

• Descripción

• Post-Condiciones

• Excepciones

Page 3: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Análisis y Diseño Orientado a Objetos

Caso de Uso: Matricula de clientes no registrados.

Actores: Clientes

Pre-Condiciones: Existencia de Cursos en BD

Descripción: El cliente ingresa a la vista de cursos, el sistema despliega la lista de cursos disponibles, el cliente selecciona el curso para matricularse, el sistema despliega la vista de registro (Excep. Sin cupo), con los campos nombre, rut e institución, el cliente llena los campos y presiona Aceptar, el sistema confirma la matricula.

Post-Condiciones: Se registra un nuevo cliente y se agrega un nuevo alumno al curso seleccionado.

Excepciones: Sin cupo. El curso no tiene cupos disponibles.

Page 4: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Análisis y Diseño Orientado a Objetos

Fase de Análisis

• Diagrama de Clases

Clase: “Estructura que modela las propiedades y funcionalidades que definen un conjunto determinado de objetos”.

Objeto: “Modelo de una entidad, ya sea real o abstracta, de identificación única”.

Curso

Alumno

Profesor

Prof_Contra Prof_Horas

dicta 1*

Page 5: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Análisis y Diseño Orientado a Objetos

Fase de Análisis

• Diagrama de Secuencia

Cliente Curso Alumno

verLista()

ListaCursossetMatricula(cod)

OKsetDatos(nom, rut, inst)

OK

Page 6: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Análisis y Diseño Orientado a Objetos

Fase de Diseño

• Diagrama de Clases

Curso

getLista()setMatricula(cod)

AlumnoNombreRutInstitucionsetDatos(nom,rut,in)

Vst_CursosLstCursosAbrir()lstCursosSel(cod)

Vst_RegistroTxtNombreTxtRutTxtInstitucionBtnAceptarBtnAceptarClick()

Page 7: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Análisis y Diseño Orientado a Objetos

Fase de Diseño

• Diagrama de Secuencia

Vst_Cursos Curso Alumno

getLista()

setMatricula(cod)

OK

setDatos(nom, rut, inst)

OK

Cliente Vst_Registroabrir()

Lista_Cursos Lista_Cursos

lstCursosSel(cod)

abrir()Datos

OK

btnAceptarClick()

Page 8: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Análisis y Diseño Orientado a Objetos

Programación Orientada a Objetos

• Encapsulamiento: “Posibilidad de agrupar propiedades y funcionalidad de una clase en una sola estructura, controlando el acceso y la manipulación de dichas estructuras”

• Herencia: “Posibilidad de recibir en una clase toda o parte de las propiedades y funcionalidades de otra clase”

• Polimorfismo: “Posibilidad de darle mas de una forma a una funcionalidad especifica dentro de una clase o entre clases distintas”

Page 9: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Programación Orientada a Objetos

Encapsulamiento

• Atributos (Variables Miembro)

• De clase (estáticos)

• De instancia

• Métodos (Funciones Miembro)

• Estáticos

• De instancia

class Rectangulo{ int Dim1; int Dim2;

int area() { return Dim1*Dim2; }

int perimetro() { return 2*(Dim1+Dim2); }}

Page 10: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Programación Orientada a Objetos

Encapsulamiento

• Control de Acceso

• Privado

• Publico

• Protegido

class Rectangulo{ private int Dim1; private int Dim2;

public int area() { return Dim1*Dim2; }}

publicopublico privadoprivadoprotegidoprotegido

claseclase

clases hijasclases hijas

aplicaciónaplicación

Page 11: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Programación Orientada a Objetos

Encapsulamiento

• Control de Acceso

• Control programado

• Convenciones

class Rectangulo{ public int Dim1; public int Dim2;

public int area() { return Dim1*Dim2; }}

class Rectangulo{ private int Dim1; private int Dim2;

public void setDim1(int d1) { Dim1 = d1; } public int getDim1() { return Dim1; }

: public int area() { return Dim1*Dim2; }}

Page 12: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Programación Orientada a Objetos

Encapsulamiento

•Constructores y Destructores

• Constructor por defecto

• Constructor programado

• Destructor

• Referencias a si mismo (this)

class Rectangulo{ private int Dim1; private int Dim2;

public Rectangulo() { this.Dim1 = 10; this.Dim2 = 10; }

: public int area() { return Dim1*Dim2; }}

Page 13: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Programación Orientada a Objetos

Encapsulamiento

• Instanciando clases

Rectangulo rec1 = new Rectangulo();Rectangulo rec2 = new Rectangulo();

:rec2.setDim1(30);

Rectangulo

int Dim1int Dim2

Rectangulo()void setDim1(int d1)int getDim1()void setDim2(int d2)int getDim2()int area()

rec1

Dim1 = 10Dim2 = 10

rec2

Dim1 = 30Dim2 = 10

Instancia 1

Instancia 2

Page 14: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Programación Orientada a Objetos

Herencia

• Clases Base y Derivadas

• Herencia Simple y Múltiple

Profesor

Prof_Contra Prof_Horas

Persona Profesional

Clase Basey Derivada

Clase Base

Clase Derivada

Page 15: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Programación Orientada a Objetos

Herencia

• El control de acceso Protegido

• Referencias al constructor de la clase base (super)

class Rectangulo{ public Rectangulo(int d1, int d2) { super(d1, d2); }

: public int area() { return Dim1*Dim2; }}

class Figura{ protected int Dim1; protected int Dim2;

public Figura(int d1, int d2) { this.Dim1 = d1; this.Dim2 = d2; }

:}

Clase Base

Clase Derivada

Page 16: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Programación Orientada a Objetos

Herencia

• Instanciando clases derivadas

• Clases finales

Rectangulo rec1 = new Rectangulo(5,10);

Elipse eli1 = new Elipse(8,12);

Figura fig1;

if (tipo = = “Rect”){ fig1 = new Rectangulo(5,10);}else if (tipo = = “Elip”){ fig1 = new Elipse(8,12);}

Page 17: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Programación Orientada a Objetos

Herencia

• Clases abstractas Figura

Dim1Dim2

area()perimetro()

Rectangulo

area()perimetro()

Elipse

area()perimetro()

abstract class Figura{ protected int Dim1; protected int Dim2;

:

public abstract int area(); public abstract int perimetro(); }

Page 18: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Programación Orientada a Objetos

Herencia

• Interfaces

interface Figura{ public int area(); public int perimetro();}

interface Dibujable{ public void dibuja(Graphics g);}

interface Persistente{ public void grabar(); public void cargar(String pk);}

class Rectangulo{ : public int area() { return Dim1*Dim2; } public int perimetro() { return 2*(Dim1+Dim2); } public void dibuja(Graphics g) { : } public void grabar() { : } public void cargar(String pk) { : }}

Implementa

Implementa

Implementa

Page 19: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Programación Orientada a Objetos

Polimorfismo

• Sobrecarga de operaciones

Sobrecarga del Operador +

int + int = intfloat + float = floatfloat + int = float

String + String = StringString + int = StringRectangulo + Rectangulo = RectanguloString + Rectangulo = String

Page 20: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Programación Orientada a Objetos

Polimorfismo

• Sobrecarga del constructor

class Rectangulo{ private int Dim1; private int Dim2;

public Rectangulo(int d1, int d2) { Dim1 = d1; Dim2 = d2; } public Rectangulo(int dim) { Dim1 = Dim2 = dim; } public Rectangulo(String dime) { int dim = Integer.parseInt(dime); Dim1 = Dim2 = dim; }

:}

Page 21: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Programación Orientada a Objetos

Polimorfismo

• Sobrecarga de funciones

class Formulas{ public static double potencia(double bas) { : } public static double potencia(double bas, int exp) { : } public static double potencia(double base, double exp) { : }}

Page 22: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Programación Orientada a Objetos

Polimorfismo

• Polimorfismo por medio de clases abstractas e interfaces

class Rectangulo{ : public int area() { return Dim1*Dim2; }}

class Elipse{ : public int area() { return (int)(3.1416*Dim1*Dim2); }}

interface Figura{

: public int area();}

Implementan

Page 23: Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos

Lenguaje de Programación Java Profesor: Mauricio Martínez P.

Programación Orientada a Objetos

Polimorfismo

• Polimorfismo por medio de clases abstractas e interfaces

Figura fig1;

if (tipo = = “Rect”){ fig1 = new Rectangulo(5,10);}else if (tipo = = “Elip”){ fig1 = new Elipse(8,12);}

int areaFig = fig1.area();: