You are on page 1of 7

ENTORNOS DE DESARROLLO TEMA 1: LENGUAJES DE PROGRAMACIN

1.2 Lenguajes de Mquina El lenguaje de maquina consta de cadenas de nmeros binarios que entienden los procesadores. Todas las instrucciones tienen 2 partes: la primera es el comando u operador que dice al ordenador la funcin a realizar; la segunda es el operando que indica donde hallar o almacenar datos y otras instrucciones. El programador deba de recordar los cdigos numricos para las instrucciones y las posiciones para almacenar datos. 1.3 Lenguajes Ensambladores Por 1950, se desarrollaron cdigos para las operaciones y direcciones simblicas. Un paso fue sustituir los cdigos de operaciones numricos del lenguaje de mquina por smbolos alfabticos. El ordenador sigue usando el lenguaje de mquina pero los programas ensambladores traducen los smbolos de cdigo de operacin en lenguaje mquina. Este procedimiento prepar avances posteriores: la tcnica de direccionamiento simblico, que expresa una direccin en smbolos para el programador. En la actualidad, se especifica donde se quiere colocar la primera localidad del programa y el programa ensamblador asigna localidades para las instrucciones y para los datos. Los lenguajes ensambladores tienen ventajas sobre los de mquina. Ahorran tiempo y requieren menos atencin a detalles. Hacen menos errores y los que hacen se localizan mejor. Los programas son ms fciles de modificar. Tambin tienen limitaciones y desventajas. La codificacin es lenta y tienen una orientacin a la mquina, es decir, la marca y modelo de procesador que se utiliza. 1.4 Lenguajes de Alto Nivel Los primeros programas ensambladores producan una instruccin en lenguaje mquina por cada instruccin del programa fuente. Para agilizar la codificacin, se desarrollaron programas ensambladores en los cuales una macroinstruccin produce varias lneas de cdigo en lenguaje mquina. Los programas en lenguaje de alto nivel se pueden utilizar con diferentes marcas de ordenador; esto reduce el costo de la reprogramacin con equipos nuevos. Otras ventajas son: Son ms fciles de aprender que los lenguajes ensambladores. Se pueden escribir ms rpidamente. Permiten tener mejor documentacin. Son ms fciles de mantener.

2. Lenguajes Compilados Los programas que traducen el lenguaje de alto nivel a cdigo que pueda usar la mquina se llaman compiladores. stos pueden generar muchas lneas de cdigo de mquina por cada proposicin del programa fuente. Se requiere una corrida de compilacin antes de procesar los datos de un problema. Al usar un lenguaje compilado el programa desarrollado nunca se ejecuta mientras haya errores. 3. Lenguajes Interpretados Alternativa a los compiladores para traducir lenguajes de alto nivel. El programador carga el programa fuente en el ordenador junto con los datos que se van a procesar, as, un programa intrprete convierte cada proposicin del programa fuente en lenguaje de mquina cuando vaya siendo necesario. Cada vez que se use una instruccin, se le debe interpretar otra vez y traducir a lenguaje mquina. El intrprete quita la necesidad de hacer una corrida de compilacin despus de cada modificacin del programa; esto hace que sea ms lento que si estuviera compilado con antelacin. 4. Lenguajes de programacin Declarativos (como SQL) Son lenguajes en los cuales se indica al ordenador que se quiere obtener o buscar. La programacin declarativa implica la descripcin de un problema en lugar de dar una solucin al mismo, dejando la interpretacin de los pasos para la solucin a un intrprete no especificado. En otras palabras se provee el qu, pero el como se deja para el intrprete, por tanto la programacin declarativa tiene 2 fases: la declaracin y la interpretacin. 4.2 Desventajas de la programacin Declarativa La principal es que no puede resolver cualquier problema, sino que est restringida al subconjunto de problemas para los que el intrprete o compilador fue diseado. Otra desventaja es la eficiencia. Al necesitar una fase de interpretacin extra el proceso es ms lento que la programacin imperativa. 4.3 Ventajas de la programacin Declarativa La solucin de un problema se puede realizar con un nivel de abstraccin alto, sin entrar en detalles de implementacin, lo que hace que las soluciones sean ms fciles de entender. Es muy usada para resolver problemas de IA, BBDD,pero ningn lenguaje declarativo se aproxima en popularidad a los lenguajes imperativos.

