resumen ingenieria de software libre en entornos sl
DESCRIPTION
Resumen del libro "Ingenieria del software libre en entornos SL"TRANSCRIPT
Resumen libro : “Ingenieria del Software Libre”
Flores Gomez Anthony Reynaldo CI 9980162
En el capítulo 1 ,se da un repaso general a la ingeniería del software. Se ven los
problemas que tuvieron los primeros gestores de grandes proyectos (tal como el
crecimiento exponencial de la demanda de sistemas informaticos), y se dan a conocer
los conceptos que deben tenerse en cuenta en el momento de plantearse un proyecto
software de cualquier envergadura.
Se plantean dos ejemplos de metodologías, aunque muy diferentes, intentan solucionar
los mismos problemas, y organizaciones o proyectos diferentes se encontrarán más
próximos a una u otra indistintamente (Metodología clásica: Métrica v3 y Extreme
programming).
El análisis y diseño de software juega un papel crucial en cualquier desarrollo, pero es
en la programación orientada a objeto donde las actividades relacionadas con esta fase
de un proyecto han alcanzado sus cotas más altas de sofisticación. Es, además, un
área donde continuamente se producen avances y nuevas propuestas.
En el siguiente capítulo se empieza dando una visión general del paradigma de
programación orientada a objeto, donde se revisa desde los conceptos más básicos
hasta llegar a todos los tipos de relaciones entre objetos que soportan la mayoría de
lenguajes de programación.
Esta introducción es necesaria para poder centrarnos a continuación en el lenguaje de
modelado UML y lo que éste puede aportar a lo largo de todas las fases del ciclo de
vida de un proyecto.
Cada uno de los diagramas se ha estudiado en detalle a partir de un caso práctico.
Aunque la mayoría de los diagramas de UML nos permiten mejorar la comunicación
con el cliente en las fases iniciales, así como documentar y explorar funcionalidades y
aspectos concretos de las clases de nuestro sistema durante su análisis y diseño,
también hemos visto cómo UML puede ayudarnos en las fases de desarrollo e
implantación.
Hemos dedicado el último apartado a la generación de código mediante las tres
mismas herramientas de código abierto que hemos utilizado (Dia2Code, Umbrello,
ArgoUML.) en el material para generar los diagramas, demostrando así que UML en
particular y el modelado en general es una muy bue-
na práctica en cualquier proyecto, no sólo por la disciplina que nos impone en su diseño
sino también por el ahorro de tiempo en el desarrollo que puede aportar.
Durante el siguiente capítulo se constata la necesidad de integrar los procesos de
control de calidad y pruebas dentro del ciclo de desarrollo de un programa desde el
inicio del mismo.
Se exponen los principios que rigen la comprobación del software:
• Es imperativo disponer de unos requisitos que detallen el siste-
ma.
• Los procesos de calidad deben ser integrados en las primeras
fases del proyecto.
• Quien desarrolle un sistema no debe ser quien prueba su fun-
cionalidad.
Y la escritura de un buen informe de error y de una unidad de comprobación.
También se consigue una visión práctica de los sistemas de control de calidad y
pruebas en el caso particular, tanto de prácticas como de aplicaciones del software libre
y se ven cuáles son los principales principios, técnicas y aplicaciones que se utilizan
para garantizar la calidad de los productos libres.
La preparación de un entorno de desarrollo GNU es muy distinta en la forma, las
utilidades y aplicaciones a instalar y el fondo a los entornos propietarios y visuales
usados en sistemas operativos Windows.
Estas diferencias se ponen de manifiesto en el uso de herramientas poco comunes en
otros sistemas, no solo funcional sino visualmente.
En el siguiente capítulo se han definido las tareas, sentado las bases y reconocido el
software necesario para configurar nuestro entorno de desarrollo GNU, de forma que
podamos avanzar en el uso de IDEs de desarrollo y herramientas visuales en capítulos
consecutivos.
Los sistemas de control de versiones son la columna vertebral, que propician que
grupos de personas trabajen de forma conjunta en el desarrollo de proyectos. Estos
sistemas permiten a miles de usuarios en localizaciones geográficas diferentes trabajar
colaborativamente en el desarrollo de software libre.
Se presenta el uso de CVS (concurrent versions system) que es el sistema de control
de versiones utilizado actualmente en el mundo del software libre. También se ve
Subversion, un producto de control de versiones relativamente joven, nació en el año
2001, que tiene como objetivo solventar las principales carencias de CVS y que ya han
comenzado a adoptar muchos proyectos en sustitución de CVS.
El contenedor tar guarda estructuras completas de archivos y directorios y junto con el
compresor gzip es capaz de distribuir software de forma homogénea pero
inconsistente, es decir, su instalación es independiente de otros paquetes de software
e incluso de una insta-
lación idéntica anterior.
rpm y deb toman todo lo bueno de los anteriores guardando una consistencia de datos
y versiones necesaria para la distribución del software por Internet y las instalaciones
desatendidas.
La evolución de estos sistemas consistentes y su compatibilidad determinará el o los
sistemas de distribución de software del futuro.
Lo más deseable: un frontend independiente del sistema de distribución que
compatibilice versiones y unifique bases de datos, pudiendo gestionar de manera
transparente cualquiera de ellos.
La documentación en software libre adquiere una relevancia mucho mayor que en
sistemas de licenciamiento privativos, ya que en software libre se busca la cooperación
en el desarrollo; por ello, tener una buena documentación ayudará a los desarrolladores
y usuarios a conocer mejor y más rápidamente la herramienta de software, quedando
habilitados a cooperar con el proyecto, ya sea informando de errores, proponiendo
mejoras, aportando código o contestando preguntas a otros usuarios y desarrolladores.
Los sistemas de documentación presentados en el libro permiten tener una idea de las
características generales de cada uno de ellos y son una breve guía para poder
construir un documento básico utilizando las herramientas descritas; dependerá del
alumno profundizar en el o los sistemas que considere más apropiados para obtener un
conocimiento completo de ellos.
La conclusión final de este apartado está clara. Disponemos de multitud de recursos
útiles para los ingenieros del software libre. No hay uno solo para albergar proyectos,
pero sí, uno más importante que los demás. Lo mismo ocurre con los recursos para
publicitar nuestros proyectos y a nosotros mismos como desarrolladores, hay uno más
importante, como es Freshmeat, pero no es el único, sino que existen otros que cubren
deficiencias de éste.
Lo que está claro es que cada día salen nuevos recursos útiles y nuevos proyectos
recomendables, que no siempre se publicitan en los mismos sitios y que no siempre
llegamos a conocerlos.
Se necesita una centralización a la que se está llegando mediante la sindicación de
contenidos y noticias, pero aún quedan barreras por superar y una de las más patentes
es la del idioma. Hoy por hoy, los desarrolladores deben conocer el inglés para poder
dar a conocer sus proyectos. Esperemos que en un futuro próximo los recursos
principales también estén traducidos para acercarlos a los desarrolladores no
angloparlantes.