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.
Program understanding plays a pivotal role in software maintenance and evolution: a deep understanding of code is the stepping stone for most software-related activities, such as bug fixing or testing. Being able to measure the understandability of a piece of code might help in estimating the effort required for a maintenance activity, in comparing the quality of alternative implementations, or even...
Designing a software architecture is a highly complex task and associated with a high degree of uncertainty. There are a variety of reusable and established solutions, but they differ in their impact on the system's functionality and quality. The architect has to consider different aspects like stakeholders' requirements as well as numerous constraints coming, among others, from the technical environment...
Traceability has been an important subject in the research world to be investigated. In software engineering, traceability has been crucial for software development processes. In food domain, traceability has also been seen as an important topic for tracing food content of various food products and operations. In this paper, we present a software product line (SPL) based traceability model for food...
The identification of technical debt (TD) is an important step to effectively manage it. In this context, a set of indicators has been used by automated approaches to identify TD items, but some debt may not be directly identified using only metrics collected from the source code. In this work we propose CVM-TD, a model to support the identification of technical debt through code comment analysis...
Code examples are small source code fragments whose purpose is to illustrate how a programming language construct, an API, or a specific function/method works. Since code examples are not always available in the software documentation, researchers have proposed techniques to automatically extract them from existing software or to mine them from developer discussions. In this paper we propose MUSE...
Software Product Line (SPL) consists of an approach for supporting software design and development to promote large-scale and systematic reuse of components. Reuse in SPLs is enabled by using common features of a domain composing the SPL's core and other features defining variation points. Features can be defined as modules of an application with consistent, well-defined, independent, and combinable...
Products are released based on various platforms. An Application programing interface (API) is important to develop platform based applications effectively. Previously, we had some difficulties in developing applications using our platform APIs. Their name was ambiguous, and their functions were not primitive, and even their documentation was not enough to refer to. Therefore, we had to maintain our...
Processes for secure software development play a crucial role in the software lifecycle. They help organizations to meet security requirements throughout the development lifecycle. Among these processes, OWASP's CLASP and Microsoft's SDL are leaders for security support in the software life cycle. This has prompted researchers to compare and evaluate these two approaches in order to use them in an...
We describe and validate a method for comparing programming languages or technologies or programming styles in the context of implementing certain programming tasks. To this end, we analyze a number of ‘little software systems’ readily implementing a common feature set. We analyze source code, structured documentation, derived metadata, and other computed data. More specifically, we compare these...
Metrics and especially metric-based monitoring dashboards provide valuable information and insights for managers in software development organizations. However, implementing and launching a company wide metrics program is very hard and time consuming. This paper describes the history and our experience with the development of a metrics program at Generali Deutschland Informatik Services, a CMMI level...
Agile methods provide an organization or a team with the flexibility to adopt a selected subset of principles and practices based on their culture, their values, and the types of systems that they develop. More specifically, every organization or team implements a customized agile method, tailored to better accommodate its needs. However, the extent to which a customized method supports the organizational...
One of the most important approaches that support software reuse is Component Based Software Engineering (CBSE). Nevertheless the lack of component libraries is one of the major obstacles to widely use CBSE in the industry. To help filling this need, many approaches have been proposed to identify components from existing object-oriented software. These approaches identify components from singular...
Trace ability benchmarks are essential for the evaluation of trace ability recovery techniques. This includes the validation of an individual trace ability technique itself and the objective comparison of the technique with other trace ability techniques. However, it is generally acknowledged that it is a real challenge for researchers to obtain or build meaningful and robust benchmarks. This is because...
Despite the recent advances in test generation, fully automatic software testing remains a dream: Ultimately, any generated test input depends on a test oracle that determines correctness, and, except for generic properties such as "the program shall not crash", such oracles require human input in one form or another. Crowd Sourcing is a recently popular technique to automate computations...
Due to the increasing complexity modern System on Chip designs are developed by large design teams. In addition, existing design blocks are re-used such that the knowledge about these parts of the design entirely depends on the quality of the documentation. For a single designer it is almost impossible to have detailed knowledge about all blocks and their interaction. We introduce a simulation-based...
Independent verification and validation (IVV) has been a key process for decades, and is highlighted in several international certification standards. Some require independent safety auditors, others require particular process objectives to be satisfied with independence, others force an independent testing team or quality assurance team, or even independent resources for several different SDP processes...
Function Insight is a tool for visualizing run traces at the functional level. A key feature is the ability to bring the user's attention to particularly important sections of code based on rule-, machine learning- and data mining-based heuristics or a user-defined "interest metric."
One of the challenges for software development organizations that try to apply software reuse programs is to make the specification, persistence and easy access to the component repository feasible, mainly considering the elaboration phase, but also addressing the construction phase of the software product. This paper uses some component documentation initiatives based on analysis and design patterns,...
In this paper, we present a exception-flow analysis tool, called eFlow Mining, that automates the process of gathering and visualizing exception-handling constructs in multi-programming languages. More specifically, the current version of eFlow Mining focuses on code written using the .NET framework to help developers in inspecting applications either to improve them or to understand their exception...
In many projects, testing consumes the single biggest amount of resources of all activities. Companies tend to collect test cases like stamps without clear strategy—just in case. Many companies suffer with insufficient quality, visibility and test progress management. This article introduces test management.
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.