AEDI-TEO_Sem01_2_v6.ppt
-
Upload
diego-isla -
Category
Documents
-
view
212 -
download
0
Transcript of AEDI-TEO_Sem01_2_v6.ppt
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
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
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.
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) ;
} }