Introduccion Flashcards
Pasos para crear Soluciones en programación
Analisis del problema
Diseño o desarrollo de algoritmos
Resolucion del algoritmo
¿Como saber si una Solucion en programacion es buena? Si es:
Eficaz - Resuelve problema adecuadamente
Eficiente - Resuelve problema en tiempo minimo y aprovechando recursos
¿Que es el Diseño descendente?
Descomponer problemas en otros mas pequeños
¿Que es el Diseño modular?
Descomponer solucion en modulos mas pequeños
Utilidades para fabricar algoritmos en programacion (3)
Diagramas de flujo
Pseudocodigo
Tablas de decision
¿Que es un paradigma de programacion?
Modelo basico para diseño e implementación de programas, que sigue un enfoque o una filosofia particular
Fases de la creacion de software (2)
Resolucion de problema: Analisis, Diseño
Implementación: Codificacion, Prueba de ejecucion
Explotación y mantenimiento
¿Que es Java?
Lenguaje de programacion basado en C.
Caracteristicas principales de Java (4)
Orientado a objetos
Independencia de Hardware
Trabajo en red: Posibilidades TCP/IP
Seguro y sencillo
Tipos de aplicaciones Java (5)
De consola Graficas Applets Servlets Midlets
¿Que es un Entorno de Desarrollo Integrado (IDE)?
Aplicacion con las herramientas necesarias para todo el proceso de programacion
Diferencia entre variables primitivos y variables referenciados
La variables guardan valores o direcciones a objetos
Diferencia entre constantes y variables
Las constantes no cambian y las variables si cambian
Diferencia entre variables locales y variables miembros
Las locales aparecen dentro de un metodo y las miembros aparecen dentro de una clase
Fundamentos y planteamiento de la Programación Orientada a Objetos (2)
Descomponer programa en objetos
Localizar los objetos que componen el problema.
¿Que es la Abstracción en POO?
Reunir en clases, las características comunes de conjunto de objetos
¿Que es la Modularidad en POO?
Cada clase está en un archivo diferente
¿Que es la Encapsulacion en POO?
Ocultar datos de una clase a otra clase (pero no funciones o acceso a datos)
¿Que es la Jerarquía en POO?
Relación entre clases
¿Que es el Polimorfismo en POO?
Clases heredadas pueden realizar misma acción de maneras diferentes
¿Que es la Herencia en POO?
Clase creada a partir de una o varias clases existentes
¿Que es la Inclusion en POO?
Clase compuesta por otras clases
¿Que es la Identidad de un objeto?
Lo que diferencia un objeto de otro (nombre del objeto)
¿Que es el Estado de un objeto?
Valores de parametros o atributos un instante determinado
¿Que es el Comportamiento de un objeto?
Acciones que puede realizar un objeto
¿Que son las Propiedades de un objeto?
Datos (parametros o atributos) de un objeto.
Pueden ser datos primitivos u otro objeto
¿Que son los Metodos de un objeto?
Operaciones sobre las propiedades del objeto, o servicios que efectua el objeto
¿Que es un Mensaje?
Petición que se realiza a un objeto para hacer una acción (como llamar metodo de otro objeto)
¿Que es un Protocolo?
Conjunto de mensajes que puede recibir un objeto
¿Que ocurre con los objetos al ejecutar un programa? Ciclo de vida objeto (3)
Objetos se crean conforme se necesitan
Comunicacion entre objetos mediante mensajes de objetos o usuario
Eliminacion de objetos cuando no son necesarios
¿De que están compuestas las clases?
Atributos y metodos, comunes para objetos de esa clase
¿Que son las especificacion de un programa?
Informacion sobre el programa que necesitamos fabricar. Prueba empieza por especificacion
¿Que son las Pruebas de unidad?
Probar programa clase por clase (parte por parte)
¿Que son las Pruebas de integracion/sistema?
Probar programa completo
¿Que son las Pruebas exhaustivas?
Probar todas las posibilidades
¿Que son las Pruebas de caja blanca o test estructurales?
Recorrer todos los caminos de ejecucion y excepciones
¿Que son las Revisiones o recorridos?
Revisar visualmente el codigo
¿Que son los Análisis paso a paso del código con un depurador (debugger)?
Revisar la ejecucion paso a paso
¿Que es JUnit?
Libreria de java que realiza pruebas unitarias
Posibles tipos de errores generados en el desarrollo
Compilacion - Errores de compilacion (sintaxis, proceso no valido)
Enlazado - Errores de metodos de librerias o clases no detectadas en compilacion
Ejecucion - Errores durante ejecucion (logica, proceso no valido, gestion de errores)
Funciones basicas del uso de debugger y descripcion (2)
Breakpoint. Programador señala puntos donde ejecucion se para
Ejecucion paso a paso (linea por linea)
¿Para que sirve la Documentacion?
Para facilitar mantenimiento y reutilizacion a autores, desarrolladores
¿Que documentacion es Obligatoria? (5)
Clases, paquetes, constructores, metodos, y atributos
Etiquetas tipicas de documentacion y orden (8)
@autor, @version, @param, @return, @exception, @throws, @see, @deprecated
¿Que hace el javadoc?
Genera archivos de documentacion de manera automatica
¿Cuantas clases publicas puede haber en un archivo java?
1
Modificadores de acceso y descripcion (4)
public - Se accede desde cualquier clase del programa
protected - Se accede desde el propio paquete de la clase, y desde cualquier subclase
Por omision - Se accede desde el propio paquete de la clase
private - Se accede solo desde la propia clase
Caracteristicas de un algoritmo
Preciso (orden de cada paso)
Definido (mismo resultado)
Finito
¿Que es Diagramas de flujo?
Simbolos graficos para representar algoritmo
¿Que es Pseudocodigo?
Construir programa con lenguaje natural
¿Que es Tablas de decision?
Tabla con posibles condiciones del problema y sus acciones
¿Que es el paradigma de programacion declarativa?
Especificacion o declaracion que describen problema y detallan solucion (SQL)
¿Que es el paradigma de programacion funcional?
Funcion matematica con inputs y outputs (LISP)
¿Que es el paradigma de programacion logica?
Se especifica que hacer pero no como hacerlo (Prolog)
¿Que es el paradigma de programacion imperativa?
Serie de comandos que computadora ejecutara
¿Que es el paradigma de programacion convencional (o no estructurada)?
Lineas de codigo con Goto como unico control de flujo
¿Que es el paradigma de programacion estructurada?
Estructuras que facilitan modificacion y agrupacion del programa
¿Que es el paradigma de programacion orientada a objetos?
Punto de vista de objetos con propiedades y metodos
Modelo en cascada (clasico, tradicional, lineal secuencial)
Fases una detras de otra
Modelo por prototipos
Creacion de prototipos que mejora con el tiempo
Modelo evolutivo
Desarrollo flexible, escalable, con requisitos que pueden variar
Modelo incremental
Entrega de versiones parciales a medida que se construye producto final
Modelo en espiral
4 fases que se repetiran hasta cumplir todos los requerimientos del usuario
¿Cada tipo de procesador tiene su propio lenguaje maquina?
Si
¿Que es un lenguaje interpretado?
Lenguaje de programación,
donde mayoria de implementaciones pueden ejecutar instrucciones directamente sin previa compilacion
¿Es java un lenguaje interpretado?
Si
¿El resultado de compilar código fuente en Java es un archivo que contiene lenguaje de máquina?
No
¿Dentro del JDK se incluye un IDE?
No
¿Sólo para ejecutar programas en Java (pero no para crear otros) es indispensable disponer del JDK?
No
¿Para desarrollar programas en Java sólo es necesario disponer de un editor de texto y del JDK?
Si
¿Que es el JDK?
Entorno básico de desarrollo de los programas en Java
¿Que es el JRE?
Entorno de ejecución de los programas en Java
¿Que es el JVM?
Interprete de Java
¿En java hay un interprete diferente para cada sistema operativo?
Si
¿En java hay que generar código fuente diferente según el sistema operativo?
No
¿Que contiene el JDK?
Compilador e Interprete para linea de comandos
Bibliotecas de API
¿Que contiene el JRE?
JVM, bibliotecas y otros ficheros
Variable PATH, para que sirve
Ejecutar programas por linea de comandos
Variable CLASSPATH, para que sirve
Establece donde buscar clases o bibliotecas de API de java, o clases creadas por usuario
¿Que son las aplicaciones de consola en Java?
Programas independientes Con al menos 1 .class con main() Ejecutan con comando para JVM Sin interfaz
¿Que son las aplicaciones graficas en Java?
Usan clases con capacidades graficas, con imports
¿Que son los applets en Java?
Programas incrustados en otras aplicaciones Multiplataforma, descargables en cualquier navegador No main() No acceso a partes sensibles
¿Que son los servlets en Java?
Componentes de parte servidor, generan respuestas a peticiones de cliente
¿Que son los midlets en Java?
Ejecucion en sistemas de proposito simple o dispositivos moviles