Issue No.06 - Nov.-Dec. (2012 vol.38)
pp: 1445-1463
Damien Cassou , University of Bordeaux and INRIA, Talence
Julien Bruneau , University of Bordeaux and INRIA, Talence
Charles Consel , University of Bordeaux and INRIA, Talence
Emilie Balland , University of Bordeaux and INRIA, Talence
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.
Pervasive computing, Taxonomy, Computer architecture, Programming, Domain specific languages, Computational modeling, Software architecture, simulation, Methodology, domain-specific language, generative programming, pervasive computing, toolkit, programming support
Damien Cassou, Julien Bruneau, Charles Consel, Emilie Balland, "Toward a Tool-Based Development Methodology for Pervasive Computing Applications", IEEE Transactions on Software Engineering, vol.38, no. 6, pp. 1445-1463, Nov.-Dec. 2012, doi:10.1109/TSE.2011.107
[1] E. Serral, P. Valderas, and V. Pelechano, "Towards the Model Driven Development of Context-Aware Pervasive Systems," Pervasive and Mobile Computing, vol. 6, pp. 254-280, Apr. 2010.
[2] R.N. Taylor, N. Medvidovic, and E.M. Dashofy, Software Architecture: Foundations, Theory, and Practice. Wiley, 2009.
[3] 1219: Standard for Software Maintenance, IEEE Std, 1998.
[4] V. Reynolds, V. Cahill, and A. Senart, "Requirements for an Ubiquitous Computing Simulation and Emulation Environment," Proc. First Int'l Conf. Integrated Internet Ad hoc and Sensor Networks, 2006.
[5] A. Ranganathan and R.H. Campbell, "Advertising in a Pervasive Computing Environment," Proc. Second Int'l Workshop Mobile Commerce, pp. 10-14, 2002.
[6] J. Highsmith and M. Fowler, "The Agile Manifesto," Software Development Magazine, vol. 9, no. 8, pp. 29-30, 2001.
[7] N. Medvidovic and R.N. Taylor, "A Classification and Comparison Framework for Software Architecture Description Languages," IEEE Trans. Software Eng., vol. 26, no. 1, pp. 70-93, Jan. 2000.
[8] D. Cassou, B. Bertran, N. Loriant, and C. Consel, "A Generative Programming Approach to Developing Pervasive Computing Systems," Proc. Eighth Int'l Conf. Generative Programming and Component Eng., pp. 137-146, 2009.
[9] J. Bruneau, W. Jouve, and C. Consel, "DiaSim, a Parameterized Simulator for Pervasive Computing Applications," Proc. Sixth Ann. Int'l Conf. Mobile and Ubiquitous Systems: Computing, Networking and Services, pp. 1-10, 2009.
[10] A.K. Dey, G.D. Abowd, and D. Salber, "A Conceptual Framework and a Toolkit for Supporting the Rapid Prototyping of Context-Aware Applications," Human-Computer Interaction, vol. 16, no. 2, pp. 97-166, 2001.
[11] G. Chen and D. Kotz, "Context Aggregation and Dissemination in Ubiquitous Computing Systems," Proc. Fourth IEEE Workshop Mobile Computing Systems and Applications, pp. 105-114, 2002.
[12] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, 1995.
[13] J. Kabanov and R. Raudjärv, "Embedded Typesafe Domain Specific Languages for Java," Proc. Sixth Int'l Symp. Principles and Practice of Programming in Java, pp. 189-197, 2008.
[14] M. Fowler, "Fluent Interface," , 2005.
[15] E. Van Wyk, L. Krishnan, D. Bodin, and A. Schwerdfeger, "Attribute Grammar-Based Language Extensions for Java," Proc. 21st European Conf. Object-Oriented Programming, pp. 575-599, 2007.
[16] J. Aldrich, C. Chambers, and D. Notkin, "ArchJava: Connecting Software Architecture to Implementation," Proc. 24th Int'l Conf. Software Eng., pp. 187-197, 2002.
[17] J. Mercadal, Q. Enard, C. Consel, and N. Loriant, "A Domain-Specific Approach to Architecturing Error Handling in Pervasive Computing," Proc. 25th Int'l Conf. Object Oriented Programming Systems Languages and Applications, 2010.
[18] J. Bruneau, C. Consel, M. O'Malley, W. Taha, and W.M. Hannourah, "Preliminary Results in Virtual Testing for Smart Buildings (Poster)," Proc. Seventh Int'l Conf. Mobile and Ubiquitous Systems: Computing, Networking and Services, 2010.
[19] A.Y. Zhu, J. Inoue, M.L. Peralta, W. Taha, M.K. O'Malley, and D. Powell, "Implementing Haptic Feedback Environments from High-Level Descriptions," Proc. Sixth Int'l Conf. Embedded Software and Systems, pp. 482-489, 2009.
[20] M. Martin and P. Nurmi, "A Generic Large Scale Simulator for Ubiquitous Computing (Poster)," Proc. Third Int'l Conf. Mobile and Ubiquitous Systems: Networking and Services, pp. 1-3, 2006.
[21] W.W.W. Consortium, "Web Services Architecture,", 2004.
[22] J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston, J. Peterson, R. Sparks, M. Handley, and E. Schooler, "SIP: Session Initiation Protocol," Technical Report RFC 3261, http://www., 2002.
[23] T.B. Downing, Java RMI: Remote Method Invocation. IDG Books Worldwide, Inc., 1998.
[24] "Osgi Alliance," http:/, 2012.
[25] D. Cassou, J. Bruneau, and C. Consel, "A Tool Suite to Prototype Pervasive Computing Applications (Demo)," Proc. Eighth IEEE Int'l Conf. Pervasive Computing and Comm., pp. 1-3, 2010.
[26] B. Bertran, C. Consel, P. Kadionik, and B. Lamer, "A SIP-Based Home Automation Platform: An Experimental Study," Proc. 13th Int'l Conf. Intelligence in Next Generation Networks, pp. 1-6, 2009.
[27] B. Bertran, C. Consel, W. Jouve, H. Guan, and P. Kadionik, "SIP as a Universal Communication Bus: A Methodology and an Experimental Study," Proc. Ninth Int'l Conf. Comm., 2010.
[28] Z. Drey, J. Mercadal, and C. Consel, "A Taxonomy-Driven Approach to Visually Prototyping Pervasive Computing Applications," Proc. First Working Conf. Domain-Specific Languages, vol. 5658, pp. 78-99, 2009.
[29] R. Kieburtz, L. McKinney, J. Bell, J. Hook, A. Kotov, J. Lewis, D. Oliva, T. Sheard, I. Smith, and L. Walton, "A Software Engineering Experiment in Software Component Generation," Proc. 18th Int'l Conf. Software Eng., pp. 542-552, 1996.
[30] L. Erlikh, "Leveraging Legacy System Dollars for E-Business," IT Professional, vol. 2, no. 3, pp. 17-23, 2000.
[31] T.J. McCabe, "A Complexity Measure," Proc. Second Int'l Conf. Software Eng., p. 407, 1976.
[32] N. Ubayashi, J. Nomura, and T. Tamai, "Archface: A Contract Place Where Architectural Design and Code Meet Together," Proc. 32nd Int'l Conf. Software Eng., pp. 75-84, 2010.
[33] A. Ranganathan, S. Chetan, J. Al-Muhtadi, R.H. Campbell, and M.D. Mickunas, "Olympus: A High-Level Programming Model for Pervasive Computing Environments," Proc. IEEE Third Int'l Conf. Pervasive Computing and Comm., pp. 7-16, 2005.
[34] T.H. Collett, B.A. MacDonald, and B.P. Gerkey, "Player 2.0: Toward a Practical Robot Programming Framework," Proc. Seventh Australasian Conf. Robotics and Automation, pp. 1-9, 2005.
[35] D.C. Schmidt, "Guest Editor's Introduction: Model-Driven Engineering," Computer, vol. 39, no. 2, pp. 25-31, , Feb. 2006.
[36] G. Booch, J. Rumbaugh, and I. Jacobson, The Unified Modeling Language User Guide, second ed. Addison Wesley, 2005.
[37] N. Medvidovic, E.M. Dashofy, and R.N. Taylor, "Moving Architectural Description from under the Technology Lamppost," Information and Software Technology, vol. 49, pp. 12-31, 2007.
[38] "Enterprise Architect—UML Design Tools and UML CASE Tools for Software Development," eaindex.html, 2012.
[39] R. Picek and V. Strahonja, "Model Driven Development—Future or Failure of Software Development?" Proc. 18th Int'l Conf. Information and Intelligent Systems, pp. 407-413, Sept. 2007.
[40] M. Fowler, "UML Mode," , May 2003.
[41] D. Thomas, "MDA: Revenge of the Modelers or UML Utopia?" IEEE Software, vol. 21, no. 3, pp. 15-17, May/June 2004.
[42] A. Schmidt, K.A. Aidoo, A. Takaluoma, U. Tuomela, K.V. Laerhoven, and W.V.d. Velde, "Advanced Interaction in Context," Proc. First Int'l Symp. Handheld and Ubiquitous Computing, pp. 89-101, 1999.
[43] K. Henricksen and J. Indulska, "A Software Engineering Framework for Context-Aware Pervasive Computing," Proc. IEEE Second Ann. Conf. Pervasive Computing and Comm., pp. 77-86, 2004.
[44] T. McFadden, K. Henricksen, J. Indulska, and P. Mascaro, "Applying a Disciplined Approach to the Development of a Context-Aware Communication Application," Proc. IEEE Third Int'l Conf. Pervasive Computing and Comm., pp. 300-306, 2005.
[45] M. Kranz, R.B. Rusu, A. Maldonado, M. Beetz, and A. Schmidt, "A Player/Stage System for Context-Aware Intelligent Environments," Proc. System Support for Ubiquitous Computing Workshop, pp. 1-7, 2006.
[46] J.J. Barton and V. Vijayaraghavan, "Ubiwise, a Ubiquitous Wireless Infrastructure Simulation Environment," technical report, Hewlett Packard, 2002.
[47] E. O'Neill, M. Klepal, D. Lewis, T. O'Donnell, D. O'Sullivan, and D. Pesch, "A Testbed for Evaluating Human Interaction with Ubiquitous Computing Environments," Proc. First Int'l Conf. Testbeds and Research Infrastructures for the DEvelopment of NeTworks and COMmunities, pp. 60-69, 2005.
[48] D. Cassou, E. Balland, C. Consel, and J. Lawall, "Leveraging Architectures to Guide and Verify Development of Sense/Compute/Control Applications," Proc. 33rd Int'l Conf. Software Eng., May 2011.
[49] H. Jakob, N. Loriant, and C. Consel, "An Aspect-Oriented Approach to Securing Distributed Systems," Proc. Sixth Int'l Conf. Pervasive Services, pp. 21-30, 2009.
[50] S. Gatti, E. Balland, and C. Consel, "A Step-Wise Approach for Integrating QoS Throughout Software Development," Proc. 14th European Conf. Fundamental Approaches to Software Eng., May 2011.
[51] F. Sanen, K. Mehner, R. Chitchyan, L. Bergmans, J. Fabry, and M. Südholt, "Aspects, Dependencies and Interactions," Proc. European Conf. Object-Oriented Technology Programming, pp. 51-62, 2008.
[52] R. Douence, P. Fradet, and M. Südholt, "A Framework for the Detection and Resolution of Aspect Interactions," Proc. First Int'l Conf. Generative Programming and Component Eng., pp. 173-188, 2002.
[53] W. Visser, K. Havelund, G. Brat, and S. Park, "Model Checking Programs," Proc. IEEE 15th Int'l Conf. Automated Software Eng., pp. 3-12, 2000.