Vous êtes sur la page 1sur 6

PRO01 Introduccin a la programacin

25-10-2011

PRO01: INTRODUCCIN A LA PROGRAMACIN


- Serie de pasos fundamentales para resolucin de problemas: Vida real En programacin Observacin de situacin o problema Anlisis del problema: problema definido y comprendido claramente. Diseo o desarrollo de algoritmo: procedimiento paso a paso para Pensamos en una o varias posibles solucionar el problema dado. soluciones Aplicamos la solucin ms adecuada Resolucin del algoritmo elegido en la computadora: convertir algoritmo en programa, ejecutarlo y comprobar q resuelve el problema. - Virtudes de la solucin: - Correccin y eficacia: si resuelve el problema adecuadamente. - Eficiencia: si lo hace en un tiempo mnimo y con uso ptimo de los recursos. - varios conceptos para afrontar la construccin de la solucin: - Abstraccin: anlisis de problema para descomponerlo en otros ms pequeos describiendo de modo preciso. - Divide y vencers. - Encapsulacin: ocultar la info para poder implementarla de maneras sin que influya en el resto de elementos. - Modularidad: estructurar parte en mdulos independientes (cada uno tiene su f(x) independiente). ALGORITMOS Y PROGRAMAS - Algoritmo: secuencia ordenada de pasos, descrita sin ambigedades, que conducen a la solucin de un problema dado. - Son independientes de los leng prog y de las computadoras en que se ejecutan. - Caractersticas fundamentales: - Preciso e indicar el orden de realizacin paso a paso. - Definido: si se ejecuta dos o ms veces debe obtener = resultado cada vez. - Finito: n finito de pasos. - Programa: pasos que permiten resolver el problema escritos en un lenguaje de programacin. - Lenguajes de programacin: medio para expresar el algoritmo. - Ordenador: procesador para ejecutar los programas. - Cuando problemas son complejosdescomponer. Estrategia de diseo descendente (o top-down). - Representacin grfica: DFD (fases anlisis), pseudocdigo, tablas de decisin (situaciones condicionales complex).

PARADIGMAS DE LA PROGRAMACIN
- Son modelos bsicos para el diseo y la implementacin de programas. - Cada modelo determinar como ser el proceso de diseo y la estructura final del programa. - Paradigma representa un enfoque particular o filosofa para la construccin del software. - Cada uno tendr sus ventajas e inconvenientes, ser ms o menos apropiado pero no es correcto decir que uno sea mejor que los dems. IMPERATIVA - Serie de comandos que ejecuta una compu. - comando detallado de forma clara y precisa. - Convencional: o no estructurada (GOTO) - Estructurada: concepto modular. Bucles. - Orientada a objetos. - Otros paradigmas (visual, orientada a eventos) DECLARATIVA - Declara conjunto de condiciones (ej. SQL). - Opuesto a imperativa. - Funcional: programa es una f(x) matemtica. - Lgica: especifica QU hacer (y no CMO hacerlo). - Ej. PROLOG.

FASES DE LA PROGRAMACIN
1) RESOLUCIN DEL PROBLEMA - Problema definido y comprendido claramente para poder ser analizado con todo detalle. - Etapas: a) Anlisis: indicar la especificacin de requisitos que se debe cubrir. - Contactos numerosos entre analista/programador y cliente/usuario. - Se especifican procesos y estructuras de datos. - Creacin de prototipos muy til. - Analizar doc de empresa, investigar, observar y recopilar info til. - Qu datos son necesarios xa resolver problema?entrada del problema o datos que se proporcionan. - Qu info ofrecer la resolucin del problema?resultados deseados o salidas del problema. b) Diseo: convierte especif en diseo +detallado, indicando comportamiento o secuencia de lgica de instruccionesalgoritmo.

Pgina 1/6

PRO01 Introduccin a la programacin

25-10-2011

