Desarrollo Colaborativo de Aplicaciones
-
Asignatura optativa, Web de la asignatura y Ficha UA
-
6 créditos ECTS
-
Profesorado
-
Antonio Corbi.http://www.dlsi.ua.es[DLSI].
-
Despacho: Politécnica-IV, segunda planta
-
Tutorías (presenciales u on-line): con reserva previa desde UA-Cloud
-
Objetivos
-
Aprender a trabajar en grupo, adquirir habilidades sociales, saber identificar roles dentro de un grupo de trabajo y adaptarse a ellos, etc…
-
Aprender a identificar y corregir los fallos de una aplicación así como recibir informes de fallos desde usuarios de la misma.
-
Aprender a trabajar en paralelo con ramas de desarrollo y de corrección de fallos.
-
Aprender a optimizar los tiempos de compilación de una aplicación.
-
Aprender a internacionalizar una aplicación de manera eficiente.
-
Aprender a “interrogar” (introspección) al sistema donde se compilará una aplicación para adaptarla a él, así como crear instaladores de aplicaciones para hacer más sencilla su distribución y uso por parte de usuarios noveles.
-
Aprender a crear y usar tests.
-
Conocer y saber usar el concepto de diseño por contrato.
-
Aprender a usar sistemas de control de versiones para aplicarlos en el proceso de desarrollo del software creado, así como aprender a decidir cual de ellos puede ser el más apropiado en un momento determinado para un desarrollo concreto.
Temario
-
Tema-I: Estructura de un equipo de desarrollo - 1 semana
-
Tema-II: Despliegue / Instalación - 1 semana
-
Versiones de desarrollo vs estables, Ramas de desarrollo / corrección de fallos, Versiones debug / release
-
-
Tema-III: Bugtracking - 1 semana
-
Bugzilla, Trac, tickets, issues
-
-
Tema-IV: Sistemas de paquetes - 1 semana
-
tar, tgz, deb, rpm
-
-
Tema-V: Compilación de grandes proyectos - 2 semanas
-
make , distcc, ccache
-
-
Tema-VI: Configuración y adaptación automática de proyectos - 2 semanas
-
Autotools, CMake, Meson
-
-
Tema-VII: Generación y paso de tests - 2 semanas
-
junit/cppunit, boost::test, GLib.Test
-
-
Tema-VIII: Diseño por contrato - 1 semana
-
Precondiciones, postcondiciones, invariantes
-
-
Tema-IX: Internacionalización (I18N) - 1 semana
-
Gettext, ficheros .po y traducciones
-
-
Tema-X: Sistemas de Control de Versiones de última generación - 3 semanas
-
Centralizados vs. distribuidos, Operaciones basicas, git, mercurial, darcs
-
Primer período de evaluación (I)
-
La asignatura consta de dos bloques: Teoría y Prácticas. Cada uno de ellos tiene un peso del 50% en la nota final.
-
Para promediar teoría y prácticas es necesario obtener como mínimo un 4 en ambos bloques.
-
El bloque de prácticas consta de evaluación contínua (9 prácticas) con un peso del 50% sobre la nota final. Este bloque no es recuperable. Todas las prácticas se entregarán en pracdlsi en las fechas allí indicadas.
-
El bloque de teoría consta de un único examen final tipo test. Este bloque sí es recuperable.
-
La nota final es la suma de la nota del bloque de prácticas más la del bloque de teoría.
-
Para superar la asignatura, la nota final debe ser igual o superior a 5.
Segundo período de evaluación (I)
-
Aplicable sólo cuando se haya suspendido la asignatura en el primer período de evaluación.
-
En esta convocatoria deberán presentarse al examen final de teoría todos aquellos alumnos que no hayan llegado a una nota final mínima de 5 en la convocatoria anterior.
-
El examen de teoría es un examen tipo test.
-
En esta convocatoria la nota del bloque de prácticas es la de la convocatoria anterior.
-
Para promediar teoría y prácticas solo es necesario obtener como mínimo un 4 en el bloque de teoría.
-
La nota final es la suma de la nota del bloque de prácticas más la del bloque de teoría.
-
Para superar la asignatura, la nota final debe ser igual o superiora 5.
Sistema de evaluación que se aplicará en la convocatoria de diciembre
-
Un test que comprenderá la materia explicada en toda la asignatura. Su peso de puntuacion será del 50%.
-
Un test que comprenderá los conocimientos adquiridos en las prácticas con ordenador hechas durante toda la asignatura. Su peso de puntuacion será del 50%.
-
Para promediar teoría y prácticas es necesario obtener como mínimo un 4 en ambos bloques.
Recomendaciones bibliográficas
-
Managing the Testing Process: Practical Tools and Techniques for Managing Hardware and Software Testing. Rex Black. Ed. Wiley. ISBN-10: 0470404159. ISBN-13: 978-0470404157. Edition: 3
-
Implementing Automated Software Testing: How to Save Time and Lower Costs While Raising Quality Elfriede Dustin, Thom Garrett, Bernie Gauf. Ed. Addison-Wesley Professional. ISBN-10: 0321580516. ISBN-13: 978-032158051. Edition: 1
-
Software Project Management For Dummies. Teresa Luckey, Joseph Phillips. Ed. For Dummies. ISBN-10: 0471749346. ISBN-13: 978-0471749349, 1 edition
-
Guía Rápida de Bugzilla (Spanish Edition). Adrián Ruffinatti. Ed. Amazon Digital Services, Inc. ASIN: B0077MBO1S.
-
Mastering Cmake. Ken Martin, Bill Hoffman. Ed. Kitware, Inc.. 5th edition. ISBN-10: 193093422X. ISBN-13: 978-1930934221.
-
Autotools: A Practioner’s Guide to GNU Autoconf, Automake, and Libtool. John Calcote. Ed. No Starch Press; 1 edition. ISBN-10: 1593272065. ISBN-13: 978-1593272067.
-
Managing Projects with GNU Make (Nutshell Handbooks). Robert Mecklenburg. Ed. O’Reilly Media; Third Edition edition. ISBN-10: 0596006101. ISBN-13: 978-0596006105.
-
The Boost C++ Libraries. Boris Schäling. Ed. XML Press. ISBN-10: 0982219199. ISBN-13: 978-0982219195.
-
GNOME 3 Application Development Beginner’s Guide. Mohammad Anwari. Ed. Packt Publishing. ISBN-10: 1849519420. ISBN-13: 978-1849519427.
-
Design by Contract, by Example. Richard Mitchell, Jim McKim. Ed. Addison-Wesley Publishing Company; 1st edition. ISBN-10: 0201634600. ISBN-13: 978-0201634600.
-
Pro Git (Expert’s Voice in Software Development). Scott Chacon. Ed. Apress; 1 edition. ISBN-10: 1430218339. ISBN-13: 978-1430218333.
-
Mercurial: The Definitive Guide. Bryan O’Sullivan. Ed. O’Reilly Media. ISBN-10: 0596800673. ASIN: B00CVE1FNO.
-
Meson: The Meson Manual. Jussi Pakkanen. Ed. Diffraction Labs. ISBN: 978-952-94-2892-2
Enlaces de interés
-
http://neugierig.org/software/chromium/notes/2011/02/ninja.html
-
http://fedoraproject.org/wiki/How_to_create_an_RPM_package/es
-
http://www.boost.org/doc/libs/1_53_0/libs/test/doc/html/index.html
-
http://sourceforge.net/apps/mediawiki/cppunit/index.php?title=Main_Page
-
https://live.gnome.org/Vala/Tutorial#Assertions_and_Contract_Programming
-
http://archive.cs.st-andrews.ac.uk/STSE-Handbook/SoftwareDevAndDeploy/
Aclaraciones
-
Debes estudiar, aclarar y ampliar los conceptos que en ellas encuentres empleando los enlaces web y bibliografía recomendada que puedes consultar en la página web de la ficha de la asignatura y en la web propia de la asignatura.