INTRODUCTION
1.0 Introduction
This chapter presents the introduction to the research work under the following sub heads:
1.1 Theoretical Background
The increasing complexity of software development demands that developers use automated software performance evaluation systems. Today, software organizations invest more time and resources in analyzing and testing software as a unit rather than as independent entities . Software engineers have observed that writing testing code is as expensive and time consuming as developing the product itself [2]. To ensure software quality, organizations encourage software developers and testers to achieve objectives such as these:
Automated testing software is software that tests application performance and functionality, [3] and aids developers in debugging and releasing applications faster [4]. Without testing, bugs and defects will hinder performance and usability of the application [5]. Automated testing software can enhance the return on investment of applications by performing GUI (Graphic User Interface) testing, test creation, test scripting, load testing and a host of other functions. A major way to determine the performance of software systems is to perform software evaluation of the basic attributes of the software such as cost, usability, graphical user interface, etc. To evaluate the performance of software, the attributes that are needed as criteria to determine its performance should be clearly defined. For instance, the response time of two server software programs may differ, one will certainly be faster than the other. Response time is therefore an example of the attribute that is used to determine the performance of the server systems.
Many organizations are now focused on using software systems that perform effectively. To determine the level of software performance, software evaluation needs to be done and this has given rise to performance engineering in the software world. Performance engineering or SPE (Systems Performance Engineering or Software Performance Engineering) within systems engineering, encompasses the set of roles, skills, activities, practices, tools, and deliverables applied at every phase of the systems development life cycle which ensures that a solution will be designed, implemented, and operationally supported to meet the non-functional requirements for performance (such as throughput , latency , or memory usage). It may be alternatively referred to as software performance engineering or application performance engineering within software engineering. As the connection between application success and business success continues to gain recognition, particularly in the mobile space, application performance engineering has taken on a preventative and perfective role within the software development life cycle. As such, the term is typically used to describe the processes, people and technologies required to effectively test non-functional requirements, ensure adherence to service levels and optimize application performance prior to deployment. A software design cannot be evaluated for performance by itself. Other factors in determining the performance can be grouped into the platform, meaning the processors, networks, operating system and middleware, and the configuration, meaning the allocation of processes to processors, with their priorities. The software, platform and configuration together make a description that can be modelled, simulated and evaluated against delay specifications. It is difficult to create a good configuration quickly if there are many processes with complex interactions, executing many scenarios with delay specifications, and if there are many alternative platforms to be evaluated.
The task of choosing a software component for a specific function in order to integrate it in a software system is a typical case of multi-criteria decision making that frequently occurs in Software Engineering. Consider a decision maker with a set of components to fulfill a function in a software system, for example creating digital signatures on files. A number of decision factors will come into play such as functional suitability, security, performance efficiency, interoperability and costs. Some of these may pose conflicts: For example, increased security may come at the price of decreased performance efficiency or increased price. The decision maker has to follow a trustworthy and repeatable procedure to choose the component that best fulfills the objectives at hand. This task of choosing software is done to select the one with better performance and this forms the background of the study.
1.2 Statement of Problem
The following problems were identified:
To avoid these problems of choosing software systems that are ineffective, researchers in computing consider software performance evaluation very important.
1.3 Aim and Objectives of the Study
The aim of the study is to design and implement an automated software performance system that will aid in evaluating the performance level of a software product. The following are the objectives of the study:
1.4 Significance of the Study
The significance of the study are:
1.5 Scope of the Study
This study covers design and implementation an automated software performance evaluation system. It is limited to the evaluation of the software systems used by MTN/Glo telecommunication companies in Uyo
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
Automate- To replace or enhance human labour with machines
Software " Programs and applications that can be run on a computer system, e.g. word processing or database packages
Performance: The amount of useful work accomplished by a computer system compared to the time and resources used.
Evaluation " The act of considering or examining something in order to judge its value, quality, importance, extent, or condition
System: An assembly of computer hardware, software, and peripherals functioning together to solve a common problem