aedi-teo_sem01_2_v6.ppt

37
Facultad de Ingeniería y Arquitectura Docentes del curso: Algoritmo y Estructura de Datos I (AEDI) Ing. Christian Acuña Flores

Upload: diego-isla

Post on 15-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Facultad de Ingeniería y Arquitectura

Docentes del curso:

Algoritmo y Estructura de Datos I (AEDI)

• Ing. Christian Acuña Flores

MATERIAL DEL DOCENTE

Algunos derechos reservados

Los contenidos de esta presentación están bajo una licencia Creative Commons si no se indica lo contrario

Facultad de Ingeniería y Arquitectura

Desarrollado por:

VERSIÓN

Algoritmo y Estructura de Datos I (AEDI)

6.0

• Mg. Juan José Flores Cueto• Ing. Christian Acuña Flores• Ing. Jessica Emilia Paulino Torre• Ing. Carmen Bertolotti Zúñiga• Ing. Carlos Domínguez Jara

Contenido:

Objetivos:

SEMANA01

• Conceptos básicos de la Teoría Orientada a Objetos (TOO)

• Conceptos generales del Lenguaje Unificado de Modelado (UML)

• Implementación de conceptos en el lenguaje Java o C++

Algoritmo y Estructura de Datos I (AEDI)

• Describir los conceptos básicos de la TOO. Objetos, paquetes, clases, atributos y métodos

• Conceptualizar el UML y enumerar los diagramas existentes. Describir el diagrama de paquetes y el diagrama de secuencia

• Implementar los conceptos de la TOO y UML en el lenguaje Java o C++

Método para la solución de problemas

DescripciónProblema

DefiniciónSolución

DiseñoSolución

DesarrolloSolución

DepuraciónPruebas

Documentación

Ingeniería reversa

n veces

Etapa 01

Etapa 02

Etapa 03

Etapa 04

Etapa 05

Etapa 06

METODO DE LAS 6’D

TEMA:

Teoría Orientada a Objetos

TOO

Algoritmo y Estructura de Datos I (AEDI)

TOO - Programación Orientada a Objetos (POO)

Permite descomponer un problema en subgrupos o partes relacionadas.

Expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos más fáciles de escribir, mantener y reutilizar.

DEFINICIÓN

TOO - OBJETO

Es cualquier elemento que nos rodea, del cual podemos distinguir sus características y comportamiento.

Es la abstracción de cualquier elemento del mundo real; abstracto o concreto, animado o inanimado; del cual podemos conocer sus características y comportamientos, permitiéndonos comprenderlo y a su vez proporcionándonos una base práctica para su implementación en computadoras.

DEFINICIÓN

TIPOS

Un objeto del mundo real es cualquier cosa acerca de la que conocemos sus características comunes: estado y comportamiento

Un objeto de software es cualquier cosa, real o abstracta, acerca de la que almacenamos datos y los métodos que controlan dichos datos

TOO - OBJETO

IDENTIFICACIÓN DE OBJETOS

nombreObjeto : NombreClase

Cada objeto se representa como un rectángulo dividido por dos puntos:

- En la primera parte se coloca el nombre del objeto

- En la segunda parte se coloca el nombre de la Clase a la que pertenece el objeto

¿Qué objetos puede identificar?

REPRESENTACIÓN

TOO - OBJETO

Características modelo: z550

marca: Motorola

color: Plateado

dueño: Juan

número: 98765432

Comportamiento llamar

guardarNumero

guardarTarea

tocarMusica

miCelular

EJEMPLOS

Características Nombre: Arturo

Apellidos: Romero Vargas

Código: 2001134604

Comportamiento ingresarDatos

ingresarNotas

calcularPromedio

alumno1

TOO - PAQUETE

DEFINICIÓN

Los paquetes nos permiten organizar las clases de un modelo. Un paquete contiene clases que tienen funciones similares.

REPRESENTACIÓN

dominioDeLaAplicacion

Cada paquete se representa como un rectángulo, el cual incluye otro pequeño rectángulo en la parte superior izquierda.

El nombre del paquete se coloca al interior del rectángulo de mayor tamaño

NombreClase(NombrePaquete al que pertenece)

