ABSTRACT
Embedded application developers create applications for a wide range of devices with different resource constraints. Developers want to maximize the use of the limited resources available on the device while still not exceeding the capabilities of the device. To do this, the developer must be able to scale his software for different platforms. In this paper, we present a software engineering methodology that automatically scales software to different platforms. We intend to have the application developer write high level functional specifications of his software and have tools that automatically scale the underlying runtime. These tools will use the functional and non-functional constraints of both the hardware and client application to produce an appropriate runtime. Our initial results show that the proposed approach can scale operating systems and virtual machines that satisfy the constraints of varying hardware/application combinations.
- Don Batory and Sean O'Malley. The design and implementation of hierarchical software systems with reusable components. ACM Transactions on Software Engineering and Methodology, 1(4):355--398, 1992.]] Google Scholar
- J. Bergey, G. Campbell, S. Cohen, M. Fisher, B. Gallagher, L. Jones, L. Northrop, and A. Soule. Software product line acquisition: A companion to a framework for software product line practice, version 4.2. Available at http://www.sei.cmu.edu/productlines/frame_report/introduction.htm, 2005.]]Google Scholar
- Danilo Beuche, Abdelaziz Guerrouat, Holger Papajewski, Wolfgang Schroder-Preikschat, Olaf Spinczyk, and Ute Spinczyk. On the development of object-oriented operating systems for deeply embedded systems - the PURE project. In ECOOP Workshops, pages 27--31, 1999.]] Google Scholar
- Sapan Bhatia, Charles Consel, and Calton Pu. Remote customization of systems code for embedded devices. In EMSOFT '04: Proceedings of the fourth ACM international conference on Embedded software, pages 7--15, New York, NY, USA, 2004. ACM Press.]] Google Scholar
- E. Cheong, J. Liebman, J. Liu, and F. Zhao. TinyGALS: A programming model for event-driven embedded systems. In Proceedings of the 18th Annual ACM Symposium on Applied Computing (SAC'03), 2003.]] Google Scholar
- W. H. Cheung and Anthony H. S. Loong. Exploring issues of operating systems structuring: from microkernel to extensible systems. SIGOPS Oper. Syst. Rev., 29(4):4--16, 1995.]] Google Scholar
- Crossbow Inc. Stargate - XScale Network Interface and Single Board Computer. http://www.xbow.com.]]Google Scholar
- Cygnus. eCos: Embedded Cygnus Operating System. http://www.cygnus.com/ecos.]]Google Scholar
- K. Czarnecki, T. Bednasch, P. Unger, and U. W. Eisenecker. Generative Programming for Embedded Software: An industrial experience report. In D. Batory, C. Consel, and W. Taha, editors, Proceedings of the ACM SIGPLAN/SIGSOFT Conference on Generative Programming and Component Engineering (GPCE '02), number 2487 in LNCS, pages 156--172, 2002.]] Google Scholar
- K. Czarnecki and U. W. Eisenecker. Generative Programming: Methods, Tools and Applications. Addison-Wesley, 2000.]] Google Scholar
- K. Czarnecki, S. Helsen, and U. Eisenecker. Staged configuration using feature models. In R. L. Nord, editor, Proceedings of the SPLC 2004, number 3154 in LNCS, pages 266--283, 2004.]]Google Scholar
- E. Gabber et al. The Pebble component-based operating system. In Proceedings of the USENIX Annual Technical Conference, pages 267--282, 1999.]] Google Scholar
- F. Kon et al. 2K: A reflective, component based operating system for rapidly changing environment. In Proceedings of the European Conference on Object Oriented Programming, 1998.]] Google Scholar
- R. Cambell et. al. Designing and implementing Choices: An object-oriented system in C++. Communications of the ACM, 36(9):117--126, 1993.]] Google Scholar
- Kathleen Fisher and John H. Reppy. The design of a class mechanism for Moby. In SIGPLAN Conference on Programming Language Design and Implementation, pages 37--49, 1999.]] Google Scholar
- Matthew Flatt and Matthias Felleisen. Units: cool modules for HOT languages. In PLDI '98: Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, pages 236--248, New York, NY, USA, 1998. ACM Press.]] Google Scholar
- B. Ford, G. Back, G. Benson, J. Lepreau, A. Lin, and O. Shivers. The flux OSKit: A substrate for kernel and language research. In Symposium on Operating Systems Principles, pages 38--51, 1997.]] Google Scholar
Digital Library
- D. Gay, P. Levis, R. von Behren, M. Welsh, E. Brewer, and D. Culler. The nesc language: A holistic approach to networked embedded systems. SIGPLAN Not., 38(5):1--11, 2003.]] Google Scholar
- David Gay, Phil Levis, and David Culler. Software design patterns for TinyOS. In LCTES'05: Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems, pages 40--49, New York, NY, USA, 2005. ACM Press.]] Google Scholar
- J. Goguen. Parameterized programming and software architecture. In Proceedings of the fourth International Workshop on Reuse, pages 2--11, 1996.]] Google Scholar
- Benjamin Greenstein, Eddie Kohler, and Deborah Estrin. A sensor network application construction kit (SNACK).In Proceedings of the second international conference on Embedded networked sensor systems, 2004.]] Google Scholar
- M. L. Griss, J. Favaro, and M. d' Alessandro. Integrating feature modeling with the RSEB. In ICSR '98: Proceedings of the 5th International Conference on Software Reuse, page 76, Washington, DC, USA, 1998. IEEE Computer Society.]] Google Scholar
- William Harrison and Harold Ossher. Subject-oriented programming: a critique of pure objects. In OOPSLA '93: Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications, pages 411--428, New York, NY, USA, 1993. ACM Press.]] Google Scholar
- J. Hill and D. Culler. Mica: A wireless platform for deeply embedded networks. IEEE Micro, 22(6):12--24, November/December 2002.]] Google Scholar
- K. Kang, S. Cohen, J. Hess, W. Nowak, and S. Peterson. Feature-oriented domain analysis (FODA) feasibility study. Technical Report CMU/SEI-90TR-21, Software Engineering Institute, Carnegie Mellon University, 1990.]]Google Scholar
- G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J. M. Loingtier, and J. Irwin. Aspect-oriented Programing. In Proceedings of the 11th European Conference on Object-Oriented Programming, number 1241 in LNCS, June 1997.]]Google Scholar
- Eddie Kohler, Robert Morris, Benjie Chen, John Jannotti, and M. Frans Kaashoek. The click modular router. ACM Trans. Comput. Syst., 18(3):263--297, 2000.]] Google Scholar
- J. Koshy and R. Pandey. VM*: Synthesizing scalable runtime environments for sensor networks. In Proceedings of the third international Conference on Embedded Networked Sensor Systems (Sensys), San Diego, CA, USA, Nov 2005. ACM.]] Google Scholar
- Lakshman Krishnamurthy, Robert Adler, Phil Buonadonna, Jasmeet Chhabra, Mick Flanigan, Nandakishore Kushalnagar, Lama Nachman, and Mark Yarvis. Design and deployment of industrial sensor networks: experiences from a semiconductor plant and the north sea. In SenSys '05: Proceedings of the 3rd international conference on Embedded networked sensor systems, pages 64--75, New York, NY, USA, 2005. ACM Press.]] Google Scholar
- K. Lee, K. C. Kang, and J. Lee. Concepts and guidelines of feature modeling for product line software engineering. In C. Gacek, editor, Software Reuse: Methods, Techniques, and Tools: Proceedings of the Seventh Reuse Conference (ICSR7), number 2319 in LNCS, pages 62--77, Austin, USA, April 2002. Springer Verlag.]] Google Scholar
- D. Lymberopoulos and A. Savvides. XYZ: A Motion-Enabled, Power Aware Sensor Node Platform for Distributed Sensor Network Applications. In Proceedings of IPSN 05, Los Angeles, 2005.]] Google Scholar
- S. McDirmid, M. Flatt, and W. Hsieh. Jiazzi: New-age components for old-fashioned Java. In Proceedings of OOPSLA, Oct 2001.]] Google Scholar
- Allen Brady Montz, David Mosberger, Sean W. O'Malley, Larry L. Peterson, Todd A. Proebsting, and John H. Hartman. Scout: A communications-oriented operating system (abstract). In Operating Systems Design and Implementation, page 200, 1994.]]Google Scholar
- David A. Moon. Object-oriented programming with flavors. In OOPLSA '86: Conference proceedings on Object-oriented programming systems, languages and applications, pages 1--8, New York, NY, USA, 1986. ACM Press.]] Google Scholar
- D. Ganesan P. Desnoyers and P. Shenoy. Tsar: A two tier storage architecture using interval skip graphs. In Proceedings of the Third ACM Conference on Embedded Networked Sensor Systems (SenSys), pages 39--50. ACM, November 2005.]] Google Scholar
- J. Polastre, R. Szewczyk, and D. Culler. Telos: Enabling ultra-low power wireless research. In Proceedings of the Fourth International Conference on Information Processing in Sensor Networks: Special track on Platform Tools and Design Methods for Network Embedded Sensors (IPSN/SPOTS), 2005.]] Google Scholar
- Christian Prehofer. Feature-oriented programming: A fresh look at objects. Lecture Notes in Computer Science, 1241:419--443, 1997.]]Google Scholar
- Alastair Reid, Matthew Flatt, Leigh Stoller, Jay Lepreau, and Eric Eide. Knit: Component composition for systems software. In Proc. of the 4th Operating Systems Design and Implementation (OSDI), pages 347--360, 2000.]] Google Scholar
- T. Saulpaugh and C. Mirho. Inside the JavaOS Operating System. Addison Wesley, 1999.]]Google Scholar
- Joao Costa Seco and Luis Caires. A basic model of typed components. In ECOOP '00: Proceedings of the 14th European Conference on Object-Oriented Programming, pages 108--128, London, UK, 2000. Springer-Verlag.]] Google Scholar
- Janos Sztipanovits and Gabor Karsai. Generative programming for embedded systems. In GPCE '02: The ACM SIGPLAN/SIGSOFT Conference on Generative Programming and Component Engineering, pages 32--49, London, UK, 2002. Springer-Verlag.]] Google Scholar
- David Urting, Yolande Berbers, Stefan Van Baelen, Tom Holvoet, Yves Vandewoude, and Peter Rigole. A tool for component based design of embedded software. In CRPITS '02: Proceedings of the Fortieth International Confernece on Tools Pacific, pages 159--168, Darlinghurst, Australia, Australia, 2002. Australian Computer Society, Inc.]] Google Scholar
- Rob van Ommering, Frank van der Linden, Jeff Kramer, and Jeff Magee. The Koala component model for consumer electronics software. Computer, 33(3):78--85, 2000.]] Google Scholar
- David M. Weiss and Chi Tau Robert Lai. Software product-line engineering: a family-based software development process. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1999.]] Google Scholar
- Andreas Zeller and Gregor Snelting. Unified versioning through feature logic. ACM Trans. Softw. Eng. Methodol., 6(4):398--441, 1997.]] Google Scholar






Comments