Ingeniería del software



DESARROLLO GLOBAL DE SOFTWARE (PIATTINI VELTHUIS, MARIO G. / VIZCAÍNO BARCELÓ, AURORA / GARCIA RUBIO, FÉLIX OSCAR)
La globalización ha llevado a las empresas a distribuir sus equipos de desarrollo de software en varias ciudades de un mismo país o en países diferentes llegando a un modelo de desarrollo deslocalizado, conocido como Desarrollo Global del Software (DGS). El DGS se ha consolidado como uno de los aspectos más relevantes en la investigación y en la práctica de la Ingeniería del Software en la década de 2010, siendo un campo que presenta constantemente nuevos problemas y desafíos, hasta llegar a convertirse en la norma en la industria del software. Este libro presenta de forma clara el concepto de DGS y la terminología relacionada expone las ventajas y desafíos que lleva consigo, da a conocer los métodos utilizados en las distintas fases del DGS, describe la tecnología actualmente disponible, proporciona pautas y experiencias que ayudan a los profesionales a predecir y subsanar los riesgos que conlleva este tipo de desarrollo de software e indica estrategias para su enseñanza. A lo largo de esta obra se ha combinado el rigor científico con la experiencia práctica, proporcionando una panorámica actual y completa sobre la problemática asociada al Desarrollo Global de Software. Esto resulta útil sobre todo a los profesionales informáticos que estén trabajando en el área del desarrollo y mantenimiento de software, así como a los directivos que tengan entre sus responsabilidades los sistemas de información y la prestación de servicios asociados a los mismos.

COMPILADORES Y PROCESADORES DE LENGUAJES (JIMÉNEZ MILLÁN, JOSÉ ANTONIO)
Tercera edición de este manual centrado en el uso de los Traductores, programas que leen un programa fuente escrito en el lenguaje fuente y produce como resultado otro programa, con el mismo significado (misma semántica) que el fuente, llamado programa objeto y escrito en el lenguaje objeto. A su vez, un compilador es un caso particular de un traductor en el que el lenguaje objeto es el lenguaje máquina.

SCRUM . UN MÉTODO ÁGIL PARA SUS PROYECTOS (SUBRA, JEAN-PAUL/VANNIEUWENHUYZE, AURÉLIEN)
Este libro se dirige a cualquier persona que desee aplicar o trabajar con Scrum. Su objetivo es presentar esta metodología ágil, que es la más utilizada, con sus aspectos teóricos y prácticos, para que los lectores dispongan de los conocimientos necesarios para aplicarla en sus futuros proyectos o para desempeñar eficazmente su rol en un proyecto Scrum, sea el que sea. Después de un breve recordatorio sobre los métodos de gestión de proyectos tradicionales (Cascada y Ciclo en V) y sus límites, que han llevado al nacimiento de los enfoques ágiles, el autor presenta los métodos relacionados con Scrum, tanto desde un punto de vista de terminología como de las herramientas prácticas (Lean Management, Kanban incluso eXtreme Programming). En los siguientes capítulos, después de haber visto una descripción del método Scrum que permite al lector tener rápidamente una visión global, el autor se detiene en los aspectos concretos relacionados con el equipo Scrum, es decir, los roles y las responsabilidades que derivan de ellos. A continuación explora en detalle las prácticas Scrum: formular y ordenar las necesidades, planificar y estimar la duración de las diferentes fases del proyecto, con el fin de construir los planes, gestionar el ciclo de vida y el seguimiento del proyecto y para terminar, probar lo que se ha desarrollado. Además de aprender el método propiamente dicho, el autor ha querido dar al lector los elementos que le ayuden a abordar la problemática, algunas veces espinosa, del despliegue de Scrum y de la gestión del cambio que tiene como resultado. Para terminar hay dos capítulos que permiten explorar las pistas para ir aún más lejos. Uno de ellos aborda las herramientas de software que pueden ser muy útiles en el marco de la gestión de los proyectos Scrum. El otro aporta respuestas concretas a las preguntas que habitualmente podemos hacernos durante la puesta en práctica de Scrum: ¿cuáles son los métodos para desplegarlo en varios equipos?, ¿cuáles son las diferencias y coincidencias entre Scrum y Kanban?, ¿cómo contractualizar con Scrum? Este libro termina con un cuestionario que permitirá al lector comprobar sus conocimientos e identificar los puntos que pudiera no haber asimilado correctamente. Hay elementos adicionales que se pueden descargar en el sitio web www.ediciones-eni.com.

