Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

An MDD‐based method for building context‐aware applications with high reusability

Published: 15 November 2019 Publication History

Abstract

Adding context ‐awareness capabilities to modern mobile and pervasive computing applications (apps) is becoming a mainstream activity in the software engineering community. In this respect, many context models and middleware architectures have been proposed with the aim to provide the developers with tools and abstractions that make it easier to produce context‐aware applications. However, current solutions suffer from relatively low reusability and lack ease‐of‐use. In this paper, we propose a two‐layer approach based on model‐driven development: At the higher layer, we introduce the design of reusable context plug‐ins, which can be used to monitor low‐level context data and to infer higher‐level information about the users, their computing infrastructure, and their interaction. At the lower layer, the plug‐ins themselves are synthesized using more elementary, reusable components. We argue that this development approach provides significant advantages to the developers, as it enables them to design, implement, reuse, and maintain the codebase of context‐aware apps more efficiently. To evaluate this approach, we demonstrate it in the context of a two‐part example application and assess it both qualitatively and quantitatively.

Graphical Abstract

In this paper we propose a two‐layer approach for creatingcontext‐aware applications, based on MDD: At the higher layer, context plug‐ins are used to monitor low‐level context data and infer higher‐level information about the users, theircomputing infrastructure, and their interaction. At the lower layer, the plug‐ins themselves are synthesized from elementary,reusable components. We argue that this approach provides significantadvantages as the developers are enabled to design, implement, reuse, andmaintain the codebase of context‐aware appsmore efficiently.

References

