The design of software that is easy to port or deliberately targeted for multiple platforms is a neglected area of software engineering. A promising solution is to link components and toolkits through XML and reflection. One of the more compelling definitions of software engineering is, the multiperson construction of multiversion software. The popular view of software engineering focuses on the first part of this definition - managing teams to produce a large product. But just as important is the view inherent in the second part of the definition - identifying specific parts of a product so that experts can design them and organizations can mass-produce them free of language and environment dependencies. Component-based software engineering has made tremendous strides toward satisfying both parts of the definition. Through the use of middleware constructed using reflection and controlled through XML specifications, it is possible to give the components in a large software system a high degree of platform and even language independence. The result is long lived software that can migrate gracefully as platforms improve and change
[1]
Meurig Sage.
FranTk - a declarative GUI language for Haskell
,
2000,
ICFP '00.
[2]
Paulo Pinheiro,et al.
User Interface Declarative Models and Development Environments: A Survey
,
2000,
DSV-IS.
[3]
Jean Vanderdonckt,et al.
Applying model-based techniques to the development of UIs for mobile computers
,
2001,
IUI '01.
[4]
Eduardo Mena,et al.
Adaptive User Interface for Mobile Devices
,
2002,
DSV-IS.
[5]
J. Bishop,et al.
Developing principles of GUI programming using views
,
2004,
SIGCSE '04.
[6]
R. N. Horspool,et al.
Cross-Platform Development: Software that Lasts
,
2006,
2006 30th Annual IEEE/NASA Software Engineering Workshop.