Atributos

Métodos

Cada clase se representa como un rectángulo con tres compartimientos:

- Nombre de la clase

- Atributos de la clase

- Operaciones o Métodos de la clase

TOO - CLASE

DEFINICIÓN

En una CLASE se agrupan todos los objetos que comparten los mismos atributos, métodos y relaciones.

Unidad básica que encapsula toda la información de un Objeto (un Objeto es una instancia de una clase).

Mediante ella se puede modelar el entorno en estudio.

REPRESENTACIÓN

TOO - CLASE

Objetos de la clase “Celular”

EJEMPLO

Objetos de la clase “Alumno”

Alumno(NombrePaquete al que pertenece)

Atributos

Métodos

Celular(NombrePaquete al que pertenece)

Atributos

Métodos

TOO – ATRIBUTO

ATRIBUTO

¿Qué datos manejan los objetos?

Expresado en: Estructuras de Datos.

NombreClase(NombrePaquete al que pertenece)

Atributos

Métodos

Un atributo es una característica común a un conjunto de objetos que pertenecen a una misma clase.

Dichas características pueden ser almacenadas en variables, arreglos o cualquier estructura de datos existente.

DEFINICIÓN:

TOO – ATRIBUTO

¿Qué datos manejan los objetos?

Expresado en: Estructuras de Datos

• Atributo de clase.

• Atributo de instancia.

CLASIFICACIÓN:

• Variables globales.

• Variables locales.

TIPOS:

ATRIBUTO

TOO – MÉTODOS

MÉTODOS

NombreClase(NombrePaquete al que pertenece)

Atributos

MétodosDEFINICIÓN:

¿Qué pueden hacer los objetos?.

Expresado en: Algoritmos.

• Los métodos representan pequeños subprogramas encapsulados dentro de las clases y contribuyen a definir el comportamiento típico de los objetos.

• Los métodos especifican la forma en que se controlan los datos de un objeto.

• Los métodos definen el comportamiento de un objeto.

TOO – MÉTODOS

¿Qué pueden hacer los objetos?.

Expresado en: Algoritmos.

• Método de clase.

• Método de objeto o instancia.

• Métodos especiales

CLASIFICACION:

• Método principal.

• Método constructor.

TIPOS:

• void que no reciben parámetros.

• void que reciben parámetros.

• Con retorno de valor que no reciben parámetros.

• Con retorno de valor que reciben parámetros.

MÉTODOS

Clase: plantilla implementada en software que describe un conjunto de objetos con atributos y comportamiento similares.

Paquete: Los paquetes nos permiten organizar las clases de un modelo. Un paquete contiene clases que tienen funciones similares.

Objeto: es una representación concreta y específica de una clase y que reside en la memoria de la computadora.

Atributos: son las características individuales que diferencian un objeto de otro y determinan su apariencia, estado u otras cualidades. Los atributos se guardan en variables denominadas de instancia, y cada objeto (instancia de clase) particular puede tener valores distintos para estas variables.

Métodos: conjunto de instrucciones que realizan una determinada tarea

TOO - RESUMEN

TEMA:

Lenguaje Unificado de Modelado

UML

Algoritmo y Estructura de Datos I (AEDI)

GENERALIDADES

Lenguaje Unificado de Modelado (UML)

El Lenguaje Unificado de Modelado (Unified Modeling Language, UML) es un lenguaje gráfico que permite:

- Visualizar.

- Especificar (construir modelos precisos).

- Construir (se establecen correspondencias con lenguajes orientados a objetos como Java, C++, etc.).

- Documentar los componentes de un sistema de software (arquitectura, requisitos, diseño, pruebas, versiones, planificación, etc.).

- Describir el ciclo de vida completo del desarrollo orientado a objetos.

DEFINICIÓN

Lenguaje Unificado de Modelado

UML (Unified Modeling Language) es un lenguaje que permite modelar, construir y documentar los elementos que forman un sistema software orientado a objetos.

Se ha convertido en el estándar de facto de la industria, debido a que ha sido impulsado por los autores de los tres métodos más usados de orientación a objetos: Grady Booch, Ivar Jacobson y Jim Rumbaugh. En el proceso de creación de UML han participado, no obstante, otras empresas de gran peso en la industria como Microsoft, Hewlett-Packard, Oracle o IBM, así como grupos de analistas y desarrolladores

