resumen ingenieria de software libre en entornos sl

4
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.

Upload: anthony-reynaldo-flores-gomez

Post on 14-Jul-2016

218 views

Category:

Documents


2 download

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.