- Plantear aplicacin como operacin global e ir descomponindola en otras +sencillas, detalladas y especficas. - nivel de refinamiento las operaciones identificadas se asignan a mdulos separados. - diseo requiere de la prueba o traza del programa: seguimiento paso a paso de las instrucciones del algoritmo. - Si la solucin tiene errores hay que volver a fase de anlisis para modif o tomar nuevo camino para solucin. 2) IMPLEMENTACIN a) Codificacin o construccin: transformar resultados a un lenguaje de programacin determinado. - Necesaria serie de pruebas: funcionam. mdulo (unitarias), mdulos trabajen entre ellos (interconexin) y que funcionen en conjunto (integracin). - En este proceso de traduccin del algoritmo obtendremos el cdigo fuente (lo que llamamos programa). - Para que programa funcione debe ser traducido al lenguaje de la mquinacompilar o interpretar el programa. - Compilacin: traduce instrucciones al lenguaje que la mquina interpreta directamente. - Compilador es programa que traduce. - Recibe cdigo fuente, hace anlisis lexicogrfico, sintctico y semntico. - Genera cdigo intermedio no optimizado. Optimiza el cdigo. - Genera finalmente el cdigo objeto para una plataforma especfica. - Intrprete: programa capaz de analizar y ejecutar otros programas escritos en lenguaje de alto nivel. - Slo traducen a medida que sea necesario (gralm instruccin por instruccin). - Normalmente no guardan el resultado de la traduccin. - Una vez traducido (por compilacin o interpretacin) el programa podr ser ejecutado. b) Prueba de ejecucin y validacin: poner a prueba nuestro programa para ver su respuesta en situaciones difciles. - Realiza una serie de acciones: - Ver si el programa responde a los requerimientos especificados. - Observar si se detectan nuevos errores y si son bien gestionados. - Comprobar si la interfaz es amigable. - Una vez corregido y testeado el programa se documenta mediante: - Documentacin interna: encabezados, descripciones, comentarios directamente en el cdigo fuente. - Doc externa: manuales. 3) EXPLOTACIN - Programa instalado en sistema y siendo til xa los usuarios. - Mantenimiento: proceso de mejora y optimizacin del software despus de su entrega al usuario final. - Cambios en el software para corregir defectos encontrados durante su uso. - Adicin de nuevas funcionalidades para mejorarlo. - Imprescindible documentacin adecuada.

CICLO DE VIDA DEL SOFTWARE


- Sucesin de estados o fases por las cuales pasa un software a lo largo de su vida. - Etapas mnimas: especifi y anlisis de requisitos, diseo, codificacin, pruebas, instalacin y paso a produccin, mantenim.

LENGUAJES DE PROGRAMACIN
- Leng Prog: conjunto de reglas sintcticas y semnticas, smbolos y palabras especiales establecidas xa construir progs. - Lenguaje artifical, construccin mental del ser humano para expresar programas. - Gramtica del lenguaje: reglas aplicables al conjunto d smbolos y palabras especiales para construir sentencias correctas. - Lxico: conjunto finito de smbolo y palabras especiales. Vocabulario del lenguaje. - Sintaxis: posibles combinaciones de smbolos y palabras especiales. - Semntica: significado de cada construccin del lenguaje, accin que se llevar a cabo. - A travs de este conjunto comn de instrucciones se puede lograr construccin colaborativa de un programa entre personas. LENGUAJE MQUINA - Lenguaje usado directamente por el procesador. - Conjunto de instrucciones codificadas en binario directamente interpretable por un circuito microprogramable. - Cada mquina tiene su propio conjunto de instrucciones codificadas con ceros y unos. - Inconvenientes: - Cada programa slo vlido para un tipo de procesador u ordenador. - Lectura o interpretacin de programas extremadamente difcil (complica modificaciones, muy costosas). - Programadores deben memorizar largas cadenas de ceros y unos. ENSAMBLADOR - Instrucciones en cdigos de operacin que describen operaciones elementales del procesador. - Leng de bajo nivel, dependen del hardware en que se ejecutan. - Mnemotcnico: palabras especiales que sustituyen las cadenas de unos y ceros (MUL, DIV, MOV). - Dificultades: - Programas siguen dependiendo directamente del hardware. - Programadores conocer detalladamente la mquina sobre la que programan (uso adecuado de sus recursos). - Lectura, interpretacin o modificacin de programas sigue siendo compleja. LENGUAJES COMPILADOS

