Journal of Computer Science and Technology ›› 2018, Vol. 33 ›› Issue (5): 900-917.doi: 10.1007/s11390-018-1865-9

Previous Articles     Next Articles

AocML: A Domain-Specific Language for Model-Driven Development of Activity-Oriented Context-Aware Applications

Xuan-Song Li1,2, Member, CCF, Xian-Ping Tao2, Senior Member, CCF, Member, IEEE, Wei Song1,2, Senior Member, CCF, Member, IEEE, Kai Dong3   

  1. 1 School of Computer Science and Engineering, Nanjing University of Science and Technology, Nanjing 210094, China;
    2 State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing 210023, China;
    3 School of Computer Science and Engineering, Southeast University, Nanjing 211189, China
  • Received:2018-03-05 Revised:2018-07-18 Online:2018-09-17 Published:2018-09-17
  • Supported by:
    The work was supported by the National Key Research and Development Program of China under Grant No. 2017YFB1001801, the National Natural Science Foundation of China under Grant Nos. 61702263, 61761136003, and 61373011, the Natural Science Foundation of Jiangsu Province of China under Grant No. BK20171427, and the Fundamental Research Funds for the Central Universities of China under Grant No. 30917011322.

Activity-oriented context-aware (AOCA) applications are representative in pervasive computing. These applications recognize daily-life human activities, perceive the environment status related to the activities, and react to ensure the smooth performance of the activities. Existing research proposed a specific light-weight, incremental method to support the development of such applications; however it is not easy to learn and use. This paper aims to facilitate the development of such applications and improve the productivity of developers. We propose AocML, a textual domain-specific language which provides a high-level abstraction of AOCA applications. Specifically, we first show the software model of AOCA applications and the abstract syntax of AocML. Then, we introduce the concrete syntax of AocML. We also implement the tools for AocML, including the development environment as well as the generation of Java code and ontology specification. Moreover, we use a case study and evaluation to demonstrate the advantages of AocML.

Key words: pervasive computing; context-awareness; model-driven development; domain-specific language;