[1]
Dey AK, Abowd GD, Salber D. A conceptual framework and a toolkit for supporting the rapid prototyping of context‐aware applications. Hum Comput Interact. 2001;16(2):97‐166.
[2]
Brunette W, Sodt R, Chaudhri R, Goel M, Falcone M, Van Orden J, Borriello G. Open data kit sensors: a sensor integration framework for android at the application‐level. In: MobiSys '12. New York, NY, USA:ACM; 2012:351‐364.
[3]
Carlson D, Schrader A. A wide‐area context‐awareness approach for android. In: iiWAS '11.New York, NY, USA: ACM; 2011:383‐386.
[4]
Kim H‐K, Kim C‐S, Kim K‐C. A context‐aware framework for mobile computing environment. In: LNEE. Singapore:Springer Singapore; 2015:325‐330.
[5]
Paspallis N, Papadopoulos GA. A pluggable middleware architecture for developing context‐aware mobile applications. Pers Ubiquit Comput J. 2013:1‐18.
[6]
Bettini C, Brdiczka O, Henricksen K, Indulska J, Nicklas D, Ranganathan A, Riboni D. A survey of context modelling and reasoning techniques. Pervasive Mob Comput. 2010;6(2):161‐180. Context Modelling, Reasoning and Management.
[7]
Hong J, Suh E, Kim S‐J. Context‐aware systems: a literature review and classification. Expert Syst Appl. 2009;36(4):8509‐8522.
[8]
Sommerville I. Software Engineering, 10th ed.Pearson; 2010.
[9]
Leach RJ. Software Reuse: Methods, Models, and Costs. 2nd ed. New York, NY, USA:McGraw‐Hill; 2013.
[10]
Taylor RN, Medvidovic N, Dashofy EM. Software Achitecture: Foundations, Theory, and Practice, 1st ed.Wiley; 2009.
[11]
Richards M. Software Architecture Patterns, 1st ed. 1005 Gravenstein Highway North, Sebastopol, CA 95472, United States:O'Reilly Media; 2015.
[12]
Bagheri H, Garcia J, Sadeghi A, Malek S, Medvidovic N. Software architectural principles in contemporary mobile software: from conception to practice. J Syst Softw. 2016;119:31‐44.
[13]
Mellor SJ, Clark AN, Futagami T. Model‐driven development. IEEE Softw. 2003;20(5):14‐18.
[14]
Selic B. The pragmatics of model‐driven development. IEEE Softw. 2003;20(5):19‐25.
[15]
Szyperski C. Component Software: Beyond Object‐Oriented Programming. Addison‐Wesley Professional; 1997.
[16]
Floch J, Fra C, Fricke R, Geihs K, Wagner M, Lorenzo J, Soladana E, Mehlhase S, Paspallis N, Rahnama H, Ruiz PA, Scholz U. Playing MUSIC ‐ building context‐aware and self‐adaptive mobile applications. Softw Pract and Experience J. 2013;43(3):359‐388.
[17]
Hallsteinsen S, Geihs K, Paspallis N, Eliassen F, Horn G, Lorenzo J, Mamelli A, Papadopoulos GeorgeA. A development framework and methodology for self‐adapting applications in ubiquitous computing environments. J Syst Softw. 2012;85(12):2840‐2859.
[18]
Hong JI. The context fabric: an infrastructure for context‐aware computing. In: CHI '02 Extended Abstracts on Human Factors in Computing Systems.Minneapolis, Minnesota, USA:ACM; 2002:554‐555.
[19]
Bardram JE. The java context awareness framework (JCAF) – a service infrastructure and programming framework for context‐aware applications. In: PERVASIVE'05. Berlin, Heidelberg:Springer‐Verlag; 2005:98‐115.
[20]
Paspallis N, Rouvoy R, Barone P, Papadopoulos GA, Eliassen F, Mamelli A. A pluggable and reconfigurable architecture for a context‐aware enabling middleware system. In: LNCS, Vol. 5331.Monterrey, Mexico:Springer Verlag; 2008: 553‐570.
[21]
Reichle R, Wagner M, Khan M, Geihs K, Lorenzo J, Valla M, Fra C, Paspallis N, Papadopoulos GA. A comprehensive context modeling framework for pervasive computing systems. In: LNCS, Vol. 5053.Oslo, Norway:Springer Verlag; 2008: 281‐295.
[22]
Strang T, Linnhoff‐Popien Claudia, Frank K. CoOL: A context ontology language to enable contextual interoperability. In: LNCS, Vol. 2893.Paris, France:Springer Verlag; 2003:236‐247.
[23]
Reichle R, Wagner M, Khan MU, Geihs K, Valla M, Fra C, Paspallis N, Papadopoulos GA. A context query language for pervasive computing environments. In: Proceedings of the 5th IEEE Workshop on Context Modeling and Reasoning (CoMoRea'08) in conjunction with the 6th IEEE International Conference on Pervasive Computing and Communication (PerCom'08). IEEE Computer Society; 2008; Hong Kong:434‐440.
[24]
Fra C, Valla M, Paspallis N. High level context query processing: an experience report. In: Proceedings of the 8th IEEE Workshop on Context Modeling and Reasoning (CoMoRea'11) in conjuction with the 9th IEEE International Conference on Pervasive Computing and Communication (PerCom'11). IEEE Digital Library; 2011; Seattle, WA, USA:421‐426.
[25]
Haghighi PD, Zaslavsky A, Krishnaswamy S. An evaluation of query languages for Context‐Aware computing. In: Database and Expert Systems Applications, 2006. DEXA '06. 17th International Conference on; 2006:455‐462.
[26]
Mcfadden T, Henricksen K, Indulska J. Automating context‐aware application development. In: Proceedings of the 1st International Workshop on Advanced Context Modelling, Reasoning and Management in conjuction with UbiComp (UbiComp'04); 2004; Nottingham, England, UK:90‐95.
[27]
Perich F, Joshi A, Yesha Y, Finin T. Collaborative joins in a pervasive computing environment. The VLDB Journal. 2005;14(2):182‐196.
[28]
Baer PA, Reichle R. Communication and collaboration in heterogeneous teams of soccer robots. In: Vienna, Austria: I‐Tech Education and Publishing; 2007:1‐28.
[29]
Kalman RE. A new approach to linear filtering and prediction problems. Trans ASME J Basic Eng. 1960;82(Series D):35‐45.
[30]
Karp RM, Miller RE, Rosenberg AL. Rapid identification of repeated patterns in strings, trees and arrays. In: STOC '72. ACM; 1972; New York, NY, USA:125‐136.
[31]
Consortium MUSIC. Self‐adapting applications for mobile users in ubiquitous computing environments (MUSIC); 2006.
[32]
Paspallis N, Achilleos A, Kakousis K, Papadopoulos GA. Context‐aware media player (CaMP): Developing context‐aware applications with separation of concerns. In: 2010 IEEE Globecom Workshops; 2010:1684‐1689.
[33]
Paspallis N, Alshaal SE. Improving QoE via context prediction: a case study of using WiFi radiomaps to predict network disconnection. In: ICPE '17 Companion. ACM; 2017; New York, NY, USA:31‐34.
[34]
Cervantes H, Hall RS. Autonomous adaptation to dynamic availability using a service‐oriented component model. In: Proceedings of the 26th International Conference on Software Engineering (ICSE'04).IEEE Computer Society; 2004; Edinburg, Scotland, UK:614‐623.
[35]
DeLeon P, Sreenan CJ. An adaptive predictor for media playout buffering. In: 1999 IEEE International Conference on Acoustics, Speech, and Signal Processing. Proceedings. ICASSP99 (Cat. No.99CH36258), Vol. 6; 1999:3097‐3100 vol.6.
[36]
Russell SJ, Norvig P. Artificial intelligence: A modern approach. 3rd ed.:Pearson Education; 2009.
[37]
Varshavsky A, Patel S. Location in ubiquitous computing. In: Krumm John, ed. Ubiquitous Computing Fundamentals, Boca Raton, FL, USA: CRC Press; 2009:285‐320.
[38]
Kwapisz JR, Weiss GM, Moore SA. Activity recognition using cell phone accelerometers. SIGKDD Explor Newsl. 2011;12(2):74‐82.
[39]
Lara OD, Labrador MA. A survey on human activity recognition using wearable sensors. IEEE Commun Surv Tutorials. 2013;15(3):1192‐1209.
[40]
LeCun Y, Bengio Y, Hinton G. Deep learning. Nature. 2015;521(7553):436‐444.
[41]
Cassou D, Bruneau J, Consel C, Balland E. Toward a tool‐based development methodology for pervasive computing applications. Trans Software Eng. 2012;38(6):1445‐1463.
[42]
Rubin J, Chisnell D. Handbook of usability testing: How to plan, design, and conduct effective tests. 2nd ed. Indianapolis, IN, USA:Wiley; 2008.
[43]
Priefer D, Kneisel P, Taentzer G. Joomdd: A model‐driven development environment for web content management system extensions. In: 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE‐C); 2016:633‐636.
[44]
Boehm BW, Abts C, Brown A. Winsor, Chulani S, Clark BK, Horowitz E, Madachy R, Reifer D, Steece B. Software cost estimation with cocomo II with cdrom. 1st ed. Upper Saddle River, NJ, USA:Prentice Hall PTR; 2000.
[45]
Kieburtz RB, McKinney L, Bell JM, Hook J, Kotov A, Lewis J, Oliva DP, Sheard T, Smith I, Walton L. A software engineering experiment in software component generation. In: ICSE '96.IEEE Computer Society; 1996; Washington, DC, USA:542‐552.
[46]
Paspallis N. Summary of the classroom‐based survey: questions and answers. http://nearchos.github.io/mdd_survey.html Last accessed: 25 Oct 2018.
[47]
McCabe TJ. A complexity measure. IEEE Trans Softw Eng. 1976;SE‐2(4):308‐320.
[48]
Selvaraj V, Iyer P. Cyvis software complexity visualiser. https://sourceforge.net/projects/cyvis Accessed: 2019‐02‐09; 2013.
[49]
Sedlacek J, Hurka T. Visualvm: All‐in‐one java troubleshooting tool. https://visualvm.github.io Accessed: 2019‐02‐09; 2017.
[50]
Schilit BN, Adams NI, Want R. Context‐aware computing applications. In: Proceedings of the 1st Workshop on Mobile Computing Systems and Applications (WMCSA'94). IEEE Computer Society; 1994; Santa Cruz, CA:85‐90.
[51]
Dey AK. Understanding and using context. Pers Ubiquit Comput. 2001;5(1):4‐7.
[52]
Ferreira D, Kostakos V, Dey AK. Aware: mobile context instrumentation framework. Frontiers in ICT. 2015;2(6).
[53]
Ceri S, Daniel F, Facca FM, Matera M. Model‐driven engineering of active context‐awareness. World Wide Web. 2007;10(4):387‐413.
[54]
Krysztof Czarnecki UE. Generative programming: Methods, tools, and applications. 1st ed. New York, NY, USA:Addison‐Wesley Professional; 2000.
[55]
Panach JI, Juristo N, Valverde F, ÃŞscar Pastor. A framework to identify primitives that represent usability within model‐driven development methods. Information and Software Technology. 2015;58:338‐354.
[56]
Carton A, Clarke S, Senart A, Cahill V. Aspect‐oriented model‐driven development for mobile context‐aware computing. In: SEPCASE '07. Washington, DC, USA:IEEE Computer Society; 2007:5‐8.
[57]
Munnelly J, Fritsch S, Clarke S. An aspect‐oriented approach to the modularisation of context. In: Fifth Annual IEEE International Conference on Pervasive Computing and Communications (PerCom'07); 2007:114‐124.
[58]
Bombonatti D, Goulão M, Moreira A. Synergies and tradeoffs in software reuse—a systematic mapping study. Softw Pract Experience. 2016:943‐957.
[59]
Hoyos JR, García‐Molina J, Botía JA, Preuveneers D. A model‐driven approach for quality of context in pervasive systems. Comput Electr Eng. 2016;55(Supplement C):39‐58.
[60]
Ayed D, Delanote D, Berbers Y. MDD approach for the development of context‐aware applications. In: LNCS, Vol. 4635.Springer Verlag; 2007; Roskilde University, Denmark:15‐28.
[61]
Naujokat S, Neubauer J, Lamprecht A‐L, Steffen B, Jörges S, Margaria T. Simplicity‐first model‐based plug‐in development. Softw Pract Experience. 2014;44(3):277‐297.
[62]
Oldevik J, Neple T, Grønmo R, Aagedal J, Berre A‐J. Toward standardised model to text transformations. In: Model Driven Architecture – Foundations and Applications Hartman Alan, Kreische David, eds. Berlin, Heidelberg:Springer Berlin Heidelberg; 2005:239‐253.
[63]
Naujokat S, Lamprecht A‐L, Steffen B, Jörges S, Margaria T. Simplicity principles for plug‐in development: The jABC approach. In: 2012 Second International Workshop on Developing Tools as Plug‐Ins (TOPI); 2012:7‐12.
[64]
Jörges S. Construction and evolution of code generators. 1st ed. Berlin Heidelberg:Springer‐Verlag; 2013.
[65]
Jörges S, Margaria T, Steffen B. Genesys: service‐oriented construction of property conform code generators. Innov Syst Softw Eng. 2008;4(4):361‐384.
[66]
Wagelaar D, Jonckers V. Explicit platform models for MDA. In: LNCS, Vol. 3713. Genova, Italy:Springer Verlag; 2005:367‐381.
[67]
Geihs K, Baer P, Reichle R, Wollenhaupt J. Ontology‐based automatic model transformations. In: Proceedings of the 6th IEEE International Conference on Software Engineering and Formal Methods (SEFM '08).IEEE Computer Society; 2008; Cape Town, South Africa:387‐391.
[68]
Martínez Y, Cachero C, Meliá S. MDD vs. traditional software development: a practitioner's subjective perspective. Inf Softw Technol. 2013;55(2):189‐200. Special Section: Component‐Based Software Engineering (CBSE), 2011.
[69]
Christensen B, Ellingsen G. Evaluating model‐driven development for large‐scale EHRs through the openEHR approach. Int J Med Inform. 2016;89:43‐54.
[70]
Martin RC. Agile software development: Principles, patterns, and practices. Upper Saddle River, NJ, USA:Prentice Hall PTR; 2003.
[71]
Ambler SW. Agile model driven development is good enough. IEEE Software. 2003;20(5):71‐73.
[72]
Anvaari M, Jansen S. Evaluating architectural openness in mobile software platforms. In: ECSA '10.ACM; 2010; New York, NY, USA:85‐92.

Cited By

View all
  • (2020)A Generative Approach for Android Sensor-based ApplicationsProceedings of the Brazilian Symposium on Multimedia and the Web10.1145/3428658.3430976(33-40)Online publication date: 30-Nov-2020

Index Terms

  1. An MDD‐based method for building context‐aware applications with high reusability
        Index terms have been assigned to the content through auto-classification.

        Recommendations

        Comments

        Information & Contributors

        Information

        Published In

        cover image Journal of Software: Evolution and Process
        Journal of Software: Evolution and Process  Volume 31, Issue 11
        November 2019
        135 pages
        ISSN:2047-7473
        EISSN:2047-7481
        DOI:10.1002/smr.v31.11
        Issue’s Table of Contents

        Publisher

        John Wiley & Sons, Inc.

        United States

        Publication History

        Published: 15 November 2019

        Author Tags

        1. code generation
        2. context awareness
        3. MDD
        4. middleware
        5. plug‐in
        6. reusability

        Qualifiers

        • Research-article

        Contributors

        Other Metrics

        Bibliometrics & Citations

        Bibliometrics

        Article Metrics

        • Downloads (Last 12 months)0
        • Downloads (Last 6 weeks)0
        Reflects downloads up to 06 Feb 2025

        Other Metrics

        Citations

        Cited By

        View all
        • (2020)A Generative Approach for Android Sensor-based ApplicationsProceedings of the Brazilian Symposium on Multimedia and the Web10.1145/3428658.3430976(33-40)Online publication date: 30-Nov-2020

        View Options

        View options

        Figures

        Tables

        Media

        Share

        Share

        Share this Publication link

        Share on social media