Asociación de
                  Técnicos de

ATI publica también la revista Revista Española de Innovación,
                        Calidad e Ingeniería del Software
Novática:
                  revista creada en 1975 por ATI (Asociación de Técnicos
                  de Informática)

Revista decana de la
prensa informática española

Núm. 221 (enero-febrero 2013)

Información
sobre ATI

Información sobre
Novática

Info about Novática
(in English)

Índice general de Novática

Subscripción a Novática o compra de números atrasados

Último número

Búsqueda
 


 
Portada de Novática núm. 221
Monografía


Técnicas avanzadas de desarrollo modular

Portada  (pulse aquí si desea ver la versión a tamaño real en formato PDF - 1,3 Mb.)
"Escalera de color" - Concha Arias Pérez © 2013 ATI (Asociación de Técnicos de Informática) 

Notas importantes:


1. Este número de la revista se distribuye solamente en formato digital. Tal como anunciamos en el editorial de
Novática 215
en 2013, Novática se publicaexclusivamente en versión digital.

2. En esta página encontrará una versión reducida de este número.
Si desea comprar este u otro número de la
revista, o
suscribirse a ella, infórmese pulsando aquí. Los socios de ATI tienen acceso a las versiones digitales
íntegras de todos los números en la IntrATInet de la asociación.

3
. Los artículos almacenados en PDF requieren el programa Acrobat Reader (gratuito) para su visualización.

                                                    Test de conocimiento previo sobre Modularidad en el desarrollo de software

                                                    ¿Desea conocer en breves minutos algunos de los aspectos más importantes asociados al tema de la monografía?
                                                    ¡Pruebe sus conocimientos a través del test que le proponemos! La hoja de respuestas que le mostraremos al
                                                    final del test le dará orientaciones básicas sobre los contenidos de la monografía que publicamos a continuación.

                                                    Sumario
                                                    [contenido completo en formato PDF]

                                                    Versión reducida  - PDF navegable mediante árbol de marcadores.
                                                                     [contenido reducido en formato PDF - 4,1 Mb]    
 

                                                    Para aquellos que visualicen el PDF a través de un navegador debemos indicar que en Mozilla Firefox la opción de navegar
                                                                     a través de los marcadores se activa en el menú Ver, opción "Mostrar/Ocultar" "Paneles de navegación".
                                                                     Mientras que en Internet Explorer es a través del menú contextual del botón derecho, opción "Mostrar botones del panel de
                                                                     navegación". Para cualquier información adicional, rogamos contacten con nosotros en novatica@ati.es.

                                                                                                 
                                                   
Bloque
editorial
Noticias
de IFIP

Monografía
Secciones Técnicas
Sociedad de la Información
Asuntos Interiores


 Nota muy importante:
los artículos almacenados en PDF requieren el programa Acrobat Reader (gratuito) para su visualización.

Bloque editorial [contenido completo en formato PDF]

Editorial
Ingeniería del software en un momento de cambios y crisis  2

En resumen
Ingeniería del software y sistemas de engranajes múltiples    2
Llorenç Pagés Casas

Noticias de IFIP
Reunión del Board de IFIP  3
Ramon Puigjaner Trepat

IFIP TC3 en el congreso WSIS + 10 de UNESCO  4
Carlos Delgado Kloos

Ramon López de Mántaras obtiene el Premio Nacional de Informática 2012  5


Monografía: "Técnicas avanzadas de desarrollo modular"

Editoras invitadas: Mercedes Amor Pinilla, Lidia Fuentes Fernández y Mónica Pinto Alarcón

Presentación. Enfoques actuales para el desarrollo de software modular  6
Mercedes Amor Pinilla, Lidia Fuentes Fernández, Mónica Pinto Alarcón
[contenido completo en formato PDF]

Análisis de la modularidad en sistemas software mediante un proceso de minería de aspectos  9
José María Conejero Manzano, Juan Hernández Núñez
[resumen]

La Programación Orientada a Aspectos como mecanismo para aumentar la modularidad en la implementación de aplicaciones  19
Francisco Ortín Soler
[resumen]

