You are on page 1of 4

Volume 3, Issue 10, October – 2018 International Journal of Innovative Science and Research Technology

ISSN No:-2456-2165

Speculative Approach of Analyzing Complexity of a


Software Using Different Programming Languages
Aniket Paul Srishti Vashisht
School of Computing Science and Engineering, Department of Computing Science and Engineering,
Sandip University, Nashik Sandip University, Nashik,
Maharashtra, India Maharashtra, India

Abstract :- No single language can fit all the purposes. In highly qualified Professors who analyse programming in
a rigidly static type system, a compiler is capable of great C++ and Python.
number of memory management decisions, turning types
into a fixed memory layout, optimized for the target II. METHODOLOGY
processor. The price the user has to pay is in the power
of expression, as dynamic behavior must be explicitly A. The basic principle of Analytic Hierarchy Process
written into the program if you want it. The price user The Analytic Hierarchy Process (AHP) is a multi-
pays are speed impact, and a bigger run-time system objective decision analysis method for quantitative and
which may be unsuitable for resource-constrained qualitative. Central to this approach is that policy makers
environments. This creates confusion for choosing the will experience judgment given quantization to provide a
essential language for a project without creating a quantitative basis for decision makers in the form of more
bottleneck. Therefore, there is a necessity of building a practical goals in the complex structure and the lack of
model which creates a base for standard set of quality necessary data. Its basic principle is to a variety of factors
attributes that avoids limitations of existing models. related to the evaluation of alternatives to the system is
Estimation of programming quality characteristics using divided into several levels, and in various elements of the
same level on the layer elements according to the criteria,
AHP is the objective of this paper.
pair wise comparison judgment and calculate the weight of
Keywords :- Memory Management, Speed Impact, Bigger each element of weight, according to comprehensive weight
run-time, Constrained Environments, Bottleneck, Analytic by a maximum weight principle to determine the optimal
Hierarchy Process. solution

I. INTRODUCTION

Which is the best programming language? Questions


about programming language and the properties of their
programs are asked often but well-founded answers are not
easily available. From an engineering viewpoint, the design
of a programming language is the result of multiple trade-
offs that achieve certain desirable properties (such as speed,
reliability etc) at the expense of others (such as Learnability
and pedagogical value). If we want reliably answer Fig 1:- The steps of Analytical Hierarchy Process
questions about properties of programming languages, we
In this model, the part of the complex problem is
have to analyse, empirically, the artefacts programmers
broken into elements. These elements and forming several
write in those languages. Answers grounded in empirical
levels according to their attributes and relations. A hierarchy
evidence can be valuable in helping language users and
of elements as a criterion to the next level related elements
designers make informed choices.
reigns. The top is the target layer, it said institute to achieve
To control factors that may affect the properties of the goals, such as mobile Internet product availability level, or
outcome, we have performed a controlled survey in which ultimately the decision to be made. Summarize its basic
the Professors where shown programs written in two steps roughly divided into four steps, as shown in Figure 1.
different languages and where made to select different
B. Case Study
properties and choose the best between them accordingly.
In this paper we have done a survey of 10 Professors.
Such controlled surveys provide the most reliable data about
It is a classroom-based survey. In this survey we have taken
the impact of certain programming language features such
two simple tic-tac-toe games as the components for the
as reliability, speed, accuracy etc., but they are also
selection problem. These 2 games are implemented on
necessarily limited in scope and generalised by the type and
Python and C++. The Professors have to go through the
number of tasks involved.
code and judge these games on the basis of the
The study presented in this paper explores ground characteristics given below:
where highly controlled but small programming assignments
 Pedagogical Value
are taken in consideration. Our study analyses result of 10
 Reliability
 Portability

IJISRT18OC229 www.ijisrt.com 294


Volume 3, Issue 10, October – 2018 International Journal of Innovative Science and Research Technology
ISSN No:-2456-2165
 Efficiency matrix (C4) is defined on the pair wise comparison process,
 Learnability the matrix is based on the available information as:

C++ PYTHON
C++ 1 0.2
PYTHON 5 1
Table 4 :- Decision table for Efficiency (C4).

 Learnability
Learnability criteria is inclined on whether the
language is easy to learn. Factors such as time plays a huge
role as training is very expensive. A judgement matrix (C5)
is defined on the pair wise comparison process, the matrix is
Fig 2 :- Proposed assessment model with static metrics
based on the available information as:
Now we discuss the components individually along
C++ PYTHON
with their judgement matrix and derive local priorities
(preferences): C++ 1 0.2
PYTHON 5 1
 Pedagogical Value Table 5 :- Decision table for Learnability (C5).
