The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
The extended finite state machine (EFSM) is an extension of the finite state machine, which creates input and output parameters, context variables, operations and predicates. It is applied widely in the fields of software engineering since there are many tools that support software development activities based on the EFSM models. However, the theoretical foundation of EFSM is not yet well-developed...
The coming standard for C++ will contain language extensions. It can be expected that there will be some years between the release of the new standard and the time when most compilers will be compliant, like it happened for the 1998 standard. Concepts are an extension proposed for the new standard. We show how we can translate ConceptC++ code into pure C++03 using the C++ template mechanism. Such...
The problem of digital preservation is one of the most challenging research problems today and is faced by different communities with different approaches. As software and hardware evolutes the problem receives growing interest by researchers and practitioners alike. Different approaches have been made to find either individual solutions for specific fields of interest or general theories applicable...
Online backup service software provides automated, offsite, secure online data backup and recovery for remote computers. How to satisfy functional requirements and guarantee the fault tolerance of online backup service software is a difficult but crucial problem faced by software designers. In this paper, we investigate to incorporate the fault tolerant techniques in the system design, and propose...
In this paper, we define and illustrate a new form of attack in the context of software services: the software-based need-to-know (SN2K) attack. SN2K attacks can be carried out by dishonest provider of a software service so that it can maliciously gain access to sensitive information, even if the service does {\em not need to know} such data in order to compute the functionalities offered by it. We...
This paper presents our study on rule-based equivalence checking of system-level design descriptions. The rule-based equivalence checking proves the equivalence of two system-level design descriptions by applying equivalence rules in a bottom-up manner. In this paper, we first introduce our intermediate representation of system-level design, and then show a set of representative equivalence rules...
This paper reports on a study in which developers' cognitive levels were categorised and measured while they mapped a sequence diagram to the related code based on a usage based reading scenario. Results indicate that applying the usage-based reading technique to map a sequence diagram to the underlying code, facilitates a developer to operate at the knowledge and comprehension levels of Bloom's cognitive...
Comprehending an unfamiliar code fragment requires an awareness of explicit usage directives that may be present in the documentation of some invoked functions. Since it is not practical for developers to thoroughly investigate every call, directives may be missed and errors may occur. We previously reported on a tool called eMoose, which highlights calls to methods with associated directives, and...
For the realization of language-independent, effective, and user-friendly model versioning systems, generic and efficient conflict detection is essential for correct and complete identification of conflicts caused by parallel modifications on one artifact. Usually, the genericity of the conflict detection costs a high price: language-specific operations and refactorings often remain undetected. Consequently,...
Programmers copy and paste code for many reasons. Regardless of the specific reasons, similar code fragments (clones) are introduced into software systems. Like other software artifacts, clones may require attention and effort from programmers so that they can be understood, and correctly adapted and evolved. More specifically, when understanding and maintaining clones, programmers need to know where...
Understanding software through dynamic analysis has been a popular activity in the past decades. One of the most common approaches in this respect is execution trace analysis: among our own efforts in this context is EXTRAVIS, a tool for the visualization of large traces. Similar to other trace visualization techniques, our tool has been validated through anecdotal evidence, but should also be quantitatively...
An approach is presented that automatically determines if a given source code change impacts the design (i.e., UML class diagram) of the system. This allows code-to-design traceability to be consistently maintained as the source code evolves. The approach uses lightweight analysis and syntactic differencing of the source code changes to determine if the change alters the class diagram in the context...
When software repositories are mined, two distinct sources of information are usually explored: the history log and snapshots of the system. Results of analyses derived from these two sources are biased by the frequency with which developers commit their changes. We argue that the usage of mainstream SCM systems influences the way that developers work. For example, since it is tedious to resolve conflicts...
In this paper we examine the search behaviours of developers using the Strathcona source code example recommendation system over the period of three years. In particular, we investigate the number of query facts software engineers included in their queries as they searched for source code examples. We found that in practice developers predominantly searched with multiple search facts and tended to...
The self-adaptation of a software system is a complex process that depends on the system requirements, its operational state and environment, which may change during the system operational lifetime. Hence, the process for coordinating the self-adaptation should also be adaptable to changes that may occur during run-time. As a means for coordinating the self-adaptation process of software systems,...
Automated techniques aid in minimizing the overhead associated with the capture and maintenance of trace links. However, many challenges to automated traceability remain, such as linking heterogeneous artifacts and capturing custom link semantics. In this position paper, we propose a combination of techniques, including prospective link capture, open hypermedia, and rules, in order to address these...
The self-adaptation of software system is a complex process that depends on several factors that may change during the system operational lifetime. Hence, the process for coordinating the self-adaptation should also be adaptable to changes that may occur during run-time. As the means for coordinating the self-adaptation process of software systems, we are applying workflows that are dynamically generated...
Different flavours of recommendation systems have been proposed to help software developers perform software evolution tasks. A number of these recommendation systems are based on changesets. When changeset information is used, recommendations are based on only the end result of the activity undertaken to complete a task. In this paper, we report on an investigation that compared how recommendations...
Source code search is an important activity for programmers working on a change task to a software system. We are at the early stages of a research program that is aiming to answer three research questions: (1) How effectively can programmers express (using today's tools) the information they are seeking? (2) How effectively can programmers determine which of the matches returned from their searches...
Managing features that have fine-grained impact on base programs is a challenging task in software product line development. Despite well-known problems, preprocessing (e.g., cpp) is often used to handle features by including/excluding variant code to/from a base program. In this paper, we show how some of common preprocessing problems can be alleviated with a query-based environment that assists...
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.