Actualizado el 25 de Julio del 2017 (Publicado el 25 de Abril del 2017)
2.584 visualizaciones desde el 25 de Abril del 2017
5,4 MB
314 paginas
Creado hace 20a (12/01/2005)
Software libre
David Aycart Pérez
Marc Gibert Ginestà
Martín Hernández Matías
Jordi Mas Hernández
XP06/M2112/01486
Ingeniería
del software en
entornos de SL
U
www.uoc.edu
Jordi Mas Hernández
David Megías Jiménez
David Aycart Pérez
Coordinador
Coordinador
Autor
Ingeniero de Informática por la UAB.
Magíster en Técnicas Avanzadas de
Automatización de Procesos por la
UAB. Doctor en Informática por la
UAB.
Profesor de los Estudios de Informática
y Multimedia de la UOC.
Director de desarrollo formativo
de Free Software Certification.
Socio fundador de Free Software
Certification.
Socio fundador de Esware Linux S.A.
Ingeniero de software en la empresa
de código abierto Ximian, donde
trabaja en la implementación del
proyecto libre Mono. Como voluntario,
colabora en el desarrollo del
procesador de textos Abiword y en la
ingeniería de las versiones en catalán
del proyecto Mozilla y Gnome.
Coordinador general de Softcatalà.
Como consultor ha trabajado para
empresas como Menta, Telépolis,
Vodafone, Lotus, eresMas, Amena y
Terra España.
Marc Gibert Ginestà
Martín Hernández Matías
Autor
Autor
Ingeniero técnico informático de la
Universidad Politécnica de Madrid.
Training manager de Free Software
Certification.
Ingeniero en Informática por la
Universidad Ramon Llull. Socio
fundador y jefe de proyectos de
Cometa Technologies, empresa
dedicada a dar soluciones en
tecnologías de la información,
basadas en el uso de estándares y
herramientas de código abierto.
Profesor del Máster de Seguridad en
Tecnologías de la Información en
Ingeniería y Arquitectura La Salle y
consultor del Máster Internacional de
Software Libre de la UOC (Universitat
Oberta de Catalunya).
Segunda edición: febrero 2007
© Fundació per a la Universitat Oberta de Catalunya
Av. Tibidabo, 39-43, 08035 Barcelona
Material realizado por Eureca Media, SL
© Autor: Jordi Mas, David Aycart Pérez, Marc Gibert Ginestà, Martín Hernández Matías
Depósito legal: B-12.659-2007
Se garantiza permiso para copiar, distribuir y modificar este documento según los términos de la GNU Free Documentation License,
Version 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes ni textos de cubierta
delantera o trasera. Se dispone de una copia de la licencia en el apéndice A, junto con una tradición no oficial en el Apéndice B.
Puede encontrarse una versión de la última versión de este documento en http://curso-sobre.berlios.de/introsobre.
Ingeniería del software en entornos de SL
© FUOC • XP06/M2112/01486
Índice
Agradecimientos .............................................................. 9
1. Introducción a la ingeniería del software.................. 11
1.1. Introducción ......................................................... 11
1.2. Objetivos............................................................... 12
1.3. Un poco de historia ............................................... 12
1.4. Conceptos ............................................................. 14
1.4.1. Gestión de proyectos .................................... 14
1.4.2. Ciclo de vida del software............................. 17
1.4.3. Análisis de requisitos .................................... 20
1.4.4. Estimación de costes..................................... 21
1.4.5. Diseño......................................................... 22
1.4.6. Documentación............................................ 23
1.4.7. Pruebas y calidad ......................................... 24
1.4.8. Seguridad .................................................... 25
1.5. Ejemplos de metodologías...................................... 28
1.5.1. Metodología próxima al software libre:
eXtreme Programming.................................. 28
1.5.2. Metodología clásica: Métrica v3 .................... 37
1.6. Resumen ............................................................... 58
1.7. Otras fuentes de referencia e información ............... 59
2. Diseño de software orientado a objeto con UML ...... 61
2.1. Introducción .......................................................... 61
2.2. Objetivos............................................................... 62
2.3. Revisión de conceptos del diseño orientado
a objeto y UML ...................................................... 62
2.3.1. Introducción a la orientación a objetos .......... 63
2.3.2. Historia........................................................ 66
2.3.3. Clases y objetos ........................................... 67
2.3.4. Encapsulación.............................................. 68
2.3.5. Reusando la implementación. Composición... 70
2.3.6. Reusando la interfaz. Herencia...................... 70
2.3.7. Polimorfismo................................................ 73
2.3.8. Superclases abstractas e interfaces ................ 75
2.3.9. La orientación a objetos y la notación UML.... 76
2.3.10. Introducción a UML.................................... 78
2.3.11. Conclusiones ............................................. 80
I
S
E
N
O
C
A
T
O
N
A
3
© FUOC • XP06/M2112/01486
Software libre
2.4. Definición del caso práctico .................................... 80
2.5. Diagramas de casos de uso .................................... 84
2.6. Diagramas de secuencia......................................... 89
2.7. Diagramas de componentes ................................... 95
2.8. Diagrama de actividades........................................ 98
2.9. Diagrama de clases................................................ 101
2.10.Diagrama de despliegue ....................................... 107
2.11.Diagrama de estados............................................ 109
2.12.Diagrama de colaboración.................................... 113
2.13.Generación de código........................................... 115
2.13.1. Dia con Dia2Code .................................... 116
2.13.2. Umbrello .................................................. 121
2.13.3. ArgoUML.................................................. 127
2.14.Resumen .............................................................. 131
2.15.Otras fuentes de referencia e información .............. 132
3. Control de calidad y pruebas..................................... 135
3.1. Introducción........................................................... 135
3.2. Objetivos ............................................................... 135
3.3. Control de calidad y pruebas .................................. 136
3.3.1. Términos comunes........................................ 137
3.3.2. Principios de la comprobación de software..... 138
3.4. Técnicas manuales de comprobación de software .... 139
3.5. Técnicas automáticas de comprobación
de software ............................................................ 140
3.5.1. White-box testing .......................................... 140
3.5.2. Black-box testing........................................... 141
3.5.3. Unidades de comprobación .......................... 141
3.6. Sistemas de control de errores ................................ 143
3.6.1. Reportado en errores .................................... 143
3.6.2. Anatomía de un informe de error .................. 145
3.6.3. Ciclo de vida de un error .............................. 146
3.6.4. Bugzilla........................................................ 148
3.6.5. Gnats........................................................... 150
3.7. Conclusiones ......................................................... 151
3.8. Otras fuentes de referencia e información ............... 152
4. Construcción de software en entorno GNU .............. 153
4.1. Introducción .......................................................... 153
4.2. Objetivos .............................................................. 153
4.3. Instalando todo lo necesario. Autotools .................. 153
4.3.1. Fichero de configuración de usuario (input) ... 154
4.3.2. Ficheros generados (output) ......................... 156
4.3.3. Como mantener ficheros de entrada ............ 159
A
N
O
T
A
C
O
N
E
S
I
4
Ingeniería del software en entornos de SL
© FUOC • XP06/M2112/01486
4.3.4. Empaquetar ficheros output ......................... 159
4.3.5. Changelogs y documentación ...................... 160
4.3.6. Creación de configure.in ............................. 162
4.3.7. ¿Qué sigifica portabilidad? .......................... 162
4.3.8. Introducción al sh portable .......................... 163
4.3.9. Chequeos necesarios ................................... 163
4.4. Introducción a GNU Automake .............................. 165
4.4.1. Principios generales de automake ................ 165
4.4.2. Introducción a las primarias ......................... 166
4.4.3. Programas y librerias ................................... 167
4.4.4. Múltiples directorios ..................................... 168
4.4.5. Cómo probarlo ........................................... 168
4.5. La libreria GNU Libtool ......................................... 169
4.5.1. Código independiente ................................. 169
4.5.2. Librerias compartidas .................................. 170
4.5.3. Librerias estáticas ........................................ 171
4.5.4. Enlazar una librería. Dependencias
entre librerias .............................................. 172
4.5.5. Usar librerías de conveniencia ..................... 173
4.5.6. Instalación de librerias y ejecutables ............. 173
4.5.7. Desinstalación ............................................. 174
4.5.8. GNU Libtool, configure.in y Makefile.am ...... 174
4.5.9. Integración con configure.in, opciones extra
y macros para Libtool .................................. 174
4.5.10. Integración con Makefile.am, creación
de librerias con Automake y linkado
contra librerias Libtool ............................... 175
4.5.11. Utilización de libtoolize .............................. 176
4.5.12. Versionado de librerías
Comentarios de: Ingeniería del software en entornos de SL (0)
No hay comentarios