This component deals with the capability and scope of
the language to support and enforce the concepts a Professor C. Testability Study
wants to teach. A judgement matrix (C1) is defined on the In order to conduct testability study based on above
pair wise comparison process, the matrix is based on the AHP technique. The hierarchical model with factors-
available information as: Pedagogical(F1), Reliability(F2), Portability (F3),
Efficiency (F4) and Learnability (F5). A common scale is
C++ PYTHON created and then individual matrix is sent out to 10
C++ 1 3 Professors to fill as discussed above.
PYTHON 0.33 1
Table 1 :- Decision table for Pedagogical Value (C1). F1 F2 F3 F4 F5
F1 1 0.28 0.20 0.14 0.90
 Reliability F2 3.57 1 2.00 1.10 6.00
Reliability of a component refers that the game is F3 5.00 0.50 1 0.20 6.00
reliable enough to sustain in any condition and should give F4 7.14 1.91 5.00 1 9.00
consistently correct results. Product reliability is measured F5 1.11 0.17 0.17 0.11 1
in terms of working of project under different working Table 6 :- Preferred over table
environment and conditions. A judgement matrix (C2) is
defined on the pair wise comparison process, the matrix is D. Analysing Collected Data
based on the information as: Now going Back to Table 1. We have used spreadsheet
based approximate calculations for local priorities giving us
C++ PYTHON Eigen Vector λmax = 5.29 which is >= 5 (total no. of factors),
C++ 1 0.2 which is consistent. Using this we calculate the CI and CR
PYTHON 5 1 values as follows:
Table 2 :- Decision table for Reliability (C2).
CI = (λmax– 1) / (n – 1) (1)
 Portability CI = (5.2902 – 1) / (5 – 1) (2)
Portability criteria concern the ability of program to be CI = 0.0725 (3)
transferred from one environment to another. It is used to CR = CI / RI (4)
address that can user still use the software product when CR = 0.0725 / 1.12 (5)
environment has been changed. A judgment matrix (C3) is CR = 0.0648
defined on the pair wise comparison process, the matrix is
based on the available information as: We found the calculated value of CR < 0.1 in all the
samples of matrices, which indicates that the estimate is
C++ PYTHON consistent and acceptable.
C++ 1 0.25
PYTHON 4 1 Now we will generate a Normalized weighted Table
Table 3:- Decision table for Portability (C3). from the values of Table 1 to calculate the weight of the
characteristics.
 Efficiency
The efficiency criteria concern the characteristics of a
project that gives best results with the use of minimum
resources. Factors such as Time Behaviour, Resource
Behaviour usually need to be considered. A judgement

IJISRT18OC229 www.ijisrt.com 295