LENGUAJE DE PROGRAMACIÓN CON JAVA (GUSTAVO CORONEL , ERIC)
Java es el lenguaje de programación más utilizado en el mundo, tanto en el ámbito académico como en el desarrollo de aplicaciones comerciales. Es un lenguaje orientado a objetos (P00); a esto se le agrega una gran cantidad de librerías y recursos para desarrollar todo tipo de aplicaciones, desde las más sencillas, como las de consola y aplicaciones de entorno gráfico, hasta las más avanzadas, como componentes, aplicaciones web, aplicaciones móviles, entre otras. Esta obra abarca temas de manera objetiva, donde el usuario podrá comprender los conceptos de P00 mediante diagramas UML que posteriormente serán implementados en Java. El libro está organizado en 17 capítulos y presenta conceptos teóricos reforzados con numerosos ejemplos de gran utilidad para el usuario. La presente publicación está dirigida al público interesado en el tema, así como a estudiantes y profesionales del ámbito de la Informática. Eric Gustavo Coronel Castillo: Egresado de la Facultad de Electrónica de la Universidad Nacional de Ingeniería. Desde finales de los años ochenta se dedica a la Informática & Sistemas, especialmente en los temas de Desarrollo y Base de datos. Actualmente presta sus servicios de docencia en el Centro de Extensión y Proyección Social de la Universidad Nacional de Ingeniería, y en el Instituto Superior San Ignacio de Loyola.

DESARROLLO DE SOFTWARE DIRIGIDO POR MODELOS: CONCEPTOS, MÉTODOS Y HERRAMIENTAS (GARCÍA RUBIO, FÉLIX ÓSCAR / VARA MESA, JUAN MANUEL / VICENTE CHICOTE, CRISTINA)
A lo largo de la pasada década, la ingeniería del software basada en modelos (Model-Driven Engineering, MDE) ha surgido como un nuevo paso en el camino hacia una verdadera industrialización de la producción de software. Tras el éxito de la tecnología orientada a objetos, el uso sistemático de modelos se presenta ahora como la forma apropiada para conseguir programar con un nivel más alto de abstracción y de aumentar el nivel de automatización. En nuestro trabajo de investigación y en proyectos con empresas hemos comprobado el potencial de los modelos para elevar los niveles de abstracción y automatización. Por ello, estamos plenamente convencidos de que los conceptos, métodos y técnicas de MDE facilitan la creación y evolución del software. Este libro proporciona una explicación detallada de los conceptos básicos del MDE, así como ejemplos de cada tipo de aplicación y presentación de las herramientas más utilizadas, de modo que se puedan adquirir los conocimientos necesarios para iniciar la práctica de MDE. A lo largo de esta obra se ha combinado el rigor científico con la experiencia práctica, proporcionando una panorámica actual y completa sobre el desarrollo de software dirigido por modelos. El libro está organizado en cinco partes junto con un capítulo de introducción, cuyo objetivo es ofrecer una visión global de MDE y presentar los conceptos en los que se profundizarán en el resto de capítulos. Las tres primeras partes corresponden a los tres elementos básicos de MDE: modelos y metamodelos, construcción de DSL y transformaciones de modelos. La cuarta parte incluye un ejemplo de cada tipo de aplicación de las técnicas MDE: desarrollo dirigido por modelos, reingeniería de modelos y models@runtime. Por último, los capítulos finales presentan algunas soluciones basadas en MDE, así como algunas herramientas existentes para entornos MDE.

MÉTODOS DE INVESTIGACIÓN EN INGENIERÍA DEL SOFTWARE (GENERO BOCCO, MARCELA FABIANA / PIATTINI VELTHUIS, MARIO G.)
En estos últimos años, dentro de la Ingeniería del Software Empírica, los investigadores han desarrollado una serie de guías y técnicas que permiten llevar a cabo la investigación de manera rigurosa. Por otra parte, las organizaciones y los profesionales han empezado a darse cuenta de la necesidad de contrastar experimentalmente muchas de las creencias y nuevas técnicas en el área de la ingeniería del software, concediendo cada vez más importancia a la ingeniería del software basada en evidencias (EBSE, Evidence-Based Software Engineering) y a la ingeniería del software empírica (ESE, Empirical Software Engineering). En el grupo Alarcos, desde nuestra creación, nos hemos esforzado por adoptar esa rigurosa visión experimental, fruto de la cual proponemos esta obra; cuyo objetivo principal es presentar de forma clara y precisa los métodos de investigación aplicables en ingeniería del software, mostrando ejemplos concretos de su aplicación, dando a conocer los principales problemas en su utilización, y los recursos que puedan ayudar a una utilización más efectiva de estos métodos. En el libro se abordan tanto las principales técnicas de investigación primaria (encuestas, experimentos, estudios de caso e investigación-acción) como las revisiones sistemáticas de la literatura y la combinación de métodos. Todo ello esperamos que contribuya a incrementar la rigurosidad de la investigación que se lleva a cabo en ingeniería del software y permita potenciar la transferencia de tecnología en este campo, al proporcionar a las organizaciones y empresas evidencias sobre las mejoras y ventajas que pueden ofrecer estas.

