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 (Becker et al, 2013). The domain of component selection presents an interesting case of multiple criteria decision support systems (MCDSS) since it exhibits a number of peculiarities:
- A comparably large number of decisions of a very similar kind is made.
- The number of alternatives and decision criteria can be quite large.
- The decision criteria are rather well understood in terms of the facets and quality aspects that are evaluated.
However, the individual assessment of each criterion’s utility towards these aspects varies substantially among cases. In these scenarios, the problem of eliciting, specifying, evaluating and weighing the criteria becomes challenging, and the complexity of making a choice is correspondingly high. Given the scale of the decision making problem, the primary goals for improving decision support are the decision makers’ efficiency and effectiveness in reaching a choice on components. Becker et al (2013).
According to Gendiga, Hamburg and Duntsch (2014), evaluation as a general endeavor can be characterized by the following features:
- Evaluation is a task, which results in one or more reported outcomes.
- Evaluation is an aid for planning, and therefore the outcome is an evaluation of different possible actions.
- Evaluation is goal oriented. The primary goal is to check results of actions or interventions, in order to improve the quality of the actions or to choose the best action alternative.
Evaluation is dependent on the current knowledge of science and the methodological standards. Evaluation as an aid for software development has been applied since the last decade, when the comprehension of the role of evaluation within Human-Computer Interaction had changed. The activities “Task analysis”, “Requirement specification”, “Conceptual and formal design”, “Prototyping”, “Implementation” are each supplemented by an activity “Evaluation” which helps to decide progression to the next step. Software can be evaluated with respect to different aspects, for example, functionality, reliability, usability, efficiency, maintainability, portability. In earlier times evaluation of software took place at the end of the developing phase, using experimental designs and statistical analysis, evaluation is nowadays used as a tool for information gathering within iterative design: “Explicit human-factors evaluations of early interactive systems (when they were done at all) were poorly integrated with development and therefore ineffective. They tended to be done too late for any substantial changes to the system still be feasible and, in common with other human-factors contributions to development, they were often unfavourably received. Instruments for evaluation are not primarily used for global evaluation of an accomplished product, but these instruments are applied during the development of a product. Indeed, most experts agree nowadays that the development of usable software can only be done by a systematic consideration of usability aspects within the life-cycle model. One prominent part is the evaluation of prototypes with respect to usability aspects, employing suitable evaluation techniques in order to find usability errors and weaknesses of the software at an early stage. Bandor (2006).
Decision Supports Systems (DSS) are computer-based information systems designed in such a way that help managers to select one of the many alternative solutions to a problem. It is possible to automate some of the decision making processes in a large, computer-based DSS which is sophisticated and analyze huge amount of information fast. It helps corporate to increase market share, reduce costs, increase profitability and enhance quality. The nature of problem itself plays the main role in a process of decision making. A DSS is an interactive computer based information system with an organized collection of models, people, procedures, software, databases, telecommunication, and devices, which helps decision makers to solve unstructured or semi-structured business problems. Adopting decision support system to software evaluation guarantees accurate evaluation of the software. Abdelkader (2006).
1.1 Theoretical Background
Making decisions concerning complex systems (e.g., the management of organizational operations, industrial processes, or software evaluation) often strains our cognitive capabilities. Even though individual interactions among a system’s variables may be well understood, predicting how the system will react to an external manipulation such as a policy decision is often difficult. Many variables are involved in complex and often subtle interdependencies and predicting the total outcome may be daunting. There is a substantial amount of empirical evidence that human intuitive judgment and decision making can be far from optimal, and it deteriorates even further with complexity and stress. Because in many situations the quality of decisions is important, aiding the deficiencies of human judgment and decision making has been a major focus of science throughout history. Applying decision support systems to software evaluation therefore is a very important research area.
1.2 Statement of Problem
As institutions and organizations spend huge amount on Enterprise resource planning (ERP) packages and other computer software that cost hundreds of thousands and even millions of dollars, purchasing a software solution is a high expenditure activity that consumes a significant portion of companies’ capital budgets. Selecting 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 is a difficult task. Most times the software bought do not meet the needs of the institution or organization despite the huge amount. To avoid the problem of software ineffectiveness, this has led researchers to investigate better ways of evaluating and selecting software packages.
1.3 Aim and Objectives of the Study
The aim of the study is to develop an advanced decision support system for software evaluation that will help organizations to determine the effectiveness of a software product based on its features and capabilities. The following are the objectives of the study:
- To design and implement a decision support system for software evaluation using quantitative method for software evaluation and selection .
- 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 Scope of the Study
This study covers advanced decision support system for software evaluation using quantitative evaluation technique. It is limited to the capturing of the weighted mean of software features and the determination of the best software option based on the total weight of its features.
1.5 Significance of the Study
The significance of the study is that 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.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
Programs and applications that can be run on a computer system, e.g. word processing or database packages
The act of considering or examining something in order to judge its value, quality, importance, extent, or condition
An assembly of computer hardware, software, and peripherals functioning together to solve a common problem.