tds presentacion 2013

Upload: yopyoppp

Post on 10-Oct-2015

16 views

Category:

Documents


0 download

TRANSCRIPT

  • Grado en Ingeniera Informtica

    TecnologasdeDesarrollodeSoftware

    GradoenIngenieraInformtica

    Presentacin de la asignatura

    D t t DISDepartamentoDISFacultaddeInformticaUniversidaddeMurcia

  • ContenidosContenidos Desarrollo de software en el Grado de la FIUM Desarrollo de software en el Grado de la FIUM Objetivos y competencias de la asignatura Programas de Teora y Prcticas Programas de Teora y Prcticas Cronograma Evaluacin Evaluacin Profesorado Carga estimada para el alumno Carga estimada para el alumno Bibliografa

  • Desarrollo de softwareDesarrollo de software

    Pequea escala Media escala Gran escalaPequea escala Media escala Gran escala

    Una aplicacin software realiza una funcionalidad que permiten automatizar tareas en un determinado dominio o rea de trabajo.

    S t l jid d i bl l d t i l Su tamao y complejidad es variable lo que determina el tiempo necesario para su construccin dependiendo del tamao del equipo de programadorestamao del equipo de programadores.

  • Desarrollo de softwareDesarrollo de software

    Construir una aplicacin no es implementar un algoritmo o un ejercicio de programacin de los realizados hasta ahora !!!realizados hasta ahora !!!

    Proceso complejo que comprende desde la captura de Proceso complejo que comprende desde la captura de los requisitos hasta el despliegue y mantenimiento de la aplicacin.ap cac

    Ingeniera del software es la disciplina que se ocupaIngeniera del software es la disciplina que se ocupa del desarrollo de software aplicando principios, mtodos y tcnicas propios de un proceso ingenieril.

  • TDSPDS

    GPDS

    Equiparse para aplicar tcnicas de ingeniera detcnicas de ingeniera de software en el desarrollo de aplicaciones.aplicaciones.

  • Dimensiones del Desarrollo de SoftwareDimensiones del Desarrollo de Software

    TECNOLOGIA

    PROCESO ORGANIZACION

  • Dimensiones en el desarrollo de software

    TecnologaConceptos, Tcnicas y Herramientas

    ProcesoConjunto de pasos a realizarse y resultados obtenidos en j p ycada paso (entregables).Aplicacin de mtodos de desarrollo

    OrganizacinCmo organizar al equipo de programadores: tareas de g q p p ggestin y planificacin de un proyecto software.

  • Etapas de un proceso de desarrolloEtapas de un proceso de desarrollo

    Estudio de Viabilidad Anlisis de Requisitos Anlisis y Diseo Implementacin Pruebas Despliegue Mantenimiento

    Procesos actuales estn basados en casos de uso, y son iterativos e incrementales.

  • AdemsAdems

    Guas para la gestin y planificacin del proyecto Guas de estimacin de costes Guas para elaboracin de los entregables Mtricas Polticas y procesos para asegurar calidad del

    software Ejemplos elaborados de aplicacin y ejercicios

    para el aprendizajeEt Etc.

  • Elementos de una aplicacin de gestin (business application)

    B d d tCdigo Base de datosg

    Java, JavaScript, JSP, JPA, XML,Plataforma .net (Microsoft)

    Relacionales, NoSQL, OO,..Plataforma .net (Microsoft)

  • Desarrollo de software en el Grado en Ingeniera Informtica de la FIUM

    En primer y segundo curso las asignaturas bsicas de programacin:p g Fundamentos de Programacin (primer curso) Algoritmos y Estructura de Datos (segundo curso) Programacin orientada a objetos (segundo curso) Programacin concurrente (segundo curso)

    y tambin Fundamentos de Bases de datos (segundo curso)Fundamentos de Bases de datos (segundo curso)

  • Desarrollo de software en el Grado en Ingeniera Informtica de la FIUM

    En tercer curso las asignaturas bsicas relacionadas con el desarrollo de software

    Tecnologas de desarrollo de software (TDS)

    Procesos de desarrollo Gestin de proyectosde software

    p yde desarrollo de software

  • Desarrollo de software en el Grado en Ingeniera Informtica de la FIUM

    E t d i t ifi i T l d l En cuarto curso dos intensificaciones: Tecnologa del Software y Sistemas de Informacin.

    Aplicaciones distribuidas Obligatoria

    Arquitectura del software Obligatoria

    Desarrollo de Aplicaciones Web Obligatoria

    Sistemas de Informacin Empresarial Obligatoria

    Interfaces de Usuario Obligatoria

    Sistemas de Informacin Industriales ObligatoriaDesarrollo de Aplicaciones Web Obligatoria

    Calidad del Software Obligatoria

    Metodologa de la Programacin Paralela Obligatoria

    Informtica Grfica Obligatoria

    Gestin de la innovacin tecnolgica en las organizaciones Obligatoria

    Desarrollo de Sistemas Inteligentes Optativa

    Sistemas de Informacin Geogrfica Optativag

    Interfaces de usuario Optativa

    Sistemas multimedia Optativa

    Sistemas informticos industriales Optativa

    Sistemas de Informacin Geogrfica Optativa

    Administracin de bases de datos Obligatoria

    Desarrollo de Sistemas de Informacin Obligatoria

    Gestin de la Seguridad en Sistemas O t tiProgramacin basada en agentes Optativa

    Tecnologa del Software

    Gest de a Segu dad e S ste asde Informacin Optativa

    Gobierno de los Sistemas de Informacin en las Organizaciones Optativa

    Sistemas de informacin

  • Asignatura TDSAsignatura TDS

    Objetivos principales El alumno adquirir competencias en la prctica del desarrollo

    de software destinadas a participar en la construccin dede software destinadas a participar en la construccin de aplicaciones con lenguajes OO.

    El alumno aprender conceptos, tcnicas y herramientas que le d t i li i d d i t tiayudarn a construir aplicaciones de un modo sistemtico.

    Las tcnicas: patrones de diseo, desarrollo basado en componentes , desarrollo dirigido por pruebas, y evolucin de p , g p p , ysoftware basada en refactoring, y desarrollo de interfaces de usuario, GUI.Las herramientas: IDE gestin y construccin de proyectos Las herramientas: IDE, gestin y construccin de proyectos , gestin de cdigo fuente, modelado de software, creacin de GUIs, pruebas unitarias.

  • Asignatura TDSAsignatura TDS

    Patrones de diseo Valorar el papel de los patrones de diseo como forma de

    reutilizar la experiencia en la resolucin de problemas de diseoreutilizar la experiencia en la resolucin de problemas de diseo. Aprender los patrones de diseo bsicos para construccin de

    software OO: Creacin, Estructurales y Comportamiento Adquirir destreza en la identificacin de los patrones aplicables a

    un determinado problema. Aplicar patrones en el diseo e implementacin de una aplicacinAplicar patrones en el diseo e implementacin de una aplicacin.

  • Asignatura TDSAsignatura TDS

    Desarrollo de interfaces grficas de usuario (GUI) Estudio de los elementos de una GUI: componentes, layouts y

    manejadores de eventosmanejadores de eventos. Estudio de la librera Swing Estudio del modelo de delegacin de eventos de Java Uso de una herramienta de construccin de GUIs

    (WindowBuilder Pro).

  • Asignatura TDSAsignatura TDS

    Desarrollo de software basado en componentes Comprender el concepto de componente y su papel en el proceso

    de desarrollo de softwarede desarrollo de software. Valorar el desarrollo basado en componentes como una tcnica

    de reutilizacin de software. Conocer un modelo de componentes (Java Beans). Ser capaces de aplicar el desarrollo basado en componentes para

    la construccin de interfaces graficas de usuariola construccin de interfaces graficas de usuario. Desarrollar un componente y usarlo.

  • Asignatura TDSAsignatura TDS

    Desarrollo dirigido por las pruebas Conocer los tipos de prueba del software:

    o Unitaria integracin sistema y aceptacino Unitaria, integracin, sistema y aceptacin. Conocer los aspectos especficos de las pruebas de software OO. Conocer el desarrollo dirigido por las pruebas.g p p Ser capaz de implementar pruebas unitarias y de integracin en

    un proyecto de tamao medioHerramienta Junit Herramienta Junit.

  • Asignatura TDSAsignatura TDS

    Evolucin del software con refactoring Comprender el concepto de refactoring como tcnica de mejora

    de la calidad del softwarede la calidad del software. Conocer un conjunto de criterios bsicos para identificar

    defectos en el diseo del software. Aprender y aplicar algunos refactorings para software OO. Comprender la importancia de las pruebas en el proceso de

    refactoringrefactoring. Herramienta: IDE Eclipse

  • Asignatura TDSAsignatura TDS

    Herramientas para la gestin del desarrollo de software Valorar el papel de los sistemas de control de versiones de cdigo

    fuente en el desarrollo de software (Subversion)fuente en el desarrollo de software (Subversion). Organizar un repositorio de cdigo fuente y utilizarlo en un

    proyecto de desarrollo de software en equipo. Conocer y utilizar herramientas de automatizacin de la

    construccin de software (Maven).

  • Asignatura TDSAsignatura TDS

    Introduccin a la nocin de arquitectura software Patrn arquitectural Layers que organiza una aplicacin en

    varias capasvarias capas Aplicacin de la arquitectura MVC de tres capas Presentacin,

    Lgica de Negocio y Almacenamiento, y uso de un controlador l t i d l l d l ique separa la presentacin de las clases del negocio.

  • Asignatura TDS Teora

    Tema 1 Algunos principios bsicos de diseo orientado a objetos (4T+2E)Tema 1. Algunos principios bsicos de diseo orientado a objetos (4T+2E)Tema 2. Patrones de diseo (14T+4E)Tema 3. Desarrollo de software basado en componentes (2T)Tema 4. Desarrollo de software dirigido por las pruebas (2T)Tema 5. Evolucin de software con refactorings (en prcticas) (1T)

    Prcticas PrcticasPrctica 1. Modelado UML de diagramas de clases y de interaccionesPrctica 2 Gestin y construccin de proyectos Java con MavenPrctica 2. Gestin y construccin de proyectos Java con MavenPrctica 3. Gestin de cdigo fuente con SubversinPrctica 4. Desarrollo de interfaces de usuario con Swing y SWT (3 sesiones)Prctica 5. Manejo del servidor de persistenciaPrctica 6. Desarrollo con componentes JavaBeans (2 sesiones)Prctica 7. Desarrollo de pruebas unitarias con Junit (2 sesiones)Prctica 7. Desarrollo de pruebas unitarias con Junit (2 sesiones)Prctica 8. Estudio y aplicacin de refactorings.

  • Semana Teora Laboratorio

    1 Presentacin Diagramas de clase UML

    2 Diagramas de interaccin UML gPatrones Grasp

    3 Patrones Grasp / Ejercicios diagramas de clases Modelado UML

    4 Patrones de diseo Maven4 Patrones de diseo Maven

    5 Patrones de diseo Subversion

    6 Patrones de diseo / Seminario arquitectura de la aplicacin

    PersistenciaSeminario arquitectura de la aplicacin

    7 Patrones de diseo / Ejercicios Grasp Swing

    8 Patrones de diseo / Ejercicios de patrones Swing

    9 Desarrollo con componentes Swing9 Desarrollo con componentes Swing

    10 Desarrollo basado en pruebas Componentes

    11 Patrones de diseo Componentes

    12 Patrones de diseo / Ejercicios de patrones JUnit

    13 Patrones de diseo JUnit

    14 Patrones de diseo / Ejercicios de patrones Refactoring

    15 Patrones de diseo / Ejercicios de patrones

  • Asignatura TDSAsignatura TDS

    Evaluacin Evaluacin

    TeoraTeora Examen con cuestiones terico-prcticas del mismo tipo que las

    propuestas en boletines de ejercicios y exmenes anteriores.Prcticas Proyecto de programacin cuya especificacin se entregar en la

    tercera semana del cursotercera semana del curso. Los alumnos formarn grupos de dos. Se realizarn dos entrevistas (seguimiento de la prctica y evaluacin

    final) y dos entregas: entrega del modelo de clases (finales octubre) y la entrega final (despus vacaciones Navidad)

  • Tecnologas de desarrollo de softwareTecnologas de desarrollo de software EvaluacinEvaluacin Para superar la asignatura los alumnos debern haber aprobado

    tanto el examen terico como el proyecto.tanto el examen terico como el proyecto. En la nota final el peso del examen ser del 60% y el del proyecto del

    40%. Una vez aprobada una parte se mantiene la nota en el resto de

    convocatorias del curso. La nota en el acta ser No Presentado cuando se haya aprobadoLa nota en el acta ser No Presentado cuando se haya aprobado

    una parte y no se haya presentado a la otra, salvo si el alumno desea que se le guarde la nota en cuyo caso ser Suspenso 4.Se indicar la forma de evaluar cada aspecto de las prcticas en la Se indicar la forma de evaluar cada aspecto de las prcticas en la entrega de la especificacin.

  • Tecnologas de desarrollo de softwareTecnologas de desarrollo de software Carga para el alumnoCarga para el alumno

    Clases de teora: 30 horasC ases de teo a 30 o as Clases Prcticas: 22 horas Preparar examen: 48 horas Proyecto: 50 horas

    Total: 150 horas (6 ECTS x 25 horas) Total: 150 horas (6 ECTS x 25 horas)

  • ResultadosResultados

    Grupo 1 Grupo 2 Grupo 3 TotalMatriculados 38 47 62 147Presentados 19 (51%) 31 (66%) 24 (40%) 74 (50%)Aprobados 10 15 13 38Suspensos 9 14 10 33Entregan prctica

    10 21 15 46 (62%) p

  • Tecnologas de Desarrollo de SoftwareTecnologas de Desarrollo de Software

    Profesorado ProfesoradoJos Ramn Hoyos Barcel (Grupo 1)

    Francisco Javier Bermdez Ruiz (Grupo 2)

    Jess J Garca Molina (coordinador y Grupo 3)Jess J. Garca Molina (coordinador y Grupo 3)

  • Tecnologas de desarrollo de softwareTecnologas de desarrollo de software TutorasTutoras

    Jess Garca Molina ([email protected]): L, X y V de 10 a 12(j @ ) , y

    Francisco Javier Bermudez ([email protected]): electrnicas / M 12:00 a 13:30 y X 16:00h a 17:30hy X 16:00h a 17:30h

    Jos Ramn Hoyos ([email protected]): electrnicas / M y X de 12:00 a 13 3013:30

  • Bibliografa bsicag

    Modelado UML y Patrones Grasp Modelado UML y Patrones Grasp Craig Larman, UML y Patrones, 2 edicin, Prentice-Hall, 2002

    Patrones de diseoPatrones de diseo Erich Gamma et al., Patrones de Diseo, Addison-Wesley, 2002.

    Desarrollo dirigido por las pruebas Apuntes de la asignatura.

  • Bibliografa adicionalg

    Desarrollo basado en componentesDesarrollo basado en componentes Clemens Szyperski. Component Software: Beyond Object-Oriented

    Programming (2 Edition)". Addison-Wesley.2002

    D ll d i t f d i Desarrollo de interfaces de usuario Cay Horstmann y Gary Cornell. Core Java (Vol. 1). Fundamentos.

    Pearson, 2005.

    Evolucin y Refactorings Martin Fowler et al., Refactoring. Improving the design of existing code,

    Addi W l 2000Addison-Wesley, 2000.

    Patrones de diseo Mark Grand Patterns in Java vol 1 John Wiley Segunda Edicin 2002 Mark Grand, Patterns in Java, vol. 1, John Wiley, Segunda Edicin, 2002. Eric T. Freeman et. Al. Head First Design Patterns, OReilly, 2004.

    Desarrollo dirigido por las pruebasg p p Kent Beck. Test-driven Development. By example. Addison-Wesley. 2003