Large-scale object-oriented(OO) software systems have recently been found to share global network characteristics such as small world and scale free,which go beyond the scope of traditional software measurement and ...
详细信息
Large-scale object-oriented(OO) software systems have recently been found to share global network characteristics such as small world and scale free,which go beyond the scope of traditional software measurement and assessment *** measure the complexity at various levels of granularity,namely graph,class(and object) and source code,we propose a hierarchical set of metrics in terms of coupling and cohesion-the most important characteristics of software,and analyze a sample of 12 open-source OO software systems to empirically validate the *** results of the correlations between cross-level metrics indicate that the graph measures of our set complement traditional software metrics well from the viewpoint of network thinking,and provide more effective information about fault-prone classes in practice.
object-oriented metrics have been validated empirically as measures of design complexity. These metrics can be used to mitigate potential problems in the software complexity. However, there are few studies that were c...
详细信息
object-oriented metrics have been validated empirically as measures of design complexity. These metrics can be used to mitigate potential problems in the software complexity. However, there are few studies that were conducted to formulate the guidelines, represented as threshold values, to interpret the complexity of the software design using metrics. Classes can be clustered into low and high risk levels using threshold values. In this paper, we use a statistical model, derived from the logistic regression, to identify threshold values for the Chidamber and Kemerer (CK) metrics. The methodology is validated empirically on a large open-source system-the Eclipse project. The empirical results indicate that the CK metrics have threshold effects at various risk levels. We have validated the use of these thresholds on the next release of the Eclipse project-Version 2.1-using decision trees. In addition, the selected threshold values were more accurate than those were selected based on either intuitive perspectives or on data distribution parameters. Furthermore, the proposed model can be exploited to find the risk level for an arbitrary threshold value. These findings suggest that there is a relationship between risk levels and object-oriented metrics and that risk levels can be used to identify threshold effects.
Computer-mediated teaching can be very effective in enhancing students' understanding of concepts and increasing their involvement in the classroom. This paper presents an interactive visual simulation tool to ass...
详细信息
Computer-mediated teaching can be very effective in enhancing students' understanding of concepts and increasing their involvement in the classroom. This paper presents an interactive visual simulation tool to assist instructors in demonstrating power system stability phenomena. Power flow computations, used to initialise the simulation, are carried out using Mat lab, whereas the simulation is implemented using Simulink. The Graphical User Interface (GUI), which controls the whole program and is constructed using C#, provides the capability to change system parameters/operating points interactively. To further the grasp of stability notions and reinforce the sense of seamless photorealistic interaction with the simulation, visual animation illustrating the synchronous generator along with virtual analogue meters, represented as ActiveX controls to portray inherent machine variables, are constructed. Several test cases, which cover various power system stability events, are described and analysed.
A key problem in compositional model checking of software systems is that typical model checkers accept only closed systems (runnable programs) and therefore a component cannot be model-checked directly. A typical sol...
详细信息
A key problem in compositional model checking of software systems is that typical model checkers accept only closed systems (runnable programs) and therefore a component cannot be model-checked directly. A typical solution is to create an artificial environment for the component such that its composition forms a runnable program that can be model-checked. Although it is possible to create a universal environment that performs all possible sequences and interleavings of calls of the component's methods, for practical purposes it is sufficient to capture in this way just the use of the component in a particular software system-this idea is expressed by the paradigm of assume-guarantee reasoning. The authors present an approach to assume-guarantee-based veri. cation of software systems in the context of the SOFA 2 component framework. They provide an overview of the approach to the construction of an artificial environment for the veri. cation of SOFA 2 components implemented in Java with the Java PathFinder model checker. They also show the benefits of their approach on results of experiments with a non-trivial software system and discuss its advantages over other approaches with similar goals.
Software engineering endeavours are typically based on and governed by the requirements of the target software;requirements identification is therefore an integral part of software development methodologies. Similarly...
详细信息
Software engineering endeavours are typically based on and governed by the requirements of the target software;requirements identification is therefore an integral part of software development methodologies. Similarly, engineering a software development methodology (SDM) involves the identification of the requirements of the target methodology. Methodology engineering approaches pay special attention to this issue;however, they make little use of existing methodologies as sources of insight into methodology requirements. The authors propose an iterative method for eliciting and specifying the requirements of a SDM using existing methodologies as supplementary resources. The method is performed as the analysis phase of a methodology engineering process aimed at the ultimate design and implementation of a target methodology. An initial set of requirements is first identified through analysing the characteristics of the development situation at hand and/or via delineating the general features desirable in the target methodology. These initial requirements are used as evaluation criteria;refined through iterative application to a select set of relevant methodologies. The finalised criteria highlight the qualities that the target methodology is expected to possess, and are therefore used as a basis for de. ning the final set of requirements. In an example, the authors demonstrate how the proposed elicitation process can be used for identifying the requirements of a general object-oriented SDM. Owing to its basis in knowledge gained from existing methodologies and practices, the proposed method can help methodology engineers produce a set of requirements that is not only more complete in span, but also more concrete and rigorous.
Simulation-based optimization for industrial process lines is discussed in this paper. Our approach combines multidisciplinary modeling, modern sensitivity analysis methodology as well as multiobjective optimization b...
详细信息
Simulation-based optimization for industrial process lines is discussed in this paper. Our approach combines multidisciplinary modeling, modern sensitivity analysis methodology as well as multiobjective optimization by means of object-oriented software design principles. As a result, a simulation and optimization approach that can be extended and modified due to users' needs can be developed. Our approach is illustrated by a real-world example from papermaking industry.
Modeling concentrated solutions demands the use of ion-interaction models such as Pitzer equations, which involve a large number of operations. Implementation of these models in large reactive transport simulations si...
详细信息
Modeling concentrated solutions demands the use of ion-interaction models such as Pitzer equations, which involve a large number of operations. Implementation of these models in large reactive transport simulations significantly increases the computation time with respect to traditional activity coefficient models. CPU time depends on the efficiency of (1) the Pitzer algorithm itself, and (2) the speciation algorithm. We present an implementation of the Pitzer model that improves traditional implementations by using a compact matrix approach. This facilitates programming and computation of derivatives. The use of analytic derivatives allows the use of Newton-Raphson algorithms, which converge quickly. The approach is implemented in an object-oriented programming (OOP) scheme by creating an entity that represents the thermodynamic behavior of both dilute and concentrated solutions. This entity is readily linked to any geochemical or reactive transport codes. We show that the code is robust, in that its implementation improves the convergence in a broad range of geochemical calculations, and efficient, in that its CPU time compares favorably with other codes. (C) 2009 Elsevier Ltd. All rights reserved.
Fundamental concepts of programming and data structures are usually taught with graphical tools such as simulations and animations. Conflictive animations have been proposed to improve students' understanding of p...
详细信息
Fundamental concepts of programming and data structures are usually taught with graphical tools such as simulations and animations. Conflictive animations have been proposed to improve students' understanding of programming concepts. In conflictive animations, errors are introduced in the animations to motivate students to constantly check their knowledge against what is being animated. We have implemented a framework in an animation tool that allows the automatic generation of conflictive animations of statements, expressions, and other programming constructs. The automatic generation is challenging due to the alternative paths execution can take and their side effects. The architecture of the tool consists of several layers that can alter the normal interpretation or visualization of the program. The framework and the tool have been evaluated by creating conflictive animations of two programming concepts-for-loops and inheritance-and by running a set of 27 examples taken from Java textbooks. Of these, over two thirds (19) required no modification or only minor changes to create the conflictive animations. The reasons that the remaining examples did not generate conflictive animations automatically were divided between the layered architecture used and the example program itself.
Component-based software development is increasingly more commonplace and is widely used in the development of commercial software systems. This has led to the existence of several research works focusing on software ...
详细信息
Component-based software development is increasingly more commonplace and is widely used in the development of commercial software systems. This has led to the existence of several research works focusing on software component-based systems quality. The majority of this research proposes quality models focused on component-based systems in which different measures are proposed. In general, the result of assessing the measures is a number, which is necessary to determine the component-based system quality level. However, understanding and interpreting the data set is not an easy task. In order to facilitate the interpretation of results, this study selects and adapts a specific visual metaphor with which to show component-based systems quality. A tool has additionally been developed which permits the automatic assessment of the measures to be carried out. The tool also shows the results visually and proposes corrective actions through which to improve the level of quality. A case study is used to assess and to show the quality of a real-world component-based software system in a graphic manner.
Refactoring consists in restructuring an object-oriented program without changing its behaviour. In this paper, we present refactorings as transformation rules for programs written in a refinement language inspired on...
详细信息
Refactoring consists in restructuring an object-oriented program without changing its behaviour. In this paper, we present refactorings as transformation rules for programs written in a refinement language inspired on Java that allows reasoning about object-oriented programs and specifications. A set of programming laws is available for the imperative constructs of this language as well as for its object-oriented features;soundness of the laws is proved against a weakest precondition semantics, The proof that the refactoring rules preserve behaviour (semantics) is accomplished by the application of these programming laws and data simulation. As illustration of our approach to refactoring, we use our rules to restructure a program to be in accordance with a design pattern. (C) 2009 Elsevier B.V. All rights reserved.
暂无评论