Curso Programador de Aplicaciones Informáticas Duración : 400 horas Lugar : ADI Sabiñanigo Horarios : De Lunes a Viernes De 17:00 a 21:00 Email del curso : [email protected] 09/09/10 By MEM 1
Curso Programador de Aplicaciones Informáticas
Duración : 400 horasLugar : ADI SabiñanigoHorarios : De Lunes a Viernes
De 17:00 a 21:00Email del curso : [email protected]
09/09/10 By MEM 1
Curso Programador de Aplicaciones Informáticas
209/09/10 By MEM
INDICE Calendario del curso Distribución del horario de clase Temario – Desglose fechas horas Temario detallado por partes
1ª Parte: Introducción ; Desarrollo de aplicaciones informáticas, Metodologías de programación yCiclos de vida
2ª Parte: Algoritmos y Estructuras de datos , estructuras de programación 3ª Parte: Lenguajes de programación ; Lenguaje C 4ª Parte: Diseño de Bases de datos y lenguaje SQL 5ª Parte : Herramientas Case, UML y Calidad del software ,
Curso Programador de Aplicaciones Informáticas
309/09/10 By MEM
Días festivos 11 y 12 de Octubre 1 de Noviembre 6,7,8 de Diciembre Del 24 de Diciembre al 7 de Enero ambos inclusive
Fecha de Comienzo de Curso 30 de Septiembre
Fecha Fin de curso 14 de marzo + los días del modulo de Medioambiente
Días y Horario Lunes a Viernes de 17:00 a 21:00 horas
CALENDARIO
Curso Programador de Aplicaciones Informáticas
409/09/10 By MEM
Las clases se dividen dos partes de 1 hora y tres cuartos de duracióncada una, con un descanso de media hora , con el siguienteesquema;
De 17:00 a 18:45 primera parte De 18:45 a 19:15 descanso De 19:15 a 21:00 segunda parte
DISTRIBUCIÓN DEL HORARIO DE CLASE
Curso Programador de Aplicaciones Informáticas
509/09/10 By MEM
TEMARIOCONTENIDO CURSO COMPLETO - 5 PARTESDESGLOSE EN SESIONES / HORAS / FECHAS
1ª PARTE – Introducción ; Desarrollo de aplicacionesinformáticas, Metodologías de programación y Ciclos de vida1 Sesión - 4 Horas30 de Septiembre
2ª PARTE Programación;Algoritmos y Estructuras de datos , estructuras de programación19 Sesiones - 76 HorasDel 1 de Octubre al 29 de Octubre
4 ª PARTE – Diseño de Bases de datos y lenguaje SQL20 Sesiones – 80 HorasDel 31 de Enero al 25 de Febrero
3ª PARTE – Lenguajes de programación ; Lenguaje C y ??50 Sesiones - 200 HorasDel 2 de Noviembre al 28 de Enero
5 ª PARTE - Herramientas Case , UML y Calidad delsoftware10 Sesiones - 40 HorasDel 28 de Febrero al 14 de Marzo
Curso Programador de Aplicaciones Informáticas
609/09/10 By MEM
Desarrollar aplicaciones Informáticas Versus Programación
Programación•Mediante un lenguaje crear una serie desentencias para que el ordenador realice untrabajo•Para que el ordenador realice este trabajohabrá que explicárselo en un lenguaje que elentienda•Los lenguajes de programación se podríanclasificar dependiendo de lo cercano que estánal lenguaje que entiende la maquina , el querealmente entiende el procesador es ellenguaje maquina•Se puede decir que lo que comúnmente seconoce como programación es una fase deldesarrollo del software
Desarrollo de aplicaciones informáticasDel desarrollo de software se encarga lo que conocemoscomo ingeniería del software o ingeniería de sistemasNos ayuda a desarrollar todas las fases necesarias para quecrear una aplicación informáticaPara crear estas aplicaciones tendremos que considerarque pasos vamos a seguir y de que modo, y mediante queprocedimientos vamos a seguir estos pasos, o lo que es lomismo , que metodología vamos a utilizar .Por tanto; la ingeniería del software nos enseñará losmétodos que utilizaremos para desarrollar el software y loque se obtiene en cada fase, lo que conocemos como ciclode vida del softwareEs decir como lo hacemos y las partes que tiene
IntroducciónTradicionalmente no se hablaba de desarrollo de aplicaciones informáticas sino de programación, el programa se realizaban por unamisma persona a base de codificar (generar código ) y probar , y si fallaba se depuraba. No se consideraba una tarea de conjunto, no sehacia un análisis del problema a resolver , no se planificaba previamente ni por su puesto se documentaba.Aunque hoy en día este tipo de desarrollo aun se da en ciertas organizaciones, la mayoría de las grandes empresas de desarrollo, o eldesarrollo de los grandes proyectos, se realiza con un conjunto coordinado de personas que utilizan una metodología común y que siguenuna serie de fases de desarrollo.
Curso Programador de Aplicaciones Informáticas
709/09/10 By MEM
Resumen Aplicaciónes Informáticas
METODOLOGIA CICLOS DE VIDA
COMO LO HACEMOS QUE PARTES TIENE
Curso Programador de Aplicaciones Informáticas
809/09/10 By MEM
Década 1950-60:•Software como un añadidoAplicaciones sencillas•Desarrollo artesanal, a medida•Lenguajes de bajo nivel
Década 1960-70:•Software como producto•Primeras aplicaciones complejas•Década lenguajes y compilación•“Crisis del software”
Década 1970-80:•Programación estructurada•Modelo relacional•Primeras etapas Ingeniería del Software•Primeros métodos estructurados•Modelado de datos
Década 1980-90:•Programación OO•4GLs•C/S•Tecnología de SGBDs, SOs•Métodos estructurados•Primeros métodos OO•Tecnología CASE (1ª generación) Computer Aided Software Engineering
1ª PARTE - Desarrollo de aplicaciones informáticas
Perspectiva histórica del desarrollo de software
Década 1990-00•Generalización POO - Programación visual•Tecnología de componentes•Interoperabilidad (CORBA)•Nuevas plataformas (Java, .NET)•Análisis/Diseño OO•Fin “Guerra de los métodos”•UML (UnifiedModelingLanguage, 1997)•Patrones•Tecnología CASE (2ª generación)•Popularización de Internet
Década 2000-10•Generalización comercio electrónico•Web 2.0•Desarrollo Web•Seguridad•Arquitecturas basadas en servicios (SOA)•Métodos ágiles•GSD: Global Software Development•Desarrollo opensource•MDE: Model -DrivenEngineering
Curso Programador de Aplicaciones Informáticas
909/09/10 By MEM
Metodologías del software
En la década de los 70 los programas fueron creciendoen complejidad, surge entonces la necesidad de seguiruna metodología a la hora de crear software, ya no valeel método de code&fix (codificar y corregir), nosplantearnos dividir los grandes proyectos informáticos,en módulos mas pequeños para saber que entradas yque salidas produce cada etapa y que acciones se llevana cabo en cada una de ellas para que de esta manera elresultado sea el deseado
1ª PARTE - Desarrollo de aplicaciones informáticas
Curso Programador de Aplicaciones Informáticas
1009/09/10 By MEM
Metodologías tradicionales
* Desarrollo de sistemas de Jackson (JSD). De los años 80. (artículo en wikipedia en inglésExternal link)
* Ingeniería de la información. De los 80 también (artículo en wikipedia en inglés External link)
* Structured System Analysis and Design Method (SSADM). También de los 80. Muy popular enEuropa, ya que tiene su origen el Reino Unido. (artículo en wikipedia en inglés External link)
* Nuestra querida metodología METRICA, promovida por el Ministerio de las AdministracionesPúblicas. (Artículo en Wikipedia External link) (Página de la metodología External link)
Algunas, como las dos primeras (Jackson, Ingeniería de la información), tienen un interésprincipalmente histórico. Otras, como SSADM o MÉTRICA, tienen cierta vigencia, en especial en loque concierne a proyectos públicos.
1ª PARTE - Desarrollo de aplicaciones informáticas
Curso Programador de Aplicaciones Informáticas
1109/09/10 By MEM
Metodologías del software II
Entre las metodologías modernas
* Rapid Application Development (Desarrollo rápido de aplicaciones - RAD). (artículo enwikipedia en inglés External link)
* Scrum (artículo en wikipedia en inglés External link)
* Extreme programming. (Programación extrema - XP) (artículo en wikipedia en inglésExternal link)
* Rational Unified Process. (Proceso Racional Unificado - RUP) (artículo en wikipedia en inglésExternal link)
* Agile Unified Process. (Proceso Ágil Unificado - AUP) (artículo en wikipedia en inglésExternal link
** Read more: http://latecladeescape.com/w0/ingenieria-del-software/metodologias-de-desarrollo-del-software.html#ixzz0x4dyg0BE
1ª PARTE - Desarrollo de aplicaciones informáticas
Curso Programador de Aplicaciones Informáticas
1209/09/10 By MEM
1ª PARTE - Desarrollo de aplicaciones informáticas
Curso Programador de Aplicaciones Informáticas
1309/09/10 By MEM
Ciclo de Vida del software•Proceso o etapas principales que sigue el desarrollo de un producto de software
1ª PARTE - Desarrollo de aplicaciones informáticas
Primer etapa : Análisis y Definición de requisitosEn esta etapa el problema principal se centra en la formulación correcta del problema en cuestión. Resulta imprescindible conocer elproblema en profundidad para poder construir la aplicación ; igualmente el desarrollo de aplicaciones de información para la empresaserá imprescindible estudiar las necesidades de información de la estructura empresarial en su conjunto.
Segunda etapa : Especificación funcionalEn esta etapa se trata de expresar la estructura de la solución, centrándonos en las necesidades del usuario de tal forma que éste puedacomprender de la forma más correcta posible sus necesidades. En esta etapa nos aseguramos de haber entendido las necesidades delusuario
Tercera etapa : DiseñoEn esta etapa el ingeniero basándose en la técnica existente, redacta los documentos que tendrán como destinatario al programador. Enesta etapa se ha de expresar el problema y la solución en términos informáticos para que el programador pueda realizar su trabajo.
Cuarta etapa : Realización ( Codificación / Implementación / Programación)En esta etapa se generan los programas que componen la aplicación.
Quinta etapa : PruebaEn esta etapa se comprueba que todos los componentes de la aplicación funcionan correctamente juntos.
Sexta etapa : MantenimientoCon la utilización de la aplicación se van descubriendo funcionamientos defectuosos, ya que el código libre de error al 100% esprácticamente imposible de conseguir, o ausencia de funcionalidad que no había sido descrita con anterioridad. En el mantenimiento sesuele volver a iniciar las etapas del ciclo de vida.
Curso Programador de Aplicaciones Informáticas
1409/09/10 By MEM
Ciclo de Vida del software•Proceso o etapas principales que sigue el desarrollo de un producto de software
1ª PARTE - Desarrollo de aplicaciones informáticas
Primer etapa : Análisis y Definición de requisitosJEFE DE PROYECTO
Segunda etapa : Especificación funcionalANALISTA PROGRAMADOR
Tercera etapa : DiseñoANALISTA PROGRAMADOR
Cuarta etapa : Realización ( Codificación / Implementación / Programación)PROGRAMADOR.
Quinta etapa : PruebaPROGRAMADORES Y ANALISTAS
Sexta etapa : MantenimientoTODOS
Curso Programador de Aplicaciones Informáticas
1509/09/10 By MEM
1ª PARTE - Desarrollo de aplicaciones informáticas
Ciclo de vida en Cascada - ROYCE 1970
CaracterísticasEs el mas ampliamente seguido , el numero de fases para este tipo de ciclo suele variar pero esencialmente son las siguientes:
•Cada fase empieza cuando termina la anterior•Idealmente cada fase podría hacerla un equipo diferente•Admite iteraciones : como ejemplo; si se cambia algo en el diseño hay que volver a pasar por el resto de las fases•Después de terminar una fase se realiza una revisión por parte de los técnicos o usuarios para comprobar si se puede pasar a al a siguiente
Ventajas :•La planificación es sencilla•La calidad del producto resultante es alta•Permite trabajar con personal poco cualificado•Ayuda a prevenir que se sobrepasen fechas de entrega y costes
Inconvenientes•Se necesitan todos los requisitos al principio•No se tiene el producto hasta el final•Si se comete un error al principio no se detecta hasta el final•Mas lento que los demás mayor coste
Análisis de requisitos
Diseño Preliminar
Diseño Detallado
Codificación y pruebas
Explotación y Mantenimiento
Curso Programador de Aplicaciones Informáticas
1609/09/10 By MEM
1ª PARTE - Desarrollo de aplicaciones informáticas
Ciclo de vida en Cascada Incremental
CaracterísticasSe basa en construir incrementando las funcionalidades, es decir , se construyen módulos , y se aplica a cada modulo las fases del modelo en cascadapuro a partir del análisis
•Al final de cada ciclo se le entrega una versión al cliente que incluye la ultima funcionalidad•Se crea todo el software añadiéndole funcionalidades, componentes funcionales que se conocen con el nombre de INCREMENTOS
Ventajas :•No es necesario tener todos los requisitos al principio•Nos permite realizar entregas antes de finalizar todo el proyecto•Si se detecta un error grave solo se deshace la ultima iteración
Inconvenientes•Errores en la detección de requisitos se detectan tarde
1 1 2 1 2 N..Funcionalidad1 - Incremento 1 Funcionalidad2 - Incremento 2 Funcionalidad N - Incremento N
Curso Programador de Aplicaciones Informáticas
1709/09/10 By MEM
1ª PARTE - Desarrollo de aplicaciones informáticas
Ciclo de vida en Espiral - BOEHM 1988
CaracterísticasConsta de una serie de ciclos repetitivos . Cada ciclo tiene las mismas fases cuando se termina un ciclo se tiene en cuenta el concepto de riesgoEn cada ciclo se recomienda recopilar la siguiente información
Al terminar cada iteración se comprueba que lo que se ha hecho efectivamente cumple los requisitos y se verifica que funcione correctamente
Ventajas :•No necesita un a evaluación completa de los requisitos
Inconvenientes•Se necesitan todos los requisitos al principio•No se tiene el producto hasta el final
•Objetivos : Se entrevista al cliente•Alternativas: las diferentes formas de conseguir los objetivos
•Características del producto•Formas de gestionar el producto.
•Restricciones :•Desde el punto de vista del producto•Desde el punto de vista organizativo; coste, tiempo, material
•Riesgos•Identificación•Resolución
Curso Programador de Aplicaciones Informáticas
1809/09/10 By MEM
1ª PARTE - Desarrollo de aplicaciones informáticas
Ciclo de vida en Espiral - BOEHM 1988
Curso Programador de Aplicaciones Informáticas
1909/09/10 By MEM
Que es programar?Crear un programa Conjunto de instrucciones , sentencias u ordenes que debemos darle a un ordenador para que realice un ciertotrabajoParadigmas de la programación (FLOYD) los modelos que seguiremos para el diseño y la implementación de programas.Dependiendo del autor se consideran diferentes paradigmas
1ª PARTE - Desarrollo de aplicaciones informáticas
Imperativa
Funcional
Lógica
Orientada a Objetos
Curso Programador de Aplicaciones Informáticas
2009/09/10 By MEM
Paradigmas de la programación…
1ª PARTE - Desarrollo de aplicaciones informáticas
ImperativaLa programación consiste en la ejecución paso a paso dealgoritmos (secuencias condicionales o repetitivas deinstrucciones) que modifican los contenidos de variables(espacios de memoria)•Procedural•Estructurado
Curso Programador de Aplicaciones Informáticas
2109/09/10 By MEM
Paradigmas de la programación…
1ª PARTE - Desarrollo de aplicaciones informáticas
LógicaEl paradigma lógico difiere de forma importante de otros paradigmas.No sólo en su sintaxis o semántica, sino que en él la lógica representaconocimiento, el cual es manipulado mediante inferencias. A diferenciade los demás paradigmas, trabajar en este significa especificar quéhacer y no cómo hacerlo, por ello son llamados lenguajes declarativos.El proceso general de la programación lógica es que a partir de unconjunto dereglas (axiomas) e inferencias podamos comprobar nuevas proposicionesque nos sean relevantes. Este proceso está basado en reglas de lógica deprimer orden.Prolog es el lenguaje más representativo en este paradigma,pero seaprecia nmejor con Structured Query Language (SQL), un lenguaje paraoperar basesde datos y el cual representa otra de las aplicaciones de laprogramación lógica
Curso Programador de Aplicaciones Informáticas
2209/09/10 By MEM
Paradigmas de la programación…
1ª PARTE - Desarrollo de aplicaciones informáticas
Orientada a ObjetosProgramar bajo este paradigma es como tratar de simular o modelar los objetos delmundo real. Es el mas común actualmenteUna mascota como un perro podría servir para un ejemplo introductorio:Un objeto está compuesto por estados y métodos. Los estados son propiedades delobjeto y están representados por variables con valores únicos para cada objeto y queson llamadas variables de instancia. En este ejemplo, podríamos pensar en cosascomo: edad, color, tener hambre,tener ganas de salir al parque, etc., propiedadestodas que son intrínsecas a cada perro pero cuyos valores son únicos en cada uno;altura, anchura,etc..Los métodos son representaciones de los comportamientosque el objeto es capaz de hacer. Por ejemplo, mi perro en particular tendría losmétodos: sentarse, echarse, comer, saludar, dormir y bailar, entre otros, y que soncomportamientos que probablemente presentan otros perros; las caracteristicasprincipales deestos lenguajes son:HerenciaPolimorfismoAlgún ejemplo de algunos lenguajes orientados a objetos pueden ser: Simula,Smalltalk, C++, Java, Visual Basic .NET, etc.
Curso Programador de Aplicaciones Informáticas
2309/09/10 By MEM
Paradigmas de la programación…
1ª PARTE - Desarrollo de aplicaciones informáticas
FuncionalEl paradigma funcional considera al programa como una funciónmatemática, donde el dominio representaría el conjunto de todaslas entradas posibles (inputs) y el rango sería el conjunto de todaslas salidas posibles (outputs). La forma en que funciona puede serentendida como una caja negra. LISP
Curso Programador de Aplicaciones Informáticas
2409/09/10 By MEM
Como crear un programa
Análisis del problemaPlasmarlo en documentos y representaciones graficasEsquemas de modelado
Codificación del problemaConvertir el algoritmo en el lenguaje correspondiente que resolverá el problema. Para realizar la conversión del algoritmo en programa se deben sustituirlas palabras reservadas en español por sus homónimos en inglés, y las operaciones/instrucciones indicadas en lenguaje naturalexpresarlas en el lenguaje de programación correspondiente.
Diseño o Desarrollo del AlgoritmoUn algoritmo es un método para resolver un problemaLas herramientas mas utilizadas para el diseño de algoritmos son:
•Diagramas de flujo•Pseudocódigo
Para llegar a la realización de un programa es necesario el diseñoprevio de un algoritmo, de modo que sin algoritmo no puede exist irun programa.Los algoritmos son independientes tanto del lenguaje deprogramación en que se expresan como del ordenador que losejecuta. En cada problema el algoritmo se puede expresar en unlenguaje diferente de programación y ejecutarse en un ordenadordistinto; sin embargo, el algoritmo será siempreel mismo. Así, por ejemplo, en una analogía con la vida diaria, unareceta de un plato de cocina se puede expresar en español, inglés ofrancés, pero cualquiera que sea el lenguaje, los pasos para laelaboración del plato se realizarán sin importar el idioma delcocinero.
1ª PARTE - Desarrollo de aplicaciones informáticas