Academia.eduAcademia.edu

Software Analysis

description700 papers
group153 followers
lightbulbAbout this topic
Software analysis is the systematic examination of software systems to evaluate their functionality, performance, security, and compliance with specifications. It involves techniques such as static and dynamic analysis to identify defects, vulnerabilities, and areas for improvement, ensuring the software meets quality standards and user requirements.
lightbulbAbout this topic
Software analysis is the systematic examination of software systems to evaluate their functionality, performance, security, and compliance with specifications. It involves techniques such as static and dynamic analysis to identify defects, vulnerabilities, and areas for improvement, ensuring the software meets quality standards and user requirements.

Key research themes

1. How can software metrics effectively identify key classes to support focused reengineering of legacy systems?

This research area focuses on leveraging combinations of complexity and coupling software metrics to identify the crucial or 'key' classes within large, object-oriented legacy software systems. Identifying these classes helps practitioners prioritize areas for reengineering efforts, thereby making the reengineering process more efficient and effective. Understanding the structural significance of classes through such metrics provides actionable insights for maintenance, refactoring, and system comprehension.

Key finding: The study introduces a practical approach that combines complexity and coupling metrics by plotting classes in a two-dimensional coordinate system to identify 'key classes'—those with high complexity and coupling. Case... Read more
Key finding: This paper emphasizes the role of code analysis techniques, including metric extraction, in software quality assessment and maintenance, highlighting how automated tools represent and explore code metrics (like complexity and... Read more
Key finding: Presents CrocoPat, a tool for querying software structures modeled as relations, enabling detection of design patterns and problematic structures (e.g., cyclic dependencies, irregular inheritance) through expressive... Read more

2. What models and platforms facilitate comprehensive static and dynamic software analysis for bug detection, security assessment, and verification?

This theme covers the development and utilization of integrated platforms and frameworks that unify static and dynamic program analysis techniques to facilitate automated detection of software vulnerabilities, performance bottlenecks, and other quality defects. The research investigates how abstraction levels and unified intermediate representations enable scalable, precise analyses, including symbolic execution, SMT-solving, and integration of multiple analysis engines, enhancing the efficiency and applicability of software verification in real-world settings.

Key finding: Introduces Kex, a layered platform for JVM bytecode analysis providing (1) Kfg: an SSA-based control flow graph representation; (2) Predicate State: symbolic program representation using first-order predicates; (3) SMT... Read more
Key finding: Renraku provides a unified object-oriented static analysis model decoupling analyzers from reporting tools. It defines an extensible framework enabling multiple static analyses (e.g., linting, coverage, contract adherence) to... Read more
Key finding: Presents dynamic program slicing and analysis tools applied to Android apps to detect security discrepancies and vulnerabilities. Proposes AndroidSlicer for detecting missing progress indicators and security weaknesses via... Read more
Key finding: Proposes combining deductive verification with automated test generation to diagnose proof failures in annotated C programs. By transforming the program into testable code, the approach generates concrete counterexamples... Read more

3. How can runtime and partial observation analyses aid in software architecture recovery and model building for complex or binary-only systems?

This research investigates approaches to reconstructing software architectural models from systems where source code is partially or fully unavailable, such as proprietary binary formats or legacy monolithic applications. Techniques involving dynamic runtime instrumentation, partial observation via IDEs or reverse engineering runtimes, and clustering are studied to extract, model, and analyze system components, dependencies, and interactions. These methods facilitate maintenance, migration, and comprehension of complex legacy software under limited observability conditions.

Key finding: Develops a novel approach to reconstructing models of Microsoft Access applications—a partially observable system due to proprietary binary storage—by querying the IDE runtime via the Microsoft COM interface. Successfully... Read more
Key finding: Presents a method combining runtime binary instrumentation, execution tracing, static binary inspection, domain knowledge, and clustering (using LIMBO algorithm) to reconstruct component-based architectural views of... Read more
Key finding: Describes a simulator combining empirical data with process modeling to evaluate the effectiveness of software inspections at various development phases. Though not runtime analysis in the strict sense, this approach supports... Read more

All papers in Software Analysis

Object serialization facilitates the flattening of structured objects into byte streams and is therefore important for all component-based applications that strongly rely on data-exchange among components. Unfortunately, implementing and... more
Alcoa is a tool for analyzing object models. It has a range of uses. At one end, it can act as a support tool for object model diagrams, checking for consistency of multiplicities and generating sample snapshots. At the other end, it... more
Applying deductive verification to formally prove that a program respects its formal specification is a very complex and time-consuming task due in particular to the lack of feedback in case of proof failures. Along with a non-compliance... more
We argue that finding vulnerabilities in software components is different from finding exploits against them. Exploits that compromise security often use several low-level details of the component, such as layouts of stack frames.... more
Mainstream model transformation tools operate on graph structured models which are described by class-based meta-models. In the traditional grammarware space, transformation tools consume and produce tree structured terms, which are... more
The property of termination, well-known to be undecidable, is fundamental by many aspects of computer sciences and logic. Many heuristics have been proposed to provide automation for termination proofs. Almost all of them require,... more
Software engineering, automated reasoning, rule-based programming or specifications often use rewriting systems for which termination, among other properties, may have to be ensured. This paper presents the approach developed in Project... more
In recent years we have seen great progress made in the area of automatic source-level static analysis tools. However, most of today's program verification tools are limited to properties that guarantee the absence of bad events (... more
OBJECTIVE: Primary pigmented nodular adrenocortical disease (PPNAD) is the main endocrine manifestation of Carney complex, a multiple neoplasia syndrome caused by PRKAR1A gene mutations. The presence of PRKAR1A loss of heterozygosity... more
In this paper we will describe all necessary parts of Brain-Computer Interface (BCI), such as source of signals, hardware, software, analysis, architectures of complete system. We also will go along various applications of BCI, view some... more
The log sequence is often referred to as a language in automated log analysis. The natural consequence of this is that the log sequence should have a structure consisting of words and sentences. However, the word definitions in the log... more
Binary Decision Diagrams (BDDs) have recently become widely accepted as a space-efficient method of representing relations in points-to analyses. When BDDs are used to represent relations, each element of a domain is assigned a bit... more
Despite extensive research efforts for a number of years, modeling of RTL designs has still not reached a satisfactory state. Behavioral RTL design models still lack cycle-accuracy when multi-cycle and/or pipelined components are used.... more
The technique of functional Magnetic Resonance Imaging (fMRI) has evolved in the last 15 years from a research concept into a clinically relevant medical procedure. In this study, an efficient, semiautomated and cost-effective solution... more
CIP is a model-based software development method for embedded systems. The problem of constructing an embedded system is decomposed into a functional and a connection problem. The functional problem is solved by constructing a formal... more
CIP is a model-based software development method for embedded systems. The problem of constructing an embedded system is decomposed into a functional and a connection problem. The functional problem is solved by constructing a formal... more
This paper presents a model metrics and a methodology for evaluating the critical path on the data flow execution graph (DFEG) of multimedia algorithms specified as C programs. The paper describes an efficient dynamic critical path... more
In previous works, the authors introduced a framework for software analysis, which is based on optimization of Lyapunov invariants. These invariants prove critical software properties such as absence of overflow and termination in finite... more
This paper concerns analysis of realtime, safety-critical, embedded software. Software analysis is expected to verify whether the computer code will execute safely, free of run-time errors. The main properties to be analyzed to prove or... more
Agent-oriented Software Engineering (AOSE) has become an active area of research in recent years. In this paper, we look at the use of agent-oriented concepts for software analysis. Using agent-oriented analysis may offer benefits even if... more
Following the COVID19 pandemic, the frequency of cyberattacks has surged, significantly impacting the banking sector. This paper examines varioustypes of cyber threats including phishing, malware, ransomware, insider threats, SQL... more
Technical and administrative management of a group of (about 10) responsible for system and application development environments including compilers, editors, debuggers, linker, runtime libraries, data dictionary, window management, and... more
The processing of data obtained by the XMM-Newton observatory of the European Space Agency (ESA) is done using the SAS (Software Analysis System) tools provided by the ESA XMM Science Operations Centre (SOC). In order to be operative,... more
The XMM-Newton Scientific Analysis Software (SAS) is a robust software that has allowed users to produce good scientific results since the beginning of the mission. This has been possible given the SAS capability to evolve with the advent... more
This paper represents the various methods to understand the behavior of Box Girder Bridges. Bridges are the key Element in a transport system, they covers a gap by connecting two communities separated by streams, valley, rivers etc. To... more
To identify Microvariants and Triallelic Patterns from previously DNA samples with the addition of any unreported artefacts being found to established STR profiling kits. All information was obtained from previously analysed parentage... more
Software engineering research has focuse d mainly on software construction and has neglected software maintenance and evolution. Proposed is a shift in research from synthesi s to analysis. Reverse engineering is introduce d as a possible... more
The issues surrounding curriculum design of many Computer Science and Software Engineering degree programs are many and complex. In particular, the question of whether prior programming knowledge has any bearing on a student's... more
Statement st transitively depends on statement st seed if the execution of st seed may affect the execution of st. Computing transitive program dependences is a fundamental operation in many automatic software analysis tools. Existing... more
Polynomial constraint solving plays a prominent role in several areas of hardware and software analysis and verification, e.g., termination proving, program invariant generation and hybrid system verification, to name a few. In this paper... more
OBJECTIVE: Primary pigmented nodular adrenocortical disease (PPNAD) is the main endocrine manifestation of Carney complex, a multiple neoplasia syndrome caused by PRKAR1A gene mutations. The presence of PRKAR1A loss of heterozygosity... more
Craniomaxillofacial surgeons require to estimate the orbital volume in a variety of clinical situations. This paper evaluates a new method based on software analysis of computerized tomography (CT) scan data. Material and methods: Five... more
Applying deductive verification to formally prove that a program respects its formal specification is a very complex and time-consuming task due in particular to the lack of feedback in case of proof failures. Along with a non-compliance... more
Algebraic specification has a long tradition in bridging the gap between specification and programming by making specifications executable. Building on extensive experience in designing, implementing and using specification formalisms... more
We investigate the relationship between a student's time off-task and the amount that he or she learns to see whether or not the relationship between time off-task and learning is a more complex model than the traditional linear model... more
This paper addresses the management of tasks execution for real-time reconfigurable systems powered by battery. In this context, one of major problem concerns the management of battery life between two different recharges. For this type... more
The process of evaluating rock mass strength requires that major structural features such as joints that influence rock strength are considered. In carbonate rock masses, however, the strength of the rock mass is largely dependent on... more
Java Serialization is a popular technique for storing object states in the Java programming language. In the field of mobile forensics, we come across such artefacts. App developers very often resort to this technique to make their... more
The goal of this work is the development of a black-box solver based on the scatter search methodology. In particular, we seek a solver capable of obtaining high quality outcomes to optimization problems for which solutions are... more
In many high-value manufacturing applications there is increased demand for component surfaces with enhanced geometric complexity. In order to ensure accurate adherence to design specifications and to compensate for any deviations, an... more
When a software failure occurs in the field, it is often difficult to reproduce. Guided by a memory dump at the moment of failure (a "core dump"), our RECORE test case generator searches for a series of events that precisely reconstruct... more
Incremental linearization is a conceptually simple, yet effective, technique that we have recently proposed for solving SMT problems over nonlinear real arithmetic constraints. In this paper, we show how the same approach can be applied... more
The final slope design of the West Wall has become the primary importance for the economy of Chuquicamata Open Pit Mine. It determines the safety of the operation and, consequently, the economic viability of the mine. Although... more
A programmer performing a change task to a system can benefit from accurate comments on the source code. As part of good programming practice described by Kernighan and Pike in the book The Practice of Programming , comments should... more
Program slicing is a software-analysis technique that generates System Dependence Graphs (SDGs) by which dependencies among program statements can be identified through their traversal. We have developed a program slicing tool for SpecC,... more
One of the original employees of this start-up company which designed and built a state-of-the-art fault-tolerant multiprocessor system. One of the first commercial shared-memory multiprocessors, the Synapse system had an integrated... more
Download research papers for free!