[1] Weiser M. The computer for the 21st century. Scientific American, 1991, 265(3):94-104.
[2] Satyanarayanan M. Pervasive computing:Vision and challenges. IEEE Personal Communications, 2001, 8(4):10-17.
[3] Li X, Tao X, Lu J. Towards a programming framework for activity-oriented context-aware applications. Frontiers of Computer Science, 2017, 11(6):987-1006.
[4] Gu T, Pung H, Zhang D. Toward an OSGi-based infrastructure for context-aware applications. IEEE Pervasive Computing, 2004, 3(4):66-74.
[5] Li J, Bu Y, Chen S, Tao X, Lu J. FollowMe:On research of pluggable infrastructure for context-awareness. In Proc. the 20th International Conference on Advanced Information Networking and Applications, Volume 1, April 2006, pp.199-204.
[6] Arcelus A, Jones M H, Goubran R, Knoefel F. Integration of smart home technologies in a health monitoring system for the elderly. In Proc. the 21st Int. Conf. Advanced Information Networking and Applications, Volume 2, May 2007, pp.820-825.
[7] Dey A, Abowd G, Salber D. A conceptual framework and a toolkit for supporting the rapid prototyping of contextaware applications. Human-Computer Interaction 2001, 16(2):97-166.
[8] Gu T, Pung H K, Zhang D Q. A service-oriented middleware for building context-aware services. Journal of Network and Computer Applications, 2005, 28(1):1-18.
[9] Voelter M, Benz S, Dietrich C, Engelmann B, Helander M, Kats L C, Visser E, Wachsmuth G. DSL Engineering:Designing, Implementing and Using Domain-Specific Languages. CreateSpace Independent Publishing Platform, 2013.
[10] Kamma D, Sasi K G. Effect of model based software development on productivity of enhancement tasks-An industrial study. In Proc. the 21st Asia-Pacific Software Engineering Conference, December 2014, pp.71-77.
[11] Mellegard N, Ferwerda A, Lind K, Heldal R, Chaudron M. Impact of introducing domain-specific modelling in software maintenance:An industrial case study. IEEE Transactions Software Engineering, 2016, 42(3):245-260.
[12] Engeström Y, Miettinen R, Punamäki R L. Perspectives on Activity Theory. Cambridge University Press, 1999.
[13] Baldauf M, Dustdar S, Rosenberg F. A survey on contextaware systems. International Journal of Ad Hoc and Ubiquitous Computing, 2007, 2(4):263-277.
[14] Selic B. Personal reflections on automation, programming culture, and model-based software engineering. Automated Software Engineering, 2008, 15(3/4):379-391.
[15] Kleppe A. Software Language Engineering:Creating Domain-Specific Languages Using Metamodels (1st edition). Addison-Wesley Professional, 2008.
[16] Freudenthal M. Domain specific languages in a customs information system. IEEE Software, 2010, 27(2):65-71.
[17] Spinellis D. Notable design patterns for domain-specific languages. Journal of Systems and Software, 2001, 56(1):91-99.
[18] Hürsch W L, Lopes C V. Separation of concerns. Technical Report NU-CCS-95-03, Northeastern University, 1995.;jsessionid=0D0343A1A144A43A5687C675AF2766C0?doi=, July 2018.
[19] Mernik M, Heering J, Sloane A M. When and how to develop domain-specific languages. ACM Computing Surveys, 2005, 37(4):316-344.
[20] Wang L, Gu T, Tao X, Chen H, Lu J. Recognizing multiuser activities using wearable sensors in a smart home. Pervasive and Mobile Computing, 2011, 7(3):287-298.
[21] Dourish P. What we talk about when we talk about context. Personal and Ubiquitous Computing, 2004, 8(1):19-30.
[22] Eysholdt M, Behrens H. Xtext:Implement your language faster than the quick and dirty way. In Proc. the 25th ACM International Conference Companion on Object-Oriented Programming, Systems, Languages, and Applications Companion, October 2010, pp.307-309.
[23] Kleppe A G, Warmer J, Bast W. MDA Explained:The Model Driven Architecture:Practice and Promise (1st edition). Addison-Wesley Professional, 2003.
[24] Serral E, Valderas P, Pelechano V. Towards the model driven development of context-aware pervasive systems. Pervasive and Mobile Computing, 2010, 6(2):254-280.
[25] Hoyos J R, García-Molina J, Botía J A. A domain-specific language for context modeling in context-aware systems. Journal of Systems and Software, 2013, 86(11):2890-2905.
[26] Gamma E, Helm R, Johnson R, Vlissides J, Booch G. Design Patterns:Elements of Reusable Object-Oriented Software (1st edition). Addison-Wesley Professional, 1994.
[27] Gruber T R. A translation approach to portable ontology specifications. Knowledge Acquisition, 1993, 5(2):199-220.
[28] Bechhofer S. OWL:Web ontology language. In Encyclopedia of Database Systems, Liu L, Ozsu M T (eds.), Springer, 2009, pp.90-154
[29] Power J F, Malloy B A. A metrics suite for grammar-based software. Journal of Software Evolution and Process, 2004, 16(6):405-426.
[30] Crepinsek M, Kosar T, Mernik M, Cervelle J, Forax R, Roussel G. On automata and language based grammar metrics. Computer Science and Information Systems, 2010, 7(2):309-329.
[31] Chen G. Solar:Building a context fusion network for pervasive computing[Ph.D. Thesis]. Dartmouth College, Hanover, New Hampshire, 2004.
[32] Wischweh J, Bade D. Activity-oriented context adaptation in mobile applications. In Proc. the 8th International Conference on Mobile and Ubiquitous Systems:Computing, Networking, and Services, Dec. 2011, pp.298-313.
[33] Rehman K, Stajano F, Coulouris G. An architecture for interactive context-aware applications. IEEE Pervasive Computing, 2007, 6(1):73-80.
[34] Julien C, Roman G C. EgoSpaces:Facilitating rapid development of context-aware mobile applications. IEEE Transactions on Software Engineering 2006, 32(5):281-298.
[35] Sindico A, Grassi V. Model driven development of context aware software systems. In Proc. International Workshop on Context-Oriented Programming, July 2009, Article No. 7.
[36] Kelly S, Pohjonen R. Worst practices for domain-specific modeling. IEEE Software, 2009, 26(4):22-29.
[37] Sheng Q Z, Benatallah B. ContextUML:A UMLbased modeling language for model-driven development of context-aware Web services. In Proc. the 4th International Conference on Mobile Business, July 2005, pp.206-212.
[38] Ceri S, Daniel F, Matera M, Facca F M. Model-driven development of context-aware Web applications. ACM Transactions on Internet Technology, 2007, 7(1):Article No. 2.
[39] Ayed D, Delanote D, Berbers Y. MDD approach for the development of context-aware applications. In Proc. the 6th International and Interdisciplinary Conference on Modeling and Using Context, August 2007, pp.15-28.
[40] Henricksen K, Indulska J. Developing context-aware pervasive computing applications:Models and approach. Pervasive and Mobile Computing, 2006, 2(1):37-64.
[41] Barnett S, Vasa R, Grundy J. Bootstrapping mobile app development. In Proc. the 37th International Conference on Software Engineering, Volume 2, May 2015, pp.657-660.
[42] Schreiber F A, Camplani R, Fortunato M, Marelli M, Rota G. PerLa:A language and middleware architecture for data management and integration in pervasive information systems. IEEE Trans. Software Engineering, 2012, 38(2):478-496.
[43] Alvares F, Rutten E, Seinturier L. A domain-specific language for the control of self-adaptive component-based architecture. Journal of Systems and Software, 2017, 130:94-112.
[44] Kulkarni D, Ahmed T, Tripathi A. A generative programming framework for context-aware CSCW applications. ACM Trans. Software Engineering and Methodology, 2012, 21(2):Article No. 11.
[45] Lee Y, Iyengar S, Min C, Ju Y, Kang S, Park T, Lee J, Rhee Y, Song J. Mobicon:A mobile context-monitoring platform. Communications of the ACM, 2012, 55(3):54-65.
[1] Jaeyoung Yang, Joonwhan Lee, and Joongmin Choi. Activity Recognition Based on RFID Object Usage for Smart Mobile Devices [J]. , 2011, 26(2): 239-246.
[2] Xin Wang, Student Member, CCF, Lin-Peng Huang, Senior Member, CCF, Yi Zhang, Xiao-Hui Xu, Student Member, CCF, and Jun-Qing Chen, Student Member, CCF. A Solution of Data Inconsistencies in Data Integration --- Designed for Pervasive Computing Environment [J]. , 2010, 25(3): 499-508.
[3] Miao-Miao Wang, Jian-Nong Cao, Jing Li, and Sajal K. Das. Middleware for Wireless Sensor Networks: A Survey [J]. , 2008, 23(3): 305-326 .
Full text



