DESIGN AND IMPLEMENTATION OF AN AUTOMATED SOFTWARE PERFORMANCE SYSTEM

DESIGN AND IMPLEMENTATION OF AN AUTOMATED SOFTWARE PERFORMANCE SYSTEM

INTRODUCTION

1.0 Introduction

This chapter presents the introduction to the research work under the following sub heads:

  • Theoretical Background
  • Statement of Problem
  • Aim and Objectives of the Study
  • Significance of the Study
  • Scope of the Study
  • Organization of Research
  • Definition of Terms

 

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:

  • Locating the source of defects faster and more precisely
  • Detecting bugs earlier in the software development life cycle
  • Removing more defects before the product is released
  • Improved testing tools can reduce the cost of software development and increase the quality of software [2].

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:

  • Many software systems perform below expectations due to the fact that software performance evaluation was not conducted to identify bugs that may affect the performance of the system before deployment.
  • Choosing the right solution is an exhausting process for companies. Therefore, selecting a software package that meets the requirements needs a full examination of many conflicting factors and it can only be achieved through performance evaluation of two or more software systems that could be used to execute the same task.
  • In addition, little research has been done in the area of evaluating the performance of software systems.
  • Most times, the software acquired does not meet the needs of the organization despite the huge investment.
  • When a poor performance software system is being used, it will affect their operations due to the fact that the basic activities of many organizations are dependent on the use of software systems.

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:

  • To design and implement a system for software performance evaluation.
  • To develop a system that will assess the software features to determine their level of effectiveness?
  • To develop a system that will maintain record of software evaluation records

 

1.4 Significance of the Study

The significance of the study are:

  • it will help institutions and organizations evaluate the effectiveness of a software product.
  • The study will also serve as a useful reference material to other researchers seeking for information concerning the subject.

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

DOWNLOAD COMPLETE PROJECT MATERIAL