\Sort{ Mode{on} Collation{mixed} SortTypeOrder{key,name} NameOrder{ascending} Key{{author,editor}} KeyOrder{descending,nulls first} } @BOOK{Woods98-ConstraintDesignRecovery, author = {Steven G. Woods and Alexander E. Quilici and Qiang Yang}, month = {November}, year = 1997, title = {Constraint-Based Design Recovery for Software Reengineering~-- {T}heory and Experiments}, edition = {1$^{st}$}, kind = {LEDL}, publisher = {Kluwer Academic Publishers}, isbn = {0-7923-8067-3}, abstract = {The great challenge of reverse engineering is recovering design information from legacy code: the `concept recovery' problem. This monograph describes up-to-date research dealing with this problem. It discusses a theory of how a constraint-based approach to program plan recognition can efficiently extract design concepts from source code, and it details experiments in concept recovery that support the authors' claims of scalability. Constraint-Based Design Recovery for Software Reengineering: Theory and Experiments presents models and experiments in sufficient detail so that they can be easily replicated. This book is intended for researchers or software developers concerned with reverse engineering or reengineering legacy systems. However, it may also interest those researchers who are interested in using plan recognition techniques or constraint-based reasoning. The reader is expected to have a reasonable computer science background (i.e., familiarity with the basics of programming and algorithm analysis), but is not required to have a familiarity with the fields of reverse engineering or artificial intelligence (AI). This book is designed as a reference for advanced undergraduate or graduate seminar courses in software engineering, reverse engineering, or reengineering. It can also serve as a supplementary textbook for software engineering-related courses, such as those on program understanding or design recovery, for AI-related courses, such as those on plan recognition or constraint satisfaction, and for courses that cover both topics, such as those on AI applications to software engineering.}, relevance = 100, relevantfor = {Constraint programming for design recovery.}, url = {www.wkap.nl/prod/b/0-7923-8067-3} } @BOOK{Wolfe86-ProgrammesBasic, author = {Philip Wolfe and Patrick Koelling}, month = {mai}, year = 1986, title = {Programmes Basic -- Pour Ing\'enieurs et Scientifiques sur {l'IBM} {PC}}, edition = {1$^{st}$}, publisher = {InterEditions}, kind = {LEDL}, isbn = {2-7296-0145-7}, language = {francais}, abstract = {L'objet de cet ouvrage est de pr\'esenter les principales techniques et leurs programmes associ\'es, utilisables pour les applications scientifiques et en gestion. Ecrits en Basic sur l'IBM-PC, ces programmes couvrent la plupart des domaines relatifs \`a la collecte et \`a la manipulation des donn\'ees, \`a l'analyse num\'erique et \`a la programmation lin\'eaire. Destin\'e aux \'etudiants et aux praticiens, (ing\'enieurs, scientifiques, gestionnaires), ce livre permet de tirer profit du micro-ordinateur IBM-PC gr\^ace aux nombreux programmes qui y sont pr\'esent\'es et illustr\'es. C'est un compagnon indispensable pour tout utilisateur de m\'ethodes quantitatives. Ecrit de fa\c con claire et pr\'ecises, il permet la manipulation des sous-programmes et leur int\'egration dans des programmes plus vastes en vue de la r\'ealisation d'applications scientifiques ou en gestion.}, relevance = 10, relevantfor = {Programmation Basic...} } @BOOK{Webster95-Pitfalls, author = {Bruce F. Webster}, month = {February}, year = 1995, title = {Pitfalls of Object Oriented Development}, edition = {1$^{st}$}, publisher = {M \& T Books}, kind = {LEDL}, isbn = {1558513973}, abstract = {After covering the basic concepts and terms of OOD, pitfalls of Object-Oriented Development provides over eighty concise summaries describing how to detect and avoid the many potential problems that lurk at every step of the software development process: (1) Conceptual, separating OOD fact and hype, (2) Political: the organizational dangers of adopting new technology, (3) Management: how to guide a development team through OOD, (4) Analysis and Design: coming up with the right solution to the right problem, (5) Environment, Languages, and Tools: concerns and considerations, (6) Implementation: OOD temptations faced by new developers, (7) Classes and Objects: warning signs of poor design and implementation, (8) Coding: nasty OOD bugs and how to avoid them, (9) Quality Insurance: OOD testing challenges, (10) Reuse: the roadblocks to achieving the most oft-cited benefit of OOD.}, url = {www.amazon.com/exec/obidos/ASIN/1558513973} } @BOOK{Tsang93-Foundations, author = {Edward Tsang}, month = {August}, year = 1993, title = {Foundations of Constraint Satisfaction}, edition = {1$^{st}$}, publisher = {Academic Press}, kind = {LEDL}, isbn = {0-12-701610-4}, abstract = {Constraint satisfaction is a general problem in which the goal is to find values for a set of variables that will satisfy a given set of constraints. It is the core of many applications in artificial intelligence, and has found its application in many areas, such as planning and scheduling. Because of its generality, most AI researchers should be able to benefit from having good knowledge of techniques in this field. This book is the most comprehensive book on the field of constraint satisfaction so far. It covers both the theoretical and the implemenatation aspects of the subject. It provides a framework for studying this field, relates different research, and resolves ambiguity in a number of concepts and algorithms in the literature. This book provides a solid foundation for researchers in this field. It is also an invaluable text for graduate and research level students in cognitive science and artificial intelligence.}, relevance = 100, relevantfor = {All about constraint programming.}, url = {cswww.essex.ac.uk/CSP/edward/FCS.html} } @BOOK{Takang96-SoftwareMaintenance, author = {Armstrong A. Takang and Penny A. Grubb}, month = {January}, year = 1996, title = {Software Maintenance: Concepts and Practice}, edition = {1$^{st}$}, publisher = {International Thomson Computer Press}, kind = {LEDL}, isbn = {1-85032-192-2}, abstract = {The last few decades have witnessed a proliferation of software systems in a wide range of working environments. Changes to such systems are often required in order to improve performance and enhance functionality and it is the management and control of these changes that is known as software maintenance. Studies have indicated that software maintenance consumes a least 50\% of resources allocated to many software life cycles and thus is an important area for software engineers to master. This book sets out to provide a comprehensive intrudcuction to software maintenance concepts, showing how these concepts can be used to offer practical solutions to problems encountered by software engineers. Providing a framework for understanding the concepts, the authors outline how this can be applied using the wide variety of software maintenance techniques available. These include coverage of reverse engineering, reengineering, program comprehension, code restructuring and maintainability measures. \textit{Software Maintenance: Concepts and Practice} begins by explaining software maintenance and examines and analyses the various methods which have been used in industry to date. Rather than the traditional view of software as static artefact, with maintenance either costly or impossible, this book presents the view of an evolutionary development of software. \textit{Software Maintenance: Concepts and Practice} is the ideal for computing and engineering students studying a course in software maintenance and software engineering. It will also be an invaluable resource for practising software engineers, software designers and programmers.}, relevance = 100, relevantfor = {All about maintenance!}, url = {www.isbn.nu/1850321922/price} } @BOOK{Shalloway02-DPExplained, author = {Alan Shalloway and James R. Trott}, month = {Septembre}, year = 2001, title = {Design Patterns Explained: A New Perspective on Object-Oriented Design}, edition = {1$^{st}$}, publisher = {Addison-Wesley Professional}, kind = {LEDL}, isbn = {0-201-71594-5}, 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.}, relevance = 100, relevantfor = {Beauty}, url = { www.awprofessional.com/isapi/product\_id$\sim$\%7B43B2E15C-6B43-4914- 96DC-1564616E6B6F\%7D/catalog/product.asp} } @BOOK{Schach02-OOSE, author = {Stephen R. Schach}, year = 2002, title = {Object-Oriented and Classical Software Engineering}, publisher = {The McGraw-Hill Companies}, kind = {LEDL} } @BOOK{Rumbaugh91-OMT, author = {James Rumbaugh and Michael Blaha and William Premerlani and Frederick Eddy and William Lorenson}, month = {October}, year = 1991, title = {Object-Oriented Modeling and Design}, edition = {1$^{st}$}, publisher = {{Prentice Hall, Inc.}}, kind = {LEDL}, isbn = {0-13-629841-9}, abstract = {Notable mainly for its clear and thorough exploration of the Object Modelling Technique (OMT)--a generic way of representing objects and their relationships--this book is good as a primer and great as a knowledge booster for those already familiar with object-oriented concepts. Object-Oriented Modelling and Design teaches you how to approach problems by breaking them down into interrelated pieces, then implementing the pieces. In addition to its documentation of the Object Modelling Technique (OMT), a graphical notation for depicting object-oriented systems, Object-Oriented Modelling and Design does a first-rate job of explaining basic and advanced object-orientation concepts. The book then moves on to explain the authors' techniques for breaking down problems into components and figuring out systems of interrelated objects that can be used as designs for programs. Interestingly, the authors devote part of their book to implementing object-oriented solutions in non-object-oriented languages--mainly {C}, {Ada}, and Fortran. There's also a great discussion of implementing object-oriented designs in relational database environments. The authors conclude their book with a sort of recipe section, detailing architectures for various types of programs in OMT.}, url = {www.amazon.com/exec/obidos/ASIN/0136298419/qid\%3D1006990173/sr\% 3D1-4/ref\%3Dsr\%5F1\%5F10\%5F4/102-5556529-4227313} } @BOOK{Rumbaugh99-UMLRef, author = {James Rumbaugh and Robert Jacobson and Grady Booch}, month = {January}, year = 1999, title = {The Unified Modelling Language Reference Manual}, edition = {1$^{st}$}, publisher = {Addison-Wesley}, kind = {LEDL}, isbn = {0-201-30998-X}, abstract = {The Unified Modeling Language (UML) has rapidly become the standard notation for modeling software-intensive systems. This book provides the definitive description of UML from its original developers--James Rumbaugh, Ivar Jacobson, and Grady Booch. Whether you are capturing requirements, developing a software architecture, designing the implementation, or trying to understand an existing system, this is the book for you. The majority of the book is a unique alphabetical list of articles covering every aspect of UML in a form convenient for quick reference and detailed study. This format permits full coverage of UML details as well as high-level articles without confusing the reader by constant shifts in level. The first part of the book--a complete summary of UML concepts organized by subject area--provides an introduction to UML for the newcomer as well as entry points into the detailed articles. Highlights of the book include: \begin{itemize} \item Two-color diagrams, extensively annotated. \item Thorough coverage of both semantics and notation, separated in each article for easy reference. \item Further explanations of concepts whose meaning or purpose is obscure in the original specifications. \item Discussion sections offering usage advice and additional insight into tricky concepts. \item A hyperlinked version of the book in Adobe Reader format on CD-ROM, an excellent resource for browsing or searching the text for specific information. \item Full text of the \UML{} specification documents on CD-ROM, courtesy of the Object Management Group. \item Notation summary, with hyperlinks to individual articles on CD-ROM. \end{itemize}}, url = {www.amazon.co.uk/exec/obidos/ASIN/020130998X/026-2174472-9898019} } @BOOK{Riel96-Metrics, author = {Arthur J. Riel}, year = 1996, title = {Object-Oriented Design Heuristics}, publisher = {Addison-Wesley}, kind = {LEDL}, abstract = {Object-Oriented Design Heuristics offers insight into object-oriented design improvement. The more than sixty guidelines presented in this book are language-independent and allow you to rate the integrity of a software design. The heuristics are not written as hard and fast rules; they are meant to serve as warning mechanisms which allow the flexibility of ignoring the heuristic as necessary. This tutorial-based approach, born out of the author's extensive experience developing software, teaching thousands of students, and critiquing designs in a variety of domains, allows you to apply the guidelines in a personalized manner. The heuristics cover important topics ranging from classes and objects (with emphasis on their relationships including association, uses, containment, and both single and multiple inheritance) to physical object-oriented design. You will gain an understanding of the synergy that exists between design heuristics and the popular concept of design patterns; heuristics can highlight a problem in one facet of a design while patterns can provide the solution. Programmers of all levels will find value in this book. The newcomer will discover a fast track to understanding the concepts of object-oriented programming. At the same time, experienced programmers seeking to strengthen their object-oriented development efforts will appreciate the insightful analysis. In short, with Object-Oriented Design Heuristics as your guide, you have the tools to become a better software developer.}, where = {Books} } @BOOK{Rich90-ProgrammersApprentice, author = {Charles Rich and Richard C. Waters}, month = {January}, year = 1990, title = {The Programmer's Apprentice}, edition = {1$^{st}$}, publisher = {ACM Press Frontier Series and Addison-Wesley}, kind = {LEDL}, isbn = {0-201-52425-2}, abstract = {Where will the next order of magnitude improvement in software productivity come from? In this book, two leading researchers at M.I.T. answer this question by describing the Programmer's Apprentice, a powerful new approach to computer-aided software engineering (CASE) that combines artificial intelligence and software engineering techniques. The Programmer's Apprentice is an intelligent assistant for software engineers that will provide advice, catch errors, and take care of routine details throughout the software process, from requirements acquisition to implementation and maintenance. Rich and Waters use extensive illustrations and transcripts from a demonstration system to make the principles and methods underlying the Programmer's Apprentice understandable to both researchers and engineers. In the concluding chapter, they give specific examples of how to apply ideas from the Programmer's Apprentice to the next generation of CASE tools. This book will give software professionals and CASE tool designers a glimpse of what to expect in the future of software development. It will also inspire researchers and students in both artificial intelligence and software engineering by showing the results of synergy between these two disciplines.}, relevance = 100, relevantfor = {A MUST READ!} } @BOOK{Pressman97-SoftwareEngineering, author = {Roger S. Pressman}, month = {November}, year = 2001, title = {Software Engineering -- {A} Practitioner's Approach}, edition = {5$^{th}$}, publisher = {McGraw-Hill Higher Education}, kind = {LEDL}, isbn = {0-07-249668-1}, 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$^{st}$ 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.}, relevance = 100, relevantfor = {Cost of maintenance}, url = {www.accu.org/bookreviews/public/reviews/s/s000005.htm} } @MISC{GDT03-Dictionnaire, author = {{Office qu{\'e}b{\'e}cois de la langue fran{\c c}aise}}, month = {f\'evrier}, year = 2003, title = {Grand dictionnaire terminologique en ligne}, kind = {DIVERS}, 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.}, relevance = 100, relevantfor = {Vive le Qu\'ebec...}, url = {w3.granddictionnaire.com/} } @BOOK{Meyer92-TheorieLangages, author = {Bertrand Meyer}, year = 1992, title = {Introduction \`A la Th\'eorie Des Langages de Programmation}, publisher = {InterEditions}, kind = {LEDL}, abstract = {Pour les d\'eveloppeurs de logiciel, les langages de programmation sont l'outil fondamental et quotidien. Trop peu pourtant connaissent les bases th\'eoriques qui permettent de ma\^{\i}triser les langages et de mieux les employer. Par une d\'emarche progressive, claire et bien structur\'ee, l'auteur pr\'esente successivement les notions de syntaxe abstraite et de s\'emantique formelle. Puis il d\'eveloppe la s\'emantique d\'enotationnelle et la s\'emantique axiomatique. Pour illustrer son discours, il expose et approfondit des concepts importants, comme le lambda-calcul et les d\'efinitions r\'ecursives. Ce livre fournit, de surcro\^{\i}t, une excellente \'etude comparative des caract\'eristiques de diff\'erents langages de programmation. Algol, Ada, Lisp, Pascal, C... et les langages \`a objets, notamment Eiffel, sont tour \`a tour \'evoqu\'es. Il en ressort une vue synth\'etique tr\`es riche de leurs diff\'erences et--ou de leurs parent\'es ainsi que des choix qui ont pr\'esid\'e \`a leur impl\'ementation. La pr\'esentation a \'et\'e con\c cue pour des praticiens de la programmation : l'auteur utilise en permanence des exemples de programmes concrets et des analogies emprunt\'ees aux situations les plus courantes de la construction de logiciel. Tous les concepts math\'ematiques n\'ecessaires sont emprunt\'es \`a la th\'eorie \'el\'ementaire des ensembles et d\'efinis clairement dans un bref chapitre d'introduction. Enfin, le lecteur appr\'eciera de pouvoir \'evaluer ses acquis gr\^ace aux exercices propos\'es \`a la fin de chaque chapitre. Les concepteurs de langage puiseront dans cet ouvrage les bases fondamentales de leur travail. Les \'etudiants et les ing\'enieurs y trouveront un expos\'e didactique leur permettant d'approfondir leurs connaissances th\'eoriques.} } @MISC{MerriamWebster03-Dictionnary, author = {Merriam-Webster}, month = {March}, year = 2003, title = {Merriam-Webster Online Dictionnary}, kind = {DIVERS}, 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}}, relevance = 100, relevantfor = {English is hard!}, url = {www.merriam-webster.com/} } @BOOK{Masini89-LangagesObjets, author = {G{\'e}rald Masini and Amedeo Napoli and Dominique Colnet and Daniel L{\'e}onard and Karl Tombre}, year = 1989, title = {Les Langages \`A Objets}, publisher = {InterEditions}, kind = {LEDL}, abstract = {Cet ouvrage est le fruit d'un travail d'enseignement et de recherche commenc\'e en 1985 au CRIN (Centre de Recherche en Informatique de Nancy). Il s'adresse \`a tous les membres de la communaut\'e informatique, des n\'eophytes aux sp\'ecialistes. Il passe en revue les diff\'erentes facettes de la programmation objet et effectue un vaste tour d'horizon des langages \`a objets : pr\'esentation didactique des concepts de base de la programmation objet ; historique et classification des langages \`a objets : langages \`a classes, langages de frames, langages d'acteurs et langages hybrides ; description comparative de nombreaux langages \`a objets : Smalltalk, Objective-C, Flavors, CLOS, C++, Eiffel, KRL, etc. ; \'etude comparative de la programmation avec un langage \`a classe (Smalltalk) et avec un langage plus classique (Ada). Il fournit en outre le source comment\'e de l'impl\'ementation de trois langages \`a objets. Cet ouvrage de r\'ef\'erence, gr\^ace aux nombreux exemples qu'il contient, constitue \'egalement un support de cours id\'eal pour les enseignants d\'esireux d'initier leurs \'etudiants aux langages \`a objets.} } @BOOK{Sun99-JavaVirtualMachine, author = {Tim Lindholm and Frank Yellin}, month = {April}, year = 1999, title = {The Java Virtual Machine Specification}, edition = {2$^{nd}$}, publisher = {Addison-Wesley}, kind = {LEDL}, isbn = {0-201-43294-3}, abstract = {The nucleus of the Java 2 platform, the Java virtual machine is the technology that enables the Java 2 platform to host applications on any computer or operating system without rewriting or recompiling. The Java virtual machine is also responsible for the compactness of applications targeting the Java 2 platform, and is the basis for its security capabilities. This book was written by those directly responsible for the design and implementation of the Java virtual machine, and is the complete and definitive specification for the technology. It is an essential reference for writers of compilers for the Java programming language and implementors of the Java virtual machine. This second edition specifies the newest version of the Java virtual machine and provides a fascinating view into the inner workings of the Java 2 platform. In this book you will find comprehensive coverage of the class file format, the hardware, operating system, and implementation-independent binary format for compiled code. The authors fully describe the instruction set of the Java virtual machine. You will find an entire chapter of examples that demonstrate how to compile code written in the Java programming language into the instruction set of the Java virtual machine. In addition, the book presents a discussion on the vital topic of Java virtual machine threads and their interaction with memory. All in all, this comprehensive, detailed, and methodical presentation provides the information necessary to implement your own fully compatible Java virtual machine.}, relevance = 100, relevantfor = {THE virtual machine that started it all...}, url = {www.amazon.com/exec/obidos/tg/detail/-/0201432943} } @PHDTHESIS{Leblanc00-Galois, author = {Herv{\'e} Leblanc}, month = {d\'ecembre}, year = 2000, kind = {THESE}, title = {Sous-Hi\'erarchie de Galois : Un Mod\`ele Pour la Construction et L'\'evolution Des Hi\'erarchies D'objets}, institution = {Universit\'e de Montpellier II -- {U.F.R.} Sciences de Montpellier}, school = {Information, Structures et Syst\`emes} } @BOOK{Larousse95-Dictionnaire, author = {Larousse}, year = 1995, title = {Le Petit Larousse Illustr\'e}, edition = {90$^{e}$}, publisher = {Larousse}, kind = {DIVERS}, isbn = {2-03-301195-X}, language = {francais}, abstract = {Depuis 1906, le \textit{Petit Larousse} fait partie int\'egrante du patrimoine culturel et sentimental de tous les Fran\c cais et de tous les amoureux de la langue fran\c caise. Cette ann\'ee encore, plus d'un million de lecteurs, en France, en Belgique, en Suisse, au Qu\'ebec, en Afrique..., ach\`eteront un nouveau \textit{Petit Larousse}. Symbole de savoir-faire et d'exp\'erience en mati\`ere de dictionnaire, le \textit{Petit Larousse} est traduit et adapt\'e en espagnol, finnois, italiens, n\'eerlandais, portugais, serbo-croate et turc, devenant ainsi une r\'ef\'erence internationale. Une version en langue anglaise est actuellement en pr\'eparation. Si le \textit{Petit Larousse} est une v\'eritable institution, c'est parce que son objectif est double : offrir \`a ses lecteurs ce qui constitue leur patrimoine linguistique et culturel, tout en refl\'etant l'\'evolution du monde contemporain. Ainsi, chaque ann\'ee et toujours avec discernement, il enregistre des mots nouveaux, accueille des personnalit\'es et, sans cesse mis \`a jour dans ses d\'eveloppements encyclop\'ediques, il rend compte des \'ev\`enements les plus actuels. Le succ\`es du \textit{Petit Larousse} tient aussi \`a l'importance capitale qu'il a, le premier, accord\'ee \`a l'illustration. Les dessins, les photographies, les cartes et les sch\'emas \'eclairent les mots, prolongent les d\'efinitions ; les planches mettent en relation les \'el\'ements dispers\'es par l'odre alphab\'etique. L'exp\'erience prouve que l'illustration, en plus de son r\^ole didactique, est aussi un extraordinaire vecteur d'\'emotion qui attise la curiosit\'e et s'inscrit dans la m\'emoire de chacun. Aujourd'hui, toutes en couleurs, les illustrations~-- 3 600 dessins, sch\'emas et photographies, 285 cartes~-- offrent une documentation visuelle encore plus actuelle, riche et attrayante.} } @MANUAL{Koutsofios02-Dot, author = {Eleftherios Koutsofios and Stephen North}, month = {February}, year = 2002, title = {Drawing graphs with \ygg@product{Dot}}, organization = {AT\&T Labs-Research}, kind = {DIVERS}, 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.}, url = {www.research.att.com/sw/tools/graphviz/dotguide.pdf} } @PROCEEDINGS{Knudsen01-ECOOP2001, editor = {Jorgen Lindskov Knudsen}, year = 2001, title = {{ECOOP} 2001 -- Object-Oriented Programming}, publisher = {Springer-Verlag}, kind = {LEDL}, isbn = {3-540-42206-4} } @BOOK{Keene89-CommonLisp, author = {Sonya E. Keene}, month = {December}, year = 1989, title = {Object-Oriented Programming in {Common Lisp}}, edition = {1$^{st}$}, publisher = {Addison Wesley}, kind = {LEDL}, isbn = {0-201-17589-4}, abstract = {This book shows software developers the powerful set of tools (CLOS) available for developing oject-oriented programs in \ygg@pl{Common Lisp}. The advantages of using CLOS to design, develop, maintain, and extend complex programs are many: it allows for modular implementation; programs more closely resemble what they model; programs are conveniently extensible; and CLOS defines conventions that will be shared across the \ygg@pl{Common Lisp} community. CLOS has been adopoted as part of \ygg@pl{Common Lisp} by the X3J13 committtee, which is working on creating the ANSI Standard \ygg@pl{Common Lisp}. \ygg@pl{Common Lisp} programmers can use this book to start developing object-oriented programs in \ygg@pl{Common Lisp} as quickly as possible. Readers who are not familiar with \ygg@pl{Common Lisp} can discover from this book the major themes of object-oriented programming.}, relevance = 10, relevantfor = {Multi-methods.}, url = {www.amazon.com/exec/obidos/tg/detail/-/0201175894/102-7236002- 3922509} } @BOOK{Grand98-Patterns, author = {Mark Grand}, year = 1998, title = {Patterns in {Java}~-- {V}olume 1}, publisher = {John Willey \& Sons, Inc.}, kind = {LEDL}, relevance = 90, relevantfor = {Fundamental, creational, partitioning, structural, behavioral, and concurrency patterns.}, url = {www.clickblocks.org/patterns1/pattern\_synopses.htm\#synopses}, where = {Binder 5} } @BOOK{Sun96-JavaLanguage, author = {James Gosling and Bill Joy and Guy Steele}, month = {June}, year = 2000, title = {The {Java} Language Specification}, edition = {2$^{nd}$}, publisher = {Addison-Wesley}, kind = {LEDL}, isbn = {0-201-31008-2}, 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.}, relevance = 100, relevantfor = {Java!}, url = {java.sun.com/docs/books/jls/} } @BOOK{GoF94-Patterns, author = {Erich Gamma and Richard Helm and Ralph Johnson and John Vlissides}, year = 1994, title = {Design Patterns~-- {E}lements of Reusable Object-Oriented Software}, edition = {1$^{st}$}, publisher = {Addison-Wesley}, kind = {LEDL}, isbn = {0-201-63361-2}, abstract = {Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalogue of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves. The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalogue recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently. Each pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk.}, where = {Books} } @BOOK{Gabriel96-PatternsOfSoftware, author = {Richard P. Gabriel}, month = {April}, year = 1996, title = {Patterns of Software: Tales from the Software Community}, edition = {1$^{st}$}, publisher = {Oxford University Press}, kind = {LEDL}, isbn = {0-19-5100269-X}, abstract = {In our homes, our schools, and our our businesses, computers play an ever-increasing role. But while most of us today can work a computer---albeit with the help of the ever-present computer software manual---we know little about what goes on inside the box and virtually nothing about software design or the world of computer programming. In \textit{Patterns of Software}, the respected software pioneer and computer scientist, Richard P. Gabriel, gives us an informative inside look at the world of software design and computer programming and the businesses that surround them. In this wide-ranging volume, Gabriel discusses such topics as what makes a successful programming languages, how the rest of the world looks at and responds to the work of computer scientists, how he first became involved in computer programming and software development, what makes a successful software business, and why his own company, Lucid, failed in 1994, then years after its inception. Perhaps the most interesting and enlightening section of the book is Gabriel's detailed look at what he believes are the lessons that can be learned from architect Christopher Alexander, whose books---including the seminal \textit{A Pattern Language}--- have had a profound influence on the computer programming community. Gabriel illuminates some of Alexander's key insights---the quality without a name, pattern languages, habitability, piecemeal growth---and reveals how these influential architectural ideas apply equally well to the construction of a computer program. Gabriel explains the concept of habitability, for example, by comparing a program to a New England farmhouse and the surrounding structures which slowly grow and are modified according to the needs and desires of the people who live and work on the farm. ``Programs live and grow, and their inhabitants---the programmers---need to work with that program the way the farmer works with the homestead." Although computer scientists and software entrepreneurs will get much out of this book, the essays are accessible to everyone and will intrigue anyone curious about Silicon Valley, computer programming, and the world of high technology.}, relevance = 100, relevantfor = {Piecemeal growth and the rest!}, url = {www.amazon.com/exec/obidos/tg/detail/-/0195121236/103-3299277- 4167825} } @BOOK{Fowler96-AnalysisPattern, author = {Martin Fowler}, month = {October}, year = 1996, title = {Analysis Patterns : Reusable Object Models}, edition = {1$^{st}$}, publisher = {Addison-Wesley -- Object Technology Series}, kind = {LEDL}, isbn = {0-201-89542-0}, abstract = {This innovative book recognizes the need within the object-oriented community for a book that goes beyond the tools and techniques of the typical methodology book. In Analysis Patterns- Reusable Object Models , Martin Fowler focuses on the end result of object-oriented analysis and design - the models themselves. He shares with you his wealth of object modeling experience and his keen eye for identifying repeating problems and transforming them into reusable models. Analysis Patterns provides a catalogue of patterns that have emerged in a wide range of domains including trading, measurement, accounting and organizational relationships. Recognizing that conceptual patterns cannot exist in isolation, the author also presents a series of "support patterns" that discuss how to turn conceptual models into software that in turn fits into an architecture for a large information system. Included in each pattern is the reasoning behind their design, rules for when they should and should not be used, and tips for implementation. The examples presented in this book comprise a cookbook of useful models and insight into the skill of reuse that will improve analysis, modeling and implementation.}, relevance = 50, relevantfor = {Analysis patterns...}, url = {www.amazon.com/exec/obidos/ASIN/0201895420} } @BOOK{Fowler99-Refactoring, author = {Martin Fowler}, year = 1999, title = {Refactoring~-- {I}mproving the Design of Existing Code}, publisher = {Addison-Wesley}, kind = {LEDL}, where = {Books} } @BOOK{MF97, author = {Martin Fowler}, year = 1997, title = {Analysis Patterns~-- {R}eusable Object Models}, kind = {LEDL}, publisher = {Addison-Wesley} } @BOOK{Flanagan97-JavaInANutshell, author = {David Flanagan}, month = {May}, year = 1997, title = {Java in a Nutshell}, publisher = {O'Reilly}, kind = {LEDL}, isbn = {1-565-92262-X} } @BOOK{Felleisen98-Little, author = {Matthias Felleisen and Daniel P. Friedman}, year = 1998, title = {A Little {Java}, A Few Patterns}, publisher = {The MIT Press}, kind = {LEDL}, relevantfor = {A good introductory book and {Java} and the Visitor Pattern ... Plus a fabulous quote: p164 ``When does the future begin? - Does it begin below the stand-alone semicolon? - That's precisely what a stand-alone semicolon means."}, where = {Books} } @BOOK{FAMOOS, author = {St{\'e}phane Ducasse and Serge Demeyer (Editors)}, year = 1999, title = {The {FAMOOS} Object-Oriented Reengineering Handbook}, kind = {LEDL} } @BOOK{SoftwareVisualization02, editor = {Stephan Diehl}, month = {May}, year = 2002, title = {Software Visualization}, publisher = {Springer-Verlag Berlin Heidelberg}, kind = {LEDL}, isbn = {3-540-43323-6} } @TECHREPORT{Deimel90-ReadingPrograms, author = {Lionel E. Deimel and J. Fernando Naveda}, month = {August}, year = 1990, kind = {RR}, title = {Reading Computer Programs: Instructor's Guide and Exercises}, number = {CMU/SEI-90-EM-3}, institution = {Software Engineering Institute, Carnegie Mellon University}, abstract = {The ability to read and understand a computer program is a critical skill for the software developper, yet this skill is seldom developped in any systematic way in the education or training of software professionals. These materials discuss the importance of program reading, and review what is known about reading strategies and other factors affecting comprehension. These materials also include reading exercises for a modest \ygg@pl{Ada} program and discuss how educators can structure additional exercises to enhance program reading skills.}, relevance = 100, relevantfor = {Program understanding!}, url = {www.deimel.org/comp{\_}sci/reading{\_}computer{\_}programs.htm}, where = {Books} } @BOOK{Coplien91-ImplementationPatterns, author = {James O. Coplien}, month = {August}, year = 1991, title = {Advanced C++ Programming Styles and Idioms}, edition = {1$^{st}$}, publisher = {Addison-Wesley}, kind = {LEDL}, isbn = {0-201-54855-0}, abstract = {Assuming a background in C++ basics, this book helps programmers to develop their programming expertise by giving a feel for the styles and idioms of the language. The approach is organized around the abstractions that C++ supports: Abstract data types, combining types in inheritance structures, object-oriented programming, and multiple inheritance. The book also explors idioms that the core of the C++ language does not support directly, such as virtual constructors, prototype objects, and advanced garbage collection techniques.}, url = { www.awprofessional.com/catalog/product.asp?product\_id=\%7BF983A2EA- 89B7-4F25-B82B-6CC86496C735\%7D} } @BOOK{Cattell91-ObjectDatabase, author = {R. G. G. Cattell}, year = 1991, title = {Object Data Management: Object-Oriented and Extended Database Systems}, publisher = {Addison Wesley}, kind = {LEDL} } @BOOK{Card90-Quality, author = {David N. Card and Robert L. Glass}, year = 1990, title = {Measuring Software Design Quality}, publisher = {Prentice Hall}, kind = {LEDL}, abstract = {Here is a practical guide to software metrics. It is written by two experienced practitioners who roll up their sleeves and show ou how to use measures derived from a simple model of the software design and development process to assess quality.}, relevance = 95, relevantfor = {Design quality metrics}, where = {Books at OTI OTT} } @BOOK{Buschman96-ArchitecturalPattern, author = {Frank Buschmann and Regine Meunier and Hans Rohnert and Peter Sommerlad and Michael Stal}, month = {August}, year = 1996, title = {Pattern-Oriented Software Architecture: A System of Patterns}, edition = {1$^{st}$}, publisher = {John Wiley and Sons}, kind = {LEDL}, isbn = {0-47-195869-7}, abstract = {Pattern-Oriented Software Architecture is a new approach to software development. This book represents the progression and evolution of the pattern approach into a system of patterns capable of describing and documenting large-scale applications. A pattern system provides, on one level, a pool of proven solutions to many recurring design problems. On another it shows how to combine individual patterns into heterogenous structures and as such it can be used to facilitate a constructive development of software systems. Uniquely, the patterns that are presented in this book span several levels of abstractions from high-level architectural patterns and medium-level design patterns to low-level idioms. This shifts the focus from what was conceived as an object-oriented design technique for reuse to a powerful and documentable method for designing large and complex software systems. The intention of, and motivation for, this book is to support both novices and experts in software development. Novices will gain from the experience inherent in pattern descriptions and experts will hopefully make use of, add to, extend and modify patterns to tailor them to their own needs. None of the pattern descriptions are cast in stone and just as they are borne from experience, it is expected that further use will feed in and refine individual patterns and produce an evolving system of patterns.}, url = {http://www.amazon.com/exec/obidos/tg/detail/-/0471958697/104- 1238236-1419115} } @BOOK{Brown98-AntiPatterns, author = {William J. Brown and Raphael C. Malveau and William H. Brown and Hays W. McCormick III and Thomas J. Mowbray}, month = {March}, year = 1998, title = {Anti Patterns: Refactoring Software, Architectures, and Projects in Crisis}, edition = {1$^{st}$}, publisher = {John Wiley and Sons}, kind = {LEDL}, isbn = {0-471-19713-0}, abstract = {Are you headed into software development mine field? Follow someone if you can, but if you're on your own --- better get the map! \textit{AntiPatterns} is the map. This book helps you navigate through today's dangerous software development projects. Just look at the statistics: \begin{itemize}\item Nearly one-third of all software projects are cancelled. \item Two-thirds of all software projects encounter cost overruns in excess of 200\%. \item Over 80\% of all software projects are deemed failures. \end{itemize} While patterns help you to identify and implement procedures, designs, and codes that work, anti-patterns do the exact opposite: They let you zero-in on the development detonators, architectural tripwires, and personality booby traps that can spell doom for your project. Written by an all-star team of object-oriented system developers, \textit{AntiPatterns} identifies 40 of the most common anti-patterns in the areas of software development, architecture, and project management. The authors then show you how to detect and defuse anti-patterns as well as supply refactored solutions for each anti-pattern presented.}, relevance = 100, url = {www.amazon.com/exec/obidos/tg/detail/-/0471197130/ref=ase\_theanti patterngr/103-4749445-6141457} } @BOOK{Booch91-Design, author = {Grady Booch}, month = {September}, year = 1993, title = {Object-Oriented Design with Applications}, edition = {2$^{nd}$}, publisher = {The Benjamin/Cummings Publishing Company, Inc.}, kind = {LEDL}, isbn = {0-8053-5340-2}, abstract = {The first edition of \textit{Object-Oriented Design with Applications} was instrumental in making object-oriented technology a practical reality--hundreds of projects applied Booch's notation and process to complex problems in diverse domains. In this eagerly-awaited new edition, Grady Booch draws upon the rich and varied results of these projects to offer improved methods for object development and a new, \textit{unified notation}. With numerous examples, all of which are now implemented in C++, Booch illustrates essential concepts, explains the method, and shows successful applications in a variety of fields. You'll also find pragmatic advice on a host of issues including classification, implementation strategies, and cost-effective project management.}, relevance = 100, relevantfor = {The Booch method covers the analysis- and design-phases of a OO-system. {Booch} sometimes is criticized for his big set of different symbols. It's true that {Booch} defines a lot of symbols to document almost every design decision. If you work with this method, you notice that you will never use all these symbols and diagrams. You start with class- and object-diagrams in the analysis phase and refine these diagrams in various steps. Only when you are ready to generate code, you add some design symbols. And this is where {Booch} is strong: You can really document your OO-code. Round-trip in object-oriented programming.}, url = {www.informit.com/isapi/product\_id~\%7BDB6ED747-9417-4126-8CFA- BA32C4B05ECC\%7D/content/index.asp} } @BOOK{Booch99-UMLGuide, author = {Grady Booch and James Rumbaugh and Ivar Jacobson}, month = {October}, year = 1999, title = {The Unified Modeling Language User Guide}, edition = {1$^{st}$}, publisher = {Addison-Wesley}, kind = {LEDL}, isbn = {0-201-57168-4}, abstract = {Introduced in 1997, the Unified Modeling Language (UML) has rapidly been accepted throughout the software industry as the standard graphical language for specifying, constructing, visualizing and documenting software-intensive systems. The UML provides anyone involved in the production, deployment, and maintenance of software with a standard notation for expressing a system's blueprint. The UML covers conceptual things, such as business processes and system functions, as well as concrete things, such as programming-language classes, database schemas, and reusable software components. In \textit{The Unified Modeling Language User Guide}, the original developers of the UML---Grady Booch, James Rumbaugh, and Ivar Jacobson---provide a tutorial to the core aspects of the language in a two-color format designed to facilitate learning. Starting with a conceptual model of the UML, the book progressively applies the UML to a series of increasingly complex modeling problems across a variety of application domains. This example-driven approach helps readers quickly understand and apply the UML. For more advanced developers, the book includes a learning track focused on applying the UML to advanced modeling problems. With \textit{The Unified Modeling Language User Guide}, readers will: \begin{itemize} \item Understand what the UML is, what it is not, and why it is relevant to the development of software-intensive systems. \item Master the vocabulary, rules, and idioms of the UML in order to ``speak" the language effectively. \item Learn how to apply the UML to a number of common modeling problems. \item See illustrations of the UML's use interspersed with use cases for specific UML features. \item Gain insight into the UML from the original creators of the UML. \end{itemize}}, relevance = 50, relevantfor = {UML}, url = {www.bookpool.com/.x/krx9tbjff4/sm/umod\_lang\_ug} } @BOOK{SABRSA96, author = {Shawn A. Bohner and Robert S. Arnold}, year = 1996, title = {Software Change Impact Analysis}, publisher = {IEEE Computer Society}, kind = {LEDL} } @BOOK{Bezier90-Testing, author = {Boris Bezier}, year = 1990, title = {Software Testing Techniques}, publisher = {Van Nostrand Rheinhold Company, New York}, kind = {LEDL} } @BOOK{Beck99-eXtreme, author = {Kent Beck}, month = {October}, year = 1999, title = {Extreme Programming Explained: Embrace Change}, edition = {1$^{st}$}, publisher = {Addison-Wesley}, kind = {LEDL}, isbn = {0-201-61641-6}, abstract = {Software development projects can be fun, productive, and even daring. Yet they can consistently deliver value to a business and remain under control. Extreme Programming (XP) was conceived and developed to address the specific needs of software development conducted by small teams in the face of vague and changing requirements. This new lightweight methodology challenges many conventional tenets, including the long-held assumption that the cost of changing a piece of software necessarily rises dramatically over the course of time. XP recognizes that projects have to work to achieve this reduction in cost and exploit the savings once they have been earned. You may love XP or you may hate it, but \textit{Extreme Programming Explained} will force you to take a fresh look at how you develop software.}, url = {www.amazon.com/exec/obidos/tg/detail/-/0201616416/103-1640084- 5126214} } @BOOK{Alexander77-PatternLanguage, author = {Christopher Alexander and Sara Ishikawa and Murray Silverstein and Max Jacobson and Ingrid Fiksdahl-King and Shlomo Angel}, month = {August}, year = 1978, title = {A Pattern Language}, edition = {1$^{st}$}, publisher = {Oxford University Press}, kind = {LEDL}, isbn = {0-19-501919-9}, abstract = {You can use this book to design a house for yourself with your family; you can use it to work with your neighbors to improve your town and neihborhood; you can use it to design an office, or a workshop, or a public building. And you can use it to guide you in the actual process of construction. After a ten-year silence, Christopher Alexander and his colleagues at the Center for Environment Structure are now publishing a major statement in the form of three books which will, in their words, ``lay the basis for an entirely new approach to architecture, building and planning, which will we hope replace existing ideas and practices entirely". At the core of these three books is the idea that people should design for themselves their own houses, streets, and communities. This idea may be radical (it implies a radical transformation of the architectural profession) but it comes simply from the observation that most of the wonderful places of the world were not made by architects but by the people. At the core of the books too is the point that in designing their environments people always rely on certain ``languages", which, like the languages we speak, allow them to articulate and communicate an infinite variety of designs within a formal system which gives them coherence. It will enable a person to make a design for almost any kind of building, or any part of the built environment. ``Patterns", the units of this language, are answers to design problems (How high should a window still be? How many stories should a building have? How much space in a neighborhood should be devoted to grass and trees?). More than 250 of the patterns in this pattern languages are given: each consists of a problem statement, a discussion of the problem with an illustration, and a solution. As the authors say in their introduction, many of the patterns are archetypal, so deeply rooted in the nature of things that it seems likely that they will be a part of human nature, and human action, as much in five hundred year as they are today.}, url = {www.oup.co.uk/isbn/0-19-501919-9} } @BOOK{Abelson92-StructureInterpretation, author = {Harold Abelson and Gerald Jay Sussman}, year = 1992, title = {Structure et Interpretation Des Programmes Informatiques}, publisher = {InterEditions}, kind = {LEDL}, isbn = {2-7296-0231-5} } @BOOK{Abadi96-TheoryOfObjects, author = {Mart{\'{\i}}n Abadi and Luca Cardelli}, year = 1998, title = {A Theory of Objects}, edition = {Second}, series = {Monographs in Computer Science}, publisher = {Springer-Verlag}, kind = {LEDL}, isbn = {0-387-94775-2}, relevance = 50, url = {www.luca.demon.co.uk/TheoryOfObjects.html}, where = {Library of the EMN} } @BOOK{Cardelli96-TheoryOfObjects, author = {Martin Abadi and Luca Cardelli}, year = 1996, title = {Theory of Objects}, publisher = {Spriner-Verlag}, kind = {LEDL} }