RESUMEN EXAMEN FEBRERO PROGRAMACION
Enviado por miguelyalberto5 • 17 de Febrero de 2019 • Resumen • 6.717 Palabras (27 Páginas) • 83 Visitas
RESUMEN EXAMEN FEBRERO PROGRAMACION
TEMA 1
RESUMEN
El aprendizaje de la programación es utilizar el ordenador como herramienta para resolver problemas, mediante unos pasos, primero analizamos el problema(este sea definido y comprendido), después diseñamos los algoritmos(procedimiento paso a paso para solucionar el problema) y pasamos a la resolución del algoritmo elegido en la computadora(convertir el algoritmo en programa, ejecutarlo y ver que nos soluciona el problema). Nuestra solución debe ser correcto y eficaz (resolverlo adecuadamente) y eficiente (tiempo mínimo y uso optimo de recursos). Tenemos que tener en cuenta los siguientes conceptos:
- Abstracción: análisis del problema para descomponerlo en otros mas pequeños y menos complejos, describiendo cada uno de ellos de manera precisa. Divide y vencerás.
- Encapsulación: ocultar información para poder implementarla de diferentes maneras
- Modularidad: estructuramos cada parte en módulos independientes, cada uno con su función.
Algoritmo: secuencia ordenada de pasos, descrita sin ambigüedades, que conducen a la solución de un problema dado. Un mismo algoritmo puede ser expresado en diferentes lenguajes de programación y podría ser ejecutado en diferentes dispositivos. diferencia fundamental entre algoritmo y programa es que, en el segundo, los pasos que permiten resolver el problema deben escribirse en un determinado lenguaje de programación. Los lenguajes de programación son sólo un medio para expresar el algoritmo y el ordenador un procesador para ejecutarlo. El diseño de los algoritmos será una tarea que necesitará de la creatividad y conocimientos de las técnicas de programación. Puede haber algoritmos distintos para resolver un mismo problema. El algoritmo debe ser preciso e indicar el orden de realización paso a paso, estar definido (si se ejecuta varias veces obtener el mismo resultado) y debe ser finito (número de pasos finitos).
Si el problema es complejo conviene descomponerlo en otros mas pequeños (divide y vencerás). Para representar gráficamente algoritmos que vamos a diseñar y que nos ayuden a describir su funcionamiento tenemos:
- Diagramas de flujo: usa símbolos gráficos para la representación del algoritmo. Suele usarse en fases de análisis
- Pseudocodigo: uso de palabras clave en lenguaje natural, constantes, variables, otros objetos, instrucciones y estructuras de programación que expresan de forma escrita la solución del problema. Es la más usada.
- Tablas de decisión: en una tabla son representadas las posibles condiciones del problema con sus respectivas acciones. Técnica de apoyo al pseudocodigo cuando existen situaciones complejas.
Paradigma de programación: es un modelo básico para el diseño y la implementación de programas. Este modelo determinará cómo será el proceso de diseño y la estructura final del programa. El paradigma representa un enfoque particular o filosofía para la construcción de software. Cada uno tendrá sus ventajas e inconvenientes, será más o menos apropiado, pero no es correcto decir que exista uno mejor que los demás.
[pic 1]
Smalltalk es orientado a objetos, Scheme, programación funcional y Python soporta diferentes paradigmas (un lenguaje no tiene porque ser de un único paradigma).
El proceso de creación del software se divide en tres fases:
- Fase de resolución del problema: definir y comprender el problema para analizarlo con todo detalle. La resolución se divide en dos etapas: análisis (especificación de requisitos que se deben cubrir. Contactos entre programador y cliente números. Así se conocerán las necesidades de las que precisa la app. Se especifican procesos y estructuras de datos que se van a emplear. Creación de prototipos muy útil para saber con exactitud los puntos a tratar. El análisis ofrecerá una idea de lo que se solicita, realizando después refinamientos que servirán de respuesta a cuál es la información que ofrecerá la resolución del problema y a que datos son necesarios para resolverlo. La primera se responde con los resultados deseados o salidas del problema. La segunda que datos se proporcionan o las entradas del problema. Debemos analizar la documentación de la empresa, investigar, observar lo que rodea el problema y recopilar información útil. La segunda fase es la de diseño, se convierte la especificación realizada en la fase de análisis en un diseño mas detallado, indicando el comportamiento de instrucciones capaz de resolver el problema planteado. Pasos sucesivos de las instrucciones a ejecutar por la máquina, es lo que conocemos como algoritmo. Consiste en plantear la aplicación como una única operación global, e ir descomponiéndola en operaciones más sencillas, detalladas y específicas. En cada nivel de refinamiento, las operaciones identificadas se asignan a módulos separados. antes de pasar a la implementación del algoritmo, hemos de asegurarnos que tenemos una solución adecuada. Para ello, todo diseño requerirá de la realización de la prueba o traza del programa. Este proceso consistirá en un seguimiento paso a paso de las instrucciones del algoritmo utilizando datos concretos. Si la solución aportada tiene errores, tendremos que volver a la fase de análisis para realizar las modificaciones necesarias o tomar un nuevo camino para la solución. Sólo cuando el algoritmo cumpla los requisitos y objetivos especificados en la fase de análisis se pasará a la fase de implementación.
- Fase de implementación: Consiste en llevar a la realidad nuestro algoritmo, tiene dos etapas, la de codificación o construcción (consiste en traducir los resultados obtenidos a un lenguaje de programación, que para comprobar su calidad y estabilidad hay que hacer pruebas unitarias, de interconexión entre ellos y pruebas de integración. Debemos ceñirnos a las reglas gramaticales del lenguaje. Una vez hecho esto obtenemos el código fuente. Para poder ejecutar el programa, este debe traducirse a un lenguaje que entienda la máquina, compilando o interpretando: Compilación: Es el proceso por el cual se traducen las instrucciones escritas en un determinado lenguaje de programación a lenguaje que la máquina es capaz de interpretar. Compilador: programa informático que realiza la traducción. Recibe el código fuente, realiza un análisis lexicográfico, semántico y sintáctico, genera un código intermedio no optimizado, optimiza dicho código y finalmente, genera el código objeto para una plataforma específica. Intérprete: programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de máquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción. La segunda fase es la prueba de ejecución y validación, donde se implementa la app en el sistema donde funcionará, se pondrá en marcha y se comprueba si se funcionamiento es correcto. Se usan datos de prueba para comprobar si responde a los requerimientos especificados y si se detectan nuevos errores, si estos son bien gestionados y si la interfaz es amigable, se pone a nuestro programa a prueba ante situaciones difíciles. Hasta que no corrijamos los errores no pasamos de fase. Una vez subsanados, se hace documentación interna, con encabezados, descripciones, declaraciones del problema y comentarios que se incluyen en el código fuente y documentación externa, con manuales que crean una mejor ejecución y utilización del programa.
- Fase de explotación y mantenimiento: instalado y es útil para los usuarios. Necesita de mantenimiento y si es necesario, modificaciones, pudiendo corregirse errores no detectados anteriormente. Este proceso se llama Mantenimiento del software: es el proceso de mejora y optimización del software después de su entrega al usuario final. Involucra cambios al software en orden de corregir defectos y dependencias encontradas durante su uso, así como la adición de nuevas funcionalidades para mejorar la usabilidad y aplicabilidad del software. Se debe añadir documentación que facilite al programador la comprensión, uso y modificación de dichos programas.
Ciclo de vida del software: es una sucesión de estados o fases por las cuales pasa un software a lo largo de su "vida". Las etapas de este son: Especificación y análisis de requisitos, Diseño, Codificación, Pruebas, Instalación y paso a producción y mantenimiento. También hay varios ciclos de vida del software: modelo en cascada (para comenzar una fase ha de finalizarse la anterior), modelo por prototipos(creación de prototipos que irán mejorando el conocimiento del problema para el usuario y los desarrolladores, la fase de especificación se divide en análisis, diseño y realización, evaluación, modificación y finalización de requerimientos), modelo evolutivo(creación de app flexiones y escalables, que permitan incorporar modificaciones una vez se finalice su desarrollo es un modelo iterativo, permite desarrollar versiones cada vez más complejas hasta llegar al objetivo final deseado. El iterativo incremental y espiral son de tipo evolutivo), modelo incremental(permite la entrada de versiones parciales a medida que se va construyendo el producto final) y modelo en espiral (mezcla modelo convencional y prototipos, se divide en cuatro fases, planificación, análisis de riesgo, desarrollo y evaluación del cliente. Se debe pasar por estas fases cuantas veces sea necesario hasta que se cumplan los requerimientos del cliente.)
...