Volume 3, Issue 10, October – 2018 International Journal of Innovative Science and Research Technology
ISSN No:-2456-2165
F1 F2 F3 F4 F5 Weight Overall Priority of C++
F1 1 0.10 0.02 0.05 0.04 0.051 = 0.51*0.75 + 0.295*0.166 + 0.173*0.2 + 0.438*0.166 +
F2 0.20 0.35 0.24 0.43 0.26 0.295 0.043*0.310 (1)
F3 0.28 0.18 0.12 0.08 0.26 0.173 = 0.2080 (2)
F4 0.40 0.32 0.60 0.39 0.39 0.438
Overall Priority of Python
F5 0.06 0.06 0.02 0.04 0.04 0.043
= 0.51*0.75 + 0.295*0.83 + 0.173*0.8 + 0.438*0.83 +
Table 7 :- Normalized Weighted Score.
0.043*0.689 (1)
E. Deriving overall priorities (Model Synthesis) = 0.8434 (2) (2)
Up to this point we have obtained local priorities
which indicate the preferred alternative with respect to each Now we can list the alternatives ordered by their
criterion. In this fourth step, we need to calculate the overall overall priority or preference as follows:
priority (also called final priority) for each characteristic
(criteria); that is, priorities that consider not only our Language Overall Rank
preference of alternatives for each criterion but also the fact Priority
that each criterion has a different weight. Given that we are C++ 0.20808623 2
using all the values provided in the model, this step is called 7
model synthesis. Python 0.4341624 1
Table11 :- Synthesis of the Model.
We start the calculation of the overall priority using
the local priority of each alternative as the starting point In other words, given the importance (or weight) of
(Table 8). Next, we need to take into consideration the each characteristic (Pedological Value, Reliability,
weights of each criteria and for this purpose they are Portability, Efficiency and Learnability), Python is
inserted in the table as shown in Table 9. For example, the preferable (overall priority = 0.8434) compared to C++
Pedological Value (F1) criterion has a priority (or weight) of (overall priority = 0.2080).
0.051 and C++ has a local priority (or preference) of 0.75
relative to Pedological Value (F1); therefore, the weighted III. CONCLUSIONS AND FUTURE WORK
priority, with respect to Pedagogical Value, of C++ is: 0.051
* 0.75 = 0.3794. A similar calculation is necessary to obtain We conclude that to capture the decision-making
the C++ weighted priorities with respect to F2, F3, F4 and process by AHP have been organized which is used to
F5. provide reliable and efficient decision. For handling MA
decision problems in actual situations, AHP method is
F1 F2 F3 F4 F5 widely used. Despite its ease in concept and efficiency in
C++ 0.75 0.166 0.2 0.166 0.310 calculation, it suffers from a few drawbacks. For DM, to
better recognize the problem and their decision activities,
Python 0.25 0.83 0.8 0.83 0.689
this approach provides flexibility and toughness.
Table 8 :- Local Priorities table.
In future work, our method can be implemented using
F1 F2 F3 F4 F5
ANP and fuzzy ANP method, which is very efficient. When
Criteria
0.051 0.295 0.173 0.438 0.043 the relation of higher-level elements with lower level
Weight
elements and their dependency should be considered, as
C++ 0.75 0.166 0.2 0.166 0.310
many decision problems cannot be structured hierarchically.
Python 0.25 0.83 0.8 0.83 0.689 So, ANP provides a solution for such types of problem.
Table 9 :- Preparation for weighing of priorities. Therefore, using a network, many good problems can be
modelled.
Finally, the overall priority of C++ is obtained by
adding these results along the row. This procedure is REFERENCES
repeated for each of the alternatives being evaluated. The
overall priorities of the alternatives are shown in the [1]. IEEE Standard Glossary of Software Engineering
rightmost column of Table 10. Terminology, IEEE Std 610.12-1990.
[2]. Chapter One Software Quality Models and
Overall Philosophies. A. Sharma, R. Kumar, P. S. Grover
F1 F2 F3 F4 F5
Priority “Estimation of Quality for Software Components– an
Criteria Empirical Approach” November 2008 Volume 33
0.051 0.295 0.173 0.438 0.043
Weight Number.
C++ 0.75 0.166 0.2 0.166 0.310 0.2080 [3]. Khashayar Khosravi, “A Quality Model for Design
Python 0.25 0.83 0.8 0.83 0.689 0.8434 Patterns”.
Table10 :- Overall Priority table. [4]. R. Al-Qutaish “Quality Models in Software
Engineering Literature: An Analytical and
The calculations for each alternative are shown below Comparative Study” [Journal of American Science
and the results are presented in Table 11 following the 2010; 6(3):166-175]. (ISSN: 1545-1003).
convention of showing the local priorities (cells) and the
weights for each criterion (at the top of each column). This
process is called the model synthesis.

IJISRT18OC229 www.ijisrt.com 296


Volume 3, Issue 10, October – 2018 International Journal of Innovative Science and Research Technology
ISSN No:-2456-2165
[5]. Dromey, R. G., “A model for software product
quality”. IEEE Transactions on Software Engineering
21, 1995, 146-162.
[6]. P. M. Shanthi, K. Duraiswamy, An Empirical
Validation of Software Quality Metric Suites on Open
Source Software for Fault-Proneness Prediction in
Object Oriented Systems. European Journal of
Scientific Research ISSN 1450-216x Vol.51 No.2
(2011), Pp.168-181 © Euro journals Publishing, Inc.
201.
[7]. Sanjay Kumar Dubey, Prof. (Dr.) Ajay Rana. A
Comprehensive Assessment of Object-Oriented
Software Systems Using Metrics Approach. (IJCSE)
International Journal on Computer Science and
Engineering Vol. 02, No. 08, 2010, 2726-2730.
[8]. Amjan Shaik, C. R. K. Reddy, Bala Manda,
Prakashini. C, Deepthi. K. An Empirical Validation of
Object Oriented Design Metrics in Object Oriented
Systems, Journal of Emerging Trends in Engineering
and Applied Sciences (JETEAS) 1 (2): 216-224(2010).
[9]. Ardhendu Mandal, S. C. Pal. Emergence of
Component Based Software Engineering,
International Journal of Advanced Research in
Computer Science and Software Engineering, Volume
2, Issue 3, March 2012.
[10]. M. Bertoa, A.Vallecillo, “Quality Attributes for COTS
Components”, In the Proceedings of the 6th
International ECOOP Workshop on Quantitative
Approaches in Object-Oriented Software Engineering
(QAOOSE), Spain, 2002.
[11]. Dandan HE, Can WANG “Usability Evaluation of
Software Testing Based on Analytic Hierarchy
Process”, 4th International Conference on Machinery,
Materials and Computing Technology (ICMMCT
2016).

IJISRT18OC229 www.ijisrt.com 297

You might also like