Model-driven development (MDD) is a software engineering discipline which suggests that software development should be done at the modelling level and that applications should be generated from models. A key concept o...
详细信息
Model-driven development (MDD) is a software engineering discipline which suggests that software development should be done at the modelling level and that applications should be generated from models. A key concept of MDD is a model transformation that generates software artifacts, such as code, from models. Since models are 'first-class' citizens in MDD, their verification and validation are important tasks and so are the model transformations. A transformation contract, which is also a model, is a specification of what a particular model transformation must implement and essentially specifies a relation between metamodels and properties that must hold on such a relation. The authors have defined a design pattern that enforces transformation contract correctness over model transformations implementations. This study reports on (i) the proposed design pattern, (ii) the design of the UMLtoEJB model transformation that generates application code, following the Enterprise Java Beans standard, from class diagrams described in the Unified Modelling Language, and (iii) a discussion on how the transformation contracts approach may help different actors, in an MDD software development process with transformation contracts, to identify erroneous situations.
object-Z is an extension of the Z notation which facilitates specification of large, complex software by defining a system as a collection of independent classes. A number of contributions have been made so far to map...
详细信息
object-Z is an extension of the Z notation which facilitates specification of large, complex software by defining a system as a collection of independent classes. A number of contributions have been made so far to map object-Z to various object-oriented languages. However, the given mapping approaches do not cover several object-Z specification constructs, such as class union, object aggregation, object containment and some of the operation operators. Also, in much of the existing work, mapping rules are given in a very abstract form. In other words, they do not consider all cases in a detailed way needed to automate the mapping procedure. In our previous work, we partially tackled these issues;however, in this paper, we present a much more comprehensive way to animate object-Z specifications using C++. The given method covers some constructs that have not been addressed in our previous work. Also, mapping rules are described with enough details facilitating automation. Finally, we consider some level of user interaction in our new method which increases the flexibility and efficiency of final codes from the user point of view. (C) 2012 Sharif University of Technology. Production and hosting by Elsevier B.V. All rights reserved.
Modern IDEs such as Eclipse offer static views of the source code, but such views ignore information about the runtime behavior of software systems. Since typical object-oriented systems make heavy use of polymorphism...
详细信息
Modern IDEs such as Eclipse offer static views of the source code, but such views ignore information about the runtime behavior of software systems. Since typical object-oriented systems make heavy use of polymorphism and dynamic binding, static views will miss key information about the runtime architecture. In this paper, we present an approach to gather and integrate dynamic information in the Eclipse IDE with the goal of better supporting typical software maintenance activities. By means of a controlled experiment with 30 professional developers, we show that for typical software maintenance tasks, integrating dynamic information into the Eclipse IDE yields a significant 17.5 percent decrease of time spent while significantly increasing the correctness of the solutions by 33.5 percent. We also provide a comprehensive performance evaluation of our approach.
The authors present a suite to assist in the creation of musical pieces, whose foundation lies on fractals, fuzzy logic and expert systems. Even though algorithmic music has been explored, some gaps still exist. The f...
详细信息
The authors present a suite to assist in the creation of musical pieces, whose foundation lies on fractals, fuzzy logic and expert systems. Even though algorithmic music has been explored, some gaps still exist. The favored approach has consisted in mapping numbers to notes to create appealing pieces. This, we contend, is a necessary but not a sufficient condition. Our suite, besides the necessary mapping, possesses the following advantages. First, it is possible to define notes, tempos, and notes durations. Notes evolve according to the selected fractal. Tempos and durations can remain fixed or they also can follow a fractal. Second, it is possible to translate the resultant fractal notes into notes belonging to a musical scale. This is done by firing appropriate rules in a rule base. Third, interpretation templates are provided. Also, melodies or harmonies are available. The suite currently contains several known fractal systems, and we also proposed one dynamical, recursive computation based on Mamdani fuzzy rule bases. The suite we present helps promoting and monitoring the creative process of composing musical scores. The actual implementation of the suite was done on the Java language. (C) 2012 Elsevier Ltd. All rights reserved.
This study develops and empirically tests the idea that the impact of structural complexity on perfective maintenance of object-oriented software is significantly determined by the team strategy of programmers (indepe...
详细信息
This study develops and empirically tests the idea that the impact of structural complexity on perfective maintenance of object-oriented software is significantly determined by the team strategy of programmers (independent or collaborative). We analyzed two key dimensions of software structure, coupling and cohesion, with respect to the maintenance effort and the perceived ease-of-maintenance by pairs of programmers. Hypotheses based on the distributed cognition and task interdependence theoretical frameworks were tested using data collected from a controlled lab experiment employing professional programmers. The results show a significant interaction effect between coupling, cohesion, and programmer team strategy on both maintenance effort and perceived ease-of-maintenance. Highly cohesive and low-coupled programs required lower maintenance effort and were perceived to be easier to maintain than the low-cohesive programs and high-coupled programs. Further, our results would predict that managers who strategically allocate maintenance tasks to either independent or collaborative programming teams depending on the structural complexity of software could lower their team's maintenance effort by as much as 70 percent over managers who use simple uniform resource allocation policies. These results highlight the importance of achieving congruence between team strategies employed by collaborating programmers and the structural complexity of software.
In object-oriented systems, runtime memory is composed of an object graph in which objects refer to other objects. This graph of objects evolves while the system is running. Graph exporting and swapping are two import...
详细信息
In object-oriented systems, runtime memory is composed of an object graph in which objects refer to other objects. This graph of objects evolves while the system is running. Graph exporting and swapping are two important object graph operations. Exporting refers to copying the graph to some other memory so that it can be loaded by another system. Swapping refers to moving the graph to a secondary memory (e.g., a hard disk) to temporary release part of the primary memory (e.g., RAM). Exporting and swapping are achieved in different ways and the speed in the presence of large object graphs is critical. Nevertheless, most of the existing solutions do not address well this issue. Another challenge is to deal with common situations where objects outside the exported/swapped graph point to objects inside the graph. To correctly load back an exported subgraph, it is necessary to compute and export extra information that is not explicit in the object subgraph. This extra information is needed because certain objects may require to be reinitialized or recreated, to run specific code before or after the loading, to be updated to a new class definition, etc. In this paper, we present all general problems to our knowledge about object exporting and swapping. As a case of study, we present an analysis of ImageSegment, a fast solution to export and swap object graphs, developed by Ingalls. ImageSegment addresses the speed problems in an efficient way, as shown by the results of several benchmarks we have conducted using Pharo Smalltalk. However, ImageSegment is not a panacea since it still has other problem that hampers its general use. (C) 2011 Elsevier Ltd. All rights reserved.
Laboratory information management systems (LIMS) is designed considering the need of analytical laboratories to carry out the research in fast, efficient and transparent manner with better accessibility of the instrum...
详细信息
Laboratory information management systems (LIMS) is designed considering the need of analytical laboratories to carry out the research in fast, efficient and transparent manner with better accessibility of the instruments. Its development started as an in-house project then moved to custom built solutions followed with open source LIMS, first LIMS were developed in the pharmaceutical and related industries for use as a Quality Assurance/Quality Control (QA/QC) tool in the early 1980's by in-house development departments or under contract by external software houses. Further, it is commercially developed by using the latest tools in information technology and based on the need of the laboratory it has got many varieties. Various sectors like agriculture, environmental and water, food and beverage, manufacturing, product quality and cyber forensic analysis etc. uses full-enterprise LIMS in their operations. It was found that the LIMS applications are not running properly due to its limitation such as improper installation, poor implementation, lack of technical access etc. This paper highlights the review of developmental stages of LIMS and some shortcomings for attaining the total quality management in a laboratory that ensure efficiency, enhanced productivity, better utilization of resources and security measures etc. An effective management system totally depends on the laboratory infrastructure. Hence, proper study of the laboratory functionalities is required before going ahead with the solution. (C) 2012 Elsevier B.V. All rights reserved.
This paper presents an object-oriented architecture for structural design software. The architecture's novel features are the representation of an artifact with distinct levels of idealization, a hierarchy of clas...
详细信息
This paper presents an object-oriented architecture for structural design software. The architecture's novel features are the representation of an artifact with distinct levels of idealization, a hierarchy of classification within each of these levels, and the appropriate separation of software components. These enable seamless integration of geometric modeling and structural analysis in an interactive environment, extensibility of modeling and analysis capabilities, and integration of interactive multi-objective optimization. The paper presents a design environment implemented on the basis of the architecture, and demonstrates the benefits of refocusing engineering software from analysis to design. (C) 2012 Elsevier Ltd. All rights reserved.
The motivation of this study is to bridge the gap between component providers and component users, especially in the area of component evaluation, using component information flow (CIF) measurement and multidimensiona...
详细信息
The motivation of this study is to bridge the gap between component providers and component users, especially in the area of component evaluation, using component information flow (CIF) measurement and multidimensional approaches for measurement interpretation. By measuring the design of component-based software systems (CBSS), software designers, testers and maintainers may be able to locate weaknesses in the system design and to estimate the effort required to test as well as the cost of maintenance. This study proposes a CIF based on inter-component flow and intra-component flow. Moreover, a set of metrics based on the CIF was developed to characterise and evaluate the effect of the component design size on the quality of CBSS design. The theoretical evaluation results indicated that the proposed metrics are valid size measures. An application that demonstrates the intuitiveness of the mentioned approach is also presented. Results show that multidimensional analysis of design size appears promising as a means of capturing the quality of the CBSS design in question.
The CRONE toolbox, developed since the nineties by the CRONE team, is a Matlab toolbox dedicated to fractional calculus and its applications in signal processing and automatic control. It is currently evolving toward ...
详细信息
The CRONE toolbox, developed since the nineties by the CRONE team, is a Matlab toolbox dedicated to fractional calculus and its applications in signal processing and automatic control. It is currently evolving toward an object-oriented version, which allows many enhancements. Three main classes, dedicated to fractional system representations namely fractional transfer functions (frac_tf), fractional zeros poles and gain (frac_zpk), and fractional state-space (frac_ss), are developed. All three user classes are children of a parent class (frac_lti) that contains some common attributes of fractional systems. Among the enhancements of the objectprogramming of the CRONE toolbox is the overloading of basic operators (+, -, x, /, .x, aEuro broken vertical bar) and standard Matlab scripts (lsim, bode, nichols, aEuro broken vertical bar) for the new classes. As a consequence, an end-user familiar with standard Matlab operators and scripts can use straightforwardly the CRONE toolbox. The main objective of this paper is to present class diagrams and principle features of the object-oriented CRONE toolbox, which can be downloaded at http://***.
暂无评论