Physical Programming: Beyond Mere Logic
Conventional wisdom encourages software designers to take a Platonic approach to design; they are instructed to focus on ensuring the correctness of the logic of their software while playing down or even ignoring the generally unpleasant characteristics of the underlying computing platform. However, as software systems become increasingly more integrated into our everyday activities, this approach can be highly counterproductive. For example, when a software system is distributed over multiple physically distinct platforms, seemingly mundane things such as transmission delays or component failures can have a critical impact on program logic. The widely-held view that physical concerns only matter in highly specialized domains, such as real-time or fault-tolerant systems, leaves us singularly unprepared for the coming generation of Internet-based software. In this talk, we first examine the different ways in which software logic can be affected by its physical context. We then outline a conceptual framework for extending traditional software engineering concepts to deal with these issues.
KeywordsVirtual Machine Engineering Discipline Object Management Group Physical Program Physical Type
Unable to display preview. Download preview PDF.
- 2.Halpern, J. and Moses, Y.: Knowledge and Common Knowledge in a Distributed Environment, Proceedings. of the 3rd ACM Symposium on Principles of Distributed Systems, (1984) 50–61.Google Scholar
- 4.Matena, V. and Stearns, B.: Applying Enterprise JavaBeans-Component-Based Development for the J2EE Platform, Addison Wesley, New York (2001)Google Scholar
- 5.Microsoft Corporation: What is Microsoft.NET? (http://msdn.microsoft.com/netframework/productinfo/overview.asp) (2002).
- 6.Object Management Group (OMG): Model Driven Architecture-A Technical Perspective, OMG document ormsc/01-07-01, (http://www.omg.org/cgi-bin/doc?ormsc/2001-07-01) (2001)
- 7.Object Management Group (OMG): UML Profile for Schedulability, Performance, and Time, OMG document ptc/02-03-02 (http://www.omg.org/cgi-bin/doc?ptc/2002-03-02) (2002)