Pgina 2/6

PRO01 Introduccin a la programacin


- Lenguaje ms cercano al humano (Pascal, Fortran, C, C++, Algol)lenguajes de alto nivel. - Ventajas: - Ms fciles de aprender y utilizar. - Reduce el tiempo de desarrollo de programas (as como los costes). - Independientes del hardware. - Lectura, interpretacin y modificacin de los programas mucho ms sencilla. - El programa tiene que traducirse a un cdigo que entienda la mquinacompilacin. - Compilador: realiza un proceso: - Traduce programa alto nivel e informa de errores. - Subsanados errores se genera programa traducido a cdigo mquina o cdigo objeto. - Enlazado: se aaden los mdulos de enlace o bibliotecas. - Tras el enlazado se obtiene el cdigo EJECUTABLE.

25-10-2011

LENGUAJES INTERPRETADOS - Cada instruccin se analiza, traduce y ejecuta tras haber sido verificada (pero una vez ejecutada no se queda en memoria). - Intrprete: programa traductor de lenguaje de alto nivel en el que traduccin y ejecucin son simultneas. - La instruccin pasa a lenguaje mquina y se ejecuta directamente. - No se genera cdigo objeto ni programa ejecutable. - Generan programas de menor tamao que un compilador (al no guardar el programa traducido a cdigo mquina). - Inconveniente: algo ms lentos (ya que traducidos en tiempo de ejecucin). - Necesitan disponer del programa intrprete corriendo en la mquina que se ejecutan. - Son lenguajes como Perl, PHP, javascript, Pyton - Pseudo-compilados (o pseudo-interpretados): a medio camino entre compilados e interpretados. - Cdigo fuente se compila para obtener el cdigo binario en forma de bytecodes (estructuras similares a cdigo mquina). - Bytecodes son independientes del tipo de mquina, son interpretados por una mquina virtual. - Mquina virtual ser especfica tipo de hardware, pero los bytecodes son universales.

