Model refactoring enhances the platform-independent design models of software aiming at smoother impact of requirement changes, thereby improving the design quality and assisting in their evolution and maintenance. Th...
详细信息
The implicit dynamic solution of multibody and finite element simulations with kinematic constraints requires the assembly of KKT-like matrices, which are constant in structure, but unsymmetric in the most general cas...
详细信息
So far, valuable research studies have been conducted on mapping notations of object-oriented specification, such as object-Z, in different object-orientedprogramming languages, such as C++. However, the results of s...
详细信息
So far, valuable research studies have been conducted on mapping notations of object-oriented specification, such as object-Z, in different object-orientedprogramming languages, such as C++. However, the results of selecting JVM-based programming languages for mapping have not covered most of basic object-Z structures. In this paper, the Groovy language, as a dynamic JVM-based language, is selected to overcome some of the existing limitations. As the main contribution, the rules required for mapping object-Z specifications to execute Groovy code are introduced. The proposed rules cover notions such as multiple inheritance, inverse specification of functions, functions defined on generic definitions, and free-type constructors. Previous methods have not covered these notions for the formal development of program from object-oriented specifications, regardless of the selected formal specification language and target programming language. In addition, in this paper, the parallel composition construct is mapped to a parallel, executable code to improve the faithfulness of the final code to the initial specification. A mapping rule for the class union construct is introduced, which has not yet been provided for any JVM-based language. Unlike previous works, instead of presenting the mapping rules in terms of natural languages, they are presented in terms of some formal mapping rules. (C) 2018 Sharif University of Technology. All rights reserved.
We present first results of an ongoing research that investigates the learning progress of students in a CS course, using concept maps. We aim to indentify knowledge elements that are prerequisites for basic competenc...
详细信息
Mutation testing is a fault-based testing technique that helps generating effective test cases. Mutation testing is computationally expensive, because it requires executing hundreds and even thousands of mutants. In t...
详细信息
Mutation testing is a fault-based testing technique that helps generating effective test cases. Mutation testing is computationally expensive, because it requires executing hundreds and even thousands of mutants. In this situation, search-based approaches like genetic algorithm can help to automate test case generation to reduce the cost. In this paper, we present an improved genetic algorithm that can reduce computational cost of mutation testing. First, we present a novel state-based and control-oriented fitness function that efficiently uses object-oriented program features to evaluate a test case. We then empirically evaluate it using our implemented tool, eMuJava, and compare it with the standard fitness function. Results show that although our proposed fitness function provides detailed information about fitness of a test case but standard genetic algorithm is incapable of using that effectively to repair the test cases. Therefore, we propose a new two-way crossover and adaptable mutation methods that intelligently use the fitness information to generate fitter offspring. Finally, we compare the improved genetic algorithm with random testing, standard genetic algorithm, and EvoSuite. Experiment results prove that our proposed approach can find the optimal test cases in less number of attempts (reduces computational cost). Besides that it can detect software bugs from suspiciously equivalent mutants and these mutants eventually get killed (increases mutation score).
A proposed approach moves variability support from the programming language to the language implementation level. This enables contextual variability in any application independently of whether the underlying language...
详细信息
A proposed approach moves variability support from the programming language to the language implementation level. This enables contextual variability in any application independently of whether the underlying language supports context-orientedprogramming. A Neverlang-based prototype implementation illustrates this approach.
Software Testing is an evaluation mechanism that signifies the importance of software quality assurance, which will evaluate a particular system to check if it will satisfy all the requirements specified by the user. ...
详细信息
ISBN:
(纸本)9781509020850
Software Testing is an evaluation mechanism that signifies the importance of software quality assurance, which will evaluate a particular system to check if it will satisfy all the requirements specified by the user. One cannot underestimate the importance of software testing. The wider perceptibility of software systems and the cost, which is related to the software failure are driving factors for efficient planning through testing. In this paper, we elaborate on the Unit testing and Data flow testing techniques applied on object-orientedprogramming and Aspect-orientedprogramming. Moreover a tabular contrast of both the techniques is presented representing the differences between both the techniques.
After being used to a procedural style of programming, programming in an object-oriented style seems to be difficult. The problem analysis skill is also important where it leads to designing solution for complex probl...
详细信息
ISBN:
(纸本)9781509010639
After being used to a procedural style of programming, programming in an object-oriented style seems to be difficult. The problem analysis skill is also important where it leads to designing solution for complex problems. In the process of problem analysis, it is big challenge for the students to identify classes, attributes, methods and association between the classes from a given problem statement/Scenario and then mapping to program code. The problem analysis is part of design thinking, where it consists of five phases Empathy (Emphasize), Define, Ideate, Prototype and Test. In this course we implemented a modified standard "Design Thinking Framework" through structured enquiry assessment, in our framework few phases are overlapping and it is defined using following phases-1. Define, 2. Ideate & Prototype, 3. Test. This framework is add-on to our previous practice where a comprehensive tutorial for "objectoriented Thinking" is conducted first to minimize students difficulties. Also it includes "laboratory experiment categorization" to help students in improving problem analysis and design skills. By using the above said approaches, it is observed that the students are able to use objectoriented concepts efficiently to solve problems, design solutions and performed better in semester end examination.
Dynamic and distributed systems require behavior adaptations for groups of objects. Group-based behavior adaptation mechanisms scope adaptations to objects matching certain conditions. The specification of groups can ...
详细信息
Dynamic and distributed systems require behavior adaptations for groups of objects. Group-based behavior adaptation mechanisms scope adaptations to objects matching certain conditions. The specification of groups can be implicit or explicit.
This paper presented a project-based remedial curriculum for teaching the C++ programming language and object-orientedprogramming (OOP) skills and concepts. The pedagogical approach of the proposed curriculum compris...
详细信息
This paper presented a project-based remedial curriculum for teaching the C++ programming language and object-orientedprogramming (OOP) skills and concepts. The pedagogical approach of the proposed curriculum comprises of a set of homemade projects for facilitating the students to quickly learn the essential C++ and OOP skills by accordingly implementing a large-scale communication software system. Based on the constructivist learning technology, the proposed project-based curriculum can effectively improve and enhance the learning effectiveness and interests of the students via the hands-on, minds-on, and learning by doing practices related to their lives. From the students' survey and grade assessment results, the proposed project-based curriculum and practical homemade projects demonstrates its effectiveness and feasibility for motivating the students' interests on C++ and OOP skills and incorporating these skills for developing practical and large-scale software.
暂无评论