Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.

24-26 June 2004

Filter Results

Displaying Results 1 - 25 of 43
  • Understanding Web applications through dynamic analysis

    Publication Year: 2004, Page(s):120 - 129
    Cited by:  Papers (20)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (761 KB) | HTML iconHTML

    The relevance and pervasiveness of Web applications as a vital part of modern enterprise systems has significantly increased in recent years. However, the lack of adequate documentation promotes the need for reverse engineering tools aiming at supporting Web application maintenance and evolution tasks. A nontrivial Web application is a complex artifact integrating technologies such as scripting la... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Understanding CASE generated legacy applications: a case study

    Publication Year: 2004, Page(s):111 - 119
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (727 KB) | HTML iconHTML

    Reverse engineering for program understanding is always the first step in a reengineering project. When CASE tools are used to develop legacy applications, there are hidden assets that are not usually available. These assets may be very useful for program understanding because they contain design and architectural information usually only found, if at all, in the applications' documentation or are... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Understanding modifications in state-based models

    Publication Year: 2004, Page(s):246 - 250
    Cited by:  Papers (2)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (266 KB) | HTML iconHTML

    System modeling is a widely used technique to model state-based systems. System models are frequently large and complex and are hard to understand. In addition, they are frequently modified because of specification changes. Understanding the effect of these changes on the model and the system may be very difficult for large models. In this paper, we present an approach that may support understandi... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Reuse in reverse engineering

    Publication Year: 2004, Page(s):52 - 61
    Cited by:  Papers (7)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (488 KB) | HTML iconHTML

    In this paper, we present a framework for reverse engineering allowing the integration and interaction of different analysis and visualization tools. The framework architecture that we propose uses a dynamic type system to guarantee the proper exchange of data between the tools and a set of wrapper classes to handle their communication. This allows for an easy and secure integration of tools that ... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Towards a technique for reverse engineering Web transactions from a user's perspective

    Publication Year: 2004, Page(s):142 - 150
    Cited by:  Papers (6)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (292 KB) | HTML iconHTML

    Many Web sites could improve their users' experience through systematic analysis of transaction paths, so that users' expectations and site design are more closely aligned. This paper outlines preliminary steps towards a technique for reverse engineering Web transactions from a user's perspective. The result of the reverse engineering activity is a conceptual model that is based on extensions to t... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Challenges and requirements for an effective trace exploration tool

    Publication Year: 2004, Page(s):70 - 78
    Cited by:  Papers (11)  |  Patents (2)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (435 KB) | HTML iconHTML

    Building efficient tools for the analysis and exploration of large execution traces can be a very challenging task. Our experience with building a tool called SEAT (software exploration and analysis tool) shows that there is a need to address several key research questions in order to overcome these challenges. SEAT is intended to integrate several filtering techniques to tackle the size explosion... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Empirical assessment of UML static object diagrams

    Publication Year: 2004, Page(s):226 - 230
    Cited by:  Papers (10)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (263 KB) | HTML iconHTML

    The essential UML logic diagrams are the class diagrams: they represent the classes of objects that make up a program. Object diagrams are used as the basis to show scenarios of dynamic evolution of the software. The use of object diagrams to depict static structure is very rare. The purpose of this study is to investigate whether the use of static object diagrams can improve the comprehension of ... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • An empirical study on keyword-based Web site clustering

    Publication Year: 2004, Page(s):204 - 213
    Cited by:  Papers (10)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (398 KB) | HTML iconHTML

    Web site evolution is characterized by a limited support to the understanding activities offered to the developers. In fact, design diagrams are often missing or outdated. A potentially interesting option is to reverse engineer high level views of Web sites from the content of the Web pages. Clustering is a valuable technique that can be used in this respect. Web pages can be clustered together ba... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Architectural views through collapsing strategies

    Publication Year: 2004, Page(s):100 - 110
    Cited by:  Papers (1)  |  Patents (1)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (414 KB) | HTML iconHTML

    Architectural views help to better understand and analyze software from particular stakeholder perspectives. Views are abstractions that are generated in an architecture reconstruction effort with collapsing strategies. Collapsing is the mechanism to aggregate detailed source information into architectural elements that constitute the architectural views. The elements are presented in a particular... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Resolving linkage anomalies in extracted software system models

    Publication Year: 2004, Page(s):241 - 245
    Cited by:  Papers (2)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (283 KB) | HTML iconHTML

    Program model linking has been largely overlooked and not constrained properly in the extraction of software system models. This often results in inaccurate system models at different levels of abstraction even if programs can be extracted correctly. This paper describes two constrained approaches toward accurate linkage resolution. The first approach is purely based on a set of linking heuristics... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Using development history sticky notes to understand software architecture

    Publication Year: 2004, Page(s):183 - 192
    Cited by:  Papers (17)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (307 KB) | HTML iconHTML

    Maintenance of evolving software systems has become the most frequently performed activity by software developers. A good understanding of the software system is needed to reduce the cost and length of this activity. Various approaches and tools have been proposed to assist in this process such as code browsers, slicing techniques, etc. These techniques neglect to use a central and vital piece of ... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • A simple static model for understanding the dynamic behavior of programs

    Publication Year: 2004, Page(s):46 - 51
    Cited by:  Papers (1)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (606 KB) | HTML iconHTML

    To maintain software and to adapt it to changing requirements, one needs to have a solid understanding of both its structure and behavior. While there are a number of reverse engineering tools that aid in understanding the runtime behavior of programs, these are mostly based on variants of UML sequence diagrams or statechart diagrams. We propose a new model for understanding runtime behavior that ... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Reengineering Web applications based on cloned pattern analysis

    Publication Year: 2004, Page(s):132 - 141
    Cited by:  Papers (9)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (344 KB) | HTML iconHTML

    Web applications are subject to continuous and rapid evolution. Often it happens that programmers indiscriminately duplicate Web pages without considering systematic development and maintenance methods. This practice creates code clones that make Web applications hard to maintain and reuse. This paper presents an approach for reengineering Web applications based on clone analysis that aims at iden... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • An eclipse plug-in for model checking

    Publication Year: 2004, Page(s):251 - 255
    Cited by:  Papers (1)  |  Patents (1)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (318 KB) | HTML iconHTML

    While model checking has been successful in uncovering subtle bugs in code, its adoption in software engineering practice has been hampered by the absence of a simple interface to the programmer in an integrated development environment. We describe an integration of the software model checker BLAST into the Eclipse development environment. We provide a verification interface for practical solution... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Working in pairs as a means for design knowledge building: an empirical study

    Publication Year: 2004, Page(s):62 - 68
    Cited by:  Papers (5)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (283 KB) | HTML iconHTML

    Pair programming is increasingly attracting researchers' and practitioners' attention. One of the claimed benefits of pair programming consists of easing socialization among programmers, with the effect of transferring tacit knowledge. Designing software systems requires a strong employment of tacit knowledge, such as individual experience and skills. In this paper, the authors, explore the hypoth... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Program comprehension for Web services

    Publication Year: 2004, Page(s):151 - 160
    Cited by:  Papers (7)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (317 KB) | HTML iconHTML

    Web services provide programmatic interaction between organisations within large heterogeneous distributed systems. Using recent experiences of constructing and enhancing a data integration system for the health domain, based on Web services, we draw conclusions about new problems for program comprehension. These derive from the fundamentally dynamic and distributed nature of the environment. We s... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Giving meaning to macros

    Publication Year: 2004, Page(s):79 - 85
    Cited by:  Papers (4)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (413 KB) | HTML iconHTML

    With the prevalence of legacy C/C++ code, it continually becomes more important to address the issues of readability and maintainability. When considering the problems with refactoring or migrating C/C++ code we see how important a role preprocessor directives play. In part, because of these preprocessor directives it is extremely difficult to maintain our code. We outline a method of fact extract... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • On migrating a legacy application to the palm platform

    Publication Year: 2004, Page(s):231 - 235
    Cited by:  Papers (1)  |  Patents (1)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (367 KB) | HTML iconHTML

    Handheld computing devices such as personal digital assistants (PDAs) and the latest mobile phones are becoming widespread, so migrating desktop applications to these platforms is of great interest to developers. However, little information is available to guide the novice especially for the palm OS, the,most popular platform in the PDA and smartphone arena. This paper highlights the migration cha... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Data mining source code to facilitate program comprehension: experiments on clustering data retrieved from C++ programs

    Publication Year: 2004, Page(s):214 - 223
    Cited by:  Papers (4)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (673 KB)

    This paper presents ongoing work on using data mining to discover knowledge about software systems thus facilitating program comprehension. We discuss how this work fits in the context of tool supported maintenance and comprehension and report on applying a new methodology on C++ programs. The overall framework can provide practical insights and guide the maintainer through the specifics of system... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Program comprehension in generative programming: a history of grand challenges

    Publication Year: 2004, Page(s):2 - 11
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (6028 KB) | HTML iconHTML

    The communities of generative programming (GP) and program comprehension (PC) look at similar problems: GP derives a program from a specification, PC derives a specification from a program. A basic difference between the two is GP's use of specific knowledge representations and mental models that are essential for program synthesis. In this paper, the author presents a historical review of the gra... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • An effectiveness measure for software clustering algorithms

    Publication Year: 2004, Page(s):194 - 203
    Cited by:  Papers (18)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (363 KB) | HTML iconHTML

    Selecting an appropriate software clustering algorithm that can help the process of understanding a large software system is a challenging issue. The effectiveness of a particular algorithm may be influenced by a number of different factors, such as the types of decompositions produced, or the way clusters are named. In this paper, we introduce an effectiveness measure for software clustering algo... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Requirements driven software evolution

    Publication Year: 2004, Page(s):258 - 259
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (222 KB) | HTML iconHTML

    Software evolution is an integral part of the software life cycle. Furthermore in the recent years the issue of keeping legacy systems operational in new platforms has become critical and one of the top priorities in IT departments worldwide. The research community and the industry have responded to these challenges by investigating and proposing techniques for analyzing, transforming, integrating... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Program comprehension for the purpose of testing

    Publication Year: 2004, Page(s):162 - 171
    Cited by:  Papers (4)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (316 KB) | HTML iconHTML

    In this paper, program comprehension techniques are examined within the context of testing. First, the tasks of a tester are identified, then the information requirements of a tester to fulfill these tasks. Comprehension is viewed as a knowledge acquisition process. The knowledge needed depends on the level at which one is testing. For system testing, other knowledge is required than for unit and ... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Building executable union slices using conditioned slicing

    Publication Year: 2004, Page(s):89 - 97
    Cited by:  Papers (4)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (303 KB) | HTML iconHTML

    Program slicing can be used as a support for program comprehension, because it allows a large program to be divided up into smaller slices, each of which can be understood in isolation from the rest. As such, slicing facilitates the familiar approach of 'divide and conquer'. Union slicing (the union of dynamic slices) is a useful technique for approximating a precise static slice. For program comp... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Programming style changes in evolving source code

    Publication Year: 2004, Page(s):236 - 240
    Cited by:  Papers (1)
    Request permission for commercial reuse | Click to expandAbstract |PDF file iconPDF (250 KB) | HTML iconHTML

    As programs evolve they become harder to maintain as the source code becomes more difficult to comprehend. One aspect of comprehensibility is related to the programming style exhibited by the program. However, as this aspect itself is changed during the maintenance process, we must attempt to maintain the original programming style quality to maintain the comprehensibility of the program. This pap... View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.