Enfoque basado en MDA para apoyar evoluciones seguras en sistemas orientados a aspectos  25
Paulo F. Pires, Flávia C. Delicato, Jesús Martín Talavera Portocarrero
[resumen]

Modularidad en transformaciones de modelos
Jesús J. García Molina, Jesús Sánchez Cuadrado
[resumen]

Separación avanzada de conceptos en el desarrollo de aplicaciones web
Antonia Mª Reina Quintero, Rafael Corchuelo Gil, Miguel Toro Bonilla

[resumen]

Variabilidad en Ingeniería de Software Empotrado  51
Salvador Trujillo González, David Benavides Cuevas

[resumen]



Secciones Técnicas


Enseñanza Universitaria de la Informática   
Los conocimientos que deberán incluir los planes y programas de estudio de informática los próximos años en México (Modelo Curricular)  54
Lourdes Sánchez-Guerrero, Rafaela Blanca Silva, José Raymundo Lira-Cortés
[resumen]

Mundo estudiantil y jóvenes profesionales   
Nela: Aprende a escribir usando Braille   57
Enrique Matías Sánchez, Inmaculada Plaza García, Nuria Tregón Martín
[resumen][contenido completo en formato PDF]

GeoTask: Servicios basados en localización para sistemas Android  62
Francisco Javier Martín Otero
[resumen][contenido completo en formato PDF]

daf-collage: Un proyecto innovador en la enseñanza del idioma alemán  66
Francisco Javier Rodríguez López, Simeón Ruiz Romero
[resumen][contenido completo en formato PDF]

Cormoran: Un framework de persistencia para Python
Jaime Gil de Sagredo Luna
[resumen][contenido completo en formato PDF]


Referencias autorizadas  71
En esta sección  se contienen recomendaciones de lecturas, noticias  y fuentes diversas que elaboran los coordinadores de las Secciones Técnicas
de nuestra revista Novática, todos ellos destacados especialistas en sus respectivos campos

[contenido completo en formato PDF]



Sociedad de la Información


Programar es crear
El problema del supermercado
(Competencia UTN-FRC 2011, problema E, solución)   77
Julio Javier Castillo, Diego Javier Serrano, Marina Elizabeth Cárdenas
[contenido completo en formato PDF]



Asuntos Interiores

Coordinación editorial / Programación de Novática / Socios Institucionales  79
[contenido completo en formato PDF]

Monografía del próximo número: "Lenguajes de programación"

Editores invitados: Óscar Belmonte Fernández y Carlos Granell Canut (Universitat Jaume I, Castellón)




Resúmenes de artículos

Monografía: "Técnicas avanzadas de desarrollo modular"

Editoras invitadas

Mercedes Amor Pinilla es Profesora Contratada Doctora en el Departamento de Lenguajes y Ciencias de la Computación de la Universidad de Málaga. Recibió su título de Ingeniera Informática en 1998 por la Universidad de Málaga, y es Doctora por dicha Universidad desde 2005. En la actualidad, sus principales líneas de investigación tienen que ver con la aplicación de las tecnologías avanzadas en el desarrollo de agentes software para entornos de Inteligencia Ambiental y el Internet de las Cosas ( Desarrollo de Software Orientado a Aspectos, Desarrollo Dirigido por Modelos, Computación Autonómica, etc.). Ha participado y participa actualmente en distintos proyectos nacionales y europeos sobre AOSD (AOSD-Europe, AMPLE, INTER-TRUST, etc.). Es miembro del grupo de investigación CAOSD (Component and Aspect Oriented Software Development Group).

