This chapter presents the introduction to expert system for mobile software reliability. It presents the introduction, theoretical background, statement of the problem, aim and objectives of the study, significance of the study, scope of the study organization of the research and definition of terms.
1.1 Theoretical Background
Mobile software systems are sometimes characterized by their highly dynamic configuration, unknown operational profile, and fluctuating execution conditions. Most existing software reliability analysis approaches are geared to traditional desktop software systems, which are relatively stable and static throughout their execution. Therefore, assessing the reliability of mobile software systems requires new principles, models, and tools that incorporate the underlying uncertainties associated with such systems. At the same time, since often an accurate estimation of the mobile software system’s execution context is not available at design-time, it is infeasible to determine an optimally reliable architectural configuration for the software system prior to its deployment. Therefore, a run-time reconfiguration of the software system may be necessary to improve its reliability. While application development for mobile devices goes back at least 10 years, there has been exponential growth in mobile application development since the iPhone AppStore opened in July, 2008. Since then, device makers have created outlets for other mobile devices, including Android, BlackBerry, Nokia Ovi, Windows Phone, and more. Industry analysts estimate that there are more than 250,000 applications available through the various stores and marketplaces, some of which are available for multiple types of devices. There are numerous comprehensive programming environments available for the major mobile platforms. Apple’s iOS Dev Center offers the Xcode package, which includes an Interface Builder, an iPhone emulator, and a complete development environment that can be used across all Apple products. For Android, developers can use the Android Development Tools plug-in for the Eclipse programming environment. For Windows Phone, developers can use a specialized version of Microsoft’s Visual Studio environment. Similarly, there are application development tools for BlackBerry, Symbian, and other platforms. In addition, there are now some cross-platform development tools, such as RhoMobile’s Rhodes and the open source PhoneGap, which can be used to create native applications on various brands of Smartphones. Along the same lines, Netbiscuits, Appcelerator, Kyte, and other companies provides tools and frameworks to support the creation of mobile web and hybrid sites using their SDK or one of the previously mentioned environments. These powerful development tools and frameworks greatly simplify the task of implementing a mobile application (Agrawal, 2010).
As mobile applications become more complex, moving beyond inexpensive recreational applications to more business-critical uses, it will be essential to apply software engineering processes to assure the development of secure, high-quality mobile applications. To achieve this, expert system is needed to enable users to determine the solution to mobile phone problems. A wide variety of methods can be used to simulate the performance of the expert however common to most or all are 1) the creation of a knowledge base which uses some knowledge representation formalism to capture the Subject Matter Expert’s (SME) knowledge and 2) a process of gathering that knowledge from the SME and codifying it according to the formalism, which is called knowledge engineering. Expert systems may or may not have learning components but a third common element is that once the system is developed it is proven by being placed in the same real world problem solving situation as the human SME, typically as an aid to human workers or a supplement to some information system. The essence of this is to maintain the reliability of the mobile device. An expert system is a knowledge base system that mimics human expert.
An expert system is software that attempts to provide an answer to a problem, or clarify uncertainties where normally one or more human experts would need to be consulted. Expert systems are most common in a specific problem domain, and are a traditional application/subfield of artificial intelligence. To troubleshoot mobile software problems, an expert system can be developed that contains knowledge of the problems and solutions to known mobile software faults. This will enable those interested in knowing ways to solve mobile software problems gain knowledge even in the absence of human experts. The application is needed to give solution to common mobile software problems. Every mobile platform has a certain level of reliability and since it is not 100% reliable there is bound to be software problems. It is on this premise that this research is conducted to develop an expert system for mobile software reliability (Capra, 2003).
1.2 Statement of the Problem
It is in view of these situations that this research study is carried out.
1.3 Aim and Objectives of the Study
The aim of the study is to implement an expert system for mobile software reliability. The following are the objectives of the study:
1.4 Significance of the Study
The significance of the study is that it will provide users with expert solution to mobile software reliability evaluation. The study will also serve as a useful reference material to other scholars seeking related information on the subject.
1.5 Scope of the Study
This study covers expert system for mobile software reliability and it is limited to the development of software system that will evaluate mobile software reliability based on the failure rate, fault detection rate, ease of usage fault resolving rate.
1.6 Organization of Research
This research work is organized into five chapters. Chapter one is concerned with the introduction of the research study and it presents the preliminaries, theoretical background, statement of the problem, aim and objectives of the study, significance of the study, scope of the study, organization of the research and definition of terms.
Chapter two focuses on the literature review, the contributions of other scholars on the subject matter is discussed.
Chapter three is concerned with the system analysis and design. It presents the research methodology used in the development of the system, it analyzes the present system to identify the problems and provides information on the advantages and disadvantages of the proposed system. The system design is also presented in this chapter.
Chapter four presents the system implementation and documentation, the choice of programming language, analysis of modules, choice of programming language and system requirements for implementation.
Chapter five focuses on the summary, constraints of the study, conclusion and recommendations are provided in this chapter based on the study carried out.
1.7 Definition of Terms
Debug: To search for and eliminate malfunctioning elements or errors in something, especially a computer program or machinery.
Mobile Phone: A portable telephone that connects with the telephone network over radio wave transmission.
Reliability: The quality of a measurement indicating the degree to which the measure is consistent, that is, repeated measurements would give the same result.
SDK – Software Development Kit. An application that provides tools for the development of software applications.
Troubleshoot: To analyze or diagnose a problem to the point of determining a solution.