Lenguaje Unificado de Modelado

EJEMPLO

PrgNotas

nota1nota2prom

main(args : String[]) : voidPrgNotas()ingresarNotas() : voidmostrarCondicion() : voidmostrarMensaje() : void

(from domApli)

DIAGRAMAS

En UML se han definido 13 tipos de diagramas. Para comprenderlos de manera concreta, a veces es útil categorizarlos jerárquicamente:

Lenguaje Unificado de Modelado

Diagramas de estructura; enfatizan en los elementos que deben existir en el sistema modelado:

• Diagrama de clases (*)

• Diagrama de componentes

• Diagrama de objetos

• Diagrama de estructura compuesta (UML 2.0)

• Diagrama de despliegue

• Diagrama de paquetes (*)

Diagramas de comportamiento; enfatizan en lo que debe suceder en el sistema modelado:

• Diagrama de actividades

• Diagrama de casos de uso

• Diagrama de estados

Diagramas de Interacción; un subtipo de diagramas de comportamiento, que enfatiza sobre el flujo de control y de datos entre los elementos del sistema modelado:

• Diagrama de secuencia (*)

• Diagrama de comunicación

• Diagrama de tiempos (UML 2.0)

• Diagrama de vista de interacción (UML 2.0)

UML - Algunos diagramas

DIAGRAMA DE PAQUETE

Permite especificar y visualizar las relaciones de dependencia que existen entre los paquetes que forman parte de una solución.

La dependencia se establece cuando las clases que pertenecen a un paquete pueden tener acceso a todas o algunas de las clases que pertenecen a otro paquete.

La dependencia en este caso significa que todas las clases que pertenecen al paquete “dominioDeLaAplicacion” podrán tener acceso a todas o algunas de las clases que pertenecen al paquete “biblioteca” (observe el sentido de la flecha que marca la dependencia unidireccional).

DIAGRAMA DE SECUENCIA

UML - Algunos diagramas

Es una vista gráfica de un escenario que muestra la interacción del objeto en una secuencia basada en intervalos de tiempo para saber lo que pasa primero y lo que pasa luego.

Principales elementos:

- Objetos.- Mensajes.- Línea de vida.- Enfoques de control fuente/destino.- Puede incluir un actor.

TEMA:

Implementación en Java

Algoritmo y Estructura de Datos I (AEDI)

Java - Implementación de conceptos

IMPLEMENTACIÓN DE UN OBJETO

Declaración

Creación

NombreClase nombreObjeto = new NombreMetodoConstructor() ;

El método constructor es un método especial que se ejecuta en forma automática cuando se crea un objeto. La definición del método constructor es opcional siendo su finalidad principal inicializar variables y crear arreglos y objetos de otra clases.

IMPLEMENTACIÓN DE ATRIBUTOS DE CLASE

Java - Implementación de conceptos

Los atributos de clase están ubicados dentro de las clases. Solo existirá una copia de cada atributo de clase para todas las instancias de la clase que se creen.

class NombreClase {// Atributos de clasestatic double pi = 3.1416….

}

Para obtener el valor de un atributo de clase, digitar el nombre de la clase en la que fue declarado el atributo, luego el operador punto (.) y finalmente el nombre del atributo cuyo valor se desea obtener.

La palabra reservada static indica que se trata de un atributo de clase.

(Para obtener el valor de un atributo hay que considerar el modo de acceso con el que fue declarado el atributo en su clase).

IMPLEMENTACIÓN DE ATRIBUTOS DE INSTANCIA

Java - Implementación de conceptos

Los atributos de instancia están ubicados dentro de los objetos. Cada objeto nuevo obtiene una copia nueva del atributo de instancia que la clase define.

Para poder obtener el valor de un atributo de instancia deberá colocar el nombre del objeto, luego el operador punto (.) y finalmente el nombre del atributo cuyo valor se desea obtener.

(Para obtener el valor de un atributo hay que considerar el modo de acceso con el que fue declarado el atributo en su clase).