Lidia Fuentes Fernández se licenció como Ingeniera en Informática por la Universidad de Málaga en 1992 y recibió el grado de doctora Ingeniera en Informática por la misma Universidad en 1998. Ha ocupado diversos puestos como profesora del departamento de Lenguajes y Ciencias de la Computación desde 1993 siendo actualmente Catedrática de Universidad. Sus principales líneas de investigación tienen que ver con la aplicación de las tecnologías avanzadas en el desarrollo de software (por ej. Desarrollo de Software Orientado a Aspectos, el Desarrollo Dirigido por Modelos, las Líneas de Producto Software, etc.) a los sistemas distribuidos y pervasivos. Su producción científica es muy prolífica, con más de cien publicaciones en foros de prestigio internacional, incluyendo artículos en revistas de impacto como IEEE Internet Computing, IEEE Transactions on Software Engineering, Information and Software Technology y ACM Computing Surveys entre otras. Su trabajo es igualmente muy citado con más de mil quinientas citas. Lidera el Analysis and Design lab en la post-EC phase del proyecto AOSD-Europe. Ha sido miembro del comité de programa de múltiples conferencias relevantes en Ingeniería del Software como AOSD, OOPSLA, MODELS o GPCE. Además, lidera y participa activamente en diversos proyectos de investigación, resaltando aquellos europeos como AOSD-Europe, AMPLE o INTER-TRUST. Lidera actualmente el grupo de investigación CAOSD (Component and Aspect Oriented Software Development Group) <http://caosd.lcc.uma.es>.

Mónica Pinto Alarcón es Profesora Titular de Universidad en el Departamento de Lenguajes y Ciencias de la Computación de la Universidad de Málaga, en España. Recibió su título de Ingeniera Informática en 1998 por la Universidad de Málaga, y es Doctora por la Universidad de Málaga desde 2004. Sus principales líneas de investigación son la Ingeniería de Software Basada en Componentes, el Desarrollo de Software Orientado a Aspectos, los Lenguajes de Descripción de Arquitecturas Software, el Desarrollo Dirigido por Modelos y las Plataformas Móviles Sensibles al Contexto. En los últimos años ha organizado el taller "Early Aspects" en la conferencia ICSE, y ha sido miembro del comité de programa de varios talleres y  conferencias en conferencias sobre AOSD y composición de software. Ha sido "publicity chair" en la conferencia AOSD 2011 y AOSD 2012. Ha participado y participa actualmente en distintos proyectos nacionales y europeos sobre AOSD (e.g. AOSD-Europe, AMPLE, INTER-TRUST, etc.). Es miembro del grupo de investigación CAOSD (Component and Aspect Oriented Software Development Group).

Vuelta a inicio

Análisis de la modularidad en sistemas software mediante un proceso de minería de aspectos
José María Conejero Manzano, Juan Hernández Núñez
QUERCUS Software Engineering Group, Universidad de Extremadura


Resumen:
Uno de los principales retos del Desarrollo de Software Orientado a Aspectos (AOSD, Aspect-Oriented Software Development) es la minería de asuntos transversales (crosscutting concerns) o minería de aspectos con el fin de poder ser refactorizados utilizando técnicas orientadas a aspectos. Generalmente, este proceso se realiza bien de manera manual, o bien asistido por herramientas (semi)automáticas. Sin embargo, estas herramientas no se fundamentan en una definición formal del concepto de asunto transversal, haciendo que el proceso dependa en gran medida de la experiencia y el conocimiento del dominio que el desarrollador posee. En este sentido, una definición formal y precisa de las propiedades
de los asuntos transversales es clave para ciertas áreas de la orientación a aspectos, como la ya mencionada minería de aspectos o el análisis de la modularidad en sistemas software. En este artículo se presenta un proceso de minería de aspectos que permite analizar la modularidad en sistemas software. Este proceso está basado en un marco de trabajo conceptual que permite la definición formal de los conceptos de dispersión (scattering), mezcla (tangling) y transversalidad (crosscutting). Este marco de trabajo se define de manera independiente de cualquier nivel de abstracción concreto, de modo que el análisis de modularidad puede aplicarse en cualquier etapa del desarrollo software. Además, el proceso incluye métricas orientadas a asuntos que permiten realizar un análisis empírico del nivel de transversalidad de los asuntos en un sistema, permitiendo así cuantificar qué partes del sistema presentan una peor modularidad y deben ser refactorizadas. Estas métricas pueden relacionarse, además, con otros atributos de calidad del software, como el mantenimiento. En este sentido, se han observado evidencias de que el grado de dispersión de un sistema está altamente correlacionado con la dificultad de mantenimiento del mismo.


