-
Combining Static Analysis Techniques for Program Comprehension Using Slicito
Authors:
Robert Husák,
Jan Kofroň,
Filip Zavoral
Abstract:
While program comprehension tools often use static program analysis techniques to obtain useful information, they usually work only with sufficiently scalable techniques with limited precision. A possible improvement of this approach is to let the developer interactively reduce the scope of the code being analyzed and then apply a more precise analysis technique to the reduced scope. This paper pr…
▽ More
While program comprehension tools often use static program analysis techniques to obtain useful information, they usually work only with sufficiently scalable techniques with limited precision. A possible improvement of this approach is to let the developer interactively reduce the scope of the code being analyzed and then apply a more precise analysis technique to the reduced scope. This paper presents a new version of the tool SLICITO that allows developers to perform this kind of exploration on C# code in Visual Studio. A common usage of SLICITO is to use interprocedural data-flow analysis to identify the parts of the code most relevant for the given task and then apply symbolic execution to reason about the precise behavior of these parts. Inspired by Moldable Development, SLICITO provides a set of program analysis and visualization building blocks that can be used to create specialized program comprehension tools directly in Visual Studio. We demonstrate the full scope of features on a real industrial example both in the text and in the following video: https://www.slicito.com/icpc2025video.mp4
△ Less
Submitted 19 March, 2025;
originally announced March 2025.
-
Proceedings International Workshop on Formal Engineering approaches to Software Components and Architectures
Authors:
Jan Kofroň,
Jana Tumova
Abstract:
These are the proceedings of the 14th International Workshop on Formal Engineering approaches to Software Components and Architectures (FESCA). The workshop was held on April 22, 2017 in Uppsala (Sweden) as a satellite event to the European Joint Conference on Theory and Practice of Software (ETAPS'17).
The aim of the FESCA workshop is to bring together junior researchers from formal methods, so…
▽ More
These are the proceedings of the 14th International Workshop on Formal Engineering approaches to Software Components and Architectures (FESCA). The workshop was held on April 22, 2017 in Uppsala (Sweden) as a satellite event to the European Joint Conference on Theory and Practice of Software (ETAPS'17).
The aim of the FESCA workshop is to bring together junior researchers from formal methods, software engineering, and industry interested in the development and application of formal modelling approaches as well as associated analysis and reasoning techniques with practical benefits for software engineering.
In recent years, the growing importance of functional correctness and the increased relevance of system quality properties (e.g. performance, reliability, security) have stimulated the emergence of analytical and modelling techniques for the design and development of software systems. With the increasing complexity and utilization of today's software systems, FESCA aims at addressing two research questions: (1) what role is played by the software design phase in the systematic addressing of the analytical and modelling challenges, and (2) how can formal and semi-formal techniques be effectively applied to make the issues easier to address automatically, with lower human intervention.
△ Less
Submitted 20 March, 2017;
originally announced March 2017.
-
Proceedings 11th Doctoral Workshop on Mathematical and Engineering Methods in Computer Science
Authors:
Jan Bouda,
Lukáš Holík,
Jan Kofroň,
Jan Strejček,
Adam Rambousek
Abstract:
MEMICS provides a forum for doctoral students interested in applications of mathematical and engineering methods in computer science. Besides a rich technical programme (including invited talks, regular papers, and presentations), MEMICS also offers friendly social activities and exciting opportunities for meeting like-minded people. MEMICS submissions traditionally cover all areas of computer sci…
▽ More
MEMICS provides a forum for doctoral students interested in applications of mathematical and engineering methods in computer science. Besides a rich technical programme (including invited talks, regular papers, and presentations), MEMICS also offers friendly social activities and exciting opportunities for meeting like-minded people. MEMICS submissions traditionally cover all areas of computer science (such as parallel and distributed computing, computer networks, modern hardware and its design, non-traditional computing architectures, information systems and databases, multimedia and graphics, verification and testing, computer security, as well as all related areas of theoretical computer science).
△ Less
Submitted 13 December, 2016;
originally announced December 2016.
-
Proceedings of the 13th International Workshop on Formal Engineering Approaches to Software Components and Architectures
Authors:
Jana Kofroň,
Jana Tumova,
Bara Buhnova
Abstract:
The aim of the FESCA workshop is to bring together junior researchers from formal methods, software engineering, and industry interested in the development and application of formal modelling approaches as well as associated analysis and reasoning techniques with practical benefits for software engineering.
In recent years, the growing importance of functional correctness and the increased rel…
▽ More
The aim of the FESCA workshop is to bring together junior researchers from formal methods, software engineering, and industry interested in the development and application of formal modelling approaches as well as associated analysis and reasoning techniques with practical benefits for software engineering.
In recent years, the growing importance of functional correctness and the increased relevance of system quality properties (e.g. performance, reliability, security) have stimulated the emergence of analytical and modelling techniques for the design and development of software systems. With the increasing complexity and utilization of today's software systems, FESCA aims at addressing two research questions: (1) what role is played by the software design phase in the systematic addressing of the analytical and modelling challenges, and (2) how can formal and semi-formal techniques be effectively applied to make the issues easier to address automatically, with lower human intervention. We encourage submissions on (semi-)formal techniques and their application that aid analysis, design and implementation of software applications, especially those employed in interconnected, communicating devices, devices interacting with the physical world, and cyber-physical systems.
△ Less
Submitted 28 March, 2016;
originally announced March 2016.
-
Proceedings 12th International Workshop on Formal Engineering approaches to Software Components and Architectures
Authors:
Bara Buhnova,
Lucia Happe,
Jan Kofroň
Abstract:
The aim of the FESCA workshop is to bring together junior researchers from formal methods, software engineering, and industry interested in the development and application of formal modelling approaches as well as associated analysis and reasoning techniques with practical benefits for software engineering.
In recent years, the growing importance of functional correctness and the increased relev…
▽ More
The aim of the FESCA workshop is to bring together junior researchers from formal methods, software engineering, and industry interested in the development and application of formal modelling approaches as well as associated analysis and reasoning techniques with practical benefits for software engineering.
In recent years, the growing importance of functional correctness and the increased relevance of system quality properties (e.g. performance, reliability, security) have stimulated the emergence of analytical and modelling techniques for the design and development of software systems. With the increasing complexity of today's software systems, FESCA aims at addressing two research questions: (1) what role the software architecture can play in systematic addressing of the analytical and modelling challenges, and (2) how formal and semi-formal techniques can be applied effectively to make the issues easier to address automatically, with lower human intervention.
△ Less
Submitted 14 March, 2015;
originally announced March 2015.
-
Data-flow Analysis of Programs with Associative Arrays
Authors:
David Hauzar,
Jan Kofroň,
Pavel Baštecký
Abstract:
Dynamic programming languages, such as PHP, JavaScript, and Python, provide built-in data structures including associative arrays and objects with similar semantics-object properties can be created at run-time and accessed via arbitrary expressions. While a high level of security and safety of applications written in these languages can be of a particular importance (consider a web application sto…
▽ More
Dynamic programming languages, such as PHP, JavaScript, and Python, provide built-in data structures including associative arrays and objects with similar semantics-object properties can be created at run-time and accessed via arbitrary expressions. While a high level of security and safety of applications written in these languages can be of a particular importance (consider a web application storing sensitive data and providing its functionality worldwide), dynamic data structures pose significant challenges for data-flow analysis making traditional static verification methods both unsound and imprecise. In this paper, we propose a sound and precise approach for value and points-to analysis of programs with associative arrays-like data structures, upon which data-flow analyses can be built. We implemented our approach in a web-application domain-in an analyzer of PHP code.
△ Less
Submitted 5 May, 2014;
originally announced May 2014.
-
Proceedings 11th International Workshop on Formal Engineering approaches to Software Components and Architectures
Authors:
Bara Buhnova,
Lucia Happe,
Jan Kofroň
Abstract:
The aim of the FESCA workshop is to bring together both young and senior researchers from formal methods, software engineering, and industry interested in the development and application of formal modelling approaches as well as associated analysis and reasoning techniques with practical benefits for component-based software engineering.
Component-based software design has received considerable…
▽ More
The aim of the FESCA workshop is to bring together both young and senior researchers from formal methods, software engineering, and industry interested in the development and application of formal modelling approaches as well as associated analysis and reasoning techniques with practical benefits for component-based software engineering.
Component-based software design has received considerable attention in industry and academia in the past decade. In recent years, with the emergence of new platforms (such as smartphones), new areas advocating software correctness along with new challenges have appeared. These include development of new methods and adapting existing ones to accommodate unique features of the platforms, such as inherent distribution, openness, and continuous migration. On the other hand, with the growing power of computers, more and more is possible with respect to practical applicability of modelling and specification methods as well as verification tools to real-life software, i.e, to scale to more complex systems.
FESCA aims to address the open question of how formal methods can be applied effectively to these new contexts and challenges. The workshop is interested in both the development and application of formal methods in component-based development and tries to cross-fertilize their research and application.
△ Less
Submitted 1 April, 2014;
originally announced April 2014.
-
Proceedings 10th International Workshop on Formal Engineering Approaches to Software Components and Architectures
Authors:
Barbora Buhnova,
Lucia Happe,
Jan Kofroň
Abstract:
These are the proceedings of the 10th International Workshop on Formal Engineering approaches to Software Components and Architectures (FESCA). The workshop was held on March 23, 2013 in Rome (Italy) as a satellite event to the European Joint Conference on Theory and Practice of Software (ETAPS'13).
The aim of the FESCA workshop is to bring together both young and senior researchers from formal…
▽ More
These are the proceedings of the 10th International Workshop on Formal Engineering approaches to Software Components and Architectures (FESCA). The workshop was held on March 23, 2013 in Rome (Italy) as a satellite event to the European Joint Conference on Theory and Practice of Software (ETAPS'13).
The aim of the FESCA workshop is to bring together both young and senior researchers from formal methods, software engineering, and industry interested in the development and application of formal modelling approaches as well as associated analysis and reasoning techniques with practical benefits for component-based software engineering.
FESCA aims to address the open question of how formal methods can be applied effectively to these new contexts and challenges. FESCA is interested in both the development and application of formal methods in component-based development and tries to cross-fertilize their research and application.
△ Less
Submitted 19 February, 2013;
originally announced February 2013.