SISTEMAS DISTRIBUIDOS (LIZCANO CASAS, DAVID)
Los últimos avances producidos en las redes de comunicaciones, internet y en la sociedad de la información han incrementado la relevancia y proliferación de los sistemas distribuidos, definidos como un conjunto de computadores interconectados a través de una red y que son capaces de colaborar entre sí para lograr un fin común. Cada vez que se utiliza una aplicación de un teléfono móvil con acceso a internet, que se accede a una página web, que se opera en un cajero de un banco, que se realiza un pago con tarjeta en un establecimiento, que se participa en una red social o incluso cuando se arranca un vehículo y sus microcomputadores entran en funcionamiento, se está asistiendo, sin saberlo, a una computación distribuida. Este manual explica las formas en que los programas, ejecutando en computadores independientes, colaboran con otros elementos software y hardware para realizar una tarea de computación. En él se desarrolla una explicación sobre la programación concurrente y los problemas a tener en cuenta con la misma, se exploran los paradigmas de programación distribuida y se detallan las API, herramientas y protocolos necesarios para desarrollar un sistema distribuido. Este texto trata de forma práctica cómo elaborar sistemas distribuidos con cada paradigma explicado, sirviendo como nexo de unión de áreas de conocimiento tan dispares como son los Sistemas Operativos, las Redes de Ordenadores o la Ingeniería Software.

CALIDAD DE SISTEMAS DE INFORMACIÓN. 3ª EDICIÓN AMPLIADA Y ACTUALIZADA (GARCÍA RUBIO, FÉLIX ÓSCAR)
"La calidad de los sistemas de información se ha convertido en uno de los principales objetivos estratégicos de las organizaciones, cuyos procesos más importantes -y, por lo tanto, su propia supervivencia- dependen de la calidad de los productos y servicios informáticos. La industria del software tiene más de sesenta años y en este período ha realizado grandes avances, ya que disponemos de lenguajes de programación más sofisticados y de procesos de desarrollo más maduros, y las aplicaciones que se construyen en la actualidad son más complejas. Sin embargo, la satisfacción de los usuarios con los sistemas de información es muy desigual, sobre todo si la comparamos con otros tipos de sistemas desarrollados por ingenierías más tradicionales. En efecto, la mala calidad de los sistemas informáticos no sólo ha costado mucho dinero a los organismos públicos y a las empresas, sino que también es la responsable de varios desastres que se han cobrado vidas humanas. En la evolución experimentada por la calidad de los sistemas informáticos, se ha pasado de un tratamiento centrado fundamentalmente en la inspección y detección de errores en los programas a una aproximación más sistémica. En los últimos años, se han publicado diversos estudios, marcos y estándares en los que se exponen los principios y las métricas que se deben seguir para la mejora de la calidad de los diferentes componentes de los sistemas informáticos: procesos, proyectos, productos, servicios, personas, etc. Esta obra trata todos estos aspectos, ofreciendo una visión amplia sobre diferentes factores que se deben tener en consideración para la construcción de software de calidad. A lo largo de esta obra, se ha combinado el rigor científico con la experiencia práctica, proporcionando una panorámica actual y completa sobre la problemática asociada a la calidad de los sistemas informáticos."

REVIT STRUCTURE (BADIN HEISEN MALLQUI SARAVIA)
Revit Structure es un software imprescindible para el diseño de edificaciones con amplias potencialidades, el cual es importante para manejar de manera integral los diversos criterios y elementos empleados en el campo de las ingenierías y la arquitectura; por ello, esta publicación tiene el objetivo de impartir un conocimiento 100 % práctico a través de múltiples proyectos realizados. El libro enseña paso a paso cómo gestionar y desarrollar proyectos para edificaciones en temas como estimaciones, elaboración de planos, preparación de un modelo para análisis estructural, programación de obras y tecnologías BIM, entre otros. Está dirigido a estudiantes y profesionales de Ingeniería Civil, Arquitectura y técnicos en la construcción que buscan una lectura dinámica y práctica para un excelente desarrollo de proyectos. Además, en la parte inferior de la primera página del libro encontrará el código de acceso que le permitirá acceder de forma gratuita a los contenidos adicionales del libro en www.marcombo.info.

INFORMATICA. TEMARIO A. VOLUMEN III. PROFESORES DE EDUCACION SECUNDARIA (GARZÓN VILLAR, MARÍA LUISA)

En este tercer volumen se presentan 18 temas correspondientes al temario específico de las oposiciones al cuerpo de «Educación Secundaria» de la especialidad Informática, que engloba las siguientes áreas: cinco temas de Bases de Datos, un tema de Seguridad en los Datos, un tema de Sistemas de Información, dos de Aplicaciones Informáticas, y nueve de Ingeniería del Software. Para la elaboración del presente volumen, hemos recopilado información lo más actualizada posible, exponiéndola de manera pormenorizada y clara. Dada la amplitud del temario y la diversidad de aspectos tratados en el mismo, existe solapamiento en determinados temas que no podemos soslayar, de manera que los hemos planteado minimizando la repetición de conceptos, sin renunciar por ello a una exposición lo más exhaustiva posible. Por último, hemos dado a los temas la extensión adecuada para la exposición del opositor buscando el punto medio entre la brevedad excesiva y la innecesaria proliferación de detalles que haría difícil su exposición en el tiempo limitado con el que cuenta el opositor.