[1] Liu Mingye; Hong Enyu;. Some Covering Problems and Their Solutions in Automatic Logic Synthesis Systems[J]. , 1986, 1(2): 83 -92 .
[2] Chen Shihua;. On the Structure of (Weak) Inverses of an (Weakly) Invertible Finite Automaton[J]. , 1986, 1(3): 92 -100 .
[3] Gao Qingshi; Zhang Xiang; Yang Shufan; Chen Shuqing;. Vector Computer 757[J]. , 1986, 1(3): 1 -14 .
[4] Chen Zhaoxiong; Gao Qingshi;. A Substitution Based Model for the Implementation of PROLOG——The Design and Implementation of LPROLOG[J]. , 1986, 1(4): 17 -26 .
[5] Huang Heyan;. A Parallel Implementation Model of HPARLOG[J]. , 1986, 1(4): 27 -38 .
[6] Min Yinghua; Han Zhide;. A Built-in Test Pattern Generator[J]. , 1986, 1(4): 62 -74 .
[7] Tang Tonggao; Zhao Zhaokeng;. Stack Method in Program Semantics[J]. , 1987, 2(1): 51 -63 .
[8] Min Yinghua;. Easy Test Generation PLAs[J]. , 1987, 2(1): 72 -80 .
[9] Qiao Xiangzhen;. An Efficient Parallel Algorithm for FFT[J]. , 1987, 2(3): 174 -190 .
[10] Zhu Hong;. Some Mathematical Properties of the Functional Programming Language FP[J]. , 1987, 2(3): 202 -216 .

ISSN 1000-9000(Print)

CN 11-2296/TP

Editorial Board
Author Guidelines
Journal of Computer Science and Technology
Institute of Computing Technology, Chinese Academy of Sciences
P.O. Box 2704, Beijing 100190 P.R. China
  Copyright ©2015 JCST, All Rights Reserved