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.
Packet forwarding in Software-Defined Networks (SDN) relies on a centralised network controller which enforces network policies expressed as forwarding rules. Rules are deployed as sets of entries into network device tables. With heterogeneous devices, deployment is strongly bounded by the respective table constraints (size, lookup time, etc.) and forwarding pipelines. Hence, minimising the overall...
Mutation testing is known as an effective method for evaluating test sets in terms of their error-revealing capability. When applying mutation testing, it is necessary to identify and filter out the equivalent mutants, i.e. mutants that despite their syntactical difference have the same semantic as the original program. Due to the undecidable nature of the problem of determining whether two programs...
Popularization of process approach as a standard necessitates changing the ways of defining and identifying requisite competencies. They should be seen in the framework of tasks implemented within the business process. The complex nature of competencies requires expressive forms of description regarding their multidimensional character therefore codification of competencies is the area predestinated...
In the paper we describe a formalization of the notion of a nominative data with simple names and complex values in the Mizar proof assistant. Such data can be considered as a partial variable assignment which allows arbitrarily deep nesting and can be useful for formalizing semantics of programs that operate in real time environment and/or process complex data structures and for reasoning about the...
Many techniques of software vulnerability exploitation rely on deep and comprehensive analysis of vulnerable program binaries. If a copy of the vulnerable software is available to attackers, they can compose their attack scripts and payloads by studying the sample copy and launch attacks on other copies of the same software in deployment. By transforming software into different forms before deployment,...
In large code repositories, the probability of functions to repeat across projects is high. This type of functional redundancy (FR) is desirable for recent code reuse and repair approaches. Yet, FR is hard to measure because it is closely related to program equivalence, which is an undecidable problem. This is one of the reasons most studies that investigate redundancy focus on syntactic rather than...
Programmers always fix bugs when maintaining software. Previous studies showed that developers apply repeated bug fixes—similar or identical code changes—to multiple locations. Based on the observation, researchers built tools to identify code locations in need of similar changes, or to suggest similar bug fixes to multiple code fragments. However, some fundamental research questions, such as what...
Automatic testing is a widely adopted technique for improving software quality. Software developers add, remove and update test methods and test classes as part of the software development process as well as during the evolution phase, following the initial release. In this work we conduct a large scale study of 61 popular open source projects and report the relationships we have established between...
The importance of traceability in software development has long been recognized, not only for reasons of legality and certification, but also to enable the development itself. At the same time, organizations are known to struggle to live up to traceability requirements, and there is an identified lack of studies on traceability practices in the industry, not least in the area of tooling and infrastructure...
This work in progress extends the new mechanical philosophy from science to engineering. Engineering is the practice of organising the design and construction of artifices that satisfy needs in real-world contexts. This work shows how artifices can be described in terms of their mechanisms and composed through their observable phenomena. Typically, the engineering of real system requires descriptions...
The Internet of Things (IoT) continues to expand in terms of the number of connected devices. To handle the data produced by those devices, gateways are deployed to collect data, possibly to analyze it, and finally to send it to the cloud or to the end-user to support new services. This process involves complex software that is deployed on those gateways. Moreover, the dynamicity due to new services,...
Transactional Memory (TM) promises both to provide a scalable mechanism for synchronization in concurrent programs, and to offer ease-of-use benefits to programmers. The most straightforward use of TM in real-world programs is in the form of Transactional Lock Elision (TLE). In TLE, critical sections are attempted as transactions, with a fall-back to a lock if conflicts manifest. Thus TLE expects...
Program invariant is formal description of properties that should hold at certain program location in every valid execution. It is very useful for program analysis and verification. In this paper, we introduce an abstraction interpretation approach for generating program invariant efficiently and precisely. A polynomial interval domain is proposed for representing abstract state and precise loop effect...
Requirements reusability within agile development improves software quality and team productivity. One method to implement requirements reusability is traceability, in which relations and dependencies between requirements and artifacts are identified and linked. In this paper, we propose a semiautomated methodology to implement traceability in the agile development process in order to achieve requirements...
Log analysis plays an important role for computer failure diagnosis. With the ever increasing size and complexity of logs, the task of analyzing logs has become cumbersome to carry out manually. For this reason, recent research has focused on automatic analysis techniques for large log files. However, log messages are texts with certain formats and it is very challenging for automatic analysis to...
Sequences of duplicate code, either with or without modification, are known as code clones or just clones. Code clones are generally considered undesirable for a number of reasons, although they can offer some convenience to developers. The detection of code clones helps to improve the quality of source code through software re-engineering. Numerous methods have been proposed for code clone detection...
Understanding unfamiliar source code is inherently difficult for a software engineer, despite its importance. Thus, an experienced engineer prefers to guess the intended behavior, rather than to trace it line-by-line, by combining semantic chunks found in the source code. It is, however, still hard for a system to help in this activity, for lack of ways of both representing semantic chunks and of...
Traceability provides a mean for Software Engineers to track system artifacts at different levels of abstraction to verify and validate system requirements. This paper provides a systematic literature review about modeling traceability in computer systems, particularly, systems that involve artifacts that come from different domains of expertise (i.e., heterogeneous artifacts). Our findings show that...
It is very convenience to use the combination of design patterns as a key participant when on programming. However, in the methods of combination design patterns at present, there are several existing description methods often apply to one or several simple patterns. They are weak in supporting the combination of design patterns and the application tools; In this paper we use a new extension technology...
During the lifecycle of automated production systems (aPS) additional functionalities and evolutions are realized. As a consequence, control software of aPS becomes highly complex and hard to maintain, which rises the need for evaluating and improving the quality of the control software. Tools for assessing and analyzing the quality of control software are rare and mostly lack accessible platforms...
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.