Ignominy
~~ ignominy: dishonour, disgrace, shame; infamy; the condition of being in disgrace, etc. (Oxford English Dictionary) ignominy examines package dependencies by examining a built source tree. It scans makefile dependency data (for header files the compiler actually saw), source code, binaries and dynamic loader information for possible dependencies, resolves them and outputs a simple textual database. The information collected by ignominy is then further processed by a number of presentation tools. The dependency diagrams are generated using the Graphviz package from AT&T. ~~ ~~ CMS has developed approximately one million lines of C+ code and uses many more from HEP, Grid and public domain projects. We describe a suite of tools which help to manage this complexity by measuring software dependencies, quality metrics, and CPU and memory performance. This coherent environment integrates and extends existing open-source tools where possible and provides new in-house components where a suitable solution does not already exist. This is a freely available environment with graphical user interface which can be run on any software without the need to recompile or instrument it. We have developed ignominy which performs software dependency analysis of source code, binary products and external software. CPU pro?ling is provided based on opro?le, with added features such as pro?le snapshots, distributed pro?ling and aggregate pro?les for farm systems including server-side tools for collecting pro?le data. Finally, we have developed a low-overhead performance and memory pro?ling tool, MemProf, which can perform (gprof-style) hierarchical performance pro?ling, in a way that works with multiple threads and dynamically loaded libraries (unlike gprof). It also gathers exact memory allocation pro?les including which code allocates most, in what sizes of chunks, for how long, where the memory is getting freed and where it is getting leaked. We describe this tool suite and how it has been used to enhance the quality of CMS software. (c) 2004 Elsevier B.V. All rights reserved. ~~ (From the PowerPoint Presentation)- Examines and reports on direct and transitive source and binary dependencies
- Creates reports of the collected results
- As a set of web pages
- Numerically
- Graphically
- As tables
Papers
- Ignominy: a tool for software dependency and metric analysis with examples from large HEP packages (2001)
- Ignominy: tool for analysing software dependencies and for reducing complexity in large software systems (2002)
- PowerPoint presentation at Moscow (2002)
- A coherent environment of software improvement tools for CMS (2004) (available thru E-journals)
Source Code
- Install ignominy
- IGUANA project home page
IGUANA is a modular C++ toolkit for interactive visualisation. It covers three domains: graphical user interfaces, interactive detector and event visualisation, and interactive data analysis and presentation. We use suitable existing software where possible, and integrate the whole in a coherent fashion. Application developers can select from the toolkit only those parts which are relevant for a particular application. We currently support IGUANA on Linux, Solaris and Windows; porting to other unix varieties is reasonably straightforward. IGUANA development is mainly driven by the needs of the CMS experiment at the LHC, but most of IGUANA is independent of CMS and may be freely used by others. - How to install Ignominy
Version 1.10 last modified by MarcLijour on 15/12/2005 at 07:10
Document data
Attachments:
No attachments for this document
Comments: 0