Palabras clave
:
Métricas, minería de aspectos, modularidad, separación de aspectos.

Vuelta a inicio

La Programación Orientada a Aspectos como mecanismo para aumentar la modularidad en la implementación de aplicaciones
Francisco Ortín Soler
Departamento de Informática, Universidad de Oviedo

Resumen: La división de código en módulos independientes mejora la reutilización, comprensibilidad, extensibilidad y mantenibilidad del software. Utilizando el paradigma orientado a objetos, en ocasiones no es posible dividir las distintas funcionalidades de un programa en módulos independientes entre sí, existiendo funcionalidades esparcidas a lo largo del código de la aplicación y entremezcladas con otros módulos. La programación orientada a aspectos ofrece un mecanismo superior de modularidad, permitiendo solventar el citado esparcimiento y entremezclado de código. A modo de ejemplo, presentamos la comparación de un problema típico implementado con ambos paradigmas, comparamos sus posibilidades de modularidad y establecemos una discusión acerca de sus beneficios.

Palabras clave: AspectJ, asuntos transversales, modularidad, programación orientada a aspectos, separación de conceptos.

Vuelta a inicio

Enfoque basado en MDA para apoyar evoluciones seguras en sistemas orientados a aspectos
Paulo F. Pires, Flávia C.Delicato, Jesús Martín Talavera Portocarrero
Dpto. Ciencia da Computação, Universidade Federal do Rio de Janeiro (Brasil)

Resumen: A pesar de que el desarrollo de software orientado a aspectos ayuda a construir software más modular y reutilizable, hay algunas limitaciones de los enfoques actuales que es necesario corregir. Una de estas limitaciones es que los sistemas de software orientados a aspectos son susceptibles a la degradación del software, básicamente porque los puntos del modelo base interceptados por aspectos pueden cambiar impredeciblemente cuando el sistema evoluciona. Un enfoque prometedor para hacer frente a este problema son los puntos de corte (pointcuts) basados en modelos, donde los puntos de corte son definidos en términos de elementos del modelo conceptual que son más estables que los elementos del modelo base. En este artículo se presentan dos propuestas para la definición de puntos de corte basado en modelos a nivel arquitectónico, en lugar de centrarse en el nivel de diseño o de
implementación como en otras propuestas existentes. Un proceso de desarrollo dirigido por modelos (MDD) conduce la definición de nuestros modelos conceptual y de aspectos, y su instanciación y composición para generar el modelo base de la arquitectura.

Palabras clave: 
Desarrollo dirigido por modelos, desarrollo de software orientado a aspectos, evolución del software.

Vuelta a inicio

Modularidad en transformaciones de modelos
Jesús J. García Molina (1), Jesús Sánchez Cuadrado (2)
(1) Universidad de Murcia, Coordinador de la sección técnica “Tecnología de Objetos” de Novática; (2) Universidad Autónoma de Madrid

Resumen: Las transformaciones modelo-a-modelo son un elemento esencial de la Ingeniería del Software Dirigida por Modelos. Los lenguajes que permiten escribir estas transformaciones deben proporcionar construcciones modulares destinadas a facilitar la reutilización y la extensibilidad. Estas construcciones facilitan, por ejemplo, la composición modular de lenguajes específicos del dominio. En este artículo se analiza la modularidad en transformaciones modelo-a-modelo a partir del mecanismo de fases soportado por el lenguaje RubyTL. Se describe el concepto de fase como construcción modular, se presenta un ejemplo, se discuten sus ventajas y limitaciones, y se contrasta con otras construcciones
modulares ofrecidas por otros lenguajes. También se ofrece una extensa bibliografía sobre la modularidad de transformaciones de modelos.

Palabras clave: Ingeniería de Software Dirigida por Modelos, modularidad, RubyTL, transformación modelo a modelo.

                                                                                                                                                                                                                                                                                                            Vuelta a inicio

Separación avanzada de conceptos en el desarrollo de aplicaciones web
Antonia Mª Reina Quintero, Rafael Corchuelo Gil, Miguel Toro Bonilla
Dpto. Lenguajes y Sistemas Informáticos, Universidad de Sevilla

