共查询到20条相似文献,搜索用时 0 毫秒
1.
ContextAspect-oriented programming (AOP) has been promoted as a means for handling the modularization of software systems by raising the abstraction level and reducing the scattering and tangling of crosscutting concerns. Studies from literature have shown the usefulness and application of AOP across various fields of research and domains. Despite this, research shows that AOP is currently used in a cautious way due to its natural impact on testability and maintainability.ObjectiveTo realize the benefits of AOP and to increase its adoption, aspects developed using AOP should be subjected to automated testing. Automated testing, as one of the most pressing needs of the software industry to reduce both effort and costs in assuring correctness, is a delicate issue in testing aspect-oriented programs that still requires advancement and has a way to go before maturity.MethodPrevious attempts and studies in automated test generation process for aspect-oriented programs have been very limited. This paper proposes a rigorous automated test generation technique, called RAMBUTANS, with its tool support based on guided random testing for the AspectJ programs.ResultsThe paper reports the results of a thorough empirical study of 9 AspectJ benchmark programs, including non-trivial and larger software, by means of mutation analysis to compare RAMBUTANS and the four existing automated AOP testing approaches for testing aspects in terms of fault detection effectiveness and test effort efficiency. The results of the experiment and statistical tests supplemented by effect size measures presented evidence of the effectiveness and efficiency of the proposed technique at 99% confidence level (i.e. p < 0.01).ConclusionThe study showed that the resulting randomized tests were reasonably good for AOP testing, thus the proposed technique could be worth using as an effective and efficient AOP-specific automated test generation technique. 相似文献
2.
Alexandre Bragança Ricardo J. Machado 《Innovations in Systems and Software Engineering》2009,5(1):65-78
The alignment of the software architecture and the functional requirements of a system is a demanding task because of the
difficulty in tracing design elements to requirements. The four-step rule set (4SRS) is a unified modeling language (UML)-based
model-driven method for single system development which provides support to the software architect in this task. This paper
presents an evolution of the 4SRS method aimed at software product lines. In particular, we describe how to address the transformation
of functional requirements (use cases) into component-based requirements for the product line architecture. The result is
a UML-based model-driven method that can be applied in combination with metamodeling tools such as the eclipse modeling framework
(EMF) to derive the architecture of software product lines. We present our approach in a practical way and illustrate it with
an example. We also discuss how our proposals are related to the work of other authors. 相似文献
3.
《Expert systems with applications》2014,41(2):445-456
Complex Event Processing (CEP) is an emerging technology which allows us to efficiently process and correlate huge amounts of data in order to discover relevant or critical situations of interest (complex events) for a specific domain. This technology requires domain experts to define complex event patterns, where the conditions to be detected are specified by means of event processing languages. However, these experts face the handicap of defining such patterns with editors which are not user-friendly enough. To solve this problem, a model-driven approach for facilitating user-friendly design of complex event patterns is proposed and developed in this paper. Besides, the proposal has been applied to different domains and several event processing languages have been compared. As a result, we can affirm that the presented approach is independent both of the domain where CEP technology has to be applied to and of the concrete event processing language required for defining event patterns. 相似文献
4.
The Semantic Web has widely spread in the last 10 years as a suitable web platform to support semantics and expressive information seeking. However, one of the main problems with this paradigm is still the representation and manipulation of ontologies as well as the complex relationships that they implicitly represent. Actually, this remains a challenge when unskilled users have to deal with this abstract representation in order to carry out daily solving-problem activities (e.g., designing web applications based on ontologies). This probably made the Semantic Web to decrease in popularity, also being commercially unsupported and overcame by recent technologies and services based on the Web 2.0, the emerging end-user-focused web concept. All in all, the specification of Model-Based User Interfaces fits very well to both paradigms. Accordingly, the aim of this work is to provide new ways of modeling user interfaces based on semantic models that better fit the domain problem. At the same time, we think of exploiting interactive features through current and modern end-user programming elements based on the Web 2.0, finally contributing to an architecture that supports higher interactive end-user interfaces on the web. 相似文献
5.
Aspect-oriented programming (AOP) is a promising technology that supports separation of crosscutting concerns (i.e., functionality that tends to be tangled with, and scattered through the rest of the system). In AOP, a method-like construct named advice is applied to join points in the system through a special construct named pointcut. This mechanism supports the modularization of crosscutting behavior; however, since the added interactions are not explicit in the source code, it is hard to ensure their correctness. To tackle this problem, this paper presents a rigorous coverage analysis approach to ensure exercising the logic of each advice - statements, branches, and def-use pairs - at each affected join point. To make this analysis possible, a structural model based on Java bytecode - called PointCut-based Def-Use Graph (PCDU) - is proposed, along with three integration testing criteria. Theoretical, empirical, and exploratory studies involving 12 aspect-oriented programs and several fault examples present evidence of the feasibility and effectiveness of the proposed approach. 相似文献
6.
1cc is a retargetable, production compiler for ANSI C; it has been ported to the VAX, Motorola 68020, SPARC, and MIPS R3000, and some versions have been in use for over a year and a half. It is smaller and faster than generally available alternatives, and its local code is comparable. This paper describes the interface between the target-independent front end and the target-dependent back ends. The interface consists of shared data structures, a few functions, and a dag language. While this approach couples the front and back ends tightly, it results in efficient, compact compilers. The interface is illustrated by detailing a code generator that emits naive VAX code. 相似文献
7.
A survey of approaches for the visual model-driven development of next generation software-intensive systems 总被引:1,自引:0,他引:1
Software-intensive systems of the future are expected to be highly distributed and to exhibit adaptive and anticipatory behavior when operating in highly dynamic environments and interfacing with the physical world. Therefore, visual modeling techniques to address these software-intensive systems require a mix of models from a multitude of disciplines such as software engineering, control engineering, and business process engineering. As in this concert of techniques software provides the most flexible element, the integration of these different views can be expected to happen in the software. The software thus includes complex information processing capabilities as well as hard real-time coordination between distributed technical systems and computers.In this article, we identify a number of general requirements for the visual model-driven specification of next generation software-intensive systems. As business process engineering and software engineering are well integrated areas and in order to keep this survey focused, we restrict our attention here to approaches for the visual model-driven development of adaptable software-intensive systems where the integration of software engineering with control engineering concepts and safety issues are important. In this survey, we identify requirements and use them to classify and characterize a number of approaches that can be employed for the development of the considered class of software-intensive systems. 相似文献
8.
This paper presents the design, implementation, and applications of a software testing tool, TAO, which allows users to specify and generate test cases and oracles in a declarative way. Extended from its previous grammar-based test generation tool, TAO provides a declarative notation for defining denotational semantics on each productive grammar rule, such that when a test case is generated, its expected semantics will be evaluated automatically as well, serving as its test oracle. TAO further provides a simple tagging mechanism to embed oracles into test cases for bridging the automation between test case generation and software testing. Two practical case studies are used to illustrate how automated oracle generation can be effectively integrated with grammar-based test generation in different testing scenarios: locating fault-inducing input patterns on Java applications; and Selenium-based automated web testing. 相似文献
9.
David Lugato Céline Bigot Yannick Valot Jean-Pierre Gallois Sébastien Gérard François Terrier 《International Journal on Software Tools for Technology Transfer (STTT)》2004,5(2-3):124-139
UML-based methodologies take more and more space in the software development domain. In addition, the need to validate applications as early as possible in the development cycle is now mandatory to satisfy cost and time-to-market constraints. In this context, this paper describes, first, how to bridge the gap between semiformal UML models and a formal technology ensuring test case generation. Second, the formal tool used to automatically generate test sequences, named AGATHA, is described in minute detail. Finally, this approach is illustrated throughout by a toy example of an elevator system. 相似文献
10.
In this work, we present an automatic code generation process from conceptual models. This process incorporates the use of design patterns in OO-Method, an automated software production method, which is built on a formal object-oriented model called OASIS. Our approach defines a precise mapping between conceptual patterns, design patterns and their implementation. Design patterns make the code generation process easy because they provide methodological guidance to go from the problem space to the solution space. In order to understand these ideas, we introduce a complete code generation process for conceptual models that have dynamic specialization relationships. This proposal can be incorporated into CASE tools, making the automation of the software production process feasible. 相似文献
11.
MDA proposes a new paradigm for software development in general. We claim that MDA could be beneficial for embedded software development, especially if it is extended to address the special needs of embedded systems. The paper consists of two sections: the first is a brief synopsis on how MDA ought to be extended to handle embedded software development, while the second illustrates the concepts in practice using a prototype modeling language and tool chain designed for developing mission computing software. 相似文献
12.
There has been much recent interest in synthesis algorithms that generate finite state machines from scenarios of intended system behavior. One of the uses of such algorithms is in the transition from requirements scenarios to design. Despite much theoretical work on the nature of these algorithms, there has been very little work on applying the algorithms to practical applications. In this paper, we apply the Whittle & Schumann synthesis algorithm [32] to a component of an air traffic advisory system under development at NASA Ames Research Center. We not only apply the algorithm to generate state machine designs from scenarios but also show how to generate code from the generated state machines using existing commercial code generation tools. The results demonstrate the possibility of generating application code directly from scenarios of system behavior. 相似文献
13.
Francis P. Russell Michael R. MellorPaul H.J. Kelly Olav Beckmann 《Science of Computer Programming》2011,76(4):227-242
Active libraries can be defined as libraries which play an active part in the compilation, in particular, the optimisation of their client code. This paper explores the implementation of an active dense linear algebra library by delaying evaluation of expressions built using library calls, then generating code at runtime for the compositions that occur. The key optimisations in this context are loop fusion and array contraction.Our prototype C++ implementation, DESOLA, automatically fuses loops arising from different client calls, identifies unnecessary intermediate temporaries, and contracts temporary arrays to scalars. Performance is evaluated using a benchmark suite of linear solvers from ITL (Iterative Template Library), and is compared with MTL (Matrix Template Library), ATLAS (Automatically Tuned Linear Algebra) and IMKL (Intel Math Kernel Library). Excluding runtime compilation overheads (caching means they occur only on the first iteration), for larger matrix sizes, performance matches or exceeds MTL; when fusion of matrix operations occurs, performance exceeds that of ATLAS and IMKL. 相似文献
14.
Otávio Augusto Lazzarini Lemos Sushil Bajracharya Cristina Lopes 《Information and Software Technology》2011,53(4):294-306
Context
Software developers spend considerable effort implementing auxiliary functionality used by the main features of a system (e.g., compressing/decompressing files, encryption/decription of data, scaling/rotating images). With the increasing amount of open source code available on the Internet, time and effort can be saved by reusing these utilities through informal practices of code search and reuse. However, when this type of reuse is performed in an ad hoc manner, it can be tedious and error-prone: code results have to be manually inspected and integrated into the workspace.Objective
In this paper we introduce and evaluate the use of test cases as an interface for automating code search and reuse. We call our approach Test-Driven Code Search (TDCS). Test cases serve two purposes: (1) they define the behavior of the desired functionality to be searched; and (2) they test the matching results for suitability in the local context. We also describe CodeGenie, an Eclipse plugin we have developed that performs TDCS using a code search engine called Sourcerer.Method
Our evaluation consists of two studies: an applicability study with 34 different features that were searched using CodeGenie; and a performance study comparing CodeGenie, Google Code Search, and a manual approach.Results
Both studies present evidence of the applicability and good performance of TDCS in the reuse of auxiliary functionality.Conclusion
This paper presents an approach to source code search and its application to the reuse of auxiliary functionality. Our exploratory evaluation shows promising results, which motivates the use and further investigation of TDCS. 相似文献15.
A formalism for image representation in the combined frequency-position space is presented using the generalized Gabor approach. This approach uses elementary functions to which the human visual system is particularly sensitive and which are efficient for the analysis and synthesis of visual imagery. The formalism is also compatible with the implementation of a variable resolution system wherein image information is nonuniformly distributed across the visual field in accordance with the human visual system's ability to process it. When used with a gaze-slaved visual display system, imagery generated using the techniques described here affords a combination of high resolution and wide field-of-view. This combination is particularly important in high-fidelity, computergenerated, visual environments as required, for instance, in flight simulators. 相似文献
16.
《Expert systems with applications》2014,41(6):2793-2806
In new service development (NSD), a concept design that influences the direction of other activities is considered as a crucial stage. Although several methods exist, most of them cannot reflect responses of future potential customers because they assume that customers have the same responses in the future. Therefore, by using agent-based simulation (ABS) that can understand the future status of a service system, this paper suggests a new approach to creating the most promising service concept. The proposed approach considers the future trends of various customer responses and service concept strategies of firms by using ABS, generating a more accurate concept. By applying the suggested approach to a healthcare industry, its practicability and utility are verified. The novel approach based on the agent-based simulation method, which has customer, service provider, and competitor agents, is expected to be useful for service providers in a competitive market. 相似文献
17.
Visualizing and simulating formal models in a flexible way becomes increasingly important for the design of complex systems. With GenGED, a tool is available which automatically generates a visual environment to process (create, edit, check, simulate) visual models over a specified visual language. Both the specification of the language and the model manipulation are based on graph grammars. In this paper, we present the means to transform visual models into application oriented views, called scenario views. We show how a model is consistently transferred to a scenario views and animated there. The extension of GenGED concerning scenario animation is discussed. 相似文献
18.
Frank D. Macías-Escrivá Rodolfo Haber Raul del Toro Vicente Hernandez 《Expert systems with applications》2013,40(18):7267-7279
Self-adaptive software is capable of evaluating and changing its own behavior, whenever the evaluation shows that the software is not accomplishing what it was intended to do, or when better functionality or performance may be possible. The topic of system adaptivity has been widely studied since the mid-60s and, over the past decade, several application areas and technologies relating to self-adaptivity have assumed greater importance. In all these initiatives, software has become the common element that introduces self-adaptability. Thus, the investigation of systematic software engineering approaches is necessary, in order to develop self-adaptive systems that may ideally be applied across multiple domains. The main goal of this study is to review recent progress on self-adaptivity from the standpoint of computer sciences and cybernetics, based on the analysis of state-of-the-art approaches reported in the literature. This review provides an over-arching, integrated view of computer science and software engineering foundations. Moreover, various methods and techniques currently applied in the design of self-adaptive systems are analyzed, as well as some European research initiatives and projects. Finally, the main bottlenecks for the effective application of self-adaptive technology, as well as a set of key research issues on this topic, are precisely identified, in order to overcome current constraints on the effective application of self-adaptivity in its emerging areas of application. 相似文献
19.
Comparison and evaluation of code clone detection techniques and tools: A qualitative approach 总被引:2,自引:0,他引:2
Over the last decade many techniques and tools for software clone detection have been proposed. In this paper, we provide a qualitative comparison and evaluation of the current state-of-the-art in clone detection techniques and tools, and organize the large amount of information into a coherent conceptual framework. We begin with background concepts, a generic clone detection process and an overall taxonomy of current techniques and tools. We then classify, compare and evaluate the techniques and tools in two different dimensions. First, we classify and compare approaches based on a number of facets, each of which has a set of (possibly overlapping) attributes. Second, we qualitatively evaluate the classified techniques and tools with respect to a taxonomy of editing scenarios designed to model the creation of Type-1, Type-2, Type-3 and Type-4 clones. Finally, we provide examples of how one might use the results of this study to choose the most appropriate clone detection tool or technique in the context of a particular set of goals and constraints. The primary contributions of this paper are: (1) a schema for classifying clone detection techniques and tools and a classification of current clone detectors based on this schema, and (2) a taxonomy of editing scenarios that produce different clone types and a qualitative evaluation of current clone detectors based on this taxonomy. 相似文献
20.
Agile methods rapidly replacing traditional methods at Nokia: A survey of opinions on agile transformation 总被引:2,自引:0,他引:2