Ubiquitous computing started at Xerox PARC in 1988. It is one of the biggest research areas in present time. The term was coined by Mark Weiser with some basic forms of ubiquitous computing system devices as smart devices, tabs, boards and pads where we can say that some are wearable devices (tabs), some are hand held devices (pads) and some are big size display devices (boards). His vision was to create environment saturated with computing and communicating capability, and integrated with human users.
Ubiquitous computing is the third wave of computing. It is more than the traditional human-computer interaction (HCI). The basic idea of this computing is that all the information processing is integrated and embedded into everyday objects which mean we can simultaneously interact with all the information processing devices without even thinking of them. Aim of this computing is to use computers those are invisible to user for more convenient and advanced life. It has been identified by the researchers that, in future, the world will be characterized by computing and sensing elements embedded invisibly in the environment. The integrated devices would have the ability to interact with users to change environmental behaviour according to expressions and feelings rather than forcing the user to search interfaces to perform required operations.
It is opposite to virtual reality. Virtual reality is people living inside a computer generated world whereas Ubiquitous computing is about people living in real life and in a way forgetting that computers even exist. We cannot put ubiquitous computing to just one category; it is a mix and integration of human factors, computer science and engineering and social sciences.
Other terms meaning the same are: pervasive computing, ambient intelligence, calm technology, everyware and things that think. All these terms are used interchangeably with ubiquitous computing but have slightly different meaning.
1.2 RESEARCH PROBLEM
Software engineering is on the matured phase now. The world has shifted from the world of content to the world of context. Instead of software, services are implemented. Even pervasive and mobile computing technologies have become old. Latest trend in software engineering is ubiquitous computing. It is taking a new place in everyone’s life. In coming years, all the new software will be made to fit in ubiquitous computing environment. Slowly and gradually, all the present software will also shift to ubiquitous computing environment. This is not an easy task. Ubiquitous computing software need to follow agile methodology
Diverse agile methodologies have been researched to boost practices for managing projects in software engineering, including frequent adaptation, rapid delivery, and team’s collaboration. An integrated agile method is the way to maximize effectiveness of managing projects which are conducted in collaborative ubiquitous environment. According to the agile principles, team members can have more cooperation and discussion of their work status and plan frequent delivery of executable programs. Based on these activities, project progress and project team members are managed for specific project goals. These activities are more valuable in ubiquitous multi-project environment.
From the research, I want to describe the general level framework characteristic on the basis of which we can define the ubiquity of any software and also suggest suitable metrics for any software project to be a part of ubiquitous environment. I have taken live software ‘XapperD’ as an example to describe this. With this, I just want to focus my mind on quality of the system, for which I am going to suggest new quality metrics, so that we can improve the ubiquity of that system. The outcome of this research is a new framework characteristic to evaluate the ubiquity of any software and set of metrics to test whether the software is capable to fit in ubiquitous computing environment or not.
1.3 NEED OF RESEARCH
Ubiquitous computing is one of the emerging technologies from the research purpose, which, in coming few years, will change the current vision of how human and computers interact with each other. It is the technique where wide range of technologies are brought together to form one. Of all these technologies, software engineering plays a major role. It takes all past experiences to build any software and add it to future ideas to form such reliable products. From the literature survey, I came to know that even after more than two decades of existence, there is no general level framework that can be adopted by all ubiquitous computing applications. The major reason behind this is lack of appropriate software engineering approach. For this, I need to identify the potential software engineering challenges in the ubiquitous computing era. It is only after all the challenges have been identified, we can propose a general level framework for all the ubiquitous computing applications. This framework will help us to evaluate ubiquity of any software and shift them to the ubiquitous computing environment.
1.4 OBJECTIVE AND SCOPE OF THESIS
This work helps me to concentrate on the study of ubiquitous computing and the upcoming ubiquitous projects which aims to shift computing in the background. From the research point of view, I came to know that due to the challenges faced by software engineering developers, there is no such architecture which could be applied to all the ubiquitous computing applications. Appropriate software engineering approach is identified as the major obstacle in proposing a common framework for ubiquitous computing applications. For this, we need to identify all software engineering challenges in ubiquitous computing applications. Only after all these challenges have been identified, a common framework could be proposed. The objective of this project is to do case study on the real live project XapperD. XapperD is ubiquitous computing software that revolutionizes the way the data gets captured. It helps business executives’ to capture customer information on-the-move, while he is face-to-face with customer and initiate its processing instantly at the back office. The steps followed to complete this research work were:
‘ I collected various framework models in practice for all existing ubiquitous software projects available worldwide.
‘ After this, I suggested the framework characteristics for Ubiquitous computing projects.
‘ Then, I selected software project named XapperD which is a part of ubiquitous computing framework.
‘ Finally, I evaluated XapperD using these framework characteristics and quantified all those characteristics to check ubiquity of the software.
I want to suggest new metrics like Service Omnipresence (SO), Invisibility (IN), Context Sensitivity (CS), Adaptable Behaviour (AB), Experience Capture (EC), Service Discovery (SD), Function Composition (FC), Spontaneous Interoperability (SI), Heterogeneity of Device (HD), Fault Tolerance (FT) and Privacy (PR) that helps to improve the ubiquity of any software so as to be a part of ubiquitous computing environment.
1.5 THESIS OUTLINE
This chapter describes the overview of ubiquitous computing and gives a brief introduction about my research problem and objective and scope of the research. The thesis is divided into different sections. Chapter 2 gives the survey of literature through which I came to know about the research and work done in this field and about the problem which is being faced by the developers of the software of ubiquitous computing environment. Chapter 3 gives a brief introduction about the latest trend in software engineering, that is, ubiquitous computing and difference between ubiquitous computing and pervasive computing. Chapter 4 describes various system models of ubiquitous computing. Chapter 5 gives information about the latest ongoing ubiquitous computing projects in India. These projects have been initiated by Department of Electronics and Information Technology and Centre for Development of Advanced Computing. Chapter 6 describes various software quality metrics and a framework for conceptual modelling quality. Chapter 7 covers my implementation part. Finally, the last chapter gives the
Chapter 2
LITERATURE REVIEW
[1] ‘Software Engineering Challenges for Ubiquitous Computing in Various Applications’, Muhammad Usman Ashraf, Naveed Ahmed Khan, 2013 11th International Conference on Frontiers of Information Technology.
To accomplish Weiser’s vision of Ubiquitous computing, it requires a deep involvement of multiple areas including software engineering. It plays a major role in ubiquitous computing world. But, lack of appropriate software engineering approaches is identified as a major obstacle in proposing a general level framework that should be adopted for all kinds of ubiquitous computing applications. This paper identifies the software engineering challenges which still stand as hurdles in software development process for Ubiquitous computing applications.
[2] ‘Architectural Elements of Ubiquitous Systems: A Systematic Review’, Carlos Machado, Eduardo Silva, Thais Batista, Jair Leite, Elisa Yumi Nakagawa, 2013: The Eighth International Conference on Software Engineering Advances.
Designing and implementing ubiquitous systems are hard tasks as several areas of computing such as software engineering, artificial intelligence and distributed systems are involved. The task gets even harder as there is no common architecture that can be used to guide the development of such systems. The essential elements of ubiquitous systems have been identified, analyzed and summarized in this paper. Also these elements have been mapped with main characteristics of ubiquitous systems. The mapping is essential to identify that the identified elements meet essential characteristics of ubiquitous systems.
[3] ‘Ubiquitous Computing for Teenagers: A new Perspective on Child-Computer Interaction’, Amandeep Dhir, Mohammed Al-kahtani, 2013 IEEE.
Designing ubiquitous computing technology for teenagers is a young field with limited number of study reported so far. Even though teenage users possess sufficient skills and the capabilities required to establish themselves as the testing ground for the latest technologies, they remain understudied. In the last few years, there has been a growing trend where teenagers are recognized as early adopters in Ubiquitous Computing adoption. This paper discusses ethical issues associated with the process of approval needed for involving teenagers in the research and practiced protocol for ensuring various international ethical standards and norms during the field studies in India. It also presents crucial challenges concerning privacy in teen design, lack of knowledge about internet safety policies, social implications of technology use by teenagers and missing psychological and sociological foundations of designing for teenagers.
[4] ‘SCOUT: Social Context-Aware Ubiquitous System’, Dania Abed Rabbou, Abderrahmen Mtibaa, Khaled A. Harras, 2012 IEEE.
Rapid increase in social network and high-end mobile devices has created a ground for the development of novel context-aware systems and applications. Such applications introduce numerous challenges to the research community. Many of these have been identified, studied and addressed with a true systems approach. This paper introduced and implemented a generic social-based context- aware ubiquitous system ‘SCOUT’. They implemented a prototype application that utilized the SCOUT architecture. This prototype application has been used to evaluate SCOUT in terms of some characteristics like reliability, responsiveness, and robustness.
[5] ‘Pingu: A new miniature wearable device for ubiquitous computing environments’, Hamed Ketabdar, Mehran Roshandel, Peyman Moghadam, 2012 Sixth International Conference on Complex, Intelligent, and Software Intensive Systems.
Ubiquitous computing is all about human and machine interaction. In this paper, authors introduced a new device; Around Device Interaction (ADI) called as ‘PINGU’. It looks like a finger-ring and allows user to interact with any other nearby device and humans by using wireless communication in ubiquitous computing environment. It consists of sensors that help to interact human and computers and vice-versa in the form of movements and touch. The paper gives some of the relevant examples in which one can use the devices to operate any social sites, interact with smart devices and also use the built-in car features by performing gestures with finger. The device can also interact with smart devices based on user’s contextual information.
[6] ‘Managing Adaptation in Ubicomp’, Jo??ao Lopes, Rodrigo Souza, Cl??audio Geyer, Cristiano Costa, Jorge Barbosa, 2012 IEEE.
In this paper, the authors proposed new middleware software architecture EXEHDA. The main concept of the proposed design was that context awareness is expressed in an adaptive behaviour. The model supports both functional and non-functional adaptations, management of which is proactive. It manages and implements the follow-me semantics for ubiquitous applications. As the middleware was under modelling and implementation, the authors used a case study strategy to evaluate the middleware services that were already developed.
[7] ‘Security Paradigm in Ubiquitous Computing’, Antonio Colella, Clara Colombini, 2012 Sixth International Conference on Innovative Mobile and Internet Services in Ubiquitous Computing.
In the era of ubiquitous computing, where information is available anywhere and everywhere, the CIA (Confidentiality, Integrity and Availability) paradigm no longer provides the desired security. The development of the Society has always a direct impact on the de’nition of the security paradigms. This is the ‘rst paper that deal with the security paradigm in Ubiquitous Computing. The authors have presented a new perspective on the validity of current security models compared to the evolution of technology. To ensure security in ubiquitous computing environment, it requires the correct integration and harmonization of the human factor with all remaining factors of a security system.
[8] ‘Managing the Upcoming Ubiquitous Computing’, Denis Carvin, Philippe Owezarski, Pascal Berthou, 2012 8th International Conference on Network and Service Management.
Internet of Things (IoT) is the future of Internet. The technology fragmentation acts as a barrier in rapid growth of IoT. Intersecting three domains of research that are- Ubiquitous Computing, Cognitive Radio and Systems Monitoring and Management, the authors introduced Ubiquitous Cognitive System Management (UCSM) to enable and control a rapid growth of IoT. UCSM makes the environment chatty, leveraging contextual information to manage the IoT. After exposing the main problems, the authors introduced the starting point of their research, which was, to adapt existing air interface protocol standards for HF RFID.
[9] ‘Measuring the accessibility of public places using ubiquitous computing’, Donald Rodrfguez-Ubeda, Ricardo Rosales, Manuel Castanon-Puga, Dora-Luz Flores, Luis-Enrique Palafox, Carelia Gaxiola-Pacheco, International Conference on Information Society 2012.
Behaviour of people with disabilities needs to be analysed. It is believed that disabled people can be supported through ubiquitous environment, but, behaviour of users in the system is complex. This behaviour need to be understood to propose new designs that improve the social environment and user support. Through ubiquitous computing, we can get closer to observe and measure the usefulness of the existing facilities and get relevant information about how they affect the movement of people. This paper propose the use of ubiquitous computing as a tool that facilitates the accessibility evaluation of public places and tracking people with visual impairments when they are moving in public places.
[10] ‘Towards Service Oriented Architecture (SOA) for Massive Multiplayer Online Games (MMOG)’, Farrukh Arslan, 2012 14th International Conference on Modeling and Simulation.
Massive Multiplayer Oriented Architecture enables hundreds of players to interact in a game world at the same time. Prevailing architecture used for MMOGs are based on tightly coupled distributed system. As MMOGs are getting more interactive and number of interacting users is increasing, classic implementation architecture raises interdependence and scalability issues. This requires a service oriented architecture to support evolution in MMOG application. This paper proposed a service oriented architecture for massive multiplayer online game and a specific middleware in MMOG for fulfilling real time constraints.
[11] ‘The definition and characteristics of ubiquitous learning: A discussion’, Saadiah Yahya, Erny Arniza Ahmad and Kamarularifin Abd Jalil, International Journal of Education and Development using Information and Communication Technology (IJEDICT), 2010, Vol. 6, Issue 1, pp. 117-127.
The advancement of computing and communication technologies have promoted the learning paradigms from conventional learning to e-learning then to m-learning and now it is evolving to u-learning. U- Learning also known as ubiquitous learning is based on ubiquitous computing. It aims to construct a ubiquitous learning environment, so that anyone can learn at anyplace at anytime. Based on the existing definitions and characteristics, the authors have proposed their own u-learning definition and characteristics.
[12] ‘Agile Approach to Manage Projects in Ubiquitous Mulit-project Environment’, Jihyun Lee, Sung Jin Hur, 2010 IEEE.
Diverse agile methodologies have been researched to boost practices for managing projects in software engineering, including frequent adaptation, rapid delivery, and team’s collaboration. An integrated agile method is the way to maximize effectiveness of managing projects which are conducted in collaborative ubiquitous environment. According to the agile principles, team members can have more cooperation and discussion of their work status and plan frequent delivery of executable programs. Based on these activities, project progress and project team members are managed for specific project goals. These activities are more valuable in ubiquitous multi-project environment.
[13] ‘Improved Resource allocation Algorithms for Practical Image Encoding in a Ubiquitous Computing Environment’, Long Zheng, Kaoru Ota, Song Guo , Mianxiong Dong, JOURNAL OF COMPUTERS, VOL. 4, NO. 9, SEPTEMBER 2009.
In this paper, the authors implemented a prototype for the JPEG encoding application. The authors studied resource allocation policies that can improve the overall performance of the system and considering the static and dynamic resource allocation approaches proposed four different allocation algorithms.
[14] ‘Optimization of face recognition Algorithms for Ubiquitous Computing Environment’ Kanghun Jeong, DONGIL Han, Yongguk Kim, Hyeonjoon Moon, 2008 Second International Conference on future Generation Communication and Networking.
The authors explored face recognition technology for embedded system and proposed an algorithm for face recognition in ubiquitous computing environment. To achieve efficient algorithm, the basic requirements were appropriate data format and ratio of feature data. The essential part of the proposed system includes integer representation from floating point calculation and optimization for memory management.
[15] ‘Checklist to Characterize Ubiquitous Software Projects’, Rodrigo O. Sp??nola, Jobson Massollar, Guilherme H. Travassos, SBES 2007 XXI Simp??sio Brasileiro de Engenharia de Software.
This paper has listed ubiquitous computing characteristics and proposed a checklist for characterizing software projects regarding ubiquity. The authors did a systematic review to understand ubiquitous computing, its main characteristics and its factors. They identified 10 characteristics (with 123 functional and 45 restrictive factors) and organized them into a checklist to characterize ubiquitous software projects. Eight ubiquitous software projects were used to evaluate the check list and none of them could be characterized as 100% ubiquitous.
[16] ‘Olympus: A High Level Programming Model for Pervasive Computing Environment’, Siva Chetan, Anand Rangnathan, Proceedings of the 3rd IEEE International Conference on Pervasive Computing and Communications, 2005.
Olympus is a high level programming language for Ubiquitous computing environments. Ubiquitous computing environments are highly dynamic ‘ the context and resources available in these environments can change rapidly. At the development time it is not clear which resources are to be used for performing various kinds of tasks and how to use them. This paper describes Olympus, its implementation and several example active space programs that have been developed using this model.
[17] ‘An Ontology-based Framework for Dynamic Resource Management in Ubiquitous Computing Environment’, Ippokratis Pandis, Alexender Paar, Michael Carras, Proceedings of the Second International Conference on Embeeded Software and Systems, 2005.
Ubiquitous computing applications are supported by middleware components enabling dynamic discovery of resources, invocation and management of resources as well as reasoning in case of uncertainty. This paper introduces a framework for implementing ubiquitous services for large number of sensors and perceptive interfaces; emphasizing the role of knowledge bases for dynamic registration and invocation and presents the use of ontology based mechanism for controlling sensors and actuators.
[18] ‘A New Middleware Architecture for Ubiquitous Computing Environment’, Seung Wok Han, Yeo Bong Yoon, and Hee Yong Youn, We-Duke Cho, Proceedings of the Second IEEE Workshop on Software Technologies for Future Embedded and Ubiquitous Systems, 2004.
In ubiquitous computing environment we have a variety of devices of different capabilities. In such environment, middleware plays a crucial role in efficiently coordinating the components and providing proper services. This paper proposes a new middleware architecture called HOMEROS. It allows high flexibility in the environment of heterogeneous devices and users by adopting a hybrid-network model and dynamically configurable reflective ORB. This architecture was designed to provide maximum facility in supporting service providers and user requirements.
[19] ‘Mobile Gaia: A Middleware for Ad-hoc Pervasive Computing’, Shiva Chetan, Jalal Al-Muhtadi, Roy Campbell, M. Dennis Mickunas, 2004 IEEE.
This paper introduced a middleware called Mobile Gaia for ad-hoc pervasive computing. It is a services-based middleware that integrates resources of various devices. Gaia manages several functions such as sharing resources among devices, forming and maintaining device collections. It enables seamless service interactions and also provides an application framework to develop applications for the device collection. The framework decomposes the application into smaller components that can run on different devices in this collection.
[20] ‘Towards a Framework for Evaluating Ubiquitous Computing Applications’, Jean Scholtz and Sunny Consolvo, Published by the IEEE CS and IEEE ComSoc, 2004.
Although ubiquitous computing applications are evaluated routinely, researchers have difficulty in comparing results rigorously and quantitatively. This is because of lack of widely accepted framework. Key issues of system design, integration and usability evaluation remain rich ubiquitous computing research areas. This paper presents a framework for evaluating ubiquitous applications which offers a systematic way of looking at key usability and acceptance issues.
[21] ‘SenSay: A Context-Aware Mobile Phone’, Daniel Siewiorek, Asim Smailagic, Proceedings of the 7th IEEE International Symposium on Wearable Computers, 2003, pg 248-252.
SenSay is a context aware device that adapts to the dynamically changing environment and helps in manipulating phone mode and alerts. In addition to manipulating ringer volume, phone alerts and vibration, it provides remote callers with the ability to communicate the urgency of their calls, make call suggestions to the users when they are idle and provides the caller with feedback on the current status of SenSay user. It provides remote callers with the ability to communicate the urgency of their calls, makes call suggestions and also provides feedback to the users with the help of sensors.
[22] ‘Software Testing for Mobile and Ubiquitous Computing’, Ichiro Satoh, Proceedings of the Sixth International Symposium on Autonomous Decentralized Systems, 2003.
This paper describes a framework used to build and test software for ubiquitous and mobile computing. The framework can simulate the mobility and reconnection of mobile or ubiquitous devices by using the logical mobility of mobile agent-based emulators. In other words we can say that it can test software designed to run on a mobile or ubiquitous device in the same way as if the software were disconnected from the network, moved with the device on some another network and reconnected and executed there.
[23] ‘Smart Identification Framework for Ubiquitous Computing Applications’, K. Romer, T. Schoch, F. Mattern, T. Dubendorfer, Wireless Networks Conference, 2003, Pages 689-693.
In this paper, the authors described the technologies used for implementation of ubiquitous computing applications using smart identification technologies and an overview of some applications they have developed. Based on the experiences from the development of these systems, they pointed out design concepts useful for structuring and implementing such applications. They developed two frameworks based on Jini and Web Services to support the development of ubiquitous computing applications that make use of smart identification technologies.
[24] ‘Smart Device Collaboration for Ubiquitous Computing Environment’, Naohiko Kohtake, Kenta Matsumiya, Kazunori Takashio, In Proceedings of the Workshop on Multi-Device Interface for Ubiquitous Peripheral Interaction at the 5th International Conference on Ubiquitous Computing, 2003.
In this paper, the authors proposed smart device collaboration for ubiquitous computing. It aims to realize that each embedded computer compliments the lack of capability of a portable device in the ubiquitous computing environment. The proposed smart device collaboration allows users to have appropriate interactions with embedded computers without explicit attentions to existences of these computers and interfaces to them. The paper describes two experimental devices, InfoPoint and Smart Furniture, for demonstrating smart device collaboration.
[25] ‘Gaia: A Middleware Platform for Active Spaces’, Manuel Roman, Christopher Hess, Anand Ranganathan, ACM SIGMOBILE Mobile Computing and Communications Review Volume 6, Issue 4, October 2002, Pages 65-67
User oriented interactive environments may require a novel infrastructure to operate their resources and assist in the development and execution of applications. This paper describes an experimental middleware Gaia that is used to prototype the resource management and provides the user-oriented interfaces for ubiquitous spaces with network enabled computing resources. The authors focused on physical spaces used for teaching, class rooms, offices and lecture rooms to limit the scope of their research.
[26] ‘Building Applications for Ubiquitous Computing Environments’, Manuel Roman, Christopher Hess, Roy Campbell, First International Conference, Pervasive 2002 Zurich, Switzerland, August 26’28, 2002 Proceedings, Volume 2414, 2002, pg 16-29.
The ubiquitous computing environment is augmented with heterogeneous devices, choice of input and output devices, mobile users and contextual information. The design of system and applications needs to accommodate this new operating environment. The authors in this paper present an approach for developing applications that are portable across ubiquitous computing environment and describe how to use contextual information to store and organize application data and user preferences.
[27] ‘The Interactive Workspaces Project: Experiences with Ubiquitous Computing Rooms’, Brad Johanson, Armando Fox, Terry Winograd, Pervasive Computing Magazine Special Issue on Systems, Version #2, 2002.
The paper gives details about the iRoom, i.e. Interactive Room, which is the second generation prototype interactive workspace. The Interactive Workspaces project was started at Stanford University in mid-1999 as an extension of a project to investigate interaction with large high resolution displays. Initially it was set up in a busy laboratory where the device proved to be no more than a curiosity, as it could not be practically used for long periods of time and offered little integration with other devices. In this paper, the authors have described about the project goals and their contribution in development.
[28] ‘System Software for Ubiquitous Computing’, T. Kindberg, A. Fox, Pervasive Computing, IEEE, Volume 1, Issue 1, 2002, pg 71-80.
After almost 30 years of research in Distributed Computing System, nearly 20 years of experience of Mobile Computing and with today’s development in wireless communication, we are at a position to realize Weiser’s vision of ubiquitous computing. Ubiquitous computing software must deliver functionality in our everyday world on failure prone hardware with limited resources. In this paper, the authors have identified two key characteristic of ubiquitous systems, physical integration and spontaneous interoperation.
[29] ‘Pervasive Computing: Vision and Challenges’, M. Satyanarayanam, IEEE Personal Communications, 2001.
In this paper, the authors discussed the challenges in computer system research posed by the emerging field of pervasive computing. They first examined its relationship with its predecessors, that are, distributed systems and mobile computing. Then they identified four new research thrusts: effective use of smart spaces, localized scalability masking uneven conditioning and invisibility. They also gave example of some hypothetical pervasive computing scenarios to identify the key capabilities missing from today’s system.
[30] ‘The Vision and Technical Foundation of Ubiquitous Computing’, Friedemann Mattern, UPGRADE Vol II, No.5, October 2001.
This paper illustrates the vision of Mark Weiser, the visionary behind ubiquitous computing, and describes it technical foundation and current trends.
[31] ‘Software Metrics: Roadmap’, Norman E Fenton, Martin Niel, ICSE 2000, Proceedings of the Conference on The Future of Software Engineering, Pages 357-366.
Software metrics do not provide information to support quantitative managerial decision making during the software lifecycle. Support for decision-making implies support for risk assessment and reduction. The recommended approach is to handle the key factors largely missing from usual metrics approaches, namely: causality, uncertainty and combining different evidence.
Chapter 3
UBIQUITOUS COMPUTING AND PERVASIVE COMPUTING
3.1 UBIQUITOUS COMPUTING
The term Ubiquitous computing was coined by Mark Weiser in 1991. Then described as calm technology by Weiser; it is also called as pervasive computing now-a-days. Though often used interchangeably, these refer to different forms of computing. In a conference of Scientific American in 1991, he said ‘The most profound technologies are those that disappear. They weave themselves in to the fabric of everyday life until they are indistinguishable from it.’ His vision was to create environment saturated with computing and communicating capability, and integrated with human users. The computer as a dedicated device should disappear making its information processing capabilities available throughout our surroundings. They should be embedded into the environment in such way that their use becomes natural and transparent. Weiser’s vision was too far ahead of its time. The hardware and software technologies required to achieve it did not existed at that time. After two decades of hardware progress, many critical elements of ubiquitous computing that were alien in 1991 are now viable commercial products.
In terms of technology, the term ubiquitous implies that technology is everywhere and we use it all the time. It is used to describe ICT (Information and Communication Technology) systems that enable information and tasks to be made available everywhere and to support intuitive human usage, appearing invisible to the user. These technologies have been integrated in our lives so well that we tend to use them without thinking about the tool. It is an emerging field that includes:
‘ Technology that bridge the physical and digital world;
‘ Systems and applications that incorporate such technologies;
‘ Infrastructure that support these technologies.
It is the prospect of connecting all the things in the world to internet in order to provide information on anything, anytime and anywhere. It relies on the convergence of wireless communication technology, computer network, signal processing, optimization, artificial intelligence and advancement in electronics and the internet. Continuous advancement in technology will soon lead to abundance of very small and very cheap microprocessors which are equipped with sensors and have wireless communication capabilities. Processing of information will then become ubiquitous and permeate almost every type of object. In ubiquitous computing environment, the design of systems and applications needs to take care of different devices, mobile users and continuously changing contexts of both the users and the system. The agents can acquire contextual information easily using middleware, reason about it using different logics and then adapt themselves to changing contexts.
3.2 UBIQUITOUS COMPUTING V/S PERVASIVE COMPUTING
Ubiquitous means ‘the state of being everywhere’. Ubiquitous computing is considered as the embedded systems and networks which are invisible and everywhere and allows people to ‘plug-and-play’ devices and tools. Such systems are so well embedded in our lives that we tend to use them without thinking.
Pervasive means ‘to be diffused throughout’. Pervasive computing is all the physical part of our life. It thus refers to the distributed set of tools within our environment, which we can use anytime, anywhere to access information.
Currently we are at a more advanced stage in pervasive computing than ubiquitous computing. There are an increasing number of pervasive devices available to the person on the street such as mobile phones with web, GPS and texting capabilities, PDAs and other hand-held devices. In future, focus is on the use of tangible and haptic interfaces. Such interfaces aim to move to more gestural and direct sensing interfaces away from keyboard and button pressing.
We can say that ubiquitous computing is the attempt to reduce the need to have an overabundance of physical pervasive devices. Rather, its ‘grand vision’ is to have intelligence built into the things we already use – bikes, cars, toys, fridges and so forth. We can see some evidence of this within everyday contexts – cars with inbuilt navigation systems, fridges that tell us when our food has defrosted or we are out of milk.
Therefore, we can say that ubiquitous and pervasive computing are two sides of the same coin where ubiquitous computing requires information everywhere, pervasive computing make information available everywhere.
Figure 1: Ubiquitous v/s Pervasive computing
3.3 THE LATEST TREND: UBIQUITOUS COMPUTING
Ubiquitous computing is the third era of modern computing. The first era was defined by the mainframe computer, where a single large time-shared computer was owned by an organization and used by many people at the same time. Second, was the era of the PC, where a personal computer was primarily owned, used and was dedicated to one person. The third era, representative of the present time, ubiquitous computing, is characterized by the explosion of small networked portable computer products in the form of smart phones, personal digital assistants (PDAs), and embedded computers built into many of the devices we own’resulting in a world in which each person owns and uses many computers.
Each era has resulted in progressively larger numbers of computers becoming integrated into everyday life. Although the general trends in computing are clear, the predictions, research, and philosophy behind the technology that make ubiquitous computing a reality have taken many forms.
Figure 2: Graph conceptually portraying three eras of modern computing
We can now say that ubiquitous computing would soon provide a typical environment where devices are seamlessly integrated into the environment and provide simple interfaces for human interaction to perform everyday life activities. The integrated devices would have the ability to interact with users to change environmental behaviour according to expressions and feelings rather than forcing the user to search interfaces to perform required operations. It has been identified by the researchers that in future, the world will be characterized by computing and sensing elements embedded invisibly in the environment. Thus we can say that almost anything and everything we could think of (homes, shops, hospitals, roads, table, chair, cloths, etc.) will have some amount of computing capabilities. The elements of ubiquity offer opportunities for new kind of software applications. It is not possible to introduce a stand-alone ubiquitous computing application or solution. The application must be able to integrate, interoperate and incorporate with the existing services and infrastructure in a seamless manner.
To make this a reality, enormous software challenges are being faced by the developers. The basic features of ubiquitous computing like context awareness, invisibility, mobility, privacy, security etc are major software engineering challenges in moving further towards ubiquitous computing based applications development.
In last two decades, many people have tried to develop ubiquitous computing applications in different fields using their own techniques and methods. Each such build application was implementable only in the environment for which it was build. These build applications had limited features due to unavailability of proper architecture which could be applied to all kinds of ubiquitous computing applications. Reason for unavailability of proper architecture is the number of challenges faced by software engineering developers. These challenges can effectively be observed on the development of methodologies, software processes, testing approaches, and quality assurance techniques. For this reason, it has become utmost important to identify all the features that should be present in a software to make that software fit in ubiquitous computing environment and features that could be present to enhance the system. After identifying the features, developers should work to resolve them so as to accomplish Weiser’s vision of creating ubiquitous computing environment.
There is a need of understanding the impact of the ubiquitous characteristic on different phases of the software project development. For instance:
‘ What (new) software engineering techniques are necessary to deal with the ubiquity characteristic of software?
‘ Do existing testing approaches able to ensure the quality of ubiquitous software projects? What could be the extensions/adaptations/new approaches needed?
‘ For ubiquitous software projects, what are the types of risks associated?
‘ For ubiquitous software projects, what quality characteristics should software engineers have in mind?
The challenges imposed by the requirements of this new software category drove researchers to think about the need of a complementary software engineering body of knowledge, amending the one that has started to be built to the planning of customary software projects. Otherwise, software engineers will have to rely on their own experiences and capacity to tailor their knowledge to be used as an ad-hoc development approach for ubiquitous software, which is not a good approach as observed for conventional software development.
Therefore, the process of acquiring information to reduce the risks concerned with the development of ubiquitous software projects begins with the identification of the impact of ubiquitous characteristic on software projects. This way, it would be relevant to characterize the level of adherence of a software project according to a classification criteria supported by ubiquitous features. Based on this context, an essential initiative could be to look for some way that allows characterizing a software project as ubiquitous, based on its characteristics. This is necessary, since all the software projects should be classified according to the same perspective and the term ubiquitous has been used in a broad and, sometimes, ambiguous way. Besides that, although ubiquitous computing has been investigated into different contexts, to our knowledge there has been no centralized research effort in properly defining the characteristics and factors of software and systems focused on ubiquity and how they could influence software processes.
CHAPTER 4
SYSTEM MODELS
This chapter covers some of the system models of ubiquitous computing.
4.1 SENSAY: A CONTEXT-AWARE MOBILE PHONE
SenSay(sensing & saying) is a context aware mobile phone that adapts to the dynamically changing environment. It modifies its behaviour based on its user’s state and surroundings. It gives the ability to communicate the urgency of their calls to the remote callers, suggests user to make calls when they are idle and gives the feedback on the current status of the SenSay user to the caller. SenSay introduces 4 states: uninterruptible, idle, active and the default state the normal state (fig 1). The architecture consists of 5 functional modules: Sensor box, sensor module, decision module (core), action module and phone module.
4.1.1 Sensor Box
It consists of a printed circuit board (PCB) which consists of two subsystems: the sensors and the microcontroller. The microcontroller provides eight 10-bit analog-to-digital conversion channels as the interface to the sensors and a port for serial communication to interface with the sensor module. The various sensors integrated in the sensor box are the voice and the ambient microphones which can be mounted on various parts of the body; three accelerometers to capture three(x, y, z) degrees of motion which are mounted directly on the PCB; and the light sensor mounted on the phone. Each sensor in the sensor box has a unique ID. The sensor box polls its sensors periodically as quick as it can and stores the most current value in an array.
4.1.2 Sensor Module
The sensor module queries the sensor box (once per second) and returns the data to the decision module. Standard RS232 serial connection issued to establish the connection between the microcontroller and the sensor module. At any time, the sensor module will query the sensor box for a particular sensor data using the unique ID of that sensor. When a query is processed, the microprocessor will respond with the most recent reading of the sensor by doing a table lookup rather than actually polling the sensor. This allows the microcontroller to respond immediately.
4.1.3 Decision Module
The decision logic provides the logic used in state management. The sensor module transfers the sensor data to the decision module. It queries the sensor data and the electronic calendar of the user to determine the state of the user and issues phone actions. Sensor value history (of up to 10 minutes) is stored to help determine the user’s state so that the transitions can be done smoothly.
4.1.4 Action Module
This module is controlled by the decision module and is responsible for issuing changes in setting and operation on the phone. The basic operations supported by the module are:
1. Ringer control: off/low/medium/high
2. Vibrate control: on/off
3. Send an SMS to the caller
4. Make call suggestions
5. Provide access to the electronic calendar.
4.1.5 Problem
With distributed systems and mobile computing, privacy is a major concern and it becomes complicated by ubiquitous computing. With context aware devices, the information about user’s movements, behaviour patterns and habits becomes more knowledgeable with mechanisms like location tracking, smart spaces and use of surrogates. The knowledge of this information is necessary for successful proactivity and self-tuning but, the use of this information should be strictly controlled. If not, it can be put to a variety of unsavoury uses ranging from targeted spam to blackmail. This may prevent knowledgeable users from using a pervasive computing system. To be reliable on infrastructure, the user must trust the infrastructure to a considerable extend. Also the infrastructure should be confident of the user’s identity and authorization level before responding to the request.
Figure 3: SenSay architecture depicting 5 modules
4.2 HOMEROS
To support the computational needs of mobile users we need to maximize the use of available resources and minimize user distraction which is caused by dynamic and frequent changes in the resources. The middleware architecture HOMEROS satisfies these needs. It allows high flexibility in the environment of heterogeneous devices and users. It consists of three layers- the core component management layer, the extended component service layer, and the system support layer. This architecture was designed to provide maximum flexibility in supporting service providers and user requirements
4.2.1 Core Component Management
This module consists of core ORB components and interrelated set of basic services which allows collaboration of service component development vendors. It allows dynamic loading, unloading, transferring, creating, and destroying the components in the upper layers.
HOMEROS offers seven basic services: Event Manager, Component Repository, QoS-Adaptation, Configuration Manager, Resource Manager, and Security manager. All of the services could be built on top of existing middleware services to support HOMEROS service architecture.
4.2.2 Event Manager
The event manager distributes events and implements a decoupled communication model based on suppliers and consumers for enhanced reliability and stability. It has a single entry point and one or more event factories. Applications can define and register their own factories for state changes. If a supplier fails, the service can automatically replace all the corresponding information entries from the factory and scheduling queue without disrupting the system. The current event manager implementation uses CORBA’s event service.
4.2.3 Component Repository
The component repository stores information (name, type, services, and so on) about all the components available in the middleware and allows applications and component manager browse and retrieve entities on the basis of specific attributes. The current component repository uses standard SQL for query component entities.
4.2.4 Context Manager
Mobile agent collects overall user information and hardware, software information for resource management, and the context manager provides proactive services using that information. It prepares personal data, user preferences, device characteristics, and organized data automatically available to other components.
4.2.5 QoS Adaptation
This module supports resource manager and configuration manager. It collects various devices monitoring information from resource manager, and then provides QoS information to the configuration manager.
4.2.6 Configuration Manager
The configuration manager configures the new components and improves the component performance by optimizing system resource usages. It supports mobile agent for collecting environment information and running specific processes.
Figure 4: The HOMEROS Architecture
4.2.7 Resource Manager
Resource manager allows dynamic reallocation of resources based on resource awareness. The middleware platform allows the system to be aware of the available configuration resources. It performs both self-inspection and self-adaption.
4.2.8 Security Manager
HOMEROS proposes platform registration and authentication, and stability evaluation of authentication. Registration can be done without user’s intervention, and platform authentication is to certify that relevant platform is reliable. Registered agents take part in the authentication process for other unregistered agents and platform.
4.3 DYNAMIC DISCOVERY AND INVOCATION MECHANISM
Ubiquitous computing environment involves a variety of devices of different capabilities. The middleware takes a crucial role for efficiently coordinating the components and providing proper services. In the previous section we have read about a middleware architecture called HOMEROS.
All the service providing components in an environment registers them with the system, providing information about the services they provide. Service proxy agent represents the service of the components in the world of agents. All the services that provide the same functionality are wrapped by a service proxy. The service proxy is also registered with the system.
Figure 5: Dynamic discovery and invocation mechanism
Figure 3 illustrates the mechanism for dynamic discovery and invocation of services.
All the providers of a specific service and the proxy of that service register to the system (step A and step B). The smart room agent (SRA) which acts as a gateway for all the services receives the service invocation request from the client (step 1). The SRA then searches the registry for a proxy for such a service (step 2) and forwards the request to it (step 3). The service proxy on receiving a request checks the registry for available service providers (step 4). The proxy then activates a selection algorithm to decide to which provider to forward the request (step 5).
4.4 MOBILE GAIA
Mobile Gaia is the middleware for ad-hoc pervasive computing. It is a service based middleware that integrates resources of various devices. Ad-hoc pervasive computing is a cluster of personal devices that can communicate and share resources among each other. The user can program the cluster through a common interface. This cluster is also referred as a personal active space. Mobile Gaia contains services which help in discovery of devices that form the personal space, maintaining the composition of the cluster, sharing resources among devices in the cluster and facilitate communication. It provides an application framework for development of applications for the device collection. This decomposes the application into smaller components that can run on different devices in this collection. The services are present in two roles-coordinator and client.
The core services make up the kernel of Mobile Gaia and enable the devices in the cluster to share resources and data seamlessly. The component management core provides necessary low level support for creating and managing components.
4.4.1 Service Deployment Framework
Services in Mobile Gaia are implemented as components and this framework forms a container for these service components. It installs new service components, load and unload components and remove components when they are no longer needed. It is based on the ‘What You Need Is What You Get’ (WYNIWYG) model. When a service is deployed, it specifies the components that are to be loaded in the coordinator and client roles. Whenever a device changes roles from coordinator to client or vice versa, the cluster management service notifies the service deployment framework of this change.
4.4.2 Discovery and Cluster Management Service
Mobile Gaia has the ability to dynamically discover nearby personal devices and bootstrap a personal active space on the discovered devices. Discovery protocols like Bluetooth or IrDA are used. When new personal devices are within range, they are added to the personal active space on the fly.
Figure 6: Mobile Gaia Architecture
Depending on the capabilities of the new device, the framework loads appropriate components and runs additional services that allow the system to utilize the device’s capabilities. Once a device is out of range, it is automatically removed from the personal active space. It also maintains a database of active devices and services in the personal active space and a list of components running locally on the device.
4.4.3 Event Service
The event service is used to send events among devices in the cluster. These events include updates to location information; heartbeat messages events, it informing that the device is part of the cluster and location-based events. Events are implemented using event channels. When an application wants to send creates an event channel in the host device. The event service of the host device registers the event channel with the coordinator. The event service in the coordinator maintains a list of event channels in the cluster. When an application wants to subscribe to an event channel, it queries the local event service which in turn queries the event service of the coordinator for event channels. The event service of the coordinator acts like a repository that contains information about various event channels in the cluster.
4.4.4 Location Service
The location service enables location awareness in the device cluster. Different devices in the cluster have different location-sensing technologies such as GPS, WiFi, RFID, Ubisense etc. It fuses location information from different devices and arrives at a probabilistic estimate of the location information. This location information is conveyed to all devices in the cluster. This cooperative approach of sharing location information enables devices to be location-aware in heterogeneous location-sensing environments. It supports a spatial database that contains a spatial model of the physical world. Spatial information is required for route planning, finding points-of interest and for location-based triggers.
4.4.5 Security Service
Security which is essential in personal active spaces can be divided into two main parts ‘authentication and access control. Authentication is needed to ensure that only authorized devices are allowed to connect to a user’s personal active space, and a device can only connect to personal spaces approved by its owner. Access control identifies what information or resources a device can share with a specific space name. Authentication is done using public key. For access control, users are allowed to create simple security policies on the personal device, which specify what services may run on the device when connected to a certain space.
Table 1: Summary table.
Functionality Components Security Future Scope
SenSay It is a context-aware mobile phone that adapts dynamically to the user’s environment and modifies its behavior. Sensor Box, Sensor Module, Decision Module, Action Module and Phone Module. If not controlled, information about user’s movements and behavior can be put to a variety of unsavory uses. Mechanisms that provide complete security to users’ information should be deployed.
HOMEROS It is a middleware which is designed to maximize the use of available resources and minimize user distraction caused by dynamic and frequent changes in the resources for mobile users. Three Layers-
Core Component Layer, Extended Component Service Layer, System Support Layer. It provides security through platform registration and authentication. The proposed architecture needs to be compared with other middleware architectures proposed for PDAs and mobile devices.
Discovery and Invocation Mechanism It is used to discover the devices in a smart space and register them with the system which provides information about their services. Service providing components, Service proxy agents and Knowledge base server.
—
—
Mobile Gaia It is the middleware for ad-hoc pervasive computing that integrates the resources of various devices. Service Development Framework, Discovery and Cluster Management, Event, Location, Context and Security Service. Security is provided by authentication and access control. Future work will be address challenges posed by mobility of nodes at application/service layer.
Chapter 5
EXISTING UBIQUITOUS PROJECTS
This chapter gives brief information about the existing ubiquitous computing projects in India.
5.1 u-Agri
Ubiquitous Agriculture (u-Agri) is a step towards next generation precision farming. It is an initiative to apply Information and Communication Technology (ICT) to the Agricultural sector to automate weather data acquisition from fields thereby facilitating Decision Support Advisories.
The project aims to enhance existing methodologies of agriculture through the use of low cost sensor networks which permeate the farm environment and provide crop specific macro and micro climate information. This information along with crop specific decision rules, aids the development of Decision Support Systems (DSS) which provide timely advisories to farmers through established communication networks like Internet, SMS, Radio etc. It also seeks to explore plenitude of applications in agriculture spanning important crops, providing optimal regulation of pesticide, fertilizer and irrigation.
The project is an initiative of the Department of Information Technology (DIT) and is being implemented by the Centre for Development of Advanced Computer (CDAC), Hyderabad with domain expertise of the Central Research institute of Dryland Agriculture (CRIDA), Hyderabad.
5.2 Generator for Time-Sensitive Network Analysis (GENESYS)
This project aims to develop high speed traffic generators for 40Gbps test requirements. Apart from this, it also aims at developing TCP/IP Offload Engine (TOE), MAC IP Core and high speed network transceivers. The motivation of the project is design and development of a platform to enable generation of high speed, low latency, realistic, and precise network traffic and interconnect interface for next generation gigabit transport networks.
The project has been jointly implemented by the Central Government and CDAC, Bangalore.
5.3 Linux Kernel Programming Plugin Suite (Link Plus) for Eclipse IDE
The project proposes to address the challenges faced by kernel developers through an Eclipse IDE plug-in suite for Linux Kernel Programming on X86 & ARM platforms featuring: Kernel Configuration & Compilation, Wizard for System Call implementation & testing, Templates for Module Programming & Driver Development, Supported Platforms: X86 & ARM, Support for native & cross platform GNU toolchains, Integration of QEMU simulator for executing, testing & debugging programs without target hardware, Integration of basic Root file system development for ARM platform using busybox.
The project is implemented by CDAC.
5.4 State of the Art Test Bed for Advanced Research in Multimedia over IP (STREAM over IP)
SOIP is aimed at developing a unique solution for middle and large establishments to provide a mobile communication environment which is highly flexible and scalable. It will provide a mechanism which will avoid dependency with existing mobile service providers and work as a standalone communication system. SOIP Communicator is a solution that enables effective communication across users by providing voice and video calls, instant messaging and File sharing services. It provides secured communication channel in a heterogeneous wireless and wired environment which provide services to share important and real time information promptly anytime anywhere.
The project is implemented by CDAC, Hyderabad.
5.5 Wireless Sensor Network Integrated Development Environment (WSNIDE)
The objectives of this adaptive framework are:
‘ For Development to Deployment flow of WSN applications and provide options for evaluating & incorporating different protocols (Routing, Localization, Time Synchronization and Security) from the application developer’s perspective.
‘ To facilitate faster & agile development of WSN applications
WSNIDE software facilitates rapid development of WSN Application and provides many features. The primary benefit of the software is flexibility of opting required system components, based on the application requirement, by abstracting the low level interfaces from the WSN application developer. These flexibilities are being provided as a plugin for the Netbeans IDE.
The project is implemented by CDAC.
5.6 MOTHER (Mobile based Maternal Health Awareness)
This project involves development of Mobile based Voice Alert System facilitating Maternal Health Awareness with the following features:
1. Online Registration and Monitoring of Maternal Health during Pregnancy
2. Personalized and Timely Voice Alerts for Pregnant Women in Local
3. Languages
4. Alerts for Child Care Immunization
The project is implemented by CDAC.
5.7 Smart Parking (SPARK)
Finding a place for parking is a major concern these days. SPARK aims to automate the existing parking systems to reduce the staff requirements for controlling the traffic. It will guide the driver to find a parking space efficiently and conveniently. Generating parking lot statics/reports will enhance parking administration by the administrator. Also the customers can reserve parking lot in future through online reservation or SMS reservation. This software will provide a long-term car parking solution for users & operators.
The project is implemented by CDAC.
5.8 Pollution Monitoring and Evaluation System
The objective of the project is development of a Wireless Sensor Network for pollution monitoring by identifying the primary source of emission, (detecting Benzene, Toluene, Xylene, CO & CO2) developing a mechanism for data filtering and aggregation, power management and finally commercialization of the product/ system.
The project has been initiated by IIM, Kolkata.
5.9 Wireless Sensor Network for real-Time Landslide Monitoring
This project aims at development of a Wireless Sensor Network for Real-Time Landslide Monitoring with pore water pressure, tilt meter and rain gauge sensors, along with a wireless sensor network for the deployment site. With this technology in operation, the risk of landslide will be assessed and remote command and control interface will be provided for different purposes.
The project is handled by Amrita University, Kerala.
5.10 Development of Multimodal User Interface
This project aims to providing support for Internet access to backward communities in India in their own languages like Hindi and Bengali and providing multimodal interaction facilities.
The project is handled by IIT, Kharagpur.
5.11 National Centre for Medium Range Weather Forecasting Centre (NCMRWF)
The project aims to port several weather forecasting models for Medium Range Weather Forecasting on PARAM Computers. Currently the system is under benchmarking and porting of forecasting software models will be continued for regular operational data.
The project is initiated by and is being implemented in CDAC, Pune.
Chapter 6
QUALITY METRICS AND CONCEPTUAL MODELLING
6.1 SOFTWARE METRICS
Software metrics are standard unit of measurement that are used for evaluating the software products. They are used to improve the quality and productivity of products and also provide a scope of improvement for current process. They can be classified into three categories: product metrics, process metrics and project metrics.
6.2 SOFTWARE QUALITY METRICS
Software quality metrics are a subset of software metrics that focus on the quality aspects of the product, process and project. In general, software quality metrics are more closely associated with process and product metrics than with project metrics. They can be divided into end-product quality metrics and in-process quality metrics. They are defined as the standard measurement with the help of which one can assess the performance, quality, efficiency, correctness, portability, maintainability, reliability and progress of any product. It helps us to measure that whether the process we are producing is a right product or not. We should view quality from the entire software life-cycle perspective and should include metrics that measure the quality level of the maintenance process as another category of software quality metrics.
6.3 CLASSIFICATION OF SOFTWARE QUALITY METRICS
Software quality metrics can be classified as:
6.3.1 Product Quality Metrics
These metrics describe the characteristics of the product such as size, complexity, design features, performance and quality level. By using these one can easily produce affordable and quality product.
6.3.2 Process Quality Metrics
These metrics can be used to improve the process of software development and maintenance. E.g.: testing, response time, defect arrival and effectiveness of product.
6.3.3 Software Maintenance Metrics
These metrics can be used for fixing the defects which arise when the product has been released in the market.
The metrics which fall under these three categories are described in the table below.
Table 2: Software Quality Metrics
S.No. Metrics Description
1 Mean Time to Failure Can be calculated as the average between the failures of the system during operations. It is one of the measure of the reliability of a system those are not repairable.
2 Defect Density Number of defects detected in the software during the period of development divided by the size of that software component. Period must be the duration or any phase of cycle and the size can be calculated with the help of LOC, SLOC and Function Point (FP).
3 Customer Reported Problems These are the problems which are encountered to the customer at the time of use of that product.
4 Customer Satisfaction Customer satisfaction is one of the main aspects that deal with the overall quality of the product. It is measured with the help of customer survey via 5 point scale.
5 Defect Density during Machine Testing Defect rate during formal machine testing is correlated with the defect rate in the field. A higher number is a bad indicator which indicates that the software has experienced higher error injection during its development process. This metric of defects per KLOC or FP is a good indicator of quality while software is being tested.
6 Defect Arrival Pattern during Machine Testing The pattern of defect arrivals gives more information about the defect. Even with the same overall defect rate during testing, different patterns of defect arrivals indicate different quality levels in the field.
7 Phase Based Defect Removal Pattern It is an extension of the defect density metric. In addition to testing, it requires the tracking of defects at all phases of the development cycle, including the design reviews, code inspections, and formal verifications before testing.
8 Defect Removal Effectiveness It can be calculated as (defects removed during the development phase)/(defects latent in the product)*100. A higher number is a good indicator which means fewer defects escape to next level.
9 Fix Backlog and Backlog Management Index Fix Backlog is the count of reported problem that remain at the end of each month or week. Backlog Management Index is (number of problems closed during the month)/(number of problems arrived during the month)*100.
10 Fix Response Time and Fix Responsiveness Fix Response Time is the mean time of all problems from open to closed.
11 Percent Delinquent Fixes It is a sensitive metric. If the turnaround time greatly exceeds the required response time, then it is classified as delinquent. It is calculated as (number of fixes that exceed the response time criteria by severity level)/(number of fixes delivered in a specified time)*100
12 Fix Quality Fix Quality or defective fixes is an important metric. It should be a straight count of the number of defective fixes. The quality goal for the maintenance is zero defective fixes without delinquency.
6.4 CONCEPTUAL MODELING
Over last few decades, the general focus of the software industry has shifted to provide more functionality to improve the users’ experience. The user experience refers to characteristics such as ease-of-use, security, stability and reliability. Improvements in such areas lead to an improved quality as perceived by the end users. There is no doubt that software quality is becoming an increasingly important subject in software engineering. Traditionally, software requirements have been classified as functional or non- functional with eventual notions of quality hidden in the latter. As the industry focus is shifting from functionality to improving quality, it has led to emergence of a new category of requirements. In order to define these new quality requirements, quality itself must be defined. A quality model provides the framework towards a definition of quality. Engineers have long recognised that in order for something to find its way in a product, it should be properly defined and specified.
Conceptual models provide a link between the user’s need and the software solution that meets them. They are no longer used only for databases. However, the quality of conceptual models is not well understood. The proposed quality framework and metrics have different objectives such as improving readability, predicting maintainability, evaluating simplicity, assuring completeness and so on. There does not seem to exist a comprehensive view on quality in conceptual modelling.
An additional problem in generalising the results of conceptual modelling quality is that the studies are performed on conceptual models for different kinds of application systems. For example, a UML class model could be used to model application programs, databases, datawarehouses, web applications, pervasive information systems, ubiquitous application systems and so on. Any effort to categorise research in conceptual modelling quality must therefore explicitly consider the application domain that is used within the research context.
6.5 DIMENSIONS IN CONCEPTUAL MODELLING QUALITY
There are different existing proposals that address the issue of conceptual modelling quality. These proposals can be organized into a number of interesting and useful dimensions. Seven different dimensions which can be used to classify quality in conceptual modelling are:
6.5.1 Types of Quality
Figure 7: Different types of conceptual modelling quality
Table 3: Different sets of conceptual modelling quality
S.No. Sets Description
1. Language Extension (L) Set of all statements that are possible to make according to the vocabulary and syntax of the modelling language used.
2. Modelling Domain (D) The set of all statements which can be stated about the situation in hand.
3. Modelling Externalization (M) Set of all statements as a part of the perceived reality written in a language.
4. Participant Knowledge (K) The relevant explicit knowledge of a member of the audience.
5. Audience interpretation (I) The set of all the statements which the audience thinks that an externalized model consist of.
Table 4: Quality types with description
S.No. Quality Types Description
1. Physical Quality How well the model corresponds to the knowledge use of language.
2. Semantic Quality How well the model corresponds to the domain. There are two semantic goals: validity and completeness.
3. Perceived Semantic Quality Correspondence between the audience interpretation of a model and their knowledge of the domain.
4. Pragmatic Quality How well the model corresponds to its audience interpretation.
5. Social Quality Agreement among participant interpretation.
6. Perceptual Quality How well the actors within the domain of interest understand that domain.
7. Descriptive Quality Ability of the modeller to elicit a description of that domain.
6.5.2 Object of Study
Quality research can focus on any (or all) of the three modelling elements:
1. Process of creating the model.
2. Modelling language that is used in the modelling process to produce the conceptual model.
3. Conceptual model itself.
6.5.3 Goal
Every researcher or organization pursuit has its own goal. In general, five different goals can be distinguished ‘ understanding, measuring, evaluating, assuring and improving conceptual modelling quality.
6.5.4 Quality Characteristic
Quality characteristics depend on the object of the study. Using conceptual modelling one can analyse the quality characteristics of the software processes, such as those defined in CMM, SPICE or CMMi models.
6.5.5 Context of Study
In order to characterise conceptual modelling quality issues, it is important to specify in what context quality proposals are made. Recently, new methodologies are proposed for developing other kind of software using conceptual models like web applications, pervasive information systems, ubiquitous application systems and so on.
6.5.6 Research Method
Literature analysis, concept implementation, mathematical proof, simulation, meta-analysis, action research, experiments, case studies or surveys can be used in conceptual modelling quality research.
6.5.7 Type of Proposal
Researches can be classified depending on the type of proposal proposed to deal with conceptual modelling quality. Proposals for dealing quality in conceptual models are: list of characteristics, frameworks, metrics, language, heuristics, tools, patterns, refactoring, schema transformation, reference models etc.
6.3 McCall’s QUALITY MODEL
McCall’s quality model is one of the most oldest and renown predecessor of today’s software quality models.
This quality model has three major perspectives for defining and identifying the quality of a software product: product revision (ability to undergo changes), product transition (adaptability to new environments) and product operations (its operation characteristics). Product revision includes flexibility, maintainability and testability. Product transition is all about portability, reusability and interoperability. Quality of product operations depends on correctness, reliability, efficiency, integrity and usability.
Figure 8: McCall’s quality model
The model furthermore details the three types of quality characteristics (major perspectives) in a hierarchy of factors, criteria and metrics:
‘ 11 Factors (To specify): They describe the external view of the software, as viewed by the users.
‘ 23 quality criteria (To build): They describe the internal view of the software, as seen by the developer.
‘ Metrics (To control): They are defined and used to provide a scale and method for measurement.
The quality factors describe different types of system behavioural characteristics and the quality criterions are attributes to one or more of the quality factors. The quality metric, in turn, aims to capture some of the aspects of a quality criterion. The idea behind McCall’s Quality Model is that the quality factors synthesized should provide a complete software quality picture. The actual quality metric is achieved by answering yes and no questions that then are put in relation to each other.
Figure 9: McCall’s quality model illustrated through a hierarchy of 11 quality factors and 23 quality criteria.
Chapter 7
CONTRIBUTION AND IMPLEMENTATION
CASE STUDY ON PROJEC.T ‘XAPPERD’
7.1 INTRODUCTION
The project XapperD has been implemented in banking and financial sectors in India and outside. In today’s world of ‘instant culture’, banking and finance companies can expand by taking a step towards next generation technology i.e., ubiquitous computing. In banking and finance industry, customer service is highly document intensive, processing of which takes multiple days. But, in the era of ubiquitous computing, where information can be accessed from anywhere and everywhere, such scenario does not really bode well. XapperD is ubiquitous software developed as a solution to provide mobility to banking and financial processes. With ubiquitous software, accessing and managing information becomes easy. This has created a new trend of ‘door-to-door service’ in banking and financial sector.
7.2 DESCRIPTION OF XAPPERD
XapperD is a multi-platform ubiquitous application that allows the business executive to capture physical application forms, PODs, receipts along with the key metadata and initiate the business process instantly. The primary challenge faced by field executives in delivering effective customer service is getting paper from the point of initiation to the point of processing centre. Typically the information gets captured on a physical application form. It then gets submitted to a branch from where it gets couriered to the processing centre and then finally it gets processed. Imp.roper filling, missing supporting documents and loss in transition add to the turn-arou.nd-time for the process. Capturing information at point of customer contact and initiating its processing in real time is a challenge both in terms of time and cost. This ubiquitous application bridges the gap between service delivery timelines and customer expectations. XapperD is used to capture documents and images at the point of customer contact and initiate its processing in real time at the back office. The tangible benefit of this ubiquitous application has already found instant applicability in Banking, Insurance, Telecom, Transportation and Logistics verticals.
XapperD directly runs on android or iOS mobile or tablet device. It has two components:
XapperD Mobile Application
It is used to capture forms/documents/images and it runs on any android or iOS device. Application form can be configured based on the requirement. Complete application form can also be designed in XapperD so that the user is able to enter complete form in the tablet itself. The form can be made intelligent with built-in checks and validations to increase first time right percentage.
XapperD Mobile Capture Server
The documents and images are sent to the XapperD mobile capture server after being captured through XapperD mobile application. It is a multi-tiered platform independent solution built using robust server-side Java and J2EE technologies. Advanced image processing is done at XapperD mobile capture server for creating process ready documents. It can be integrated with any back office systems like DMS, BPM, LOBs and Core Applications.
XapperD mobile capture server can either be in premise or cloud based.
Figure 10: XapperD Architecture
7.2.1 REQUIREMENTS TO RUN XAPPERD
Handset to run XapperD Mobile Application
‘ O/S: Android 2.2 and above; IOS 5 and 6.
‘ Configuration: Inbuilt Camera (Min 3.2 MP), Tablet/Mobile Device with auto focus enabled.
XapperD Mobile Capture Server
‘ O/S: Windows/Solaris.
‘ Database: Oracle 10G, MS SQL 2005/2008.
‘ Application Server: JBoss, Oracle 10G, IBM Web Sphere, BEA Web Logic.
‘ Minimum Configuration for appserver/database server: Single CPU Dual Core Processor.
‘ 4GB RAM Extendable, 250 GB HDD Space.
7.2.2 BENIFITS
‘ Reduced business process cycle time
‘ Better productivity
‘ Reduced cost
‘ Reduced exceptions
‘ Increased first time right percentage
‘ Secure data and documents transfer
7.2.3 KEY FEATURES
CAPTURE
‘ Captures high quality image application form and supporting documents
‘ Captures images with customers’ location through reverse Geo-coding
‘ Captures fingreprint and signature
IMAGE
‘ Creats highly compressed images for efficient network usage
‘ Better Image Quality
‘ Multipage document image creation
‘ Background auto crop
‘ Auto orientation correction
‘ Watermark
‘ Automatic signature cropping from application form
‘ Automatic photograph detection and cropping
‘ Document level configurable image capture settings (Image Type and Resolution)
OTHERS
‘ In-built validations for key form fields
‘ Integrates easily with third party applications
‘ User-Friendly Interface
‘ Data and Image Encryption
‘ Single/Bulk upload of the Application Forms
‘ Available on Android and IOS
‘ Access in no network coverage areas
The purpose of this application is not only to capture a document or a photo. The key to the application is advanced image processing that ensures high quality images and minimal size making it viable to be transferred over a GPRS/3G network and thus the application capture process ready documents and send it to any process initiation work step. The application is highly secured. The IMEI number of any device (tablet/mobile) is registered first before using the application. This is to prevent any unauthorized access of the application. The application displays IMEI registration message in the login screen. User name and password are created based on IMEI number. The user log in details cannot be used in a device if that device is not registered and associated with the same user log in details.
Figure 11: Data Flow Architecture for XapperD
7.3 Product Compatibility Metrics
Figure 12: Product Compatibility Metrics
7.4 XapperD Roadmap
The figures below gives a list of features which have been incorporated and the features which will be incorporated in future so as to make the software suitable for ubiquiotus computing environment.
Figure 13: XapperD Features
Figure 14: XapperD Features
Figure 15: XapperD Features
Figure 16: XapperD Features
Figure 17: XapperD Features
Figure 18: XapperD Features
Figure 19: XapperD Features
7.5 UBIQUITOUS COMPUTING CHARACTERISTICS
For any software to fit in ubiquitous environment, it must satisfy certain characteristics. In general there are 10 characteristics that must be present in any ubiquitous software. For software to be completely ubiquitous, all these must be fully implemented. However, we can also have ubiquitous software projects with different levels of adherence to the ubiquitous characteristics. These different levels of adherence can be a consequence of the application domain and project’s requirements. Also the different levels of adherence could be a consequence of the absence of some ubiquitous characteristic on the software project. This way, it is possible to have software project with different levels of ubiquity.
Considering each of the ubiquitous characteristic, we will now find the level of ubiquity present in XapperD. Following are the characteristics:
1. Service omnipresence (SO): It allow users to move around with the sensation of carrying computing services with them. A higher number is a good indicator.
XapperD is deployed on smart phones and tabs that fulfil some basic requirements. These are the objects of daily use and we no longer think them of as a computing device. They can be carried by us anywhere and everywhere.
Currently the software can be configured in any android or iOS based mobile or tablet or iPad. But the upcoming versions will also include support for Windows 8 and Blackberry mobiles.
Hence, we can quantify service omnipresence as:
Service omnipresence
= OS on which software is configured/OS on which software can be configured
= 5/9
= 0.56
Numerator = {android or iOS based mobile or tablet or iPad}
Denominator = {android or iOS based mobile or tablet or iPad, Windows 8, Blackberry mobiles}
Service omnipresence will be increased in future.
2. Invisibility (IN): Ability of computation service being present in objects of daily use, weakening the sensation of explicit use of a computer and enhancing the perception that objects or devices provide services or some kind of ‘intelligence’. A higher number is a good indicator.
We can find alternative solutions for traditional graphical interfaces used on desktop in favour of more natural ways of data input in such a way that the interface itself will be minimally perceived by the user.
XapperD is deployed in mobiles and tabs which are the objects of daily use. The users of these applications do not have to carry any extra computational device. Hence, we can say that the software is invisible. We can quantify invisibility as:
Invisibility = high
3. Context sensitivity (CS): Ability to collect information from the environment where it is being used. A higher number is a good indicator.
XapperD has the ability to capture the location from where the document is being captured. For this reverse-geo coding is used. It also captures thumb impression and signature.
We can also include face recognition feature. Sensitivity can also be increased by using sensors to sense the environment where the device is being used. The future versions of the software will have the ability of voice based form filling. We can have ambient noise sensors to sense the surrounding noise where the customer is sitting and actuators to provide feedback to the user. If the level of noise is more than a certain limit, the software can instruct the user to ask customer to fill form manually so as to avoid incorrect filling of data. We can also have light sensors to sense the surrounding light and take appropriate measures for capturing good quality images.
Hence, we can quantify context sensitivity as:
Context Sensitivity
= available context sensitivity/ overall context sensitivity
= 3/6
= 0.50
Numerator = {capture location, thumb impression, signature}
Denominator = {capture location, thumb impression, signature, face recognition, sensors for sensing users’ surrounding environment}
Context sensitivity will be increased in future.
4. Adaptable behaviour (AB): Ability of dynamically adapting to offered services according to the environment where it is being used, respecting the limitations of the environment. A higher number is a good indicator.
XapperD can accept services of a WiFi printer to print pdf application form and images. It can also accept services of GPRS and 2G/3G WiFi data network to send data to XapperD mobile capture server.
Till now the device is not compatible to use 4G data network for transferring images. In future, the device will be adaptable with WiFi scanners also.
Hence, we can quantify adaptable behaviour as:
Adaptable Behaviour
= services currently adaptable/services which can be adapted
= 4/6
= 0.66
Numerator = {WiFi printers, GPRS, 2G, 3G}
Denominator = {WiFi printers, WiFi scanner, GPRS, 2G, 3G, 4G}
Adaptability needs to be improved.
5. Experiences capture (EC): Ability of capturing and registering experiences for later use.
Experience capture is a continuous process. By capturing the experiences of the team members and the users of the application, the application has regularly been updated with new features so as to make it more ubiquitous. The project has matured enough and has reached this stage through experience capture.
Scope to capture experience is necessary.
6. Service discovery (SD): Pro-active discovery of services according to the environment where it is being used. In order to find new services or information, the application has to interact with environment and allow user to do the same, to achieve some desired target.
Service discovery can be discovering another device in the environment to interact with or another software service for the users in that environment.
Currently the services which have been discovered for this application are:
‘ Banking
‘ Insurance
‘ Transportation and Logistics
The product has not found any customer in Transportation and Logistics area.
Hence, we can quantify service discovery as:
Service Discovery
= services in use/ total services discovered
= 2/3
= 0.67
Numerator = {Banking, Insurance}
Denominator = {Banking, Insurance, Transportation and Logistics}
Aim is to discover more services.
7. Function composition (FC): Based on basic services, the ability to create a service required by the user. A higher number is a good indicator.
XapperD is used in finance sector to help users claim online insurance. For example, to claim auto insurance, the customer can directly use XapperD application to capture picture of the damaged vehicle, record their statement in voice/text and send the claim intimation instantly. This type of feature can also be included in banking sector so that the users can send their documents online to bank to initiate the account opening process.
The company is also thinking to host Business Use Cases (BUC) so that the users can download the app and use it. Currently they are planning to host BUC for tax filing. We can plan of more BUC.
Hence, we can quantify function composition as:
Function Composition
= services available to user/total services which can be made available
= 1/3
= 0.33
Numerator = {finance sector}
Denominator = {finance sector, hosting Business Use Cases online}
More business use cases need to be planned and implemented to increase function composition.
8. Spontaneous interoperability (SI): Ability to change partners during its operation and according to its movement.
9. Heterogeneity of devices (HD): Provides application mobility among heterogeneous devices. That is, the application could migrate among devices and adjust itself to each of them.
In ubiquitous computing heterogeneity is much more than being able to compile, build, and deploy an application on different target platforms’such as building a desktop application to run on different versions of Windows, Mac OS and Android etc. It is to a much larger degree a matter of continuously’ that is, at runtime’being able to handle heterogeneous execution environments, and that different part of the ubiquitous computing application run on devices with highly varying specifications.
XapperD uses WiFi printers to print data form and images. Use of WiFi printers may involve a wide range of heterogeneous devices, each with their specific hardware, operating systems, networks interfaces, etc.
The different parts of the application i.e. mobile capture server, mobile application and the integration adapter, runs on devices with highly varying specification.
Hence, we can quantify heterogeneity of device as:
Tested devices = Tested true/total devices tested
Supported devices = Supported/total devices tested true
Heterogeneity of Device
For Mobile Capture Server (MCS)
Tested devices = 13/30 Supported devices = 17/18
= 0.43 = 0.94
For Integration Adapter (IA)
Tested devices = 17/33 Supported devices = 21/22
= 0.51 = 0.95
For Mobile capture client (MCC)
Tested devices = 4/4 Supported devices = 4/4
= 1 = 1
Therefore we can say that the application is heterogeneous.
10. Fault tolerance (FT): Ability to adapt itself when facing environment’s faults (for example, on-line/off-line availability). A higher number is a good indicator.
XapperD Mobile Application captures images which are then transferred to XapperD Mobile Capture Server. We can upload one application at a time or bulk of applications can also be uploaded. In case of network outage, upload resumes from the last place. The software can also be used in no network coverage areas.
Hence we can say that the application is fault tolerant. Fault tolerance should always be high.
Also in any ubiquitous environment, privacy of users’ content is of utmost importance. With mobility and context sensing, we have a great threat to security of users’ information.
Privacy (PR) – Availability of users’ information to other user or to third party. A high number is a good indicator.
XapperD is a highly secure application. Only registered devices (Mobile/Tablet) are allowed to communicate with the XapperD Mobile Capture Server ensuring safety and security of customer information. The IMEI/UDID number of any device (tablet/mobile/iPad/) is registered first before using the application. This is to prevent any unauthorized access of the application. User credentials are associated with the device id to prevent unauthorized access of the application i.e., login to the device is authenticated. We also have retention policy definition for data stored on devices (For e.g. automatically delete device data after successful upload or delete device data after acknowledgement from centralized team etc). Metadata and images are encrypted (DES Algorithm) before transferring over the network. The images cannot be opened directly from the file system on the mobile device and no data is accessible outside the application. Even transferring data to a laptop will not work. Data is transferred to the network using secure https protocol. Audit trails are maintained for successful upload cases to create transparency and accountability in the system.
Hence, we can quantify privacy as:
Privacy (Security) = 7/7
= 1
Table 5 gives the value of metrics for the current version of XapperD and table 6 gives the value of metrics for the base version of XapperD. The difference in the value of metrics shows that the software is shifting towards ubiquitous computing environment. This is a gradual process and will take time.
Table 5: Value of metrics for the current version
Metrics Values
SO 0.56
IN High
CS 0.50
AB 0.66
EC Present
SD 0.67
FC 0.33
SI Present
HD HD is present in MCS, IA and MCC values for which for tested and supported devices are 0.43, 0.94; 0.51, 0.95; 1,1.
FT High
PR 1
Note: Ubiquity measure is done on a scale of 0 to 1.
Table 6: Value of metrics for the base version
Metrics Values
SO 0.22
IN Low
CS 0.33
AB 0.50
EC Present
SD 0.67
FC Not present
SI Not present
HD HD is present in MCS, IA and MCC values for which for tested and supported devices are 0.39, 0.94; 0.48, 0.95; 1,1.
FT High
PR 1
Chapter 8
CONCLUSION AND FUTURE WORK
8.1 CONCLUSION
Ubiquitous computing is the latest trend in software computing which involves advancement in Mobile computing and Pervasive computing to present a global computing environment. This environment will combine processors and sensors with network technologies (wireless and otherwise) and intelligent software to create an immersive environment to improve life. But lack of appropriate software engineering approaches is the major obstacle in creating such environments. In this thesis, I collected various framework models in practice for all existing ubiquitous software projects available worldwide. After this, I suggested the framework characteristics for Ubiquitous computing projects. Then, I selected software project named XapperD which is a part of ubiquitous computing framework. Finally, I evaluated XapperD using these framework characteristics and quantified all those characteristics to check ubiquity of the software.
This framework will help us to evaluate ubiquity of any software and also shift them to the ubiquitous computing environment.
8.2 FUTURE WORK
These days software engineering is in the advanced stage. The latest trend covers SOA (Service Oriented Architecture), SaaS (Software as a Service), Cloud Computing etc. Pervasive computing, mobile computing and ubiquitous computing include all the above areas. The developers of this environment still face a lot of problem to develop software for this environment due to lack of appropriate framework. I believe that in future most of the software will be a part of ubiquitous computing framework.
Thus, in future I would like to find out new ubiquitous computing characteristics and fine-tune the existing ubiquitous computing characteristics as the next era is ubiquitous computing. Also I would like to propose a quality model to evaluate ubiquitous computing software so as to make it fit in ubiquitous computing environment.