Hacia una línea de productos: diseño de arquitecturas de referencia en el dominio de la computación móvil
Resumen
Las Líneas de Productos de Software (LPS) basadas en la reutilización, pretenden mejorar tiempo de comercialización, evolución del software y bajar costos de desarrollo. Productos de software, miembros de la familia LPS, son derivados instanciando una Arquitectura de Referencia (RA: “Reference Architecture”) genérica, con componentes comunes y variantes. La ventaja para una empresa es obtener productos concretos instanciando la RA, reutilizando un repositorio de activos (“assets”). Sin embargo, diseñar una RA para un dominio dado, es tarea compleja y costosa en vista de que ésta debe ser evolutiva, acorde con los cambios tecnológicos. Se puede atacar el problema considerando que la empresa crea desde cero su LPS, aplicando una estrategia descendente (“top-down”), para definir el repositorio de activos inspirándose en productos del mercado existentes en el dominio. Otra forma es seguir una estrategia ascendente (“bottom-up”) cuando una empresa tiene varios productos desarrollados y determinar mediante un proceso de reingeniería, componentes o módulos que pueden ser reutilizados como activos; esta es la estrategia seguida en la presente investigación. El objetivo de este trabajo es describir un proceso bottom-up semi-formal, sistemático y repetible de diseño de la RA, representada por un grafo conexo no dirigido. El proceso es aplicado al caso de estudio de aplicaciones de Transacciones Financieras, sub-dominio de la Computación Móvil del consorcio CONECTIUM Limited C.A., que también contempla aplicaciones en los sub-dominios Sistemas de Salud y Contenidos de Entretenimiento. Los resultados obtenidos son ilustrativos, repetibles y de utilidad para la práctica industrial, facilitando así la Ingeniería de una LPS.
Palabras clave: línea de productos de software, arquitectura de referencia,diseño de una arquitectura de referencia, proceso bottom-up, computación móvil, ingeniería del dominio.
Descargas
Citas
Clements P. and Northrop L. (2001) SPL: practices and patterns, 3rd ed. Readings, MA, Addison Wesley.
Reinhartz-Berger I., A. Sturm, T. Clark, S. Cohen & J. Bettin, (Editors). (2013) Domain Engineering. Product Lines, Languages and Conceptual Models, Springer.
ISO/IEC NP 26550 (2013) Software and Systems Engineering – Reference Model for Software and Systems Product Lines. ISO/IEC JTC1/SC7 WG4.
M. Shaw M., Garlan D. (1996). Software Architecture. Perspectives of an emerging discipline, Prentice-Hall.
Object Management Group (OMG) (2005) Unified Modelling Language Superstructure, version 2.0 (formal/05-07-04), August.
Losavio F., Ordaz O., Jean S., (2016) Ontological approach to derive product configurations from a Software Product Line Reference Architecture, Revista Ciencia y Tecnología (CyT), UP, Argentina, Nº 16, pp. 91-127, ISSN 1850-0870, http://www.palermo.edu/ingenieria/pdf2016/CyT_16_07.pdf
Abrahamsson, P. (2005) Keynote: Mobile software development - the business opportunity of today. Int. Conf. on Software Development, pp. 20-23. Reykjavik.
Wasserman A. (2010) Software engineering issues for mobile application development, FoSER '10, FSE/SDP on Future of Software Engineering Research, pp. 397-400.
Losavio F., Ordaz O., Esteller V. (2015) Refactoring-Based Design of Reference Architecture, RACCIS (Revista Antioqueña de las Ciencias Computacionales y la Ingeniería del Software), Vol 5, No 1, pp. 32-48, enero-junio 2015, ISSN 2248-7441. URL, http://www.fundacioniai.org/raccis
Berard E. (1992) Essays in OO Software Engineering, Prentice Hall, N.Y.
World Wide Web Consortium (2010). Mobile Web Application Best Practices, W3C Working Draft, http://www.w3.org/TR/mwabp/
Agile Alliance. (2001) Agile Software Development Manifesto. Retrieved from Manifesto for Agile Software Development:
Boehm, B., Turner, R. (2003) Balancing Agility and Discipline: A Guide for the Perplexed. Addison-Wesley.
Spataru A., (2010) Agile Development Methods for Mobile App, MSc These, University of Edinburg.
Kaleel B. S., Harishankar S. (2013) Applying Agile Methodology in Mobile Software Engineering: Android Application Development and its Challenges, Reyrson University, Canada, CSTR. Paper 4,
http://digitalcommons.ryerson.ca/compsci_techrpts/4
Salinesi C., Mazo R., Djebbi O., Dia D. (2011) Constraints: The core of product line engineering, Research Challenges in Information Science (RCIS), Fifth International Conference on, 19-21 May, pp 1-10.
Matinlassi M. (2004) Comparison of software product line architecture design Methods: COPA, FAST FORM, KobrA and QADA, ICSE’04.
Falvo Jr V.. et al. (2014) Towards the Establishment of a Software Product Line for Mobile Learning Applications, SEKE 2014.
Losavio, F., Ordaz O., Santos I. (2015) Proceso de análisis del dominio ágil de sistemas integrados de salud en un contexto venezolano, Revista Venezolana de Información, Tecnología y Conocimiento, ENL@CE, Vol. 12
(1)101-134 , Enero-Abril, ISSN: 1690-7515, http://www.produccioncientifica.luz.edu.ve/index.php/enlace/index
Pohl K., Böckle G., van der Linden F. (2005) SPL engineering - foundations, principles, and techniques. Springer IXXVI.
Bjørner D. (2006) Software Engineering 3: Domains, Requirements, and Software Design, Texts in Theoretical Computer Science, Springer-Verlag, Berlin Heidelberg.
Abrahamsson, P. (2007) Agile Software Development of Mobile Information Systems. In Advanced Information Systems (pp. 1-4). Berlin: Springer.
Schwaber, K. (2004) Agile Project Management with Scrum. Microsoft Press.
Mansanet I., Fons J., Torres I., Pelechano V. (2011) GeMMINi: Prototipo de IU sobre multiples dispositivos. Una estrategia basadas en LPS y MDD, FAZ.
Czarnecki K., Hwan C., Kim P.,Trygve K. (2006) Feature Models are Views on Ontologies, SPIC 2006.
Gruber T. (1993) Toward Principles for the Design of Ontologies Used for Knowledge Sharing. Technical Report KSL 93-04, KS Laboratory, Stanford University.
Chung L., Nixon B. and E. Yu. (1995) Using non-functional requirements to systematically select among alternatives in architectural Design,1st Inter. Workshop on Architectures for Software Systems, pp.31-42, Seattle, Washington.
ISO/IEC 25010 (2011) Systems and software engineering - Systems and software Quality Requirements and Evaluation (SQuaRE) -- System and software quality models, ISO/IEC JTC1/SC7/WG6.
Koziolek, H., Weiss, R., Doppelhamer, J. (2009) Evolving industrial software architectures into a software product line: A case study. Lecture Notes in Computer Science 5581, pp. 177-193.
Losavio F., Ordaz O. (2016) Reference Architecture Representation by an Ontology for Healthcare Information Systems Software Product Line, SCTC 2016 / ISBN: 978-980-12-8407-9, pp. 20-32, Universidad Central de Venezuela, Caracas, Venezuela – 9-11 de Mayo, http://www.sctc.org.ve/memorias/SCTC2016/SCTC2016-p020-032.pdf
Los artículos publicados en la Revista Ciencia y Tecnología son de exclusiva propiedad de sus autores. Las opiniones y el contenido de los mismos pertenecen a sus autores, declinando la Universidad de Palermo toda responsabilidad por los derechos que pudiera derivarse de la lectura y/o interpretación del contenido de los artículos publicados.
No se autoriza la reproducción, utilización ni explotación por parte de ningún tercero de los artículos publicados. Sólo se autoriza su uso para fines exclusivamente académicos y/o de investigación.