Catalogue Search | MBRL
Search Results Heading
Explore the vast range of titles available.
MBRLSearchResults
-
DisciplineDiscipline
-
Is Peer ReviewedIs Peer Reviewed
-
Reading LevelReading Level
-
Content TypeContent Type
-
YearFrom:-To:
-
More FiltersMore FiltersItem TypeIs Full-Text AvailableSubjectPublisherSourceDonorLanguagePlace of PublicationContributorsLocation
Done
Filters
Reset
39
result(s) for
"Object-oriented methods (Computer science) Evaluation."
Sort by:
Identification of Move Method Refactoring Opportunities
2009
Placement of attributes/methods within classes in an object-oriented system is usually guided by conceptual criteria and aided by appropriate metrics. Moving state and behavior between classes can help reduce coupling and increase cohesion, but it is nontrivial to identify where such refactorings should be applied. In this paper, we propose a methodology for the identification of Move Method refactoring opportunities that constitute a way for solving many common feature envy bad smells. An algorithm that employs the notion of distance between system entities (attributes/methods) and classes extracts a list of behavior-preserving refactorings based on the examination of a set of preconditions. In practice, a software system may exhibit such problems in many different places. Therefore, our approach measures the effect of all refactoring suggestions based on a novel entity placement metric that quantifies how well entities have been placed in system classes. The proposed methodology can be regarded as a semi-automatic approach since the designer will eventually decide whether a suggested refactoring should be applied or not based on conceptual or other design quality criteria. The evaluation of the proposed approach has been performed considering qualitative, metric, conceptual, and efficiency aspects of the suggested refactorings in a number of open-source projects.
Journal Article
Resolving the Java Representation Exposure Problem with an AST-Based Deep Copy and Flexible Alias Ownership System
2024
Encapsulation is a critical factor in object-oriented programming languages and design patterns. Nevertheless, programs written in languages like Java may encounter broken encapsulation due to the lack of sufficient supply for ownership and immutability. As a result, this paper introduces SlimeJava, an ownership system extension based on abstract syntax trees and annotation utilization of Java that aims to help programmers prevent representation exposure. We show the features of the proposal with a motivating example using the Memento pattern. We then discuss how the utilization of annotations realizes ownership and why it is effective in avoiding representation exposure issues by comparing it with existing approaches. In the end, a quantitative performance evaluation was conducted to prove that SlimeJava does not cause a substantial overhead in execution time compared to native Java.
Journal Article
Gamified Project-Based Learning in Vocational Education and Training Computer Science Courses
2026
Active methodologies place the student at the core of the teaching–learning process, with the teacher becoming a companion and guide. Among these methodologies, gamification is demonstrating great capacity to attract students and promote interest, being of particular relevance in STEM subjects. While gamification and Project-Based Learning (PBL) have been extensively studied independently, their integration into Vocational Education and Training (VET) computer science courses remains underexplored, particularly regarding approaches where students develop games themselves rather than merely incorporating game elements or playing serious games. This work presents a novel gamified PBL approach specifically designed for VET Programming education, with three distinctive features: (i) students develop a complete game based on graph theory and Object-Oriented Programming, with each student working under personalised conditions and constraints; (ii) a custom-developed software tool that simultaneously serves as a pedagogical scaffold for students to validate their solutions iteratively and as an automated evaluation platform for teachers; and (iii) empirical validation through action-research with first-year VET students, employing mixed-methods analysis including qualitative observations and descriptive quantitative comparisons. The approach was implemented with first-year Web Application Design students in the Programming subject, where students developed a game integrating graph theory algorithms, Object-Oriented Programming, and Markup Language. Despite the small sample size (10 students), qualitative observations and descriptive analysis indicated promising results, and grade distributions were comparable to those in more accessible subjects. Teacher diary observations, follow-ups, and questionnaires documented sustained engagement, peer collaboration, and strategic problem-solving throughout the project phase. These preliminary findings suggest that gamification through game development, particularly when supported by automated tools enabling personalised conditions and iterative validation, represents a promising approach for teaching and learning Programming in VET contexts.
Journal Article
Class point: an approach for the size estimation of object-oriented systems
2005
In this paper, we present an FP-like approach, named class point, which was conceived to estimate the size of object-oriented products. In particular, two measures are proposed, which are theoretically validated showing that they satisfy well-known properties necessary for size measures. An initial, empirical validation is also performed, meant to assess the usefulness and effectiveness of the proposed measures to predict the development effort of object-oriented systems. Moreover, a comparative analysis is carried out, taking into account several other size measures.
Journal Article
Predicting the probability of change in object-oriented systems
by
Stephanides, G.
,
Chatzigeorgiou, A.
,
Tsantalis, N.
in
Automation
,
Code reuse
,
Computer Society
2005
Of all merits of the object-oriented paradigm, flexibility is probably the most important in a world of constantly changing requirements and the most striking difference compared to previous approaches. However, it is rather difficult to quantify this aspect of quality: this paper describes a probabilistic approach to estimate the change proneness of an object-oriented design by evaluating the probability that each class of the system will be affected when new functionality is added or when existing functionality is modified. It is obvious that when a system exhibits a large sensitivity to changes, the corresponding design quality is questionable. The extracted probabilities of change can be used to assist maintenance and to observe the evolution of stability through successive generations and identify a possible \"saturation\" level beyond which any attempt to improve the design without major refactoring is impossible. The proposed model has been evaluated on two multiversion open source projects. The process has been fully automated by a Java program, while statistical analysis has proved improved correlation between the extracted probabilities and actual changes in each of the classes in comparison to a prediction model that relies simply on past data.
Journal Article
Benefits, challenges, and usability evaluation of DeloreanJS: a back-in-time debugger for JavaScript
2023
JavaScript Web applications are a common product in industry. As with most applications, Web applications can acquire software flaws (known as bugs), whose symptoms are seen during the development stage and, even worse, in production. The use of debuggers is beneficial for detecting bugs. Unfortunately, most JavaScript debuggers (1) only support the “step into/through” feature in an execution program to detect a bug, and (2) do not allow developers to go back-in-time at the application execution to take actions to detect the bug accurately. For example, the second limitation does not allow developers to modify the value of a variable to fix a bug while the application is running or test if the same bug is triggered with other values of that variable. Using concepts such as continuations and static analysis, this article presents a usable debugger for JavaScript, named DeloreanJS, which enables developers to go back-in-time in different execution points and resume the execution of a Web application to improve the understanding of a bug, or even experiment with hypothetical scenarios around the bug. Using an online and available version, we illustrate the benefits of DeloreanJS through five examples of bugs in JavaScript. Although DeloreanJS is developed for JavaScript, a dynamic prototype-based object model with side effects (mutable variables), we discuss our proposal with the state-of-art/practice of debuggers in terms of features. For example, modern browsers like Mozilla Firefox include a debugger in their distribution that only support for the breakpoint feature. However DeloreanJS uses a graphical user interface that considers back-in-time features. The aim of this study is to evaluate and compare the usability of DeloreanJS and Mozilla Firefox’s debugger using the system usability scale approach. We requested 30 undergraduate students from two computer science programs to solve five tasks. Among the findings, we highlight two results. First, we found that 100% (15) of participants recommended DeloreanJS, and only 53% (eight) recommended Firefox’s debugger to complete the tasks. Second, whereas the average score for DeloreanJS is 71.6 (“Good”), the average score for Firefox’s debugger is 55.8 (“Acceptable”).
Journal Article
An exploratory study for software change prediction in object-oriented systems using hybridized techniques
by
Khanna, Megha
,
Malhotra, Ruchika
in
Artificial Intelligence
,
Business metrics
,
Computer Science
2017
Variation in software requirements, technological upgrade and occurrence of defects necessitate change in software for its effective use. Early detection of those classes of a software which are prone to change is critical for software developers and project managers as it can aid in efficient resource allocation of limited resources. Moreover, change prone classes should be efficiently restructured and designed to prevent introduction of defects. Recently, use of search based techniques and their hybridized counter-parts have been advocated in the field of software engineering predictive modeling as these techniques help in identification of optimal solutions for a specific problem by testing the goodness of a number of possible solutions. In this paper, we propose a novel approach for change prediction using search-based techniques and hybridized techniques. Further, we address the following issues: (i) low repeatability of empirical studies, (ii) less use of statistical tests for comparing the effectiveness of models, and (iii) non-assessment of trade-off between runtime and predictive performance of various techniques. This paper presents an empirical validation of search-based techniques and their hybridized versions, which yields unbiased, accurate and repeatable results. The study analyzes and compares the predictive performance of five search-based, five hybridized techniques and four widely used machine learning techniques and a statistical technique for predicting change prone classes in six application packages of a popular operating system for mobile—Android. The results of the study advocate the use of hybridized techniques for developing models to identify change prone classes.
Journal Article
Measuring software stability based on complex networks in software
2019
Software maintenance is regarded as an activity of high cost. Developing meaningful metrics to assess the quality characteristics of software has become one of the most effective ways to reduce the cost. In this paper, we propose metrics to quantify the software stability from a complex network perspective. First, the topological structure of software at the class level is represented by a Class Coupling Network (CCN). Second, based on the CCN, we further propose a Node Influence Network (NIN) which considers both the directed and indirected (transitive) coupling strength between classes. Finally, based on NIN, we propose a metric to quantify the class stability and further propose a metric to quantify the stability of software as a whole. The proposed metrics are validated theoretically using widely accepted Weyuker’s criteria and empirically using Java programs. The theoretical evaluation shows the proposed metrics satisfy most of Weyuker’s properties, and the empirical evaluation shows the effectiveness of our proposed metrics as indicators of the external software qualities such as scalability and change proneness.
Journal Article
Usability Evaluation of Imikode Virtual Reality Game to Facilitate Learning of Object-Oriented Programming
by
Agbo, Friday Joseph
,
Sunday, Kissinger
,
Aliyu, Muhammad Bello
in
Artificial intelligence
,
Computer Simulation
,
Education
2023
Many empirical studies have shown that educational games and recent technologies impact education and increase learning effectiveness, students’ motivation and engagement. The overall aim of this study is to evaluate the usability of Imikode, a virtual reality (VR) game that was developed to introduce the concepts of object-oriented programming to novices. The improved version of the Imikode VR game consists of three features: An artificial intelligence component designed to provide real-time error feedback to users, an intelligent agent that guides and teaches users how to play the game and finally, the integration of multiple game play that gives learners more opportunities to explore the VR environment for greater immersive learning experience. This study adopted a survey approach and recruited first-year computer science students to measure learner satisfaction with educational virtual reality games and examined the correlations among the attributes of the Usefulness, Satisfaction and Ease of Use questionnaire of usage of Imikode. The results showed that the students were satisfied with Imikode and perceived the virtual reality educational game as very useful for learning object-oriented programming concepts. In addition, there was a correlation among the questionnaire variables, which means that researchers can use the instrument for future usability studies in the context. We further proffered some design recommendations for building software tools.
Journal Article