Resumen: La complejidad de los sistemas software es cada vez mayor, y en el ámbito de la web a esta complejidad se le une el hecho de que el grado y frecuencia de los cambios es superior al de las aplicaciones software tradicionales. Para simplificar la evolución y el mantenimiento de las aplicaciones se ha demostrado beneficioso el uso de técnicas para mejorar la modularidad del software, entre las que se encuentra la separación avanzada de conceptos. En el desarrollo de aplicaciones web, se pueden aplicar estas técnicas no sólo para mejorar estas propiedades, sino también para mejorar otras que son características de las aplicaciones web como el diseño de la navegación, lo que acaba influyendo en la mejora de la experiencia del usuario. Este artículo da una visión general de cómo se están aplicando las técnicas propuestas en el área de la separación avanzada de conceptos al desarrollo de aplicaciones web.

Palabras clave: Desarrollo de software orientado a aspectos, ingeniería web, separación avanzada de conceptos, tecnologías de implementación web.

Vuelta a inicio

Variabilidad en Ingeniería de Software Empotrado
Salvador Trujillo González (1), David Benavides Cuevas (2)
(1) IK4-IKERLAN, (2) Departamento de Lenguajes y Sistemas Informáticos, Universidad de Sevilla

Resumen: En este artículo se presentan brevemente los conceptos fundamentales sobre variabilidad en líneas de producto software. Por una parte, se describen los modelos de características como alternativa simple y con soporte automático para el modelado de la variabilidad en líneas de producto software que pueden ser usados para describir la variabilidad en el dominio del problema. Por otro lado, se describen las distintas alternativas y tendencias para introducir la variabilidad en el diseño del dominio de la solución. Como complemento se presentan algunas experiencias sobre la aplicación de estos conceptos en un contexto industrial.

Palabras clave: Líneas de producto software, modelos de características, modularidad, variabilidad.

Vuelta a inicio

Secciones técnicas

Enseñanza Universitaria de la Informática
Los conocimientos que deberán incluir los planes y programas de estudio de informática los próximos años en México (Modelo Curricular)
Lourdes Sánchez-Guerrero (1), Rafaela Blanca Silva (1), José Raymundo Lira-Cortés (2)
(1) Departamento de Sistemas, Universidad Autónoma Metropolitana Azcapotzalco (México D.F.), (2) Departamento de Electrónica, Universidad Autónoma Metropolitana
Azcapotzalco (México D.F.)


Resumen: La Asociación Nacional de Instituciones de Educación en Tecnologías de la Información (ANIEI) preocupada por la formación de los profesionales en Tecnologías de la Información (TI) tomó la iniciativa de crear un instrumento llamado Modelo Curricular el cual apoyara a las instituciones educativas para crear nuevos programas de estudios y modificar y/o adecuar los planes y programas de estudios relacionados con la Informática y la Computación. Dentro del documento "Modelo Curricular" se definen los perfiles profesionales y las áreas de conocimiento que deben formar un plan y programa de estudios de informática y computación en México. El Modelo Curricular es el instrumento en el cual se basa la
acreditación de los programas de estudio por parte del Consejo Nacional de Acreditación de Informática y Computación (CONAIC). Para actualizar el Modelo Curricular se tomaron cuenta algunos de los resultados de estudios especializados en TI como: la oferta y demanda de profesionales especializados en TI y la demanda de recursos humanos con posgrado en Ciencias de la Computación (CC) e Ingeniería en Cómputo (IC) .En este documento se presenta el Modelo Curricular del nivel superior el cual está compuesto por la descripción de los perfiles profesionales, la matriz de conocimientos, las áreas y subáreas por perfil curricular, así como el tiempo estimado por área de conocimiento.


Palabras clave: Área de Conocimiento, modelo curricular, perfil profesional..


Vuelta a inicio

