You are on page 1of 31

Grado en Ingeniera Informtica

TecnologasdeDesarrollodeSoftware
GradoenIngenieraInformtica
Presentacin de la asignatura
D t t DIS DepartamentoDIS
FacultaddeInformtica
UniversidaddeMurcia
Contenidos Contenidos
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 software Desarrollo de software
Pequea escala Media escala Gran escala Pequea 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 programadores tamao del equipo de programadores.
Desarrollo de software Desarrollo 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 ocupa Ingeniera del software es la disciplina que se ocupa
del desarrollo de software aplicando principios, mtodos
y tcnicas propios de un proceso ingenieril.
TDS
PDS
GPDS
Equiparse para aplicar
tcnicas de ingeniera de tcnicas de ingeniera de
software en el desarrollo de
aplicaciones. aplicaciones.
Dimensiones del Desarrollo de Software Dimensiones del Desarrollo de Software
TECNOLOGIA
PROCESO ORGANIZACION
Dimensiones en el desarrollo de
software
Tecnologa
Conceptos, Tcnicas y Herramientas
Proceso
Conjunto de pasos a realizarse y resultados obtenidos en j p y
cada paso (entregables).
Aplicacin de mtodos de desarrollo
Organizacin
Cmo organizar al equipo de programadores: tareas de g q p p g
gestin y planificacin de un proyecto software.
Etapas de un proceso de desarrollo Etapas 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.
Adems Adems
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 aprendizaje
Et Etc.
Elementos de una aplicacin de
gestin (business application)
B d d t
Cdigo
Base de datos
g
J ava, J avaScript, J SP, J PA, 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 proyectos
de software
p y
de 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 Obligatoria
Desarrollo 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 Optativa
g
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 ti
Programacin basada en agentes Optativa
Tecnologa del Software
Gest de a Segu dad e S ste as
de Informacin
Optativa
Gobierno de los Sistemas de
Informacin en las Organizaciones
Optativa
Sistemas de informacin
Asignatura TDS Asignatura TDS
Objetivos principales
El alumno adquirir competencias en la prctica del desarrollo
de software destinadas a participar en la construccin de de 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 ti ayudarn 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 , y
software 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 TDS Asignatura TDS
Patrones de diseo
Valorar el papel de los patrones de diseo como forma de
reutilizar la experiencia en la resolucin de problemas de diseo reutilizar 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 aplicacin Aplicar patrones en el diseo e implementacin de una aplicacin.
Asignatura TDS Asignatura TDS
Desarrollo de interfaces grficas de usuario (GUI)
Estudio de los elementos de una GUI: componentes, layouts y
manejadores de eventos manejadores de eventos.
Estudio de la librera Swing
Estudio del modelo de delegacin de eventos de J ava
Uso de una herramienta de construccin de GUIs
(WindowBuilder Pro).
Asignatura TDS Asignatura TDS
Desarrollo de software basado en componentes
Comprender el concepto de componente y su papel en el proceso
de desarrollo de software de desarrollo de software.
Valorar el desarrollo basado en componentes como una tcnica
de reutilizacin de software.
Conocer un modelo de componentes (J ava Beans).
Ser capaces de aplicar el desarrollo basado en componentes para
la construccin de interfaces graficas de usuario la construccin de interfaces graficas de usuario.
Desarrollar un componente y usarlo.
Asignatura TDS Asignatura TDS
Desarrollo dirigido por las pruebas
Conocer los tipos de prueba del software:
o Unitaria integracin sistema y aceptacin o 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 medio
Herramienta J unit Herramienta J unit.
Asignatura TDS Asignatura TDS
Evolucin del software con refactoring
Comprender el concepto de refactoring como tcnica de mejora
de la calidad del software de 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
refactoring refactoring.
Herramienta: IDE Eclipse
Asignatura TDS Asignatura 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 TDS Asignatura TDS
Introduccin a la nocin de arquitectura software
Patrn arquitectural Layers que organiza una aplicacin en
varias capas varias 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 i que 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 Prcticas
Prctica 1. Modelado UML de diagramas de clases y de interacciones
Prctica 2 Gestin y construccin de proyectos J ava con Maven Prctica 2. Gestin y construccin de proyectos J ava con Maven
Prctica 3. Gestin de cdigo fuente con Subversin
Prctica 4. Desarrollo de interfaces de usuario con Swing y SWT (3 sesiones)
Prctica 5. Manejo del servidor de persistencia
Prctica 6. Desarrollo con componentes J avaBeans (2 sesiones)
Prctica 7. Desarrollo de pruebas unitarias con J unit (2 sesiones) Prctica 7. Desarrollo de pruebas unitarias con J unit (2 sesiones)
Prctica 8. Estudio y aplicacin de refactorings.
Semana Teora Laboratorio
1 Presentacin
Diagramas de clase UML
2 Diagramas de interaccin UML g
Patrones Grasp
3 Patrones Grasp / Ejercicios diagramas de clases Modelado UML
4 Patrones de diseo Maven 4 Patrones de diseo Maven
5 Patrones de diseo Subversion
6 Patrones de diseo /
Seminario arquitectura de la aplicacin
Persistencia
Seminario arquitectura de la aplicacin
7 Patrones de diseo / Ejercicios Grasp Swing
8 Patrones de diseo / Ejercicios de patrones Swing
9 Desarrollo con componentes Swing 9 Desarrollo con componentes Swing
10 Desarrollo basado en pruebas Componentes
11 Patrones de diseo Componentes
12 Patrones de diseo / Ejercicios de patrones J Unit
13 Patrones de diseo J Unit
14 Patrones de diseo / Ejercicios de patrones Refactoring
15 Patrones de diseo / Ejercicios de patrones
Asignatura TDS Asignatura TDS
Evaluacin Evaluacin
Teora Teora
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 curso tercera 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 software Tecnologas de desarrollo de software
Evaluacin Evaluacin
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 Presentadocuando se haya aprobado La 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 software Tecnologas de desarrollo de software
Carga para el alumno Carga para el alumno
Clases de teora: 30 horas C ases de teo a 30 o as
Clases Prcticas: 22 horas
Preparar examen: 48 horas
Proyecto: 50 horas
Total: 150 horas (6ECTS x 25 horas) Total: 150 horas (6 ECTS x 25 horas)
Resultados Resultados
Grupo 1 Grupo 2 Grupo 3 Total
Matriculados 38 47 62 147
Presentados 19 (51%) 31 (66%) 24 (40%) 74 (50%)
Aprobados 10 15 13 38
Suspensos 9 14 10 33
Entregan
prctica
10 21 15 46 (62%)
p
Tecnologas de Desarrollo de Software Tecnologas de Desarrollo de Software
Profesorado Profesorado
Jos 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 software Tecnologas de desarrollo de software
Tutoras Tutoras
J ess Garca Molina (jmolina@um.es): L, X y V de 10 a 12 (j @ ) , y
Francisco J avier Bermudez (fjavier@um.es): electrnicas / M 12:00 a 13:30
y X 16:00h a 17:30h y X 16:00h a 17:30h
J os Ramn Hoyos (jose.hoyos@um.es): electrnicas / M y X de 12:00 a
13 30 13:30
Bibliografa bsica g
Modelado UML y Patrones Grasp Modelado UML y Patrones Grasp
Craig Larman, UML y Patrones, 2 edicin, Prentice-Hall, 2002
Patrones de diseo Patrones de diseo
Erich Gamma et al., Patrones de Diseo, Addison-Wesley, 2002.
Desarrollo dirigido por las pruebas
Apuntes de la asignatura.
Bibliografa adicional g
Desarrollo basado en componentes Desarrollo 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 J ava (Vol. 1). Fundamentos.
Pearson, 2005.
Evolucin y Refactorings
Martin Fowler et al., Refactoring. Improving the design of existing code,
Addi W l 2000 Addison-Wesley, 2000.
Patrones de diseo
Mark Grand Patterns in Java vol 1 J ohn Wiley Segunda Edicin 2002 Mark Grand, Patterns in Java, vol. 1, J ohn Wiley, Segunda Edicin, 2002.
Eric T. Freeman et. Al. Head First Design Patterns, OReilly, 2004.
Desarrollo dirigido por las pruebas g p p
Kent Beck. Test-driven Development. By example. Addison-Wesley. 2003

You might also like