View
125
Download
6
Embed Size (px)
DESCRIPTION
Conoce qué principios usan los desarrolladores para crear los softwares y aplicaciones que usamos todos los días.
Citation preview
Programación de Aplicaciones
Los Principios del Desarrollo de
Software de Hoy en Día
Conceptos y utilización del paradigma de la programación orientada a objetos para la creación de soluciones informáticas.
Este webinar te interesa si deseas conocer cómo crear soluciones computarizadas…
Aprenderás los principios que emplean los desarrolladores profesionales para crear los programas que hoy en día se utilizan alrededor del mundo.
Lic. Luis Ernesto Rubio Torres
Profesor de la Academia de Tecnologías de la Información Sun Certified Java Programmer. Profesor de Ingenierías Ejecutivas en UNITEC [email protected]
Comencemos con una pregunta:
¿Cómo se hace un programa?
PROGRAMACIÓN ORIENTADA A
OBJETOS
Programa = Aplicación
http://blogs.sun.com/manuelcr/entry/por_qu_eacute_java_es
http://leo.ugr.es/J2ME/INTRO/img/dispositivos.jpg
http://www.nasa.gov/mission_pages/mer/news/roverb-20090526.html
http://www.telva.com/albumes/2009/09/02/electrodomesticos_inteligentes/index.html
http://www.telva.com/albumes/2009/09/02/electrodomesticos_inteligentes/index.html
http://java.sun.com/javaone/sf/2007/articles/toyshow.jsps
http://library.abb.com/global/scot/scot271.nsf/veritydisplay/c9c1e89a8f8e6622c12574ef0053a7fb/$File/ABB%20SR_China_72dpi.pdf
http://blogs.sun.com/plamere/entry/lego_java_jsapi_talking_robots
http://blogs.sun.com/mgorshenev/entry/javaone_2007_part_3_cool
http://blogs.sun.com/mgorshenev/resource/picturepuzzle.html
http://blogs.sun.com/jag/entry/java_for_first_robotics_competition
http://java.sun.com/
http://netbeans.org/features/all.html
http://netbeans.org/features/scripting/index.html
http://www.vancouver2010.com/olympic-medals/geo-view/
http://java.sun.com/javafx/index.jsp
http://netbeans.org/features/javafx
http://java.sun.com/developer/onlineTraining/index.jsp
http://www.sun.com/training/certification/java/scjp.xml
http://netbeans.org/features/
http://imagenes.mailxmail.com/cursos/imagenes/2/6/introduccion_7062_1_1.gif
http://robocode.sourceforge.net/
http://www.robocode-argentina.com.ar/descargas/tutderob.doc
http://www.youtube.com/watch?v=ZWlATkrMflw
public class MiPrimerRobot extends Robot {
/**
* El Metodo Run() del Robot
*/
public void run() {
while (true) {
ahead(100); // Se mueve hacia adelante
turnGunRight(360); // gira el arma
back(100); // Se mueve hacia atrás
turnGunRight(360); // Gira el arma
}
}
/**
* Dispara cuando ve un robot
*/
public void onScannedRobot(ScannedRobotEvent e) {
fire(1);
}
/**
* Nos dieron, corramos! Girar perpendicularmente en contra de donde vino el disparo
*
*/
public void onHitByBullet(HitByBulletEvent e) {
turnLeft(90 - e.getBearing());
}
}
Lenguaje de Programación
Person i = new Man();
Person you = new Woman();
for( this.day; ever && ever; always++) {
if( you.love( me ) ) {
i.love ( you );
} else {
i.die( )
}
}
Productora
- cveProductora : int
- nombre : String
+ getNombre() : String
+ getCve(argname) : int
+ getProduccion(indice : int) : Pelicula
Actor
- cveActor : int
- nombre : String
- edad : double
- nacionalidad : String
+ getNombre() : String
+ getFilmografia(indice : int) : Pelicula
+ getEdad(argname) : double
+ getCve(argname) : int
+ getNacion(argname) : String
Pelicula
- cveProductora : int
- nombre : String
+ getNombre() : String
+ getCompañia() : Productora
+ getSoundTrack() : TemaMusical
+ getReparto(indice : int) : Actor
+ getCve(argname) : int
1
1..*
-compañia 1
-producciones 1..*
1..*1..*
-reparto
1..*
-filmografia
1..*
Compositor
- cveCompositor : int
- nombre : String
- nacionalidad : String
+ getNombre() : String
+ getNacion(argname) : String
+ getCve(argname) : int
+ getObra(indice : int) : TemaMusical
TemaMusical
- cveTema : int
- nombre : String
+ getNombre() : String
+ getAutor() : Compositor
+ getCve(argname) : int
1
1
-soundtrack 1
-film 1
1..*1..*
-autor
1..*
-obras
1..*
public class RepartoCorazonVal {
Pelicula corazonVal;
Productora twentiethCenturyFox;
TemaMusical braveHeartSoundtrack;
Compositor jamesHorner;
Actor[] repartoEstelar;
String reporte;
public RepartoCorazonVal() {
(corazonVal = new Pelicula()).setNombre("Corazon Valiente");
corazonVal.setCompañia(twentiethCenturyFox = new Productora());
twentiethCenturyFox.setNombre("20th Century Fox");
corazonVal.setSoundtrack(braveHeartSoundtrack = new TemaMusical());
braveHeartSoundtrack.setNombre("Brave Heart Song");
braveHeartSoundtrack.setAutor(jamesHorner = new Compositor());
jamesHorner.setNombre("James Horner");
corazonVal.setReparto(repartoEstelar = new Actor[3]);
(repartoEstelar[0] = new Actor()).setNombre("Mel Gibson");
(repartoEstelar[1] = new Actor()).setNombre("Sophie Marceau");
(repartoEstelar[2] = new Actor()).setNombre("Catherine McCormack");
}
}
reporte = "Pelicula: "
+ corazonVal.getNombre() + "\n"
+ "Productora: "
+ twentiethCenturyFox.getNombre() + "\n"
+ "Tema: "
+ braveHeartSoundtrack.getNombre() + "\n"
+ "Autor: "
+ jamesHorner.getNombre() + "\n"
+ "Reparto Estelar: " + "\n";
for(int i = 0; i < 3; i++){
reporte = reporte
+ "\t"
+ (corazonVal.getReparto(i)).getNombre()
+ "\n";
}
public class Pelicula {
private int cveProductora;
private String nombre;
private Productora compañia;
private Actor reparto[];
private TemaMusical soundtrack;
Pelicula() {
}
public String getNombre() {
return this.nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public Actor getReparto(int indice) {
return this.reparto[indice];
}
public void setReparto(Actor interprete, int indice) {
this.reparto[indice] = interprete;
}
}
Modelo Orientado a
Objetos
Humano
- nombre
- edad
- estatura
+correr( ){normal}
+hablar( )
+saltar( ){normal}
Hombre
- cuerpoMasculino
Mujer
- cuerpoFemenino
Hulk
- grandesMúsculos
+saltar( ) {altísimo}
+correr(
){superVeloz}
Vehiculo
- nombre
- marca
- motor
+endencerMotor
()
Avión
- turbina
Automóvil
- llantas
<interface>
Volador
+despegar( )
+volar( )
+aterrizar( )
Mujer bettyRoss;
Hombre bruceBanner;
Hulk theHulk;
Avion cazaII;
CazaII = new Avion();
bettyRoss = new Mujer();
bruceBanner = new Hulk();
theHulk = bruceBanner;
bettyRoss.hablar(“Ayuda”);
bettyRoss.correr();
theHulk.correr();
theHulk.saltar();
theHulk.volar();
cazaII.volar();
Humano
- nombre
- edad
- estatura
+correr( ){normal}
+hablar( )
+saltar( ){normal}
Hombre
- cuerpoMasculino
Mujer
- cuerpoFemenino
Hulk
grandesMúsculos
+saltar( ) {altísimo}
+correr( )
{superVeloz}
Vehiculo
- nombre
- marca
- motor
+encenderMotor
()
Avión
- turbina
Automóvil
- llantas
<interface>
Volador
+despegar( )
+volar( )
+aterrizar( )
Mujer bettyRoss;
Hombre bruceBanner;
Hulk theHulk;
Avion cazaII;
CazaII = new Avion();
bettyRoss = new Mujer();
bruceBanner = new Hulk();
theHulk = bruceBanner;
((Humano)theHulk).correr();
Humano personaje;
personaje = bettyRoss;
personaje.correr();
personaje = theHulk;
personaje.correr();
// TestSpidey.java
public class TestSpidey{
public static void main( String args[] ) {
Humano spiderMan;
spiderMan = new Humano("Peter Parker", "castaño", "negros");
Humano maryJane = new Humano("Mary Jane Watson", "rojo", "azules");
Humano [ ] docOctopus;
docOctopus = new Humano[ 8 ] ;
docOctopus[ 0 ] = spiderMan;
docOctopus[ 1 ] = maryJane;
docOctopus[ 2 ] = new Humano("May Parker", "blanco", "cafes");
for( int k = 0; k < 3; k++) System.out.println( docOctopus[ k ].perfil() );
}
}
import learning.business.superAnimals.*;
public class TestCharlotte {
public static void main(String[] args) {
Spider charlotte;
HomoSapiens otto;
Animal someOne;
SpiderMan peter;
Arachnidsspidey;
Charlotte = new Spider();
otto= new HomoSapiens();
peter = new SpiderMan();
someOne = charlotte; someOne.walk(); //displays: "This animal walks on 8 legs"
someOne = otto; someOne.walk(); //displays "This animal walks on 2 legs"
spidey = charlotte; spidey.climb(); spidey.jump(); //displays: "climb walls jump furniture"
spidey = peter; spidey.climb(); spidey.jump(); //displays: "climb buildings jump towers"
}
}
This animal walks on 8 legs.
This animal walks on 2 legs.
Spiders climb walls.
Spiders jump furniture.
SpiderMan climb buildings.
SpiderMan jump towers.
@UNITECMX UNITEC Universidad Tecnológica de México UNITEC México
Preguntas y Respuestas Ponente: Lic. Luis Ernesto Rubio Torres