Toward a Tool-Based Development Methodology for Pervasive Computing Applications

Despite much progress, developing a pervasive computing application remains a challenge because of a lack of conceptual frameworks and supporting tools. This challenge involves coping with heterogeneous devices, overcoming the intricacies of distributed systems technologies, working out an architecture for the application, encoding it in a program, writing specific code to test the application, and finally deploying it. This paper presents a design language and a tool suite covering the development life-cycle of a pervasive computing application. The design language allows us to define a taxonomy of area-specific building-blocks, abstracting over their heterogeneity. This language also includes a layer to define the architecture of an application, following an architectural pattern commonly used in the pervasive computing domain. Our underlying methodology assigns roles to the stakeholders, providing separation of concerns. Our tool suite includes a compiler that takes design artifacts written in our language as input and generates a programming framework that supports the subsequent development stages, namely, implementation, testing, and deployment. Our methodology has been applied on a wide spectrum of areas. Based on these experiments, we assess our approach through three criteria: expressiveness, usability, and productivity.

[1]  Patrice Kadionik,et al.  A SIP-based home automation platform: an experimental study , 2009, 2009 13th International Conference on Intelligence in Next Generation Networks.

[2]  Klaus Havelund,et al.  Model Checking Programs , 2004, Automated Software Engineering.

[3]  Gregory D. Abowd,et al.  A Conceptual Framework and a Toolkit for Supporting the Rapid Prototyping of Context-Aware Applications , 2001, Hum. Comput. Interact..

[4]  Albrecht Schmidt,et al.  Advanced Interaction in Context , 1999, HUC.

[5]  Charles Consel,et al.  An aspect-oriented approach to securing distributed systems , 2009, ICPS.

[6]  L. Erlikh,et al.  Leveraging legacy system dollars for e-business , 2000 .

[7]  Martin Klepal,et al.  A testbed for evaluating human interaction with ubiquitous computing environments , 2005, First International Conference on Testbeds and Research Infrastructures for the DEvelopment of NeTworks and COMmunities.

[8]  Werner Nutt,et al.  Remote Method Invocation , 2009, Encyclopedia of Database Systems.

[9]  Charles Consel,et al.  A domain-specific approach to architecturing error handling in pervasive computing , 2010, OOPSLA.

[10]  Ruzanna Chitchyan,et al.  Aspects, Dependencies and Interactions , 2008, ECOOP Workshops.

[11]  Charles Consel,et al.  A Taxonomy-Driven Approach to Visually Prototyping Pervasive Computing Applications , 2009, DSL.

[12]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[13]  Matthew MacDonald,et al.  Web Services Architecture , 2004 .

[14]  David Notkin,et al.  ArchJava: connecting software architecture to implementation , 2002, ICSE '02.

[15]  Tim Sheard,et al.  A software engineering experiment in software component generation , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[16]  Ruzanna Chitchyan,et al.  Proceedings of the Int. Workshop on Aspects, Dependencies and Interactions (ADI'07) , 2008 .

[17]  Roy H. Campbell,et al.  Advertising in a pervasive computing environment , 2002, WMC '02.

[18]  Troy Bryan Downing Java RMI: Remote Method Invocation , 1998 .

[19]  Richard N. Taylor,et al.  Moving Architectural Description from Under the Technology Lamppost , 2006, 32nd EUROMICRO Conference on Software Engineering and Advanced Applications (EUROMICRO'06).

[20]  Charles Consel,et al.  A Step-Wise Approach for Integrating QoS throughout Software Development , 2011, FASE.

[21]  Orit Hazzan,et al.  The Agile Manifesto , 2014 .

[22]  Dave A. Thomas,et al.  MDA: revenge of the modelers or UML utopia? , 2004, IEEE Software.

[23]  Guanling Chen,et al.  Context aggregation and dissemination in ubiquitous computing systems , 2002, Proceedings Fourth IEEE Workshop on Mobile Computing Systems and Applications.

[24]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[25]  Marcia Kilchenman O'Malley,et al.  Implementing Haptic Feedback Environments from High-Level Descriptions , 2009, 2009 International Conference on Embedded Software and Systems.

[26]  Bruce A. MacDonald,et al.  Player 2.0: Toward a Practical Robot Programming Framework , 2008 .

[27]  Rémi Douence,et al.  A Framework for the Detection and Resolution of Aspect Interactions , 2002, GPCE.

[28]  David M. Booth,et al.  Web Services Architecture , 2004 .

[29]  Jadwiga Indulska,et al.  A software engineering framework for context-aware pervasive computing , 2004, Second IEEE Annual Conference on Pervasive Computing and Communications, 2004. Proceedings of the.

[30]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[31]  Damien Cassou,et al.  A tool suite to prototype pervasive computing applications , 2010, 2010 8th IEEE International Conference on Pervasive Computing and Communications Workshops (PERCOM Workshops).

[32]  Jadwiga Indulska,et al.  Applying a Disciplined Approach to the Development of a Context-Aware Communication Application , 2005, Third IEEE International Conference on Pervasive Computing and Communications.

[33]  Patrice Kadionik,et al.  SIP as a Universal Communication Bus: A Methodology and an Experimental Study , 2010, 2010 IEEE International Conference on Communications.

[34]  Roy H. Campbell,et al.  Olympus: A High-Level Programming Model for Pervasive Computing Environments , 2005, Third IEEE International Conference on Pervasive Computing and Communications.

[35]  Ruben Picek,et al.  Model Driven Development – Future or Failure of Software Development? , 2007 .

[36]  Jevgeni Kabanov,et al.  Embedded typesafe domain specific languages for Java , 2008, PPPJ '08.

[37]  Naoyasu Ubayashi,et al.  Archface: a contract place where architectural design and code meet together , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[38]  Wilfried Jouve,et al.  DiaSim: A parameterized simulator for pervasive computing applications , 2009, 2009 6th Annual International Mobile and Ubiquitous Systems: Networking & Services, MobiQuitous.

[39]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[40]  John J. Barton,et al.  UBIWISE, A Ubiquitous Wireless Infrastructure Simulation Environment , 2002 .

[41]  Damien Cassou,et al.  Leveraging software architectures to guide and verify the development of sense/compute/control applications , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[42]  Petteri Nurmi,et al.  A Generic Large Scale Simulator for Ubiquitous Computing , 2006, 2006 Third Annual International Conference on Mobile and Ubiquitous Systems: Networking & Services.

[43]  Eric Van Wyk,et al.  Attribute Grammar-Based Language Extensions for Java , 2007, ECOOP.

[44]  Damien Cassou,et al.  A generative programming approach to developing pervasive computing systems , 2009, GPCE '09.

[45]  Michael Beetz,et al.  A Player/Stage System for Context-Aware Intelligent Environments , 2006 .

[46]  Douglas C. Schmidt,et al.  Guest Editor's Introduction: Model-Driven Engineering , 2006, Computer.

[47]  Marcia Kilchenman O'Malley,et al.  Preliminary Results in Virtual Testing for Smart Buildings , 2010, MobiQuitous.

[48]  Vicente Pelechano,et al.  Article in Press Pervasive and Mobile Computing ( ) – Pervasive and Mobile Computing towards the Model Driven Development of Context-aware Pervasive Systems , 2022 .

[49]  Mark Handley,et al.  SIP: Session Initiation Protocol , 1999, RFC.

[50]  Vinny Cahill,et al.  Requirements for an ubiquitous computing simulation and emulation environment , 2006, InterSense '06.

[51]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..