4.5 Programacin Lgica Su idea fundamental es usar la lgica como lenguaje de programacin. La lgica es declarativa, no imperativa ya que no dice cmo resolver un problema, sino las condiciones que satisfacen las soluciones. A partir de ellas se deducen las soluciones. La programacin lgica, adems de la funcional, forma parte de la programacin declarativa. En ella se establecen relaciones entre entidades indicando no cmo sino qu hacer. Programacin lgica: algoritmos= lgica + control 4.6 Programacin Funcional Su objetivo es conseguir lenguajes expresivos y matemticamente elegantes, en los que no se necesite bajar al nivel de mquina. Los programas escritos en lenguaje funcional estn constituidos nicamente por definiciones de funciones puramente matemticas, las cuales verifican propiedades y por tanto, carecen de efectos laterales. Otra caracterstica de estos lenguajes es la no existencia de asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteracin. Existen 2 categoras de lenguajes funcionales: los funcionales puros y los hbridos. Los hbridos son menos dogmticos que los puros ya que permiten conceptos de los lenguajes imperativos como instrucciones o variables. Los puros conservan su transparencia referencial, y los hbridos no siempre. 5. LENGUAJES DE PROGRAMACIN IMPERATIVOS Son los lenguajes en los cuales se le ordena al ordenador cmo realizar una tarea siguiendo una serie de pasos o instrucciones. Dentro de la programacin imperativa, se tiene un conjunto de instrucciones que le indican al ordenador como hacer una tarea. Los lenguajes imperativos se basan en comandos u rdenes que se le dan al ordenador para ordenar o cambiar valores en ciertas partes de la memoria. La ejecucin de esas rdenes se realiza de manera secuencial, cuando acaba un comando, empieza el siguiente. 5.1 Lenguajes Imperativos Tradicionales / Procedurales Aqu es la aplicacin quien controla que parte y en que secuencia se ejecuta el cdigo. La ejecucin se inicia con la primera lnea de cdigo y sigue una ruta predefinida. Los lenguajes tradicionales se basan en el uso de variables para almacenar valores y en hacer operaciones con los datos almacenados. La arquitectura consta de una secuencia de celdas llamadas memoria, en las cuales se pueden guardar de forma codificada datos o instrucciones; tambin consta de un procesador capaz de ejecutar secuencialmente una serie de operaciones llamadas comandos.

El usuario especifica todas las operaciones de acceso a datos llamando a los procedimientos necesarios. Las sentencias de un lenguaje procedural deben estar embebidas en un lenguaje de alto nivel. 6. Diferencia entre lenguajes Declarativos e Imperativos En los lenguajes declarativos las sentencias que se usan describen el problema a solucionar pero no las instrucciones para hacerlo. Los lenguajes imperativos describen paso a paso unas instrucciones que al ejecutarse variarn el estado de un programa y hallarn la solucin. 7. Lenguajes de programacin Orientados a Objetos La programacin orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Un objeto contiene toda la informacin (atributos) que permite identificarlo frente a otros de otras clases. Dispone tambin de mecanismos de interaccin (mtodos) que ayudan en la comunicacin entre objetos y por ello, el cambio de estado en los propios objetos. Esta caracterstica lleva a tratarlos como unidades indivisibles donde no se separan informacin y procesamiento. Se difiere a los lenguajes imperativos tradicionales, en los que los datos y los procedimientos estn separados y sin relacin, ya que lo que se quiere es el procesamiento de unos datos de entrada para obtener unos de salida. Los programadores que usan la programacin orientada a objetos definen objetos con datos y mtodos y luego envan mensajes a ellos diciendo que realicen esos mtodos por s mismos. 7.1 Conceptos bsicos de la programacin orientada a Objetos. Objeto: Entidad con atributos y mtodos. Corresponden a los objetos reales del mundo que nos rodea o a objetos internos del sistema. Clase: Define la propiedad y el comportamiento de un objeto concreto. Es una coleccin de objetos similares o la implementacin, declaracin o definicin de un tipo de objeto. Cada vez que se construye un objeto de una clase se crea una instancia de esa clase. Mtodo: Algoritmo asociado a un objeto que se realiza tras recibir un mensaje. Un mtodo puede cambiar las propiedades del objeto o generar un evento. Evento: Un suceso del sistema. El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. Mensaje: Comunicacin dirigida a un objeto. Propiedad o atributo: contenedor de un tipo de datos de un objeto, que hace los datos visibles desde fuera del objeto y puede alterarse por algn mtodo. Estado interno: propiedad invisible que puede accederse a ella por un mtodo del objeto.

7.2 Caractersticas de la Programacin orientada a Objetos. Abstraccin: Expresa las caractersticas esenciales de un objeto, las cuales distinguen a un objeto de los dems. Encapsulamiento: Oculta las variables innecesarias para el tratamiento del objeto pero necesarias para su funcionamiento, tambin oculta las que solo pueden ser llamadas por otras funciones dentro del objeto. Polimorfismo: Capacidad de los objetos de una clase de contener valores de diferentes tipos durante la ejecucin del programa. Herencia: Permite crear objetos a partir de otros existentes, obteniendo caractersticas similares a los existentes.

TEMA 2: Fases de desarrollo software


Las etapas principales a realizar en cualquier ciclo de vida son: 1. Anlisis: Construye un modelo de los requisitos. 2. Diseo: A partir del modelo de anlisis se deducen las estructuras de datos, la estructura en la que se descompone el sistema y la interfaz de usuario. 3. Codificacin: Construye el sistema. La salida de esta fase es cdigo ejecutable. 4. Pruebas: Se comprueba que se cumplen criterios de correccin y calidad. 5. Mantenimiento: En esta fase se asegura que el sistema siga funcionando y adaptndose a nuevos requisitos.

