


%
%
%
% automatically generated
% % BibTeX2HTML D:\Documents\Common\Public.bib -force -nw -sort-criterium year
% Date: Tue Jun 29 05:02:01 2010

% Author: guehene
%
%
%










@INPROCEEDINGS{Kniesel09-DPDataFusion,
   AUTHOR       = {Günter Kniesel and Alexander Binun},
   BOOKTITLE    = {Proceedings of the 17<sup>th</sup> International Conference on Program Comprehension},
   TITLE        = {Standing on the Shoulders of Giants -- A Data Fusion 
      Approach to Design Pattern Detection},
   YEAR         = {2009},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Andrian Marcus and Rainer Koschke},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {208--217},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@ARTICLE{Sillito08-QuestionsTaskChanges,
   AUTHOR       = {Jonathan Sillito and Gail C. Murphy and Kris De Volder},
   JOURNAL      = {Transactions on Software Engineering},
   TITLE        = {Asking and Answering Questions during a Programming 
      Change Task},
   YEAR         = {2008},
   MONTH        = {July--August},
   OPTNOTE      = {},
   NUMBER       = {4},
   PAGES        = {434--451},
   VOLUME       = {34},
   EDITOR       = {Prem Devanbu and Michal Young},
   PUBLISHER    = {IEEE Computer Society Press},
   URL          = {http://csdl.computer.org/comp/trans/ts/2008/04/tts2008040433.pdf},
   ABSTRACT     = {Little is known about the specific kinds of questions 
      programmers ask when evolving a code base and how well existing tools 
      support those questions. To better support the activity of 
      programming, answers are needed to three broad research questions: 1) 
      What does a programmer need to know about a code base when evolving a 
      software system? 2) How does a programmer go about finding that 
      information? 3) How well do existing tools support programmers in 
      answering those questions? We undertook two qualitative studies of 
      programmers performing change tasks to provide answers to these 
      questions. In this paper, we report on an analysis of the data from 
      these two user studies. This paper makes three key contributions. The 
      first contribution is a catalog of 44 types of questions programmers 
      ask during software evolution tasks. The second contribution is a 
      description of the observed behavior around answering those 
      questions. The third contribution is a description of how existing 
      deployed and proposed tools do, and do not, support answering 
      programmers' questions.}
}

@ARTICLE{Yogesh08-QMFaultProneness,
   AUTHOR       = {Yogesh Singh and Bindu Goel},
   JOURNAL      = {Software metrics, Measurement, and Analytical Methods},
   TITLE        = {An Integrated Model to Predict Fault Proneness Using 
      Neural Networks},
   YEAR         = {2008},
   OPTMONTH     = {},
   OPTNOTE      = {},
   NUMBER       = {2},
   OPTPAGES     = {},
   VOLUME       = {10},
   EDITOR       = { ASQ},
   ABSTRACT     = {With the advent of object-oriented systems it is 
      contested that they are less complex, more manageable, more modular 
      and, hence, less error prone. Predictor of error is a software 
      quality attribute and is an important parameter of software 
      reliability. The program complexity measure and the size measures 
      currently seem to be the most capable measures for both quantitative 
      and objective control of the software project. Fault proneness can be 
      estimated based on certain directly measurable software attributes if 
      associations between these attributes and the system fault proneness 
      can be established. In this study, the analysis of the integrated 
      effect of the static measures and object-oriented metrics available 
      on the fault proneness of the software is done. Also, a model using 
      artificial neural network (ANN) is presented and validated for 
      detecting faulty classes. Neural network modeling methods have proved 
      to predict software quality when predicting reliability and the 
      number of faults. The neural network is trained on the principal 
      components derived from the raw data collected from real-time 
      object-oriented software systems. The model is able to classify 
      classes with as much as 76 percent accuracy. Key words: ANN, fault 
      prone classes, objectoriented metrics, object-oriented systems, 
      prediction models, software engineering, static measures}
}

@ARTICLE{Yoshioka08-SuverySecurityPatterns,
   AUTHOR       = {Nobukazu Yoshioka and Hironori Washizaki and 
      Katsuhisa Maruyama},
   JOURNAL      = {Progress in Informatics},
   TITLE        = {A Suvery on Security Patterns},
   YEAR         = {2008},
   OPTMONTH     = {},
   OPTNOTE      = {},
   NUMBER       = {5},
   PAGES        = {35--47},
   OPTVOLUME    = {},
   PUBLISHER    = {National Institute of Informatics},
   URL          = {http://www.nii.ac.jp/pi/n5/5_35.pdf}
}

@INPROCEEDINGS{deniers08-Mendel,
   AUTHOR       = {Simon Denier and Yann-Gaël Guéhéneuc},
   BOOKTITLE    = {16<sup>th</sup> IEEE International Conference on Program Comprehension},
   TITLE        = {Mendel: a Model, Metrics, and Rules to Understand Class 
      Hierarchies},
   YEAR         = {2008},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Chris Verhoef, René Krikhaar and Ralf Lämmel},
   MONTH        = {june},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {IEE Computer Society},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Dhambri08-VisualDetectionDesignAnomalies,
   AUTHOR       = {Karim Dhambri and Houari Sahraoui and Pierre Poulin},
   BOOKTITLE    = {Proceedings of the 12<sup>th</sup> European Conference on Software Maintenance and Reengineering, Tampere, Finland},
   TITLE        = {Visual Detection of Design Anomalies.},
   YEAR         = {2008},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   MONTH        = {April},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {279--283},
   PUBLISHER    = {IEEE Computer Society},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Moha08-FASE-Language,
   AUTHOR       = {Naouel Moha and Yann-Gaël Guéhéneuc and 
      Anne-Francoise Le Meur and Laurence Duchien},
   BOOKTITLE    = {Proceedings of the 11<sup>th</sup> International Conference on Fundamental Approaches to Software Engineering},
   TITLE        = {A Domain Analysis to Specify Design Defects and Generate 
      Detection Algorithms},
   YEAR         = {2008},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {José Fiadeiro and Paola Inverardi},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {276--291},
   PUBLISHER    = {Springer-Verlag},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   ABSTRACT     = {Quality experts often need to identify in software 
      systems design defects, which are recurring design problems, that 
      hinder development and maintenance. Consequently, several defect 
      detection approaches and tools have been proposed in the literature. 
      However, we are not aware of any approach that defines and reifies 
      the process of generating detection algorithms from the existing 
      textual descriptions of defects. In this paper, we introduce an 
      approach to automate the generation of detection algorithms from 
      specifications written using a domain-specific language. The 
      domain-specific is defined from a thorough domain analysis. We 
      specify several design defects, generate automatically detection 
      algorithms using templates, and validate the generated detection 
      algorithms in terms of precision and recall on Xerces v2.7.0, an 
      open-source object-oriented system.}
}

@INPROCEEDINGS{Spinellis08-ATaleOfFourKernels,
   AUTHOR       = {Diomidis Spinellis},
   BOOKTITLE    = {Proceedings of the 30<sup>th</sup> International Conference on Software Engineering},
   TITLE        = {A Tale of Four Kernels},
   YEAR         = {2008},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Wilhem Schäfer and Matthew B. Dwyer and Volker Gruhn},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {381--390},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.spinellis.gr/pubs/conf/2008-ICSE-4kernel/html/Spi08b.html},
   ABSTRACT     = {The FreeBSD, GNU/Linux, Solaris, and Windows operating 
      systems have kernels that provide comparable facilities. 
      Interestingly, their code bases share almost no common parts, while 
      their development processes vary dramatically. We analyze the source 
      code of the four systems by collecting metrics in the areas of file 
      organization, code structure, code style, the use of the C 
      preprocessor, and data organization. The aggregate results indicate 
      that across various areas and many different metrics, four systems 
      developed using wildly different processes score comparably. This 
      allows us to posit that the structure and internal quality attributes 
      of a working, non-trivial software artifact will represent first and 
      foremost the engineering requirements of its construction, with the 
      influence of process being marginal, if any.}
}

@ARTICLE{Menzis07-DefectPredictors,
   AUTHOR       = {},
   JOURNAL      = {IEEE Transactions on Software Engineering},
   TITLE        = {Data mining static code attributes to learn defect 
      predictors},
   YEAR         = {2007},
   MONTH        = {January},
   OPTNOTE      = {},
   NUMBER       = {11},
   OPTPAGES     = {},
   VOLUME       = {32},
   EDITOR       = {on Software Engineering, IEEE Transactions},
   URL          = {http://menzies.us/pdf/06learnPredict.pdf},
   ABSTRACT     = {The value of using static code attributes to learn 
      defect predictors has been widely debated. Prior work has explored 
      issues like the merits of “McCabes versus Halstead versus lines of 
      code counts ” for generating defect predictors. We show here that 
      such debates are irrelevant since how the attributes are used to 
      build predictors is much more important than which particular 
      attributes are used. Also, contrary to prior pessimism, we show that 
      such defect predictors are demonstrably useful and, on the data 
      studied here, yield predictors with a mean probability of detection 
      of 71 percent and mean false alarms rates of 25 percent. These 
      predictors would be useful for prioritizing a resource-bound 
      exploration of code that has yet to be inspected. Index Terms—Data 
      mining detect prediction, McCabe, Halstead, artifical intelligence, 
      empirical, naive Bayes.}
}

@ARTICLE{Bellon07-ComparisonCloneDetection,
   AUTHOR       = {Stefan Bellon and Rainer Koschke and Giuliano Antoniol and 
      Jens Krinke and Ettore Merlo},
   JOURNAL      = {Transactions on Software Engineering},
   TITLE        = {Comparison and Evaluation of Clone Detection Tools},
   YEAR         = {2007},
   MONTH        = {September},
   OPTNOTE      = {},
   NUMBER       = {9},
   PAGES        = {577--591},
   VOLUME       = {33},
   PUBLISHER    = {IEEE Computer Society Press},
   URL          = {http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4288192},
   ABSTRACT     = {Many techniques for detecting duplicated source code 
      (software clones) have been proposed in the past. However, it is not 
      yet clear how these techniques compare in terms of recall and 
      precision as well as space and time requirements. This paper presents 
      an experiment that evaluates six clone detectors based on eight large 
      C and Java programs (altogether almost 850 KLOC). Their clone 
      candidates were evaluated by one of the authors as an independent 
      third party. The selected techniques cover the whole spectrum of the 
      state-of-the-art in clone detection. The techniques work on text, 
      lexical and syntactic information, software metrics, and program 
      dependency graphs.}
}

@ARTICLE{Beyer07-ModelCheckerBlast,
   AUTHOR       = {Dirk Beyer and Thomas A. Henzinger and Ranjit Jhala and 
      Rupak Majumdar},
   JOURNAL      = {Int. Journal on Software Tools for Technology Transfer},
   TITLE        = {The Software Model Checker Blast: Applications to 
      Software Engineering.},
   YEAR         = {2007},
   OPTMONTH     = {},
   NOTE         = {Invited to special issue of selected papers from FASE 2005},
   OPTNUMBER    = {},
   PAGES        = {505–525},
   VOLUME       = {9}
}

@ARTICLE{Dong07-VisualisingDP,
   AUTHOR       = {Jing Dong and Sheng Yang and Kang Zhang},
   JOURNAL      = {Transactions on Software Engineering},
   TITLE        = {Visualizing Design Patterns in Their Applications and 
      Compositions},
   YEAR         = {2007},
   MONTH        = {July},
   OPTNOTE      = {},
   NUMBER       = {7},
   PAGES        = {433--453},
   VOLUME       = {33},
   EDITOR       = {Jeff Kramer},
   PUBLISHER    = {IEEE Computer Society Press},
   URL          = {http://csdl2.computer.org/persagen/DLAbsToc.jsp?resourcePath=/dl/trans/ts/&toc=comp/trans/ts/2007/07/e7toc.xml&DOI=10.1109/TSE.2007.1012},
   ABSTRACT     = {Design patterns are generic design solutions that can be 
      applied and composed in different applications where pattern-related 
      information is generally implicit in the Unified Modeling Language 
      (UML) diagrams of the applications. It is unclear in which pattern 
      instances each modeling element, such as class, attribute, and 
      operation, participates. It is hard for a designer to find the design 
      patterns used in an application design. Consequently, the benefits of 
      design patterns are compromised because designers cannot communicate 
      with each other in terms of the design patterns they used and their 
      design decisions and trade-offs. In this paper, we present a UML 
      profile that defines new stereotypes, tagged values, and constraints 
      for tracing design patterns in UML diagrams. These new stereotypes 
      and tagged values are attached to a modeling element to explicitly 
      represent the role the modeling element plays in a design pattern so 
      that the user can identify the pattern in a UML diagram. Based on 
      this profile, we also develop a Web service (tool) for explicitly 
      visualizing design patterns in UML diagrams. With this service, users 
      are able to visualize design patterns in their applications and 
      compositions because pattern-related information can be dynamically 
      displayed. A real-world case study and a comparative experiment with 
      existing approaches are conducted to evaluate our approach.}
}

@ARTICLE{Huchard07-RelationalConceptDiscovery,
   AUTHOR       = {Marianne Huchard and Cyril Roume and Amine Rouane Hacène and 
      Petko Valtchev},
   JOURNAL      = {Annals of Mathematics and Artificial Intelligence},
   TITLE        = {Relational Concept Discovery in Structured Datasets.},
   YEAR         = {2007},
   OPTMONTH     = {},
   OPTNOTE      = {},
   NUMBER       = {1-4},
   PAGES        = {39–76},
   VOLUME       = {49}
}

@ARTICLE{Milanova07-CompositionInference,
   AUTHOR       = {Ana Milanova},
   JOURNAL      = {Journal of Automated Software Engineering},
   TITLE        = {Composition Inference for UML Class Diagrams},
   YEAR         = {2007},
   MONTH        = {June},
   OPTNOTE      = {},
   NUMBER       = {2},
   PAGES        = {179--213},
   VOLUME       = {14},
   EDITOR       = {Tom Ellman and Andrea Zisman},
   PUBLISHER    = {Kluwer Academic Publishers},
   URL          = {http://portal.acm.org/citation.cfm?id=1285560.1285566},
   ABSTRACT     = {Knowing which associations are compositions is important 
      in a tool for the reverse engineering of UML class diagrams. Firstly, 
      recovery of composition relationships bridges the gap between design 
      and code. Secondly, since composition relationships explicitly state 
      a requirement that certain representations cannot be exposed, it is 
      important to determine if this requirement is met by component code. 
      Verifying that compositions are implemented properly may prevent 
      serious program flaws due to representation exposure. We propose an 
      implementation-level composition model based on ownership and a novel 
      approach for identifying compositions in Java software. Our approach 
      is based on static ownership inference; it is parameterized by class 
      analysis and is designed to work on incomplete programs. We present 
      empirical results from two instantiation of our approach. For one of 
      these instantiations, on average 40\% of the examined fields account 
      for relationships that are identified as compositions. In addition, 
      we present a precision evaluation which shows that the analysis 
      achieves almost perfect precision--that is, it almost never misses 
      composition relationships. The results indicate that precise 
      identification of interclass relationships can be done with a simple 
      and inexpensive analysis, and thus can be easily incorporated in 
      reverse engineering tools that support iterative model-driven 
      development.}
}

@ARTICLE{Pan07-EyeTrackingGoogle,
   AUTHOR       = {Bing Pan and Helene Hembrooke and Thorsten Joachims and 
      Lori Lorigo and Geri Gay and Laura Granka},
   JOURNAL      = {Journal of Computer-Mediated Communication},
   TITLE        = {In Google We Trust: Users' Decisions on Rank, Position, 
      and Relevance},
   YEAR         = {2007},
   MONTH        = {April},
   OPTNOTE      = {},
   NUMBER       = {3},
   PAGES        = {801--822},
   VOLUME       = {12},
   EDITOR       = {Susan C. Herring},
   PUBLISHER    = {USC Annenberg School for Communication},
   URL          = {http://jcmc.indiana.edu/vol12/issue3/pan.html},
   ABSTRACT     = {An eye tracking experiment revealed that college student 
      users have substantial trust in Google's ability to rank results by 
      their true relevance to the query. When the participants selected a 
      link to follow from Google's result pages, their decisions were 
      strongly biased towards links higher in position even if the 
      abstracts themselves were less relevant. While the participants 
      reacted to artificially reduced retrieval quality by greater 
      scrutiny, they failed to achieve the same success rate. This 
      demonstrated trust in Google has implications for the search engine's 
      tremendous potential influence on culture, society, and user traffic 
      on the Web.}
}

@ARTICLE{Patcha07-AnomalyDetectionNetworks,
   AUTHOR       = {Animesh Patcha and Jung-Min Park},
   JOURNAL      = {Comput. Netw.},
   TITLE        = {An overview of anomaly detection techniques: Existing 
      solutions and latest technological trends},
   YEAR         = {2007},
   OPTMONTH     = {},
   OPTNOTE      = {},
   NUMBER       = {12},
   PAGES        = {3448--3470},
   VOLUME       = {51},
   ADDRESS      = {New York, NY, USA},
   PUBLISHER    = {Elsevier North-Holland, Inc.}
}

@ARTICLE{Pilskalns06-TestingUMLDesigns,
   AUTHOR       = {Orest Pilskalns and Anneliese Andrews and Andrew Knight and 
      Sudipto Ghosh and Robert France},
   JOURNAL      = {Information and Software Technology},
   TITLE        = {Testing UML Designs},
   YEAR         = {2007},
   MONTH        = {August},
   OPTNOTE      = {},
   NUMBER       = {8},
   PAGES        = {892--912},
   VOLUME       = {49},
   EDITOR       = {Martin Shepperd and Claes Wohlin and Sebastian Elbaum},
   PUBLISHER    = {Elsevier},
   URL          = {http://portal.acm.org/citation.cfm?id=1266155},
   ABSTRACT     = {Early detection and correction of faults in the software 
      design phase can reduce total cost and time to market of a software 
      product. In this paper we describe an approach for testing UML design 
      models to uncover inconsistencies. Our approach uses behavioral views 
      such as Sequence Diagrams to simulate state change in an aggregate 
      model. The aggregate model is the artifact of merging information 
      from behavioral and structural UML views. OCL pre-conditions, 
      post-conditions and invariants are used as a test oracle.}
}

@INPROCEEDINGS{Aversano07-EvolutionDP,
   AUTHOR       = {Lerina Aversano and Gerardo Canfora and Luigi Cerulo and 
      Concettina Del Grosso and di Penta, Massimiliano},
   BOOKTITLE    = {Proceedings of the 6<sup>th</sup> joint meeting of the European Software Engineering Conference and the 14<sup>th</sup> Symposium on Foundations of Software Engineering},
   TITLE        = {An Empirical Study on the Evolution of Design Patterns},
   YEAR         = {2007},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Antonia Bertolino},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {385--394},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?id=1287624.1287680},
   ABSTRACT     = {Design patterns are solutions to recurring design 
      problems, conceived to increase benefits in terms of reuse, code 
      quality and, above all, maintainability and resilience to changes. 
      This paper presents results from an empirical study aimed at 
      understanding the evolution of design patterns in three open source 
      systems, namely JHotDraw, ArgoUML, and Eclipse-JDT. Specifically, the 
      study analyzes how frequently patterns are modified, to what changes 
      they undergo and what classes co-change with the patterns. Results 
      show how patterns more suited to support the application purpose tend 
      to change more frequently, and that different kind of changes have a 
      different impact on co-changed classes and a different capability of 
      making the system resilient to changes.}
}

@INPROCEEDINGS{Antoniol07-ThreatsCVSBugzilla,
   AUTHOR       = {Kamel Ayari and Peyman Meshkinfam and Giuliano Antoniol and 
      di Penta, Massimiliano},
   BOOKTITLE    = {Proceedings of the 17<sup>th</sup> IBM Centers for Advanced Studies Conference},
   TITLE        = {Threats on Building Models from CVS and Bugzilla 
      Repositories: the Mozilla Case Study},
   YEAR         = {2007},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Bruce Spencer and Margaret-Anne Storey},
   MONTH        = {October},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Bruno07-AnomalyDetectionXMLDatabases,
   AUTHOR       = {Giulia Bruno and Paolo Garza and Elisa Quintarelli and 
      Rosalba Rossato},
   BOOKTITLE    = {DEXA '07: Proceedings of the 18th International Conference on Database and Expert Systems Applications},
   TITLE        = {Anomaly Detection in XML databases by means of 
      Association Rules},
   YEAR         = {2007},
   ADDRESS      = {Washington, DC, USA},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {387--391},
   PUBLISHER    = {IEEE Computer Society},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Fish07-VisualQualitiesUML,
   AUTHOR       = {Andrew Fish and Harald Storrle},
   BOOKTITLE    = {Proceedings of the 8<sup>th</sup> Symposium on Visual Languages and Human-Centric Computing},
   TITLE        = {Visual qualities of the Unified Modeling Language: 
      Deficiencies and Improvements},
   YEAR         = {2007},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Phil Cox and John Hosking},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {41--49},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://csdl2.computer.org/persagen/DLAbsToc.jsp?resourcePath=/dl/proceedings/&toc=comp/proceedings/vlhcc/2007/2987/00/2987toc.xml&DOI=10.1109/VLHCC.2007.62},
   ABSTRACT     = {The Unified Modeling Language (UML) is a family of 
      largely visual notations which has become the "lingua franca" of 
      software engineering. In industrial settings the UML is used mainly 
      as a means for facilitating communication between humans and so its 
      visual qualities are decisive for its usefulness and practical value. 
      However, it is rare to see any sort of analysis of the visual 
      qualities and their effectiveness. Also, since the UML is continually 
      evolving, some guidelines and criteria to help analyse any changes or 
      additional proposed notations would be beneficial. Building on some 
      basic frameworks and design criteria, we develop some principles for 
      effective design, especially when considering languages with vague 
      semantics. We use this to identify a number of problems of the UML 
      that show up in the diagrammatic representation of models and propose 
      improvements which overcome these difficulties. The methodology is 
      applicable for analysing other complex languages with vague semantics 
      in order to try to reduce human errors.}
}

@INPROCEEDINGS{Jorwekar07-AnomaliesDatabases,
   AUTHOR       = {Sudhir Jorwekar and Alan Fekete and Krithi Ramamritham and 
      S. Sudarshan},
   BOOKTITLE    = {VLDB '07: Proceedings of the 33rd international conference on Very large data bases},
   TITLE        = {Automating the detection of snapshot isolation anomalies},
   YEAR         = {2007},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {1263--1274},
   PUBLISHER    = {VLDB Endowment},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Kampffmeyer07-FormalDPIntent,
   AUTHOR       = {Holger Kampffmeyer and Steffen Zschaler},
   BOOKTITLE    = {Proceedings of the 10<sup>th</sup> International Conference on Model Driven Engineering Languages and Systems},
   TITLE        = {Finding the Pattern You Need: The Design Pattern Intent 
      Ontology},
   YEAR         = {2007},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Gregor Engels and Bill Opdyke and Douglas C. Schmidt and 
      Frank Weil},
   MONTH        = {September--October},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {211--225},
   PUBLISHER    = {Springer},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.springerlink.com/content/303028v312560v26/},
   ABSTRACT     = {Since the seminal book by the Gang of Four, design 
      patterns have proven an important tool in software development. Over 
      time, more and more patterns have been discovered and developed. The 
      sheer amount of patterns available makes it hard to find patterns 
      useful for solving a specific design problem. Hence, tools supporting 
      searching and finding design patterns appropriate to a certain 
      problem are required. To develop such tooling, design patterns must 
      be described formally such that they can be queryed by the problem to 
      be solved. Current approaches to formalising design patterns focus on 
      the solution structure of the pattern rather than on the problems 
      solved. In this paper, we present a formalisation of the intent of 
      the 23 patterns from the Gang-of-Four book. Based on this 
      formalisation we have developed a Design Pattern Wizard that proposes 
      applicable design patterns based on a description of a design 
      problem.}
}

@INPROCEEDINGS{Kuhlemann07-DualityAOPFOP,
   AUTHOR       = {Martin Kuhlemann and Marko Rosenmüller and Sven Apel and 
      Thomas Leich},
   BOOKTITLE    = {Proceedings of the 6<sup>th</sup> Workshop on Aspects, Components, and Patterns for Infrastructure Software},
   TITLE        = {On the Duality of Aspect-oriented and Feature-oriented 
      Design Patterns},
   YEAR         = {2007},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Olaf Spinczyk and Mario Südholt and Celina Gibbs},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {1--7},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://portal.acm.org/citation.cfm?id=1233901.1233906},
   ABSTRACT     = {Design patterns aim at improving reusability and 
      variability of object-oriented software. Despite a notable success, 
      aspect-oriented programming (AOP) has been discussed recently to 
      improve the design pattern implementations. In another line of 
      research it has been noticed that feature-oriented programming (FOP) 
      is related closely to AOP and that FOP suffices in many situations 
      where AOP is commonly used. In this paper we explore the assumed 
      duality between AOP and FOP mechanisms. As a case study we use the 
      aspect-oriented design pattern implementations of Hannemann and 
      Kiczales. We observe that almost all of the 23 aspect-oriented design 
      pattern implementations can be transformed straightforwardly into 
      equivalent feature-oriented design patterns. For further 
      investigations we provide a set of general rules how to transform 
      aspect-oriented programs into feature-oriented programs.}
}

@INPROCEEDINGS{Amstel07-QualityUMLSD,
   AUTHOR       = {Van Amstel, Marcel F. and Christian F.J. Lange and 
      Michel R.V. Chaudron},
   BOOKTITLE    = {Proceedings of the 31<sup>st</sup> Annual International Computer Software and Applications Conference},
   TITLE        = {Four Automated Approaches to Analyze the Quality of UML 
      Sequence Diagrams},
   YEAR         = {2007},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Fevzi Belli and Mei Hong and Bruce McMillin},
   MONTH        = {July},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {415--424},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://ieeexplore.ieee.org/xpls/abs_all.jsp?isnumber=4291085&arnumber=4291156},
   ABSTRACT     = {UML sequence diagrams describe the interaction be- tween 
      objects of a system. In this paper, we present four approaches to 
      analyze the quality of sequence diagrams. First, we propose formal 
      model checking techniques and vi- sualization to analyze the possible 
      interaction traces and to identify ambiguities in a sequence diagram. 
      Second, we identified patterns of common interactive behavior and we 
      present an approach to identify these patterns. This ap- proach is 
      useful to identify implicit patterns and make them explicit. Third, 
      we propose a series of checks to identify syn- tactic defects in 
      sequence diagrams. The fourth approach consists of metrics describing 
      properties such as coverage. The proposed approaches complement each 
      other rather than being competing alternatives. We implemented these 
      approaches in our SquAT tool and conducted a multi case study on 
      three industrial and five research models to vali- date them. These 
      models showed a large number of defects which were acknowledged by 
      their designers.}
}

@INPROCEEDINGS{Xie07-EvaluationUMLAdornmentsForThreads,
   AUTHOR       = {Shaohua Xie and Eileen Kraemer and 
      Richard Erick Kurt Stirewalt},
   BOOKTITLE    = {Proceedings of the 15<sup>th</sup> International Conference on Program Comprehension},
   TITLE        = {Empirical Evaluation of a UML Sequence Diagram with 
      Adornments to Support Understanding of Thread Interactions},
   YEAR         = {2007},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Eleni Stroulia and Paolo Tonella},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {123--134},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?id=1271353},
   ABSTRACT     = {Programs that use multi-threaded concurrency are known 
      to be difficult to design. Moreover, research in computer-science 
      education suggests that concurrency and synchronization concepts are 
      generally difficult to master. It stands to reason that comprehension 
      tasks may be more complex for programs that employ concurrency than 
      for sequential programs. We believe that external representations, 
      specifically refinements to some of the popular UML modeling 
      notations, should aid students in mastering fundamental concurrency/ 
      synchronization concepts and should enable practitioners to better 
      comprehend the dynamically evolving nature of the these programs. In 
      this paper, we present our synchronization adorned UML (saUML) 
      sequence diagram notation that highlights aspects of thread 
      interactions and describe an empirical study of whether these 
      diagrams, as opposed to purely textual representations, help students 
      to better understand concurrent executions and concurrency concepts, 
      as measured by their ability to answer questions about a particular 
      execution of a multi-threaded system. A statistically significant 
      benefit was found from the study.}
}

@INPROCEEDINGS{Maletic2007-UMLDiagramsandEyeTracking,
   AUTHOR       = {Shehnaaz Yusuf and Huzefa Kagdi and Jonathan I. Maletic},
   BOOKTITLE    = {Proceedings of the 15<sup>th</sup> International Conference on Program Comprehension},
   TITLE        = {Assessing the Comprehension of UML Class Diagrams via 
      Eye Tracking},
   YEAR         = {2007},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Eleni Stroulia and Paolo Tonella},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {113--122},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4268246},
   ABSTRACT     = {Eye-tracking equipment is used to assess how well a 
      subject comprehends UML class diagrams. The results of a study are 
      presented in which eye movements are captured in a non-obtrusive 
      manner as users performed various comprehension tasks on UML class 
      diagrams. The goal of the study is to identify specific 
      characteristics of UML class diagrams, such as layout, color, and 
      stereotype usage that are most effective for supporting a given task. 
      Results indicate subjects have a variation in the eye movements 
      (i.e., how the subjects navigate the diagram) depending on their UML 
      expertise and software-design ability to solve the given task. 
      Layouts with additional semantic information about the design were 
      found to be most effective and the use of class stereotypes seems to 
      play a substantial role in comprehension of these diagrams.}
}

@INPROCEEDINGS{Yusuf07-ComprehensionUMLEyeTracking,
   AUTHOR       = {Shehnaaz Yusuf and Huzefa Kagdi and Jonathan I. Maletic},
   BOOKTITLE    = {Proceedings of the 15<sup>th</sup> IEEE International Conference on Program Comprehension},
   TITLE        = {Assessing the Comprehension of UML Diagrams via Eye 
      Tracking},
   YEAR         = {2007},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Eleni Stroulia and Paolo Tonella},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {145--154},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4268246},
   ABSTRACT     = {Eye-tracking equipment is used to assess how well a 
      subject comprehends UML class diagrams. The results of a study are 
      presented in which eye movements are captured in a non-obtrusive 
      manner as users performed various comprehension tasks on UML class 
      diagrams. The goal of the study is to identify specific 
      characteristics of UML class diagrams, such as layout, color, and 
      stereotype usage that are most effective for supporting a given task. 
      Results indicate subjects have a variation in the eye movements 
      (i.e., how the subjects navigate the diagram) depending on their UML 
      expertise and software-design ability to solve the given task. 
      Layouts with additional semantic information about the design were 
      found to be most effective and the use of class stereotypes seems to 
      play a substantial role in comprehension of these diagrams.}
}

@TECHREPORT{Fenton-AgenaRisk-2007,
   AUTHOR       = {Norman Fenton and Martin Neil},
   INSTITUTION  = {London Mathematical Society},
   TITLE        = {MANAGING RISK IN THE MODERN WORLD Applications of 
      Bayesian Networks},
   YEAR         = {2007},
   OPTADDRESS   = {},
   MONTH        = {November},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTTYPE      = {},
   URL          = {http://www.agenarisk.com/resources/apps_bayesian_networks.pdf}
}

@BOOK{Lanz06-OOMetricsInPractice,
   PUBLISHER    = {Springer-Verlag},
   TITLE        = {Object-Oriented Metrics in Practice},
   YEAR         = {2006},
   AUTHOR       = {Michele Lanza and Radu Marinescu},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   OPTEDITION   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {metrics object-oriented},
   URL          = {http://www.springer.com/alert/urltracking.do?id=5907042}
}

@ARTICLE{Briand06-RerverseUMLSequenceDiagrams,
   AUTHOR       = {Lionel Briand and Yvan Labich and Johanne Leduc},
   JOURNAL      = {Transactions on Software Engineering},
   TITLE        = {Towards the Reverse Engineering of UML Sequence Diagrams 
      for Distributed Java Software},
   YEAR         = {2006},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   PUBLISHER    = {IEEE Computer Society Press},
   URL          = {http://squall.sce.carleton.ca/pubs/tech_report/TR_SCE-04-04.pdf}
}

@ARTICLE{Briand06-ReverseUMLSequenceDiagrams,
   AUTHOR       = {Lionel Briand and Yvan Labiche and Johanne Leduc},
   JOURNAL      = {Transactions on Software Engineering},
   TITLE        = {Towards the Reverse Engineering of UML Sequence Diagrams 
      for Distributed Java Software},
   YEAR         = {2006},
   MONTH        = {September},
   OPTNOTE      = {},
   NUMBER       = {9},
   OPTPAGES     = {},
   VOLUME       = {32},
   BOOKTITLE    = {Transactions on Software Engineering},
   PUBLISHER    = {IEEE Computer Society}
}

@ARTICLE{Mens06-Coevolving,
   AUTHOR       = {Kim Mens and Andy Kellens and Frédéric Pluquet and 
      Roel Wuyts},
   JOURNAL      = {Computer Languages, Systems, and Structures},
   TITLE        = {Co-Evolving Code and Design with Intensional Views -- A 
      Case Study},
   YEAR         = {2006},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   EDITOR       = {Robert S. Ledley},
   KEYWORDS     = {Design Patterns},
   PUBLISHER    = {Elsevier},
   URL          = {http://prog.vub.ac.be/Publications/2005/vub-prog-tr-05-26.pdf},
   ABSTRACT     = {Intensional views and relations have been proposed as a 
      way of actively documenting high-level structural regularities in the 
      source code of a software system. By checking conformance of these 
      intensional views and relations against the source code, they 
      supposedly facilitate a variety of software maintenance and evolution 
      tasks. In this paper, by performing a case study on three di erent 
      versions of the SmallWiki application, we critically analyze in how 
      far the model of intensional views and its current generation of 
      tools provide support for co-evolving high-level design and source 
      code of a software system.}
}

@ARTICLE{Mosero7-WarningandDefects,
   AUTHOR       = {Raimund Moser and Barbara Russo and Giancarlo Succi},
   JOURNAL      = {Empirical Software Engineering},
   TITLE        = {Empirical analysis on the correlation between GCC 
      compiler warnings and revision numbers of source files in five 
      industrial software projects},
   YEAR         = {2006},
   MONTH        = {November},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   PAGES        = {295-310},
   VOLUME       = {12},
   EDITOR       = {Springer Science},
   PUBLISHER    = {Springer Science and Business Media},
   ABSTRACT     = {This article discusses whether using warnings generated 
      by the GNU C++ compiler can be used effectively to identify source 
      code files that are likely to be error prone. We analyze five 
      industrial projects written in C++ and belonging to the 
      telecommunication domain. We find a significant positive correlation 
      between the number of compiler warnings and the number of source 
      files changes. We use such correlation to conclude that compiler 
      warnings may be used as an indicator for the presence of software 
      defects in source code. The result of this research is useful for 
      finding defect-prone modules in newer projects, which lack change 
      history. Keywords Compiler warnings . Revision numbers . Software 
      defect prediction . Bootstrap . Meta-analysis}
}

@ARTICLE{Tsantalis06-DPDetectionSimilarityScoring,
   AUTHOR       = {Nikolaos Tsantalis and Alexander Chatzigeorgiou and 
      George Stephanides and Spyros Halkidis},
   JOURNAL      = {Transactions on Software Engineering},
   TITLE        = {Design Pattern Detection Using Similarity Scoring},
   YEAR         = {2006},
   MONTH        = {November},
   OPTNOTE      = {},
   NUMBER       = {11},
   OPTPAGES     = {},
   VOLUME       = {32},
   KEYWORDS     = {Design Patterns},
   PUBLISHER    = {IEEE Computer Society Press}
}

@INPROCEEDINGS{Alikacem06-LMO-LangageRegles,
   AUTHOR       = {El Hachemi Alikacem and Houari Sahraoui},
   BOOKTITLE    = {actes du 12<sup>e</sup> colloque Langages et Modèles à Objets},
   TITLE        = {Détection d'anomalies utilisant un langage de 
      description de règle de qualité},
   YEAR         = {2006},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Roger Rousseau},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {185--200},
   PUBLISHER    = {Hermès Science Publications},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   ABSTRACT     = {Numerous quality rules have been proposed in the 
      literature. These rules define the ``best practices'' for designing 
      and to implementing flaw-free object-oriented program. Unfortunately, 
      due to the particular nature of these rules, there are no existent 
      tools that can really take advantage of them to improve the quality 
      in object-oriented development. In this paper, we propose an approach 
      for detecting violations of quality rules in object-oriented 
      programs. We suggest modeling these rules using fuzzy rule-based 
      systems and apply them on source code.}
}

@INPROCEEDINGS{Alikacem06-GenericMetricExtraction,
   AUTHOR       = {El Hachemi Alikacem and Houari Sahraoui},
   BOOKTITLE    = {Proceedings of the 16<sup>th</sup> International Workshop on Software Measurement and Metrik Kongress (IWSM/MetriKon)},
   TITLE        = {Generic Metric Extraction Framework},
   YEAR         = {2006},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {383--390},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Barais06-NewConcerns,
   AUTHOR       = {Olivier Barais and Julia Lawall and 
      Le Meur, Anne-Françoise and Laurence Duchien},
   BOOKTITLE    = {Proceedings of the 13<sup>th</sup> international conference on Engineering of Computer Based Systems},
   TITLE        = {Safe Integration of New Concerns in a Software 
      Architecture},
   YEAR         = {2006},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Matthias Riebisch},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.irisa.fr/triskell/members/olivier.barais/},
   ABSTRACT     = {Software architectures must frequently evolve to cope 
      with changing requirements, and this evolution often implies 
      integrating nwe concerns. Unfortunately, existing architecture 
      description languages provide little or not support for this kind of 
      evolution. The software architect must modify the architetcure 
      manually, which risks introducing inconsistencies. In previous work, 
      we have proposed the TranSAT framework, which provides a pattern 
      construct for describing new concerns and their integration into an 
      existing architecture. As the interaction between the new concern and 
      the existing architecture may be complex, it is essential that the 
      framework ensures the coherence of the resulting architecture. In 
      this paper, we introduce a language for specifying patterns and 
      verifications that ensure that the concern represented by a pattern 
      can be safely integrated into an existing architecture. The 
      verifications comprise static verifications that check coherence 
      properties before the architecture is modified and dynamic 
      verifications that focus on the parts of the architecture that are 
      affected by the pattern. As a result of these verifications, patterns 
      can be provided as a commodity, such that a software architect can 
      confidently apply a pattern obtained from a third-party developer.}
}

@INPROCEEDINGS{Gensel06-ToutPartieAROM,
   AUTHOR       = {Jérôme Gensel and Cécile Capponi and Philippe Genoud and 
      Danielle Ziébelin},
   BOOKTITLE    = {actes du 12<sup>e</sup> colloque Langages, Modèles, Objets},
   TITLE        = {Vers une intégration des relations Partie-Tout dans AROM},
   YEAR         = {2006},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Roger Rousseau and Christelle Urtado and 
      Sylvain Vauttier},
   MONTH        = {mars},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {53--68},
   PUBLISHER    = {Hermès Science Publications},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://objet.e-revues.com/article.jsp?articleId=7968},
   ABSTRACT     = {De nombreux champs applicatifs n\'ecessitent la maise en 
      oeuvre de relations d\'ecrivant les sp\'ecificit\'es du lien entre un 
      tout et ses parties. Nous nous appuyons sur diff\'erents travaux dans 
      le domaine de la repr\'esentation des connaissances et de la 
      mod\'elisation en g\'enie logiciel, pour pr\'esenter l'int\'egration 
      de diverses s\'emantiques de la relation Tout-Partie dans le 
      syst\`eme de repr\'esentation de connaissances par objets AROM. Nous 
      pr\'esentons les diff\'erentes s\'emantiques retenues et leur 
      op\'erationnalisation puis les illustrons \`a travers un exemple.}
}

@INPROCEEDINGS{Kim06-MicroPatternEvolution,
   AUTHOR       = {Sunghun Kim and Kai Pan and E. James Whitehead},
   BOOKTITLE    = {Proceedings of the 3<sup>rd</sup> international workshop on Mining Software Repositories},
   TITLE        = {Micro Pattern Evolution},
   YEAR         = {2006},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Stephan Diehl and Harald Gall and Ahmed E. Hassan},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {40--46},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?id=1137983.1137995},
   ABSTRACT     = {When analyzing the evolution history of a software 
      project, we wish to develop results that generalize across projects. 
      One approach is to analyze design patterns, permitting 
      characteristics of the evolution to be associated with patterns, 
      instead of source code. Traditional design patterns are generally not 
      amenable to reliable automatic extraction from source code, yet 
      automation is crucial for scalable evolution analysis. Instead, we 
      analyze ``micro pattern" evolution; patterns whose abstraction level 
      is closer to source code, and designed to be automatically 
      extractable from Java source code or bytecode. We perform 
      micro-pattern evolution analysis on three open source projects, 
      ArgoUML, Columba, and jEdit to identify micro pattern frequencies, 
      common kinds of pattern evolution, and bug-prone patterns. In all 
      analyzed projects, we found that the micro patterns of Java classes 
      do not change often. Common bug-prone pattern evolution kinds are 
      'Pool $\rightarrow$ Pool', 'Implementor $\rightarrow$ NONE', and 
      'Sampler $\rightarrow$ Sampler'. Among all pattern evolution kinds, 
      'Box', 'CompoundBox', 'Pool', 'CommonState', and 'Outline' micro 
      patterns have high bug rates, but they have low frequencies and a 
      small number of changes. The pattern evolution kinds that are 
      bug-prone are somewhat similar across projects. The bug-prone pattern 
      evolution kinds of two different periods of the same project are 
      almost identical.}
}

@INPROCEEDINGS{Mihancea06-ClassHierarchies,
   AUTHOR       = {Petru Florin Mihancea},
   BOOKTITLE    = {Proceedings of the 14<sup>th</sup> International Conference on Program Comprehension},
   TITLE        = {Towards a Client Driven Characterization of Class 
      Hierarchies},
   YEAR         = {2006},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Jurgen Ebert and Panos Linos},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {285--294},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1631136},
   ABSTRACT     = {Object-oriented legacy systems are hard to maintain 
      because they are hard to understand. One of the main understanding 
      problems is revealed by the so-called "yo-yo effect" that appears 
      when a developer or maintainer wants to track a polymorphic method 
      call. At least part of this understanding problem is due to the dual 
      nature of the inheritance relation i.e., the fact that it can be used 
      both as a code and/or as an interface reuse mechanism. Unfortunately, 
      in order to find out the original intention for a particular 
      hierarchy it is not enough to look at the hierarchy itself; rather 
      than that, an in-depth analysis of the hierarchy’s clients is 
      required. In this paper we introduce a new metrics-based approach 
      that helps us characterize the extent to which a base class was 
      intended for interface reuse, by analyzing how clients use the 
      interface of that base class. The idea of the approach is to quantify 
      the extent to which clients treat uniformly the instances of the 
      descendants of the base class, when invoking methods belonging to 
      this common interface. We have evaluated our approach on two 
      medium-sized case studies and we have found that the approach does 
      indeed help to characterize the nature of a base class with respect 
      to interface reuse. Additionally, the approach can be used to detect 
      some interesting patterns in the way clients actually use the 
      descendants through the interface of the base class.}
}

@INPROCEEDINGS{Moha06-ASE-GenerationDetectionAlgorithms,
   AUTHOR       = {Naouel Moha and Yann-Gaël Guéhéneuc and Pierre Leduc},
   BOOKTITLE    = {Proceedings of the 21<sup>st</sup> Conference on Automated Software Engineering},
   TITLE        = {Automatic Generation of Detection Algorithms for Design 
      Defects},
   YEAR         = {2006},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Sebastian Uchitel and Steve Easterbrook},
   MONTH        = {September},
   NOTE         = {Short paper.},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.iro.umontreal.ca/~ptidej/Publications/Documents/ASE06.doc.pdf}
}

@INPROCEEDINGS{Moha06-LMO-TaxonomieMetamodele,
   AUTHOR       = {Naouel Moha and Duc-Loc Huynh and Yann-Ga'el Guéhéneuc},
   BOOKTITLE    = {actes du 12<sup>e</sup> colloque Langages et Modèles à Objets},
   TITLE        = {Une taxonomie et un métamodèle pour la détection des 
      défauts de conception},
   YEAR         = {2006},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Roger Rousseau},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {201--216},
   PUBLISHER    = {Hermès Science Publications},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   ABSTRACT     = {Design defects are similar to design patterns, which are 
      today largely used: design patterns propose ``good'' solutions to 
      recurring design problems in object-oriented architectures, whereas 
      design defects are ``bad'' solutions. However, unlike design 
      patterns, design defects have not yet been widely studied and are 
      based essentially on textual descriptions prone to interpretation. 
      The lack of precise and structured representation of design defects 
      hinders the efficient detection and correction of these defects. We 
      propose a methodology to represent design defects based on a 
      meta-model using a taxonomy of defects. We apply and validate this 
      methodology on a set of design defects such as the Blob and the Swiss 
      Army Knife.}
}

@INPROCEEDINGS{Park06-LayeredPackage,
   AUTHOR       = {Chanjin Park and Chisu Wu},
   BOOKTITLE    = {Proceedings of the 22<sup>nd</sup> International Conference on Software Maintenance},
   TITLE        = {Construction of Layered Package Structure by Class 
      Layering},
   YEAR         = {2006},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Rainer Koschke and David Binkley},
   MONTH        = {September},
   NOTE         = {Submitted for publication.},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Pettersson06-EfficientAccurateDP,
   AUTHOR       = {Niklas Pettersson and Welf Lowe},
   BOOKTITLE    = {Proceedings of the XIII Asia Pacific Software Engineering Conference},
   TITLE        = {Efficient and Accurate Software Pattern Detection},
   YEAR         = {2006},
   ADDRESS      = {Washington, DC, USA},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {317--326},
   PUBLISHER    = {IEEE Computer Society},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Xie06-VisualisationCVS,
   AUTHOR       = {Xinrong Xie and Denys Poshyvanyk and Andrian Marcus},
   BOOKTITLE    = {Proceedings of the 13<sup>th</sup> Working Conference on Reverse Engineering},
   TITLE        = {Visualization of CVS Repository Information},
   YEAR         = {2006},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Susan Elliott Sim and Massimiliano Di Penta},
   MONTH        = {Octobre},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   ABSTRACT     = {Mining software repositories is an important activity 
      during software evolution, as the extracted data is used to support a 
      variety of software maintenance tasks. The key information extracted 
      from these repositories gives a picture of the changes on the 
      software system. To have a complete picture, tailored to the needs of 
      the developer, the extracted data needs to be filtered, aggregated, 
      and presented to the users. In this paper we propose a new 
      visualization for such data, which relies on an existing software 
      visualization front-end, SourceViewer3D (sv3D). The new visualization 
      allows users to define multiple views of the change history data, 
      each view helps answer a set of questions relevant to specific 
      maintenance tasks. Data can be viewed at different granularity (e.g., 
      file, line of text, method, class) and comprehensive views can be 
      defined, which display to the user multiple data types at the same 
      time. Complex questions and tasks can be solved with the aid of such 
      views.}
}

@TECHREPORT{Delamare06-ReverseSequenceDiagrams,
   AUTHOR       = {Romain Delamare},
   INSTITUTION  = {Equipe Triskell, IRISA},
   TITLE        = {Rétro-ingénierie des modèles dynamiques d'UML},
   YEAR         = {2006},
   OPTADDRESS   = {},
   MONTH        = {janvier},
   OPTNOTE      = {},
   NUMBER       = {Rapport bibliographique},
   OPTTYPE      = {},
   URL          = {ftp://ftp.irisa.fr/local/caps/DEPOTS/BIBLIO2006/rapbiblio_delamare_romain.pdf},
   ABSTRACT     = {La maintenance s’\'el\`eve \`a 50% du co\^ut total du 
      cycle de d\'eveloppement d’un logiciel. Lors de la maintenance les 
      ing\'enieurs passent plus de 50% de leur temps \`a comprendre le 
      programme avant de proc\'eder aux changements. Pour comprendre un 
      programme orient\'e objet, les ing\'enieurs doivent utiliser des 
      techniques de r\'etro-ing\'enierie car la documentation est souvent 
      incompl\`ete ou obsol\`ete. Le langage cible le plus utilis\'e pour 
      la r\'etro-ing\'enierie des programmes orient\'es objet est UML. UML 
      (Unified Modeling Language) est un langage graphique de 
      mod\'elisation de programmes orient\'es objet. C’est un standard de 
      l’OMG (Object Management Group) et il est \'enorm\'ement utilis\'e 
      dans l’industrie. Il propose de nombreuses notations diff\'erentes 
      permettant d’observer diff\'erentes composantes d’un programme, comme 
      sa structure statique, les interactions entre les diff\'erents objets 
      ou encore un cas d’utilisation. Beaucoup de travaux existent sur la 
      r\'etro-ing\'enierie de la structure statique des logiciels. Par 
      exemple [7] permet de visualiser un syst\`eme \`a l’aide de 
      m\'etriques, tandis que [2] compare les diagrammes de classes UML 
      obtenus lors de la conception d’un logiciel avec les diagrammes de 
      classes obtenus lors de la r\'etro-ing\'enierie du logiciel produit. 
      Au contraire, il y a peu de travaux concernant la 
      r\'etro-ing\'enierie des mod\`eles dynamiques, bien qu’UML inclut des 
      notations pour sp\'ecifier le comportement dynamique des programmes, 
      comme les diagrammes de s\'equence ou les diagrammes d’\'etats. Les 
      mod\`eles dynamiques de programmes sont aussi importants que les 
      mod\`eles statiques car ils permettent aux ing\'enieurs d’identifier 
      des interactions complexes entre les objets et d’enlever 
      l’ambigu\"{\i}t\'e de l’envoi de message lorsque l’h\'eritage, la 
      d\'el\'egation, le polymorphisme, les liens dynamiques, la 
      r\'eflexion sont utilis\'es de mani\`ere intensive. Nous proposons 
      donc d’aller plus loin, en combinant les travaux de [1] et de [12] 
      pour synth\'etiser des diagrammes de s\'equence et des diagrammes 
      d’\'etats afin de proc\'eder \`a des analyses de haut niveau d’un 
      programme. Cette \'etude \'etablit un \'etat de l’art du sujet et met 
      en \'evidence les points peu trait\'es par la litt\'erature et ceux 
      auxquels nous nous int\'eresserons lors du stage. La section 1 
      s’int\'eresse aux travaux concernant la r\'etro-ing\'enierie de 
      mani\`ere g\'en\'erale et introduit notre approche. Puis la section 2 
      consid\`ere les travaux traitant de la g\'en\'eration de diagrammes 
      de s\'equence \`a partir du code. Enfin la section 3 aborde les 
      travaux traitant de la g\'en\'eration de diagrammes d’\'etats \`a 
      partir de diagrammes de s\'equence.}
}

@MANUAL{BCEL06,
   TITLE        = {Byte Code Engineering Library},
   OPTADDRESS   = {},
   OPTAUTHOR    = {},
   OPTEDITION   = {},
   MONTH        = {June},
   OPTNOTE      = {},
   ORGANIZATION = {Apache Jakarta Project},
   YEAR         = {2006},
   URL          = {http://jakarta.apache.org/bcel/manual.html}
}

@MASTERSTHESIS{Boudensa06-Refactoring,
   AUTHOR       = {Saliha Boudensa},
   SCHOOL       = {DIRO, Université de Montréal},
   TITLE        = {Traçabilité des refactorisations entre code et modèles},
   YEAR         = {2006},
   OPTADDRESS   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTTYPE      = {}
}

@MISC{CVS06,
   OPTAUTHOR    = {},
   OPTHOWPUBLISHED = {},
   MONTH        = {September},
   NOTE         = {http://www.nongnu.org/cvs/},
   TITLE        = {CVS},
   YEAR         = {2006},
   URL          = {http://www.nongnu.org/cvs/},
   ABSTRACT     = {CVS is a version control system, an important component 
      of Source Configuration Management (SCM). Using it, you can record 
      the history of sources files, and documents. It fills a similar role 
      to the free software RCS, PRCS, and Aegis packages.}
}

@MISC{SVN06,
   OPTAUTHOR    = {},
   OPTHOWPUBLISHED = {},
   MONTH        = {September},
   NOTE         = {http://subversion.tigris.org/},
   TITLE        = {Subversion},
   YEAR         = {2006},
   URL          = {http://subversion.tigris.org/},
   ABSTRACT     = {The goal of the Subversion project is to build a version 
      control system that is a compelling replacement for CVS in the open 
      source community. The software is released under an Apache/BSD-style 
      open source license.}
}

@MISC{ICPC06-WebSite,
   AUTHOR       = {Kostas Kontogiannis},
   OPTHOWPUBLISHED = {},
   MONTH        = {April},
   NOTE         = {http://www.icpc2006.uwaterloo.ca/},
   TITLE        = {ICPC Web-site},
   YEAR         = {2006},
   URL          = {http://www.icpc2006.uwaterloo.ca/},
   ABSTRACT     = {Program comprehension is a vital software engineering 
      and maintenance activity. It is necessary to facilitate reuse, 
      inspection, maintenance, reverse engineering, reengineering, 
      migration, and extension of existing software systems. ICPC provides 
      an opportunity for researchers and industry practitioners to present 
      and discuss both the state-of-the art and the state-of-the-practice 
      in the general area of program comprehension.}
}

@MISC{Predoc-CompanionWebsite,
   AUTHOR       = {Companion Web site},
   OPTHOWPUBLISHED = {},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTTITLE     = {},
   YEAR         = {2006},
   URL          = {http://www-etud.iro.umontreal.ca/~mohanaou/DECOR/DECOR.htm}
}

@BOOK{Boehm05-FoundationsESE,
   PUBLISHER    = {Springer-Verlag},
   TITLE        = {Foundations of Empirical Software Engineering: The 
      Legacy of Victor R. Basili},
   YEAR         = {2005},
   AUTHOR       = {Barry Boehm and Hans Dieter Rombach and 
      Marvin V. Zelkowitz},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   EDITION      = {1<sup>st</sup>},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {www.cs.umd.edu/~mvz/vic-symposium/},
   ABSTRACT     = {This book captures the main scientific contributions of 
      Victor R. Basili, who has significantly shaped the field of empirical 
      software engineering from its very start. He was the first to claim 
      that software engineering needed to follow the model of other 
      physical sciences and develop an experimental paradigm. By working on 
      this postulate, he developed concepts that today are well known and 
      widely used, including the Goal-Question-Metric method, the 
      Quality-Improvement paradigm, and the Experience Factory. He is one 
      of the few software pioneers who can aver that their research results 
      are not just scientifically acclaimed but are also used as industry 
      standards. On the occasion of his 65<sup>{th}</sup> birthday, 
      celebrated with a symposium in his honor at the International 
      Conference on Software Engineering in St. Louis, MO, USA in May 2005, 
      Barry Boehm, Hans Dieter Rombach, and Marvin V. Zelkowitz, each a 
      long-time collaborator of Victor R. Basili, selected the 20 most 
      important research papers of their friend, and arranged these 
      according to subject field. They then invited renowned researchers to 
      write topical introductions. The result is this commented collection 
      of timeless cornerstones of software engineering, hitherto available 
      only in scattered publications.}
}

@PHDTHESIS{Arevalo05-PhDThesis,
   AUTHOR       = {Gabriela Arévalo},
   SCHOOL       = {University of Berne},
   TITLE        = {High Level Views in Object Oriented Systems using Formal 
      Concept Analysis},
   YEAR         = {2005},
   OPTADDRESS   = {},
   MONTH        = {January},
   OPTNOTE      = {},
   OPTTYPE      = {}
}

@PHDTHESIS{Bouktif05-Thesis,
   AUTHOR       = {Salah Bouktif},
   SCHOOL       = {Université de Montréal},
   TITLE        = {Amélioration de la prédiction de la qualité du logiciel 
      par combinaison et adaptation de modèles},
   YEAR         = {2005},
   OPTADDRESS   = {},
   MONTH        = {Mai},
   OPTNOTE      = {},
   OPTTYPE      = {}
}

@INCOLLECTION{Godin05-FCA-NormalForms,
   AUTHOR       = {R. Godin and P. Valtchev},
   BOOKTITLE    = {Formal Concept Analysis: Foundations and Applications},
   PUBLISHER    = {Springer Verlag},
   TITLE        = {Formal concept analysis-based normal forms for class 
      hierarchy design in OO software development},
   YEAR         = {2005},
   OPTADDRESS   = {},
   CHAPTER      = {16},
   OPTCROSSREF  = {},
   OPTEDITION   = {},
   EDITOR       = {B. Ganter, G. Stumme, R. Wille},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   PAGES        = {304-323},
   OPTSERIES    = {},
   OPTTYPE      = {},
   OPTVOLUME    = {}
}

@INCOLLECTION{Yann05-DPLQuality,
   AUTHOR       = {Yann-Gaël Guéhéneuc and Jean-Yves Guyomarc'h and 
      Khashayar Khosravi and Houari Sahraoui},
   BOOKTITLE    = {},
   PUBLISHER    = {University of Montreal},
   TITLE        = {Design Patterns as Laws of Quality},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCHAPTER   = {},
   OPTCROSSREF  = {},
   OPTEDITION   = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTSERIES    = {},
   OPTTYPE      = {},
   OPTVOLUME    = {},
   URL          = {http://www.iro.umontreal.ca/~ptidej/Publications/Documents/OODK05.doc.pdf}
}

@ARTICLE{Dashofy05-TOSEM-ModularADL,
   AUTHOR       = {Eric M. Dashofy and van der Hoek, André and 
      Richard N. Taylor},
   JOURNAL      = {ACM Transactions on Software Engineering and Methodology},
   TITLE        = {A comprehensive approach for the development of modular 
      software architecture description languages},
   YEAR         = {2005},
   OPTMONTH     = {},
   OPTNOTE      = {},
   NUMBER       = {2},
   PAGES        = {199--245},
   VOLUME       = {14},
   ADDRESS      = {New York, NY, USA},
   PUBLISHER    = {ACM}
}

@ARTICLE{Ghoniem05-AdjacencyMatricesExperiment,
   AUTHOR       = {Mohammad Ghoniem and Jean-Daniel Fekete and 
      Philippe Castagliola},
   JOURNAL      = {Information Visualization},
   TITLE        = {Readability of Graphs Using Node-Link and Matrix-Based 
      Representations: Controlled Experiment and Statistical Analysis},
   YEAR         = {2005},
   MONTH        = {Summer},
   OPTNOTE      = {},
   NUMBER       = {2},
   PAGES        = {114--135},
   VOLUME       = {4},
   EDITOR       = {Chaomei Chen},
   PUBLISHER    = {Palgrave Macmillan},
   URL          = {http://www.lri.fr/~fekete/ps/},
   ABSTRACT     = {In this article, we describe a taxonomy of generic graph 
      related tasks along with computer-based evaluation designed to assess 
      the readability of two representations of graphs: matrix-based 
      representations and node-link diagrams. This evaluation encompasses 
      seven generic tasks and leads to insightful recommandations for the 
      representation of graphs according to their size and density. 
      Typically, we show that when graphs are bigger than twenty vertices, 
      the matrix-based visualisation outperforms node-link diagrams on most 
      tasks. Only path finding is consistently in favor of node-link 
      diagrams throughout the evaluation.}
}

@ARTICLE{Philippow05-REDP,
   AUTHOR       = {Ilka Philippow and Detlef Streitferdt and 
      Matthias Riebisch and Sebastian Naumann},
   JOURNAL      = {Software and System Modeling},
   TITLE        = {An Approach for Reverse Engineering of Design Patterns},
   YEAR         = {2005},
   MONTH        = {February},
   OPTNOTE      = {},
   NUMBER       = {1},
   PAGES        = {55--70},
   VOLUME       = {4},
   KEYWORDS     = {Design Patterns},
   PUBLISHER    = {Springer-Verlag},
   URL          = {http://www.springerlink.com/content/0dn4pmqh5uhnbk69/},
   ABSTRACT     = {For the maintenance of software systems, developers have 
      to completely understand the existing system. The usage of design 
      patterns leads to benefits for new and young developers by enabling 
      them to reuse the knowledge of their experienced colleagues. Design 
      patterns can support a faster and better understanding of software 
      systems. There are different approaches for supporting pattern 
      recognition in existing systems by tools. They are evaluated by the 
      Information Retrieval criteria precision and recall. An automated 
      search based on structures has a highly positive influence on the 
      manual validation of the results by developers. This validation of 
      graphical structures is the most intuitive technique. In this paper a 
      new approach for automated pattern search based on minimal key 
      structures is presented. It is able to detect all patterns described 
      by the GOF [15]. This approach is based on positive and negative 
      search criteria for structures and is prototypically implemented 
      using Rational Rose and Together.}
}

@ARTICLE{Rilling05-3DSilicing,
   AUTHOR       = {Juergen Rilling and S.P. Mudur},
   JOURNAL      = {Computers and Graphics},
   TITLE        = {3D Visualization Techniques to Support Slicing-based 
      Program Comprehension},
   YEAR         = {2005},
   MONTH        = {June},
   OPTNOTE      = {},
   NUMBER       = {3},
   PAGES        = {311--329},
   VOLUME       = {29},
   EDITOR       = {Wolfgang Müller-Wittig},
   PUBLISHER    = {Elsevier},
   URL          = {http://dx.doi.org/10.1016/j.cag.2005.03.007},
   ABSTRACT     = {Graphic visuals derived from reverse engineered source 
      code have long been recognized for their impact on improving the 
      comprehensibility of structural and behavioral aspects of large 
      software systems and their source code. A number of visualization 
      techniques, primarily graph-based, do not scale. Some other proposed 
      techniques based on 3D metaphors tend to obscure important structural 
      relationships in the program. Multiple views displayed in overlapping 
      windows are suggested as a possible solution, which more often than 
      not results in problems of information overload and cognitive 
      discontinuity. In this paper, we first present a comprehensive survey 
      of related work in program comprehension and software visualization, 
      and follow it up with a detailed description of our research which 
      uses program slicing for deriving program structure-based attributes 
      and 3D-metaball-based rendering techniques to help 
      visualization-based analysis of source code structure. Metaballs, a 
      3D modeling technique, has already found extensive use for 
      representing complex organic shapes and structural relationships in 
      biology and chemistry. We have developed a metaball software 
      visualization system in Java3D, named MetaViz. As proof of concept, 
      using MetaViz, we demonstrate the creation of 3D visuals that are 
      intuitively comprehensible and communicate information about relative 
      component complexity and coupling among components and therefore 
      enhance comprehension of the program structure.}
}

@ARTICLE{Rountev04-ControlFlowRESD,
   AUTHOR       = {Atanas Rountev and Olga Volgin and Miriam Reddoch},
   JOURNAL      = {Proceedings of the 6<sup>th</sup> Workshop on Program Analysis for Software Tools and Engineering},
   TITLE        = {Static control-flow analysis for reverse engineering of 
      UML sequence diagrams},
   YEAR         = {2005},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   PAGES        = {96--102},
   OPTVOLUME    = {},
   EDITOR       = {Michael Ernst and Thomas Jense},
   PUBLISHER    = {ACM Press}
}

@ARTICLE{Shawky05-DynamicApproach,
   AUTHOR       = {Doaa M. Shawky and Salwa K. Abd-El-Hafiz and 
      Abdel-Latif El-Sedeek},
   JOURNAL      = {Proceedings of the 2<sup>nd</sup> International Conference on Software Engineering},
   TITLE        = {A dynamic approach for the identification of 
      object-oriented design patterns},
   YEAR         = {2005},
   MONTH        = {February},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   PAGES        = {138--143},
   OPTVOLUME    = {},
   EDITOR       = {Peter Kokol},
   PUBLISHER    = {ACTA Press}
}

@INPROCEEDINGS{Antoniol05-CoChangingFiles,
   AUTHOR       = {Giuliano Antoniol and Vincenzo Fabio Rollo and 
      Gabriele Venturi},
   BOOKTITLE    = {Proceedings of the 8<sup>th</sup> International Workshop on Principles of Software Evolution},
   TITLE        = {Detecting Groups of Co-changing Files in CVS 
      Repositories},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Gerardo Canfora and Shuichiro Yamamoto},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {23--32},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.scoda.unisannio.it/~antoniol/publications/papers/iwpse2005.pdf},
   ABSTRACT     = {Software systems continuously evolve. CVS record almost 
      all of the changes the system parts undergo. Hence, CVS repositories 
      contain a great deal of information about software artifact 
      evolution. Software artifacts of a system can evolve following 
      similar evolution patterns as well as very different ones. A peculiar 
      kind of similarity in evolution is the one among two or more 
      artifacts having changed almost at the same times for a certain 
      number of changes. We name these co-changing artifacts. Co-changing 
      artifacts are relevant because cochanges can be inducted by not 
      trivial dependencies among system parts. In this paper, we propose a 
      definition of co-changes suitable of practical application. We assess 
      the challenges arising in detection of groups of co-changing software 
      parts, and we present a robust approach, based on Dynamic Time 
      Warping, to detect groups of co-changing files in CVS repositories. 
      We also report and discuss the results of a preliminary application 
      of the approach to the Mozilla CVS repository.}
}

@INPROCEEDINGS{Arcelli05-EDPRecognitionJava,
   AUTHOR       = {Francesca Arcelli and Stefano Masiero and 
      Claudia Raibulet},
   BOOKTITLE    = {Proceedings of the 3<sup>rd</sup> Software Technology and Engineering Practice workshop series},
   TITLE        = {Elemental Design Patterns Recognition in Java},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {di Penta, Massimiliano and Ying Zou},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns}
}

@INPROCEEDINGS{Arcelli05-DPComparison,
   AUTHOR       = {Francesca Arcelli and Stefano Masiero and 
      Claudia Raibulet and Francesco Tisato},
   BOOKTITLE    = {Proceedings of the 16<sup>th</sup> Australian Software Engineering Conference},
   TITLE        = {A Comparison of Reverse Engineering Tools based on 
      Design Pattern Decomposition},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Paul Strooper},
   MONTH        = {March--April},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {262--269},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://doi.ieeecomputersociety.org/10.1109/ASWEC.2005.5},
   ABSTRACT     = {The usefulness of design patterns in forward engineering 
      is already well-known and several tools provide support for their 
      application in the development of software systems. While the role of 
      design patterns in reverse engineering is still argued primarily due 
      to their informal definition which leads to various possible 
      implementations of each pattern. One of the most discussed aspects 
      related to design patterns is about the need of their formalization 
      according to the drawbacks this can represent. Formalization leads to 
      the identification of the so-called sub-patterns, which are the 
      recurring fundamental elements design patterns are composed of. In 
      this paper we analyze the role sub-patterns play in two reverse 
      engineering tools: FUJABA and SPQR. Attention is focused on how 
      sub-patterns are exploited to define and to detect design patterns. 
      To emphasize the similarities and differences between the two 
      approaches, the Composite Design Pattern is considered as example.}
}

@INPROCEEDINGS{Arevalo05-LessonsLearnedApplyingFCA,
   AUTHOR       = {Gabriela Arévalo and Stéphane Ducasse and 
      Oscar Nierstrasz},
   BOOKTITLE    = {Proceedings of the 3rd International Conference on Formal Concept Analysis},
   TITLE        = {Lessons Learned in Applying Formal Concept Analysis},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   MONTH        = {February},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {95-112},
   PUBLISHER    = {Springer Verlag},
   OPTSERIES    = {},
   VOLUME       = {3403 of LNAI},
   ABSTRACT     = {A key difficulty in the maintenance and evolution of 
      complex software systems is to recognize and understand the implicit 
      dependencies that define contracts that must be respected by changes 
      to the software. Formal Concept Analysis is a well-established 
      technique for identifying groups of elements with common sets of 
      properties. We have successfully applied FCA to complex software 
      systems in order to automatically discover a variety of different 
      kinds of implicit, recurring sets of dependencies amongst design 
      artifacts. In this paper we describe our approach, outline three case 
      studies, and draw various lessons from our experiences. In 
      particular, we discuss how our approach is applied iteratively in 
      order to draw the maximum benefit offered by FCA.}
}

@INPROCEEDINGS{Bernardi05-ImprovingDPAOP,
   AUTHOR       = {Mario Luca Bernardi and Di Lucca, Giuseppe Antonio},
   BOOKTITLE    = {Proceedings of the 3<sup>rd</sup> Software Technology and Engineering Practice workshop series},
   TITLE        = {Improving Design Patterns Quality using Aspect 
      Orientation},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {di Penta, Massimiliano and Ying Zou},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns}
}

@INPROCEEDINGS{BorodayHallal05-MultithreadedAntipatterns,
   AUTHOR       = {Sergiy Boroday and Alexandre Petrenko and Jagmit Singh and 
      Hesham Hallal},
   BOOKTITLE    = {Proceedings of the 3<sup>rd</sup> International Workshop On Dynamic Analysis},
   TITLE        = {Dynamic Analysis of Java Applications for Multithreaded 
      Antipatterns},
   YEAR         = {2005},
   ADDRESS      = {New York, NY, USA},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {1--7},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Denier05-DesignPatternCompositionAspects,
   AUTHOR       = {Simon Denier and Hervé Albin-Amiot and Pierre Cointe},
   BOOKTITLE    = {actes de la 2<sup>e</sup> Journée Francophone sur le Développement de Logiciels Par Aspects},
   TITLE        = {Expression and Composition of Design Patterns with 
      Aspects},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Lionel Seinturier},
   MONTH        = {Septembre},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {Hermès},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://www.lifl.fr/jfdlpa05/denier.pdf},
   ABSTRACT     = {Design patterns are a powerful means to understand, 
      model and implement OO micro-architecures. Their composition leads to 
      architectures with interesting properties in terms of variability and 
      evolutivity. However they are difficult to track, modularize and 
      reuse as there elements tend to vanish in the code. We experiment 
      aspect oriented programming as a modular technology to give new 
      insights on the expression of design patterns. We first take a look 
      at singular features of some design patterns to see how aspects deal 
      with their representation. Then we study some cases of composition in 
      the JHotDraw framework, where we analyze various interactions and the 
      way aspects help to express them.}
}

@INPROCEEDINGS{Edwards05-Subtext,
   AUTHOR       = {Jonathan Edwards},
   BOOKTITLE    = {Proceedings of the 20<sup>th</sup> Conference on Object Oriented Programming Systems Languages and Applications},
   TITLE        = {Subtext: Uncovering the Simplicity of Programming},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Richard P. Gabriel},
   MONTH        = {October},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {505--518},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?id=1094811.1094851},
   ABSTRACT     = {Representing programs as text strings makes programming 
      harder then it has to be. The source text of a program is far removed 
      from its behavior. Bridging this conceptual gulf is what makes 
      programming so inhumanly difficult -- we are not compilers. Subtext 
      is a new medium in which the representation of a program is the same 
      thing as its execution. Like a spreadsheet, a program is visible and 
      alive, constantly executing even as it is edited. Program edits are 
      coherent semantic transformations. The essence of this new medium is 
      copying. Programs are constructed by copying and executed by copy 
      flow: the projection of changes through copies. The simple idea of 
      copying develops into a rich theory of higher-order continual copying 
      of trees. Notably absent are symbolic names, the workhorse of textual 
      notation, replaced by immediately-bound explicit relationships. 
      Subtext unifies traditionally distinct programming tools and 
      concepts, and enables some novel ones. Ancestral structures are a new 
      primitive data type that combines the features of lists and records, 
      along with unproblematic multiple inheritance. Adaptive conditionals 
      use first-class program edits to dynamically adapt behavior. A 
      prototype implementation shows promise, but calls for much further 
      research. Subtext suggests that we can make programming radically 
      easier, if we are willing to be radical.}
}

@INPROCEEDINGS{Gaffar05-IWDPTP-SemanticsDesignPattern,
   AUTHOR       = {Ashraf Gaffar and Naouel Moha},
   BOOKTITLE    = {Proceedings of the STEP International Workshop on Design Pattern Theory and Practice (IWDPTP05)},
   TITLE        = {Semantics of a Pattern System},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Giuliano Antoniol and Yann-Gaël Guéhéneuc},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   ABSTRACT     = {The wide acceptance of the “Design Patterns” has 
      encouraged experts in other software domains to formulate their 
      experience into pattern format hoping to make it readily reused by 
      developers. We now have numerous pattern collections covering all 
      aspects of software development from analysis to deployment and 
      refactoring. But developers can be overwhelmed by this large number 
      and the lack of coordination and in consistencies among them. These 
      patterns have many similarities and redundancies which may contribute 
      to misunderstanding and wrong reuse. Some research has proposed 
      standards to writing patterns but they were rarely used because each 
      pattern author prefers to use their own creativity which is often a 
      good thing. We propose another approach to address this problem. In 
      each specific software domain, we collect and pre-process existing 
      patterns by defining, detecting and removing some kinds of 
      redundancies between them. The result is a smaller collection of 
      patterns from different sources that have fewer redundancies which 
      reduces confusion and promotes the proper reuse.}
}

@INPROCEEDINGS{Garcia05-QuantitativePatternsAspects,
   AUTHOR       = {Alessandro Garcia and Cláudio Sant'Anna and 
      Eduardo Figueiredo and Uirá Kulesza and Carlos Lucena and 
      von Staa, Arndt},
   BOOKTITLE    = {Proceedings of the 4<sup>th</sup> international conference on Aspect-Oriented Software Development},
   TITLE        = {Modularizing Design Patterns with Aspects: A 
      Quantitative Study},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Peri Tarr},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {3--14},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://portal.acm.org/citation.cfm?id=1052898.1052899},
   ABSTRACT     = {Design patterns offer flexible solutions to common 
      problems in software development. Recent studies have shown that 
      several design patterns involve crosscutting concerns. Unfortunately, 
      object-oriented (OO) abstractions are often not able to modularize 
      those crosscutting concerns, which in turn decrease the system 
      reusability and maintainability. Hence, it is important verifying 
      whether aspect-oriented approaches support improved modularization of 
      crosscutting concerns relative to design patterns. Ideally, 
      quantitative studies should be performed to compare OO and 
      aspect-oriented implementations of classical patterns with respect to 
      important software engineering attributes, such as coupling and 
      cohesion. This paper presents a quantitative study that compares 
      aspect-based and OO solutions for the 23 Gang-of-Four patterns. We 
      have used stringent software engineering attributes as the assessment 
      criteria. We have found that most aspect-oriented solutions improve 
      separation of pattern-related concerns, although only 4 
      aspect-oriented implementations have exhibited significant reuse.}
}

@INPROCEEDINGS{Ghoniem05-SolverStrategies,
   AUTHOR       = {Mohammad Ghoniem and Hadrien Cambazard and 
      Jean-Daniel Fekete and Narendra Jussien},
   BOOKTITLE    = {Proceedings of the 3<sup>rd</sup> Symposium on Software Visualization},
   TITLE        = {Peeking in Solver Strategies: Using Explanations 
      Visualization of Dynamic Graphs for Constraint Programming},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Thomas L. Naps and Wim De Pauw},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {27--36},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.lri.fr/~fekete/ps/ghoniem-softvis05.pdf},
   ABSTRACT     = {In this paper, we describe the use of visualization 
      tools in the context of constraint programming. Specifically, we 
      focus on the visualization of dynamic graphs using adjacency 
      matrices, and show that visualization tools can provide valuable 
      insights into the behavior of constraint-based solvers. This 
      contributes to better understanding solver dynamics for teaching 
      purposes, and can enhance the analysis and the optimization of 
      constraint-based programs in connection with known and difficult 
      research problems.}
}

@INPROCEEDINGS{Gil05-MicroPatterns,
   AUTHOR       = {Yossi Gil and Itay Maman},
   BOOKTITLE    = {Proceedings of the 20<sup>th</sup> Conference on Object-Oriented Programming Systems Languages and Applications},
   TITLE        = {Micro patterns in Java code},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Richard P. Gabriel},
   MONTH        = {October},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {97--116},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {portal.acm.org/citation.cfm?id=1094811.1094819},
   ABSTRACT     = {Micro patterns are similar to \emph{design patterns}, 
      except that micro patterns are stand at a lower, closer to the 
      implementation, level of abstraction. Micro patterns are also unique 
      in that they are mechanically recognizable, since each such pattern 
      can be expressed as a formal condition on the structure of a 
      class.This paper presents a catalog of 27 micro-patterns defined on 
      Java classes and interfaces. The catalog captures a wide spectrum of 
      common programming practices, including a particular and 
      (intentionally restricted) use of inheritance, immutability, data 
      management and wrapping, restricted creation, and emulation of 
      procedural-, modular-, and even functional- programming paradigms 
      with object oriented constructs. Together, the patterns present a set 
      of prototypes after which a large portion of all Java classes and 
      interfaces are modeled. We provide empirical indication that this 
      portion is as high as 75\%. A statistical analysis of occurrences of 
      micro patterns in a large software corpus, spanning some 70,000 Java 
      classes drawn from a rich set of application domains, shows, with 
      high confidence level that the use of these patterns is not random. 
      These results indicate consciousness and discernible design 
      decisions, which are sustained in the software evolution. With high 
      confidence level, we can also show that the use of these patterns is 
      tied to the specification, or the purpose, that the software 
      realizes.The \emph{traceability}, \emph{abundance} and the 
      \emph{statistical significance} of micro pattern occurrence raise the 
      hope of using the classification of software into these patterns for 
      a more founded appreciation of its design and code quality.}
}

@INPROCEEDINGS{Hauswirth05-AutomatingVerticalProfiling,
   AUTHOR       = {Matthias Hauswirth and Amer Diwan and Peter F. Sweeney and 
      Michael C. Mozer},
   BOOKTITLE    = {Proceedings of the 20<sup>th</sup> Conference on Object-Oriented Programming Systems Languages and Applications},
   TITLE        = {Automating Vertical Profiling},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Richard P. Gabriel},
   MONTH        = {October},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {281--296},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?id=1094811.1094834},
   ABSTRACT     = {Last year at OOPSLA we presented a methodology, vertical 
      profiling, for understanding the performance of object-oriented 
      programs. The key insight behind this methodology is that modern 
      programs run on top of many layers (virtual machine, middleware, etc) 
      and thus we need to collect and combine information from all layers 
      in order to understand system performance. Although our methodology 
      was able to explain previously unexplained performance phenomena, it 
      was extremely labor intensive. In this paper we describe and evaluate 
      techniques for automating two significant activities of vertical 
      profiling: trace alignment and correlation. Trace alignment aligns 
      traces obtained from separate runs so that one can reason across the 
      traces. We are not aware of any prior approach that effectively and 
      automatically aligns traces. Correlation sifts through hundreds of 
      metrics to find ones that have a bearing on a performance anomaly of 
      interest. In prior work we found that statistical correlation was 
      only sometimes effective. We have identified highly-effective 
      approaches for both activities.For aligning traces we explore dynamic 
      time warping, and for correlation we explore eight correlators based 
      on statistical correlation, distance measures, and piecewise linear 
      segmentation. Although we explore these activities in the context of 
      vertical profiling, both activities are widely applicable in the 
      performance analysis area.}
}

@INPROCEEDINGS{Hou05-QuestionsFramework,
   AUTHOR       = {Daqing Hou and Kenny Wong and H. James Hoover},
   BOOKTITLE    = {Proceedings of the 13<sup>th</sup> International Workshop in Program Comprehension},
   TITLE        = {What Can Programmer Questions Tell Us About Frameworks?},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {James R. Cordy and Harald Gall},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {87--96},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1421018},
   ABSTRACT     = {In order to make frameworks easier to use we need to 
      better understand the difficulties that programmers have with them. 
      The questions that programmers ask give clues to the quality of 
      design, documentation, and programmer practice. We describe the 
      method and results of a study on the Java Swing framework. We 
      collected and analyzed a sample of 300 newsgroup questions asked 
      about two Swing components (JButton and JTree), and classified the 
      questions according to the design features of the components. This 
      process revealed key insights that can improve a framework's design, 
      its tutorials, and programmer practice.}
}

@INPROCEEDINGS{Kirk05-ProblemsFrameworkReuse,
   AUTHOR       = {Douglas Kirk and Marc Roper and Murray Wood},
   BOOKTITLE    = {Proceedings of the 13<sup>th</sup> International Workshop on Program Comprehension},
   TITLE        = {Identifying and Addressing Problems in Framework Reuse},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {James R. Cordy and Harald Gall},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {77--86},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1421017},
   ABSTRACT     = {Object-oriented frameworks are a powerful form of reuse 
      but they can be difficult to understand and reuse correctly. Over the 
      last decade a large range of candidate documentation techniques have 
      been proposed to address this difficulty. There is little research, 
      however, to identify the specific problems that arise during 
      framework reuse and to evaluate documentation techniques in terms of 
      these problems. This paper reports on a long-term investigation that 
      firstly identifies four fundamental problems of framework reuse: 
      mapping, understanding functionality, understanding interactions and 
      understanding the framework architecture. It then describes two forms 
      of documentation specifically developed to address the mapping, 
      interaction and functionality problems namely a pattern language and 
      a set of micro architectures. An in-depth, qualitative analysis of 
      these two documentation types evaluates the key strengths and 
      weaknesses of their support for framework understanding, whilst 
      confirming the significance of the four problem categories.}
}

@INPROCEEDINGS{Langelier05-VisualisationAnalysis,
   AUTHOR       = {Guillaume Langelier and Houari A. Sahraoui and 
      Pierre Poulin},
   BOOKTITLE    = {Proceedings of the 20<sup>th</sup> International Conference on Automated Software Engineering},
   TITLE        = {Visualization-based Analysis of Quality for Large-scale 
      Software Systems},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Tom Ellman and Andrea Zisma},
   MONTH        = {November},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http:// www.iro.umontreal.ca/labs/infographie/papers/Langelier-2005-VAQ/langelier-ase2005.pdf},
   ABSTRACT     = {We propose an approach for complex software analysis 
      based on visualization. Our work is motivated by the fact that in 
      spite of years of research and practice, software development and 
      maintenance are still time and resource consuming, and high-risk 
      activities. The most important reason in our opinion is the 
      complexity of many phenomena related to software, such as its 
      evolution and its reliability. In fact, there is very little theory 
      explaining them. Today, we have a unique opportunity to empirically 
      study these phenomena, thanks to large sets of software data 
      available through open-source programs and open repositories. 
      Automatic analysis techniques, such as statistics and machine 
      learning, are usually limited when studying phenomena with unknown or 
      poorlyunderstood influence factors. We claim that hybrid techniques 
      that combine automatic analysis with human expertise through 
      visualization are excellent alternatives to them. In this paper, we 
      propose a visualization framework that supports quality analysis of 
      large-scale software systems. We circumvent the problem of size by 
      exploiting perception capabilities of the human visual system.}
}

@INPROCEEDINGS{Masuhara05-AspectualCaml,
   AUTHOR       = {Hidehiko Masuhara and Hideaki Tatsuzawa and 
      Akinori Yonezawa},
   BOOKTITLE    = {Proceedings of the 10<sup>th</sup> International Conference on Functional Programming},
   TITLE        = {Aspectual Caml: An Aspect-oriented Functional Language},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Olivier Danvy and Benjamin C. Pierce},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {320--330},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {portal.acm.org/citation.cfm?doid=1086405},
   ABSTRACT     = {We propose an aspect-oriented programming (AOP) language 
      called Aspectual Caml based on a strongly-typed functional language 
      Objective Caml with two AOP mechanisms similar to those in AspectJ 
      language. This paper describes the design and implementation issues 
      of those AOP mechanisms that give us insights into the interaction 
      between AOP features and common features in strongly-typed functional 
      languages such as type inference, polymorphic types and curried 
      functions. We implemented a prototype compiler of the language and 
      used the language for separating crosscutting concerns in application 
      programs, including for separating descriptions of a type system from 
      compiler descriptions.}
}

@INPROCEEDINGS{Moha05-WOOR-SAD,
   AUTHOR       = {Naouel Moha and Yann-Gaël Guéhéneuc},
   BOOKTITLE    = {Proceedings of the 6<sup>th</sup> ECOOP Workshop on Object-Oriented Reengineering},
   TITLE        = {On the Automatic Detection and Correction of Software 
      Architectural Defects in Object-Oriented Designs},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Serge Demeyer and Kim Mens and Roel Wuyts and 
      Stéphane Ducasse},
   MONTH        = {July},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   ABSTRACT     = {Design defects, antipatterns, code smells are software 
      defects at the architectural level that must be detected and 
      corrected to improve software quality. Automatic detection and 
      correction of these software architectural defects, which suffer of a 
      lack of tools, are important to ease the maintenance of 
      object-oriented architectures and thus to reduce the cost of 
      maintenance. A clear understanding of the different types of software 
      architectural defects and a classification of these defects is 
      necessary before proposing any techniques related to their detection 
      or correction. We introduce a first classification and summarise 
      existing techniques. Then, we introduce some challenges that our 
      community must meet.}
}

@INPROCEEDINGS{Moha05-IWDPTP-Taxonomy,
   AUTHOR       = {Naouel Moha and Duc-Loc Huynh and Yann-Gaël Guéhéneuc},
   BOOKTITLE    = {Proceedings of the STEP International Workshop on Design Pattern Theory and Practice (IWDPTP05)},
   TITLE        = {A Taxonomy and a First Study of Design Pattern Defects},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Giuliano Antoniol and Yann-Gaël Guéhéneuc},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   ABSTRACT     = {Design patterns propose “good” solutions to recurring 
      design problems in object-oriented architectures. Design patterns 
      have been quickly adopted by the Software Engineering community and 
      are now widely spread. We define design pattern defects as occurring 
      errors in the design of a software that come from the absence or the 
      bad use of design patterns. Design pattern defects are software 
      defects at the architectural level that must be detected and 
      corrected to improve software quality. Automatic detection and 
      correction of these software architectural defects, which suffer of a 
      lack of tools, are important to improve object-oriented architectures 
      and, thus, to ease maintenance. We propose a first taxonomy of design 
      pattern defects and presents techniques and tools to detect these 
      defects in source code.}
}

@INPROCEEDINGS{Moise05-CrossLanguage,
   AUTHOR       = {Daniel L. Moise and Kenny Wong},
   BOOKTITLE    = {Proceedings of the 12<sup>th</sup> Working Conference on Reverse Engineering},
   TITLE        = {Extracting and Representing Cross-Language Dependencies 
      in Diverse Software Systems},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {de Lucia, Andrea and Susan Elliott Sim},
   MONTH        = {November},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Monteiro05-AORefactorings,
   AUTHOR       = {Miguel P. Monteiro and João M. Fernandes},
   BOOKTITLE    = {Proceedings of the 4<sup>th</sup> international conference on Aspect-Oriented Software Development},
   TITLE        = {Towards a Catalog of Aspect-Oriented Refactorings},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Peri Tarr},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {111--122},
   PUBLISHER    = {Peri Tarr},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/ft_gateway.cfm?id=1052908&type=pdf},
   ABSTRACT     = {In this paper, we present a collection of 
      aspect-oriented refactorings covering both the extraction of aspects 
      from objectoriented legacy code and the subsequent tidying up of the 
      resulting aspects. In some cases, this tidying up entails the 
      replacement of the original implementation with a different, 
      centralized design, made possible by modularization. The collection 
      of refactorings includes the extraction of common code in various 
      aspects into abstract superaspects. We review the traditional 
      object-oriented code smells in the light of aspectorientation and 
      propose some new smells for the detection of crosscutting concerns. 
      In addition, we propose a new code smell that is specific to aspects.}
}

@INPROCEEDINGS{Mostefaoui05-VerificationAspects,
   AUTHOR       = {Farida Mostefaoui and Julie Vachon},
   BOOKTITLE    = {actes de la 2<sup>e</sup> Journée Francophone sur le Développement de Logiciels Par Aspects},
   TITLE        = {Modélisation et vérification formelle de la composition 
      des aspects},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Lionel Seinturier},
   MONTH        = {Septembre},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {Hermès},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Munro05-BadSmellIdentification,
   AUTHOR       = {Matthew James Munro},
   BOOKTITLE    = {Proceedings of the 11<sup>th</sup> International Software Metrics Symposium},
   TITLE        = {Product Metrics for Automatic Identification of ``Bad 
      Smell Design Problems in Java Source-Code},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Filippo Lanubile and Carolyn Seaman},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://doi.ieeecomputersociety.org/10.1109/METRICS.2005.38},
   ABSTRACT     = {Refactoring can have a direct influence on reducing the 
      cost of software maintenance through changing the internal structure 
      of the source-code to improve the overall design that helps the 
      present and future programmers evolve and understand a system. Bad 
      smells are a set of design problems with refactoring identified as a 
      solution. Locating these bad smells has been described as more a 
      human intuition than an exact science. This paper addresses the issue 
      of identifying the characteristics of a bad smell through the use of 
      a set of software metrics. Then by using a pre-defined set of 
      interpretation rules to interpret the software metric results applied 
      to Java source-code, the software engineer can be provided with 
      significant guidance as to the location of bad smells. These issues 
      are addressed in a number of ways. Firstly, a precise definition of 
      bad smells is given from the informal descriptions given by the 
      originators Fowler and Beck. The characteristics of the bad smells 
      have been used to define a set of measurements and interpretation 
      rules for a subset of the bad smells. A prototype tool has been 
      implemented to enable the evaluation of the interpretation rules in 
      two case studies.}
}

@INPROCEEDINGS{Murphy05-DevelopmentTasks,
   AUTHOR       = {Gail C. Murphy and Mik Kersten and Martin P. Robillard and 
      Davor Cubranis},
   BOOKTITLE    = {Proceedings of the 19<sup>th</sup> European Conference on Object-Oriented Programming},
   TITLE        = {The Emergent Structure of Development Tasks},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Andrew P. Black},
   MONTH        = {July},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {33--48},
   PUBLISHER    = {Springer-Verlag},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.cs.ubc.ca/~murphy/papers.htm},
   ABSTRACT     = {Integrated development environments have been designed 
      and engineered to display structural information about the source 
      code of large systems. When a development task lines up with the 
      structure of the system, the tools in these environments do a great 
      job of supporting developers in their work. Unfortunately, many 
      development tasks do not have this characteristic. Instead, they 
      involve changes that are scattered across the source code and various 
      other kinds of artifacts, including bug reports and documentation. 
      Today's development environments provide little support for working 
      with scattered pieces of a system, and as a result, are not 
      adequately supporting the ways in which developers work on the 
      system. Fortunately, many development tasks do have a structure. This 
      structure emerges from a developer's actions when changing the 
      system. In this paper, we describe how the structure of many tasks 
      crosscuts system artifacts, and how by capturing that structure, we 
      can make it as easy for developers to work on changes scattered 
      across the system's structure as it is to work on changes that line 
      up with the system’s structure.}
}

@INPROCEEDINGS{Serrano05-AdvisabilityPackagesWarehouses,
   AUTHOR       = {Manuel Serrano and Rafael Romero and 
      Juan Carlos Trujillo and Mario Piattini},
   BOOKTITLE    = {Proceedings of the 9<sup>th</sup> workshop on Quantitative Approaches in Object-Oriented Software Engineering},
   TITLE        = {The Advisability of using Packages in Data Warehouse 
      Design},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {e Abreu, Fernando Brito and Coral Calero and 
      Michele Lanza and Geert Poels and Houari A. Sahraoui},
   MONTH        = {July},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {118--128},
   PUBLISHER    = {CRIM, Montreal},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   ABSTRACT     = {Data warehouses are large data repositories integrating 
      data from several sources that support decision making. Although, 
      traditionally, data warehouses have been designed using the 
      ‘well-known’ star schema, some design methodologies have come into 
      existence in recent times. These new methodologies have not only 
      focused on logical design: they also propose performing a conceptual 
      modeling using UML. At present, it is widely accepted that modeling 
      using packages simplifies the management and understanding of the 
      designs.Until now, however, this statement has not been empirically 
      proved in the data warehouse field. In this paper, we present an 
      empirical study whose aim is to check whether using packages in 
      designing data warehouses makes them more understandable.}
}

@INPROCEEDINGS{Storey05-Awarness,
   AUTHOR       = {Margaret-Anne D. Storey and Davor Cubranis and 
      Daniel M. German},
   BOOKTITLE    = {Proceedings of the 2<sup>nd</sup> symposium on Software Visualization},
   TITLE        = {On the Use of Visualization to Support Awareness of 
      Human Activities in Software Development: A Survey and a Framework},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Tom Naps and Wim De Pauw},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {193--202},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?id=1056045},
   ABSTRACT     = {This paper proposes a framework for describing, 
      comparing and understanding visualization tools that provide 
      awareness of human activities in software development. The framework 
      has several purposes -- it can act as a formative evaluation 
      mechanism for tool designers; as an assessment tool for potential 
      tool users; and as a comparison tool so that tool researchers can 
      compare and understand the differences between various tools and 
      identify potential new research areas. We use this framework to 
      structure a survey of visualization tools for activity awareness in 
      software development. Based on this survey we suggest directions for 
      future research.}
}

@INPROCEEDINGS{Sun05-LayoutUMLComprehension,
   AUTHOR       = {Dabo Sun and Kenny Wong},
   BOOKTITLE    = {Proceedings of the 13<sup>th</sup> International Workshop on Program Comprehension},
   TITLE        = {On Evaluating the Layout of UML Class Diagrams for 
      Program Comprehension},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {James R. Cordy and Harald Gall},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {317--326},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?id=1058432.1059369},
   ABSTRACT     = {UML class diagrams are helpful for understanding the 
      structure of a software system. Algorithms and tools have been 
      developed to generate UML class diagrams automatically for program 
      understanding purposes. However, many tools often ignore perceptual 
      factors in the layout of these diagrams. Therefore, users still have 
      to spend much time and effort rearranging boxes and lines to make the 
      diagram understandable. This paper presents key criteria and 
      guidelines for the effective layout of UML class diagrams from the 
      perspective of perceptual theories. Two UML tools have been analyzed 
      and evaluated to illustrate how the criteria can be applied to 
      improve the readability of class diagrams.}
}

@INPROCEEDINGS{SwintConsel05-ClearwaterCodeGeneration-ASE,
   AUTHOR       = {Galen S. Swint and Calton Pu and Gueyoung Jung and 
      Wenchang Yan and Younggyun Koh and Qinyi Wu and Charles Consel and 
      Akhil Sahai and Koichi Moriyama},
   BOOKTITLE    = {Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering (ASE 2005)},
   TITLE        = {Clearwater: extensible, flexible, modular code 
      generation.},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {144-153},
   PUBLISHER    = {ACM},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Trifu05-DiagnosingDesignProblems,
   AUTHOR       = {Adrian Trifu and Radu Marinescu},
   BOOKTITLE    = {Proceedings of the 12<sup>th</sup> Working Conference on Reverse Engineering},
   TITLE        = {Diagnosing Design Problems in Object Oriented Systems},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {de Lucia, Andrea and Susan Elliott Sim},
   MONTH        = {November},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.fzi.de/prost/publikationen.php?id=1424},
   ABSTRACT     = {Software decay is a phenomenon that plagues all software 
      systems in general, and object oriented systems in particular. 
      Existing approaches fail to effectively address this problem because 
      of their informal nature. We overcome the main deficiencies of other 
      approaches, with the help of two innovations: encapsulation of 
      correlated structural anomalies and machine processable patterns for 
      restructuring. Our method allows unprecedented levels of automation 
      in the decision making process involved in restructuring large object 
      oriented systems.}
}

@INPROCEEDINGS{Xie05-ImageBrowsingInterest,
   AUTHOR       = {Xing Xie and Hao Liu and Simon Goumaz and Wei-Ying Ma},
   BOOKTITLE    = {Proceedings of the 22<sup>nd</sup> Conference on Human factors in computing systems},
   TITLE        = {Learning User Interest for Image Browsing on 
      Small-form-factor Devices},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Carolyn Gale},
   MONTH        = {April},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {671--680},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?id=1055065},
   ABSTRACT     = {Mobile devices which can capture and view pictures are 
      becoming increasingly common in our life. The limitation of these 
      small-form-factor devices makes the user experience of image browsing 
      quite different from that on desktop PCs. In this paper, we first 
      present a user study on how users interact with a mobile image 
      browser with basic functions. We found that on small displays, users 
      tend to use more zooming and scrolling actions in order to view 
      interesting regions in detail. From this fact, we designed a new 
      method to detect user interest maps and extract user attention 
      objects from the image browsing log. This approach is more efficient 
      than image-analysis based methods and can better represent users' 
      actual interest. A smart image viewer was then developed based on 
      user interest analysis. A second experiment was carried out to study 
      how users behave with such a viewer. Experimental results demonstrate 
      that the new smart features can improve the browsing efficiency and 
      are a good compliment to traditional image browsers.}
}

@INPROCEEDINGS{DuBois05-OntologyFactorsRE,
   AUTHOR       = {du Bois, Bart},
   BOOKTITLE    = {Proceedings of the 3<sup>rd</sup> Software Technology and Engineering Practice workshop series},
   TITLE        = {Towards an Ontology of Factors Influencing Reverse 
      Engineering},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {di Penta, Massimiliano and Ying Zou},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.win.ua.ac.be/~bdubois/publications.php},
   ABSTRACT     = {In the context of the workshop's discussion on a general 
      framwork for empirical studies on reverse engineering, this paper 
      stresses the need for an ontology of facotors influencing the 
      application of reverse-engineering techniques. Through an integration 
      of existing work, this paper proposes a tentative ontology. This work 
      provides the first step towards an ontology facilitating 
      communication of experimental designs and the resulting 
      identification of relationships between experimental variables.}
}

@INPROCEEDINGS{DuBois05-RefactorToUnderstand,
   AUTHOR       = {du Bois, Bart and Serge Demeyer and Jan Verelst},
   BOOKTITLE    = {Proceedings of the 9<sup>th</sup> european Conference on Software Maintenance and Reengineering},
   TITLE        = {Does the ``Refactor to Understand Revere Engineering 
      Pattern Improve Program Comprehension?},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Nicolas Gold and Tarja Systä and Christos Tjortjis and 
      Massimiliano Di Penta},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {334--343},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?id=1048923.1049046},
   ABSTRACT     = {Program comprehension is a fundamental requirement for 
      all but the most trivial maintenance activities. Previous research 
      has demonstrated key principles for improving comprehension. Among 
      others, these consist of the introduction of beacons as indexes into 
      knowledge, and the chunking of low-level structures into higher-level 
      abstractions. These principles are naturally reflected in the reverse 
      engineering pattern Refactor to Understand, which uses incremental 
      renaming and extracting of program elements as the means to decipher 
      cryptic code. In this paper, we discuss a controlled experiment to 
      explore differences in program comprehension between the application 
      of Refactor to Understand and the traditional Read to Understand 
      pattern. Our results support added value of Refactor to Understand 
      regarding specific aspects of program comprehension and specific 
      types of source code. These findings illustrate the need for further 
      experiments to provide clear guidelines on the application of 
      refactorings for improving program comprehension.}
}

@TECHREPORT{Moha05-TR-CatalogDesignDefects,
   AUTHOR       = {Naouel Moha},
   INSTITUTION  = {Department of Computer Science and Operations Research, University of Montréal},
   TITLE        = {catalogue of Design Defects},
   YEAR         = {2005},
   OPTADDRESS   = {},
   MONTH        = {October},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTTYPE      = {},
   PAGES        = {20},
   URL          = {http://ptidej.iro.umontreal.ca/Members/mohanaou/technicalreport/CatalogDesignDefects.pdf/download}
}

@MASTERSTHESIS{Slinger05-CodeSmellDetectionInEclipse,
   AUTHOR       = {Stefan Slinger},
   SCHOOL       = {Delft University of Technology},
   TITLE        = {Code Smell Detection in Eclipse},
   YEAR         = {2005},
   OPTADDRESS   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTTYPE      = {}
}

@MISC{Galicia-Tool,
   AUTHOR       = { Galicia},
   OPTHOWPUBLISHED = {},
   MONTH        = {September},
   NOTE         = {http://sourceforge.net/projects/galicia/},
   TITLE        = {Galicia},
   YEAR         = {2005},
   URL          = {http://sourceforge.net/projects/galicia/}
}

@MISC{OptimalAdvisor,
   AUTHOR       = {Compuware JavaCentral},
   OPTHOWPUBLISHED = {},
   MONTH        = {May},
   NOTE         = {http://javacentral.compuware.com/products/optimaladvisor/},
   TITLE        = {OptimalAdvisor},
   YEAR         = {2005},
   URL          = {http://javacentral.compuware.com/products/optimaladvisor/}
}

@MISC{CodeLogic-Tool,
   AUTHOR       = {Logic Explorers, Inc.},
   OPTHOWPUBLISHED = {},
   MONTH        = {August},
   NOTE         = {http://www.logicexplorers.com/products/codelogic/},
   TITLE        = {Code Logic},
   YEAR         = {2005},
   URL          = {http://www.logicexplorers.com/products/codelogic/}
}

@MISC{McCabe-Tool,
   AUTHOR       = { McCabe},
   OPTHOWPUBLISHED = {},
   MONTH        = {August},
   OPTNOTE      = {},
   TITLE        = {McCabe},
   YEAR         = {2005},
   URL          = {http://www.mccabe.com/index.htm}
}

@MISC{EclipseUML-Omondo-Tool,
   AUTHOR       = { Omondo},
   OPTHOWPUBLISHED = {},
   MONTH        = {August},
   NOTE         = {http://www.omondo.com/},
   TITLE        = {Describe},
   YEAR         = {2005},
   URL          = {http://www.omondo.com/}
}

@MISC{Venners05-ConversationGamma,
   AUTHOR       = {Bill Venners},
   OPTHOWPUBLISHED = {},
   MONTH        = {May},
   NOTE         = {rlhttp://www.artima.com/lejava/articles/gammadp.html},
   TITLE        = {How to Use Design Patterns -- A Conversation with Erich 
      Gamma, Part I},
   YEAR         = {2005},
   URL          = {http://www.artima.com/lejava/articles/gammadp.html}
}

@MISC{DrJava,
   AUTHOR       = {group at Rice University, the JavaPLT},
   OPTHOWPUBLISHED = {},
   MONTH        = {August},
   NOTE         = {http://drjava.sourceforge.net/},
   TITLE        = {DrJava},
   YEAR         = {2005},
   URL          = {http://drjava.sourceforge.net/}
}

@BOOK{Kerievsky04-RefactoringsPatterns,
   PUBLISHER    = {Addison Wesley Professional},
   TITLE        = {Refactoring to Patterns},
   YEAR         = {2004},
   AUTHOR       = {Joshua Kerievsky},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   EDITION      = {1<sup>st</sup>},
   MONTH        = {August},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@BOOK{Kuchana04-SADJP,
   PUBLISHER    = {Auerbach Publications},
   TITLE        = {Software Architecture Design Patterns in Java},
   YEAR         = {2004},
   AUTHOR       = {Partha Kuchana},
   ALTEDITOR    = {},
   ADDRESS      = {Boston, MA, USA},
   OPTEDITION   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@ARTICLE{Aaby04-software,
   AUTHOR       = {Anthony A. Aaby},
   JOURNAL      = {},
   TITLE        = {Software: a fine art},
   YEAR         = {2004},
   MONTH        = {January},
   NOTE         = {http://cs.wwc.edu/ aabyan/FAS/book},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   INSTITUTION  = {Walla Walla College},
   KEY          = {LECTURE NOTES},
   PUBLISHER    = {Creative Commons Attribution-NonCommercial License}
}

@ARTICLE{Hadar04-ComprehendingDiagrams,
   AUTHOR       = {Irit Hadar and Orit Hazzan},
   JOURNAL      = {journal of Object Technology},
   TITLE        = {On the Contribution of UML Diagrams to Software System 
      Comprehension},
   YEAR         = {2004},
   MONTH        = {January--February},
   OPTNOTE      = {},
   NUMBER       = {1},
   PAGES        = {143--156},
   VOLUME       = {3},
   EDITOR       = {Richard Wiener},
   PUBLISHER    = {Chair of Software Engineering, ETH Zurich},
   URL          = {http://www.jot.fm/issues/issue_2004_01/article3},
   ABSTRACT     = {Program comprehension has been researched extensively 
      ever since software systems became complex and longer than a few 
      hundreds code lines. At the same time, the way in which people 
      comprehend visual models of software systems has received much less 
      attention. This paper focuses on the comprehension of UML diagrams. 
      During the research presented in this paper, data was gathered from 
      the work of two groups. Group 1 consisted of 13 senior computer 
      science students who worked in five teams. The students were asked to 
      trace and analyze the process by which they retrieved information 
      from UML diagrams of a given system. Group 2 consisted of 42 senior 
      computer science students who were requested to complete a 
      questionnaire in which they were asked to rank different types of UML 
      diagrams according to their importance. The section on data analysis 
      discusses strategies adopted by the novices in their attempt to 
      reveal the meaning of a set of UML diagrams, as well as their 
      attitudes towards the different diagrams. One of the interesting 
      observations is that although each team had its own preferences with 
      respect to the usefulness of each specific type of diagrams, the 
      overall use of each diagram type is very similar across the teams.}
}

@ARTICLE{Hovemeyer04-FindBugs,
   AUTHOR       = {David Hovemeyer and William Pugh},
   JOURNAL      = {SIGPLAN Not.},
   TITLE        = {Finding bugs is easy},
   YEAR         = {2004},
   OPTMONTH     = {},
   OPTNOTE      = {},
   NUMBER       = {12},
   PAGES        = {92--106},
   VOLUME       = {39},
   ADDRESS      = {New York, NY, USA},
   PUBLISHER    = {ACM Press}
}

@ARTICLE{Koru04-DefectHandling,
   AUTHOR       = {A. Güne\cs Koru and Jeff Tian},
   JOURNAL      = {Software},
   TITLE        = {Defect Handling in Medium and Large Open Source Projects},
   YEAR         = {2004},
   MONTH        = {July--August},
   OPTNOTE      = {},
   NUMBER       = {4},
   PAGES        = {54--61},
   VOLUME       = {21},
   EDITOR       = {Warren Harrison]},
   PUBLISHER    = {IEEE Computer Society Press},
   URL          = {http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=1309647},
   ABSTRACT     = {Open source projects have resulted in numerous 
      high-quality, widely used products. Understanding the defect-handling 
      strategies such projects employ can help us use the publicly 
      accessible defect data from these projects to provide valuable 
      quality-improvement feedback and to better understand the defect 
      characteristics for a wider variety of software products. We 
      conducted a survey to understand defect handling in selected open 
      source projects and compared the particular approaches taken in 
      different projects. We focused on defect handling instead of the 
      broader quality assurance activities other researchers have 
      previously reported. Our results provided quantitative evidence about 
      the current practice of defect handling in an important subset of 
      open source projects.}
}

@ARTICLE{Massasrt05-BoxPlots,
   AUTHOR       = {Désiré Luc Massart and Johanna Smeyers-Verbeke and 
      Xavier Capron and Karin Schlesier},
   JOURNAL      = {LC-GC Europe},
   TITLE        = {Visual Presentation of Data by Means of Box Plots},
   YEAR         = {2004},
   MONTH        = {April},
   OPTNOTE      = {},
   NUMBER       = {4},
   PAGES        = {2--5},
   VOLUME       = {18},
   EDITOR       = {David Hills},
   PUBLISHER    = {Advanstar House},
   URL          = {http://www.lcgceurope.com/lcgceurope/data/articlestandard/lcgceurope/132005/152912/article.pdf},
   ABSTRACT     = {Data analysis should always start by (literally) looking 
      at the data. An efficient way to do this is to use box and whisker 
      plots, which, for short, are called box plots. All figures in this 
      column are box plots and Figures 2 to 4 are box plots for real data 
      sets. In this column we will explain how to construct them and how 
      they can help you to learn more about your data.}
}

@ARTICLE{Ram04-PatternHybridization,
   AUTHOR       = {D. Janaki Ram and P. Jithendra Kumar and M. S. Rajasree},
   JOURNAL      = {Software Engineering Notes},
   TITLE        = {Pattern hybridization: breeding new designs out of 
      pattern interactions},
   YEAR         = {2004},
   MONTH        = {May},
   OPTNOTE      = {},
   NUMBER       = {3},
   PAGES        = {1--10},
   VOLUME       = {29},
   EDITOR       = {Will Tracz},
   KEYWORDS     = {Design Patterns},
   PUBLISHER    = {ACM Press},
   URL          = {http://portal.acm.org/citation.cfm?id=986729},
   ABSTRACT     = {Class or object interactions form the basis of 
      object-oriented design. However, design pattern interaction can be 
      viewed as a higher level of abstraction for system design. The 
      typical interactions among the patterns are a pattern uses another 
      pattern to solve one of its sub problem, and a pattern combines with 
      another pattern for completeness. This paper proposes a mechanism 
      called pattern hybridization for breeding new patterns from the 
      pattern interactions which solve more specialized problems than the 
      original patterns do. Rules for generating hybrid patterns are also 
      mentioned in the paper. This paper also views design pattern 
      interactions for system design.}
}

@ARTICLE{Tahvildari04-MetaPatternTransfo,
   AUTHOR       = {Ladan Tahvildari and Kostas Kontogiannis},
   JOURNAL      = {Journal of Software Maintenance},
   TITLE        = {Improving design quality using meta-pattern 
      transformations: a metric-based approach},
   YEAR         = {2004},
   OPTMONTH     = {},
   OPTNOTE      = {},
   NUMBER       = {4-5},
   PAGES        = {331--361},
   VOLUME       = {16},
   ADDRESS      = {New York, NY, USA},
   PUBLISHER    = {John Wiley & Sons, Inc.}
}

@ARTICLE{Vokac04-DefectAndDesignPatterns,
   AUTHOR       = {Marek Vokac},
   JOURNAL      = {},
   TITLE        = {Defect Frequency and Design Patterns: An Empirical Study 
      of Industrial Code},
   YEAR         = {2004},
   MONTH        = {December},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   PAGES        = {904 - 917},
   OPTVOLUME    = {},
   ADDRESS      = {Piscataway, NJ, USA},
   BOOKTITLE    = {IEEE Transactions on Software Engineering},
   EDITOR       = { IEEE},
   PUBLISHER    = {IEEE Press},
   ABSTRACT     = {Software "design patterns?` seek to package proven 
      solutions to design problems in a form that makes it possible to 
      find, adapt, and reuse them. A common claim is that a design based on 
      properly applied patterns will have fewer defects than more ad hoc 
      solutions. This case study analyzes the weekly evolution and 
      maintenance of a large commercial product (C++, 500,000 LOC) over 
      three years, comparing defect rates for classes that participated in 
      selected design patterns to the code at large. We found that there 
      are significant differences in defect rates among the patterns, 
      ranging from 63 percent to 154 percent of the average rate. We 
      developed a new set of tools able to extract design pattern 
      information at a rate of 3\times 10^6 lines of code per hour, with 
      relatively high precision. Based on a qualitative analysis of the 
      code and the nature of the patterns, we conclude that the Observer 
      and Singleton patterns are correlated with larger code structures 
      and, so, can serve as indicators of code that requires special 
      attention. Conversely, code designed with the Factory pattern is more 
      compact and possibly less closely coupled and, consequently, has 
      lower defect numbers. The Template Method pattern was used in both 
      simple and complex situations, leading to no clear tendency.}
}

@INPROCEEDINGS{DuBois04-WCRE-RefactoringCouplingCohesion,
   AUTHOR       = {Bart Du Bois, Jan Verelst and Serge Demeyer},
   BOOKTITLE    = {Proceedings of the 11<sup>th</sup> IEEE Working Conference on Reverse Engineering},
   TITLE        = {Refactoring - Improving Coupling and Cohesion of 
      Existing Code},
   YEAR         = {2004},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {144--151},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Beaurepaire04-QualityMeeting,
   AUTHOR       = {Olivier Beaurepaire and Benjamin Lecardeux and 
      Christine Havart},
   BOOKTITLE    = {Proceedings of the 8<sup>th</sup> workshop on Quantitative Approaches in Object-Oriented Software Engineering},
   TITLE        = {Exploring Industrial Data Repositories: Where Software 
      Development Approaches Meet},
   YEAR         = {2004},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Coral Calero and e Abreu, Fernando Brito and Geert Poels and 
      Houari A. Sahraoui},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://alarcos.inf-cr.uclm.es/qaoose2004/agenda.htm}
}

@INPROCEEDINGS{Breech04-DynamicCompilation,
   AUTHOR       = {Benjamin A. Breech and Antonios G. Danalis and 
      Stacey Shindo and Lori Pollock},
   BOOKTITLE    = {Proceedings of the 20<sup>th</sup> International Conference on Software Maintenance},
   TITLE        = {Online Impact Analysis via Dynamic Compilation 
      Technology},
   YEAR         = {2004},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Mark Harman and Bogdan Korel},
   MONTH        = {September},
   NOTE         = {Short paper.},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {453--457},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=1357834},
   ABSTRACT     = {Dynamic impact analysis based on whole path profiling of 
      method calls and returns has been shown to provide more useful 
      predictions of software change impacts than method-level static 
      slicing and to avoid the overhead of expensive dependency analysis 
      needed for dynamic slicing-based impact analysis. This paper presents 
      the design, implementation, and evaluation of an online approach to 
      dynamic impact analysis as an extension to the DynamoRIO binary code 
      modification system and to the Jikes Research Virtual Machine. 
      Storage and postmortem analysis of program traces, even compressed, 
      are avoided.}
}

@INPROCEEDINGS{DaoHuchard04-Generalization,
   AUTHOR       = {Michel Dao and Marianne Huchard and 
      Amine Mohamed Rouane Hacene and Cyril Roume and Petko Valtchev},
   BOOKTITLE    = {Proceedings of 12<sup>th</sup> International Conference on Conceptual Structures (ICCS'04)},
   TITLE        = {Improving Generalization Level in UML Models Iterative 
      Cross Generalization in Practice.},
   YEAR         = {2004},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {346-360},
   PUBLISHER    = {LNCS 3127, Springer},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{DaoHuchard04-Generalization,
   AUTHOR       = {Michel Dao and Marianne Huchard and 
      Mohamed Rouane Hacene and Cyril Roume and Petko Valtchev},
   BOOKTITLE    = {Proceedings of 12<sup>th</sup> International Conference on Conceptual Structures (ICCS'04)},
   TITLE        = {Improving Generalization Level in UML Models Iterative 
      Cross Generalization in Practice.},
   YEAR         = {2004},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {346-360},
   PUBLISHER    = {LNCS 3127, Springer},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Donovan04-ConvertingToGenerics,
   AUTHOR       = {Alan Donovan and Adam Kiezun and Matthew S. Tschantz and 
      Michael D. Ernst},
   BOOKTITLE    = {Proceedings of the 19<sup>th</sup> Conference on Object-Oriented Programming Systems, Languages, and Applications},
   TITLE        = {Converting Java Programs to Use Generic Libraries},
   YEAR         = {2004},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Doug Schmidt},
   MONTH        = {October},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {15--34},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?id=1035292.1028979},
   ABSTRACT     = {Java 1.5 will include a type system (called JSR-14) that 
      supports parametric polymorphism, or generic classes. This will bring 
      many benefits to Java programmers, not least because current Java 
      practice makes heavy use of logically-generic classes, including 
      container classes. Translation of Java source code into semantically 
      equivalent JSR-14 source code requires two steps: parameterization 
      (adding type parameters to class definitions) and instantiation 
      (adding the type arguments at each use of a parameterized class). 
      Parameterization need be done only once for a class, whereas 
      instantiation must be performed for each client, of which there are 
      potentially many more. Therefore, this work focuses on the 
      instantiation problem. We present a technique to determine sound and 
      precise JSR-14 types at each use of a class for which a generic type 
      specification is available. Our approach uses a precise and 
      context-sensitive pointer analysis to determine possible types at 
      allocation sites, and a set-constraint-based analysis (that 
      incorporates guarded, or conditional, constraints) to choose 
      consistent types for both allocation and declaration sites. The 
      technique handles all features of the JSR-14 type system, notably the 
      raw types that provide backward compatibility. We have implemented 
      our analysis in a tool that automatically inserts type parameters 
      into Java code, and we report its performance when applied to a 
      number of real-world Java programs.}
}

@INPROCEEDINGS{Ghoniem04-ComparisonNodeMatrix,
   AUTHOR       = {Mohammad Ghoniem and Jean-Daniel Fekete and 
      Philippe Castagliola},
   BOOKTITLE    = {Proceedings of the 10<sup>th</sup> symposium on Information Visualisation},
   TITLE        = {A Comparison of the Readability of Graphs Using 
      Node-Link and Matrix-Based Representations},
   YEAR         = {2004},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Matt Ward and Tamara Munzner},
   MONTH        = {October},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {17--24},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Ghoniem04-VISEXP,
   AUTHOR       = {Mohammad Ghoniem and Narendra Jussien and 
      Jean-Daniel Fekete},
   BOOKTITLE    = {Proceedings of the 17<sup>th</sup> international Florida Artificial Intelligence Research Society Conference},
   TITLE        = {VISEXP: Visualizing Constraint Solver Dynamics Using 
      Explanations},
   YEAR         = {2004},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Valerie Barr and Zdravko Marko},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {263--268},
   PUBLISHER    = {AAAI Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.emn.fr/x-info/jussien/publications/ghoniem-FLAIRS04.pdf},
   ABSTRACT     = {In this paper, we introduce VISEXP: a new visualization 
      tool designed to explore relations between constraints and variables 
      in constraint problems. This tool uses the explanation network built 
      throughout computation. We show that VISEXP is able to provide much 
      more information about how search is performed than classical 
      representations. Moreover, we illustrate the animation feature of 
      VISEXP that provides invaluable tools for visualization and therefore 
      analysis of the dynamics of constraint solvers.}
}

@INPROCEEDINGS{Jorgensen04-TheoryBuilding,
   AUTHOR       = {Magne Jorgensen and Dag I. Sjoberg},
   BOOKTITLE    = {Proceedings of the 8<sup>th</sup> international conference on Empirical Assessment in Software Engineering},
   TITLE        = {Generalization and Theory-Building in Software 
      Engineering Research},
   YEAR         = {2004},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Stephen Linkman},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {29--36},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http:// www.simula.no/departments/engineering/publications/SE.5.Joergensen.2004.c},
   ABSTRACT     = {The main purpose of this paper is to generate 
      discussions which may improve how we conduct empirical software 
      engineering studies. Our position is that statistical hypothesis 
      testing plays a too large role in empirical software engineering 
      studies. The problems of applying statistical hypothesis testing in 
      empirical software engineering studies is illustrated by the finding: 
      Only 3 out of the 47 studies in Journal of Empirical Software 
      Engineering which applied statistical hypothesis testing, were able 
      to base their statistical testing on well-defined populations and 
      random samples from those populations. The frequent use of 
      statistical hypothesis testing may also have had unwanted 
      consequences on the study designs, e.g., it may have contributed to a 
      too low focus on theory building. We outline several steps we believe 
      are useful for a change in focus from ``generalizing from a random 
      sample to a larger population" to ``generalizing across populations 
      through theory-building"}
}

@INPROCEEDINGS{Ledru04-FASE-Tobias,
   AUTHOR       = {Yves Ledru and du Bousquet, Lydie and Olivier Maury and 
      Pierre Bontron},
   BOOKTITLE    = {proceedings of ETAPS/FASE’04 - Fundamental Approaches to Software Engineering},
   TITLE        = {Filtering TOBIAS combinatorial test suites},
   YEAR         = {2004},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Michel Wermelinger, Tiziana Margaria-Steffen},
   MONTH        = {April},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {LNCS, Springer-Verlag},
   OPTSERIES    = {},
   VOLUME       = {2984},
   ABSTRACT     = {TOBIAS is a combinatorial testing tool, aimed at the 
      production of large test suites. In this paper, TOBIAS is applied to 
      conformance tests for model-based specifications (expressed with 
      assertions, pre and post-conditions) and associated implementations. 
      The tool takes advantage of the executable character of VDM or JML 
      assertions which provide an oracle for the testing process. Executing 
      large test suites may require a lot of time. This paper shows how 
      assertions can be exploited at generation time to filter the set of 
      test cases, and at execution time to detect inconclusive test cases.}
}

@INPROCEEDINGS{Marinescu04-ICSM-DetectionStrategies,
   AUTHOR       = {Radu Marinescu},
   BOOKTITLE    = {Proceedings of the 20<sup>th</sup> International Conference on Software Maintenance},
   TITLE        = {Detection Strategies: Metrics-Based Rules for Detecting 
      Design Flaws},
   YEAR         = {2004},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {350-359},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   ABSTRACT     = {In order to support the maintenance of an 
      object-oriented software system, the quality of its design must be 
      evaluated using adequate quantification means. In spite of the 
      current extensive use of metrics, if used in isolation metrics are 
      oftentimes too fine grained to quantify comprehensively an 
      investigated design aspect (e.g., distribution of system’s 
      intelligence among classes). To help developers and maintainers 
      detect and localize design problems in a system, we propose a novel 
      mechanism – called detection strategy – for formulating metrics-based 
      rules that capture deviations from good design principles and 
      heuristics. Using detection strategies an engineer can directly 
      localize classes or methods affected by a particular design flaw 
      (e.g., God Class), rather than having to infer the real design 
      problem from a large set of abnormal metric values. We have defined 
      such detection strategies for capturing around ten important flaws of 
      object-oriented design found in the literature and validated the 
      approach experimentally on multiple large-scale case-studies.}
}

@INPROCEEDINGS{Ratiu04-HistoryInformation,
   AUTHOR       = {Daniel Ra\ctiu and Stéphane Ducasse and Tudor Gîrba and 
      Radu Marinescu},
   BOOKTITLE    = {Proceedings of the 8<sup>th</sup> Conference on Software Maintenance and Reengineering},
   TITLE        = {Using History Information to Improve Design Flaws 
      Detection},
   YEAR         = {2004},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Claudio Riva and Gerardo Canfora},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {223--232},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=1281423},
   ABSTRACT     = {As systems evolve and their structure decays, 
      maintainers need accurate and automatic identification of the design 
      problems. Current approaches for automatic detection of design 
      problems are not accurate enough because they analyze only a single 
      version of a system and consequently they miss essential information 
      as design problems appear and evolve over time. Our approach is to 
      use the historical information of the suspected flawed structure to 
      increase the accuracy of the automatic problem detection. Our means 
      is to define measurements which summarize how persistent the problem 
      was and how much maintenance effort was spent on the suspected 
      structure. We apply our approach on a large scale case study and show 
      how it improves the accuracy of the detection of god classes and data 
      classes, and additionally how it adds valuable semantical information 
      about the evolution of flawed design structures.}
}

@INPROCEEDINGS{RatiuDGM04-HistoryInformation,
   AUTHOR       = {Daniel Ratiu and Stéphane Ducasse and Tudor Gîrba and 
      Radu Marinescu},
   BOOKTITLE    = {Proceedings of the 8<sup>th</sup> European Conference on Software Maintenance and Reengineering, Tampere, Finland},
   TITLE        = {Using History Information to Improve Design Flaws 
      Detection.},
   YEAR         = {2004},
   OPTADDRESS   = {},
   CROSSREF     = {DBLP:conf/csmr/2004},
   OPTEDITOR    = {},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {223-232},
   PUBLISHER    = {IEEE Computer Society},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{SABER04-SmartAnalysisBasedErrorReduction,
   AUTHOR       = {Darrell Reimer and Edith Schonberg and Kavitha Srinivas and 
      Harini Srinivasan and Bowen Alpern and Robert D. Johnson and 
      Aaron Kershenbaum and Larry Koved},
   BOOKTITLE    = {ISSTA '04: Proceedings of the 2004 ACM SIGSOFT International Symposium on Software Testing and Analysis},
   TITLE        = {SABER: smart analysis based error reduction},
   YEAR         = {2004},
   ADDRESS      = {New York, NY, USA},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {243--251},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Mancoridis04-FeaturesInteractions,
   AUTHOR       = {Maher Salah and Spiros Mancoridis},
   BOOKTITLE    = {Proceedings of the 20<sup>th</sup> International Conference on Software Maintenance},
   TITLE        = {A Hierarchy of Dynamic Software Views: From 
      Object-Interactions to Feature-Interactions},
   YEAR         = {2004},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Mark Harman and Bogdan Korel},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {72--81},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://csdl.computer.org/comp/proceedings/icsm/2004/2213/00/22130072abs.htm},
   ABSTRACT     = {This paper presents a hierarchy of dynamic views that is 
      constructed using tools that analyze program execution traces. At the 
      highest-level of abstraction are the feature-interaction and 
      implementation views, which track the inter-feature dependencies as 
      well as the classes that implement these features. At the 
      middle-level is the class-interaction view, which is an abstract view 
      of the object-interactions. The object-interaction view is the base 
      view for all the views, and captures the low-level runtime 
      interactions between objects. Two case studies are used to 
      demonstrate the effectiveness of our work.}
}

@INPROCEEDINGS{Santella04-ClusteringEyeMovements,
   AUTHOR       = {Anthony Santella and Doug DeCarlo},
   BOOKTITLE    = {Proceedings of the 3<sup>rd</sup> symposium on Eye Tracking Research and Applications},
   TITLE        = {Robust Clustering of Eye Movement Recordings for 
      Quantification of Visual Interest},
   YEAR         = {2004},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Andrew Duchowski and Roel Vertegaal},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {27--34},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?id=968368},
   ABSTRACT     = {Characterizing the location and extent of a viewer's 
      interest, in terms of eye movement recordings, informs a range of 
      investigations in image and scene viewing. We present an automatic 
      data-driven method for accomplishing this, which clusters visual 
      point-of-regard (POR) measurements into gazes and regions-of-interest 
      using the mean shift procedure. Clusters produced using this method 
      form a structured representation of viewer interest, and at the same 
      time are replicable and not heavily influenced by noise or outliers. 
      Thus, they are useful in answering fine-grained questions about where 
      and how a viewer examined an image.}
}

@INPROCEEDINGS{Trifu04-AutomatedDD,
   AUTHOR       = {Adrian Trifu and Olaf Seng and Thomas Genssler},
   BOOKTITLE    = {Proceedings of the 8<sup>th</sup> Conference on Software Maintenance and Reengineering},
   TITLE        = {Automated Design Flaw Correction in Object-Oriented 
      Systems},
   YEAR         = {2004},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Claudio Riva and Gerardo Canfora},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {174--183},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=1281418},
   ABSTRACT     = {Software inevitably changes. As a consequence, we 
      observe the phenomenon referred to as ``software entropy" or 
      ``software decay": the software design continually degrades making 
      maintenance and functional extensions overly costly if not 
      impossible. There exist a number of approaches to identify design 
      flaws (problem detection) and to remedy them (refactoring). There is, 
      however, a conceptual gap between these two stages: There is no 
      appropriate support for the automated mapping of design flaws to 
      possible solutions. Here we propose an integrated, quality-driven and 
      tool-supported methodology to support object-oriented software 
      evolution. Our approach is based on the novel concept of ``correction 
      strategies". Correction strategies serve as reference descriptions 
      that enable a human-assisted tool to plan and perform all necessary 
      steps for the safe removal of detected design flaws, with special 
      concern towards the targeted quality goals of the restructuring 
      process. We briefly sketch our tool chain and illustrate our approach 
      with the help of a medium-sized real-world case-study.}
}

@INPROCEEDINGS{Weiss04-FeatureInteractionsWS,
   AUTHOR       = {Michael Weiss and Babak Esfandiari},
   BOOKTITLE    = {Proceedings of the International Conference on Web Services},
   TITLE        = {On Feature Interactions among Web Services},
   YEAR         = {2004},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Hemant Jain and Ling Liu},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {88--95},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.idea-group.com/articles/details.asp?ID=5329},
   ABSTRACT     = {Web Services promise to allow businesses to adapt 
      rapidly to changes in the business environment and to the needs of 
      customers. However, the rapid introduction of new services paired 
      with the dynamicity of the business environment also leads to 
      undesirable interactions that negatively impact service quality and 
      user satisfaction. In this paper, we propose an approach for modeling 
      such undesirable interactions as feature interactions. As each 
      functional feature ultimately is motivated by non-functional 
      requirements, we make an explicit distinction between functional and 
      non-functional features. We then describe our approach for detecting 
      and resolving feature interactions among Web Services. The approach 
      is based on goal-oriented analysis and scenario modeling. It allows 
      us to reason about feature interactions in terms of goal conflicts 
      and feature deployment. Three case studies illustrate the approach. 
      The paper concludes with a discussion of our findings and an outlook 
      on future research.}
}

@INPROCEEDINGS{Zimmermann03-MiningHistories,
   AUTHOR       = {Thomas Zimmermann and Peter Weissgerber and 
      Stephan Diehl and Andreas Zeller},
   BOOKTITLE    = {Proceedings of the 26<sup>th</sup> International Conference on Software Engineering},
   TITLE        = {Mining Version Histories to Guide Software Changes},
   YEAR         = {2004},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Jacky Estublier and David S. Rosenblum},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {53--572},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.st.cs.uni-sb.de/papers/icse2004/},
   ABSTRACT     = {We apply data mining to version histories in order to 
      guide programmers along related changes: "Programmers who changed 
      these functions also changed\ldots". Given a set of existing changes, 
      such rules (a) suggest and predict likely further changes, (b) show 
      up item coupling that is indetectable by program analysis, and (c) 
      prevent errors due to incomplete changes. After an initial change, 
      our ROSE prototype can correctly predict 26\% of further files to be 
      changed---and 15\% of the precise functions or variables. The topmost 
      three suggestions contain a correct location with a likelihood of 
      64\%.}
}

@TECHREPORT{Briand04-ReverseUMLSequenceDiagrams,
   AUTHOR       = {Lionel Briand and Yvan Labiche and Johanne Leduc},
   INSTITUTION  = {Carleton Univsersity},
   TITLE        = {Towards the Reverse Engineering of UML Sequence Diagrams 
      for Distributed, Multithreaded Java software},
   YEAR         = {2004},
   OPTADDRESS   = {},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTTYPE      = {},
   ABSTRACT     = {This paper proposes a comprehensive methodology and 
      instrumentation infrastructure for the reverse-engineering of UML 
      (Unified Modeling Language) sequence diagrams from dynamic analysis. 
      One motivation is of course to help people understand the behavior of 
      systems with no (complete) documentation. However, such 
      reverse-engineered dynamic models can also be used for quality 
      assurance purposes. They can, for example, be compared with design 
      sequence diagrams and the conformance of the implementation to the 
      design can thus be verified. Furthermore, discrepancies can also 
      suggest failures in meeting the specifications. We formally define 
      our approach using metamodels and consistency rules. The 
      instrumentation is based on Aspect-Oriented Programming in order to 
      alleviate the overhead usually associated with source code 
      instrumentation. A case study is discussed to demonstrate the 
      applicability of the approach on a concrete example.}
}

@MANUAL{UML04,
   TITLE        = {UML 2.0 Superstructure Specification},
   OPTADDRESS   = {},
   OPTAUTHOR    = {},
   OPTEDITION   = {},
   MONTH        = {October},
   OPTNOTE      = {},
   ORGANIZATION = {Object Management Group},
   YEAR         = {2004},
   URL          = {http://www.omg.org/cgi-bin/doc?ptc/2004-10-02}
}

@MISC{JLint-Tool,
   AUTHOR       = { Artho},
   OPTHOWPUBLISHED = {},
   MONTH        = {July},
   NOTE         = {http://artho.com/jlint/},
   TITLE        = {JLint},
   YEAR         = {2004},
   URL          = {http://artho.com/jlint/}
}

@MISC{Beaurepaire04-MiseEnQualite,
   AUTHOR       = {Olivier Beaurepaire and Jean-Louis Letouzey},
   OPTHOWPUBLISHED = {},
   MONTH        = {April},
   OPTNOTE      = {},
   TITLE        = {Description d'une méthode de mise en qualite des 
      logiciels},
   YEAR         = {2004},
   ABSTRACT     = {Dans cet article, nous pr\'esentons une m\'ethode 
      d'am\'elioration de la qualit\'e focalis\'ee sur le contr\^ole des 
      produits, m\'ethode dite de ``mise en qualit\'e des d\'eveloppements 
      logiciels". Cette m\'ethode prend en compte les sp\'ecificit\'es des 
      langages OO (Java, C++, VB.Net...) et r\'epond particuli\`erement aux 
      besoins actuels des ma\^{\i}trises d'ouvrage. Cette m\'ethode a 
      \'et\'e outill\'ee pour un d\'eploiement totalement automatis\'e \`a 
      la DSIV de la SNCF. Nous pr\'esentons les fondements de cette 
      m\'ethode, la mani\`ere dont elle a \'et\'e d\'eploy\'ee et les 
      premiers r\'esultats concrets qui en d\'ecoulent.}
}

@MISC{StructuralAnalysisJava,
   AUTHOR       = { IBM},
   OPTHOWPUBLISHED = {},
   MONTH        = {March},
   OPTNOTE      = {},
   TITLE        = {Structural Analysis for Java},
   YEAR         = {2004},
   URL          = {http://www.alphaworks.ibm.com/tech/sa4j}
}

@MISC{Koskinen04-MaintenanceCosts,
   AUTHOR       = {Jussi Koskinen},
   OPTHOWPUBLISHED = {},
   MONTH        = {September},
   NOTE         = {Web site.},
   TITLE        = {Software Maintenance Costs},
   YEAR         = {2004},
   URL          = {http://www.cs.jyu.fi/~koskinen/smcosts.htm},
   ABSTRACT     = {Software maintenance and evolution is a considerably 
      understudied area while taking into account its cost effects. This 
      document lists some interesting figures on proportional and absolute 
      maintenance costs, proportions of the main task types, and amount and 
      nature of the existing legacy code. These figures are based on 
      empirical data. Although there has not been much empirical research 
      on this particular area, the magnitude of the maintenance cost 
      effects is clearly identifiable.}
}

@UNPUBLISHED{Anderson04-KeysExperiments,
   AUTHOR       = {Mark J. Anderson and Shari L. Kraber},
   NOTE         = {},
   TITLE        = {Keys to Successful Design of Experiments},
   MONTH        = {January},
   YEAR         = {2004},
   URL          = {http://www.statease.com/pubs/doe-keys.pdf},
   ABSTRACT     = {This paper identifies eight keys to success in applying 
      statistical tools for design of experiments (DOE). Quality managers 
      who grasp these keys will be better able to support use of DOE in 
      their organization. Ultimately this will lead to breakthrough 
      improvements in product quality and process efficiency.}
}

@BOOK{Alur03-CoreJ2EEPatterns,
   PUBLISHER    = {Prentice Hall},
   TITLE        = {Core J2EE Patterns: Best Practices and Design Strategies},
   YEAR         = {2003},
   AUTHOR       = {Deepak Alur and Dan Malks and John Crupi},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   EDITION      = {2<sup>nd</sup>},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.amazon.com/Core-J2EE-Patterns-Practices-Strategies/dp/0131422464},
   ABSTRACT     = {Developers often confuse learning the technology with 
      learning to design with the technology. In this book, senior 
      architects from the Sun Java Center share their cumulative design 
      experience on Java 2 Platform, Enterprise Edition (J2EE) technology. 
      The primary focus of the book is on patterns, best practices, design 
      strategies, and proven solutions using the key J2EE technologies 
      including JavaServer Pages(TM) (JSP(TM)), Servlets, Enterprise 
      JavaBeans(TM) (EJB(TM)), and Java(TM) Message Service (JMS) APIs. The 
      J2EE Pattern Catalog with 21 patterns and numerous strategies is 
      presented to document and promote best practices for these 
      technologies. Core J2EE Patterns, Second Edition offers the 
      following: \begin{itemize} \item J2EE Pattern Catalog with 21 
      patterns--fully revised and newly documented patterns providing 
      proven solutions for enterprise applications \item Design strategies 
      for the presentation tier, business tier, and integration tier \item 
      Coverage of servlets, JSP, EJB, JMS, and Web Services \item J2EE 
      technology bad practices \item Refactorings to improve existing 
      designs using patterns \item Fully illustrated with UML diagrams 
      \item Extensive sample code for patterns, strategies, and 
      refactorings \end{itemize}}
}

@BOOK{Chrissis03-CMM,
   PUBLISHER    = {Addison-Wesley},
   TITLE        = {CMMI : Guidelines for Process Integration and Product 
      Improvement},
   YEAR         = {2003},
   AUTHOR       = {Mary Beth Chrissis and Mike Konrad and Sandy Shrum},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   EDITION      = {1<sup>st</sup>},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@BOOK{Dudney03-J2EEAntipatterns,
   PUBLISHER    = {Wiley},
   TITLE        = {J2EE AntiPatterns},
   YEAR         = {2003},
   AUTHOR       = {Bill Dudney and Stephen Asbury and Joseph Krozak and 
      Kevin Wittkopf},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   OPTEDITION   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@BOOK{Endres03-HandbookSE,
   PUBLISHER    = {Addison-Wesley},
   TITLE        = {A Handbook of Software and Systems Engineering},
   YEAR         = {2003},
   AUTHOR       = {Albert Endres and Dieter Rombach},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   EDITION      = {1<sup>st</sup>},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {www.awprofessional.com/title/0321154207},
   ABSTRACT     = {This handbook presents the laws that significantly 
      impact software engineering. This book begins with requirements 
      definitions and concludes with maintenance and withdrawl. Along the 
      way, it identifies and discusses existing laws that significantly 
      impact software engineering. Software engineers who wish to 
      reacquaint (or ecquaint) themselves with the basic laws of software 
      engineering and their applicability in an industrial setting.}
}

@BOOK{Martin03-AgileSoftwareDvpt,
   PUBLISHER    = {Prentice Hall PTR},
   TITLE        = {Agile Software Development: Principles, Patterns, and 
      Practices},
   YEAR         = {2003},
   AUTHOR       = {Robert Cecil Martin},
   ALTEDITOR    = {},
   ADDRESS      = {Upper Saddle River, NJ, USA},
   OPTEDITION   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@BOOK{Cambridge-Dictionare,
   PUBLISHER    = {Cambridge University Press},
   TITLE        = {Cambridge Advanced Learner's Dictionary},
   YEAR         = {2003},
   AUTHOR       = {Cambridge University Press},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   OPTEDITION   = {},
   MONTH        = {August},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@BOOK{Wake03-RefactoringWorkbook,
   PUBLISHER    = {Addison-Wesley Longman Publishing Co., Inc.},
   TITLE        = {Refactoring Workbook},
   YEAR         = {2003},
   AUTHOR       = {William C. Wake},
   ALTEDITOR    = {},
   ADDRESS      = {Boston, MA, USA},
   OPTEDITION   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@PHDTHESIS{AlbinAmiot03-PhD,
   AUTHOR       = {Hervé Albin-Amiot},
   SCHOOL       = {université de Nantes},
   TITLE        = {Idiomes et Patterns Java : Application à la Synthèse de 
      Code et à la Détection},
   YEAR         = {2003},
   OPTADDRESS   = {},
   MONTH        = {février},
   OPTNOTE      = {},
   OPTTYPE      = {},
   ABSTRACT     = {Les \ygg@anglais{design patterns} (ou patron de 
      conception) sont reconnus comme une des bonnes techniques du g\'enie 
      logiciel \`a objets facilitant la conception, la documentation, la 
      maintenance et la r\'etro-conception. Malgr\'e cela, force est de 
      constater que dans les faits, peu d'environnements logiciels sont \`a 
      la fois outill\'es pour inciter l'utilisateur \`a appliquer un 
      catalogue de patterns et pour l'aider \`a am\'eliorer ses programmes 
      en y extrayant automatiquement des micro-architectures correspondant 
      \`a celles de patterns d\'ej\`a r\'epertori\'es. Dans ce m\'emoire 
      nous pr\'esentons un langage de description de patterns (\PDL{}) 
      servant de support \`a un outillage de l'environnement de 
      d\'eveloppement \ygg@product{Visual Age pour Java}. Ce langage, 
      bas\'e sur un m\'eta-mod\`ele, a pour particularit\'es de permettre 
      \`a la fois de manipuler, synth\'etiser et reconna\^{\i}tre dans des 
      programmes existants les patterns dont il a pr\'esid\'e \`a la 
      d\'eclaration. La description du m\'eta-mod\`ele d\'efinissant la 
      s\'emantique de ce langage et des diff\'erentes r\'ealisations 
      logicielles venant le compl\'eter fondent le premier volet de cette 
      th\`ese. Une partie exp\'erimentale pr\'esentant en outre la 
      composante idiomatique et les crit\`eres de d\'etection des patterns 
      \'etudi\'es en constitue le second volet. Ces exp\'erimentations sont 
      l'occasion de discuter des limites de notre approche et de sugg\'erer 
      des \'el\'ements d'am\'elioration pour notamment prendre en charge 
      l'aspect intentionnel des patterns et supporter la reconnaissance de 
      micro-architectures voisines de celles de patterns d\'ej\`a 
      r\'epertori\'es. Enfin, nous g\'en\'eralisons notre exp\'erience afin 
      de donner quelques pistes relatives \`a la faisabilit\'e et \`a 
      l'int\'er\^et d'une automatisation ou semi-automatisation des deux 
      activit\'es duales li\'ees \`a la synth\`ese de code et \`a la 
      d\'etection.}
}

@PHDTHESIS{Farias03-ProtocolesExplicites,
   AUTHOR       = {Andrés Farìas},
   SCHOOL       = {Université de Nantes},
   TITLE        = {Un modèle de composants avec des protocoles explicites},
   YEAR         = {2003},
   OPTADDRESS   = {},
   MONTH        = {décembre},
   OPTNOTE      = {},
   OPTTYPE      = {}
}

@PHDTHESIS{Lanza03-OORE,
   AUTHOR       = {Michele Lanza},
   SCHOOL       = {Institute of Computer Science and Applied Mathematics},
   TITLE        = {Object-Oriented Reverse Engineering -- Coarse-grained, 
      Fine-grained, and Evolutionary Software Visualization},
   YEAR         = {2003},
   OPTADDRESS   = {},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTTYPE      = {},
   URL          = {http://www.iam.unibe.ch/~scg/cgi-bin/oobib.cgi/abstract=yes?Lanz03b},
   ABSTRACT     = {The maintenance, reengineering, and evolution of 
      object-oriented software systems has become a vital matter in today's 
      software industry. Although most systems start off in a clean and 
      well-designed state, with time they tend to graduall y decay in 
      quality, unless the systems are reengineered and adapted to the 
      evolving requirements. However, before such legacy software systems 
      can be reengineered and evolved, they must be reverse engineered, 
      i.e., their structure and inner working must b e understood. This is 
      difficult because of several factors, such as the sheer size of the 
      systems, their complexity, their domain specificity, and in general 
      the bad state legacy software systems are in. In this thesis we 
      propose a visual approach to the reverse engineering of 
      object-oriented software systems by means of polymetric views, 
      lightweight visualizations of software enriched with metrics and 
      other types of semantic information about the software, e.g., its 
      age, version, abstractness, location, structure, function, etc. We 
      present and discuss several polymetric views which allow us to 
      understand three different aspects of object-oriented software, 
      namely (1) coarse-grained aspects which allow for the understanding 
      of very large systems, (2) fine -grained aspects which allow for the 
      understanding of classes and class hierarchies, and (3) evolutionary 
      aspects, which enable us to recover and understand the evolution of a 
      software system. The combination of these three types of information 
      can greatl y reduce the time needed to gain an understanding of an 
      object-oriented software system. Based on the application of our 
      polymetric views, we present our reverse engineering methodology 
      which we validated and refined on several occasions in industrial set 
      tings. It allows us to explore and combine these three approaches 
      into one single visual approach to understand software.}
}

@PHDTHESIS{Mantyla03-PhD,
   AUTHOR       = {Mika Mantyla},
   SCHOOL       = {Helsinki University of Technology},
   TITLE        = {Bad Smells in Software - a Taxonomy and an Empirical 
      Study.},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTTYPE      = {}
}

@ARTICLE{Antoniol03-OOFunctionPoints,
   AUTHOR       = {Giuliano Antoniol and Roberto Fiutem and 
      Christopher J. Lokan},
   JOURNAL      = {journal of Empirical Software Engineering},
   TITLE        = {Object-Oriented Function Points: An Empirical Validation},
   YEAR         = {2003},
   MONTH        = {September},
   OPTNOTE      = {},
   NUMBER       = {3},
   PAGES        = {225--254},
   VOLUME       = {8},
   EDITOR       = {Victor R. Basili and Lionel C. Briand},
   PUBLISHER    = {Springer-Verlag},
   URL          = {http://dx.doi.org/10.1023/A:1024472727275},
   ABSTRACT     = {We present an empirical validation of object-oriented 
      size estimation models. In previous work we proposed object oriented 
      function points (OOFP), an adaptation of the function points approach 
      to object-oriented systems. In a small pilot study, we used the OOFP 
      method to estimate lines of code (LOC). In this paper we extend the 
      empirical validation of OOFP substantially, using a larger data set 
      and comparing OOFP with alternative predictors of LOC. The aim of the 
      paper is to gain an understanding of which factors contribute to 
      accurate size prediction for OO software, and to position OOFP within 
      that knowledge. A cross validation approach was adopted to build and 
      evaluate linear models where the independent variable was either a 
      traditional OO entity (classes, methods, association, inheritance, or 
      a combination of them) or an OOFP-related measure. Using the full 
      OOFP process, the best size predictor achieved a normalized mean 
      squared error of 38\%. By removing function point weighting tables 
      from the OOFP process, and carefully analyzing collected data points 
      and developer practices, we identified several factors that influence 
      size estimation. Our empirical evidence demonstrates that by 
      controlling these factors size estimates could be substantially 
      improved, decreasing the normalized mean squared error to 15\%---in 
      relative terms, a 56\% reduction.}
}

@ARTICLE{Briand03-REUMLSD,
   AUTHOR       = {Lionel Briand and Yvan Labiche and Y. Miao},
   JOURNAL      = {Proceedings of the 10<sup>th</sup> Working Conference on Reverse Engineering},
   TITLE        = {Towards the reverse engineering of UML sequence diagrams},
   YEAR         = {2003},
   MONTH        = {November},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   PAGES        = {57--66},
   OPTVOLUME    = {},
   EDITOR       = {van Deursen, Arie and Eleni Stroulia and 
      Margaret-Anne D. Storey},
   PUBLISHER    = {IEEE Computer Society Press}
}

@ARTICLE{Eisenbarth03-LocatingFeatures,
   AUTHOR       = {Thomas Eisenbarth and Rainer Koschke and Daniel Simon},
   JOURNAL      = {Transactions on Software Engineering},
   TITLE        = {Locating Features in Source Code},
   YEAR         = {2003},
   MONTH        = {March},
   OPTNOTE      = {},
   NUMBER       = {3},
   PAGES        = {210--224},
   VOLUME       = {29},
   EDITOR       = {Gerardo Canfora and Anneliese A. Andrews},
   PUBLISHER    = {IEEE Computer Society Press},
   URL          = {http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=1183929},
   ABSTRACT     = {Understanding the implementation of a certain feature of 
      a system requires identification of the computational units of the 
      system that contribute to this feature. In many cases, the mapping of 
      features to the source code is poorly documented. In this paper, we 
      present a semiautomatic technique that reconstructs the mapping for 
      features that are triggered by the user and exhibit an observable 
      behavior. The mapping is in general not injective; that is, a 
      computational unit may contribute to several features. Our technique 
      allows for the distinction between general and specific computational 
      units with respect to a given set of features. For a set of features, 
      it also identifies jointly and distinctly required computational 
      units. The presented technique combines dynamic and static analyses 
      to rapidly focus on the system's parts that relate to a specific set 
      of features. Dynamic information is gathered based on a set of 
      scenarios invoking the features. Rather than assuming a one-to-one 
      correspondence between features and scenarios as in earlier work, we 
      can now handle scenarios that invoke many features. Furthermore, we 
      show how our method allows incremental exploration of features while 
      preserving the ``mental map" the analyst has gained through the 
      analysis.}
}

@ARTICLE{Firesmith03-sss,
   AUTHOR       = {Donald G. Firesmith},
   JOURNAL      = {Carnegie Mellon Software Engineering Institute - Technical Note CMU/SEI-2003-TN-033},
   TITLE        = {Common Concepts Underlying Safety, Security, and 
      Survivability Engineering},
   YEAR         = {2003},
   MONTH        = {December},
   NOTE         = {http://www.sei.cmu.edu/pub/documents/ 03.reports/pdf/03tn033.pdf},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   ABSTRACT     = {This technical note presents a consistent set of 
      information models that identify and define the foundational concepts 
      underlying safety, security, and survivability engineering. In 
      addition, it shows how quality requirements are related to quality 
      factors, subfactors, criteria, and metrics, and it emphasizes the 
      similarities between the concepts that underlie safety, security, and 
      survivability engineering. The information models presented in this 
      technical note provide a standard terminology and set of concepts 
      that explain the similarities between the asset-based, risk-driven 
      methods for identifying and analyzing safety, security, and 
      survivability requirements as well as a rationale for the similarity 
      in architectural mechanisms that are commonly used to fulfill these 
      requirements.}
}

@ARTICLE{Fox03-Plantage,
   AUTHOR       = {Armando Fox and David Patterson},
   JOURNAL      = {Pour la science},
   TITLE        = {La fin des défaillances informatiques},
   YEAR         = {2003},
   MONTH        = {octobre},
   OPTNOTE      = {},
   NUMBER       = {312},
   PAGES        = {28--35},
   OPTVOLUME    = {},
   PUBLISHER    = {Groupe Pour la Science},
   URL          = {http://www.enssib.fr/lirenews.php?id=238},
   ABSTRACT     = {Pour am\'eliorer la fiabilit\'e des syst\`emes, les 
      informaticiens s'efforcent de r\'eduire le temps de r\'ecup\'eration 
      des ordinateurs bloqu\'es, d'autoriser des r\'einitialisations 
      partielles et de permettre des retours plusieurs \'etapes en amont.}
}

@ARTICLE{Succi03-DefectProneness,
   AUTHOR       = {Giancarlo Succi and Witold Pedrycz and 
      Milorad Stefanovic and James Miller},
   JOURNAL      = {journal of Systems and Software},
   TITLE        = {Practical Assessment of the Models for Identification of 
      Defect-Prone Classes in Object-Oriented Commercial Systems using 
      Design Metrics},
   YEAR         = {2003},
   MONTH        = {January},
   OPTNOTE      = {},
   NUMBER       = {1},
   PAGES        = {1--12},
   VOLUME       = {65},
   EDITOR       = {David N. Card},
   URL          = {http://www.unibz.it/inf/acad/succi/publications/?LanguageID=EN},
   ABSTRACT     = {The goal of this paper is to investigate and assess the 
      ability of explanatory models based on design metrics to describe and 
      predict defect counts in an object-oriented software system. 
      Specifically, we empirically evaluate the influence of design 
      decisions to defect behavior of the classes in two products from the 
      commercial software domain. Information provided by these models can 
      help in resource allocation and serve as a base for assessment and 
      future improvements. We use innovative statistical methods to deal 
      with the peculiarities of the software engineering data, such as 
      non-normally distributed count data. To deal with overdispersed data 
      and excess of zeroes in the dependent variable, we use negative 
      binomial (NB) and zero-inflated NB regression in addition to Poisson 
      regression. Furthermore, we form a framework for comparison of 
      models' descriptive and predictive ability. Predictive capability of 
      the models to identify most critical classes in the system early in 
      the software development process can help in allocation of resources 
      and foster software quality improvement. In addition to the 
      correlation coefficients, we use additional statistics to assess a 
      models' ability to explain high variability in the data and Pareto 
      analysis to assess a models' ability to identify the most critical 
      classes in the system. Results indicate that design aspects related 
      to communication between classes and inheritance can be used as 
      indicators of the most defect-prone classes, which require the 
      majority of resources in development and testing phases. The 
      zero-inflated negative binomial regression model, designed to 
      explicitly model the occurrence of zero counts in the dataset, 
      provides the best results for this purpose.}
}

@ARTICLE{Taibi02-BPSL,
   AUTHOR       = {Toufic Taibi and David Chek Ling Ngo},
   JOURNAL      = {journal of Information and Software Technology},
   TITLE        = {Formal Specification of Design Pattern Combination using 
      BPSL},
   YEAR         = {2003},
   MONTH        = {March},
   OPTNOTE      = {},
   NUMBER       = {3},
   PAGES        = {157--170},
   VOLUME       = {45},
   EDITOR       = {Martin Dyer and Martin Shepperd and Claes Wohlin},
   KEYWORDS     = {Design Patterns},
   PUBLISHER    = {Elsevier Science},
   URL          = {http://pesona.mmu.edu.my/~toufik/research.html},
   ABSTRACT     = {Pattern users are faced with difficulties in 
      understanding when and how to use the increasing number of available 
      design patterns due the inherent ambiguity in the existing means 
      (textual and graphical) of describing them. Since patterns are seldom 
      used in isolation but are usually combined to solve complex problems, 
      the above-mentioned difficulties have even worsen. Hence, there is an 
      appealing need to introduce formalism to accurately describe patterns 
      and pattern combination to allow rigorous reasoning about them. The 
      main problem of existing formal specification languages for design 
      patterns is lack of completeness. This is mainly due either because 
      they were not originally conceived to specify design patterns and 
      have been adapted to do so, or they tend to focus on specifying 
      either the structural or behavioral aspect of design patterns but not 
      both of them. Moreover, only few of them venture in specifying design 
      pattern combination. We propose a simple yet Balanced Pattern 
      Specification Language (BPSL) that is aimed to achieve equilibrium by 
      specifying the structural as well as behavioral aspects of design 
      patterns. This is achieved by combining two subsets of logic one from 
      First Order Logic (FOL) and one from Temporal Logic of Actions (TLA). 
      Moreover it can be used to formally specify pattern combination.}
}

@ARTICLE{Thimbleby03-ChinesePostman,
   AUTHOR       = {Harold W. Thimbleby},
   JOURNAL      = {journal of Software -- Practice and Experience},
   TITLE        = {The directed Chinese Postman Problem},
   YEAR         = {2003},
   MONTH        = {September},
   OPTNOTE      = {},
   NUMBER       = {11},
   PAGES        = {1081--1096},
   VOLUME       = {33},
   EDITOR       = {Douglas Comer and Andy J. Wellings},
   PUBLISHER    = {John Wiley & Sons},
   URL          = {http://www.uclic.ucl.ac.uk/harold/cpp/},
   ABSTRACT     = {The Chinese Postman Problem has many applications, 
      including robot exploration, and analysing interactive system and web 
      site usability. This paper reviews the wide range of applications of 
      the problem and presents complete, executable code to solve it for 
      the case of directed multigraphs. A variation called the ‘open 
      Chinese Postman Problem’ is also introduced and solved. Although 
      optimisations are possible, no substantially better algorithms are 
      likely.}
}

@ARTICLE{Pracontal03-Memoire,
   AUTHOR       = {de Pracontal, Michel},
   JOURNAL      = {Nouvel Observateur Hebdo},
   TITLE        = {Mémoire : les dernières découvertes qui changent tout},
   YEAR         = {2003},
   MONTH        = {décembre},
   OPTNOTE      = {},
   NUMBER       = {2041},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   URL          = {http://archives.nouvelobs.com/recherche/article.cfm?id=125532},
   ABSTRACT     = {On se souvient mal... Pis: on ne se souvient plus... Et 
      si en r\'ealit\'e on ne faisait que se souvenir diff\'eremment. Et si 
      ce que l'on prend pour des insuffisances - ou m\^eme des pannes de 
      notre m\'emoire - n'\'etait qu'une forme de r\'e\'ecriture de nos 
      souvenirs. C'est en tout cas ce que montrent les derni\`eres 
      recherches. Contrairement \`a ce qu'on a cru jusqu'\`a maintenant, la 
      m\'emoire ne serait pas un disque dur qui stocke des informations 
      fig\'ees. Si nos souvenirs changent, c'est parce que en permanence 
      nous les r\'eactivons et les enrichissons. Une d\'ecouverte qui va 
      changer notre fa\c con de nous servir de notre m\'emoire. Et de 
      l'am\'eliorer.}
}

@INPROCEEDINGS{Belloir03-WholePartRelationshipComponent,
   AUTHOR       = {Nicolas Belloir and Jean-Michel Bruel and Franck Barbier},
   BOOKTITLE    = {Proceedings of the 29<sup>th</sup> Euromicro Conference},
   TITLE        = {Whole-Part Relationship for Software Component 
      Combination},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Gerhard Chroust and Christian Hofer},
   MONTH        = {Septembre},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {86--91},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=1231571},
   ABSTRACT     = {Reusability is a key factor for the success of the 
      development of low-cost applications. Component-based software 
      engineering (CBSE) aims to address this challenge by providing 
      flexible and easy to use software components. Composability is a key 
      concern of CBSE because software components collaborate with 
      difficulty in spite of the fact that they are known to be 
      compositional. Here we propose to formalize a special kind of 
      composability, based on high coupling in which fine-grained 
      components are encapsulated inside high-granularity components that 
      are deployed on the same node. We specifically study the properties 
      of the universal whole-part relationship within a composition 
      framework. We constrain composition design by means of rules derived 
      from the whole-part relationship. These constraints are used to 
      generate contracts at implementation time. Finally, we incorporate 
      built-in test functionality into components to support runtime 
      validation.}
}

@INPROCEEDINGS{Beyer03-QueryingStructures,
   AUTHOR       = {Dirk Beyer and Andres Noack and Claus Lewerentz},
   BOOKTITLE    = {Proceedings of the 10<sup>th</sup> Working Conference on Reverse Engineering},
   TITLE        = {Simple and Efficient Relational Querying of Software 
      Structures},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Eleni Stroulia and van Deursen, Arie},
   MONTH        = {November},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {216--225},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://citeseer.ist.psu.edu/beyer03simple.html},
   ABSTRACT     = {Many analyses of software systems can be formalized as 
      relational queries, for example the detection of design patterns, of 
      patterns of problematic design, of code clones, of dead code, and of 
      differences between the as-built and the as-designed architecture. 
      This paper describes the concepts of CrocoPat, a tool for querying 
      and manipulating relations. CrocoPat is easy to use, because of its 
      simple query and manipulation language based on predicate calculus, 
      and its simple file format for relations. CrocoPat is efficient, 
      because it internally represents relations as binary decision 
      diagrams, a data structure that is well-known as a compact 
      representation of large relations in computer-aided verification. 
      CrocoPat is general, because it manipulates not only graphs (i.e. 
      binary relations), but n-ary relations.}
}

@INPROCEEDINGS{Bieman03-DPandChangeProneness,
   AUTHOR       = {James Bieman and Greg Straw and Huxia Wang and 
      P. Willard Munger and Roger T. Alexander},
   BOOKTITLE    = {Proceedings of the 9<sup>th</sup> international Software Metrics Symposium},
   TITLE        = {Design Patterns and Change Proneness: An Examination of 
      Five Evolving Systems},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Michael Berry and Warren Harrison},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {40--49},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http:// csdl.computer.org/comp/proceedings/metrics/2003/1987/00/ 19870040abs.htm},
   ABSTRACT     = {Design patterns are recognized, named solutions to 
      common design problems. The use of the most commonly referenced 
      design patterns should promote adaptable and reusable program code. 
      When a system evolves, changes to code involving a design pattern 
      should, in theory, consist of creating new concrete classes that are 
      extensions or subclasses of previously existing classes. Changes 
      should not, in theory, involve direct modifications to the classes in 
      prior versions that play roles in a design patterns. We studied five 
      systems, three proprietary systems and two open source systems, to 
      identify the observable effects of the use of design patterns in 
      early versions on changes that occur as the systems evolve. In four 
      of the five systems, pattern classes are more rather than less change 
      prone. Pattern classes in one of the systems were less change prone. 
      These results held up after normalizing for the effect of class size 
      --- larger classes are more change prone in two of the five systems. 
      These results provide insight into how design patterns are actually 
      used, and should help us to learn to develop software designs that 
      are more easily adapted.}
}

@INPROCEEDINGS{Casanova03-EvolutionComponent,
   AUTHOR       = {Miro Casanova and van der Straeten, Ragnhild},
   BOOKTITLE    = {Proceedings of the 7<sup>th</sup> Conference on Software Maintenance and Reengineering},
   TITLE        = {Supporting Evolution in Component-based Software 
      Development Using Component Libraries},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {van den Brand, Mark and Tibor Gyimothy},
   MONTH        = {January},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://ssel.vub.ac.be/Members/RagnhildVDS/research.htm}
}

@INPROCEEDINGS{Consel03-ClientServerDSL-ASE,
   AUTHOR       = {Charles Consel and Laurent Réveillère},
   BOOKTITLE    = {Proceedings of the 18th IEEE International Conference on Automated Software Engineering (ASE 2003)},
   TITLE        = {A Programmable Client-Server Model: Robust Extensibility 
      via DSLs.},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {70-79},
   PUBLISHER    = {IEEE Computer Society},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Czarnecki03-ModelTransformationClassification,
   AUTHOR       = {Krzysztof Czarnecki and Simon Helsen},
   BOOKTITLE    = {Proceedings of the $2{nd}$ OOPSLA workshop on Generative Techniques in the Context of Model-driven Architecture},
   TITLE        = {Classification of Model Transformation Approaches},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Jorn Bettin and van Emde Boas, Ghica and Aditya Agrawal and 
      Ed Willink and Jean Bezivin},
   MONTH        = {October},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.swen.uwaterloo.ca/~kczarnec/ECE750T7/czarnecki_helsen.pdf},
   ABSTRACT     = {The Model-Driven Architecture is an initiative by the 
      Object Management Group to automate the generation of 
      platform-specific models from platformindependent models. While there 
      exist some well-established standards for modeling platform models, 
      there is currently no matured foundation for specifying 
      transformations between such models. In this paper, we propose a 
      possible taxonomy for the classification of several existing and 
      proposed model transformation approaches. The taxonomy is described 
      with a feature model that makes the different design choices for 
      model transformations explicit. Based on our analysis, we propose a 
      few major categories in which most model transformation approaches 
      fit.}
}

@INPROCEEDINGS{David03-SelfAdaptativeComponents,
   AUTHOR       = {Pierre-Charles David and Thomas Ledoux},
   BOOKTITLE    = {Proceedings of the 4<sup>th</sup> Conference on Distributed Applications and Interoperable Systems},
   TITLE        = {Towards a Framework for Self-Adaptive Component-Based 
      Applications},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Jean-Bernard Stefani and Isabelle Demeure and 
      Daniel Hagimont},
   MONTH        = {November},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {1--14},
   PUBLISHER    = {Springer-Verlag},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://arcad.essi.fr/publications/final-Paper-037.pdf},
   ABSTRACT     = {Given today's fast pace of technological evolutions and 
      diversity of computing platforms, building applications which can 
      work in such a wide range of systems is becoming more and more 
      challenging. To deal with this situation, applications must be 
      \emph{self-adaptive}, that is adapt themselves to their environment 
      and its evolutions. The goal of our works is to enable systematic 
      development of self-adaptive component-based applications using the 
      Separation of Concerns principle: we consider \emph{adaptation to a 
      specific execution context and its evolutions} as a concern which 
      should be treated separately from the rest of an application. In this 
      paper, we first present the general approach we propose and the 
      corresponding development framework and tools we are developing to 
      support it. Then, in order to validate this approach, we show how a 
      small component-based application can be made self-adaptive using our 
      approach.}
}

@INPROCEEDINGS{Eden03-IntentionLocality,
   AUTHOR       = {Amnon H. Eden and Rick Kazman},
   BOOKTITLE    = {Proceedings of the 25<sup>th</sup> International Conference on Software Engineering},
   TITLE        = {Architecture, Design, Implementation},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Laurie Dillon and Walter Tichy},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {149--159},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.eden-study.org/publications.html},
   ABSTRACT     = {The terms architecture, design, and implementation are 
      typically used informally in partitioning software specifications 
      into three coarse strata of abstraction. Yet these strata are not 
      well-defined in either research or practice, causing miscommunication 
      and needless debate. To remedy this problem we formalize the 
      Intension and the Locality criteria, which imply that the distinction 
      between architecture, design, and implementation is qualitative and 
      not merely quantitative. We demonstrate that architectural styles are 
      intensional and non-local; that design patterns are intensional and 
      local; and that implementations are extensional and local.}
}

@INPROCEEDINGS{Eichelberger03-GoodDesign,
   AUTHOR       = {Holger Eichelberger},
   BOOKTITLE    = {Proceedings of the 1<sup>st</sup> symposium on Software Visualization},
   TITLE        = {Nice Class Diagrams Admit Good Design?},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {John T. Stasko},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {159--168},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://rw4.cs.uni-sb.de/~diehl/softvis/org/softvis03/papers.html},
   ABSTRACT     = {Analysis and design of programs by using has emerged to 
      a standard technique in object-oriented software engineering. Many of 
      these tools claim to implement methods according to the UML{} 
      standard and some of the tools provide automatic layout of the 
      diagrams drawn by the user or generated automatically from source 
      code. In this paper, we propose a set of aesthetic criteria for UML{} 
      class diagrams and discuss the relation between these criteria, 
      human--computer interaction (HCI) and design aspects of object 
      oriented software. First, we describe critics from the viewpoint of 
      HCI to the UML{} notation and restrict ourselves to changes which do 
      not require non-standard modifications to the UML{} notation guide, 
      then we list quality relations between class diagrams and 
      object-oriented software models. After that our set of aesthetic 
      criteria, that reflect the highly sophisticated structural and 
      semantic features of UML{} class diagrams, is explained. Finally, we 
      we show that an implementation and measurment of this proposal is 
      realizable using a prototypical graph drawing framework.}
}

@INPROCEEDINGS{Ghoniem03-MatricesClusters,
   AUTHOR       = {Mohammad Ghoniem and Jean-Daniel Fekete},
   BOOKTITLE    = {actes de la 15<sup>e</sup> conférence sur l'Interaction Homme--Machine},
   TITLE        = {Visualisation matricielle des graphes et manipulation 
      directe de hiérarchies de clusters},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Éric Brangier and Christophe Kolski},
   MONTH        = {novembre},
   NOTE         = {Soumis pour publication.},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Ghoniem03-VisualisingConstraints,
   AUTHOR       = {Mohammad Ghoniem and Narendra Jussien and 
      Jean-Daniel Fekete},
   BOOKTITLE    = {Proceedings of the 3<sup>rd</sup> CP workshop on User-Interaction in Constraint Satisfaction},
   TITLE        = {Visualizing Explanations to Exhibit Dynamic Structure in 
      Constraint Problems},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Barry O'Sullivan and Eugene C. Freuder},
   MONTH        = {September--October},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {1--15},
   PUBLISHER    = {Cork Constraint Computation Centre, Department of Computer Science, University College Cork},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.lri.fr/~fekete/ps/prop-uics03.pdf},
   ABSTRACT     = {In this paper, we introduce new visualization tools for 
      explanations generated during search in a constraint program. 
      Explanations are a very powerful tool for exhibiting dynamic 
      interactions and relations appearing only during search. Moreover, we 
      show that classical information that can be gathered in standard 
      solvers does not allow retrieving this dynamic behavior thus 
      advocating for the embedding of explanations within existing 
      constraint solvers.}
}

@INPROCEEDINGS{Grant03-RefactoringUsingSourceTransformation,
   AUTHOR       = {Scott Grant and James R. Cordy},
   BOOKTITLE    = {Proceedings of the First International Workshop on Refactoring: Achievements, Challenges, Effects (REFACE'03)},
   TITLE        = {An Interactive Interface for Refactoring Using Source 
      Transformation},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   MONTH        = {November},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {30--33},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {citeseer.ist.psu.edu/647938.html}
}

@INPROCEEDINGS{Heuzeroth03-GeneratingDesignPatternDetectors,
   AUTHOR       = {Dirk Heuzeroth and Welf Löwe and Stefan Mandel},
   BOOKTITLE    = {18th IEEE International Conference on Automated Software Engineering (ASE) 2003},
   TITLE        = {Generating Design Pattern Detectors from Pattern 
      Specifications},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {IEEE},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Hummer03-XCube,
   AUTHOR       = {Wolfgang Hümmer and Andreas Bauer and Gunnar Harde},
   BOOKTITLE    = {Proceedings of the <sup>6th</sup> International Workshop on Data Warehousing and OLAP},
   TITLE        = {XCube -- XML for Data Warehouses},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Stefano Rizzi and Il-Yeol Song},
   MONTH        = {November},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {33--40},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/ft_gateway.cfm?id=956067},
   ABSTRACT     = {Data warehouse systems are nowadays a well known and 
      widely spread approach for supporting management decisions. In 
      several companies or even across companies the idea of integrating 
      several data warehouses into a virtual or federated data warehouse is 
      of growing interest. But the technical and semantic problems are very 
      demanding. An essential part for solving this problem is a 
      standardized, vendor independent format for describing 
      multidimensional data. This paper introduces XCube, a family of XML 
      based document templates to exchange data warehouse data, 
      \textit{i.e.}, data cubes, over any kind of network. XCube is 
      organized in a modular fashion, so the multidimensional schema, the 
      descriptions of the single dimensions and the fact data itself can be 
      transmitted in separate steps. In addition to the describing formats 
      XCube also offers two kinds of dynamic document types that can be 
      used to explore the (multidimensional) content of another warehouse 
      in a vendor independent way. They are primarily meant to reduce the 
      amount of data transferred over the network}
}

@INPROCEEDINGS{Jussien03-GEMSTIC,
   AUTHOR       = {Narendra Jussien},
   BOOKTITLE    = {actes du colloque GEMSTIC},
   TITLE        = {Programmation par contraintes pour les technologies 
      logicielles},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Gilles Muller},
   MONTH        = {avril},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {Groupe des Ecoles des Mines},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.emn.fr/x-info/jussien/publications/jussien-GEMSTIC03.pdf},
   ABSTRACT     = {La programmation par contraintes, discipline au 
      carrefour de l'intelligence artificielle, de la recherche 
      op\'erationnelle et de l'analyse num\'erique a fait ses preuves pour 
      la r\'esolution de probl\`emes combinatoires complexes dans le 
      domaine de l'aide \`a la d\'ecision. De nouveaux champs 
      d'applications apparaissent, en particulier dans le domaine du 
      g\'enie logiciel. Au travers de quelques exemples (notamment 
      l'identification et la correction de motifs de conception approch\'es 
      et la r\'ealisation d'applications dans un contexte anytime), nous 
      montrons les apports et les perspectives de l'utilisation de la 
      programmation par contraintes dans le domaine du g\'enie logiciel.}
}

@INPROCEEDINGS{Lanza03-CodeCrawler,
   AUTHOR       = {Michele Lanza},
   BOOKTITLE    = {Proceedings of the 7<sup>th</sup> Conference on Software Maintenance and Reengineering},
   TITLE        = {CodeCrawler---Lessons Learned in Building a Software 
      Visualization Tool},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {van den Brand, Mark and Tibor Gyimothy},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {409--418},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://csdl.computer.org/comp/proceedings/csmr/2003/1902/00/19020409abs.htm},
   ABSTRACT     = {Software visualization tools face many challenges in 
      terms of their implementation, including scalability, usability, 
      adaptability, and durability. Such tools, like many other research 
      tools, tend to have a short life cycle and are vulnerble to software 
      evolution processes because of the complex problem domain and the 
      constantly changing requirements which are dictated by research 
      goals. In this paper we discuss the implementation of the software 
      visualization tool CodeCrawler according to five criteria, namely the 
      overall architecture, the internal architecture, the visualization 
      engine, the metamodel and the interactive facilities. This discussion 
      generates implementation recommendations and design guidelines that 
      hold for our tool and the class of tools its stands for. We then also 
      extract common design guidelines and recommendations that apply for 
      other software visualization and general reverse engineering tools as 
      well, and hope that these insights can be used fruitfully by other 
      researchers in this field.}
}

@INPROCEEDINGS{Mens03-BeyondRefactoringBrowser,
   AUTHOR       = {Tom Mens and Tom Tourwé and F. Muñoz},
   BOOKTITLE    = {Proceedings of the International Workshop on Principles of Software Evolution IWPSE 2003.},
   TITLE        = {Beyond the Refactoring Browser: Advanced Tool Support 
      for Software Refactoring},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {39-44},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {citeseer.ist.psu.edu/article/mens03beyond.html}
}

@INPROCEEDINGS{Niere03-HandlingAssociations,
   AUTHOR       = {Jörg Niere and Jörg P. Wadsack and Lothar Wendehals},
   BOOKTITLE    = {Proceedings of the 11<sup>th</sup> International Workshop on Program Comprehension},
   TITLE        = {Handling Large Search Space in Pattern-based Reverse 
      Engineering},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Ken Wong and Rainer Koschke},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {274-280},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://portal.acm.org/citation.cfm?id=857020},
   ABSTRACT     = {Large industrial legacy systems are challenges of 
      reverse-engineering activities. Reverse-engineering approaches use 
      text-search tools based on regular expressions or work on graph 
      representations of programs, such as abstract syntax graphs. 
      Analyzing large legacy systems often fail because of the large search 
      space. Our approach to handle large searchspace in pattern-based 
      reverse engineering is to allow imprecise results in means of false 
      positives. We use the theory of fuzzy sets to express impreciseness 
      and present our approachon the example of recovering associations.}
}

@INPROCEEDINGS{Rilling03-ComprehensionBottlenecks,
   AUTHOR       = {Juergen Rilling and Tuomas Klemola},
   BOOKTITLE    = {Proceedings of the 11<sup>th</sup> International Workshop on Program Comprehension},
   TITLE        = {Identifying Comprehension Bottlenecks Using Program 
      Slicing and Cognitive Complexity Metrics},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Rainer Koschke and Kenny Wong},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {115--124},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=1199195},
   ABSTRACT     = {Achieving and maintaining high software quality is most 
      dependent on how easily the software engineer least familiar with the 
      system can understand the system's code. Understanding attributes of 
      cognitive processes can lead to new software metrics that allow the 
      prediction of human performance in software development and for 
      assessing and improving the understandability of text and code. In 
      this research we present novel metrics based on current understanding 
      of short-term memory performance to predict the location of high 
      frequencies of errors and to evaluate the quality of a software 
      system. We further enhance these metrics by applying static and 
      dynamic program slicing to provide programmers with additional 
      guidance during software inspection and maintenance efforts.}
}

@INPROCEEDINGS{Schechter03-TrustedP2P,
   AUTHOR       = {Stuart E. Schechter and Rachel A. Greenstadt and 
      Michael D. Smith},
   BOOKTITLE    = {Proceedings of the 2<sup>nd</sup> workshop on Economics and Computing},
   TITLE        = {Trusted Computing, Peer-to-Peer Distribution, and the 
      Economics of Pirated Entertainment},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Sorlin03-SimilariteGraphesEtiquetes,
   AUTHOR       = {Sébastien Sorlin and Pierre-Antoine Champin and 
      Christine Solnon},
   BOOKTITLE    = {actes des 9<sup>e</sup> Journées Nationales sur la résolution de Problèmes NP-Complets},
   TITLE        = {Mesurer la similarité de graphes étiquetés},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Chu-Min Li},
   MONTH        = {juin},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {91--107},
   PUBLISHER    = {Hermès Science Publications},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://liris.cnrs.fr/publis/?id=1187},
   ABSTRACT     = {Cet article s'int\'eresse au probl\`eme de mesurer la 
      similarit\'e de graphes orient\'es \'etiquet\'es, i.e., des graphes 
      tels que chaque arc et chaque sommet poss\`edent un ensemble 
      d'\'etiquettes (de caract\'eristiques). Nous d\'efinissons tout 
      d'abord le probl\`eme du calcul de la similarit\'e de deux graphes 
      \'etiquet\'es comme la recherche d'un meilleur appariement de leurs 
      sommets. Ce probl\`eme se distingue du probl\`eme de l'isomorphisme 
      de graphes par le fait que ces appariements autorisent la mise en 
      correspondance d'un sommet d'un graphe avec 0, 1 ou plusieurs autres 
      sommets de l'autre graphe. Nous \'etudions ensuite la complexit\'e de 
      notre probl\`eme, et nous proposons deux algorithmes : un algorithme 
      bas\'e sur une exploration compl\`ete par ``s\'eparation et 
      \'evaluation'', et un algorithme glouton.}
}

@INPROCEEDINGS{SeguraDevillechaise03-MicroDyner,
   AUTHOR       = {Marc Ségura-Devillechaise and Jean-Marc Menaud},
   BOOKTITLE    = {RSTI -- L'objet},
   TITLE        = {$\mu$Dyner -- Un noyau efficace pour le tissage 
      dynamique d'aspects sur processus natif en cours d'exécution},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Jean-Pierre Briot},
   MONTH        = {février},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {119--133},
   PUBLISHER    = {Hermès},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://marc.seguradevillech.free.fr/}
}

@INPROCEEDINGS{Walenstein03-CognitiveSupport,
   AUTHOR       = {Andrew Walenstein},
   BOOKTITLE    = {Proceedings of the 11<sup>th</sup> International Workshop on Program Comprehension},
   TITLE        = {Observing and Measuring Cognitive Support: Steps Toward 
      Systematic Tool Evaluation and Engineering},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Rainer Koschke and Ken Wong},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {185--194},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=1199202},
   ABSTRACT     = {A key desideratum for many software comprehension tools 
      is to reduce the mental burdens of software engineers. That is, the 
      tools should support cognition. This key benefit is difficult to 
      directly observe and measure, so evaluating such tools has been 
      problematic. This paper describes an investigation into the 
      application of distributed cognition theories to analyzing and 
      observing cognitive support. Theories of cognitive support are used 
      to generate an analysis of potential cognitive benefits provided by 
      the compilation-error tracking facilities of a commercial software 
      development environment. This analysis is used to generate a scheme 
      for coding user observations such that cognitive support related 
      activity can be tracked. Experiences in applying the technique on 
      data from a field study are reported. The study also serves to 
      provide a glimpse into the ways that programmers and tools cooperate. 
      Implications are drawn for future practices of tool evaluation and 
      engineering.}
}

@INPROCEEDINGS{Zhao-UnderstandingRequirementImplementation,
   AUTHOR       = {Wei Zhao and Lu Zhang and Yin Liu and Jing Luo and 
      Jiasu Sun},
   BOOKTITLE    = {Proceedings of the 10<sup>th</sup> Asia-Pacific Software Engineering Conference},
   TITLE        = {Understanding How the Requirements are Implemented in 
      Source Code},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Pornsiri Muenchaisri and Doo-hwan Bae},
   MONTH        = {December},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {68--77},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1254359},
   ABSTRACT     = {For software maintenance and evolution, a common problem 
      is to understand how each requirement is implemented in the source 
      code. The basic solution of this problem is to find the fragment of 
      source code that is corresponding to the implementation of each 
      requirement. This can be viewed as a requirement-slicing problem - 
      slicing the source code according to each individual requirement. We 
      present an approach to find the set of functions that is 
      corresponding to each requirement. The main idea of our method is to 
      combine the information retrieval technology with the static analysis 
      of source code structures. First, we retrieve the initial function 
      sets through some information retrieval model using functional 
      requirements as the queries and identifier information (such as 
      function names, parameter names, variable names etc.) of functions in 
      the source code as target documents. Then we complement each 
      retrieved initial function set by analyzing the call graph extracted 
      from the source code. A premise of our approach is that programmers 
      should use meaningful names as identifiers. Furthermore, we perform 
      an experimental study based on a GNU system. We use two basic 
      metrics: precision and recall (which are the common practice in the 
      information retrieval field), to evaluate our approach. We also 
      compare the results directly acquired from information retrieval with 
      those that are complemented through static source code structure 
      analysis.}
}

@INPROCEEDINGS{Ziane03-FormalizingDPDecoupling,
   AUTHOR       = {Mikal Ziane and Gilles Ardourel and Marianne Huchard and 
      Salima Chantit},
   BOOKTITLE    = {Proceedings of the 1<sup>st</sup> OOIS Workshop on Encapsulation and Access Rights in Object-Oriented Design and Programming},
   TITLE        = {Formalizing the Decoupling Constraints of Design 
      Patterns},
   YEAR         = {2003},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Gilles Ardourel and Hernan Astudillo and Daniel Bardou and 
      Marianne Huchard and Günter Kniesel},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {45--54},
   PUBLISHER    = {Springer-Verlag},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://www.lirmm.fr/~ardourel/WEAR/wear03Ziane.pdf},
   ABSTRACT     = {In this paper we adapt the Access Graph notation of 
      Ardourel and Huchard for static access rights to express decoupling 
      constraints. These constraints are pervasive in design patterns 
      albeit in a very informal and often not very explicit way. This new 
      formalism will be used in the RNTL LUTIN project to detect design 
      problems and propose solutions using program or model 
      transformations.}
}

@TECHREPORT{Hahsler03-QuantitativeStudyDesignPatterns,
   AUTHOR       = {Michael Hahsler},
   INSTITUTION  = {University of Wien},
   TITLE        = {A Quantitative Study of the Application of Design 
      Patterns in Java},
   YEAR         = {2003},
   OPTADDRESS   = {},
   MONTH        = {January},
   OPTNOTE      = {},
   NUMBER       = {1/2003},
   OPTTYPE      = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://citeseer.ist.psu.edu/hahsler03quantitative.html},
   ABSTRACT     = {Using design patterns is a widely accepted method to 
      improve software development. There are many benefits of the 
      application of patterns claimed in the literature. The most cited 
      claim is that design patterns can provide a common design vocabulary 
      and therefore improve greatly communication between software 
      designers. Most of the claims are supported by experiences reports of 
      practitioners, but there is a lack of quantitative research 
      concerning the actual application of design patterns and about the 
      realization of the claimed benefits. In this paper we analyze the 
      development process of over 1000 open source software projects using 
      version control information. We explore this information to gain an 
      insight into the differences of software development with and without 
      design patterns. By analyzing these differences we provide evidence 
      that design patterns are used for communication and that there is a 
      significant difference between developers who use design patterns and 
      who do not.}
}

@MANUAL{Aivosto-Metrics,
   TITLE        = {Project Metrics in Project Analyzer},
   OPTADDRESS   = {},
   OPTAUTHOR    = {},
   OPTEDITION   = {},
   OPTMONTH     = {},
   NOTE         = {http://www.aivosto.com/project/help/pm-oo-ck.html},
   OPTORGANIZATION = {},
   YEAR         = {2003},
   INSTITUTION  = {Aivosto Oy},
   PUBLISHER    = {Project Analyzer Help Contents}
}

@MANUAL{Fekete03-InfoVisToolkit,
   TITLE        = {The InfoVis Toolkit},
   OPTADDRESS   = {},
   AUTHOR       = {Jean-Daniel Fekete},
   OPTEDITION   = {},
   MONTH        = {May},
   OPTNOTE      = {},
   ORGANIZATION = {INRIA Futurs},
   YEAR         = {2003},
   URL          = {http://ivtk.sourceforge.net/}
}

@MANUAL{OMG03-UML,
   TITLE        = {UML v1.5 Specification},
   OPTADDRESS   = {},
   AUTHOR       = {Object Management Group},
   OPTEDITION   = {},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTORGANIZATION = {},
   YEAR         = {2003},
   URL          = {http://www.omg.org/cgi-bin/doc?formal/03-03-01}
}

@MANUAL{Wolfe03-Thesis,
   TITLE        = {How to write a Ph.D. thesis -- How to survive a thesis 
      defence},
   OPTADDRESS   = {},
   AUTHOR       = {Joe Wolfe},
   OPTEDITION   = {},
   MONTH        = {April},
   OPTNOTE      = {},
   ORGANIZATION = {University of New South Wales},
   YEAR         = {2003},
   URL          = {http://www.phys.unsw.edu.au/~jw/thesis.html}
}

@MASTERSTHESIS{Bendraou03-MigrationSI,
   AUTHOR       = {Reda Bendraou},
   SCHOOL       = {LRI, Université de Paris-Sud XI},
   TITLE        = {Élaboration d'un méta-modèle pivot pour la migration de 
      SI basée sur la transformation de modèles},
   YEAR         = {2003},
   OPTADDRESS   = {},
   MONTH        = {septembre},
   OPTNOTE      = {},
   OPTTYPE      = {}
}

@MISC{Brooks03-MSSharedSource,
   AUTHOR       = {Leon Brooks},
   OPTHOWPUBLISHED = {},
   MONTH        = {February},
   OPTNOTE      = {},
   TITLE        = {Picking up your marbles},
   YEAR         = {2003},
   URL          = {http://linux.org.au/~leonb/articles/picking-up-your-marbles.html},
   ABSTRACT     = {A new weapon in the war against subtle marketing 
      misdirection is now available. Make the shortcomings of Shared Source 
      absolutely clear. Help wanted, of course, to sharpen this defensive 
      weapon even more.}
}

@MISC{Auknomi03-WEKA,
   AUTHOR       = {Auknomi Co.},
   OPTHOWPUBLISHED = {},
   OPTMONTH     = {},
   NOTE         = {http://www.auknomi.com/categorical_learners.html},
   TITLE        = {software development methodology},
   YEAR         = {2003},
   PUBLISHER    = {Automatic Knowledge Miner}
}

@MISC{DGTIC03-ModemAccessUdeM,
   AUTHOR       = { DGTIC},
   OPTHOWPUBLISHED = {},
   MONTH        = {décembre},
   OPTNOTE      = {},
   TITLE        = {Configuration des paramètres réseau sous Windows 2000},
   YEAR         = {2003},
   URL          = {http://www.dgtic.umontreal.ca/html/capsules/capsules.asp?categorie_id=3#ParcModem}
}

@MISC{Denzinger02-ClassDiagrams,
   AUTHOR       = {Jörg Denzinger},
   OPTHOWPUBLISHED = {},
   MONTH        = {February},
   OPTNOTE      = {},
   TITLE        = {CPSC 333/SENG 311: Foundations of Software Engineering},
   YEAR         = {2003},
   URL          = {http:// pages.cpsc.ucalgary.ca/~denzinge/courses/333-winter2002/materials.html},
   ABSTRACT     = {Introduction to software development problems and to the 
      processes and methods used to address them. Software life cycle 
      models. Software process improvement. Goals and methods for 
      requirements analysis and specification, software design, 
      implementation, integration and testing of software. An introduction 
      to one or more informal methods (focusing on object-oriented 
      approaches) currently in widespread use.}
}

@MISC{Guyon03-Memory,
   AUTHOR       = {Mathieu Guyon},
   OPTHOWPUBLISHED = {},
   MONTH        = {novembre},
   NOTE         = {Cours de psychologie cognitive.},
   TITLE        = {La mémoire},
   YEAR         = {2003}
}

@MISC{Guyon03-WorkingMemory,
   AUTHOR       = {Mathieu Guyon},
   OPTHOWPUBLISHED = {},
   MONTH        = {novembre},
   NOTE         = {Cours de psychologie cognitive.},
   TITLE        = {Le concept de mémoire de travail},
   YEAR         = {2003}
}

@MISC{Guyon03-Multimedia,
   AUTHOR       = {Mathieu Guyon},
   OPTHOWPUBLISHED = {},
   MONTH        = {novembre},
   NOTE         = {Cours de psychologie cognitive.},
   TITLE        = {Le traitement cognitif des documents multimédias},
   YEAR         = {2003}
}

@MISC{Guyon03-Attention,
   AUTHOR       = {Mathieu Guyon},
   OPTHOWPUBLISHED = {},
   MONTH        = {novembre},
   NOTE         = {Cours de psychologie cognitive.},
   TITLE        = {Les mécanismes attentionnels},
   YEAR         = {2003}
}

@MISC{Habrias03-DroitInformatique,
   AUTHOR       = {Henry Habrias},
   OPTHOWPUBLISHED = {},
   MONTH        = {avril},
   OPTNOTE      = {},
   TITLE        = {Journée Droit et Informatique},
   YEAR         = {2003},
   URL          = {http:// www.iut-nantes.univ-nantes.fr/ ~habrias/dessGledn/JourneeDu4Avril.html},
   ABSTRACT     = {Journ\'ee \`a laquelle sont invit\'es les informaticiens 
      "professionnels", les enseignants de droit et d'informatique, les 
      professionnels du droit et les \'etudiants, journ\'ee qui traitera de 
      ce qu'un responsable de service informatique a \`a savoir en 
      mati\`ere de droit dans son activit\'e professionnelle (le 
      d\'eveloppement de logiciels).}
}

@MISC{Huchard03-HDR,
   AUTHOR       = {Marianne Huchard},
   OPTHOWPUBLISHED = {},
   MONTH        = {Mars},
   OPTNOTE      = {},
   TITLE        = {Curriculum Vitae et sélection d'articles},
   YEAR         = {2003}
}

@MISC{LeHit03-DeclinRecherche,
   AUTHOR       = {Le Hir, Pierre},
   OPTHOWPUBLISHED = {},
   MONTH        = {mars},
   OPTNOTE      = {},
   TITLE        = {La recherche française dans la spirale du déclin},
   YEAR         = {2003},
   URL          = {http://www.lemonde.fr/article/0,5987,3244--312497-,00.html},
   ABSTRACT     = {Alors que l'Am\'erique, le Japon et d'autres pays 
      europ\'eens misent r\'esolument sur la science et la technologie, la 
      France prend un retard inqui\'etant. Cr\'edits en forte baisse, 
      performances d\'egrad\'ees, crise des vocations scientifiques... Le 
      syst\`eme national de recherche s'interroge sur son avenir.}
}

@MISC{MerriamWebster03-Dictionnary,
   AUTHOR       = { Merriam-Webster},
   OPTHOWPUBLISHED = {},
   MONTH        = {March},
   OPTNOTE      = {},
   TITLE        = {Merriam-Webster Online Dictionary},
   YEAR         = {2003},
   URL          = {www.merriam-webster.com/},
   ABSTRACT     = {A handy, reliable and authoritative dictionary that 
      provides a wealth of information about the words most frequently used 
      in English. This book is packed with features you would only expect 
      to find in larger dictionaries, with more than 70,000 definitions and 
      150 illustrations. The great go-anywhere, look-it-up-fast language 
      reference including the core vocabulary of everyday life: 
      \begin{itemize} \item Over 70,000 clear, concise definitions. \item 
      Authoritative pronunciations. \item Special sections and tables. 
      \end{itemize}}
}

@MISC{Seaton03-BlastFromPast,
   AUTHOR       = {Matt Seaton},
   OPTHOWPUBLISHED = {},
   MONTH        = {February},
   OPTNOTE      = {},
   TITLE        = {Blast from the past},
   YEAR         = {2003},
   URL          = {http://www.guardian.co.uk/g2/story/0,3604,898341,00.html},
   ABSTRACT     = {Politicians on both sides of the argument over Iraq have 
      been busy rummaging through the history books. The pro-war camp 
      constantly warn against repeating the mistakes of appeasement. The 
      antis claim we are heading for another Suez. But which is the more 
      plausible parallel? Matt Seaton asked a dozen leading historians .}
}

@MISC{Venners03-JamesGosling,
   AUTHOR       = {Bill Venners},
   OPTHOWPUBLISHED = {},
   MONTH        = {June},
   NOTE         = {Analyze this! Series.},
   TITLE        = {A Conversation with James Gosling -- Part},
   YEAR         = {2003},
   URL          = {http://www.artima.com/intv/jackpot.html},
   ABSTRACT     = {James Gosling talks with Bill Venners about his current 
      research project, code-named Jackpot, which builds annotated parse 
      trees for programs and can help you analyze, visualize, and refactor 
      your program.}
}

@MISC{GoogleWatch03-GoogleBigBrother,
   AUTHOR       = {Google Watch},
   OPTHOWPUBLISHED = {},
   MONTH        = {March},
   OPTNOTE      = {},
   TITLE        = {We nominated Google for the 2003 U.S. coporate Big 
      Brother of the Year},
   YEAR         = {2003},
   URL          = {http://www.google-watch.org/bigbro.html},
   ABSTRACT     = {It's not that we believe Google is evil. What we believe 
      is that Google, Inc. is at a fork in the road, and they have some big 
      decisions to make. This Google Watch site is trying to articulate, 
      publicize, and even dramatize the situation at Google, and encourage 
      more scrutiny of their operations. By doing this, we hope to play a 
      small part in maintaining the web as an information tool that is more 
      useful for the masses, than it is for the elites.}
}

@MISC{LeMonde03-EchecAmericain,
   AUTHOR       = {du Monde, L'éditorial},
   OPTHOWPUBLISHED = {},
   MONTH        = {mars},
   OPTNOTE      = {},
   TITLE        = {Echec américain},
   YEAR         = {2003},
   URL          = {http://www.lemonde.fr/article/0,5987,3208--313334-,00.html},
   ABSTRACT     = {Peut-\^etre tout se d\'eroulera-t-il selon le meilleur 
      sc\'enario possible pour les Etats-Unis : sous la pression de 
      l'ultimatum lanc\'e lundi 17 mars par George W. Bush, l'arm\'ee 
      irakienne pourrait tenter un coup d'Etat qui permettrait aux forces 
      am\'ericaines d'entrer "pacifiquement" en Irak. Rien n'est moins 
      garanti. Et cela, en tout \'etat de cause, n'enl\`evera rien \`a la 
      conclusion qui s'impose : l'entr\'ee en guerre de l'Am\'erique et de 
      la Grande-Bretagne contre l'Irak, sans mandat de l'ONU, dans un geste 
      parfaitement unilat\'eral, manifeste un formidable \'echec 
      diplomatique pour le gouvernement Bush.}
}

@MISC{Azureus-Tool,
   AUTHOR       = {Open-source project},
   OPTHOWPUBLISHED = {},
   MONTH        = {June},
   NOTE         = {http://azureus.sourceforge.net/},
   TITLE        = {Azureus},
   YEAR         = {2003},
   URL          = {http://azureus.sourceforge.net/}
}

@MISC{GDT03-Dictionnaire,
   AUTHOR       = {québécois de la langue française, Office},
   OPTHOWPUBLISHED = {},
   MONTH        = {février},
   OPTNOTE      = {},
   TITLE        = {Grand dictionnaire terminologique en ligne},
   YEAR         = {2003},
   URL          = {w3.granddictionnaire.com/},
   ABSTRACT     = {\textit{Le grand dictionnaire terminologique} de 
      l'Office qu\'eb\'ecois de la langue fran\c caise est une banque de 
      donn\'ees terminologiques. On y trouve, class\'es par domaines, des 
      termes appartenant aux langues de sp\'ecialit\'es. La fiche 
      terminologique renseigne sur une notion, par la d\'efinition, les 
      notes, l'illustration, et pr\'esente les termes qui d\'esignent cette 
      notion. Le terme principal est celui que privil\'egie l'Office 
      qu\'eb\'ecois de la langue fran\c caise dans les situations de 
      communication \'ecrite. Les termes consign\'es en sous-entr\'ee 
      peuvent g\'en\'eralement \^etre employ\'es, mais leur emploi doit 
      \^etre nuanc\'e dans certains cas.}
}

@MISC{Bakel03-FormalSemantics,
   AUTHOR       = {van Bakel, Steffen},
   OPTHOWPUBLISHED = {},
   MONTH        = {January},
   OPTNOTE      = {},
   TITLE        = {Notes for Assured Software: Semantics Course Information},
   YEAR         = {2003},
   URL          = {http://www.doc.ic.ac.uk/~svb/AssuredSoftware/},
   ABSTRACT     = {These notes are based on slides prepared by Chris 
      Hankin, and to be used in the course Assured Software: Semantics 
      (2.12) at the Department of Computing, Imperial College. The notes 
      lean heavily on the book Semantics with Applications A Formal 
      Introduction by Hanne Riis Nielson and Flemming Nielson, that is 
      recommended for further reading.}
}

@UNPUBLISHED{Rapicault03-FrameworkUsage,
   AUTHOR       = {Pascal Rapicault and Mireille Blay-Fornarino and 
      Jean-Paul Rigault and Estelle Ringenbach},
   NOTE         = {},
   TITLE        = {Modelling Frameworks to Facilitate their Usage: The 
      Framework Customisation Model and the Babylon Tool},
   MONTH        = {December},
   YEAR         = {2003}
}

@BOOK{Demeyer02-OOReengineeringPatterns,
   PUBLISHER    = {Morgan Kaufmann Publishers Inc.},
   TITLE        = {Object Oriented Reengineering Patterns},
   YEAR         = {2002},
   AUTHOR       = {Serge Demeyer and Stéphane Ducasse and Oscar Nierstrasz},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   OPTEDITION   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@BOOK{Demeyer02-OOReengineeringPatterns,
   PUBLISHER    = {Morgan Kaufmann},
   TITLE        = {Object-Oriented Reengineering Patterns},
   YEAR         = {2002},
   AUTHOR       = {Serge Demeyer and Stéphane Ducasse and Oscar Nierstrasz},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   OPTEDITION   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@BOOK{SoftwareVisualization02,
   PUBLISHER    = {Springer-Verlag Berlin Heidelberg},
   TITLE        = {Software Visualization},
   YEAR         = {2002},
   ALTAUTHOR    = {},
   EDITOR       = {Stephan Diehl},
   OPTADDRESS   = {},
   OPTEDITION   = {},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@BOOK{Fowler02-PatternsEAA,
   PUBLISHER    = {Addison-Wesley Professional},
   TITLE        = {Patterns of Enterprise Application Architecture},
   YEAR         = {2002},
   AUTHOR       = {Martin Fowler},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   EDITION      = {1<sup>st</sup>},
   MONTH        = {November},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.amazon.com/Patterns-Enterprise-Application-Architecture-Martin/dp/0321127420},
   ABSTRACT     = {The practice of enterprise application development has 
      benefited from the emergence of many new enabling technologies. 
      Multi-tiered object-oriented platforms, such as Java and .NET, have 
      become commonplace. These new tools and technologies are capable of 
      building powerful applications, but they are not easily implemented. 
      Common failures in enterprise applications often occur because their 
      developers do not understand the architectural lessons that 
      experienced object developers have learned. Patterns of Enterprise 
      Application Architecture is written in direct response to the stiff 
      challenges that face enterprise application developers. The author, 
      noted object-oriented designer Martin Fowler, noticed that despite 
      changes in technology--from Smalltalk to CORBA to Java to .NET--the 
      same basic design ideas can be adapted and applied to solve common 
      problems. With the help of an expert group of contributors, Martin 
      distills over forty recurring solutions into patterns. The result is 
      an indispensable handbook of solutions that are applicable to any 
      enterprise application platform. This book is actually two books in 
      one. The first section is a short tutorial on developing enterprise 
      applications, which you can read from start to finish to understand 
      the scope of the book's lessons. The next section, the bulk of the 
      book, is a detailed reference to the patterns themselves. Each 
      pattern provides usage and implementation information, as well as 
      detailed code examples in Java or C#. The entire book is also richly 
      illustrated with UML diagrams to further explain the concepts. Armed 
      with this book, you will have the knowledge necessary to make 
      important architectural decisions about building an enterprise 
      application and the proven patterns for use when building them.}
}

@BOOK{Martin-ASDPPPracrices,
   PUBLISHER    = {},
   TITLE        = {Agile Software Development, Principles, Patterns, and 
      Practices},
   YEAR         = {2002},
   AUTHOR       = {Robert C. Martin},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   OPTEDITION   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.amazon.com/Software-Development-Principles-Patterns-Practices/dp/0135974445}
}

@BOOK{Schach02-OOSE,
   PUBLISHER    = {The McGraw-Hill Companies},
   TITLE        = {Object-Oriented and Classical Software Engineering},
   YEAR         = {2002},
   AUTHOR       = {Stephen R. Schach},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   OPTEDITION   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@BOOK{Smith02-PerformanceAntipatterns,
   PUBLISHER    = {Addison-Wesley Professional},
   TITLE        = {Performance Solutions: A Practical Guide to Creating 
      Responsive, Scalable Software},
   YEAR         = {2002},
   AUTHOR       = {Connie U. Smith and Lloyd G. Williams},
   ALTEDITOR    = {},
   ADDRESS      = {Boston, MA, USA},
   OPTEDITION   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   BOOKTITLE    = {Int. CMG Conference}
}

@BOOK{BruceTate02-BitterJava,
   PUBLISHER    = {Manning Publications},
   TITLE        = {Bitter Java},
   YEAR         = {2002},
   AUTHOR       = {Bruce A. Tate and Braden R. Flowers},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   OPTEDITION   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@BOOK{WirfsBrock02-ObjectDesignRolesResponsibilities,
   PUBLISHER    = {Addison-Wesley Professional},
   TITLE        = {Object Design: Roles, Responsibilities and 
      Collaborations},
   YEAR         = {2002},
   AUTHOR       = {Rebecca Wirfs--Brock and Alan McKean},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   OPTEDITION   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@PHDTHESIS{Marinescu02-QualityOODesign,
   AUTHOR       = {Radu Marinescu},
   SCHOOL       = {Politehnica University of Timisoara},
   TITLE        = {Measurement and Quality in Object-Oriented Design},
   YEAR         = {2002},
   OPTADDRESS   = {},
   MONTH        = {October},
   OPTNOTE      = {},
   OPTTYPE      = {},
   URL          = {www.cs.utt.ro/~radum/papers.html},
   ABSTRACT     = {The gap between qualitative and quantitative statements, 
      concerning objectoriented software design can be bridged using 
      higher-level, goal-driven methods for measurement interpretation. The 
      goal of this work is to develop methods and techniques that provide a 
      relevant interpretation of measurement results applied to the 
      investigation of object-oriented software design. In this context, 
      the central focus of this dissertation is to support the quality 
      assessment and improvement of existing object-oriented systems, by 
      bridging the gap between qualitative and quantitative statements.}
}

@PHDTHESIS{Walenstein02-CognitiveSoftwareEngineering,
   AUTHOR       = {Andrew Walenstein},
   SCHOOL       = {School of Computing Science, Simon Fraser University},
   TITLE        = {Cognitive Support in Software Engineering Tools: A 
      Distributed Cognition Framework},
   YEAR         = {2002},
   OPTADDRESS   = {},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTTYPE      = {},
   URL          = {www.cs.sfu.ca/~walenste/personal/Research/thesis.html},
   ABSTRACT     = {Software development remains mentally challenging 
      despite the continual advancement of training, techniques, and tools. 
      Because completely automating software development is currently 
      impossible, it makes sense to seriously consider how tools can 
      improve the mental activities of developers apart from automating 
      them away. Such mental assistance can be called ``cognitive support". 
      Understanding and developing cognitive support in software 
      engineering tools is an important research issue but, unfortunately, 
      at the moment our theoretical foundations for it are inadequately 
      developed. Furthermore, much of the relevant research has occurred 
      outside of the software engineering community, and is therefore not 
      easily available to the researchers who typically develop software 
      engineering tools. Tool evaluation, comparison, and development are 
      consequently impaired. The present work introduces a theoretical 
      framework intended to seed further systematic study of cognitive 
      support in the field of software engineering tools. This theoretical 
      framework, called RODS, imports ideas and methods from a field of 
      cognitive science called ``distributed cognition". The crucial 
      concept in RODS is that cognitive support can be understood and 
      explained in terms of the computational advantages that are conferred 
      when cognition is redistributed between software developer and their 
      tools and environment. The name RODS, in fact, comes from the four 
      cognitive support principles the framework describes. With RODS in 
      hand, it is possible to interpret good design in terms of how 
      cognition is beneficially rearranged. To make such analyses fruitful, 
      a cognitive modeling framework called HASTI is also proposed. The 
      main purpose of HASTI is to provide an analysis of ways of modifying 
      developer cognition using RODS. RODS and HASTI can be used to convert 
      previously tacit design knowledge into explicit and reusable 
      knowledge. RODS and HASTI are evaluated analytically by using them to 
      reconstruct rationales for two exemplar reverse engineering tools. A 
      preliminary field study was also conducted to determine their 
      potential for being inexpensively applied in realistic tool 
      development settings. These studies are used to draw implications for 
      research in software engineering and, more broadly, for the design of 
      computer tools in cognitive work domains.}
}

@INCOLLECTION{Weisert02-PseudoOOHarmful,
   AUTHOR       = {Conrad Weisert},
   BOOKTITLE    = {ACM SIGPLAN Notices},
   PUBLISHER    = {ACM Press},
   TITLE        = {Pseudo Object-Oriented Programming Considered Harmful},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCHAPTER   = {},
   OPTCROSSREF  = {},
   OPTEDITION   = {},
   OPTEDITOR    = {},
   MONTH        = {April},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   PAGES        = {31},
   OPTSERIES    = {},
   OPTTYPE      = {},
   OPTVOLUME    = {}
}

@ARTICLE{Bansiya02-QualityDesign,
   AUTHOR       = {Jagdish Bansiya and Carl G. Davis},
   JOURNAL      = {Transactions on Software Engineering},
   TITLE        = {A Hierarchical Model for Object-Oriented Design Quality 
      Assessment},
   YEAR         = {2002},
   MONTH        = {January},
   OPTNOTE      = {},
   NUMBER       = {1},
   PAGES        = {4--17},
   VOLUME       = {28},
   EDITOR       = {Anneliese A. Andrews and John Knight},
   PUBLISHER    = {IEEE Computer Society Press},
   URL          = {http://ieeexplore.ieee.org/iel5/32/21111/00979986.pdf?arnumber=979986},
   ABSTRACT     = {This paper describes an improved hierarchical model for 
      the assessment of high-level design quality attributes in 
      object-oriented designs. In this model, structural and behavioral 
      design properties of classes, objects, and their relationships are 
      evaluated using a suite of object-oriented design metrics. This model 
      relates design properties such as encapsulation, modularity, 
      coupling, and cohesion to high-level quality attributes such as 
      reusability, flexibility, and complexity using empirical and 
      anecdotal information. The relationship, or links, from design 
      properties to quality attributes are weighted in accordance with 
      their influence and importance. The model is validated by using 
      empirical and expert opinion to compare with the model results on 
      several large commercial object-oriented systems. A key attribute of 
      the model is that it can be easily modified to include different 
      relationships and weights, thus providing a practical quality 
      assessment tool adaptable to a variety of demands.}
}

@ARTICLE{BriandWust02-Quality,
   AUTHOR       = {Lionel C. Briand and Jürgen Wüst},
   JOURNAL      = {},
   TITLE        = {Empirical Studies of Quality Models in Object-Oriented 
      Systems},
   YEAR         = {2002},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   VOLUME       = {59},
   PUBLISHER    = {Advances in Computers},
   ABSTRACT     = {Measuring structural design properties of a software 
      system, such as coupling, cohesion, or complexity, is a promising 
      approach towards early quality assessments. To use such measurement 
      effectively, quality models are needed that quantitatively describe 
      how these internal structural properties relate to relevant external 
      system qualities such as reliability or maintainability. This chapter 
      has for objective to summarize, in a structured and detailed fashion, 
      the empirical results that have been reported so far with modeling 
      external system quality based on structural design properties in 
      object-oriented systems. We perform a critical review of existing 
      work in order to identify lessons learned regarding the way these 
      studies are performed and reported. Constructive guidelines are also 
      provided to facilitate the work of future studies, thus facilitating 
      the development of an empirical body of knowledge.}
}

@ARTICLE{Purchase02-UserPreferenceGraphLayout,
   AUTHOR       = {Helen C.Purchase and Jo-Anne Allder and David Carrington},
   JOURNAL      = {journal of Graph Algorithms and Applications},
   TITLE        = {Graph Layout Aesthetics in UML Diagrams: User 
      Preferences},
   YEAR         = {2002},
   MONTH        = {June},
   OPTNOTE      = {},
   NUMBER       = {3},
   PAGES        = {255--279},
   VOLUME       = {6},
   EDITOR       = {Michael Kaufmann},
   PUBLISHER    = {World Scientific Publishing},
   URL          = {http://www.cs.brown.edu/publications/jgaa/accepted/2002/PurchaseAllderCarrington2002.6.3.pdf},
   ABSTRACT     = {The merit of automatic graph layout algorithms is 
      typically judged by their computational e ciency and the extent to 
      which they conform to aesthetic criteria (for example, minimising the 
      number of crossings, maximising orthogonality). Experiments 
      investigating the worth of such algorithms from the point of view of 
      human usability can take di erent forms, depending on whether the 
      graph has meaning in the real world, the nature of the usability 
      measurement, and the e ect being investigated (algorithms or 
      aesthetics). Previous studies have investigated performance on 
      abstract graphs with respect to both aesthetics and algorithms, nding 
      support for reducing the number of crossings and bends, and 
      increasing the display of symmetry. This paper reports on preference 
      experiments assessing the e ect of in- dividual aesthetics in the 
      application domain of UML diagrams. Subjects' preferences for one 
      diagram over another were collected as quantitative data. Their 
      stated reasons for their choice were collected as qualitative data. 
      Analysis of this data enabled us to produce a priority listing of 
      aesthetics for this domain. These UML preference results reveal a 
      dif- ference in aesthetic priority from those of previous 
      domain-independent experiments.}
}

@ARTICLE{Cordy02-TXL,
   AUTHOR       = {James R. Cordy and Thomas R. Dean and Andrew J. Malton and 
      Kevin A. Schneider},
   JOURNAL      = {Journal of Information and Software Technology},
   TITLE        = {Source Transformation in Software Engineering using the 
      TXL Transformation System.},
   YEAR         = {2002},
   MONTH        = {October},
   OPTNOTE      = {},
   NUMBER       = {13},
   PAGES        = {827--837},
   VOLUME       = {44},
   KEYWORDS     = {dblp},
   URL          = {http://dblp.uni-trier.de/db/journals/infsof/infsof44.html#CordyDMS02}
}

@ARTICLE{DOF02-Patterns,
   AUTHOR       = { Data and Object Factory},
   JOURNAL      = {Data and Object Factory},
   TITLE        = {Software Design Patterns},
   YEAR         = {2002},
   OPTMONTH     = {},
   NOTE         = {http://www.dofactory.com/patterns/Patterns.aspx},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {}
}

@ARTICLE{Dong02-PatternComposition,
   AUTHOR       = {Jing Dong},
   JOURNAL      = {Journal of Object Technology},
   TITLE        = {UML Extensions for Design Pattern Compositions},
   YEAR         = {2002},
   MONTH        = {November},
   OPTNOTE      = {},
   NUMBER       = {5},
   PAGES        = {149--161},
   VOLUME       = {1},
   EDITOR       = {Richard Wiener},
   KEYWORDS     = {Design Patterns},
   PUBLISHER    = {ETH Zürich},
   URL          = {http://www.jot.fm/jot/issues/issue_2002_11/article3/index_html},
   ABSTRACT     = {Design patterns document good solutions to recurring 
      problems in a particular context. Composing design patterns may 
      achieve higher level of reuse by solving a set of problems. Design 
      patterns and their compositions are usually modeled by UML diagrams. 
      When a design pattern is applied or composed with other patterns, the 
      pattern-related information may be lost because traditional UML 
      diagrams do not track this information. Thus, it is hard for a 
      designer to identify a design pattern when it is applied or composed. 
      In this paper, we present notations to explicitly represent each 
      pattern in the applications and compositions of design patterns. The 
      notations allow us to maintain pattern-related information. Thus, a 
      design pattern is identifiable and traceable from its application and 
      composition with others.}
}

@ARTICLE{El-Emam02-OptimalClassSize,
   AUTHOR       = {Khaled El-Emam and Saida Benlarbi and Nishith Goel and 
      Walcello Melo and Hakim Lounis and Shesh N. Rai},
   JOURNAL      = {IEEE Transactions on Software Engineering},
   TITLE        = {The Optimal Class Size for Object-Oriented Software: A 
      Replicated Study},
   YEAR         = {2002},
   MONTH        = {June},
   OPTNOTE      = {},
   NUMBER       = {5},
   PAGES        = {494--509},
   VOLUME       = {28}
}

@ARTICLE{Leszak02-ClassificationEvaluationDefects,
   AUTHOR       = {Marek Leszak and Dewayne E. Perry and Dieter Stoll},
   JOURNAL      = {Journal of Systems and Software},
   TITLE        = {Classification and Evaluation of Defects in a Project 
      Retrospective},
   YEAR         = {2002},
   MONTH        = {May},
   OPTNOTE      = {},
   NUMBER       = {3},
   PAGES        = {173--187},
   VOLUME       = {61},
   URL          = {http://www.elsevier.com/locate/jss/},
   ABSTRACT     = {There are three interdependent factors that drive our 
      development processes: interval, quality and cost. As market 
      pressures continue to demand new features ever more rapidly, the 
      challenge is to meet those demands while increasing, or at least not 
      sacrificing, quality. One advantage of defect prevention as an 
      upstream quality improvement practice is the beneficial effect it can 
      have on interval: higher quality early in the process results in 
      fewer defects to be found and repaired in the later parts of the 
      process, thus causing an indirect interval reduction. We report a 
      retrospective analysis of the defect modification requests (MRs) 
      discovered while building, testing, and deploying a release of a 
      network element as part of an optical transmission network. The study 
      consists of three investigations: a root-cause defect analysis (RCA) 
      study, a process metric study, and a code complexity investigation. 
      Differing in the quantities that we anticipate to be related to found 
      defects, they all have in common the goal of identifying early 
      quality indicators. The core of this threefold study is the 
      root-cause analysis. We present the experimental design of this case 
      study in some detail and its integration into the development 
      process. We discuss the novel approach we have taken to defect and 
      root cause classification and the mechanisms we have used for 
      randomly selecting the MRs, to analyze and collecting the analyses 
      via a web interface. We present the results of our analyses of the 
      MRs and describe the defects and root causes that we found, and 
      delineate the countermeasures created either to prevent those defects 
      and their root causes or to detect them at the earliest possible 
      point in the development process. We conclude the report on the 
      root-cause analysis with lessons learned from the case study and from 
      our experiences during subsequent usage of this analysis methodology 
      for in-process measurement. Beyond the root-cause analysis, we first 
      present our findings on the correlation between defects detected and 
      the adherence to our development process. Second, we report on our 
      experience with analyzing static code properties and their relation 
      to observed defect numbers and defect densities.}
}

@ARTICLE{Mens02-Elsevier-DeclarativelyCodifiedPatterns,
   AUTHOR       = {Kim Mens and Isabel Michiels and Roel Wuyts},
   JOURNAL      = {Elsevier Journal on Expert Systems with Applications},
   TITLE        = {Supporting Software Development through Declaratively 
      Codified Programming Patterns},
   YEAR         = {2002},
   MONTH        = {November},
   OPTNOTE      = {},
   NUMBER       = {4},
   OPTPAGES     = {},
   VOLUME       = {23},
   PUBLISHER    = {Lecture Notes in Computer Science (LNCS)},
   ABSTRACT     = {In current-day software development, programmers often 
      use programming patterns to clarify their intents and to increase the 
      understandability of their programs. Unfortunately, most software 
      development environments do not adequately support the declaration 
      and use of such patterns. To explicitly codify these patterns, we 
      adopt a declarative meta programming approach. In this approach, we 
      reify the structure of a (object-oriented) program in terms of logic 
      clauses. We declare programming patterns as logic rules on top of 
      these clauses. By querying the logic system, these rules allow us to 
      check, enforce and search for occurrences of certain patterns in the 
      software. As such, the programming patterns become an active part of 
      the software development and maintenance environment.}
}

@ARTICLE{CBRonline02-Scalability,
   AUTHOR       = {CBR Online},
   JOURNAL      = {Computer Business review Online, CBR Online},
   TITLE        = {Scalability From The Edge},
   YEAR         = {2002},
   MONTH        = {June},
   NOTE         = {http://www.computerbusinessreview.com/ research_centres/211c881c603dab2780256d35003325b7},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   KEY          = {Web},
   PUBLISHER    = {Computer Business review Online}
}

@ARTICLE{OrtegaPerezRojas02-QualityModel,
   AUTHOR       = {Maryoly Ortega and Marìa A. Perez and Teresita Rojas},
   JOURNAL      = {Laboratorio de Investigacin en Sistemas de Informacin},
   TITLE        = {A Systemic Quality Model for Evaluating Software 
      Products},
   YEAR         = {2002},
   OPTMONTH     = {},
   NOTE         = {http://www.lisi.usb.ve/publicaciones},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {}
}

@ARTICLE{Samuelson02-ReverseUnderSiege,
   AUTHOR       = {Pamela Samuelson},
   JOURNAL      = {Communications of the ACM},
   TITLE        = {Reverse Engineering Under Siege},
   YEAR         = {2002},
   MONTH        = {October},
   OPTNOTE      = {},
   NUMBER       = {10},
   PAGES        = {15--20},
   VOLUME       = {45},
   EDITOR       = {Diane Crawford},
   PUBLISHER    = {ACM Press},
   URL          = {http://www.sims.berkeley.edu/~pam/papers/CACM on Bunner.pdf},
   ABSTRACT     = {Reverse engineering has always been a lawful way to 
      acquire trade secrets embodied in mass-marketed products. This 
      longstanding principle---on which software engineers as well as 
      engineers in other fields so frequently rely---could be significantly 
      undermined depending on what happens in a case now pending before the 
      California Supreme Court. The precedent set in this case could, in 
      turn, influence courts in other jurisdictions. A key issue in the 
      case---one that legal scholars and intellectual property lawyers have 
      debated for many years---is whether an anti-reverse engineering 
      clause in a mass-market license should be enforceable.}
}

@ARTICLE{Sanada02-PatternsFrameworksUML,
   AUTHOR       = {Yasunobu Sanada and Rolf Adams},
   JOURNAL      = {Journal of Object Technology},
   TITLE        = {Representing Design Patterns and Frameworks in UML -- 
      Towards a Comprehensive Approach},
   YEAR         = {2002},
   MONTH        = {July--August},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   PAGES        = {143--154},
   VOLUME       = {1},
   KEYWORDS     = {Design Patterns},
   PUBLISHER    = {ETH Zürich},
   URL          = {http://www.jot.fm/issues/issue_2002_07/article3},
   ABSTRACT     = {Design patterns and frameworks have become important 
      concepts in object development. As well important is UML as the 
      standard modeling language. But there is not sufficient support to 
      model design patterns and frameworks in design class diagrams (DCDs) 
      without using the extension mechanisms, that is, stereotypes, 
      constraints, and tagged values. Some approaches have been developed 
      to improve the representation by extending UML. But they are either 
      not comprehensive, or not well-defined, or don't consider the 
      granularity or complexity of DCDs. In this paper we present a more 
      comprehensive and well-defined approach by using an example, 
      distinguish between DCDs, detailed DCDs, and design pattern CDs, 
      define UML profiles for the extensions, and outline how an UML tool 
      can support the approach.}
}

@ARTICLE{Thomas02-FromMOPStoAOSD,
   AUTHOR       = {Dave Thomas},
   JOURNAL      = {Journal of Object Technology},
   TITLE        = {Reflective Software Engineering -- From MOPS to AOSD},
   YEAR         = {2002},
   MONTH        = {September},
   OPTNOTE      = {},
   NUMBER       = {4},
   PAGES        = {17-26},
   VOLUME       = {1},
   EDITOR       = {Richard Wiener},
   PUBLISHER    = {ETH Zürich},
   URL          = {http://www.jot.fm/jot/issues/issue_2002_09/column1/index.html},
   ABSTRACT     = {Reflective Programming has long been viewed as an 
      elegant but academic subject that is of interest only to educators 
      and researchers. The seminal work on Procedural Reflection by Brian 
      Smith clearly articulated the benefits of allowing an executing 
      program to have access to the underlying data structures and 
      algorithms that govern its own computation [1]. The first 
      implementation of the reflective tower was in 3Lisp. This was 
      followed by work in the Lisp [2, 3]) and Smalltalk communities [4]. 
      The research work on reflection has most frequently appeared in 
      OOPSLA [5,6] and ECOOP conference proceedings as well as Reflection 
      conferences dedicated to the subject [7] To many outsiders, the 
      phrase ``going meta" conjures up visions of taking a trip to Nepal as 
      opposed to a way of thinking about software development. However, 
      those who have experienced the ``engine room" via a Scheme 
      meta-circular interpreter (see www-mitpress.mit.edu/sicp), or 
      Smalltalk or CLOS meta-class programming, have a fundamentally deeper 
      perspective on computation.}
}

@ARTICLE{Traverso02-StyleRecovery,
   AUTHOR       = {Martin Traverso and Spiros Mancoridis},
   JOURNAL      = {journal of Automated Software Engineering},
   TITLE        = {On the Automatic Recovery of Style-Specific Structural 
      Dependencies in Software Systems},
   YEAR         = {2002},
   MONTH        = {July},
   OPTNOTE      = {},
   NUMBER       = {4},
   PAGES        = {331--359},
   VOLUME       = {9},
   EDITOR       = {Bashar Nuseibeh},
   PUBLISHER    = {Kluwer Academic Publishers},
   URL          = {http://www.cs.drexel.edu/~smancori/research/papers/AUSE02.pdf},
   ABSTRACT     = {The cost of maintaining a software system over a long 
      period of time far exceeds its initial development cost. Much of the 
      maintenance cost is attributed to the time required by new developers 
      to understand legacy systems. High-level structural information helps 
      maintainers navigate through the numerous low-level components and 
      relations present in the source code. Modularization tools can be 
      used to produce subsystem decompositions from the source code but do 
      not typically produce high-level architectural relations between the 
      newly found subsystems. Controlling subsystem interactions is one 
      important way in which the overall complexity of software maintenance 
      can be reduced. We have developed a tool, called ARIS (Architecture 
      Relation Inference System), that enables software engineers to define 
      rules and relations for regulating subsystem interactions. These 
      rules and relations are called Interconnection Styles and are defined 
      using a visual notation. The style definition is used by our tool to 
      infer subsystem-level relations in designs being reverse engineered 
      from source code. In this paper we describe our tool and its 
      underlying techniques and algorithms. Using a case study, we describe 
      how ARIS is used to reverse engineer high-level structural 
      information from a real application.}
}

@INPROCEEDINGS{Alessandro02-QualityModelReuse,
   AUTHOR       = {Alessandro Bianchi, Danilo Caivano, Giuseppe Visaggio},
   BOOKTITLE    = {Proceedings of the 26<sup> th</sup> Annual International Computer Software and Applications Conference},
   TITLE        = {Quality Models Reuse: Experimentation on Field},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {535- 540},
   PUBLISHER    = {IEEE Computer Society},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   ABSTRACT     = {A transferable quality model must be general. This 
      implies that only the high level characteristics can be transferred 
      into different settings and that the refinement of the 
      characteristics into metrics must be operated according to the 
      context peculiarities. In spite of the amount of quality models and 
      approaches to quality models definition presented in literature, 
      there are no experiences reported showing the same quality model 
      reused in different environments. This statement needs further 
      investigation. The aim of this work is to present an experience on 
      the field that involves two industrial projects in which the same 
      quality model was used. The study confirms the need to modify the 
      quality model, not only in the metrics but also in the measurement 
      processes and in the interpretation of the resulting measures as side 
      effects.}
}

@INPROCEEDINGS{Beugnard02-LateBinding,
   AUTHOR       = {Antoine Beugnard},
   BOOKTITLE    = {Proceedings of the 9<sup>th</sup> workshop on Foundations of Object-Oriented Languages},
   TITLE        = {OO Languages Late-binding Signature},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Martin Odersky},
   MONTH        = {January},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://perso-info.enst-bretagne.fr/~beugnard/papiers/lb-sig.pdf},
   ABSTRACT     = {Most comparisons among OO languages focus on structural 
      or philosophical features but rarely on dynamic ones. Beyond all 
      these structural properties, late-binding is, to our opinion, the key 
      property of OO paradigm; the operational consequence of inheritance 
      use. All OO languages use late-binding, but do they all have the same 
      interpretation? We show that the answer is no, not very surprisingly, 
      but that almost each language has its own interpretation. We propose 
      a simple procedure to compare late-binding interpretation of OO 
      languages and introduce a late-binding signature of OO programming 
      languages. This procedure can be used to study language interactions 
      as we will show it for the Microsoft .NET framework.}
}

@INPROCEEDINGS{Beugnard02-LiaisonDynamique,
   AUTHOR       = {Antoine Beugnard},
   BOOKTITLE    = {actes du 8<sup>e</sup> colloque Langages et Modèles à Objets},
   TITLE        = {Une comparaison de langages objet relative au traitement 
      de la redéfinition de méthode et à la liaison dynamique},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Michel Dao and Marianne Huchard},
   MONTH        = {janvier},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {99--113},
   PUBLISHER    = {Hermès Science Publications},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   ABSTRACT     = {Maintenant que les techniques de programmation objet 
      sont largement diss\'emin\'ees dans la communaut\'e scientifique 
      informatique, il est int\'eressant de faire une pause et d'observer 
      les langages de programmation commun\'ement utilis\'es. Si les 
      m\'ecanismes comme l'encapsulation et l'h\'eritage sont biens connus 
      et compris, leur cons\'equence op\'erationnelle -- la liaison 
      dynamique -- a encore beaucoup d'interpr\'etations, faisant des 
      langages objet une solution toujours immature ou, du moins, une 
      juxtaposition de nombreuses th\'eories. Puisque nous pensons que la 
      notion d'objet a un sens et apporte une r\'eelle am\'elioration par 
      rapport aux langages classiques -- sans liaison dynamique, nous avons 
      compar\'e sept langages objet et \'etudi\'e leurs diff\'erences 
      vis-\`a-vis de la liaison dynamique. Nous proposons une s\'emantique 
      ``raisonnable" \`a la liaison dynamique qui autorise tout \`a la fois 
      des red\'efinitions de m\'ethodes covariantes, contravariantes et 
      invariantes pour ce qui est consid\'er\'e, m\^eme par des experts, 
      comme un probl\`eme d\'elicat.}
}

@INPROCEEDINGS{Blackwell02-AttentionInvestmentModel,
   AUTHOR       = {Alan F. Blackwell},
   BOOKTITLE    = {Proceedings of the Symposia on Human Centric Computing Languages and Environments},
   TITLE        = {First Steps in Programming: A Rationale for Attention 
      Investment Models},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Susan Wiedenbeck and Marian Petre},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {2--11},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://doi.ieeecomputersociety.org/10.1109/HCC.2002.1046334},
   ABSTRACT     = {Research into the cognitive aspects of programming 
      originated in the study of professional programmers (whether experts 
      or students). Even "end-user" programmers in previous studies have 
      often worked in organizations where programming is recognized to be 
      demanding professional work -- the term "power-user" recognizes this 
      technical kudos. But as personal computers become widespread, and 
      most new domestic appliances incorporate microprocessors, many people 
      are engaging in programming-like activities in domestic or 
      non-professional contexts. Such users often have less motivation and 
      more obstacles to programming, meaning that they may be unlikely even 
      to take the first steps. This paper analyses the generic nature of 
      those first steps, and identifies the cognitive demands that 
      characterize them. On the basis of this analysis we propose the 
      Attention Investment model, a cognitive model of programming that 
      offers a consistent account of all programming behaviour, from 
      professionals to end-users.}
}

@INPROCEEDINGS{Chen02-MOPS,
   AUTHOR       = {Hao Chen and David Wagner},
   BOOKTITLE    = {Proceedings of the 9th ACM Conference on Computer and Communications Security (CCS)},
   TITLE        = {MOPS: an infrastructure for examining security 
      properties of software.},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {235--244},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{DeCarlo02-StylizationPhotographs,
   AUTHOR       = {Doug DeCarlo and Anthony Santella},
   BOOKTITLE    = {Proceedings of the 29<sup>th</sup> Conference on Computer graphics and interactive techniques},
   TITLE        = {Stylization and Abstraction of Photographs},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Tom Appolloni},
   MONTH        = {July},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {769--776},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?coll=GUIDE&dl=GUIDE&id=566650},
   ABSTRACT     = {Good information design depends on clarifying the 
      meaningful structure in an image. We describe a computational 
      approach to stylizing and abstracting photographs that explicitly 
      responds to this design goal. Our system transforms images into a 
      line-drawing style using bold edges and large regions of constant 
      color. To do this, it represents images as a hierarchical structure 
      of parts and boundaries computed using state-of-the-art computer 
      vision. Our system identifies the meaningful elements of this 
      structure using a model of human perception and a record of a user's 
      eye movements in looking at the photo; the system renders a new image 
      using transformations that preserve and highlight these visual 
      elements. Our method thus represents a new alternative for 
      non-photorealistic rendering both in its visual style, in its 
      approach to visual form, and in its techniques for interaction.}
}

@INPROCEEDINGS{Dmitriev02-HotSwap,
   AUTHOR       = {Mikhail Dimitriev},
   BOOKTITLE    = {Proceedings of the International Workshop on Unanticipated Software Evolution},
   TITLE        = {HotSwap Technology Application for Advanced Profiling},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Günter Kniesel and Pascal Costanza and Mikhail Dimitriev},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://joint.org/use2002/sub/#dmitrievHotSwap},
   ABSTRACT     = {A functionality to support dynamic class evolution in 
      running applications has been recently implemented in the Sun's 
      {Java{}} HotSpot Virtual Machine. This functionality was initially 
      considered useful for “fix-and-continue” feature of debuggers and for 
      updating running server programs. Despite looking potentially 
      attractive, the second option so far have not gained enough attention 
      of major customers of the {Java{}} platform, the main reason being 
      that dynamic application fixing or upgrading looks too risky. 
      However, it appears that evolution technology in the form of dynamic 
      bytecode instrumentation may become extermely useful in the areas of 
      application profiling and monitoring. A JVM supporting dynamic 
      bytecode instrumentation would allow developers to profile 
      dynamically selected parts of the target application, turn emission 
      of various kinds of pro- filing events on and off, and thus 
      dramatically minimise the overhead presently associated with 
      instrumentation-based pro filing. However, a special API different 
      from the one currently implemented for class evolution, is required 
      to support fast and scalable dynamic bytecode instrumentation.}
}

@INPROCEEDINGS{Fertalj02-CodeGenerator,
   AUTHOR       = {Kresimir Fertalj and Damir Kalpic and Vedran Mornar},
   BOOKTITLE    = {Proceedings of the 35<sup>th</sup> Annual Hawaii International Conference on System Sciences (HICSS'02)-Volume 9},
   TITLE        = {Source Code Generator Based on a Proprietary 
      Specification Language},
   YEAR         = {2002},
   ADDRESS      = {Washington, DC, USA},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {283.2},
   PUBLISHER    = {IEEE Computer Society},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Ghoniem02-MatricesAdjacence,
   AUTHOR       = {Mohammad Ghoniem and Jean-Daniel Fekete},
   BOOKTITLE    = {actes de la 14<sup>e</sup> conférence sur l'Interaction Homme--Machine},
   TITLE        = {Visualisation de graphes de co-activité par matrices 
      d'adjacence},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Éric Lecolinet and Dominique L. Scapin},
   MONTH        = {octobre},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {279--282},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.lri.fr/~fekete/publications.html},
   ABSTRACT     = {Cette article d\'ecrit l'utilisation de matrices 
      d'adjacence pour la visualisation de graphes de co-activit\'e tels 
      que les graphes d'interaction au sein de communaut\'es. Nous 
      d\'ecrivons leur utilisation pour la compr\'ehension et l'analyse de 
      programmes par contraintes. Nous montrons que l'usage de matrices 
      d'adjacence pour visualiser le graphe variables--contraintes de 
      probl\`eme \'etudi\'e permet de voir la mod\'elisation du probl\`eme 
      et de comparer l'activit\'e dans diverses parties du graphe au fil de 
      la r\'esolution.}
}

@INPROCEEDINGS{Hamou-Lhadj02-TraceCompression,
   AUTHOR       = {Abdelwahab Hamou-Lhadj and Timothy C. Lethbridge},
   BOOKTITLE    = {Proceedings of the 10<sup>th</sup> International Workshop on Program Comprehension},
   TITLE        = {Compression Techniques to Simplify the Analysis of Large 
      Execution Traces},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Mark Harman and Ettore Merlo},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {159--168},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?id=580131.857014},
   ABSTRACT     = {Dynamic analysis consists of analyzing the behavior of a 
      software system to extract its proprieties. There have been many 
      studies that use dynamic information to extract high-level views of a 
      software system or simply help software engineers to perform their 
      daily maintenance activities more effectively. One of the biggest 
      challenges that such tools face is to deal with very large execution 
      traces. By analyzing the execution traces of the software systems we 
      are working on, we noticed that they contain many redundancies that 
      can beremoved. This led us to create a comprehension-driven 
      compression framework that compresses the traces to make them more 
      understandable. In this paper, we present and explain its components. 
      The compression framework is reversible that is the original trace 
      can be reconstructed from its compressed version. In addition to 
      that, we conducted an experiment with the execution traces of two 
      software systems to measure the gain attained by such compression.}
}

@INPROCEEDINGS{Hannemann02-DesignPatternsAspectJ,
   AUTHOR       = {Jan Hannemann and Gregor Kiczales},
   BOOKTITLE    = {Proceedings of the 17<sup>th</sup> Conference on Object-Oriented Programming, Systems, Languages, and Applications},
   TITLE        = {Design Pattern Implementation in Java and AspectJ},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Satoshi Matsuoka},
   MONTH        = {November},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {161--173},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://www.cs.ubc.ca/labs/spl/papers/2002/oopsla02-patterns.html},
   ABSTRACT     = {AspectJ implementations of the GoF design patterns show 
      modularity improvements in 17 of 23 cases. These improvements are 
      manifested in terms of better code locality, reusability, 
      composability, and (un)pluggability. The degree of improvement in 
      implementation modularity varies, with the greatest improvement 
      coming when the pattern solution structure involves crosscutting of 
      some form, including one object playing multiple roles, many objects 
      playing one role, or an object playing roles in multiple pattern 
      instances.}
}

@INPROCEEDINGS{Heuzeroth02-InteractionPatterns,
   AUTHOR       = {Dirk Heuzeroth and Thomas Holl and Welf Löwe},
   BOOKTITLE    = {Proceedings the 6<sup>th</sup> world conference on Integrated Design and Process Technology},
   TITLE        = {Combining Static and Dynamic Analyses to Detect 
      Interaction Patterns},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Hartmut Ehrig and Bernd J. Krämer and Atila Ertas},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {Society for Design and Process Science},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.info.uni-karlsruhe.de/publications.php/bib=281},
   ABSTRACT     = {We detect interaction patterns in legacy code combining 
      static and dynamic analyses. The analyses do not depend on coding or 
      naming conventins. We classified potential pattern instances 
      according to the evidence our analyses provide. We discuss our 
      approach with the \ygg@pattern{Observer} pattern as an example. Our 
      {Java{}} implementation analyzes {Java{}} programs. We evaluated our 
      approach by self applying the tool looking for observers in its code. 
      We do not miss a pattern instance. The class of pattern instances, 
      our analyses provided a high evidence for, contained 80\% of all 
      actual pattern instances but no false positive.}
}

@INPROCEEDINGS{Ho01-Weaving,
   AUTHOR       = {Wai-Ming Ho and Jean-Marc Jézéquel and 
      François Pennaneac'h and Noël Plouzeau},
   BOOKTITLE    = {Proceedings of the 1<sup>st</sup> international conference on Aspect-Oriented Software Development},
   TITLE        = {A Toolkit for Weaving Aspect Oriented Designs},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Gregor Kiczales},
   MONTH        = {April},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {99--105},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.irisa.fr/triskell/bib2002.html},
   ABSTRACT     = {Separation of concern is a basic engineering principle 
      that is also at the core of object-oriented analysis and design 
      methods in the context of the Unified Modelling Language (UML). The 
      UML gives the designer a rich, but somehow disorganized, set of views 
      on her model as well as many features, such as design pattern 
      occurrences, stereotypes or tag values, allowing her to add 
      non-functional information to a model. Aspect-oriented concepts are 
      applied to manage multitude of design constraints. However, it can 
      then be an overwhelming task to reconcile the various aspects of a 
      model into a working implementation. In this paper, we present our 
      UMLAUT framework as a toolkit for ``weaving" aspects when modelling 
      with UML. This is accompanied with an example of a distributed 
      multimedia application with a weaving generating an implementation 
      model.}
}

@INPROCEEDINGS{Zhu02HazardAnalysis4QualityModels,
   AUTHOR       = {Hong Zhu, Yanlong Zhang, Qingning Huo and Sue Greenwood},
   BOOKTITLE    = {Proceedings of the 26<sup> th</sup> Annual International Computer Software and Applications Conference},
   TITLE        = {Application of Hazard Analysis to Software Quality 
      Modelling},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {IEEE Computer Society},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   ABSTRACT     = {Quality is a fundamental concept in software and 
      information system development. It is also a complex and elusive 
      concept. A large number of quality models have been developed for 
      understanding, measuring and predicting qualities of software and 
      information systems. It has been recognised that quality models 
      should be constructed in accordance to the specific features of the 
      application domain. This paper proposes a systematic method for 
      constructing quality models of information systems. A diagrammatic 
      notation is devised to represent quality models that enclose 
      application specific features. Techniques of hazard analysis for the 
      development and deployment of safety related systems are adapted for 
      deriving quality models from system architectural designs. The method 
      is illustrated by a part of web-based information systems.}
}

@INPROCEEDINGS{Klemola02-ComprehensionProcesses,
   AUTHOR       = {Tuomas Klemola and Juergen Rilling},
   BOOKTITLE    = {Proceedings of the 1<sup>st</sup> International Conference on Cognitive Informatics},
   TITLE        = {Modeling Comprehension Processes in Software Development},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Yingxu Wang},
   MONTH        = {August},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {329--336},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=1039314},
   ABSTRACT     = {As programs become more complex and larger, the sheer 
      volume of information to be comprehended by developers becomes 
      daunting. Software development is fraught with complexity that is 
      difficult to identify a priori. Complexity is relative to the task, 
      the developer's experience and the resources available. In this 
      research, we identify comprehension processes applied in software 
      development, and the cognitive loads associated with these processes. 
      We present an abstraction of the cognitive environment of the 
      software developer, and introduce techniques to minimize the 
      cognitive effort in the short-term and the long-term.}
}

@INPROCEEDINGS{Kollmann02-StateArtUMLReverseEngineering,
   AUTHOR       = {Ralf Kollmann and Petri Selonen and Eleni Stroulia and 
      Tarja Systä and Albert Zündorf},
   BOOKTITLE    = {Proceedings of the 9<sup>th</sup> Working Conference on Reverse Engineering},
   TITLE        = {A Study on the Current State of the Art in 
      Tool-Supported UML-Based Static Reverse Engineering},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Liz Burd and van Deursen, Arie},
   MONTH        = {October},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {22--33},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://csdl.computer.org/comp/proceedings/wcre/2002/1799/00/17990022abs.htm},
   ABSTRACT     = {Today, software-engineering research and industry alike 
      recognize the need for practical tools to support reverse-engineering 
      activities. Most of the well-known CASE tools support reverse 
      engineering in some way. The Uni-fied Modeling Language (UML) has 
      emerged as the de facto standard for graphically representing the 
      design of object-oriented software systems. However, there does not 
      yet exist a standard scheme for representing the reverse-engineered 
      models of these systems. The various CASE tools usually adopt 
      proprietary extensions to UML and, as a result, it is difficult, or 
      even impossible, to ensure that model semantics remains unambiguous 
      when working with different tools at the same time. In this paper, we 
      examine the capabilities of the two most successful 
      industrial-strength CASE-tools in reverse engineering the static 
      structure of software systems and compare them to the results 
      produced by two academic prototypes. The comparisons are carried out 
      both manually and automatically using a research prototype for 
      manipulating and comparing UML models.}
}

@INPROCEEDINGS{Mens02-IntentionalViews,
   AUTHOR       = {Kim Mens and Tom Mens and Michel Wermelinger},
   BOOKTITLE    = {Proceedings of the 14<sup>th</sup> international conference on Software Engineering and Knowledge Engineering},
   TITLE        = {Maintaining Software Through Intentional Source-Code 
      Views},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Filomena Ferrucci and Giuliana Vitiello},
   MONTH        = {July},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {289--296},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://www-ctp.di.fct.unl.pt/~mw/pubs/2002/},
   ABSTRACT     = {Maintaining the source code of large software systems is 
      hard. One underlying cause is that existing modularisation mechanisms 
      are inadequate to handle crosscutting concerns. We propose 
      in-tentional source-code views as an intuitive and lightweight means 
      of modelling such concerns. They increase our ability to under-stand, 
      modularise and browse the source code by grouping together 
      source-code entities that address the same concern. They facilitate 
      software development and evolution, because alternative descrip-tions 
      of the same intentional view can be checked for consistency and 
      relations among intentional views can be defined and verified. 
      Finally, they enable us to specify knowledge developers have about 
      source code that is not captured by traditional program 
      documenta-tion mechanisms. Our intentional view model is implemented 
      in a logic metaprog-ramming language that can reason about and 
      manipulate object-ori-ented source code directly. The proposed model 
      has been validated on the evolution of a medium-sized object-oriented 
      application in Smalltalk, and a prototype tool has been implemented.}
}

@INPROCEEDINGS{Mulet02-Eclipse,
   AUTHOR       = {Philippe Mulet},
   BOOKTITLE    = {actes de la Journée OCM},
   TITLE        = {Eclipse -- Une Plateforme Universelle Pour Outils 
      Intégrés},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Thomas Ledoux},
   MONTH        = {mars},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {60--82},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Mulligan02-AirTraffic,
   AUTHOR       = {Jeffrey B. Mulligan},
   BOOKTITLE    = {Proceedings of the 2<sup>nd</sup> symposium on Eye Tracking Research and Applications},
   TITLE        = {A Software-based Eye Tracking System for the Study of 
      Air-traffic Displays},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Roel Vertegaal and John W. Senders},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {69--76},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?id=507072.507087},
   ABSTRACT     = {This paper describes a software-based system for offline 
      tracking of eye and head movements using stored video images, 
      designed for use in the study of air-traffic displays. These displays 
      are typically dense with information; to address the research 
      questions, we wish to be able to localize gaze within a single word 
      within a line of text (a few minutes of arc), while at the same time 
      allowing some freedom of movement to the subject. Accurate gaze 
      tracking in the presence of head movements requires high precision 
      head tracking, and this was accomplished by registration of images 
      from a forward-looking scene camera with a narrow field of view.}
}

@INPROCEEDINGS{Niere02-DesignRecovery,
   AUTHOR       = {Jörg Niere and Wilhelm Schäfer and Jörg P. Wadsack and 
      Lothar Wendehals and Jim Welsh},
   BOOKTITLE    = {Proceedings of the 24<sup>th</sup> International Conference on Software Engineering},
   TITLE        = {Towards Pattern-based Design Recovery},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Michal Young and Jeff Magee},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {338--348},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://portal.acm.org/citation.cfm?id=581382},
   ABSTRACT     = {A method and a corresponding tool is described which 
      assist design recovery and program understanding by recognising 
      instances of design patterns semi-automatically. The approach taken 
      is specifically designed to overcome the existing scalability 
      problems caused by many design and implementation variants of design 
      pattern instances. Our approach is based on a new recognition 
      algorithm which works incrementally rather than trying to analyse a 
      possibly large software system in one pass without any human 
      intervention. The new algorithm exploits domain and context knowledge 
      given by a reverse engineer and by a special underlying data 
      structure, namely a special form of an annotated abstract syntax 
      graph. A comparative and quantitative evaluation of applying the 
      approach to the Java AWT and JGL libraries is also given.}
}

@INPROCEEDINGS{Popovici02-DynamicWeaving,
   AUTHOR       = {Andrei Popovici and Thomas Gross and Gustavo Alonso},
   BOOKTITLE    = {Proceedings of the 1st International Conference on Aspect-Oriented Software Development},
   TITLE        = {Dynamic Weaving for Aspect Oriented Programming},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Gregor Kiczales},
   MONTH        = {April},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.inf.ethz.ch/department/IS/iks/publications.html}
}

@INPROCEEDINGS{Rajlich02-ComprehensionLearning,
   AUTHOR       = {Václav Rajlich},
   BOOKTITLE    = {Proceedings of the 1<sup>st</sup> International Conference on Cognitive Informatics},
   TITLE        = {Program Comprehension as a Learning Process},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Yingxu Wang},
   MONTH        = {August},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {343--347},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=1039316},
   ABSTRACT     = {The paper describes the process of program comprehension 
      from the point of view of constructivist theory of learning. 
      According to this view, program comprehension starts with the 
      pre-existing knowledge and continues through processes of 
      assimilation and adaptation. The assimilation means that the facts 
      encountered in the program are either added to the knowledge or 
      rejected. Adaptation means that the existing knowledge is reorganized 
      in order to absorb new facts. These processes are illustrated by a 
      case study where the knowledge of the program is represented by UML 
      class diagrams.}
}

@INPROCEEDINGS{Tahvil02-DPClassification,
   AUTHOR       = {Ladan Tahvildari and Kostas Kontogiannis},
   BOOKTITLE    = {Proceedings of the6<sup>th</sup> European Conference on Software Maintenance and Reengineering},
   TITLE        = {On the Role of Design Patterns in Quality-Driven 
      Re-engineering},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Tibor Gyimothy and e Abreu, Fernando Brito},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {230--240},
   PUBLISHER    = {IEEE Computer Society},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   ABSTRACT     = {Design patterns have been widely adopted and well 
      investigated by the software engineering community over the past 
      decade. However, their primary use is still associated with forward 
      engineering and the design phase of the software life-cycle. In this 
      paper, we examine design patterns from a different perspective 
      namely, their classification and usage for software re-engineering 
      and restructuring. Specifically, twenty three design patterns 
      originally presented in the "Gang of Four" book are reclassified for 
      re-engineering purposes into two major categories, primitive and 
      complex. Moreover, their relationships and impacts to specific 
      re-engineering objectives are presented in terms of a layered model 
      that is denoted by six different relations namely: uses, refines, 
      conflicts, is-similar-to, combines-with, and requires. The paper also 
      discusses how the classification scheme can be applied for the 
      re-engineering and restructuring of object-oriented systems}
}

@INPROCEEDINGS{Tikir02-CodeCoverageTesting,
   AUTHOR       = {Mustafa M. Tikir and Jeffrey K. Hollingsworth},
   BOOKTITLE    = {Proceedings of the 6<sup>th</sup> International Symposium on Software Testing and Analysis},
   TITLE        = {Efficient Instrumentation for Code Coverage Testing},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Phyllis G. Frankl},
   MONTH        = {July},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {86--96},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?id=566172.566186},
   ABSTRACT     = {Evaluation of Code Coverage is the problem of 
      identifying the parts of a program that did not execute in one or 
      more runs of a program. The traditional approach for code coverage 
      tools is to use static code instrumentation. In this paper we present 
      a new approach to dynamically insert and remove instrumentation code 
      to reduce the runtime overhead of code coverage. We also explore the 
      use of dominator tree information to reduce the number of 
      instrumentation points needed. Our experiments show that our approach 
      reduces runtime overhead by 38-90% compared with purecov, a 
      commercial code coverage tool. Our tool is fully automated and 
      available for download from the Internet.}
}

@INPROCEEDINGS{Tjortjis02-ProgramComprehension,
   AUTHOR       = {Christos Tjortjis and Nicolas Gold and Paul J. Layzell and 
      Keith H. Bennett},
   BOOKTITLE    = {Proceedings of the 26<sup>th</sup> International Computer Software and Applications Conference},
   TITLE        = {From System Comprehension to Program Comprehension},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Hongji Yang},
   MONTH        = {August},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {427--434},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http:// www.co.umist.ac.uk/~pjl/publications/COMPSAC2002%20Comprehension.pdf},
   ABSTRACT     = {Program and system comprehension are vital parts of the 
      software maintenance process. We discuss the need for both 
      perspectives and describe two methods that may be integrated to 
      provide a smooth transition in understanding from the system level to 
      the program level. Results from a qualitative survey of expert 
      industrial software maintainers, their information needs and 
      requirements when comprehending software are initially presented. We 
      then review existing software tools which facilitate system level and 
      program comprehension. Two successful methods from the fields of data 
      mining and concept assignment are discussed, each addressing some of 
      these requirements. We also describe how these methods can be coupled 
      to produce a broader software comprehension method which partly 
      satisfies all the requirements. Future directions including the 
      closer integration of the techniques are also identified.}
}

@INPROCEEDINGS{Walenstein02-FoundationsCognitiveSupport,
   AUTHOR       = {Andrew Walenstein},
   BOOKTITLE    = {Proceedings of the 14<sup>th</sup> Conference of Design, Specification, and Verification of Interactive Systems},
   TITLE        = {Foundations of Cognitive Support: Toward Abstract 
      Patterns of Usefulness},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Peter Forbrig and Quentin Limbourg and Bodo Urban and 
      Jean Vanderdonckt},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {133--147},
   PUBLISHER    = {Springer-Verlag},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://citeseer.nj.nec.com/walenstein02foundations.html},
   ABSTRACT     = {Computer tools for cognitively challenging activities 
      are considered useful, to a great extent, because of the support that 
      they provide for human thinking and problem solving. To analyze, 
      specify, and design cognitive support, a suitable analytic framework 
      is required. Theories of ``distributed cognition" have been offered 
      as potentially suitable frameworks, but they have generally failed to 
      plainly articulate comprehensive theories of cognitive support. This 
      paper seeks to clarify the intellectual foundations for studying and 
      designing cognitive support, and aims to put them in a form suitable 
      for design. A framework called RODS is described as a type of 
      minimal, lightweight intellectual toolkit. Its main aim is to allow 
      analysts to think in high-level cognition-support terms rather than 
      be overwhelmed by task- and technology-specific implementation 
      details. Framing usefulness in terms of cognitive support makes it 
      possible to define abstract patterns of what makes tools ``good". 
      Implications are drawn for how the framework may be used for the 
      design of tools in cognitively challenging work domains.}
}

@INPROCEEDINGS{Wooding02-FixationMaps,
   AUTHOR       = {David S. Wooding},
   BOOKTITLE    = {Proceedings of the 2<sup>nd</sup> symposium on Eye Tracking Research and Applications},
   TITLE        = {Fixation Maps: Quantifying Eye-movement Traces},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Roel Vertegaal and John W. Senders},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {31--36},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?id=507078},
   ABSTRACT     = {The analysis of eye-movement traces (i.e., the patterns 
      of fixations in a search) is a powerful but often neglected area of 
      eye-movement research. This is largely because it requires a more 
      complex analysis than parameters such as mean fixation duration and 
      as a result, previous attempts have focused on qualitative appraisal 
      of the form of an eye-movement trace. In this paper, we introduce the 
      concept of the ``fixation map". We discuss its application to the 
      quantification of similarity of traces, and the degree of "coverage" 
      by fixations of a visual stimulus. The use of fixation maps in the 
      understanding and communication of large numbers of eye-movement 
      traces is also examined.}
}

@INPROCEEDINGS{VanEmden02-JavaQualityCodeSmells,
   AUTHOR       = {van Emden, Eva and Leon Moonen},
   BOOKTITLE    = {Proceedings of the 9th Working Conference on Reverse Engineering (WCRE'02)},
   TITLE        = {Java Quality Assurance by Detecting Code Smells},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   MONTH        = {October},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {citeseer.ist.psu.edu/vanemden02java.html},
   ABSTRACT     = {Software inspection is a known technique for improving 
      software quality. It involves carefully examining the code, the 
      design, and the documentation of software and checking these for 
      aspects that are known to be potentially problematic based on past 
      experience. Code smells are a metaphor to describe patterns that are 
      generally associated with bad design and bad programming practices. 
      Originally, code smells are used to find the places in software that 
      could benefit from refactoring. In this paper, we investigate how the 
      quality of code can be automatically assessed by checking for the 
      presence of code smells and how this approach can contribute to 
      automatic code inspection. We present an approach for the automatic 
      detection and visualization of code smells and discuss how this 
      approach can be used in the design of a software inspection tool. We 
      illustrate the feasibility of our approach with the development of 
      jCOSMO, a prototype code smell browser that detects and visualizes 
      code smells in JAVA source code. Finally, we show how this tool was 
      applied in a case study.}
}

@TECHREPORT{Baniassad02-DesignRationaleGraphs,
   AUTHOR       = {Elisa L. A. Baniassad and Gail Murphy and 
      Christa Schwanninger},
   INSTITUTION  = {Department of Computer Science, University of British Columbia},
   TITLE        = {Understanding Design Patterns with Design Rationale 
      Graphs},
   YEAR         = {2002},
   OPTADDRESS   = {},
   MONTH        = {January},
   OPTNOTE      = {},
   NUMBER       = {T2-2002-01},
   OPTTYPE      = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://www.cs.ubc.ca/~bani/DesignRationaleGraph.pdf},
   ABSTRACT     = {A Design Pattern presents a proven solution to a common 
      design problem using a combination of informal text, diagrams, and 
      examples. Often, to suitably described an issue, the author of a 
      Design Pattern must spread and repeat information throughout the 
      Pattern description. Unfortunately, spreading the information can 
      make it difficult for a reader to grasp subtelties in the design, 
      leading to possible misuses of the Pattern. In this paper, we 
      introduce the Design Rationale Graph (DRG) representation that 
      connects and visualizes related concepts described in a Design 
      Pattern. The localization of concept information is intended to help 
      improve a reader's understanding of a Design Pattern. Improved 
      comprehension of a Pattern could aid the use of a Pattern during 
      implementation, and the reading of code built upon the Pattern. In 
      addition to describing the DRG representation, we present a tool we 
      have built to support the semi-automatic creation of a DRG from 
      Design Pattern text, and we report on a small study conducted to 
      explore the utility of DRGs. The study showed that readers with 
      access to a DRG wer eable to answer questions about the Pattern more 
      completely and with more confidence than those given the Design 
      Pattern alone.}
}

@TECHREPORT{Douence02-AspectConstraintsTR,
   AUTHOR       = {Rémi Douence and Narendra Jussien},
   INSTITUTION  = {École des Mines de Nantes},
   TITLE        = {Non-Intrusive Constraint Solver Enhancements},
   YEAR         = {2002},
   OPTADDRESS   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   NUMBER       = {02-2-INFO},
   OPTTYPE      = {},
   ABSTRACT     = {Constraint solvers rely on two simple mechanisms: 
      enumeration and propagation. However, modern solvers integrate many 
      optimizations and their actual implementations can be quite complex. 
      In this paper, we advocate for non-intrusive constraint solver 
      enhance-ments. First, a minimal solver is implemented. Second, 
      different enhance-ments (here explanation and dynamic backtracking 
      [7] capabilities) of this minimal solver are implemented with the 
      help of a new programming paradigm: aspect oriented programming. This 
      new approach allow us to non-intrusively enhance the minimal solver: 
      it remains unchanged.}
}

@TECHREPORT{OTI02-SelfHostingPDE,
   AUTHOR       = {Object Technology International},
   INSTITUTION  = {},
   TITLE        = {Self-Hosting in Eclipse Using PDE},
   YEAR         = {2002},
   OPTADDRESS   = {},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTTYPE      = {},
   URL          = {http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/pde-ui-home/ selfhosting/selfhosting.html}
}

@TECHREPORT{Noble02-PostmodernProgramming,
   AUTHOR       = {James Noble and Robert Biddle},
   INSTITUTION  = {Department of Computer Science, University of Wellington},
   TITLE        = {Notes on Postmodern Programming},
   YEAR         = {2002},
   OPTADDRESS   = {},
   MONTH        = {March},
   OPTNOTE      = {},
   NUMBER       = {CS-TR-02-9},
   OPTTYPE      = {},
   URL          = {http://www.mcs.vuw.ac.nz/comp/Publications/CS-TR-02-9.abs.html},
   ABSTRACT     = {These notes have the status of letters written to 
      ourselves: we wrote them down because, without doing so, we found 
      ourselves making up new arguments over and over again. When reading 
      what we had written, we were always too satisfied. For one thing, we 
      felt they suffered from a marked silence as to what postmoderism 
      actually is. Yet, we will not try to define postmodernism, first 
      because a complete description of postmodernism in general would be 
      too large for the paper, but secondly (and more importantly) because 
      an understanding of postmodern programming is precisely what we are 
      working towards. Very few programmers tend to see their (sometimes 
      rather general) difficulties as the core of the subject and as a 
      result there is a widely held consensus as to what programming is 
      really about. If these notes prove to be a source of recognition or 
      to give you the appreciation that we have simply written down what 
      you already know about the programmer's trade, some of our goals will 
      have been reached.}
}

@TECHREPORT{Smith02-ElementalDP,
   AUTHOR       = {Jason McC. Smith and David Stotts},
   INSTITUTION  = {Department of Computer Science, University of North Carolina},
   TITLE        = {Elemental Design Patterns -- A Link Between Architecture 
      and Object Semantics},
   YEAR         = {2002},
   OPTADDRESS   = {},
   MONTH        = {March},
   OPTNOTE      = {},
   NUMBER       = {TR02-011},
   OPTTYPE      = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://rockfish.cs.unc.edu/pubs/TR02-011.pdf},
   ABSTRACT     = {Design patterns are an important concept in the field of 
      software engineering, providing a language and application 
      independent method for expressing and conveying lessons learned by 
      experienced designers. There is a large gap, however, between the 
      aesthetic and elegance of the patterns as intended and the reality of 
      working with an ultimately mathematically expressible system such as 
      code. In this paper we describe a step towards meaningful formal 
      analysis of code within the language of patterns, and discuss 
      potential uses. The major contributions include: a compendium of 
      Elemental Design Patterns (EDPs), a layer of seemingly simplistic 
      relationships between objects that, on closer inspection, provide a 
      critical link between the world of formal analysis and the realm of 
      pattern design and implementation without reducing the patterns to 
      merely syntactic constructs; an extension to the \&-calculus, termed 
      -calculus, a formal notation for expressing relationships between the 
      elements of object oriented languages, and its use in expressing the 
      EDPs directly. We discuss their use in composition and decomposition 
      of existing patterns, identification of pattern use in existing code 
      to aid comprehension, support for refactoring of designs, integration 
      with traditional code analysis techniques, and the education of 
      students of software architecture.}
}

@TECHREPORT{Ziane20-RedecouvrirDesignPatterns,
   AUTHOR       = {Mikal Ziane},
   INSTITUTION  = {LIP6},
   TITLE        = {Redécouvrir les Solutions des Design Patterns},
   YEAR         = {2002},
   OPTADDRESS   = {},
   MONTH        = {septembre},
   OPTNOTE      = {},
   NUMBER       = {2002/017},
   OPTTYPE      = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://www.lip6.fr/reports/lip6.2002.017.html},
   ABSTRACT     = {Un design pattern peut \^etre vu comme un couple . La 
      plupart des descriptions formelles des design patterns se concentrent 
      sur la solution et n\'eglige le probl\`eme ainsi que les liens qui 
      les unissent. Dans ce papier nous proposons d'exprimer ces 
      probl\`emes en utilisant des m\'eta-variables qui encapsulent un 
      fragment de code exprimant (maladroitement) l'intention du 
      d\'eveloppeur. Une g\'en\'eralisation d'une classique transformation 
      dite de pliage permet de corriger le terme intentionnel en le 
      d\'epla\c cant vers une nouvelle abstraction fonctionnelle ou de 
      donn\'ees. Ce pliage g\'en\'eralis\'e semble en mesure de 
      repr\'esenter des m\'ecanismes constamment utilis\'es dans les design 
      patterns et de reproduire leurs solutions. Ceci permet d'esp\'erer 
      que les design patterns pourront \`a l'avenir \^etre beaucoup mieux 
      outill\'es.}
}

@MANUAL{Apache02-Ant,
   TITLE        = {Overview of Ant Tasks},
   OPTADDRESS   = {},
   AUTHOR       = {Stephane Bailliez and Nicola Ken Barozzi and 
      Jacques Bergeron and Stefan Bodewig and Patrick Chanezon and 
      James Duncan Davidson and Tom Dimock and Peter Donald and 
      Dion Gillard and Erik Hatcher and Diane Holt and Bill Kelly and 
      Arnout J. Kuiper and Conor MacNeill and Stefano Mazzocchi and 
      Erik Meade and Sam Ruby and Nico Seessle and Jon S. Stevens and 
      Magesh Umasankar and Roger Vaughn and Dave Walend and Phillip Wells and 
      Craeg Strong},
   OPTEDITION   = {},
   MONTH        = {November},
   OPTNOTE      = {},
   ORGANIZATION = {Apache Software Foundation},
   YEAR         = {2002},
   URL          = {http://ant.apache.org/manual/tasksoverview.html},
   ABSTRACT     = {Given the large number of tasks available with Ant, it 
      may be difficult to get an overall view of what each task can do. The 
      following tables provide a short description of each task and a link 
      to the complete documentation.}
}

@MANUAL{Eichelberger02-UMLScript,
   TITLE        = {The syntax of UMLscript},
   OPTADDRESS   = {},
   AUTHOR       = {Holger Eichelberger},
   OPTEDITION   = {},
   MONTH        = {October},
   OPTNOTE      = {},
   ORGANIZATION = {Department of Computer Science, University of Wuerzburg},
   YEAR         = {2002},
   URL          = {http:// www2.informatik.uni-wuerzburg.de/staff/eichelberger/SugiBib/UMLscript/ english.html},
   ABSTRACT     = {This document describes the syntax of the current 
      version (1.11) of the language \ygg@pl{UMLscript}. The syntax 
      diagrams displayed below are generated from the attributed grammar 
      which was used to implement the scanner and the parser of UMLscript. 
      The generation of scanner and parser is done by the {COCO} version 
      which generates {Java{}} source code.}
}

@MANUAL{Jussien02-IntroductionClaire,
   TITLE        = {Introduction au langage \Claire},
   OPTADDRESS   = {},
   AUTHOR       = {Narendra Jussien},
   OPTEDITION   = {},
   MONTH        = {décembre},
   OPTNOTE      = {},
   ORGANIZATION = {Ecole des Mines de Nantes},
   YEAR         = {2002}
}

@MANUAL{Jussien02-IntroductionChoco,
   TITLE        = {Introduction à Choco},
   OPTADDRESS   = {},
   AUTHOR       = {Narendra Jussien},
   OPTEDITION   = {},
   MONTH        = {décembre},
   OPTNOTE      = {},
   ORGANIZATION = {Ecole des Mines de Nantes},
   YEAR         = {2002}
}

@MANUAL{Jussien02-SolveursContraintes,
   TITLE        = {Solveurs de contraintes},
   OPTADDRESS   = {},
   AUTHOR       = {Narendre Jussien},
   OPTEDITION   = {},
   MONTH        = {décembre},
   OPTNOTE      = {},
   ORGANIZATION = {Ecole des Mines de Nantes},
   YEAR         = {2002}
}

@MANUAL{Koutsofios02-Dot,
   TITLE        = {Drawing graphs with \ygg@productDot},
   OPTADDRESS   = {},
   AUTHOR       = {Eleftherios Koutsofios and Stephen North},
   OPTEDITION   = {},
   MONTH        = {February},
   OPTNOTE      = {},
   ORGANIZATION = {AT&T Labs-Research},
   YEAR         = {2002},
   URL          = {www.research.att.com/sw/tools/graphviz/dotguide.pdf},
   ABSTRACT     = {\ygg@product{Dot} draws directed graphs as hierarchies. 
      It runs as a command line program, web visualization service, or with 
      a compatible graphical interface. Its features include well-tuned 
      layout algorithms for placing nodes and edge splines, edge labels, 
      ``record" shapes with ``ports" for drawing data structures; cluster 
      layouts; and an underlying file language for stream-oriented graph 
      tools. Below is a reduced module dependency graph of an SML-NJ 
      compiler that took 0.98 seconds of user time on a 1.4 Ghz AMD Athlon.}
}

@MANUAL{Laburthe02-Choco,
   TITLE        = {\ygg@productChoco: User's guide},
   OPTADDRESS   = {},
   AUTHOR       = {François Laburthe},
   OPTEDITION   = {},
   MONTH        = {October},
   OPTNOTE      = {},
   ORGANIZATION = {e-Lab Bouygues},
   YEAR         = {2002}
}

@MANUAL{Mehl02-RelationsFonctionsApplications,
   TITLE        = {Relations, Fonctions, Applications},
   OPTADDRESS   = {},
   AUTHOR       = {Serge Mehl},
   OPTEDITION   = {},
   MONTH        = {février},
   OPTNOTE      = {},
   ORGANIZATION = {université de Provence Aix - Marseille},
   YEAR         = {2002},
   URL          = {http://www.sciences-en-ligne.com/momo/chronomath/dico/fonctions.html},
   ABSTRACT     = {Le concept de relation est \`a la base de toute la 
      math\'ematique dont le but est d'\'etudier -- par observation et 
      d\'eduction (raisonnement), calcul et comparaison -- des 
      configurations abstraites ou concr\`etes de ses objets (nombres, 
      formes, structures) en cherchant \`a \'etablir les liens logiques, 
      num\'eriques ou conceptuels entre ces objets.}
}

@MANUAL{CS577b-ModelingIntegrationAbstraction,
   TITLE        = {OO Analysis and Design: Modeling, Integration, 
      Abstraction},
   OPTADDRESS   = {},
   AUTHOR       = {for Software Engineering, Center},
   OPTEDITION   = {},
   MONTH        = {Spring},
   NOTE         = {http://sunset.usc.edu/classes/ cs577b_2002/EC/03/EC-03.ppt},
   OPTORGANIZATION = {},
   YEAR         = {2002},
   INSTITUTION  = {Center for Software Engineering university of Southern California},
   KEY          = {Presentation}
}

@MISC{Anderson02-TCPAPalladium,
   AUTHOR       = {Ross Anderson},
   OPTHOWPUBLISHED = {},
   MONTH        = {July},
   OPTNOTE      = {},
   TITLE        = {FAQ TCPA / Palladium},
   YEAR         = {2002},
   URL          = {http://www.cl.cam.ac.uk/~rja14/tcpa-faq.html},
   ABSTRACT     = {TCPA stands for the Trusted Computing Platform Alliance, 
      an initiative led by Intel. Their stated goal is `a new computing 
      platform for the next century that will provide for improved trust in 
      the PC platform.' Palladium is software that Microsoft says it plans 
      to incorporate in future versions of Windows; it will build on the 
      TCPA hardware, and will add some extra features.}
}

@MISC{RefactorIT-Tool,
   AUTHOR       = { Aqris},
   OPTHOWPUBLISHED = {},
   OPTMONTH     = {},
   NOTE         = {http://www.refactorit.com/},
   TITLE        = {RefactorIT},
   YEAR         = {2002},
   URL          = {http://www.refactorit.com/}
}

@MISC{Berglund02-CVSNT,
   AUTHOR       = {Bo Berglund},
   OPTHOWPUBLISHED = {},
   MONTH        = {December},
   OPTNOTE      = {},
   TITLE        = {CVSNT Installation Background},
   YEAR         = {2002},
   URL          = {http://w1.858.telia.com/~u85831169/InstallCVSNT.html},
   ABSTRACT     = {I have received numerous emails privately and seen a 
      number of postings complaining about the difficulty of getting the 
      CVSNT system up and running. So to help out I have actually stepped 
      through the process on a "naked" NT4 WorkStation and noted the 
      different steps needed. Apart from minor operating system details 
      (like where the path variable is set), these steps work the same way 
      on Win NT4, Win 2000 and Win XP-Pro (I have tested all). Notice: This 
      guide is rewritten on Dec 23rd 2002 to describe the new way of 
      installing CVSNT that has been introduced recently. The reason I have 
      done this is that many users have had problems getting it up and 
      running. The guide is substantially the same as before, but it 
      contains new screenshots from the setup sequence and tips on how to 
      set it up correctly.}
}

@MISC{JIProlog,
   AUTHOR       = {Ugo Chirico},
   OPTHOWPUBLISHED = {},
   MONTH        = {April},
   OPTNOTE      = {},
   TITLE        = {JIProlog},
   YEAR         = {2002},
   URL          = {http://www.ugosweb.com/jiprolog}
}

@MISC{Cross02-Terminology,
   AUTHOR       = {James Cross},
   OPTHOWPUBLISHED = {},
   MONTH        = {November},
   OPTNOTE      = {},
   TITLE        = {Reengineering and Reverse Engineering Terminology},
   YEAR         = {2002},
   URL          = {http://www.tcse.org/revengr/taxonomy.html},
   ABSTRACT     = {The many conflicting uses of terms like reverse 
      engineering, reengineering, restructuring, and design recovery in 
      conference papers and vendor presentations used to contribute to 
      confusion. To straighten out the definition of these terms, the 
      Taxonomy Project of the IEEE-CS Technical Council on Software 
      Engineering (TCSE) - Committee on Reverse Engineering has developed a 
      unified taxonomy of the field.}
}

@MISC{David02-OOPSLA02,
   AUTHOR       = {Pierre-Charles David},
   OPTHOWPUBLISHED = {},
   MONTH        = {November},
   OPTNOTE      = {},
   TITLE        = {Rapport de mission -- OOPSLA 2002},
   YEAR         = {2002},
   ABSTRACT     = {La conf\'erence se tenait du lundi 4 au vendredi 8 
      novembre 2002, au \textit{Washington State Convention and Trade 
      Center}, dans la ville de Seattle. Le programme \'etait tr\`es 
      charg\'e : les ateliers \'etaient concentr\'es sur les deux premiers 
      jours, le programme technique (trois sessions en parall\`ele) les 
      trois derniers. Des tutoriaux avaient lieu toute la semaine, et des 
      d\'emos les trois derniers jours, dans le hall d'exposition o\`u se 
      trouvaient aussi des stands d'industriels (Microsoft, \'evidemment, 
      IBM, Amazon, un stand minuscule pour Sun).}
}

@MISC{Galvin02-Storage,
   AUTHOR       = {Peter Baer Galvin},
   OPTHOWPUBLISHED = {},
   MONTH        = {August},
   NOTE         = {http://www.samag.com},
   TITLE        = {Storage Consolidation-Part 3},
   YEAR         = {2002},
   PUBLISHER    = {SysAdmin Magazine}
}

@MISC{Gamma02-JUnitWebSite,
   AUTHOR       = {Erich Gamma and Kent Beck},
   HOWPUBLISHED = {Web site},
   OPTMONTH     = {},
   OPTNOTE      = {},
   TITLE        = {JUnit},
   YEAR         = {2002},
   URL          = {http://www.junit.org/}
}

@MISC{Gruber02-Ontology,
   AUTHOR       = {Tom Gruber},
   OPTHOWPUBLISHED = {},
   MONTH        = {February},
   OPTNOTE      = {},
   TITLE        = {What is an Ontology?},
   YEAR         = {2002},
   URL          = {http://www-ksl.stanford.edu/kst/what-is-an-ontology.html},
   ABSTRACT     = {The word "ontology" seems to generate a lot of 
      controversy in discussions about AI. It has a long history in 
      philosophy, in which it refers to the subject of existence. It is 
      also often confused with epistemology, which is about knowledge and 
      knowing.}
}

@MISC{IBM02-CPL,
   AUTHOR       = { IBM},
   OPTHOWPUBLISHED = {},
   MONTH        = {July},
   OPTNOTE      = {},
   TITLE        = {Common Public License and Common Public License FAQ},
   YEAR         = {2002},
   URL          = {http://www-106.ibm.com/developerworks/library/os-cplfaq.html},
   ABSTRACT     = {This FAQ provides answers to commonly asked questions 
      related to the CPL. It is provided for informational purposes only. 
      It is not part of, nor does it modify, amend, or supplement the terms 
      of the CPL. The CPL is a legal agreement that governs the rights 
      granted to material licensed under it, so please read it carefully. 
      If there is any conflict between this FAQ and the CPL, the terms of 
      the CPL shall govern.}
}

@MISC{OTI01-Eclipse-Help,
   AUTHOR       = {Object Technology International / IBM},
   OPTHOWPUBLISHED = {},
   MONTH        = {November},
   OPTNOTE      = {},
   TITLE        = {Eclipse Help System},
   YEAR         = {2002}
}

@MISC{Jennings02-WindowsXP,
   AUTHOR       = {Michael Jennings},
   OPTHOWPUBLISHED = {},
   MONTH        = {December},
   OPTNOTE      = {},
   TITLE        = {Windows XP Shows the Direction Microsoft is Going},
   YEAR         = {2002},
   URL          = {http://www.hevanet.com/peace/microsoft.htm},
   ABSTRACT     = {You have a right to know. You have a right to all the 
      information you need to make an informed choice about any product you 
      buy. The author wrote this article because of the need to give his 
      customers fundamental information about the direction Microsoft wants 
      to take them. Few people have the technical background to understand 
      fully the advantages and disadvantages of software as complex as an 
      operating system. Without fundamental information, it is difficult 
      for non-professionals to understand the advice of professionals. The 
      author is not anti-Microsoft in any way. There appear to be 
      management problems at Microsoft, but the author would like any 
      problems to be fixed, rather than have the entire world suffer 
      through Microsoft doing poorly. Because he has spent considerable 
      time trying to understand the problems, and because he cares deeply 
      about fixing the problems, the author is, in that sense, "more 
      pro-Microsoft than Bill Gates".}
}

@MISC{Sun02-JPDA,
   AUTHOR       = {Sun Microsystems},
   OPTHOWPUBLISHED = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   TITLE        = {Java Platform Debug Architecture},
   YEAR         = {2002},
   URL          = {http://java.sun.com/ products/jpda/}
}

@MISC{Sun02-RunFinalizersOnExit,
   AUTHOR       = {Sun Microsystems},
   OPTHOWPUBLISHED = {},
   MONTH        = {May},
   OPTNOTE      = {},
   TITLE        = {\textttSystem.runFinalizersOnExit(boolean)},
   YEAR         = {2002},
   URL          = {http://java.sun.com/j2se/1.4/docs/api/java/lang/System.html #runFinalizersOnExit(boolean)},
   ABSTRACT     = {Enable or disable finalization on exit; doing so 
      specifies that the finalizers of all objects that have finalizers 
      that have not yet been automatically invoked are to be run before the 
      {Java{}} runtime exits. By default, finalization on exit is disabled. 
      If there is a security manager, its checkExit method is first called 
      with 0 as its argument to ensure the exit is allowed. This could 
      result in a SecurityException.}
}

@MISC{Moore02-LettreABush,
   AUTHOR       = {Michael Moore},
   OPTHOWPUBLISHED = {},
   MONTH        = {septembre},
   OPTNOTE      = {},
   TITLE        = {Lettre de Michael Moore à Georges W. Bush},
   YEAR         = {2002},
   URL          = {http://www.amazon.fr/exec/obidos/ASIN/2707138339/171-3020383-8039404},
   ABSTRACT     = {Le Bandit-en-chef George W. Bush, dit « George II », et 
      son gang, Dick Cheney, Donald Rumsfeld \& Co, gouvernent 
      l'Am\'erique. Ultraconservateurs et richissimes (leur fortune est 
      li\'ee au big business du p\'etrole, de l'informatique ou des 
      biotechnologies), ils ont fait main basse sur le pays, et partent 
      maintenant en guerre contre l'« Axe du Mal ». Provocateur, corrosif, 
      inqui\'etant, narcissique, subversif, Mike l'Agitateur-en-chef refuse 
      de leur abandonner le pays et supplie le secr\'etaire g\'en\'eral de 
      l'ONU de d\'eployer ses casques bleus et de r\'etablir la 
      d\'emocratie ! Le temps est venu, explique-t-il, de lancer la 
      contre-attaque en d\'enon\c cant les maux cach\'es de l'Am\'erique : 
      l'illettrisme et l'alcoolisme (le pr\'esident conna\^{\i}t bien les 
      deux probl\`emes), le racisme (Mike propose aux Noirs un kit de 
      survie !), la libre circulation des armes, la peine de mort, la 
      pauvret\'e massive, mais aussi l'arrogance et l'irresponsabilit\'e de 
      la politique \'etrang\`ere de son pays. Pas de doute, Mike est de 
      retour ! Et le moins que l'on puisse dire, c'est que son humour 
      ravageur d\'etonne dans le consensus patriotique qui domine aux 
      \'Etats-Unis depuis les attentats du 11 septembre 2001.}
}

@MISC{Nunez02-MicrosoftPeru,
   AUTHOR       = {Villanueva Nuñez, Edgar David},
   OPTHOWPUBLISHED = {},
   MONTH        = {April},
   OPTNOTE      = {},
   TITLE        = {To: Señor Juan Alberto González},
   YEAR         = {2002},
   URL          = {http://www.opensource.org/docs/peru_and_ms.php}
}

@UNPUBLISHED{Niere02-FuzzyLogicRecoveryDesign,
   AUTHOR       = {Jörg Niere},
   NOTE         = {Presented at the ICSE Doctoral Symposium},
   TITLE        = {Fuzzy Logic Based Interactive Recovery of Software 
      Design},
   MONTH        = {May},
   YEAR         = {2002},
   URL          = {http://www.icse-conferences.org/2002/info/docsymp.html},
   ABSTRACT     = {This abstract presents an approach to semi-automatically 
      detect pattern instances and their implementation in a software 
      system. Design patterns are currently best practice in software 
      development and provide solutions for nearly all granularity of 
      software design and makes them suitable for representing design 
      knowledge. The proposed approach overcomes a numer of scalability 
      problems as they exist in other approaches by using fuzzy logic, user 
      interaction and a learning component.}
}

@BOOK{GPfleeger01-software,
   PUBLISHER    = {Prentice Hall},
   TITLE        = {Software Engineering Theory and practice},
   YEAR         = {2001},
   AUTHOR       = {Shari Lawrence Pfleeger},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   OPTEDITION   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@BOOK{Pressman97-SoftwareEngineering,
   PUBLISHER    = {McGraw-Hill Higher Education},
   TITLE        = {Software Engineering -- A Practitioner's Approach},
   YEAR         = {2001},
   AUTHOR       = {Roger S. Pressman},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   EDITION      = {5<sup>th</sup>},
   MONTH        = {November},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {www.accu.org/bookreviews/public/reviews/s/s000005.htm},
   ABSTRACT     = {For over 20 years, \textit{Software Engineering -- A 
      Practitioner's Approach} has been the best selling guide to software 
      engineering for students and industry professionals alike. In its 
      fifth edition, the book has undergone major design changes, 
      substantial content updates, and expension to 32 chapters that 
      address every important topic in what many have called "the 
      engineering discipline of the 21<sup>{st}</sup> century." The format 
      and style of the book have been completely revised to make it even 
      more reader-friendly. In addition, a major new web site provides 
      comprehensive software engineering resources for students, 
      instructors, and industry professionals. The content of the fifth 
      edition has been compartmentalized to make the book easier to use in 
      the classroom and as a self-study guide. Part One, The Product and 
      The Process, presents an introduction to software engineering milieu. 
      Part Two, Managing Software Projects, covers topics that are relevant 
      to those who plan, manage, and control software projects. Part Three, 
      Conventional Methods for Software Engineering, considers the 
      traditional analysis, design, and testing methods that are still 
      widely used throughout the industry. Part Four, Advanced Software 
      Engineering Topics, includes dedicated chapters that address formal 
      methods, cleanroom software engineering, component-based development, 
      client server software engineering, Web engineering, reengineering, 
      and CASE.}
}

@BOOK{Shalloway02-DPExplained,
   PUBLISHER    = {Addison-Wesley Professional},
   TITLE        = {Design Patterns Explained: A New Perspective on 
      Object-Oriented Design},
   YEAR         = {2001},
   AUTHOR       = {Alan Shalloway and James R. Trott},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   EDITION      = {1<sup>st</sup>},
   MONTH        = {Septembre},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {www.awprofessional.com/isapi/product_id~\%7B43B2E15C-6B43-4914- 96DC-1564616E6B6F\%7D/catalog/product.asp},
   ABSTRACT     = {Design Patterns Explained: A New Perspective on 
      Object-Oriented Design draws together the principles of 
      object-oriented programming with the power of design patterns to 
      create an environment for robust and reliable software development. 
      Packed with practical and applicable examples, this book teaches you 
      to solve common programming problems with patterns--and explains the 
      advantages of patterns for modern software design. Beginning with a 
      complete overview of the fundamentals of patterns, Design Patterns 
      Explained stresses the importance of analysis and design. The authors 
      clearly demonstrate how patterns can facilitate the overall 
      development process. Throughout the book, key object-oriented design 
      principles are explained, along with the concepts and benefits behind 
      specific patterns. With illustrative examples in C++ and Java, the 
      book demystifies the ``whys," ``why nots," and ``hows" of patterns 
      and explains pattern implementation.}
}

@BOOK{Stelting01-AppliedJavaPatterns,
   PUBLISHER    = {Prentice Hall},
   TITLE        = {Applied Java Patterns},
   YEAR         = {2001},
   AUTHOR       = {Stephen Stelting and Olav Maassen},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   OPTEDITION   = {},
   MONTH        = {December},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@PROCEEDINGS{Knudsen01-ECOOP2001,
   TITLE        = {ECOOP 2001 -- Object-Oriented Programming},
   YEAR         = {2001},
   OPTADDRESS   = {},
   EDITOR       = {Jorgen Lindskov Knudsen},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PUBLISHER    = {Springer-Verlag},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INBOOK{SmithWilliams01-Performance,
   PUBLISHER    = {Addison Wesley},
   TITLE        = {Introduction to Software Performance Engineering},
   YEAR         = {2001},
   AUTHOR       = {Connie U. Smith, Lloyd G. Williams},
   CHAPTER      = {1},
   ALTEDITOR    = {},
   ALTPAGES     = {},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITION   = {},
   MONTH        = {November},
   NOTE         = {http://www.awprofessional.com/articles/article.asp?p=24009},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTTYPE      = {},
   OPTVOLUME    = {},
   KEY          = {Web},
   ABSTRACT     = {It is possible to cost-effectively design performance 
      into new software systems. Software performance engineering (SPE) 
      provides a systematic, quantitative approach to managing performance 
      throughout the development process.}
}

@INCOLLECTION{Westfall01-HelloWorldHarmful,
   AUTHOR       = {Ralph Westfall},
   BOOKTITLE    = {Communications of the ACM},
   PUBLISHER    = {ACM Press},
   TITLE        = {Hello, World Considered Harmful},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCHAPTER   = {},
   OPTCROSSREF  = {},
   OPTEDITION   = {},
   OPTEDITOR    = {},
   MONTH        = {October},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   PAGES        = {129--130},
   OPTSERIES    = {},
   OPTTYPE      = {},
   OPTVOLUME    = {}
}

@ARTICLE{Antoniol01-Traceability,
   AUTHOR       = {Giuliano Antoniol and Bruno Caprile and 
      Alessandra Potrich and Paolo Tonella},
   JOURNAL      = {Science of Computer Programming, special issue on program comprehension},
   TITLE        = {Design-Code Traceability Recovery: Selecting the Basic 
      Linkage Properties},
   YEAR         = {2001},
   MONTH        = {July},
   OPTNOTE      = {},
   NUMBER       = {2--3},
   PAGES        = {213--234},
   VOLUME       = {40},
   EDITOR       = {Egido Astesiano and Jan A. Bergstra and Dennis Smith and 
      Steve Woods},
   PUBLISHER    = {Elsevier Science},
   URL          = {http://star.itc.it/Papers/main.html},
   ABSTRACT     = {Traceability ensures that software artifacts of 
      subsequent phases of the development cycle are consistent. Few works 
      have so far addressed the problem of automatically recovering 
      traceability links between object-oriented (OO) design and code 
      entities. Such a recovery process is required whenever there is no 
      explicit support of traceability from the development process. The 
      recovered information can drive the evolution of the available design 
      so that it corresponds to the code, thus providing a still useful and 
      updated high-level view of the system. Automatic recovery of 
      traceability links can be achieved by determining the similarity of 
      paired elements from design and code. The choice of the properties 
      involved in the similarity computation is crucial for the success of 
      the recovery process. In fact, design and code objects are complex 
      artifacts with several properties attached. The basic anchors of the 
      recovered traceability links should be chosen as those properties (or 
      property combinations) which are expected to be maintained during the 
      transformation of design into code. This may depend on specific 
      practices and/or the development environment, which should therefore 
      be properly accounted for. In this paper different categories of 
      basic properties of design and code entities will be analyzed with 
      respect to the contribution they give to traceability recovery. 
      Several industrial software components will be employed as a 
      benchmark on which the performances of the alternatives are measured.}
}

@ARTICLE{Boehm01-DefectTop10,
   AUTHOR       = {Barry Boehm and Victor R. Basili},
   JOURNAL      = {Computer},
   TITLE        = {Software Defect Reduction Top 10 List},
   YEAR         = {2001},
   MONTH        = {January},
   OPTNOTE      = {},
   NUMBER       = {1},
   PAGES        = {135--137},
   VOLUME       = {34},
   PUBLISHER    = {IEEE Computer Society Press},
   URL          = {http://www.computer.org/computer/co2001/r1135abs.htm},
   ABSTRACT     = {Software's complexity and accelerated development 
      schedules make avoiding defects difficult. These 10 techniques can 
      help reduce the flaws in your code.}
}

@ARTICLE{Bezivin01-ToolingMDA,
   AUTHOR       = {Jean Bézivin and Nicolas Ploquin},
   JOURNAL      = {Journal of Object-Oriented Programming},
   TITLE        = {Tooling the MDA framework: A new software maintenance 
      and evolution scheme proposal},
   YEAR         = {2001},
   MONTH        = {December},
   OPTNOTE      = {},
   NUMBER       = {12},
   OPTPAGES     = {},
   VOLUME       = {14},
   EDITOR       = {Richard Wiener},
   PUBLISHER    = {SIGS Publications},
   URL          = {http://www.adtmag.com/joop/article.asp?id=5736&mon=12&yr=2001},
   ABSTRACT     = {The Object Management Group is rapidly moving from its 
      previous Object Management Architecture vision (OMA) to the newest 
      Model-Driven Architecture (MDA). At the center of this framework, the 
      so-called four-level meta-modeling architecture provides the 
      foundations for building a variety of automatic and semi-automatic 
      model-transformation and code-generation tools. The most important 
      will be platform targeted code-generation tools but there are plenty 
      of other possibilities that we can expect to become available in the 
      near future. As an example, this paper shows how modern meta-modeling 
      and meta-programming techniques may be combined to implement a new 
      generation of software maintenance tools. The proposal deals with the 
      future maintenance of software written in the C\# programming 
      language, supported by the DotNet platform and uses all support 
      available in the MDA framework (UML, MOF, XMI). In addition to this, 
      we take advantage of the introspection properties of C\#. A similar 
      approach could also be used with other modern programming languages 
      like Smalltalk or, to a lesser extent, {Java{}}.}
}

@ARTICLE{Colin01-MArINa,
   AUTHOR       = {Christian Colin and Stéphane Huot},
   JOURNAL      = {Proceedings of Journées ``Modélisation Géometrique du groupe de travail GTMG de l'Association Française d'Informatique Graphique},
   TITLE        = {Photomedélisation À L'aide de la Géométrie Projective},
   YEAR         = {2001},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {}
}

@ARTICLE{SahraouiBoukadoumLounis01-Quality,
   AUTHOR       = {H. A. Sahraoui, M. Boukadoum and H. Lounis},
   JOURNAL      = {L’Objet},
   TITLE        = {Building Quality Estimation models with Fuzzy Threshold 
      Values},
   YEAR         = {2001},
   OPTMONTH     = {},
   OPTNOTE      = {},
   NUMBER       = {4},
   OPTPAGES     = {},
   VOLUME       = {17},
   PUBLISHER    = {Edition Hermès Sciences},
   ABSTRACT     = {This work presents an approach to circumvent one of the 
      major problems with techniques to build and apply software quality 
      estimation models, namely the use of precise metric thresholds 
      values. We used a fuzzy logic based approach to investigate the 
      stability of a reusable class library interface, using structural 
      metrics as stability indicators. To evaluate this new approach, we 
      conducted a study on three versions of a commercial C++ class 
      library. The obtained results are very promising when compared to 
      those of two classical machine learning (ML) approaches, Top Down 
      Induction of Decision Trees and Bayesian classifiers.}
}

@ARTICLE{Huot01-MArINa,
   AUTHOR       = {Stéphane Huot and Christian Colin},
   JOURNAL      = {Soumission to EuroGraphics, Manchester, 3-7 September},
   TITLE        = {MArINa: 3D Reconstruction from Images Using Formal 
      Projective Geometry},
   YEAR         = {2001},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {}
}

@ARTICLE{Kaiser01-PicassoJHotDraw,
   AUTHOR       = {Wolfram Kaiser},
   JOURNAL      = {JavaWorld},
   TITLE        = {Become a programming Picasso with JHotDraw -- Use the 
      highly customizable GUI framework to simplify draw application 
      development},
   YEAR         = {2001},
   MONTH        = {February},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   EDITOR       = {Carolyn Wong},
   PUBLISHER    = {IDG Publications},
   URL          = {http://www.javaworld.com/javaworld/jw-02-2001/jw-0216-jhotdraw.html},
   ABSTRACT     = {Design patterns and frameworks have a mutually 
      beneficial relationship. A well-known example of this is JHotDraw, a 
      highly customizable GUI framework that simplifies developing drawing 
      applications. This article explains the JHotDraw framework and 
      general framework principles in terms of several important design 
      patterns. You'll develop a class diagram editor that demonstrates 
      JHotDraw's usage and capabilities.}
}

@ARTICLE{nilles01-quality,
   AUTHOR       = {Mary Beth Nilles},
   JOURNAL      = {Quality Digest},
   TITLE        = {A Hard Look at Quality Management Software},
   YEAR         = {2001},
   OPTMONTH     = {},
   NOTE         = {http://www.dofactory.com/patterns/Patterns.aspx},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {}
}

@ARTICLE{Perez01-model,
   AUTHOR       = {José Luis Torres Pérez},
   JOURNAL      = {IEEE networking the world},
   TITLE        = {contacto IEEE},
   YEAR         = {2001},
   OPTMONTH     = {},
   NOTE         = {http://ewh.ieee.org/r9/guadalajara/ boletin/marzo02/modelofurps.htm},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {}
}

@ARTICLE{iso91261.01-Standard,
   AUTHOR       = {International Standard},
   JOURNAL      = {Institute of Electrical and Electronics Engineers},
   TITLE        = {ISO/IEC 9126-1},
   YEAR         = {2001},
   OPTMONTH     = {},
   NOTE         = {http://www.iso.ch},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   VOLUME       = {Part 1,2,3: Quality model}
}

@ARTICLE{Shimba-ReverseEngineering,
   AUTHOR       = {Tarja Systa and Kai Koskimies and Hausi Muller},
   JOURNAL      = {Software Practice and Experience},
   TITLE        = {Shimba--an environment for reverse engineering Java 
      software systems},
   YEAR         = {2001},
   OPTMONTH     = {},
   OPTNOTE      = {},
   NUMBER       = {4},
   PAGES        = {371--394},
   VOLUME       = {31}
}

@ARTICLE{Tatsubori01-BytecodeTranslator,
   AUTHOR       = {Michiaki Tatsubori and Toshiyuki Sasaki and 
      Shigeru Chiba and Kozo Itano},
   JOURNAL      = {Proceedings of the 15th European Conference on Object-Oriented Programming},
   TITLE        = {A Bytecode Translator for Distributed Execution of 
      ``Legacy Java Software},
   YEAR         = {2001},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   ABSTRACT     = {This paper proposes a system named {Addistant}, which 
      enables the distributed execution of ``legacy" {Java{}} bytecode. 
      Here ``legacy" bytecode means the regular bytecode of application 
      software originally developed as non-distributed software running on 
      a single {Java{}} virtual machine (JVM). For adapting legacy software 
      to distributed execution, the users only have to specify whether the 
      instances of each class are allocated on a local JVM or a remote JVM. 
      {Addistant} transforms the bytecode according to that specification 
      so that part of the software runs on the remote JVM and communicates 
      through a network with the rest of the software running on the local 
      JVM. This paper also presents that {Addistant} can transform legacy 
      applications using the {Java{}} Swing class library so that the 
      application objects are executed on a remote JVM and the GUI objects 
      are on the local JVM.}
}

@ARTICLE{Thomas01-UML,
   AUTHOR       = {David Thomas},
   JOURNAL      = {LogOn Expert's Corner},
   TITLE        = {UML -- The universal modeling and programming language?},
   YEAR         = {2001},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   PUBLISHER    = {LogOn},
   URL          = {http://www.ltt.de/otland/experts/dave-thomas.shtml},
   ABSTRACT     = {Frustrated by having to deal with multiple operating 
      systems, middleware and programming languages? The OMG MDA and UML 
      gang have some solutions in mind that will make you want to think a 
      lot differently about software development and deployment. While most 
      everyone was happy that there was finally some agreement notation for 
      case tools, few have ever thought of using UML as their development 
      language.}
}

@INPROCEEDINGS{Bassil01-SoftwareVisualizationSurvey,
   AUTHOR       = {Sarita Bassil and Rudolf K. Keller},
   BOOKTITLE    = {Proceedings of the 9<sup>th</sup> International Workshop on Program Comprehension},
   TITLE        = {Software Visualization Tools: Survey and Analysis},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Andrea De Lucia and Kostas Kontogiannis},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {7--17},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://csdl.computer.org/comp/proceedings/iwpc/2001/1131/00/11310007abs.htm},
   ABSTRACT     = {Recently, many software visualization (SV) techniques 
      and tools have become available. There is ample anecdotal evidence 
      that appropriate visualization can significantly reduce the effort 
      spent on system comprehension and maintenance, yet we are not aware 
      of any quantitative investigation and survey of SV tools. This paper 
      reports on a survey on SV tools which was conducted in spring 2000 
      with more than 100 participants. It addresses various functional, 
      practical, cognitive as well as code analysis aspects that users may 
      be looking for in SV tools. The participants of the survey rated the 
      usefulness and importance of these aspects, and came up with aspects 
      of their own. The participants were in general quite pleased with the 
      SV tool they were using and mentioned various benefits. Nevertheless, 
      a big gap between desired aspects and the features of current SV 
      tools was identified. In addition, a list of improvements that should 
      be done to current tools was assembled. Finally, the collected data 
      tends to suggest that in general, code analysis aspects were not 
      highly supported by the tools.}
}

@INPROCEEDINGS{Belloir10-FormalisationToutPartie,
   AUTHOR       = {Nicolas Belloir and Jean-Michel Bruel and Franck Barbier},
   BOOKTITLE    = {actes des Journées Composants : flexibilité du système au langage},
   TITLE        = {Formalisation de la relation Tout-Partie : application à 
      l'assemblage des composants logiciels},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Aline Senart and Olivier Charra and Michel Riveill},
   MONTH        = {octobre},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {LIFC -- LIP6},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.univ-pau.fr/~belloir/F/Publication.html},
   ABSTRACT     = {Les m\'ethodes d'analyse et de conception ainsi que les 
      notations normalis\'ees comme UML, n'ont pas suivi la mont\'ee en 
      puissance du d\'eveloppement de logiciels bas\'es sur les composants. 
      L'assemblage de composants logiciels reste un probl\`eme complexe et 
      d\'elicat pour les concepteurs. Dans ce cadre, nous travaillons sur 
      une \'etude fondamentale de la composition/combinaison, au travers 
      notamment, de l'\'etude exhaustive du concept plus g\'en\'eral de 
      relation Tout-Partie. Via ce type de relation, nous souhaitons 
      \'elaborer une m\'ethode de combinaison de composants logiciels. Nous 
      cherchons \`a aboutir \`a un environnement supportant le 
      d\'eveloppement d'applications \`a base de composants et ce, de la 
      phase d'analyse \`a la phase de test. Cet article pr\'esente un 
      panorama relatif sur l'assemblage de composants, synth\'etise le 
      travail formel sur lequel d'autres efforts de recherche portent 
      actuellement, et trace les grandes lignes de nos travaux futurs.}
}

@INPROCEEDINGS{Bieman02-SoftwareDesignStyles,
   AUTHOR       = {James M. Bieman and Roger Alexander and 
      P. Willard Munger III and Erin Meunier},
   BOOKTITLE    = {Proceedings of the 4<sup>th</sup> Workshop on Software Quality},
   TITLE        = {Software Design Quality: Style and Substance},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://citeseer.ist.psu.edu/bieman02software.html},
   ABSTRACT     = {Many software development texts.. references.. tools.. 
      and au thorities provide advise on good software design and pro 
      gramming styles Unfortunately.. most of the evidence to support the 
      value of this advise consists of intuition and anecdotes We are 
      working to objectively determine the value of recommended style 
      guides on large scale real world software systems we are studying 
      both proprietary commer cial and open source systems Our work 
      involves determin ing whether or not style recommendations are 
      followed.. and how these styles a ect external quality factors such 
      as fault and change proneness.. and maintainability Early results in 
      dicate that style guidelines are often violated In addition.. we have 
      found that.. in contrast with common claims.. one design 
      recommendation the use of design patterns can lead to more change 
      prone .. rather than less change prone classes}
}

@INPROCEEDINGS{Bieman01-DPChangesProneness,
   AUTHOR       = {James M. Bieman and Dolly Jain and Helen J. Yang},
   BOOKTITLE    = {Proceedings of the International Conference on Software Maintenance},
   TITLE        = {OO Design Patterns, Design Structure, and Program 
      Changes: An Industrial Case Study},
   YEAR         = {2001},
   ADDRESS      = {http://www.dsi.unifi.it/icsm2001/},
   OPTCROSSREF  = {},
   EDITOR       = {Paolo Nesi},
   MONTH        = {November},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {580--589},
   PUBLISHER    = {IEEE Computer Society},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=972775},
   ABSTRACT     = {A primary expected benefit of object-oriented (OO) 
      methods is the creation of software systems that are easier to adapt 
      and maintain. OO design patterns are especially geared to improve 
      adaptability, since patterns generally increase the complexity of an 
      initial design in order to ease future enhancements. For design 
      patterns to really provide benefit, they must reduce the cost of 
      future adaptation. The evidence of improvements in adaptability 
      through the use of design patterns and other design structures 
      consists primarily of intuitive arguments and examples. There is 
      little empirical evidence to support claims of improved flexibility 
      of these preferred structures. In this case study, we analyze 39 
      versions of an evolving industrial OO software system to see if there 
      is a relationship between patterns, other design attributes, and the 
      number of changes. We found a strong relationship between class size 
      and the number of changes-larger classes were changed more 
      frequently. We also found two relationships that we did not expect: 
      (1) classes that participate in design patterns are not less change 
      prone-these pattern classes are among the most change prone in the 
      system, and (2) classes that are reused the most through inheritance 
      tend to be more change prone. These unexpected results hold up after 
      accounting for class size, which had the strongest relationship with 
      changes}
}

@INPROCEEDINGS{Bruel01-AggregationComposition,
   AUTHOR       = {Jean-Michel Bruel and Brian Henderson-Sellers and 
      Franck Barbier and Le Parc, Annig and Robert B. France},
   BOOKTITLE    = {Proceedings of the 7<sup>th</sup> international conference on Object-Oriented Information Systems},
   TITLE        = {Improving the UML Metamodel to Rigorously Specify 
      Aggregation and Composition},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Shushma Patel and Yingxu Wang and Ronald H. Johnston},
   MONTH        = {August},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {5--14},
   PUBLISHER    = {Springer-Verlag},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.univ-pau.fr/~bruel/publications.html},
   ABSTRACT     = {In object­oriented technology, some concepts are so 
      often used that people have no doubt about their meaning (e.g. class, 
      object, method). This is not the case when abstraction concerns lead 
      to the use of some conceptual representations such as an object being 
      part of an­ other one. Even the standardized notation UML (Unified 
      Modeling Language -- version 1.3) is confusing in some of its 
      definitions. In this paper 1 , we use the benefits from a formal 
      definition for the semantics of the Whole­Part relationship to 
      improve the metamodel used in the UML. The aim of the proposed 
      specification is for it to be incorporated into version 2.0 of UML. 
      Thus it consists of an incremental improvement to the current 
      metamodel, as well as the introduction of axioms.}
}

@INPROCEEDINGS{crispin01-Quality,
   AUTHOR       = {Lisa Crispin},
   BOOKTITLE    = {proceedings of XP Universe},
   TITLE        = {Is Quality Negotiable?},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   MONTH        = {July},
   NOTE         = {citeseer.ist.psu.edu/crispin01is.html},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {1--6},
   PUBLISHER    = {Object Mentor},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   JOURNAL      = {STARWest 2001 conference},
   URL          = {http://www.stickyminds.com/sitewide.asp?ObjectId=3068&Function=DETAILBROWSE&ObjectType=ART},
   ABSTRACT     = {The morning I sat down to start writing this paper, my 
      contractor called (we’re in the middle of building an addition to our 
      house). He told me the painter would apply one coat of paint to the 
      primed siding. If I wanted a second coat of paint, it would cost $275 
      extra. Higher quality often costs extra. It struck me how often we 
      make decisions and compromises about quality in our daily lives. 
      Shall I buy a Yugo or a Volvo? Eat at McDonald’s or go home and cook? 
      It all depends on what I need most money, safety, time, nutrition. In 
      eXtreme Programming Explained Kent Beck describes the four variables 
      of software development: Cost, Time, Quality and Scope. As he says, 
      “quality is a strange variable”. If you try to save time or money, or 
      increase scope, by sacrificing quality, you will pay a price in 
      human, business and technical costs. XP teams have the right to do 
      their best work. On the other hand, customers have the right to 
      specify and pay for the only the quality they need. How does one 
      reconcile two potentially conflicting points of view? Is quality 
      negotiable? If so, how do we go about negotiating it? This paper will 
      explore the following questions: • Is quality negotiable? • How can 
      we negotiate quality? • What are internal and external quality, and 
      are either or both negotiable? • What’s the XP tester’s quality 
      assurance role? • How far should testers go in helping the customer 
      define acceptance criteria?}
}

@INPROCEEDINGS{Dao01-ClassDiagramEvolution,
   AUTHOR       = {Michel Dao and Marianne Huchard and Hervé Leblanc and 
      Thérèse Libourel and Cyril Roume},
   BOOKTITLE    = {Proceedings of the ECOOP workshop on Automating Object-Oriented Software Development Methods},
   TITLE        = {Towards a Tool for Class Diagram Construction and 
      Evolution},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Bedir Tekinerdogan and van den Broek, Pim and 
      Motoshi Saeki and Pavel Hruby and Gerson Sunyé},
   MONTH        = {October},
   NOTE         = {TR-CTIT-01-35.},
   OPTNUMBER    = {},
   ORGANIZATION = {Centre for Telematics and Information Technology},
   OPTPAGES     = {},
   PUBLISHER    = {University of Twente},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.lirmm.fr/publ/publications01.html},
   ABSTRACT     = {Class diagrams (such as those of UML) constitute one of 
      the major benefits of object-oriented programming and design. 
      However, their construction and their evolution pose multiple 
      problems. We think that a good way to approach them consists in 
      proposing to the designers and to the programmers tools able to 
      assist them in this task. The idea that we defend is that a good 
      construction must be systematic, even if it is necessary to improve 
      the results afterwards. In other words, our long-term goal is to 
      automate as much as possible the optimal construction and evolution 
      of class diagrams. Our main practical objective is to integrate our 
      results in UML CASE tools. We describre here the strong ideas of the 
      project and its current state.}
}

@INPROCEEDINGS{Fioravanti01-FaultProneness,
   AUTHOR       = {Fabrizio Fioravanti and Paolo Nesi},
   BOOKTITLE    = {Proceedings of the 5<sup>th</sup> Conference on Software Maintenance and Reengineering},
   TITLE        = {A Study on Fault-Proneness Detection of Object-Oriented 
      Systems},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Pedro Sousa and Jürgen Ebert},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {121--130},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.computer.org/proceedings/csmr/1028/10280121abs.htm},
   ABSTRACT     = {Fault proneness detection in object-oriented systems is 
      an interesting area for software companies and researchers. Several 
      hundreds of metrics have been defined with the aim of measuring the 
      different aspects of object-oriented systems. Only a few of them have 
      been validated for fault detection, several interesting works with 
      this view have been considered. This paper reports a research study 
      started from the analysis of more than 200 different object-oriented 
      metrics extracted from the literature with the aim of identifying 
      suitable models for the detection of fault-proneness of classes. Such 
      a large number of metrics allows extracting a subset of them in order 
      to obtain models that can be adopted for fault proneness detection. 
      To this end, the whole set of metrics has been classified on the 
      basis of the measured aspect in order to reduce their number to a 
      manageable one; then statistical techniques have been employed to 
      produce a hybrid model comprised of 12 metrics. The work has been 
      focussed on identifying models that can detect as many faulty classes 
      as possible and, at the same time, models that are based on a 
      manageable small set of metrics. A compromise between these aspects 
      and the classification correctness of faulty and non-faulty classes 
      was the main challenge of the research. As a result, two models for 
      fault-proneness classes detection have been obtained and validated.}
}

@INPROCEEDINGS{Gerbe01-ConceptualGraphs,
   AUTHOR       = {Olivier Gerbé and Guy W. Mineau and Rudolf K. Keller},
   BOOKTITLE    = {Proceedings of ICCS conference},
   TITLE        = {Conceptual Graphs and Metamodeling},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Harry S. Delugach and Gerd Stumme},
   MONTH        = {July--August},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {245--259},
   PUBLISHER    = {Springer-Verlag},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.iro.umontreal.ca/~labgelo/Publications/Papers/iccs-2000.pdf},
   ABSTRACT     = {Knowledge management, in particular corporate knowledge 
      management, is a challenge companies and researchers have to meet. 
      The conceptual graph formalism is a good candidate for the 
      representation of corporate knowledge, and for the development of 
      knowledge management systems. But many of the issues concerning the 
      use of conceptual graphs as a metalanguage have not been worked out 
      in detail. By introducing a function that maps higher level to lower 
      level, this paper clarifies the metalevel semantics, notation and 
      manipulation of concepts in the conceptual graph formalism. In 
      addition, this function allows metamodeling activities to take place 
      using the CG notation.}
}

@INPROCEEDINGS{Gough10-VirtualMachines,
   AUTHOR       = {K. John Gough},
   BOOKTITLE    = {Proceedings of the Australian Computer Systems and Architecture Conference},
   TITLE        = {Stacking Them Up: A Comparison of Virtual Machines},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Gernot Heiser},
   MONTH        = {February},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {55--62},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.computer.org/proceedings/austcsac/0954/09540055abs.htm},
   ABSTRACT     = {A popular trend in current software technology is to 
      gain program portability by compiling programs to an intermediate 
      form based on an abstract machine definition. Such approaches date 
      back at least to the 1970s, but have achieved new impetus based on 
      the current popularity of the programming language {Java{}}. 
      Implementations of language {Java{}} compile programs to bytecodes 
      understood by the {Java{}} Virtual Machine (JVM). More recently 
      Microsoft have released preliminary details of their ".NET" platform, 
      which is based on an abstract machine superficially similar to the 
      JVM. In each case program execution is normally mediated by a just in 
      time compiler (JIT), although in principle interpretative execution 
      is also possible. Although these two competing technologies share 
      some common aims the objectives of the virtual machine designs are 
      significantly different. In particular, the ease with which embedded 
      systems might use small-footprint versions of these virtual machines 
      depends on detailed properties of the machine definitions. In this 
      study, a compiler was implemented which can produce output code that 
      may be run on either the JVM or .NET platforms. The compiler is 
      available in the public domain, and facilitates comparisons to be 
      made both at compile time and at runtime.}
}

@INPROCEEDINGS{Jussien01-PPCExplications,
   AUTHOR       = {Narendra Jussien},
   BOOKTITLE    = {actes des 7<sup>e</sup> Journées Nationales sur la résolution de Problèmes NP-Complets},
   TITLE        = {Programmation Par Contraintes Avec Explications},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Bertrand Neveu},
   MONTH        = {juin},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {147--158},
   PUBLISHER    = {ONERA},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://njussien.e-constraints.net/publications-pardate.html#2001},
   ABSTRACT     = {Nous pr{\'e}sentons dans cet article notre experience 
      dans le domaine de l'utilisation des explications dans le cadre de la 
      programmation par contraintes. Nous pr{\'e}sentons aussi bien 
      l'implementation d'un syst{\`e}me d'explications que les diverses 
      utilisations que l'on peut en faire. Nous pr{\'e}sentons en 
      particulier, outre des utilisations classiques pour le d{\'e}bogage 
      ou la prise en compte de la dynamicit{\'e}, une utilisation plus 
      enfouie qui nous conduit a proposer une nouvelle forme de 
      programmation : programmation par contraintes avec explications.}
}

@INPROCEEDINGS{Jussien01-CPExplanations,
   AUTHOR       = {Narendra Jussien},
   BOOKTITLE    = {1<sup>st</sup> CP workshop on User-Interaction in Constraint Satisfaction},
   TITLE        = {e-Constraints: Explanation-Based Constraint Programming},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Barry O'Sullivan and Eugene Freuder},
   MONTH        = {December},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.emn.fr/jussien/publications/jussien-WCP01.pdf},
   ABSTRACT     = {In this paper, we present our experience in using 
      explanations within constraint programming: how to implement an 
      explanation system, what to use explanations for, how to use 
      explanations to develop new algorithms. More precisely, beside 
      classical uses (for debugging and/or solving dynamic problems), we 
      introduce a more in-depth use of explanations that leads to a new 
      kind of constraint programming that we call explanation-based 
      constraint programming (e-constraints). This paper summarizes and 
      extends previous works from the same author.}
}

@INPROCEEDINGS{Kobayashi01-PatternsTool,
   AUTHOR       = {Takashi Kobayashi},
   BOOKTITLE    = {Proceedings of the ECOOP workshop on Automating Object-Oriented Software Development Methods},
   TITLE        = {Object-Oriented Modeling of Software Patterns and 
      Support Tool},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Bedir Tekinerdogan and van den Broek, Pim and 
      Motoshi Saeki and Pavel Hruby and Gerson Sunyé},
   MONTH        = {October},
   NOTE         = {TR-CTIT-01-35.},
   OPTNUMBER    = {},
   ORGANIZATION = {Centre for Telematics and Information Technology},
   OPTPAGES     = {},
   PUBLISHER    = {University of Twente},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://trese.cs.utwente.nl/ecoop01-aoom/positionPapers.html},
   ABSTRACT     = {Software patterns such as Gang-of-Four (GOF) design 
      pattern [4], Fowler's analysis pattern [3] and architectural patterns 
      [1] are one of the promising techniques to develop software of high 
      quality efficiently. They are general and abstract structures that 
      frequently appear in past experiences in developing well-structured 
      and maintainable artifacts and can be efficiently re-used for new 
      software development projects. Although many researchers and 
      practitioners jointly have much efforts on collecting and cataloguing 
      patterns [5], it may be difficult for software developers to select 
      suitable patterns and use efficiently them, when we only provide 
      informal descriptions of the patterns like textbooks. To support 
      software development based on patterns, we should model the patterns 
      and its using process as formally or semi-formally as computers can 
      manage, so that a computerized tool like [2] can support software 
      development processes based on software patterns.}
}

@INPROCEEDINGS{Kollmann01-UMLAssociations,
   AUTHOR       = {Ralf Kollmann and Martin Gogolla},
   BOOKTITLE    = {Proceedings of the 8<sup>th</sup> Working Conference on Reverse Engineering},
   TITLE        = {Application of UML Associations and Their Adornments in 
      Design Recovery},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Elizabeth Burd and Peter Aiken},
   MONTH        = {October},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {81--91},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://csdl.computer.org/comp/proceedings/wcre/2001/1303/00/13030081abs.htm},
   ABSTRACT     = {Many CASE tools support reverse engineering and the UML. 
      However, it can be observed that usually, only a subset of the UML 
      notation is supported, namely those parts with a more or less direct 
      code representation. Although a lot of research is done in this 
      field, the more advanced features of UML notations are not commonly 
      supported in reverse engineering.In this paper, we show approaches to 
      discover patterns in program code that can be represented by means of 
      advanced notational features of UML class diagrams. We obtain the 
      necessary information by reverse engineering {Java{}} programs with 
      different methods. These have been implemented in a prototypical 
      implementation.}
}

@INPROCEEDINGS{Maletic01-SemanticStructuralInformation,
   AUTHOR       = {Jonathan I. Maletic and Andrian Marcus},
   BOOKTITLE    = {ICSE '01: Proceedings of the 23rd International Conference on Software Engineering},
   TITLE        = {Supporting program comprehension using semantic and 
      structural information},
   YEAR         = {2001},
   ADDRESS      = {Washington, DC, USA},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {103--112},
   PUBLISHER    = {IEEE Computer Society},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Marcos01-AggregationComposition,
   AUTHOR       = {Esperanza Marcos and Belen Vela and José M. Cavero and 
      Paloma Cáceres},
   BOOKTITLE    = {Proceedings of the 5<sup>th</sup> east-european conference on Advances in Databases and Information Systems},
   TITLE        = {Aggregation and Composition in Object-Relational 
      Database Design},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Albertas Caplinskas and Johann Eder},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {195--209},
   PUBLISHER    = {Springer-Verlag},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.science.mii.lt/ADBIS/local1/marcos.pdf},
   ABSTRACT     = {Recently, there have emerged more sophisticated 
      applications, which have to represent complex objects related with 
      complex relationships, such as aggregations and compositions. New 
      object-relational databases are more appropriated than relational 
      databases to support complex objects. Besides, the most common way of 
      designing databases is using the E/R model, without taking in account 
      the program design. However, new object-oriented design techniques, 
      such as UML (Universal Modelling Language), permit modelling the full 
      system, including the database schema, in a uniform way. Besides, as 
      UML is an extensible language, it allows introducing new stereotypes 
      for specific applications if it is needed. So, new stereotypes for 
      database design can be also defined. The framework of this paper is 
      an Object-Relational Database Design Methodology. The methodology 
      specifies new UML stereotypes for Object-Relational Database Design 
      as well as it proposes some guidelines to translate an UML schema 
      into an object-relational one. The guidelines are based on the 
      SQL:1999 object-relational model and in Oracle8i as an example of 
      product. In this paper we focus on the design of two UML 
      constructors: aggregation and composition. We propose its 
      implementation in Oracle8i, because unlike SQL:1999, Oracle8i 
      supports a data type, the nested table, that is specially 
      appropriated to represent the UML aggregation and composition.}
}

@INPROCEEDINGS{McNatt01-CouplingDPBenefits,
   AUTHOR       = {William B. McNatt and James M. Bieman},
   BOOKTITLE    = {Proceedings of the 25<sup>th</sup> Computer Software and Applications Conference},
   TITLE        = {Coupling of Design Patterns: Common Practices and Their 
      Benefits},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {T.H. Tse},
   MONTH        = {October},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {574--579},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=960670},
   ABSTRACT     = {Object-oriented (OO) design patterns define collections 
      of interconnected classes that serve a particular purpose. A design 
      pattern is a structural unit in a system built out of patterns, not 
      unlike the way a function is a structural unit in a procedural 
      program or a class is a structural unit in an OO system designed 
      without patterns. When designers treat patterns as structural units, 
      they become concerned with issues such as coupling and cohesion at a 
      new level of abstraction. We examine the notion of pattern coupling 
      to classify how designs may include coupled patterns. We find many 
      examples of coupled patterns; this coupling may be "tight" or 
      "loose", and provides both benefits and costs. We qualitatively 
      assess the goodness of pattern coupling in terms of effects on 
      maintainability, factorability, and reusability when patterns are 
      coupled in various ways}
}

@INPROCEEDINGS{Niere01-RecoveringUML,
   AUTHOR       = {Jörg Niere and Jörg P. Wadsack and Albert Zündorf},
   BOOKTITLE    = {Proceedings of the 2<sup>nd</sup> workshop on Soft Computing Applied to Software Engineering},
   TITLE        = {Recovering UML Diagrams from Java Code Using Patterns},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Jens H. Jahnke and Conor Ryan},
   MONTH        = {February},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {89--97},
   PUBLISHER    = {Springer-Verlag},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://trese.cs.utwente.nl/scase/scase-2/Proceedings.pdf},
   ABSTRACT     = {Recovering the static structure of legacy source code 
      e.g. as an UML class diagram is quite well understood. In contrast, 
      recovering high-level behaviour diagrams from source code is still an 
      open issue. This paper proposes to use fuzzy pattern detection 
      techniques for the recovery of UML collaboration diagrams from source 
      code. The approach is based on a knowledge base of basic datatypes 
      and of generic collection classes and of code clich\'es for {Java{}} 
      beans and of fuzzy patterns for object structure look-up and 
      modification clich\'es. We handle the diversity of existing code 
      clich\'es by organizing them in an object-oriented hierarchy 
      factorizing important common properties and by relaxing exactness 
      requirements for clich\'e detection with the help of fuzzy theory. We 
      handle the runtime efforts for clich\'e detection using a 
      sophisticated inference mechanism based on generic fuzzy reasoning 
      nets (GFRN's). The work is part of the \ygg@product{Fujaba} case tool 
      aiming to support round-trip engineering for UML and {Java{}}.}
}

@INPROCEEDINGS{Drori01-HyperCASE,
   AUTHOR       = {Drori Offer},
   BOOKTITLE    = {Proceedings of the ECOOP Workshop on Automating Object-Oriented Software Development Methods},
   TITLE        = {HyperCASE -- Case Tool Which Supports the Entire Life 
      Cycle of OODPM},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://shum.huji.ac.il/õfferd/offer002.htm}
}

@INPROCEEDINGS{Ostermann01-CompoundReferences,
   AUTHOR       = {Klaus Ostermann and Mira Mezini},
   BOOKTITLE    = {Proceedings of the conference on Object-Oriented Programming, Systems, Languages, and Applications},
   TITLE        = {Object-Oriented Composition Untangled},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {283--299},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   ABSTRACT     = {Object-oriented languages come with pre-defined 
      composition mechanisms, such as inheritance, object composition, or 
      delegation, each characterized by a certain set of composition 
      properties, which do not themselves individually exist as 
      abstractions at the language level. However, often non-standard 
      composition semantics is needed, with a mixture of composition 
      properties, which is not provided as such by any of the standard 
      composition mechanisms. Such non-standard semantics are simulated by 
      complicated architectures that are sensitive to requirement changes 
      and cannot easily be adapted without invalidating existing clients. 
      In this paper, we propose compound references, a new abstraction for 
      object references, that allows us to provide explicit linguistic 
      means for expressing and combining individual composition properties 
      on-demand. The model is statically typed and allows the programmer to 
      express a seamless spectrum of composition semantics in the interval 
      between object composition and inheritance. The resulting programs 
      are better understandable, due to explicitly expressed design 
      decisions, and less sensitive to requirement changes.}
}

@INPROCEEDINGS{Rapicault01-Interclassement,
   AUTHOR       = {Pascal Rapicault and Amedeo Napoli},
   BOOKTITLE    = {actes du 7<sup>e</sup> colloque Langages et Modèles à Objets},
   TITLE        = {Evolution d'une Hiérarchie de Classes par 
      Interclassement},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Robert Godin and Isabelle Borne},
   MONTH        = {janvier},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {215--230},
   PUBLISHER    = {Hermès Science Publications},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://scal.unice.fr/research.html},
   ABSTRACT     = {Dans le cycle de vie d'une librairie ou d'un framework, 
      les \'evolutions sont tr\`es fr\'e-quentes, et aussi bien les 
      utilisateurs que les d\'eveloppeurs sont confront\'es \`a des 
      probl\`emes de recompilation, modification du code, compatibilit\'e 
      ascendante,livraison des nouvelles versions. Devant ces probl\`emes 
      d\'erivant du ``Fragile Base Class problem" , nous pensons que le 
      sous-classement n'est pas la solution la plus adapt\'ee, et proposons 
      une extension de la hi\'erarchie par insertion de super-classes au 
      lieu de sous-classes. Nous appelons cette insertion interclas-sement. 
      Nous d\'ecrivons l'interclassement en montrant comment il peut \^etre 
      impl\'ement\'e et les avantages qui peuvent en \^etre retir\'es.}
}

@INPROCEEDINGS{Reiss01-EncodingExecutions,
   AUTHOR       = {Steven P. Reiss and Manos Renieris},
   BOOKTITLE    = {Proceedings of the 23<sup>rd</sup> International Conference on Software Engineering},
   TITLE        = {Encoding Program Executions},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Mary Jean Harrold and Wilhelm Schäfer},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {221--230},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?id=381497},
   ABSTRACT     = {Dynamic analysis is based on collecting data as the 
      program runs. However, raw traces tend to be too voluminous and too 
      unstructured to be used directly for visualization and understanding. 
      We address this problem in two phases: the first phase selects 
      subsets of the data and then compacts it, while the second phase 
      encodes the data in an attempt to infer its structure. Our major 
      compaction/selection techniques include gprof-style N-depth call 
      sequences, selection based on class, compaction based on time 
      intervals, and encoding the whole execution as a directed acyclic 
      graph. Our structure inference techniques include run-length 
      encoding, context-free grammar encoding, and the building of finite 
      state automata.}
}

@INPROCEEDINGS{Reissing01-QualityDesigns,
   AUTHOR       = {Ralf Reissing},
   BOOKTITLE    = {Proceedings of the 16<sup>th</sup> OOPSLA Doctoral Symposium},
   TITLE        = {Assessing the Quality of Object-Oriented Designs},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Doug Lea},
   MONTH        = {October},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.informatik.uni-stuttgart.de/ifi/se/publications/download/ Doctoral_Symposium2001.pdf},
   ABSTRACT     = {Object-oriented design plays a pivotal role in software 
      development because it determines the structure of the software 
      solution. Once the design has been implemented, it is difficult and 
      expensive to change. Therefore high design quality is vital for 
      reducing software cost, and quality assurance in the design stage has 
      a high return on investment. Unfortunately, it is mostly unclear what 
      design quality really is. This thesis wants to clarify the general 
      notion of design quality and to make design quality measurable. The 
      approach is as follows: The criteria for design quality and their 
      relationships are identified. Then objective and subjective metrics 
      for each criteria are introduced. Together the criteria and the 
      metrics form a quality model for object-oriented design. This model 
      can be used for design assessment both in comparing design 
      alternatives and in design improvement.}
}

@INPROCEEDINGS{Reissing01-OODesignMeasurement,
   AUTHOR       = {Ralf Reissing},
   BOOKTITLE    = {procedings of the 5<sup>th</sup> ECOOP workshop on Quantitative Approaches in Object-Oriented Software Engineering},
   TITLE        = {Towards a Model for Object-Oriented Design Measurement},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Brito e Abreu, Fernando and Brian Henderson-Sellers and 
      Mario Piattini and Geert Poels and Houari A. Sahraoui},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {71--84},
   PUBLISHER    = {Springer-Verlag},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.iro.umontreal.ca/$\sim$sahraouh/qaoose01/},
   ABSTRACT     = {Object-oriented design plays a pivotal role in software 
      development because it determines the structure of the software 
      solution. Once the design has been implemented, it is difficult and 
      expensive to change. Therefore the design should be good from the 
      start. Metrics can help to evaluate and improve the quality of a 
      design. Many metrics of object-oriented design have been proposed. 
      Unfortunately, most of these metrics lack a precise and unambiguous 
      definition. However, in order to automate design evaluation a precise 
      definition of metrics is needed. Therefore the definitions should be 
      based on a formal model of design. In this paper a formal model for 
      object-oriented design called ODEM (Object-oriented DEsign Model) is 
      presented. This model can serve as a foundation for the formal 
      definition of object-oriented design metrics. ODEM is based on the 
      UML meta-model, that provides a formal model of object-oriented 
      designs expressed in UML, the most widespread design notation. 
      Examples of the use of ODEM for defining object-oriented metrics are 
      given. Two case studies on existing metrics suites for 
      object-oriented design show the benefits of applying ODEM to 
      established object-oriented design metrics.}
}

@INPROCEEDINGS{SiCallan01-Readability,
   AUTHOR       = {Luo Si and Jamie Callan},
   BOOKTITLE    = {CIKM},
   TITLE        = {A Statistical Model for Scientific Readability},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   NOTE         = {citeseer.ist.psu.edu/si01statistical.html},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {574-576},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   ABSTRACT     = {This paper presents a new method of using statistical 
      models to estimate the reading difficulty of Web pages. Language 
      Models are used to represent the content typically associated with 
      different readability levels. Reading level classifiers are created 
      as linear combinations of a language model and surface linguistic 
      features. Experiments show that this new method is more accurate than 
      the widely used Flesch-Kincaid readability formula}
}

@INPROCEEDINGS{Simon01-MetricsBasedRefactoring,
   AUTHOR       = {Frank Simon and Frank Steinbrückner and Claus Lewerentz},
   BOOKTITLE    = {Proceedings of the Fifth European Conference on Software Maintenance and Reengineering (CSMR'01)},
   TITLE        = {Metrics Based Refactoring},
   YEAR         = {2001},
   ADDRESS      = {Washington, DC, USA},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {30},
   PUBLISHER    = {IEEE Computer Society},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Tonella01-WeaklyTypedContainers,
   AUTHOR       = {Paolo Tonella and Alessandra Potrich},
   BOOKTITLE    = {Proceedings of the 9<sup>st</sup> International Conference on Software Maintenance},
   TITLE        = {Reverse Engineering of the UML Class Diagram from C++ 
      Code in Presence of Weakly Typed Containers},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Gerardo Canfora and 
      Anneliese Amschler Andrews--Von Maryhauser},
   MONTH        = {November},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {376--385},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.computer.org/proceedings/icsm/1189/11890376abs.htm},
   ABSTRACT     = {UML diagrams, and in particular the most frequently used 
      one, the class diagram, represent a valuable source of information 
      even after the delivery of the system, when it enters the maintenance 
      phase. Several tools provide a reverse engineering engine to recover 
      it from the code.In this paper, an algorithm is proposed for the 
      improvement of the accuracy of the UML class diagram extracted from 
      the code. Specifically, important information about inter-class 
      relations may be missed in a reverse engineered class diagram, when 
      weakly typed containers, i.e., containers collecting objects whose 
      type is the top of the inheritance hierarchy, are employed. In fact, 
      the class of the contained objects is not directly known, and 
      therefore no relation with it is apparent from the container 
      declaration.The proposed approach was applied to several software 
      components developed at CERN. Experimental results highlight that a 
      substantial improvement is achieved when the container type 
      information is refined with the inferred data. The number of 
      relations otherwise missed is relevant and the connectivity of the 
      associated class diagrams is radically different when containers are 
      considered.}
}

@INPROCEEDINGS{Welch00-Kava,
   AUTHOR       = {Ian Welch and Robert Stroud},
   BOOKTITLE    = {Proceedings of USENIX Conference on Object-Oriented Technology},
   TITLE        = {Kava -- A Reflective Java Based on Bytecode Rewriting},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Rajendra Raj and Yi-Min Wang},
   MONTH        = {January},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {USENIX Association},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   JOURNAL      = {Lecture Notes in Computer Science 1826},
   URL          = {http:// www.cs.ncl.ac.uk/research/dependability/reflection/downloads/coots01.pdf},
   ABSTRACT     = {Many authors have proposed using byte code rewriting as 
      a way of adapting or extending the behaviour of {Java{}} classes. 
      There are toolkits available that simplify this process and raise the 
      level of abstraction above byte code. However, to the best of our 
      knowledge, none of these toolkits provide a complete model of 
      behavioural reflection for {Java{}}. In this paper, we describe how 
      we have used load-time byte code rewriting techniques to construct a 
      run-time metaobject protocol for {Java{}} that can be used to adapt 
      and customise the behaviour of {Java{}} classes in a more flexible 
      and abstract way. Apart from providing a better semantic basis for 
      byte code rewriting techniques, our ap-proach also has the advantage 
      over other reflective {Java{}} implementations that it doesn't 
      require a modified com-piler or JVM, can operate on byte code rather 
      than source code and cannot be bypassed. In this paper we describe 
      the implementation of Kava, our reflective implementation of 
      {Java{}}, and discuss some of the linguistic issues and technical 
      challenges involved in implementing such a tool on top of a standard 
      JVM. Kava is available from 
      http://www.cs.ncl.ac.uk/research/dependability/reflection.}
}

@INPROCEEDINGS{Wendorff01-AssessmentPatterns,
   AUTHOR       = {Peter Wendorff},
   BOOKTITLE    = {Proceedings of 5<sup>th</sup> Conference on Software Maintenance and Reengineering},
   TITLE        = {Assessment of Design Patterns During Software 
      Reengineering: Lessons Learned from a Large Commercial Project},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Pedro Sousa and Jürgen Ebert},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {77--84},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://www.computer.org/proceedings/csmr/1028/ 10280077abs.htm},
   ABSTRACT     = {Design patterns have been eagerly adopted by software 
      developers in recent years. There is ample evidence that patterns can 
      have a beneficial impact on software quality, but in some case 
      patterns have been inappropriately applied due to a lack of 
      experience. This paper reports on a large commercial project where 
      the uncontrolled use of patterns has contributed to severe 
      maintenance problems. As a result a substantial reengineering effort 
      was undertaken, that led to the identification of a number of 
      inappropriately applied patterns. At first glance the elminination of 
      these patterns appears to be desirable, but often they are tighly 
      coupled to other software artefacts, so that their removal is 
      economically not viable.}
}

@INPROCEEDINGS{Ziane01-PatternProgramTransformation,
   AUTHOR       = {Mikal Ziane},
   BOOKTITLE    = {Proceedings of the 7<sup>th</sup> colloquium on Languages and Models with Objects},
   TITLE        = {Towards Tool Support for Design Patterns Using Program 
      Transformations},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Robert Godin and Isabelle Borne},
   MONTH        = {January},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {199--124},
   PUBLISHER    = {Hermés Science Publications},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Guimaraes01-ExceptionIdiom,
   AUTHOR       = {de Oliveira Guimarães, José},
   BOOKTITLE    = {Proceedings of the V Simpósio Brasileiro de Linguagens de Programação},
   TITLE        = {An Idiom for Exception Treatment in \Cpp and Java},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Martin A. Musicante and E. Hermann Haeusler},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {Departamento de Informática, Universidade Federal do Paraná},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.dc.ufscar.br/~jose/green/Articles.htm},
   ABSTRACT     = {The exception systems of C++ and Java use catch clauses 
      for exception treatment. These clauses are statically attached to try 
      blocks and cannot be reused. We propose an idiom that encapsulates 
      catch clauses into methods of special classes thus giving the 
      benefits of object oriented programming to exception treatment. The 
      result is an easy to use idiom that allows for code reuse and helps 
      to enforce consistence among all exception treatments throughout the 
      program.}
}

@TECHREPORT{AlbinAmiot01-JavaXL,
   AUTHOR       = {Hervé Albin-Amiot},
   INSTITUTION  = {École des Mines de Nantes},
   TITLE        = {JavaXL, a Java Source Code Transformation Engine},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   NUMBER       = {2001-INFO},
   OPTTYPE      = {}
}

@TECHREPORT{Allen01-DanglingComposite,
   AUTHOR       = {Eric E. Allen},
   INSTITUTION  = {IBM developerWorks},
   TITLE        = {Diagnosing Java Code: The Dangling Composite Bug Pattern 
      -- Squash One of the Most Common Causes of the Null-Pointer Exception},
   YEAR         = {2001},
   OPTADDRESS   = {},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTTYPE      = {},
   URL          = {http://www-106.ibm.com/developerworks/java/library/j-diag2/},
   ABSTRACT     = {One of the most commonly recurring (and most complained 
      about) bugs in {Java{}} programming is the null-pointer exception. 
      Tracking down the cause of one of these bugs can truly make you 
      question your career decision. In this installment of Diagnosing 
      {Java{}} Code, we'll continue with our examination of bug patterns by 
      cataloging one of the most common patterns associated with 
      null-pointer exceptions and step through an example of a class that 
      contains it. We will then review several programming techniques that 
      can help you minimize the pattern's occurrence.}
}

@TECHREPORT{DevelopMentor01-CLRMemory,
   AUTHOR       = { DevelopMentor},
   INSTITUTION  = {Develop Mentor},
   TITLE        = {Memory Management},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTTYPE      = {},
   ABSTRACT     = {C++ programmers have long struggled with manual resource 
      management ; resorting to special debugging tools, disciplined use of 
      idioms like smart pointers, and special debug builds of 
      compiler-provided libraries. An entire industry was created to 
      specifically deal with detecting and diagnosing resource management 
      problems in C++ applications. Conversely, VB and {Java{}} programmers 
      have long known the benefit of having a runtime track resource usage 
      on their behalf. As a result, VB and {Java{}} programmers 
      historically keep normal working hours thant do their C++ co-workers. 
      After completing this module, you should be able to: Understand how 
      memory is managed by the CLR; Understand how allocation works in the 
      CLR; Understand how garbage-collection works in the CLR; And, 
      Understand how and why to use finalization.}
}

@TECHREPORT{Langevine01-TracingExecution,
   AUTHOR       = {Ludovic Langevine and Pierre Deransart and 
      Mireille Ducassé and Erwan Jahier},
   INSTITUTION  = {INRIA},
   TITLE        = {Tracing Execution of CLP(FD) Programs: A Trace Model and 
      an Experimental Validation Environment},
   YEAR         = {2001},
   OPTADDRESS   = {},
   MONTH        = {December},
   OPTNOTE      = {},
   NUMBER       = {RR-4342},
   OPTTYPE      = {},
   URL          = {http://www.inria.fr/rrrt/rr-4342.html},
   ABSTRACT     = {Developing and maintaining Constraint Logic Programs 
      (CLP) requires performance debugging tools based on visualization and 
      explanation. However, existing tools are built in an ad hoc way and 
      porting them from one platform to another is very difficult and 
      experimentation of new tools remains limited. It has been shown in 
      previous work that, from a fine-grained execution trace, a number of 
      interesting views about logic program executions could be generated 
      by trace analysis. In this report, we propose a generic trace model 
      for constraint resolution by narrowing and a methodology to study and 
      improve it. The trace model is the first one proposed for and does 
      not pretend to be the ultimate one. The methodology is based on the 
      following steps: definition of a formal model of trace, extraction of 
      relevant informations by a trace analyzer, utilization of the 
      extracted informations in several debugging tools. We present the 
      trace model and an implementation which includes a tracer, based on a 
      meta-interpreter written in ISO-Prolog, and an opium-like analyzer. 
      The efficiency of the tracer is tested and some elementary debugging 
      tools based on trace analysis are experimented. This work sets the 
      basis for generic analysis of behavior of programs. is a short 
      version of this report.}
}

@TECHREPORT{Microsoft01-DebugOverview,
   AUTHOR       = { Microsoft},
   INSTITUTION  = {Microsoft Coportation},
   TITLE        = {Debug Overview},
   YEAR         = {2001},
   OPTADDRESS   = {},
   MONTH        = {August},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTTYPE      = {}
}

@TECHREPORT{Popovici01-DynamicAOPwithProse,
   AUTHOR       = {Andrei Popovici and Thomas Gross and Gustavo Alonso},
   INSTITUTION  = {ETH Zürich, Department of Computer Science, Institute of Information Systems},
   TITLE        = {Dynamic Homogenous AOP with PROSE},
   YEAR         = {2001},
   OPTADDRESS   = {},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTTYPE      = {},
   URL          = {http://www.inf.ethz.ch/department/IS/iks/publications.html},
   ABSTRACT     = {Aspect Oriented Programming (AOP) is an important 
      technique to express modular and orthogonal adaptations of existing 
      software components. Woven into a program, an aspect may change 
      several units of functionality. Existing approaches to AOP require 
      that the programmer deals with two languages: the source language of 
      the application and the aspect language (which describes the aspects 
      to be woven into the system). During program evolution, a developer 
      must understand what program units are actually changed by weaving, 
      check how the changed application behaves, and possibly correct the 
      aspect de nitions. However, rapid AOP prototyping and debugging is 
      di\AE cult with existing platforms because current aspect weaving 
      tools do not supported dynamic changes and a two-language setup 
      creates a barrier between the application code and the aspect code. 
      This paper describes PROSE (PROgrammable extenSions of sErvices), a 
      platform for AOP based on {Java{}} which addresses both problems. 
      Aspects are expressed in the same source language as the application 
      (Java). And PROSE allows aspects to be woven, unwoven, or replaced at 
      run-time. PROSE can also be used as a high-level debugging tool for 
      any program. To illustrate its features, the paper describes an 
      application in which key functionality has been replaced at run-time 
      using the PROSE system.}
}

@TECHREPORT{Sessions01-.NET,
   AUTHOR       = {Roger Sessions},
   INSTITUTION  = {ObjectWatch},
   TITLE        = {Java 2 Enterprise Edition (J2EE) versus The .NET 
      Platform -- Two Visions for eBusiness},
   YEAR         = {2001},
   OPTADDRESS   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTTYPE      = {},
   ABSTRACT     = {An {eCommerce} site without a profit plan is like a car 
      without gas. It may look nice. It may impress people. It may have 
      cost you an arm and a leg. But in the end, it ain't goin' nowhere. 
      Today, there are two technical visions for {eBusiness} and 
      {eBusiness} collaboration. One of these is the Microsoft vision and 
      goes by the overall name of the .NET platform. The other is the Sun 
      vision and goes by the overall name of {Java 2 Enterprise} Edition 
      (J2EE). In this paper, I will compare and contrast the .NET platform 
      and J2EE. I will focus on the main issues that I believe will drive 
      {eBusinesses} over the next half decade: collaboration and 
      profitability. I will discuss technical details of these two 
      platform, but only where they impact collaboration and profitability.}
}

@MANUAL{Compost01-Version0.6,
   TITLE        = {COMPOST Technical Manual},
   OPTADDRESS   = {},
   OPTAUTHOR    = {},
   OPTEDITION   = {},
   MONTH        = {June},
   OPTNOTE      = {},
   ORGANIZATION = {Institut für Programmstrukturen und Datenorganisation, University of Karlsruhe},
   YEAR         = {2001},
   URL          = {http://www.info.uni-karlsruhe.de/~compost/},
   ABSTRACT     = {This manual describes the core functional system of 
      COMPOST v0.6. Potential users should read this manual in order to 
      understand the architecture of the system. The COMPOST libraries 
      provide you with a powerful platform for all kinds of {Java{}} 
      source-to-source transformations. However, the use of such a complex 
      system requires quite some knowledge in the fields of programming 
      languages and compiler technology. You have been warned...}
}

@MANUAL{OMG01-UML,
   TITLE        = {UML v1.4 Specification},
   OPTADDRESS   = {},
   AUTHOR       = {Object Management Group},
   OPTEDITION   = {},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTORGANIZATION = {},
   YEAR         = {2001},
   URL          = {http://www.omg.org/cgi-bin/doc?formal/01-09-67}
}

@MISC{Baniassad01-PhD-Proposal,
   AUTHOR       = {Elisa Baniassad},
   OPTHOWPUBLISHED = {},
   MONTH        = {May},
   OPTNOTE      = {},
   TITLE        = {PhD Thesis Proposal: Linking Design to Source Code Using 
      Design Rationale Graphs},
   YEAR         = {2001},
   URL          = {http://www.cs.ubc.ca/~bani/},
   ABSTRACT     = {As source code travels the software lifecycle, the 
      reasoning behind certain design decisions is lost, often leading to 
      violations of high-level constraints and requirements during program 
      maintenance. We present a model called a Design Rationale to Source 
      Graph (DR-SG) that is a graph formed from Design Pattern 
      documentation and linked to a source code base. The DR-SG allows 
      developers to trace design concepts through design documentation down 
      to code. The thesis of this proposed research is that software 
      engineers would could completely and confidently satisfy high-level 
      design goals when performing software change tasks if provided with a 
      semi-automatic technique for tracing from the high level design 
      goals, through design documentation, to source. We will test software 
      engineers' confidence and completeness in satisfying high-level 
      design goals while performing software change tasks by conducting two 
      studies: a controlled experiment, and a set of industrial case 
      studies.}
}

@MISC{Debruyne01-OADymPPaC,
   AUTHOR       = {Romuald Debruyne and Jean-Daniel Fekete and 
      Narendra Jussien},
   OPTHOWPUBLISHED = {},
   MONTH        = {novembre},
   NOTE         = {Réalisation RNTL OADymPPaC v2.2.2.1},
   TITLE        = {Proposition de format concret pour des traces générées 
      par des solveurs de contraintes},
   YEAR         = {2001},
   URL          = {http://njussien.e-constraints.net/publications-pardate.html#2001}
}

@MISC{Ferris01-JavaProgramming,
   AUTHOR       = {Matthew E. Ferris},
   OPTHOWPUBLISHED = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   TITLE        = {Java Programming for Palm OS},
   YEAR         = {2001},
   URL          = {http://www.onJava.com/pub/a/onJava/2001/03/15/Java_palm.html},
   ABSTRACT     = {The landscape for coding {Palm} OS applications with 
      {Java{}} is far from uniform or level. There are several different 
      APIs currently available, each of which gives a different degree of 
      access to the underlying {Palm} OS API. Perhaps the most well known 
      of these is the one from Sun Microsystems; it is not the only one. 
      This article is not a tutorial on {Palm} programming with {Java{}}~-- 
      each solution discussed has its own challenges and quirks~-- but, 
      rather, an overview of what tools are available for developers. We 
      will survey the landscape to discover what you can expect when 
      developing {Palm} OS applications with {Java{}}.}
}

@MISC{Hubert01-ArcStyler,
   AUTHOR       = {Richard Hubert},
   OPTHOWPUBLISHED = {},
   MONTH        = {November},
   OPTNOTE      = {},
   TITLE        = {ArcStyler -- The Architectural IDE for MDA},
   YEAR         = {2001},
   URL          = {http://www.iO-Software.com}
}

@MISC{OTI01-Eclipse,
   AUTHOR       = {Object Technology International / IBM},
   OPTHOWPUBLISHED = {},
   MONTH        = {July},
   OPTNOTE      = {},
   TITLE        = {Eclipse Platform -- A Universal Tool Platform},
   YEAR         = {2001},
   URL          = {http://www.eclipse.org},
   ABSTRACT     = {The Eclipse Platform is designed and built to meet the 
      following requirements: \begin{itemize} \item Support the 
      construction of a variety of tools for application development. \item 
      Support an unrestricted set of tool providers, including independent 
      software vendors (ISVs). \item Support tools to manipulate arbitrary 
      content types (e.g., HTML, {Java{}}, C, JSP, EJB, XML, and GIF). 
      \item Facilitate seamless integration of tools within and across 
      different content types and tool providers. \item Support both GUI 
      and non-GUI-based application development environments. \item Run on 
      a wide range of operating systems, including Windows and Linux. \item 
      Capitalize on the popularity of the {Java{}} programming language for 
      writing tools. \end{itemize} The Eclipse Platform's principal role is 
      to provide tool providers with mechanisms to use, and rules to 
      follow, that lead to seamlessly-integrated tools. These mechanisms 
      are exposed via well-defined API interfaces, classes, and methods. 
      The Platform also provides useful building blocks and frameworks that 
      facilitate developing new tools.}
}

@MISC{LondoMetroPolice01-Fingerprinting,
   AUTHOR       = {London Metropolitan Police},
   OPTHOWPUBLISHED = {},
   MONTH        = {July},
   NOTE         = {See www.met.police.uk/so/ 100years/henry.htm.},
   TITLE        = {Sir Edward Henry -- Fingerprint pioneer and founder of 
      the Fingerprint Bureau at Scotland Yard},
   YEAR         = {2001}
}

@MISC{Railsback01-WorkingHypotheses,
   AUTHOR       = {L. Bruce Railsback},
   OPTHOWPUBLISHED = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   TITLE        = {T. C. Chamberlin's ``Method of Multiple Working 
      Hypotheses: An Encapsulation for Modern Students},
   YEAR         = {2001},
   URL          = {http://www.gly.uga.edu/railsback_chamberlin.html},
   ABSTRACT     = {Scientific study designed to increase our knowledge of 
      natural phenomena can follow at least three different intellectual 
      methods. These can be called the method of the ruling theory, the 
      method of the working hypothesis, and the method of multiple working 
      hypotheses. The first two are the most popular but they can, and 
      often do, lead to ineffective research that overlooks relevant data. 
      Instead, the method of multiple working hypotheses offers a more 
      effective way of organizing one's research.}
}

@MISC{Vauttier01-EMail-AAC,
   AUTHOR       = {Sylvain Vauttier},
   OPTHOWPUBLISHED = {},
   MONTH        = {mai},
   NOTE         = {Courrier électronique personnel, disponible sur demande.},
   TITLE        = {Re: Association, agrégation, composition},
   YEAR         = {2001}
}

@MISC{Ziane01-Lutin,
   AUTHOR       = {Mikal Ziane},
   OPTHOWPUBLISHED = {},
   MONTH        = {Mai},
   OPTNOTE      = {},
   TITLE        = {LUTIN -- Outillage Des Patrons de Conception et 
      D'architecture Avec Prise En Compte de Leur Sémantique},
   YEAR         = {2001},
   KEYWORDS     = {Design Patterns},
   URL          = {http://www.industrie.gouv.fr/rntl/AAP2001/Fiches_Resume/LUTIN.htm},
   ABSTRACT     = {Le projet Lutin vise \`a permettre l'int\'egration forte 
      des patrons de conception et d'architecture dans les ateliers UML, et 
      en particulier dans l'atelier de d\'eveloppement de logiciel 
      Objecteering de la soci\'et\'e Softeam. Les objectifs sont : (1) 
      d'apporter un gain significatif de productivit\'e dans l'utilisation 
      des patrons ; (2) d'encourager l'int\'egration de nouveaux patrons 
      dans l'atelier Objecteering en fournissant un cadre formel, une 
      m\'ethodologie et un outil gratuit pour les d\'ecrire et les y 
      int\'egrer.}
}

@UNPUBLISHED{Beedle01-UnifiedTheory,
   AUTHOR       = {Michael A. Beedle},
   NOTE         = {Submitted to OOPSLA 2001.},
   TITLE        = {A Unified Theory of Software Patterns},
   MONTH        = {October},
   YEAR         = {2001},
   KEYWORDS     = {Design Patterns},
   URL          = {http://www.mikebeedle.com/pub/unified.pdf},
   ABSTRACT     = {A unified theory of software patterns is presented 
      through the unification of other existing pattern theories. The 
      resulting new theory resolves two issues that practitioners often 
      find with software patterns and pattern languages: 1) Lack of 
      specificity of software patterns, 2) Lack of specificity in the 
      joint-points in pattern languages. The theories unified in this paper 
      are: 1) the General Pattern Theory from Grenander, 2) the Lepus 
      software patterns theory by Eden and co-workers, and 3) the 
      Alexanderian pattern theory. This unified theory defines 
      commonalities for 1) pattern structure, 2) invariance of 
      relationships on compositions of pattern instances, 3) comparative 
      measurements on candidate patterns, and 4) pattern composition to 
      form functionally and morphologically complete wholes.}
}

@UNPUBLISHED{Caromel01-SecurityMetaProgramming,
   AUTHOR       = {Denis Caromel and Julien Vayssiere},
   NOTE         = {},
   TITLE        = {Combining Security with Meta Programming in Java},
   OPTMONTH     = {},
   YEAR         = {2001},
   ABSTRACT     = {This article investigates the security issues raised by 
      the use of meta-programming systems in {Java{}}. For each possible 
      type of MOP (compile-time, load-time, etc.), we study what are the 
      permissions required for both the base and the meta-level protection 
      domains, taking into account the flow of control between the 
      different parts of the application. We show that the choice of a 
      particular MOP architecture has a strong impact on the security 
      issues. Another important outcome of this article is the following: 
      in a component-based architecture with code from various origins and 
      trusts, we provide a set of rules for combining the permissions 
      associated with each protection domain (integration, base-level, 
      meta-level, etc.).}
}

@UNPUBLISHED{Maletic01-Table,
   AUTHOR       = {Jonathan I. Maletic and Tony Colston and Andrian Marcus},
   NOTE         = {},
   TITLE        = {A Table Based Viewer / Editor for Object-Oriented Class 
      Specifications and Hierarchies},
   OPTMONTH     = {},
   YEAR         = {2001},
   ABSTRACT     = {The paper presents a viewer/editor for object oriented 
      class specifications and hierarchies. The class specifications are 
      represented as a table that hides the extraneous syntactic tokens. 
      The tbale view is customizable in a variety of ways (e.g. column 
      organization, and row ordering) to support the difffering needs of 
      specific types of user roles. That is, the developer of a class is 
      interested in much more information than a client who is just using a 
      class to solve another problem.}
}

@UNPUBLISHED{DeVolder01-CodeGenerators,
   AUTHOR       = {Kris De Volder},
   NOTE         = {Submitted to ECOOP 2001.},
   TITLE        = {Implementing Design Patterns as Declarative Code 
      Generators},
   OPTMONTH     = {},
   YEAR         = {2001},
   KEYWORDS     = {Design Patterns},
   ABSTRACT     = {The implementation of a design pattern typically cannot 
      be reused. Consequently implementing design patterns is a tedious, 
      repetitive and error-prone activity with ample opportunities to make 
      the same mistakes over and over again. We address this issue by 
      automating design-pattern implementation by means of code generators 
      which are defined as declarative logic meta programs generating 
      {Java{}} code and are therefore called declarative code generators. 
      While a reusable code-generator is typically somewhat harder to 
      implement than a single instance of a design pattern, it is worth the 
      effort because: 1.It avoids tedious and error prone copy-paste-edit 
      implementation. 2.The extra effort is not prohibitive because 
      declarative code generation allows the code-generators to be 
      implemented relatively easily. 3.Declarative code generators combine 
      naturally and thus allow for generation of combinations of design 
      patterns.}
}

@BOOK{Sun96-JavaLanguage,
   PUBLISHER    = {Addison-Wesley},
   TITLE        = {The Java Language Specification},
   YEAR         = {2000},
   AUTHOR       = {James Gosling and Bill Joy and Guy Steele},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   EDITION      = {2<sup>nd</sup>},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {java.sun.com/docs/books/jls/},
   ABSTRACT     = {Written by the inventors of the technology, \textit{The 
      Java Language Specification, Second Edition} is the definitive 
      technical reference for the Java programming language. If you want to 
      know the precise meaning of the language's constructs, this is the 
      source for you. The book provides complete, accurate, and detailed 
      coverage of the syntax and semantics of the Java programming 
      language. It describes all aspects of the language, including the 
      semantics of all types, statements, and expressions, as well as 
      threads and binary compatibility.}
}

@BOOK{Kan00-metricsqualitymodel,
   PUBLISHER    = {Addison-Wesley publishing Company},
   TITLE        = {Metrics and Models in Software Quality Engineering},
   YEAR         = {2000},
   AUTHOR       = {Stephan H. Kan},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   OPTEDITION   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@BOOK{Raymond00-CathedralBazaar,
   PUBLISHER    = {Eric S. Raymond},
   TITLE        = {The Cathedral and the Bazaar},
   YEAR         = {2000},
   AUTHOR       = {Eric Steven Raymond},
   ALTEDITOR    = {},
   OPTADDRESS   = {},
   EDITION      = {Revision 1.57},
   MONTH        = {September},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/},
   ABSTRACT     = {I anatomize a successful open-source project, fetchmail, 
      that was run as a deliberate test of the surprising theories about 
      software engineering suggested by the history of Linux. I discuss 
      these theories in terms of two fundamentally different development 
      styles, the ``cathedral'' model of most of the commercial world 
      versus the ``bazaar'' model of the Linux world. I show that these 
      models derive from opposing assumptions about the nature of the 
      software-debugging task. I then make a sustained argument from the 
      Linux experience for the proposition that ``Given enough eyeballs, 
      all bugs are shallow'', suggest productive analogies with other 
      self-correcting systems of selfish agents, and conclude with some 
      exploration of the implications of this insight for the future of 
      software.}
}

@PHDTHESIS{Eden00-SpecificationsTools,
   AUTHOR       = {Amnon H. Eden},
   SCHOOL       = {Department of Computer Science, University of Tel Aviv},
   TITLE        = {Precise Specification of Design Patterns and Tool 
      Support in their Application},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTTYPE      = {},
   URL          = {http://www.eden-study.org/publications.html}
}

@PHDTHESIS{Leblanc00-Galois,
   AUTHOR       = {Hervé Leblanc},
   SCHOOL       = {Information, Structures et Systèmes},
   TITLE        = {Sous-Hiérarchie de Galois : Un Modèle Pour la 
      Construction et L'évolution Des Hiérarchies D'objets},
   YEAR         = {2000},
   OPTADDRESS   = {},
   MONTH        = {décembre},
   OPTNOTE      = {},
   OPTTYPE      = {},
   INSTITUTION  = {Université de Montpellier II -- U.F.R. Sciences de Montpellier}
}

@PHDTHESIS{Lemesle00-PhD,
   AUTHOR       = {Richard Lemesle},
   SCHOOL       = {université de Nantes},
   TITLE        = {Techniques de Modélisation et de Métamodélisation},
   YEAR         = {2000},
   OPTADDRESS   = {},
   MONTH        = {octobre},
   OPTNOTE      = {},
   OPTTYPE      = {},
   ABSTRACT     = {Cette th\`ese a \'et\'e r\'ealis\'ee dans le cadre d'une 
      convention CIFRE au sein d'une soci\'et\'e de services en 
      informatique sp\'ecialis\'ee dans la ma\^{\i}trise et l'\'evolution 
      des syst\`emes d'information. La capacit\'e \`a proposer des outils 
      pour appr\'ehender rapidement les syst\`emes d'information existants 
      et de les faire \'evoluer est alors indispensable.}
}

@PHDTHESIS{Sapsomboon00-PhD,
   AUTHOR       = {Bordin Sapsomboon},
   SCHOOL       = {University of Pittsburgh},
   TITLE        = {Shared Defect Detection : The Effects of Annotations in 
      Asynchronous Software Inspection.},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTTYPE      = {}
}

@INBOOK{Bachimont00-Ontologies,
   PUBLISHER    = {Eyrolles},
   TITLE        = {Engagement Sémantique et Engagement Ontologique : 
      Conception et Réalisation D'ontologies En Ingénierie Des 
      Connaissances},
   YEAR         = {2000},
   AUTHOR       = {Bruno Bachimont},
   CHAPTER      = {19},
   EDITOR       = {Jean Charlet and Manuel Zacklad and Gilles Kassel and 
      Didier Bourigault},
   PAGES        = {305--324},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITION   = {},
   MONTH        = {Février},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTSERIES    = {},
   OPTTYPE      = {},
   OPTVOLUME    = {},
   BOOKTITLE    = {Ingénierie Des Connaissances, Évolutions Récentes et Nouveaux Défis},
   URL          = {http://www.editions-eyrolles.com/php.accueil/Sommaire/sommaire.php3? ouv_ean13=9782212091106&xd=17291ad3b883a2a5c423d1bce6e3751b},
   ABSTRACT     = {La repr\'esentation formelle et symbolique des 
      connaissances repose sur des langages formels compos\'es d'une part 
      de r\`egles syntaxiques g\'en\'eratives pour la construction de 
      formules et d'autre part de r\`egles de composition s\'emantique 
      associant aux formules construites une signification. La construction 
      syntaxique assemble les formules \`a partir de primitives dont le 
      sens se compose pour donner la signification des formules. La t\^ache 
      des ontologies est d\'efinir quelles primitives munies de leur 
      signification sont n\'ecessaires pour la repr\'esentation des 
      connaissances dans un contexte donn\'e. D\'efinir une ontologie est 
      une t\^ache de mod\'elisation men\'ee \`a partir de l'expression 
      linguistique des connaissances. La mod\'elisation s'effectue en trois 
      \'etapes, correspondant \`a trois engagements : un engagement 
      s\'emantique, fixant le sens linguistique des concepts, un engagement 
      ontologique fixant leur sens formel et enfin un engagement 
      computationnel d\'eterminant leur exploitation effective. Nous 
      pr\'esentons ici ces trois types d'engagement et explicitons les 
      \'etapes de l'\'elaboration d'une ontologie.}
}

@INCOLLECTION{Lauder00-AntiPatternMigration,
   AUTHOR       = {Anthony Lauder and Stuart Kent},
   BOOKTITLE    = {Systems Engineering for Business Process Change},
   PUBLISHER    = {Springer-Verlag},
   TITLE        = {Legacy System Anti-Patterns and a Pattern-Oriented 
      Migration Response},
   YEAR         = {2000},
   OPTADDRESS   = {},
   CHAPTER      = {16},
   OPTCROSSREF  = {},
   OPTEDITION   = {},
   EDITOR       = {Peter Henderson},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   PAGES        = {1--8},
   OPTSERIES    = {},
   OPTTYPE      = {},
   OPTVOLUME    = {},
   URL          = {http://www.cs.ukc.ac.uk/pubs/2000/981/},
   ABSTRACT     = {Mature information systems grow old disgracefully as 
      successive waves of hacking result in accidental architectures which 
      resist the reflection of on-going business process change. Such 
      petrified systems are termed legacy systems. Legacy systems are 
      simultaneously business assets and business liabilities. Their 
      hard-won dependability and accurate reflection of tacit business 
      knowledge prevents us from undertaking green-field development of 
      replacement systems. Their resistance to the reflection of business 
      process change prevents us from retaining them. Consequently, we are 
      drawn in this paper to a controlled pattern-oriented legacy system 
      migration strategy. Legacy systems exhibit six undesirable 
      anti-patterns. A legacy system migration strategy must focus upon the 
      controlled elimination of these anti-patterns by the step-wise 
      application of six corresponding desirable patterns. Adherence to 
      this migration strategy results in adaptive systems reflecting 
      purposeful architectures open to the on-going reflection of business 
      process change. Without such a strategy there is a very real danger 
      that legacy system migration will occur all too literally. That is, 
      the old legacy system will be migrated to a new legacy system albeit 
      it one using the latest buzzword-compliant technology.}
}

@ARTICLE{OCinneide00-Composite,
   AUTHOR       = {Mel Ó Cinnéide and Paddy Nixon},
   JOURNAL      = {Proceedings of the ECOOP workshop on Formal Techniques for Java Programs},
   TITLE        = {Composite Refactorings for Java Programs},
   YEAR         = {2000},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   ABSTRACT     = {There has been much interest in refactoring recently, 
      but little work has been done on tool support for refactoring or on 
      demonstrating that a refactoring does indeed preserve program 
      behavior. We pro-pose a method for developing composite refactorings 
      for {Java{}} programs in such a way that a rigorous demonstration of 
      behavior preservation is possible.}
}

@ARTICLE{Demeyer00-Tutorial,
   AUTHOR       = {Serge Demeyer and Stéphane Ducasse and Oscar Nierstrasz},
   JOURNAL      = {OOPSLA Tutorial Notes},
   TITLE        = {Object-Oriented Reengineering OOPSLA'00 Tutorial},
   YEAR         = {2000},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {}
}

@ARTICLE{Demeyer00-Reengineering,
   AUTHOR       = {Serge Demeyer and Stéphane Ducasse and Oscar Nierstrasz},
   JOURNAL      = {},
   TITLE        = {Tie Code And Questions: A Reengineering Pattern},
   YEAR         = {2000},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {}
}

@ARTICLE{Douence00-Reification,
   AUTHOR       = {Rémi Douence and Mario Südholt},
   JOURNAL      = {Proceedings of 14<sup>th</sup> European Conference on Object-Oriented Programming},
   TITLE        = {A Generic Reification Technique for OO Reflective 
      Languages},
   YEAR         = {2000},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   ABSTRACT     = {Computational reflection is gaining interest in 
      practical applications as witnessed by the use of reflection in the 
      {Java{}} programming language environment and recent work on 
      reflective middleware. Reflective systems offer many different 
      reflection programming interfaces, the so-called Meta Object 
      Protocols (MOPs). Their design is subject to a number of constraints 
      relating to expressive power, efficiency and security properties. 
      Since these constraints are different from one application to 
      another, we should be able to easily provide specially-tailored MOPs 
      for particular sets of constraints. In this paper, we present a 
      generic reification technique based on program transformation. It 
      enables the selective reification of arbitrary parts of 
      object-oriented language interpreters. The program transformation can 
      be applied to different interpreter definitions. Each resulting 
      reflective implementation provides a different MOP derived from the 
      original interpreter definition.}
}

@ARTICLE{Douence00-Reflective,
   AUTHOR       = {Rémi Douence and Mario Südholt},
   JOURNAL      = {Proceedings of the 14<sup>th</sup> European Conference on Object-Oriented Programming},
   TITLE        = {On the Lightweight and Selective Introduction of 
      Reflective Capabilities in Applications},
   YEAR         = {2000},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   ABSTRACT     = {Computational reflection is gaining interest in 
      practical applications: modern software frequently requires strong 
      adaptability conditions to be met in order to fit heterogenous and 
      evolving computing environment. Most of these applications only need 
      limited but flexible reflective capabilities rather than 
      sophisticated reflective languages and reflective runtime systems. 
      However, there is no notion of a reflective application which is 
      independent from an underlying reflective system. Our paper aims at 
      filling this gap by means of a constructive definition: we introduce 
      a reification technique that allows the transformation of 
      non-reflective applications into reflective ones.}
}

@ARTICLE{Erlikh00-LegacySystem,
   AUTHOR       = {Len Erlikh},
   JOURNAL      = {IT Professional},
   TITLE        = {Leveraging Legacy System Dollars for E-Business},
   YEAR         = {2000},
   OPTMONTH     = {},
   OPTNOTE      = {},
   NUMBER       = {3},
   PAGES        = {17--23},
   VOLUME       = {2},
   ADDRESS      = {Piscataway, NJ, USA},
   PUBLISHER    = {IEEE Educational Activities Department}
}

@ARTICLE{GarciaMartin00-Compiler,
   AUTHOR       = {Julio Garcìa-Martìn and Miguel Sutil-Martìn},
   JOURNAL      = {Proceedings of EuroPloP},
   TITLE        = {Virtual Machines and Abstract Compilers -- Towards a 
      Compiler Pattern Language},
   YEAR         = {2000},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {}
}

@ARTICLE{Geraud00-Generic,
   AUTHOR       = {Thierry Géraud and Alexandre Duret-Lutz},
   JOURNAL      = {Proceedings of EuroPLoP},
   TITLE        = {Generic Programming Redesign of Patterns},
   YEAR         = {2000},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   ABSTRACT     = {How to improve the performance of design patterns when 
      they are involved in intensive algorithms?}
}

@ARTICLE{Harrison00-QualityInheritance,
   AUTHOR       = {R. Harrison and S. J. Counsell and R. V. Nithi},
   JOURNAL      = {journal of Systems and Software},
   TITLE        = {Experimental Assessment of the Effect of Inheritance on 
      the Maintainability of Object-Oriented Systems},
   YEAR         = {2000},
   OPTMONTH     = {},
   OPTNOTE      = {},
   NUMBER       = {2--3},
   OPTPAGES     = {},
   VOLUME       = {52},
   PUBLISHER    = {Elsevier}
}

@ARTICLE{Hauer00-VAJWebSphere,
   AUTHOR       = {Anita Hauer and Tim Boer},
   JOURNAL      = {Java Developers Journal},
   TITLE        = {Developing Web Application Using VisualAge for Java and 
      WebSphere Studio},
   YEAR         = {2000},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   PAGES        = {92--94},
   OPTVOLUME    = {},
   ABSTRACT     = {Your team has been assigned to built an end-to-end Web 
      application. As a {Java{}} programmer, you need to focus on the code, 
      to ensure that it can successfully call the required data. Your 
      graphic and Web designers need to focus on the actual presentation to 
      the user, to determine how best to display the information.}
}

@ARTICLE{Henning00-SPEC,
   AUTHOR       = {John L. Henning},
   JOURNAL      = {},
   TITLE        = {SPEC CPU2000: Measuring CPU Performance in the New 
      Millennium},
   YEAR         = {2000},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   PAGES        = {28--35},
   OPTVOLUME    = {},
   ABSTRACT     = {The SPEC consortium's mission is to develop technically 
      credible and objective benchmarks so that both computer designers and 
      purchasers can make decisions on the basis of realistic workloads.}
}

@ARTICLE{Huston00-PatternMetricScores,
   AUTHOR       = {Brian Huston},
   JOURNAL      = {Journal of Systems and Software},
   TITLE        = {The Effects of Design Pattern Application on Metric 
      Scores},
   YEAR         = {2000},
   MONTH        = {September},
   OPTNOTE      = {},
   NUMBER       = {3},
   PAGES        = {261--269},
   VOLUME       = {58},
   KEYWORDS     = {Design Patterns},
   URL          = {http://www.elsevier.com/gej-ng/10/29/11/68/34/33/abstract.html},
   ABSTRACT     = {One method suggested for improving software quality has 
      been that of collecting metric scores for a given design, and 
      refactoring in response to what are deemed to be unsatisfactory 
      metric values. More recently, the usage of design patterns has been 
      recommended to promote adaptable designs, so reducing maintenance 
      effort. These two approaches are therefore observed to effectively 
      have the same general aim. The question then arises as to whether 
      design metrics and design patterns are always compatible, and where 
      this is not found to be the case whether the metric, the pattern or 
      both are anomalous. Methods of analysis are presented which 
      demonstrate the effects of applying various patterns on certain 
      metric scores, the initial conclusion being that the two approaches 
      are indeed mainly congruent.}
}

@ARTICLE{JogalekarWoodside00-Scalability,
   AUTHOR       = {Prasad Jogalekar and Murray Woodside},
   JOURNAL      = {IEEE Transactions on Parallel and Distributed Systems},
   TITLE        = {Evaluating the Scalability of Distributed Systems},
   YEAR         = {2000},
   MONTH        = {March},
   NOTE         = {http://myrtle.cs.umanitoba.ca/ maheswar/anc/PAPERS/JoW00.pdf},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   ABSTRACT     = {Many distributed systems must be scalable, meaning that 
      they must be economically deployable in a wide range of sizes and 
      configurations. This paper presents a scalability metric based on 
      cost effectiveness, where the effectiveness is a function of the 
      system's throughput and its quality of service. It is part of a 
      framework which also includes a scaling strategy for introducing 
      changes as a function of a scale factor, and an automated virtual 
      design optimization at each scale factor.}
}

@ARTICLE{NeilFentonNielsen00-Bayesian,
   AUTHOR       = {Martin Neil, Norman Fenton and Lars Nielsen},
   JOURNAL      = {The Knowledge Engineering Review},
   TITLE        = {Building large-scale Bayesian Networks},
   YEAR         = {2000},
   OPTMONTH     = {},
   NOTE         = {citeseer.ist.psu.edu/neil99building.html},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   VOLUME       = {15},
   SERIES       = {3}
}

@ARTICLE{Meyer99-Ethics,
   AUTHOR       = {Bertrand Meyer},
   JOURNAL      = {Software Development Magazine},
   TITLE        = {The Ethics of Free Software},
   YEAR         = {2000},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   ADDRESS      = {www.sdmagazine.com/features/2000/f4.shtml},
   EDITOR       = {Alexandra Weber Morales},
   PUBLISHER    = {CMP Media LLC},
   URL          = {http://www.apostate.com/programming/bm-freesoftware.html},
   ABSTRACT     = {The movement in favor of free and open-source software 
      has recently reached a highly visible status, not only in the 
      computer profession but in the popular media, with mass-circulation 
      magazines as widely available as Time and Newsweek giving prominent 
      coverage to such heroes of the movement as Richard Stallman, Eric 
      Raymond and Linus Torvalds. Although comments on free software in its 
      various form have been overwhelmingly laudatory, little attention has 
      been made to justify this positive assessment and, more generally, to 
      explore seriously the associated ethical issues.}
}

@ARTICLE{Minsky00-LGI,
   AUTHOR       = {Naftaly Minsky and Victoria Ungureanu},
   JOURNAL      = {ACM Transactions on Software Engineering and Methodology},
   TITLE        = {Law-Governed Interaction: A Coordination & Control 
      Mechanism for Heterogeneous Distributed Systems},
   YEAR         = {2000},
   MONTH        = {July},
   OPTNOTE      = {},
   NUMBER       = {3},
   PAGES        = {273--205},
   VOLUME       = {9},
   URL          = {http://www.cs.rutgers.edu/~minsky/papers/coordination-and-control.pdf},
   ABSTRACT     = {Software technology is undergoing a transition from 
      monolithic systems, constructed according to a single overall design, 
      into conglomerates of semi-autonomous, heterogeneous and 
      independently designed subsystems, constructed and managed by di 
      erent organizations, with little, if any, knowledge of each other. 
      Among the problems inherent in such conglomerates none is more 
      serious than the di culty to control the activities of the disparate 
      agents operating in it, and the di culty for such agents to 
      coordinate their activities with each other. We argue that the nature 
      of coordination and control required for such systems calls for the 
      following principles to be satis ed: (1) coordination policies need 
      to be enforced; (2) the enforcement needs to be decentralized; and 
      (3) coordination policies need to be formulated explicitly|rather 
      than being implicit in the code of the agents involved|and they 
      should be enforced by means of a generic, broad spectrum mechanism; 
      and (4) it should be possible to deploy and enforce a policy 
      incrementally, without exacting any cost from agents and activities 
      not subject to it. We describe a mechanism called law-governed 
      interaction (LGI), currently implemented by the Moses toolkit, which 
      has been designed to satisfy these principles. We show that LGI is at 
      least as general as a conventional centralized coordinationmechanism 
      (CCM), and that it is more scalable, and generally more e cient than 
      CCM.}
}

@ARTICLE{Xiphmont00-RebuttalMeyer,
   AUTHOR       = { Monty},
   JOURNAL      = {www.Advogato.org},
   TITLE        = {A rebuttal to Meyer's ``The Ethics of Free Software},
   YEAR         = {2000},
   MONTH        = {May},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   PAGES        = {1--12},
   OPTVOLUME    = {},
   PUBLISHER    = {Advogato},
   URL          = {http://www.advogato.org/article/94.html},
   ABSTRACT     = {In a recent article in Software Development Magazine, 
      Professor Bertrand Meyer critically explores the lack of an ethical 
      or moral grounding for Free / Open software. This rebuttal responds 
      to the deep flaws in Professor Meyer's essay as well as building a 
      moderate's case for the ethical basis of Open and Free software.}
}

@ARTICLE{Prechelt00-Experiment,
   AUTHOR       = {Lutz Prechelt and Barbara Unger and Walter F. Tichy and 
      Peter Brössler and Lawrence G. Votta},
   JOURNAL      = {Transactions on Software Engineering},
   TITLE        = {A Controlled Experiment in Maintenance Comparing Design 
      Patterns to Simpler Solutions},
   YEAR         = {2000},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   PUBLISHER    = {IEEE Computer Society Press},
   ABSTRACT     = {Software design patterns package proven solutions to 
      recurring design problems in a form that simplifies reuse. We are 
      seeking empirical evidence whether using design patterns is 
      beneficial. In particular, one may prefer using a design pattern even 
      if the actual design problem is simpler than that solved by the 
      pattern, i.e., if not all of the functionality ordered by the pattern 
      is actually required. Our experiment investigates software 
      maintenance scenarios that employ various design patterns and 
      compares designs with patterns to simpler alternatives. The subjects 
      were professional software engineers. In most of our nine maintenance 
      tasks we found positive effects from using a design pattern: either 
      its inherent additional flexibility was achieved without requiring 
      more maintenance time or maintenance time was reduced compared to the 
      simpler alternative. In a few cases we found negative effects: the 
      alternative solution was less error-prone or required less 
      maintenance time. Although most of these effects were expected, a few 
      were surprising: a negative effect occurs although a certain 
      application of the Observer pattern appears to be well justified and 
      a positive effect occurs de- spite superfluous flexibility (and hence 
      complexity) introduced by a certain application of the {Decorator} 
      pattern. Overall, we conclude that unless there is a clear reason to 
      prefer the simpler solution, it is probably wise to choose the 
      flexibility provided by the design pattern, because unexpected new 
      requirements often appear. We identify several questions for future 
      empirical research.}
}

@ARTICLE{Presso00-Declarative,
   AUTHOR       = {Mariá José Presso},
   JOURNAL      = {},
   TITLE        = {Declarative Description of Component Models as a Means 
      to Support Generic Builder Tools},
   YEAR         = {2000},
   MONTH        = {April},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   INSTITUTION  = {France Telecom R & D},
   ABSTRACT     = {Component Models define standards for describing 
      components and mechanisms to build applications out of components. 
      Standard specification are given in natural language and embedded 
      into composition tools. We address the problem of describing 
      protocols for composing components in such a way that they are 
      explicit and become independent from the composition tool. This 
      allows to build generic tools capable of handling different kinds of 
      composition protocols. We propose the use of logic meta-programming 
      to describe the components, describe the protocols for composition 
      and the code that realizes them, specify an application built up from 
      connected components and generate the code for the application. 
      Experiments based on a prototype tool show that these descriptions 
      make the protocols and the tool independent.}
}

@ARTICLE{Redmon00-IguanaJ,
   AUTHOR       = {Barry Redmond and Vinny Cahill},
   JOURNAL      = {Proceedings of 14<sup>th</sup> European Conference for Object-Oriented Programming},
   TITLE        = {Iguana/J: Towards a Dynamic and Efficient Reflective 
      Architecture for Java},
   YEAR         = {2000},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   ABSTRACT     = {Iguana/J is a current research project to implement the 
      Iguana reflective architecture for the {Java{}} language. Iguana/J 
      extends the structural reflection provided by the {Java{}} core 
      reflection API to include behavioral reflection, and supports 
      selective reification of behavior for any class, interface or object. 
      It supports a high degree of separation of concerns between 
      base-level and meta-level, allowing separate development and reuse of 
      Iguana/J protocols. The implementation of Iguana/J eliminates of 
      minimises performance degradation for behavior which is not reified.}
}

@ARTICLE{Snelting00-UnderstandingConcept,
   AUTHOR       = {Gregor Snelting and Frank Tip},
   JOURNAL      = {ACM Transactions on Programming Languages and Systems},
   TITLE        = {Understanding Class Hierarchies Using Concept Analysis},
   YEAR         = {2000},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   PAGES        = {540--582},
   VOLUME       = {22},
   ABSTRACT     = {A new method is presented for analyzing and 
      reengineering class hierarchies. In our approach, a class hierarchy 
      is processed along with a set of applications that use it, and a 
      fine--grained analysis of the access and subtype relationship between 
      objects, variables, and class members is performed. The result of 
      this analysis is again a class hierarchy, which is guaranteed to be 
      behaviorally equivalent to the original hierarchy, but in which each 
      object only contains the members that are required. Our method is 
      semantically well-founded in concept analysis: the new class 
      hierarchy is a minimal and maximally factorized concept lattice that 
      reflects the access and subtype relationships between variables, 
      objects and class members. The method is primarily intended as a tool 
      for finding imperfections in the design of class hierarchies, and can 
      be used as the basis for tools that largely automate the process or 
      reengineering such hierarchies. The method can also be used as a 
      space-optimizing source-to-source transformation that removes 
      redundant fields from objects. A prototype implementation for 
      {Java{}} has been constructed, and used to conduct several case 
      studies. Our results demonstrate that the method can provide valuable 
      insights into the usage of a class hierarchy in a specific context, 
      and lead to useful restructuring proposals.}
}

@ARTICLE{Stoeddin00-Validator,
   AUTHOR       = {Sara Stoeddin and Clement Allen},
   JOURNAL      = {Java Developers Journal},
   TITLE        = {Implementing Fowler's Analysis Validator Pattern in Java},
   YEAR         = {2000},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   PAGES        = {44--54},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   ABSTRACT     = {Building large systems requires the difficult and time 
      consuming activities of elicitation and representation of software 
      requirements. During these analysis activities, particular analysis 
      abstractions emerge. These abstractions, called analysis patterns, 
      represent reusable patterns for subsequent analysis effort in various 
      domains. As an example, software developers use an analysis 
      abstraction called Person to represent a person from different 
      application domains, such as a student person, employer person or 
      customer person. Martin Fowler, in his book Analysis Patterns, has 
      defined a higher abstraction to represent either a person or an 
      organization labelled the Party pattern.}
}

@ARTICLE{Tambay00-Complex,
   AUTHOR       = {Pallavi Y. Tambay},
   JOURNAL      = {Proceedings of the conference on Object-Oriented Programming, Systems, Languages, and Applications},
   TITLE        = {Constrained Objects for Modeling Complex Structures},
   YEAR         = {2000},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   ABSTRACT     = {Constrained objects are objects whose state is regulated 
      by constraints. They are applicable in many domains, e.g., 
      engineering and organizational modeling. Our proposed language (Cob) 
      supports class hierarchies, constraints, and preferences; and our 
      computational model supports constraint satisfaction, optimization 
      and relaxation. Constrained objects are thus declarative approach to 
      object-oriented programming.}
}

@ARTICLE{Tip00-Specialization,
   AUTHOR       = {Frank Tip and Peter F. Sweeney},
   JOURNAL      = {Acta Informatica},
   TITLE        = {Class Hierarchy Specialization},
   YEAR         = {2000},
   OPTMONTH     = {},
   OPTNOTE      = {},
   NUMBER       = {12},
   PAGES        = {927--982},
   VOLUME       = {36},
   ABSTRACT     = {Many class libraries are designed with an emphasis on 
      generality and extensibility. Applications often exercise only part 
      of a library's functionality. As a result, objects created by the 
      application may contain unused (user-specified or compiler-generated) 
      members. Redundant members in objects are undesirable because they 
      increase an application's memory usage. We present an algorithm for 
      specializing a class hierarchy with respect to its usage in a program 
      P. That is, the algorithm analyzes the member access patterns for P's 
      variables, and creates distinct classes for variables that access 
      different members. The algorithm addresses the inheritance mechanisms 
      of {C++} in their full generality, including multiple inheritance and 
      virtual (shared) inheritance. Class hierarchy specialization reduces 
      object size, and can be viewed as a space optimization. However, 
      execution time may also be reduced through reduced object creation or 
      destruction time, and caching and paging effects. Class hierarchy 
      specialization may also create new opportunities for existing 
      optimizations such as call devirtualization and inlining. In 
      addition, specialization may be useful in tools for software 
      maintenance and program understanding.}
}

@ARTICLE{Tramontana00-Changing,
   AUTHOR       = {Emiliano Tramontana},
   JOURNAL      = {proceeding of 14${th}$ European Conference for Object-Oriented Programming},
   TITLE        = {Reflective Architecture for Changing Objects},
   YEAR         = {2000},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   ABSTRACT     = {An adaptable software system includes the description of 
      adaptation strategies to be able to change its behavior during run 
      time. This paper analyses the major reflective adaptable systems and 
      proposes a reflective software architecture for object oriented 
      systems which allows objects to change their behavior and 
      interactions during run time. Clear separation among description of 
      functional concerns, adaptation strategies and objects interactions 
      is provided to facilitate reconfiguration of objects and enhance 
      evolution.}
}

@ARTICLE{Yamasaki00-Understandability,
   AUTHOR       = {Naoko Yamasaki and Tetsuro Kakeshita},
   JOURNAL      = {},
   TITLE        = {An Understandability Metrics for Object Oriented 
      Programs},
   YEAR         = {2000},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTPAGES     = {},
   OPTVOLUME    = {},
   ABSTRACT     = {We propose a software metric to evaluate 
      understandability of OOPs. This metric is composed of a cost formula 
      for understanding based on cognitive science and a model of the 
      understanding process. Unlike Chidamber's metrics, our metric 
      considers instances as well as classes. We have also evaluated 
      understandability of structured programs using this metric.}
}

@ARTICLE{Deursen00-DSLBibliography,
   AUTHOR       = {van Deursen, Arie and Paul Klint and Joost Visser},
   JOURNAL      = {SIGPLAN Notices},
   TITLE        = {Domain-Specific Languages: An Annotated Bibliography},
   YEAR         = {2000},
   MONTH        = {June},
   OPTNOTE      = {},
   NUMBER       = {6},
   PAGES        = {26--36},
   VOLUME       = {35},
   URL          = {http://citeseer.nj.nec.com/396896.html},
   ABSTRACT     = {We survey the literature available on the topic of 
      domain-specific languages as used for the construction and 
      maintenance of software systems. We list a selection of 75 key 
      publications in the area, and provide a summary for each of the 
      papers. Moreover, we discuss terminology, risks and benefits, example 
      domain-specific languages, design methodologies, and implementation 
      techniques.}
}

@INPROCEEDINGS{Abadi00-Proof,
   AUTHOR       = {Martin Abadi and Peter Lee},
   BOOKTITLE    = {},
   TITLE        = {Bytecode Verification and Proof-Carrying Code},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   ORGANIZATION = {Bell Labs Research, Lucent Technologies, CMU & Cedilla Systems},
   OPTPAGES     = {},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Andre00-AlgebraicUML,
   AUTHOR       = {Pascal André and Annya Romanczuk and Jean-Claude Royer and 
      Aline Vasconcelos},
   BOOKTITLE    = {Proceedings of the 6<sup>th</sup> colloquium on Languages and Models with Objects},
   TITLE        = {An Algebraic View of UML Class Diagrams},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Christophe Dony and Houari Sahraoui},
   MONTH        = {January},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {261--276},
   PUBLISHER    = {Hermès Science Publications},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.sciences.univ-nantes.fr/info/perso/permanents/andre/PUBLI/ node1.html}
}

@INPROCEEDINGS{Benett00-MaintenanceEvolution,
   AUTHOR       = {K. H. Bennett and V.T Rajlich},
   BOOKTITLE    = {The Future of Software Engineering},
   TITLE        = {Software Maintenance and Evolution: a Roadmap},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Anthony Finkelstein},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Bergenti02-ImprovingUML,
   AUTHOR       = {Federico Bergenti and Agostino Poggi},
   BOOKTITLE    = {Proceedings of the 12<sup>th</sup> international conference on Software Engineering and Knowledge Engineering},
   TITLE        = {IDEA: A Design Assistant Based on Automatic Design 
      Pattern Detection},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Dan Cooke and Joseph Urban},
   MONTH        = {July},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {336--343},
   PUBLISHER    = {Springer-Verlag},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://www.ce.unipr.it/people/poggi/publications/index.shtml},
   ABSTRACT     = {This paper describes \ygg@product{IDEA}, an interactive 
      design assistant capable of providing critiques about the design 
      patterns found in a UML{} design model. \ygg@product{IDEA} analyses 
      the UML{} model that the engineer is producing and proposes critiques 
      directed to improve the patter realisations found in the model. The 
      engineer is not required to adopt a modified UML{} notation because 
      \ygg@product{IDEA} automatically detects all possible pattern 
      realisations in a standard UML{} model. The core of 
      \ygg@product{IDEA} is the model that automatically performs this 
      detection. This module analyses class and collaboration diagrams 
      trying to match part of these diagrams with pattern-specific 
      structures. When the pattern-detection module finds a possible 
      pattern realisation, a set of design rules are verified to test if 
      the design can be improved. Any violation of these rules fires a 
      critique that is proposed to the software engineer as a possible 
      design improvement. Currently, \ygg@product{IDEA} is integrated with 
      the user interfaces of two popular CASE tools.}
}

@INPROCEEDINGS{Buschmann00-Applying,
   AUTHOR       = {Frank Buschmann},
   BOOKTITLE    = {},
   TITLE        = {Applying Patterns},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   ORGANIZATION = {Siemens AG, Corporate Technology, Dpt Software & Engineering},
   OPTPAGES     = {},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns}
}

@INPROCEEDINGS{Chambers00-Debate,
   AUTHOR       = {Craig Chambers and Bill Harrison and John Vlissides},
   BOOKTITLE    = {proceeding of the 27<sup>th</sup> Conference on Principles of Programming Languages},
   TITLE        = {A Debate on Language and Tool Support for Design 
      Patterns},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Tom Reps},
   MONTH        = {January},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {277--289},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://portal.acm.org/citation.cfm?id=325731&coll=portal &dl=ACM&CFID= 9879399&CFTOKEN=48500164},
   ABSTRACT     = {Design Patterns have earned a place in the developer's 
      arsenal of tools and techniques for software development. They have 
      proved so useful, in fact, that some have called for their promoting 
      to programming language features. In turn this has rekindled the 
      age-old debate over mechanisms that belong in programming languages 
      versus those that are better served by tools. The debate comes full 
      circle when one contemplates code generation and methodological tool 
      support for patterns. The authors compare and contrast programming 
      languages, tools and patterns to assess their relative merits and to 
      clarify their roles in the development process.}
}

@INPROCEEDINGS{Chaumun00-DesignChangeability,
   AUTHOR       = {M. Ajmal Chaumun and Hind Kabaili and Rudolf K. Keller and 
      François Lustman and Guy Saint-Denis},
   BOOKTITLE    = {Proceedings of the 4<sup>th</sup> Conference on Software Maintenance and Reengineering},
   TITLE        = {Design Properties and Object-Oriented Software 
      Changeability},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Jürgen Ebert and Chris Verhoef},
   MONTH        = {February},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {45--54},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.computer.org/proceedings/csmr/0546/05460045abs.htm},
   ABSTRACT     = {The assessment of the changeability of software systems 
      is of major concern for buyers of the large systems found in 
      fast-moving domains such as telecommunications. One way of 
      approaching this problem is to investigate the dependency between the 
      changeability of the software and its design, with the goal of 
      finding design properties that can be used as changeability 
      indicators. In our research, we defined a model of software changes 
      and change impacts and implemented it for the C++ language. 
      Furthermore, we identified a set of nine object-oriented (OO) design 
      metrics, four of which are specifically geared towards changeability 
      detection. The model and the metrics were applied to three test 
      systems of industrial size. The experiment showed a high correlation, 
      across systems and across changes, between changeability and the 
      access to a class by other classes through method invocation or 
      variable access. On the other hand, no result could support the 
      hypothesis that the depth of the inheritance tree has some influence 
      on changeability. Furthermore, our results confirm the observation of 
      others that the use of inheritance is rather limited in industrial 
      systems.}
}

@INPROCEEDINGS{Chiba00-LoadTimeJava,
   AUTHOR       = {Shigeru Chiba},
   BOOKTITLE    = {Proceedings of the 14<sup>th</sup> European Conference on Object-Oriented Programming},
   TITLE        = {Load-Time Structural Reflection in Java},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   MONTH        = {October},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {313--336},
   PUBLISHER    = {Springer Verlag},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.hlla.is.tsukuba.ac.jp/~chiba/javassist/},
   ABSTRACT     = {The standard reflection API of {Java{}} provides the 
      ability to introspect a program but not to alter program behavior. 
      This paper presents an extension to the reflection API for addressing 
      this limitation. Unlike other extensions enabling behavioral 
      reflection, our extension called \ygg@product{Javassist} enables 
      structural reflection in {Java{}}. For using a standard {Java{}} 
      virtual machine (JVM) and avoiding a performance problem, 
      \ygg@product{Javassist} allows structural reflection only before a 
      class is loaded into the JVM. However, \ygg@product{Javassist} still 
      covers various applications including a language extension emulating 
      behavioral reflection. This paper also presents the design principles 
      of \ygg@product{Javassist}, which distinguish \ygg@product{Javassist} 
      from related work.}
}

@INPROCEEDINGS{OCinneide00-RefactoringPatterns,
   AUTHOR       = {Mel Ó Cinnéide},
   BOOKTITLE    = {Proceedings of the ICSE Doctoral Workshop},
   TITLE        = {Automated Refactoring to Introduce Design Patterns},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Jeff Magee and Mauro Pezzè},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://swt.cs.tu-berlin.de/lehre/seminar/ss02/},
   ABSTRACT     = {Software systems ha e to be flexible in order to cope 
      with evolving requirements. However,since it is impossible to predict 
      with certainty what future requirements will emerge, it is also 
      impossible to know exactly what flexibility to build into a system. 
      Design patterns are often used to provide this flexibility, so this 
      question frequently reduces to whether or not to apply a given design 
      pattern. We address this problem by developing a methodology for the 
      construction of automated transformations that introduce design 
      patterns. This enables a programmer to safely postpone the 
      application of a design pattern until the flexibility it provides 
      becomes necessary. Our approach deals with the issues of reuse of 
      existing transformations, preservation of program behaviour and the 
      application of the transformations to existing program code.}
}

@INPROCEEDINGS{Costanza00-SeparationConcerns,
   AUTHOR       = {Pascal Costanza},
   BOOKTITLE    = {Proceedings of the ECCOP workshop on Aspects and Dimensions of Concerns},
   TITLE        = {Separation of Object Identity Concerns},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {Springer-Verlag},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.informatik.uni-bonn.de/~costanza/gilgul.html},
   ABSTRACT     = {Object identity combines the distinct notions of 
      reference and comparison. Both notions impose restrictions on the 
      identity concept, resulting in it meeting some lowest common 
      denominator of requirements and limiting its expressive power. By 
      clearly separating the two notions, we can find solutions for yet 
      unresolved problems, for example the problems concerning object 
      identity in the well­known Decorator Pattern.}
}

@INPROCEEDINGS{Demeyer99-Change,
   AUTHOR       = {Serge Demeyer and Stéphane Ducasse and Oscar Nierstrasz},
   BOOKTITLE    = {Proceedings of 15<sup>th</sup> Conference on Object-Oriented Programming Systems, Languages and Applications},
   TITLE        = {Finding Refactorings Via Change Metrics},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Doug Lea},
   MONTH        = {October},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {166--177},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://iamwww.unibe.ch/~demeyer/Deme99z/},
   ABSTRACT     = {Designing an object-oriented framework requires an 
      iterative development process, which leads all too easily to missing 
      or incorrect documentation. Iterative framework design involves 
      so-called refactorings: rearrangements of the object-oriented 
      constructs that represent the design. This paper shows that by 
      measuring the changes between different releases of the framework, it 
      is possible to identify which refactorings have been applied and as 
      such reverse engineer the framework design. We expect that our work 
      will result in better documented and consequently more reusable 
      frameworks.}
}

@INPROCEEDINGS{Ducasse00-Moose,
   AUTHOR       = {Stéphane Ducasse and Michele Lanza and Sander Tichelaar},
   BOOKTITLE    = {CoSET '00: Proceedings of the 2nd International Symposium on Constructing Software Engineering Tools},
   TITLE        = {Moose: an Extensible Language-Independent Environment 
      for Reengineering Object-Oriented Systems},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Emmerich00-MiddlewareRoadmap,
   AUTHOR       = {Wolfgang Emmerich},
   BOOKTITLE    = {Proceedings of the 22<sup>nd</sup> International Conference on Software Engineering},
   TITLE        = {Software Engineering and Middleware: A Roadmap},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Mehdi Jazayeri and Alexander Wolf},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {117--129},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?id=336542},
   ABSTRACT     = {The construction of a large class of distributed systems 
      can be simplified by leveraging middleware, which is layered between 
      network operating systems and application components. Middleware 
      resolves heterogeneity, and facilitates communication and 
      coordination of distributed components. Existing middleware products 
      enable software engineers to build systems that are distributed 
      across a local-area net- work. State-of-the-art middleware research 
      aims to push this boundary towards Internet-scale distribution, 
      adaptive and reconfigurable middleware and middleware for dependable 
      and wireless systems. The challenge for software engineering research 
      is to devise notations, techniques, methods and tools for distributed 
      system construction that systematically build and exploit the 
      capabilities that middleware deliver.}
}

@INPROCEEDINGS{Fenton00-SoftwareMetricsRoadmap,
   AUTHOR       = {Norman E. Fenton and Martin Neil},
   BOOKTITLE    = {Proceedings of the 22<sup>nd</sup> International Conference on Software Engineering},
   TITLE        = {Software Metrics: A Roadmap},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Mehdi Jazayeri and Alexander Wolf},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {357--370},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.cs.ucl.ac.uk/staff/A.Finkelstein/fose/finalfenton.pdf},
   ABSTRACT     = {Software metrics as a subject area is over 30 years old, 
      but it has barely penetrated into mainstream software engineering. A 
      key reason for this is that most software metrics activities have not 
      addressed their most important requirement: to provide information to 
      support quantitative managerial decision-making during the software 
      lifecycle. Good support for decision-making implies support for risk 
      assessment and reduction. Yet traditional metrics approaches, often 
      driven by regression-based models for cost estimation and defects 
      prediction, provide little support for managers wishing to use 
      measurement to analyse and minimise risk. The future for software 
      metrics lies in using relatively simple existing metrics to build 
      management decision-support tools that combine different aspects of 
      software development and testing and enable managers to make many 
      kinds of predictions, assessments and trade-offs during the software 
      life-cycle. Our recommended approach is to handle the key factors 
      largely missing from the usual metrics approaches, namely: causality, 
      uncertainty, and combining different (often subjective) evidence. 
      Thus the way forward for software metrics research lies in causal 
      modelling (we propose using Bayesian nets), empirical software 
      engineering, and multi-criteria decision aids.}
}

@INPROCEEDINGS{Harrison00-UMLToJava,
   AUTHOR       = {William Harrison and Charles Barton and 
      Mukund Raghavachari},
   BOOKTITLE    = {Proceedings of the 15<sup>th</sup> Conference on Object-Oriented Programming, Systems, Languages, and Applications},
   TITLE        = {Mapping UML Designs to Java},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Doug Lea},
   MONTH        = {October},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {178--188},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?id=353184},
   ABSTRACT     = {Tools for the generation of code from model descriptions 
      are valuable in helping developers maintain consistency between a 
      model and its implementation. In this paper, we describe a new method 
      for generating {Java{}} implementation code from UML diagrams. Our 
      method accepts UML diagrams specified at a higher-level than current 
      tools, and places fewer constraints on the supported UML constructs, 
      like multiple generalizations and association classes. Unlike current 
      tools, it generates implementation code that shields system 
      implementers from the low-level details of how associations and other 
      UML constructs are mapped to {Java{}}. Furthermore, it supports the 
      modular design of systems according to concerns [2, 10] by being able 
      to generate code from a set of related UML diagrams. While our 
      discussion is focused on the special problem of generating {Java{}} 
      implementation code, the issues discussed in this paper are 
      applicable more generally to object-oriented implementation 
      languages.}
}

@INPROCEEDINGS{Harrold00-TestingRoadmap,
   AUTHOR       = {Mary Jean Harrold},
   BOOKTITLE    = {Proceedings of the 22<sup>nd</sup> International Conference on on Software Engineering},
   TITLE        = {Testing: A Roadmap},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Mehdi Jazayeri and Alexander Wolf},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {61--72},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?id=336532},
   ABSTRACT     = {Testing is an important process that is performed to 
      support quality assurance. Testing activities support quality 
      assurance by gathering information about the nature of the software 
      being studied. These activities consist of designing test cases, 
      executing the software with those test cases, and examining the 
      results produced by those executions. Studies indicate that more than 
      fifty percent of the cost of software development is devoted to 
      testing, with the percentage for testing critical software being even 
      higher. As software becomes more pervasive and is used more often to 
      perform critical tasks, it will be required to be of higher quality. 
      Unless we can find efficient ways to perform effective testing, the 
      percentage of development costs devoted to testing will increase 
      significantly. This report briefly assesses the state of the art in 
      software testing, outlines some future directions in software 
      testing, and gives some pointers to software testing resources.}
}

@INPROCEEDINGS{HuchardL00-ComputingInterfacesJava,
   AUTHOR       = {Marianne Huchard and Hervé Leblanc},
   BOOKTITLE    = {ASE},
   TITLE        = {Computing Interfaces in Java.},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {317-320},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Jackson00-AnalysisRoadmap,
   AUTHOR       = {Daniel Jackson and Martin C. Rinard},
   BOOKTITLE    = {Proceedings of the 22<sup>nd</sup> International Conference on Software Engineering, future of software engineering track},
   TITLE        = {Software Analysis: A Roadmap},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Mehdi Jazayeri and Alexander Wolf},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {133--145},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://sdg.lcs.mit.edu/~dnj/talks/roadmap/},
   ABSTRACT     = {We describe the challenges of software analysis by 
      presenting a series of dichotomies. Each gives a spectrum on which 
      any partic-ular analysis can be placed; together, they give some 
      structure to the space of possible analyses. Our intent is not, 
      however, to pro-vide a survey of existing analyses within this space, 
      but to argue that some regions are more likely to be important in the 
      future than others. Recognizing that our opinions do not represent 
      the consensus of the community, we have tried, for each dichotomy, to 
      make a case for both extremes (or at least identifying the contexts 
      in which one makes more sense) while arguing primarily for one over 
      the other. We argue that in the future analyses will be model-driven, 
      namely centered on abstract models of behaviour; modular and 
      incremental, to enable analysis of components, and of systems before 
      completion; and focused and partial, rather than uniform, paying 
      closer attention to properties that matter most and to the parts of 
      the software that affect those properties. In support of such 
      analyses, we expect modelling languages to be global,with a focus on 
      structural relationships across the system, and declara-tive, and we 
      expect the analyses themselves to make more use of induction than has 
      been fashionable recently. Finally, although we believe that unsound 
      analyses have a bright future, we expect the increasing importance of 
      infrastructural software to bring a renewed credibility to sound, 
      precise and resource-intensive analyses.}
}

@INPROCEEDINGS{Jahnke00-VarletAnalyst,
   AUTHOR       = {Jens H. Jahnke and Jörg Wadsack},
   BOOKTITLE    = {Proceedings of the 3<sup>rd</sup> ICSE Workshop on Intelligent Software Engineering},
   TITLE        = {The Varlet Analyst: Employing Imperfect Knowledge in 
      Database Reverse Engineering Tools},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Qing Li and Z. Meral Ozsoyoglu and Roland Wagner},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {59--69},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://citeseer.ist.psu.edu/jahnke00varlet.html},
   ABSTRACT     = {Emerging key technologies like the World Wide Web, 
      object-orientation, and distributed computing enable new 
      applications, e.g., in the area of electronic commerce, management 
      information systems, and decision support systems. Today, many 
      companies face the problem that they have to reengineer existing 
      database (DB) applications to take advantage of these technologies. 
      Various computeraided reengineering tools have been developed to 
      reduce the complexity of the reengineering task. However, most of 
      these approaches presume complete structural and semantical 
      information about the DB schema and provide only little support for 
      earlier analysis activities that aim to obtain this information. Such 
      activities are mainly performed manually with the aid of very simple, 
      looselycoupled tools for textual search or data analysis. The 
      reengineer has to judge and combine many different semantic 
      indicators from various sources of information to recover a complete 
      DB schema. In this paper, we present a flexible tool that aims to 
      support the reengineer in these reverse engineering activities. 
      Unlike other tools, our approach does not force the reengineer to 
      follow a strict process or to enter only consistent information. On 
      the contrary, our tool adopts the mental model of its user and deals 
      with imperfect information (uncertainty and contradiction) 
      explicitly.}
}

@INPROCEEDINGS{Jussien00-PaLM,
   AUTHOR       = {Narendra Jussien and Vincent Barichard},
   BOOKTITLE    = {Proceedings of TRICS: Techniques foR Implementing Constraint Programming Systems},
   TITLE        = {The PaLM System: Explanation-Based Constraint 
      Programming},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Nicolas Beldiceanu and Warwick Harvey and Martin Henz and 
      François Laburthe and Eric Monfroy and Tobias Müller and 
      Laurent Perron and Christian Schulte},
   MONTH        = {September},
   NOTE         = {TRA9/00.},
   OPTNUMBER    = {},
   ORGANIZATION = {School of Computing},
   PAGES        = {118--133},
   PUBLISHER    = {National University of Singapore, Singapore},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   ABSTRACT     = {Explanation-based constraint programming is a new way of 
      solving constraint problems: it allows to propagate constraints of 
      the problem, learning from failure and from the solver (thanks to 
      recording explanations) and finally allows to get rid of 
      backtrack-based complete searches by allowing more free moves in the 
      search space (while remaining complete). This paper presents the 
      {PaLM} system, an implementation of an explanation-based constraint 
      programming system in {CHOCO} a constraint programming layer on top 
      of {CLAIRE}.}
}

@INPROCEEDINGS{Jussien00-Local,
   AUTHOR       = {Narendra Jussien and Olivier Lhomme},
   BOOKTITLE    = {Proceedings of the 17<sup>th</sup> National Conference on Artificial Intelligence},
   TITLE        = {Local Search with Constraint Propagation and 
      Conflict-Based Heuristics},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Henry A. Kautz and Bruce Porter},
   MONTH        = {July--August},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {169--174},
   PUBLISHER    = {AAAI Press / The MIT Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   JOURNAL      = {Proceedings of AAAI},
   ABSTRACT     = {In this paper, we introduce a new solving algorithm for 
      Constraint Satisfaction Problems (CSP). It performs an overall local 
      search together with a domain filtering technique to prune the search 
      space. Conflicts detected during filtering are used to guide the 
      search. First experiments with a tabu version of the algorithm have 
      shown good results on hard instances of open shop scheduling 
      problems. It competes well with the best highly specialized 
      algorithms.}
}

@INPROCEEDINGS{Keller00-MethodReplacement,
   AUTHOR       = {Rudolf K. Keller and Reinhard Schauer},
   BOOKTITLE    = {Proceedings of the 4<sup>th</sup> Conference on Software Maintenance and Reengineering},
   TITLE        = {Towards a Quantitative Assessment of Method Replacement},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Jürgen Ebert and Chris Verhoef},
   MONTH        = {February},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {141--150},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://computer.org/proceedings/csmr/0546/05460141abs.htm},
   ABSTRACT     = {Object-oriented programming is about the creation of 
      reusable classes that are to be extended to capture the specific 
      requirements of the application at hand. However, instead of 
      extending the methods of these classes, programmers often introduce 
      subclasses in which they replace methods with new implementations 
      that are completely detached from the superclass; that is, the 
      subclass method does not invoke, directly or indirectly, its 
      counterpart in the superclass.In this paper, we apply the SPOOL 
      environment to the reverse-engineered C++ source code of the ET++ 
      application framework to investigate the occurrences and causes for 
      method replacements. To this end, we define a method replacement 
      indicator (MRI) that quantifies the extent of method replacements. 
      Based on the data obtained in our case study, we identify and discuss 
      the ten causes why programmers replace non-primitive method 
      implementations of reusable classes.}
}

@INPROCEEDINGS{Laburthe00-ChocoImplementation,
   AUTHOR       = {François Laburthe and Le Projet OCRE, },
   BOOKTITLE    = {actes des 6<sup>e</sup> Journées Nationales sur la résolution de Problèmes NP-Complets},
   TITLE        = {Choco : implémentation du noyau d'un système de 
      contraintes},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Christian Bessière},
   MONTH        = {juin},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {151–-165},
   PUBLISHER    = {ONERA},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.lirmm.fr/~bessiere/jnpc00/laburthe.doc},
   ABSTRACT     = {Cet article pr\'esente CHOCO, une biblioth\`eque de 
      programmation par contraintes (PPC). D\'evelopp\'ee dans le cadre du 
      projet OCRE. CHOCO est le noyau d'une plate-forme plus large pour la 
      recherche en PPC et en optimisation combinatoire. CHOCO rassemble, 
      dans une architecture orient\'ee-objets, les principaux utilitaires 
      des syst\`emes de PPC, comme les structures de donn\'ees 
      impl\'ementant des domaines de valeurs, les \'ev\'enements de 
      propagation, des algorithmes de filtrage ou encore la recherche 
      arborescente. L'impl\'ementation a \'et\'e faite avec deux objectifs 
      : d'une part offrir une architecture logicielle modulaire qui accepte 
      ais\'ement des extensions, et d'autre part, mettre en \oe uvre une 
      gestion optimis\'ee des \'ev\'enements de propagation. Cet article 
      d\'etaille certains choix de conception, pr\'esente l'architecture 
      logicielle et discute les politiques de gestion et ordonnancement des 
      \'ev\'enements de propagation : nous montrons comment le cadre 
      g\'en\'eral des algorithmes d'arc coh\'erence peut \^etre 
      sp\'ecialis\'e dans quelques cas comme les contraintes 
      arithm\'etiques ou les contraintes globales.}
}

@INPROCEEDINGS{Meli00-COSMIC-FFP,
   AUTHOR       = {Roberto Meli and Alain Abran and Vinh T. Ho and 
      Serge Oligny},
   BOOKTITLE    = {Proceedings of the 11<sup>th</sup> European Software Control and Metric Conference},
   TITLE        = {On the Applicability of COSMIC-FFP for Measuring 
      Software Throughout its Life Cycle},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   MONTH        = {April},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   PUBLISHER    = {Shaker Publications},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://lrgl.uqam.ca/publications/pdf/545.pdf},
   ABSTRACT     = {Software measurement plays a key role in software 
      engineering and, to improve its performance, an organisation needs to 
      measure software at each stage of the development life cycle. 
      Recently, the COSMIC-FFP measurement method has been developed to 
      improve the measurement of the functional size of a large array of 
      software types. By quantifying software's functional user 
      requirements, the method makes it possible to measure software from 
      the user's viewpoint. The COSMIC-FFP measurement method has been 
      designed based on a software functional model that can represent the 
      functional user requirements at many levels of functional 
      abstraction, such as software layers, functional processes and data 
      movement sub-processes. Developers in general, however, need to know 
      the size of the software early in the development process to support 
      the estimation and project planning process. While the measurement 
      rules of the COSMIIC-FFP method have been designed to be applied when 
      the details of the software functions are known, the method has the 
      required flexibility to capture an estimate of the functional size of 
      software early in the life cycle and to offer added value to the 
      software engineers preparing the development plans. This paper 
      investigates the applicability of COSMIC-FFP for measuring the size 
      of software at early stages of the development life cycle.}
}

@INPROCEEDINGS{Muller00-ReverseEngineering,
   AUTHOR       = {Hausi A. Muller and Jens H. Jahnke and Dennis B. Smith and 
      Margaret-Anne D. Storey and Scott R. Tilley and Kenny Wong},
   BOOKTITLE    = {ICSE --- Future of SE Track},
   TITLE        = {Reverse engineering: a roadmap},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {47-60},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {citeseer.ist.psu.edu/muller00reverse.html}
}

@INPROCEEDINGS{Murray00-OCLandJDI,
   AUTHOR       = {David J. Murray and Dale E. Parson},
   BOOKTITLE    = {Proceedings of the 4th Workshop on Automated Debugging},
   TITLE        = {Automated Debugging in Java Using OCL and JDI},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Mireille Ducassé},
   MONTH        = {August},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   OPTPAGES     = {},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://xxx.lanl.gov/abs/cs.SE/0010035},
   ABSTRACT     = {Correctness constraints provide a foundation for 
      automated debugging within object-oriented systems. This paper 
      discusses a new approach to incorporating correctness constraints 
      into {Java{}} development environments. Our approach uses the Object 
      Constraint Language (``OCL") as a specification language and the 
      {Java{}} Debug Interface (``JDI") as a verification API. OCL provides 
      a standard language for expressing object-oriented constraints that 
      can integrate with Unified Modeling Language (``UML") software 
      models. JDI provides a standard {Java{}} API capable of supporting 
      type-safe and side effect free runtime constraint evaluation. The 
      resulting correctness constraint mechanism: (1) entails no 
      programming language modifications; (2) requires neither access nor 
      changes to existing source code; and (3) works with standard 
      off-the-shelf {Java{}} virtual machines (``VMs"). A prototype 
      correctness constraint auditor is presented to demonstrate the 
      utility of this mechanism for purposes of automated debugging.}
}

@INPROCEEDINGS{Normark00-ElucidativeProgramming,
   AUTHOR       = {Kurt Normark},
   BOOKTITLE    = {Proceedings of the 1<sup>st</sup> International Workshop on Program Comprehension},
   TITLE        = {Requirements for an Elucidative Programming Environment},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Harald Gall and von Mayrhauser, Anneliese},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {119--128},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.computer.org/proceedings/iwpc/0656/06560119abs.htm},
   ABSTRACT     = {The main goal with this paper is to motivate and coin a 
      variation of literate programming which we call elucidative 
      programming. Elucidative programming is oriented towards program 
      explanation with the purpose of throwing lights on important and 
      complex program relationships. Since proposed by Knuth i 1984, 
      literate programming has been the most viable approach to a radical 
      improvement of internal program documentation. Unfortunately, most 
      programmers find the ideas of literate programming, as supported by 
      WEB-like tools, for impractical, academic, and far-fetched in 
      relation to present-day programming practices. With elucidative 
      programming, we intend to focus on the best ideas of literate 
      programming. We disregards the aspects of program publication as 
      technical literature, and we provide for mechanisms with which 
      documentation can be added to a program without affecting or 
      disturbing the source program. Our ideas about elucidative 
      programming are presented as a number of requirements, and in a 
      discussion of programming environment issues in relation to the new 
      ideas.}
}

@INPROCEEDINGS{Rapicault00-MOP,
   AUTHOR       = {Pascal Rapicault and Mireille Fornarino},
   BOOKTITLE    = {actes du 6<sup>e</sup> colloque Langages et Modèles à Objets},
   TITLE        = {Instanciation et Vérification de Patterns de Conception 
      : un Méta-Protocole},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Christophe Dony and Houari Sahraoui},
   MONTH        = {janvier},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {43--58},
   PUBLISHER    = {Hermès Science Publications},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   ABSTRACT     = {Since design patterns emergence, many works have been 
      done to formalize them. Most of these attempts propose a specific 
      model, depending on the goal to reach : pattern instantiation, code 
      documentation with patterns. Because instantiating a pattern or 
      verifying the correctness of a pattern implementation are the most 
      tedious and error prone things to do, we propose to reify design 
      patterns in a meta pattern definition protocol to help the user in 
      these tasks. A tool based on this protocol and using UML modelling 
      has been realized and is explained in this article.}
}

@INPROCEEDINGS{Reiss00-JavaTrace,
   AUTHOR       = {Steven P. Reiss and Manos Renieris},
   BOOKTITLE    = {Proceedings of the 2<sup>nd</sup> Conference on Java Grande},
   TITLE        = {Generating Java Trace Data},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Dennis Gannon and Piyush Mehrotra},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {71--77},
   PUBLISHER    = {ACM Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://portal.acm.org/citation.cfm?id=337481},
   ABSTRACT     = {We describe a system for gathering and analyzing Java 
      trace data. The system provides relatively complete data collection 
      from large Java systems. It also provides a variety of different 
      analyses of that data for use with a software visualization system.}
}

@INPROCEEDINGS{Houari00-MetricsOOQuality,
   AUTHOR       = {Houari A. Sahraoui and Robert Godin and Thierry Miceli},
   BOOKTITLE    = {Software Maintenance, 2000. Proceedings. International Conference on},
   TITLE        = {Can Metrics Help Bridging the Gap Between the 
      Improvement of OO Design Quality and Its Automation?},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {IEEE Computer Society},
   MONTH        = {October},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {154-162},
   OPTPUBLISHER = {},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=883034},
   ABSTRACT     = {During the evolution of object-oriented (OO) systems, 
      the preservation of a correct design should be a permanent quest. 
      However, for systems involving a large number of classes and that are 
      subject to frequent modifications, the detection and correction of 
      design flaws may be a complex and resource-consuming task. The use of 
      automatic detection and correction tools can be helpful for this 
      task. Various works have proposed transformations that improve the 
      quality of an OO system while preserving its behavior. In this paper, 
      we investigate whether some OO metrics can be used as indicators for 
      automatically detecting situations where a particular transformation 
      can be applied to improve the quality of a system. The detection 
      process is based on analyzing the impact of various transformations 
      on these OO metrics using quality estimation models}
}

@INPROCEEDINGS{Sahraoui00-ICSM-MetricsBridgeGap,
   AUTHOR       = {Houari A. Sahraoui and Robert Godin and Thierry Miceli},
   BOOKTITLE    = {ICSM '00: Proceedings of the International Conference on Software Maintenance (ICSM'00)},
   TITLE        = {Can Metrics Help to Bridge the Gap Between the 
      Improvement of OO Design Quality and Its Automation?},
   YEAR         = {2000},
   ADDRESS      = {Washington, DC, USA},
   OPTCROSSREF  = {},
   OPTEDITOR    = {},
   OPTMONTH     = {},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {154},
   PUBLISHER    = {IEEE Computer Society},
   OPTSERIES    = {},
   OPTVOLUME    = {}
}

@INPROCEEDINGS{Sartipi00-RecoveryDataMining,
   AUTHOR       = {Kamran Sartipi and Kostas Kontogiannis and 
      Farhad Mavaddat},
   BOOKTITLE    = {Proceedings of the 4<sup>th</sup> Conference on Software Maintenance and Reengineering},
   TITLE        = {Architectural Design Recovery Using Data Mining 
      Techniques},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Jürgen Ebert and Chris Verhoef},
   MONTH        = {March},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {129--140},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://www.computer.org/proceedings/csmr/0546/ 05460129abs.htm},
   ABSTRACT     = {This paper presents a technique for recovering the high 
      level design of legacy software systems according to user defined 
      architectural plans. Architectural plans are represented using a 
      description language and specify system components and their 
      interfaces. Such descriptions are viewed as queries that are applied 
      on a large data base which stores information extracted from the 
      source code of the subject legacy system. Data mining techniques and 
      a modified branch and bound search algorithm are used to control the 
      matching process, by which the query is satisfied and query variables 
      are instantiated. The matching process allows the alternative results 
      to be ranked according to data mining associations and clustering 
      techniques and, finally, be presented to the user.}
}

@INPROCEEDINGS{Sim00-StructuredDemonstrationComprehensionTools,
   AUTHOR       = {Susan Elliott Sim and Margaret-Anne D. Storey},
   BOOKTITLE    = {Proceedings of the 7<sup>th</sup> Working Conference on Reverse Engineering},
   TITLE        = {A Structured Demonstration of Program Comprehension 
      Tools},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Kostas Kontogiannis and Françoise Balmas},
   MONTH        = {November},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {184--193},
   PUBLISHER    = {IEEE Computer Society Press},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   URL          = {http://csdl.computer.org/comp/proceedings/wcre/2000/0881/00/08810184abs.htm},
   ABSTRACT     = {This paper describes a structured tool demonstration, a 
      hybrid evaluation technique that combines elements from experiments, 
      case studies, and technology demonstrations. Developers of program 
      understanding tools were invited to bring their tools to a common 
      location to participate in a scenario with a common subject system. 
      Working simultaneously, the tool teams were given reverse engineering 
      tasks and maintenance tasks to complete on an unfamiliar subject 
      system. Observers were assigned to each team to find out how useful 
      the observed program comprehension tool would be in an industrial 
      setting. A workshop panel followed the demonstration where the 
      development teams and the observers presented their results and 
      findings from this experience.}
}

@INPROCEEDINGS{Sunye00-Patterns,
   AUTHOR       = {Gerson Sunyé and Le Guennec, Alain and Jean-Marc Jézéquel},
   BOOKTITLE    = {Proceedings of the 14<sup>th</sup> European Conference for Object-Oriented Programming},
   TITLE        = {Design Patterns Application in UML},
   YEAR         = {2000},
   OPTADDRESS   = {},
   OPTCROSSREF  = {},
   EDITOR       = {Elisa Bertino},
   MONTH        = {June},
   OPTNOTE      = {},
   OPTNUMBER    = {},
   OPTORGANIZATION = {},
   PAGES        = {44--62},
   PUBLISHER    = {Springer-Verlag},
   OPTSERIES    = {},
   OPTVOLUME    = {},
   KEYWORDS     = {Design Patterns},
   URL          = {http://gerson.sunye.free.fr/publications.html},
   ABSTRACT     = {The Unified Modeling Language (UML) currently proposes a 
      mechanism to model recurrent design structures: the parameterized 
      collaborations. The main goal of this mechanism is to model the 
      structure of Design Patterns. This is an interesting feature because 
      it can help designers to point out pattern application without 
      spending time with intricate design details. Moreover, it can also 
      help designers to better document their systems and to manage their 
      own design pattern library, which 