Spelling suggestions: "subject:"deprogram understanding"" "subject:"ramprogram understanding""
1 |
Reverse engineering to an object-oriented representationSleith, Gillian Fiona January 1994 (has links)
No description available.
|
2 |
Object Histories in JavaNair, Aakarsh 21 April 2010 (has links)
Developers are often faced with the task of implementing new features or diagnosing problems in large software systems. Convoluted control and data flows in large object-oriented software systems, however, make even simple tasks extremely difficult, time-consuming, and frustrating. Specifically, Java programs manipulate objects by adding and removing them from collections and by putting and getting them from other objects' fields. Complex object histories hinder program understanding by forcing software maintainers to track the provenance of objects through their past histories when diagnosing software faults.
In this thesis, we present a novel approach which answers queries about the evolution of objects throughout their lifetime in a program. On-demand answers to object history queries aids the maintenance of large software systems by allowing developers to pinpoint relevant details quickly.
We describe an event-based, flow-insensitive, interprocedural program analysis technique for computing object histories and answering history queries. Our analysis technique identifies all relevant events affecting an object and uses pointer analysis to filter out irrelevant events. It uses prior knowledge of the meanings of methods in the Java collection classes to improve the quality of the histories.
We present the details of our technique and experimental results that highlight the utility of object histories in common programming tasks.
|
3 |
Object Histories in JavaNair, Aakarsh 21 April 2010 (has links)
Developers are often faced with the task of implementing new features or diagnosing problems in large software systems. Convoluted control and data flows in large object-oriented software systems, however, make even simple tasks extremely difficult, time-consuming, and frustrating. Specifically, Java programs manipulate objects by adding and removing them from collections and by putting and getting them from other objects' fields. Complex object histories hinder program understanding by forcing software maintainers to track the provenance of objects through their past histories when diagnosing software faults.
In this thesis, we present a novel approach which answers queries about the evolution of objects throughout their lifetime in a program. On-demand answers to object history queries aids the maintenance of large software systems by allowing developers to pinpoint relevant details quickly.
We describe an event-based, flow-insensitive, interprocedural program analysis technique for computing object histories and answering history queries. Our analysis technique identifies all relevant events affecting an object and uses pointer analysis to filter out irrelevant events. It uses prior knowledge of the meanings of methods in the Java collection classes to improve the quality of the histories.
We present the details of our technique and experimental results that highlight the utility of object histories in common programming tasks.
|
4 |
Design Pattern Detection by Using Meta PatternsSAEKI, Motoshi, KOBAYASHI, Takashi, SAKAMOTO, Ryota, KATADA, Junya, HAYASHI, Shinpei 01 April 2008 (has links)
No description available.
|
5 |
Documenting for Program Comprehension in Agile Software DevelopmentKiss, Fabian January 2011 (has links)
Program comprehension, i.e. to understand from its source code what a computer programdoes, is crucial for change and maintenance in software development. In this thesis, it is lookedfor innovative documentation techniques and tools that support program comprehension, butthat are also conform to agile values and principles – commonly, documentation is consideredcritical due to the agile value “working software over comprehensive documentation.”1 First,a research framework is developed that embodies detailed requisites for such techniques andtools. Apart from its internal use for examining techniques and tools subsequently obtainedfrom a literature search, this framework is intended to be likewise employed by software practitioners.Eventually, the findings of a series of survey studies conducted in an industrial softwareorganization for the primary purpose of evaluating the obtained techniques and tools are analyzed.Three innovative techniques that meet all requisites are revealed. These are regarded bypractitioners independently from the support of program comprehension as helpful for a changeimpact analysis conducted by non-developers. Therefore, a requisite deduced from the highestpriority in agile software development – customer satisfaction – is met. It says that a techniqueor tool has to directly induce a benefit for non-developer stakeholders besides the benefits forthem which are indirectly induced by the support of program comprehension, e.g. a potentiallyimproved source code quality. Further, the technique most beneficial for developers as well asfor non-developers among the three techniques is identified, which bases on design rationales– textual information related to the source code that states the reasons why a part of the programhas been implemented in a certain way. Secondarily, the studies revealed that the researchframework is difficult to understand for practitioners due to its unstructured form. / Program: Magisterutbildning i informatik
|
6 |
Automated Program Recognition by Graph ParsingWills, Linda M. 01 July 1992 (has links)
Recognizing standard computational structures (cliches) in a program can help an experienced programmer understand the program. We develop a graph parsing approach to automating program recognition in which programs and cliches are represented in an attributed graph grammar formalism and recognition is achieved by graph parsing. In studying this approach, we evaluate our representation's ability to suppress many common forms of variation which hinder recognition. We investigate the expressiveness of our graph grammar formalism for capturing programming cliches. We empirically and analytically study the computational cost of our recognition approach with respect to two medium-sized, real-world simulator programs.
|
7 |
Automated Program RecognitionWills, Linda M. 01 February 1987 (has links)
The key to understanding a program is recognizing familiar algorithmic fragments and data structures in it. Automating this recognition process will make it easier to perform many tasks which require program understanding, e.g., maintenance, modification, and debugging. This report describes a recognition system, called the Recognizer, which automatically identifies occurrences of stereotyped computational fragments and data structures in programs. The Recognizer is able to identify these familiar fragments and structures, even though they may be expressed in a wide range of syntactic forms. It does so systematically and efficiently by using a parsing technique. Two important advances have made this possible. The first is a language-independent graphical representation for programs and programming structures which canonicalizes many syntactic features of programs. The second is an efficient graph parsing algorithm.
|
8 |
Using an XML-driven approach to create tools for program understanding : An implementation for Configura and CET Designer / Ett XML-drivet tillvägagångssätt för att skapa vertyg för programförståelse : En implementation för Configura och CET DesignerWihlborg, Åsa January 2011 (has links)
A major problem during development and maintenance of software is lack of quality documentation. Many programers have problems identifying which infor- mation is relevant for someone with no knowledge of the system and therefore write incomplete documentation. One way to get around these problems would be to use a tool that extracts information from both comments and the actual source code and presents the structure of the program visually. This thesis aims to design an XML-driven system for the extraction and pre- sentation of meta information about source code to that purpose. Relevant meta information in this case is, for example, which entities (classes, methods, variables, etc.) exist in the program and how they interact with each other. The result is a prototype implemented to manage two company developed lan- guages. The prototype demonstrates how the system can be implemented and show that the approach is scalable. The prototype is not suitable for commercial use due to its abstraction level, but with the help of qualified XML databases there are great possibilities to build a usable system using the same techniques in the future. / Ett stort problem under utvecklingen och underhållet av mjukvara är bristande dokumentation av källkoden. Många programmerare har svårt att identifiera vilken information som är viktig för någon som inte är insatt i systemet och skriver därför bristfällig dokumentation. Ett sätt att komma runt dessa problem skulle vara att använda verktyg som extraherar information från såväl kommentarer som faktisk källkod och presenterar programmets struktur påett tydligt och visuellt sätt. Det här examensarbetet ämnar att designa ett system för XML-driven extra- hering och presentation av metainformation om källkoden med just det syftet. Metainformationen som avses här är exempelvis vilka entiteter (klasser, metoder, variabler, mm.) som finns i källkoden samt hur dessa interagerar med varandra. Resultatet är en prototyp implementerad för att hantera tvåföretagsutvecklade språk. Prototypen demonstrerar hur systemet kan implementeras och visar att me- toden är skalbar. Prototypen är abstraktionsmässigt inte lämplig för kommersiellt bruk men med hjälp av kvalificerade XML-databaser finns det stora möjligheter att i framtiden bygga ett praktiskt användbart system baserat på samma tekniker.
|
9 |
USING PROGRAM SLICING AND SEQUENCE ALIGNMENT TO ANALYZE ORGANISMS OF AVIDA, A DIGITAL EVOLUTION PLATFORMHu, Hanqing 09 March 2012 (has links)
No description available.
|
10 |
SOFTVIZ... A Step ForwardSingh, Mahim 30 April 2004 (has links)
Complex software systems are difficult to understand and very hard to debug. Programmers trying to understand or debug these systems must read through source code which may span over thousands of files. Software Visualization tries to ease this burden by using graphics and animation to convey important information about the program to the user, which may be used either for understanding the behavior of the program or for detecting any defects within the code. SoftViz is one such software visualization system, developed by Ben Kurtz under the guidance of Prof. George T. Heineman at WPI. We carry forward the work initiated with SoftViz. Our preliminary study showed various avenues for making the system more effective and user-friendly. Specifically I completed the unfinished work, made optimizations, implemented new functionality and added new visualization plug-ins, all aimed at making the system a more versatile and user-friendly debugging framework. We built a solid core functionality that would be able to support various functionalities and created new plug-ins that would make understanding and bug-detection easier. Further we integrated SoftViz with the Eclipse development environment, making the system easily accessible and potentially widely used. We created an error classification framework relating the common error classes and the visualizations that could be used to detect them. We believe this will be helpful in both selecting the right visualization options as well as constructing new plug-ins.
|
Page generated in 0.1189 seconds