1. Ciclos de vida en cascada. Este modelo admite la posibilidad de hacer iteraciones, si se tiene que volver a una etapa anterior hay que recorrer de nuevo el resto de las etapas. Despus de cada etapa se realiza una revisin para comprobar si se puede pasar a la siguiente. Trabaja con documentos, la entrada y salida de cada fase es un tipo de documento especfico. Los documentos son: Anlisis: Toma como entrada una descripcin en lenguaje natural de lo que quiere el cliente. Produce S.R.D Diseo: Su entrada es el S.R.D y produce el S.D.D Codificacin: Con el S.D.D produce mdulos. En esta fase se hacen tambin pruebas de unidad. Pruebas: A partir de los mdulos probados se hace la integracin y pruebas de todo el sistema. El resultado de las pruebas es el producto final listo para entregar.

1.2 Ventajas. La planificacin es sencilla.

La calidad del producto resultante es alta. Permite trabajar con personal poco cualificado.

1.3 Inconvenientes. Necesidad de tener todos los requisitos al principio. Si se han cometido errores en una fase es difcil volver atrs. No se tiene el producto hasta el final con lo cual si se comete un error en la fase de anlisis no se ver hasta la entrega y el cliente ver los resultados slo al final. No se tienen indicadores fiables del progreso del trabajo. Es comparativamente ms lento que los dems y el coste es mayor tambin.

1.4 Tipos de proyectos para los que es adecuado. Aquellos que tienen las especificaciones desde el principio. Para desarrollar algo no novedoso. Proyectos que se entienden bien desde el principio.

1.5 Ciclo de vida tipo sashimi Se permite el solapamiento entre frases. Una ventaja es que no necesita generar tanta documentacin como el ciclo de vida en cascada debido a la continuidad del mismo personal entre fases. Los problemas planteados son: Es an ms difcil controlar el progreso del proyecto. Al hacer las cosas en paralelo si hay problemas de comunicacin pueden surgir inconsistencias.

2. Modelo de ciclo de vida en espiral. Boehm en 1988. Consiste en una serie de ciclos que se repiten. Cada uno tiene las mismas fases y cuando se termina da lugar a un producto ampliado al del ciclo anterior. Tiene en cuenta el concepto de riesgo. Un riesgo pueden ser muchas cosas: requisitos no comprendidos, mal diseo, errores, En cada iteracin Boehm recomienda recopilar la siguiente lista de informaciones: Objetivos: Se hacen entrevistas con los clientes y se les hace rellenar cuestionarios. Alternativas: Diferentes formas de conseguir objetivos. Dos puntos de vista: o Caractersticas del producto o Formas de gestionar el proyecto. Restricciones: o Desde el punto de vista del producto: Interfaces de tal o cual manera, o Desde el punto de vista organizativo: Coste, tiempo, personal, Riesgos: Lista de riesgos identificados. Resolucin de riesgos: Construccin de prototipos. Resultados: Son lo que realmente ha ocurrido despus de la resolucin de riesgos. Planes: Lo que se va a hacer en la siguiente fase.

Compromiso: Decisiones de gestin sobre como continuar.

Al terminar una iteracin se comprueba lo hecho y si cumple con los requisitos, el propio cliente evala el producto. No existe diferencia entre cuando termina el proyecto y cuando empieza la fase de mantenimiento. Es adecuado para sistemas de gran tamao, cuando no es posible definir al principio todos los requisitos. 2.1 Ventajas No necesita una definicin completa de los requisitos para empezar a funcionar. Al entregar productos desde el final de la primera iteracin es ms fcil validar los requisitos. El riesgo en general es menor, porque si todo se hace mal, solo se ha perdido el tiempo y recursos en una iteracin. El riesgo de sufrir retrasos es menor.

2.2 Inconvenientes Es difcil evaluar los riesgos. Necesita de la participacin continua por parte del cliente.

3. Ciclos de vida orientados a Objetos Modelo fuente Fue creado por Henderson-Sellers y Edwards en 1990. Es un ciclo pensado para la orientacin a objetos y posiblemente el ms seguido. Sus fases son: 1. Planificacin del negocio 2. Construccin: La ms importante y se divide a su vez en: planificacin, investigacin, especificacin, implementacin y revisin. 3. Entrega. La primera y la tercera fase son independientes de la metodologa de desarrollo orientado a objetos. Adems, existen dos perodos: 1. Crecimiento: Es el tiempo durante el cual se construye el sistema. 2. Madurez: Es el perodo de mantenimiento del producto. Cada mejora se planifica igual que el periodo anterior, es decir, con las fases de Planificacin del negocio, Construccin y Entrega.

You might also like