@phdthesis{Robschink2004, author = {Robschink, Torsten}, title = {Pfadbedingungen in Abh{\"a}ngigkeitsgraphen und ihre Anwendung in der Softwaresicherheitstechnik}, url = {http://nbn-resolving.de/urn:nbn:de:bvb:739-opus-469}, school = {Universit{\"a}t Passau}, year = {2004}, abstract = {Diese Arbeit pr{\"a}sentiert eine neue Methode zur Sicherheitsanalyse von Software im Bereich der Manipulationspr{\"u}fung und der Einhaltung von Informationsfl{\"u}ssen zwischen verschiedenen Sicherheitsniveaus. Program-Slicing und Constraint-Solving sind eigenst{\"a}ndige Verfahren, die sowohl zur Abh{\"a}ngigkeitsbestimmung als auch zur Berechnung arithmetischer Eigenschaften verwendet werden. Die erstmalige Kombination dieser beiden Verfahren mittels Pfadbedingungen liefert nicht nur bin{\"a}re Abh{\"a}ngigkeitsinformationen wie Slicing, sondern exakte notwendige Bedingungen {\"u}ber die Informationsfl{\"u}sse zwischen zwei Programmpunkten. Neben der Definition der Grundlagen von Abh{\"a}ngigkeitsgraphen und einfachen Pfadbedingungen werden neue Erweiterungen f{\"u}r kontextsensitive interprozedurale Pfadbedingungen gezeigt und die Integration von dom{\"a}nenspezifischen Verfahren f{\"u}r Arrayfelder und abstrakten Datentypen demonstriert. Der Schwerpunkt der Arbeit liegt in der Realisierung von Pfadbedingungen f{\"u}r echte Programme in echten Programmiersprachen. Hierf{\"u}r werden Verfahren vorgeschlagen, realisiert und empirisch untersucht, wie Pfadbedingungen f{\"u}r große Programme skalieren. Die zum Einsatz kommenden Techniken sind u.a. Intervallanalyse und Bin{\"a}re Entscheidungsgraphen, mit denen die generelle exponentielle Komplexit{\"a}t von Pfadbedingungen beherrschbar wird. Fallstudien f{\"u}r den Einsatz von Pfadbedingungen und die empirische Untersuchung mehrerer Verfahren zur Intervallanalyse zeigen, dass Pfadbedingungen f{\"u}r die praktische Programmanalyse und das Programmverstehen geeignet und empfehlenswert sind.}, subject = {Programmanalyse}, language = {de} } @phdthesis{Krinke2003, author = {Krinke, Jens}, title = {Advanced Slicing of Sequential and Concurrent Programs}, url = {http://nbn-resolving.de/urn:nbn:de:bvb:739-opus-375}, school = {Universit{\"a}t Passau}, year = {2003}, abstract = {Program slicing is a technique to identify statements that may influence the computations in other statements. Despite the ongoing research of almost 25 years, program slicing still has problems that prevent a widespread use: Sometimes, slices are too big to understand and too expensive and complicated to be computed for real-life programs. This thesis presents solutions to these problems: It contains various approaches which help the user to understand a slice more easily by making it more focused on the user's problem. All of these approaches have been implemented in the VALSOFT system and thorough evaluations of the proposed algorithms are presented. The underlying data structures used for slicing are program dependence graphs. They can also be used for different purposes: A new approach to clone detection based on identifying similar subgraphs in program dependence graphs is presented; it is able to detect modified clones better than other tools. In the theoretical part, this thesis presents a high-precision approach to slice concurrent procedural programs despite that optimal slicing is known to be undecidable. It is the first approach to slice concurrent programs that does not rely on inlining of called procedures.}, subject = {Programmanalyse}, language = {en} }