JAVA (Write Once, Run everywhere) - Lenguaje de sintaxis parecida a C++ de la que se han eliminado elementos complicados que pueden originar errores. - Orientado a objetos, permite uso de gran cantidad de bibliotecas ya definidas. - Independiente del hardware, el cdigo generado vlido plataforma. - Cdigo ser ejecutado por la JVM (Java Virtual Machine) instalada sobre el hardware. - Caractersticas de Java: - Cdigo generado por el compilador Java es independiente de la arquitectura. - Totalmente orientado a objetos. - Sintaxis similar a C y C++. - Distribuido, preparado para aplicaciones TCP/IP. - Dispone de amplio conjunto de bibliotecas. - Robusto, realiza comprobaciones de cdigo en tiempo de compilacin y de ejecucin. - Seguridad garantizada: las aplicaciones Java no acceden a zonas delicadas de memoria o de sistema.
HISTORIA - 1991 Sun crea lenguaje para pequeos dispositivos electrnicos. Si disp cambiaba haba que reescribir el cdigo. - 1995 crea Java como lenguaje independiente del dispositivo. - Se aade un intrprete de a la versin 1.2 de Netscape. - En 1997 aparece java 1.1. En 1998 java 1.2 pas a llamarse Java 2. - Objetivo: ser el nexo universal que conecte a los usuarios con la informacin. - JDK (Java Development Kit): kit de desarrollo con un compilador y JRE (Java Runtime Environment): entorno de ejecucin. - JAVA 2 incluye los siguientes elementos: - Lenguaje de programacin: Java. - Conjunto de bibliotecas estndar necesarias en todo entorno java: el Java Core. - Conjunto de herramientas para desarrollo: compilador de bytecodes, generador de documentacin, depurador - Entorno de ejecucin: una mquina virtual (JVM) que ejecuta los programas (ya traducidos a bytecodes). - tres ediciones de Java2 : J2SE (creacin de aplicaciones y applets en Java. J2EE (aplicaciones empresariales y server-side) y J2ME (mviles).

Pgina 3/6

PRO01 Introduccin a la programacin

25-10-2011

CARACTERSTICAS - Orientacin a objetos: los datos y el cdigo se combinan en entidades llamadas objetos. - El objeto tendr un comportamiento (su cdigo interno) y un estado (datos). - Objetos permiten reutilizacin del cdigo. Son piezas reutilizables en mltiples proyectos distintos. - Permite reducir el tiempo de desarrollo. - Java incorpora las tres caract. del paradigma OO: encapsulacin, herencia y polimorfismo. - Los patrones o tipos de objeto se llaman clases y los objetos de una clase se llaman instancias. - Independencia: programas java pueden ejecutarse tipo de hardware. - Cdigo fuente compilado a bytecodes que ser interpretado y ejecutado en la JVM (Java Virtual Machine). - JVM es un programa escrito en cdigo nativo de la plataforma destino entendible por el hardware. - Parte dependiente del sistema es la JVM y las libreras bsicas para acceder directam al hardware de la mquina. - Trabajo en red: comunicacin va TCP/IP, libreras para acceso e interaccin con protocolos http, ftp - Seguridad: 1) Eliminado los posibles accesos a zonas de memoria sensibles de C y C++. 2) Cdigo java comprobado y verificado para evitar que produzcan efectos no deseados. - Los test que se aplican garantizan que operaciones, operandos, conversiones, uso de clases sea seguro. 3) Java no permite apertura de ficheros en mquina local ni ejecutar aplic nativa. Impide uso de otros PCs como puente. - Simplicidad: tan potente como C o C++ pero mucho ms sencillo. Curva de aprendizaje muy rpida. - Eliminado cosas como aritmtica de punteros, registros, definicin de tipos, gestin de memoria - Se reduce la posibilidad de cometer errores comunes. - Garbage collector: libera al programador de gestin de la memoria, fragmentacin (huecos libres). - Podemos crear tantos objetos como solicitemos pero nunca tendremos que destruirlos. - Java los borra cuando determina que no los usar ms. - Bytecodes: una vez escrito el cdigo fuente (archivos .java)precompilacin (generacin de bytecodes, archivo .class). - Son interpretados directamente por la JVM y traducidos al cdigo nativo de la plataforma sobre la que se ejecuta. - Bytecode: conjunto de instrucciones en lenguaje mquina de la JVM, no especfico de ninguna plataforma concreta. - Al intrprete se le conoce como JVM o intrpretes de java en tiempo real (JRE). - Verificacin: en el proceso de precompilacin un verificador de bytecodes que se asegura que se cumple: - Cdigo satisface especificaciones de JVM. - No amenaza contra integridad del sistema. - No desbordamientos de memoria. - Parmetros y tipos son adecuados. - No conversiones de datos no permitidas. - Para que bytecode sea ejecutado plataforma es imprescindible que tenga su JVM especfica.

PROGRAMAS EN JAVA
ESTRUCTURA DE UN PROGRAMA - Empiezan con public class nombre_clase{} clase principal que contiene al resto de elementos del programa. - Contiene al mtodo principal o main(). - Puede contener otras clases del usuario pero slo una puede ser public. - El nombre del fichero .java que contiene el cdigo fuente coincidir con el de la clase principal. - public static void main (String[ ] args) {} mtodo que representa al programa principal. - Desde l se puede hacer uso del resto de clases creadas.

Pgina 4/6

PRO01 Introduccin a la programacin


- programa tiene un mtodo main. - Comentarios: // y /* */ - Bloques de cdigo: conjunto de instrucciones que se marcan mediante apertura y cierre de llaves { } - Punto y coma: finaliza cada lnea de cdigo.

25-10-2011

