Presentacion Curso de Programacion ADI

24
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

description

Dia 30 Introduccion

Transcript of Presentacion Curso de Programacion ADI

Page 1: Presentacion Curso de Programacion ADI

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

Page 2: Presentacion Curso de Programacion ADI

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 ,

Page 3: Presentacion Curso de Programacion ADI

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

Page 4: Presentacion Curso de Programacion ADI

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

Page 5: Presentacion Curso de Programacion ADI

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

Page 6: Presentacion Curso de Programacion ADI

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.

Page 7: Presentacion Curso de Programacion ADI

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

Page 8: Presentacion Curso de Programacion ADI

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

Page 9: Presentacion Curso de Programacion ADI

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

Page 10: Presentacion Curso de Programacion ADI

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

Page 11: Presentacion Curso de Programacion ADI

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

Page 12: Presentacion Curso de Programacion ADI

Curso Programador de Aplicaciones Informáticas

1209/09/10 By MEM

1ª PARTE - Desarrollo de aplicaciones informáticas

Page 13: Presentacion Curso de Programacion ADI

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.

Page 14: Presentacion Curso de Programacion ADI

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

Page 15: Presentacion Curso de Programacion ADI

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

Page 16: Presentacion Curso de Programacion ADI

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

Page 17: Presentacion Curso de Programacion ADI

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

Page 18: Presentacion Curso de Programacion ADI

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

Page 19: Presentacion Curso de Programacion ADI

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

Page 20: Presentacion Curso de Programacion ADI

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

Page 21: Presentacion Curso de Programacion ADI

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

Page 22: Presentacion Curso de Programacion ADI

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.

Page 23: Presentacion Curso de Programacion ADI

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

Page 24: Presentacion Curso de Programacion ADI

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