Article Preview
TopIntroduction
The dissemination of computing and heterogeneous devices and platforms, the high pace of technological innovations and volatile requirements, the size and complexity of software systems characterize the software development context today. This context challenges the way software is developed for emerging forms of information systems. Software Development Processes (SDPs), as well as generalized adoption of models, are fundamental to efficient development efforts of successful software systems.
Pervasive Computing, also called Ubiquitous Computing (Weiser, 1993b; Weiser, Gold, & Brown, 1999), represents a new direction on the thinking about the integration and use of computers in people’s lives. It aims to achieve a new computing paradigm, one in which there is a high degree of pervasiveness and availability of interconnected computing devices in the physical environment. Widespread availability of affordable and innovative information technologies represents a potential opportunity for improvement/innovation on business processes or for enhancement of life quality of individuals. Among other things (such as social concerns), this opportunity promotes the attention to the efficiency and effectiveness of information management regarding to the way they acquire, process, store, retrieve, communicate, use, and share information. To take full benefits of the opportunities offered by modern information technologies, these devices need to be “appropriately integrated within organizational frameworks” (Sage & Rouse, 1999). Therefore, Pervasive Information Systems (PIS) (Fernandes, Machado, & Carvalho, 2008) orchestrate these devices in order to achieve a set of well-established goals. In this way, PIS not only provide a solid basis to sustain the needed information to achieve effectiveness at both individual and organizational levels, but also leverages the investment on those information technologies or other organizational resources. In order to explore the potential offered by pervasive computing and to maximize the revenue of these kinds of systems, a PIS, as any other information system, must be designed, developed and deployed attending to its nature (these systems may potentially accommodate a large quantity of heterogeneous devices and be subject of frequent updates/evolutions).
Software engineering has been, since its existence, subject of research and improvement in several areas of interest, such as software development processes (SDPs) whose process models evolved from waterfall and nowadays may assume several forms (Ruparelia, 2010). The development of large software systems is another area of interest that has been, for decades, subject of research work; several topics can be pointed out such as the exploration of issues related to the management of large scale software development (Benincasa, Daneels, Heymans, & Serre, 1985; Kay, 1969), software architecture (Gorton & Liu, 2010; Laine, 2001; Mirakhorli, Sharifloo, & Shams, 2008), model-driven development (Heijstek & Chaudron, 2009; Mattsson, Lundell, Lings, & Fitzgerald, 2007), among others. Not directly related with large projects, Medvidovic (2005) points the relevance of software architecture in leveraging the pervasive and ubiquitous area. Model-Based/Driven Development (hereafter in this document, unless otherwise stated, simply referred as MDD) is another area that gains an increasing focus. MDD constitutes an approach to software design and development that strongly focuses and relies on models (Fernandes, Machado, & Carvalho, 2004). It automates, as much as possible, the transformation of models and the generation of the final code. This enables higher independence from the technological platform that supports the realization of the system.