ENTORNO BSICO DE DESARROLLO JAVA - JDK es la herramienta bsica, incluye un compilador y un intrprete para lnea de comandos. - Incluye libreras, herramientas, prueba de programas - Tb incluye el JRE (que contiene la JVM, bibliotecas de clases y otros ficheros). - Para el desarrollo simple vale con un editor de texto plano y el JDK (o Java SE). - API de Java: (Application Programming Interface) conjunto de bibliotecasBibliotecas de clases de Java. - Organizada en paquetes lgicos que contienen cada una un conjunto de clases relacionadas semnticamente. - Configuracin: instalado el JDK hay que ajustar las variables de entorno: - PATH: incluimos los binarios del JDK. - CLASSPATH: enlace a las clases de la API de Java y las creadas por el usuario. Puede enlazar a .jar y .zip. - Podemos codificar con un editor de texto, compilar el .java con el comando javac (compilador) y ejecutar el .class generado con el comando java (inicia JVM). TIPOS DE APLICACIONES EN JAVA - App de consola: programas independientes (como los creados con lenguajes tradicionales). - Se componen como mnimo de un archivo .class que contiene necesariamente el mtodo main. - Se ejecutan cuando invocamos el comando java para iniciar el JVM. - Se leen y escriben hacia y desde la E/S estndar (consola de comandos, sin GUI). - Aplicaciones grficas: usan las clases con capacidades grficas como Swing: biblioteca para interfaz grfica de usuario avanzada de la plataforma Java SE. - Incluyen instrucciones import: indican al compilador Java q las clases del paquete Javax.swing se incluyan en la compilacin. - Applets: programas incrustados en otras aplicaciones (normalm una web que se muestra en navegador). - Cuando navegador carga web con applet se lo descarga y comienza a ejecutarse. - Se descargan junto a pgina HTML desde servidor web y se ejecutan en la mquina cliente. - No tienen acceso a partes sensibles (ej escribir archivos) excepto si el cliente lo autoriza en permisos del sistema. - No tienen un mtodo principal. - Son multiplataforma y se ejecutan en navegador que soporte java. - Servlets: aplicaciones en part del servidor de Java EE, encargados de generar respuestas a peticiones de clientes. - Trabajan en lado de servidor. Para desarrollar aplicaciones Web que interacten con los clientes. - Midlets: aplics para su ejecucin en sistemas de propsito simple o dispositivos mviles. - Creados para dispositivos embebidos (se dedican a una sola actividad), ms especficamente para mquina virtual MicroEdition (Java ME). - Gralmente juegos y aplicaciones para mviles. ENTORNOS DE DESARROLLO INTEGRADOS (IDE o Integrated Development Environments) - Aplicaciones que permiten el proceso completo de desarrollo de software en un nico programa. - Entorno grfico que permite labores de edicin, compilacin, depuracin, correccin de errores, ejecucin de programas - Otras ventajas como cdigo fuente coloreado, plantillas para tipos de aplicaciones, creacin de proyectos - IDEs actuales: - Gratuitos: NetBeans, Eclipse, BlueJ, Jgrasp, Jcreator LE. - Propietarios: Jcreator, JDeveloper, Jbuilder, IntelliJ IDEA. NETBEANS - En origen proyecto estudiantes de Repblica Checa, se cre una compaa que fue comprada por Sun en 1999 y liberado (libre, cdigo abierto, gratuito y sin restricciones de uso). - Escrito en Java. Originalm para Java, sirve para otros lenguajes. - Soportado por una serie de empresas encabezadas por Sun. - Posibilidades: - Escribir cdigo en Java, C, C++, PHP, CSS, Javascript, Ruby y Groovy. - Permite crear aplicaciones J2EE al incorporar servidores de aplicaciones Java (Tomcat y Glassfish). - Crear aplicaciones Swing de forma sencilla (al estilo de Visual Studio de Microsoft). - Crear aplicaciones J2ME para dispositivos mviles. - NetBeans 7.0: - Permite desarrollar aplicaciones a partir de un conjunto de componentes denominados mdulos. - Mdulo: formado por: - Un archivo Java que contiene clases java escritas para interactuar con APIs de NetBeans. - Manifest file: archivo especial que lo identifica como mdulo. - Aplicaciones construidas a partir de mdulos pueden extenderse agregando nuevos mdulos desarrollados indep. - Cada mdulo provee una funcin bien definida (ej soporte de Java, edicin, soporte para el sistema CVS) - NetBeans contiene todos los mdulos necesarios para desarrollo de aplics Java en una sola descarga. - Permite empezar a trabajar inmediatamente.

Pgina 5/6

PRO01 Introduccin a la programacin

25-10-2011

Pgina 6/6

Vous aimerez peut-être aussi