Mundo estudiantil y jóvenes profesionales
Nela: Aprende a escribir usando Braille
Enrique Matías Sánchez (1), Inmaculada Plaza García (2), Nuria Tregón Martín (3)
( 1),(2),(3) Universidad de Zaragoza; (1) Ganador del VI Concurso Universitario de Software Libre en la categoría "Mejor proyecto de accesibilidad" y del Premio Especial del mismo Concurso

Resumen: Nela es un programa informático que ayuda en el aprendizaje de la escritura usando el código Braille, simulando una máquina Perkins con el teclado del ordenador. Está dirigido a niños con discapacidad visual (visión reducida o ceguera). Programado en C++ usando las bibliotecas Qt, es multiplataforma (funciona tanto en Microsoft Windows como en Gnu/Linux) y está internacionalizado. Ha sido valorado positivamente por varios educadores, y obtuvo el primer premio en la fase estatal del VI Concurso Universitario de Software Libre, así como el premio especial de accesibilidad.

Palabras clave: Aprendizaje, Braille, ceguera, discapacidad visual, enseñanza, escritura, escuela, formación, software educativo.

Vuelta a inicio

GeoTask: Servicios basados en localización para sistemas Android
Francisco Javier Martín Otero
Programador senior en Batkiwi; Ganador del VI Concurso Universitario de Software Libre en la categoría "Mejor proyecto comunitario"

Resumen: Los Servicios Basados en Localización (LBS) buscan ofrecer un servicio personalizado a los usuarios basándose en la mayoría de situaciones en información de ubicación geográfica de éstos. Para su operación utilizan tecnologías de Sistemas de Información Geográfica, algunas tecnologías de posicionamiento, bien sea del lado del cliente (por ej. GPS) o del lado del servidor (por ej. servicio de posicionamiento suministrado por el operador de la red), y tecnologías de comunicación de redes para transmitir información hacia una aplicación LBS que pueda procesar y responder la solicitud. Geotask es una aplicación basada en este tipo de servicios que explota la posibilidad de geolocalización de los dispositivos con sistemas operativos basados en Android para poder ejecutar tareas de forma totalmente automática.

Palabras clave: Android, automatizar, geolocalización, software libre, tarea


Vuelta a inicio
.

Servicios basados en localización para daf-collage: Un proyecto innovador en la enseñanza del idioma alemán
 
Francisco Javier Rodríguez López (1), Simeón Ruiz Romero (2)
(1) Desarrollador de aplicaciones en Intelligenia, ganador del VI Concurso Universitario de Software Libre en la categoría "Mejor proyecto de Educación y Ocio"; (2) Desarrollador de aplicaciones freelance, ganador del VI Concurso Universitario de Software Libre en la categoría "Mejor proyecto de Educación y Ocio"

Resumen: daf-collage es un proyecto docente innovador orientado tanto a la flexibilidad en la configuración del aprendizaje por parte del alumno como a favorecer la comunicación entre profesor y alumno. Se encuentra en plena fase de desarrollo y de ampliación de funcionalidades contando con la colaboración de más de una veintena de desarrolladores alrededor del  mundo.

Palabras clave: Alemán, aprendizaje, daf-collage, Moodle, software libre.


Vuelta a inicio


Cormoran: Un framework de persistencia para Python
Jaime Gil de Sagredo Luna
(1)  Desarrollador de servicios REST y aplicaciones de gestión en Taric, S.A., ganador del VI Concurso Universitario de Software Libre en la categoría "Mejor proyecto de Innovación"

Resumen: Cormoran es un framework de persistencia y ORM (Object-Relational Mapping) para el lenguaje de programación Python. Su principal objetivo es proveer de un API moderna y potente para el acceso a datos de aplicaciones con independencia de la fuente de datos. Actualmente se ha liberado una primera versión de la librería y se está trabajando en mejorarla, además de incorporar nuevas fuentes de datos, como APIs REST.

Palabras clave: Aplicaciones, Cormoran, datos, desarrollo, ORM, persistencia, Python. 


Vuelta a inicio



Última actualización: 29 de septiembre de 2013 Autor: Llorenç Pagés Casas
Sugerencias,novatica@ati.es
Mejor con
                    cualquierHTML
                    3.2