class NombreClase {// Atributos de claseString nombre ;….

}

Java - Implementación de conceptos

MÉTODOS DE CLASE

package dominioDeLaAplicacion ;import biblioteca.* ;

class NombreClase { // Atributos de clase y/o instancia...static tipoRetorno nombreMetodo (listaDeParámetros) {

LE.mostrarInformacion ( “Bienvenido” ) ;}

}

Para usar un método de clase deberá colocar el nombre de la clase en el que está definido dicho método, luego el operador punto (.) y finalmente el nombre del método que desea invocar.

(Para ejecutar un método hay que considerar el modo de acceso con el que fue definido el método en su clase).

Java - Implementación de conceptos

MÉTODOS DE INSTANCIA

Para usar un método de clase deberá colocar el nombre de la clase en el que está definido dicho método, luego el operador punto (.) y finalmente el nombre del método que desea invocar.

(Para ejecutar un método hay que considerar el modo de acceso con el que fue definido el método en su clase).

package dominioDeLaAplicacion ;import biblioteca.* ;

class NombreClase { // Atributos de clase y/o instancia...tipoRetorno nombreMetodo (listaDeParámetros) {

obj.ingresarDatos() ;}

}

MÉTODO PRINCIPAL

Java - Implementación de conceptos

package dominioDeLaAplicacion ;import biblioteca.* ;

class NombreClase { // Atributos de clase y/o instancia...public static void main ( String args[] ) {

LE.mostrarInformacion ( “Bienvenido” ) ;}

}

El método main (principal) se ejecuta automáticamente al ejecutar una aplicación. No se necesita ejecutarlo utilizando un objeto.

MÉTODO CONSTRUCTOR

Java - Implementación de conceptos

package dominioDeLaAplicacion ;import biblioteca.* ;

class NombreClase { // Atributos de clase y/o instancia...public NombreClase ( ) {

...}

}

El método constructor es un método especial. Su nombre es igual al de la clase y se ejecuta en forma automática cada vez que se crea un objeto de la clase.

Desarrollo de soluciones

Desarrollar una solución que permita ingresar las dos notas de un alumno (de 0 a 20) y permita calcular el promedio de las notas. Mostrar el promedio de notas del alumno (redondeado) y un mensaje indicando si el alumno aprobó o no aprobó el curso.

Nota: El promedio del alumno se determina en base a la suma de las dos notas ingresadas, más la nota mayor entre ambas dividido entre tres.

PROBLEMA: ETAPA 1

DescripciónProblema

1. Identificación del problema.

2. Descripción general del problema.

3. Enunciado claro y preciso del problema.

ENUNCIADOENUNCIADO

Dibujar la representación de la clase en UML de la siguiente estructura:

Algoritmo y Estructura de Datos I (AEDI)

package domApli ; import biblioteca.LE ;

class PrgAlumno {

double nota1, nota2, nota3 ;PrgAlumno ( ) { nota1 = 0 ; nota2 = 0 ;

nota3 = 0 ;}

void ingresarNotas ( ) { nota1 = LE.leerInt ( “ Ingrese la nota de prácticas del alumno ” ) ; nota2 = LE.leerInt ( “ Ingrese la nota del examen parcial: ” ) ; nota3 = LE.leerInt ( “ Ingrese la nota de examen final: ” ) ;

}

double promedio ( ) { return ( nota1 + nota2 + nota3 ) / 3 ;}

void mostrarPromedio ( double prom ) { LE.mostrarInformacion ( “ Nota final es : ” + prom ) ;

}

public static void main ( String args [ ] ) { PrgAlumno objAlumno01 = new PrgAlumno ( ) ; objAlumno01.ingresarNotas ( ) ; double prom = objAlumno01.promedio ( ) ; objAlumno01.mostrarPromedio (prom) ;

} }

Solución:

Algoritmo y Estructura de Datos I (AEDI)

Diagrama de Paquetes

Solución:

Algoritmo y Estructura de Datos I (AEDI)

TAREA:

Desarrollar una solución que permita calcular el área de un cuadrado, de un triángulo rectángulo y por último el área de un círculo.

Algoritmo y Estructura de Datos I (AEDI)