Journal Articles (CI)http://repository.mut.ac.ke:8080/xmlui/handle/123456789/572024-03-28T19:08:37Z2024-03-28T19:08:37ZComparative Analysis on the Evaluation of the Complexity of C, C++, Java, PHP and Python Programming Languages based on Halstead Software ScienceOnyango, Kevin A.Mariga, Geoffrey W.http://repository.mut.ac.ke:8080/xmlui/handle/123456789/64192024-02-17T11:24:18Z2023-03-01T00:00:00ZComparative Analysis on the Evaluation of the Complexity of C, C++, Java, PHP and Python Programming Languages based on Halstead Software Science
Onyango, Kevin A.; Mariga, Geoffrey W.
Quality plays center stage in any software development industry. Software metrics have proven over time as the best measure to be used to assess and assure the software
developers of the quality of their products. Halstead software science is an essential technique for measuring software complexity at the source code. In this study, we present a comparative study using this technique to help the developer by evaluating the code complexity by considering the structural composition of a programming language. In this study, an experiment was done using Halstead metrics to evaluate the complexity of PHP, C++, Java, C and Python programming languages. This study demonstrate that Halstead gives a better approach in evaluating the level of complexity of programming languages at source code level. The results showed that C++ and Java are the most complex programming languages while Python was the least complex warranting less of the programmer's time and effort when developing a similar project. These findings can be used by the software developers to make decisions on the programming language to adopt when they want to come up with less complex software of high quality. In the future, the researchers will advance the study to incorporate other software paradigms and also modify the technique to capture also inter and intra-modular structural complexity of the various programming languages.
2023-03-01T00:00:00ZAn extended k-means cluster head selection algorithm for efficient energy consumption in wireless sensor networksMwangi, Peter M.Ndia, John G.Muketha, Geoffrey M.http://repository.mut.ac.ke:8080/xmlui/handle/123456789/64182024-02-17T11:24:59Z2023-05-01T00:00:00ZAn extended k-means cluster head selection algorithm for efficient energy consumption in wireless sensor networks
Mwangi, Peter M.; Ndia, John G.; Muketha, Geoffrey M.
Effective use of sensor nodes’ batteries in wireless sensor networks is critical since the batteries are difficult to recharge or replace. This is closely connected to the networks’ lifespan since once the battery is used up, the node is no longer useful. The entire network will not function if 60 to 80% of the nodes in it have completely depleted their energy. In order to minimize energy usage and sustain the network for a long time, many cluster head selection algorithms have been developed. However, the existing cluster head selection algorithms such as K-Means, particle swarm selection optimization (PSO), Density-Based Spatial Clustering of Applications with Noise (DBSCAN) and Fuzzy C-Means (FCM) cluster head election algorithm have not fully reduced the issue of energy usage in WSN. The objective of this paper was to develop an extended K Mean Cluster Head selection(CHS) algorithm that uses remaining energy, distance between node and base station, distance between nodes and neighbour nodes, node density, node degree Maximum Cluster size, received signal strength indicator (RSSI) and Signal to Noise Ratio. The algorithm developed was used to enhance the lifespan of WSNs. The performance of the simulated variants of LEACH routing protocols is measured and evaluated using the quantitative research methodology. Utilizing residual node energy, packet delivery ratio, throughput, network longevity, average energy usage, and the number of live and dead node, the suggested approach is contrasted to previous approaches. From the study we observed that the proposed approach outperforms existing actual LEACH, Mod-LEACH and TSILEACH approaches.
2023-05-01T00:00:00ZA Metrics-Based Model for Estimating the Maintenance Effort of Python SoftwareMukunga, Catherine W.Ndia, John G.Wambugu, Geoffrey M.http://repository.mut.ac.ke:8080/xmlui/handle/123456789/64032024-02-17T11:24:20Z2023-05-01T00:00:00ZA Metrics-Based Model for Estimating the Maintenance Effort of Python Software
Mukunga, Catherine W.; Ndia, John G.; Wambugu, Geoffrey M.
Software project management includes a substantial area for estimating software maintenance effort. Estimation of software maintenance effort improves the overall performance and efficiency of software. The Constructive Cost Model (COCOMO) and other effort estimation models are mentioned in literature but are inappropriate for Python programming language. This research aimed to modify the Constructive Cost Model (COCOMO II) by considering a range of Python maintenance effort influencing factors to get estimations and incorporated size and complexity metrics to estimate maintenance effort. A within-subjects experimental design was adopted and an experiment questionnaire was administered to forty subjects aiming to rate the maintainability of twenty Python programs. Data collected from the experiment questionnaire was analyzed using descriptive statistics. Metric values were collected using a developed metric tool. The subject ratings on software maintainability were correlated with the developed model’s maintenance effort, a strong correlation of 0.610 was reported meaning that the model is valid.
2023-05-01T00:00:00ZFactors Affecting Software Maintenance Cost of Python ProgramsMukunga, Catherine W.Ndia, John G.Wambugu, Geoffrey M.http://repository.mut.ac.ke:8080/xmlui/handle/123456789/64022024-02-17T11:25:05Z2022-01-01T00:00:00ZFactors Affecting Software Maintenance Cost of Python Programs
Mukunga, Catherine W.; Ndia, John G.; Wambugu, Geoffrey M.
One of the primary areas of software project management is cost estimation. The cost estimation problem remains unsolved today because of the ineffective cost estimation techniques which are unsuitable for handling current development methods. Software maintenance costs can be estimated using a variety of models such as the Construction Cost Model (COCOMO), Software Life Cycle Management (SLIM), Software maintenance project effort estimation model and others but more work needs to be done in developing models that can accommodate programs from new programming paradigms. The primary objective of this research was to identify factors affecting the software maintenance cost of python programs and rank them according to their relevance. To achieve the objective, a literature review study was done to identify factors that influence software maintenance costs followed by an expert opinion survey to ascertain which of the factors were relevant for Python programs. Fifty two (52) Python developers and project managers were identified using snowballing technique and asked to rate the cost drivers in order of relevance using a five point scale. Descriptive statistics were used to carry out the analysis of the results. The results indicated that all the eighteen (18) factors affected the maintenance cost of Python programs. The factors were ranked based on the percentage mean of frequencies. Six additional factors were also identified by the experts and ranked. The factors will be considered as input parameters for a cost estimation model to be developed in the near future for estimating the cost of maintaining python programs.
2022-01-01T00:00:00Z