Papers
This page documents papers that I have authored.
Bibligraphic References
Henderson, C.D.M. 2008. Search Engine Update System; Reducing capacity and bandwidth burden of web crawlers. August 2008
Henderson, C.D.M. 2008. Managing software defects: defect analysis and traceability. SIGSOFT Softw. Eng. Notes 33, 4 (Jul. 2008), 1-3. DOI: 10.1145/1384139.1384141
Henderson, C.D.M., String Concatenation and Template Expressions (2005): In C/C++ Users Journal 23(6), June 2005
Henderson, C.D.M., ALGORITHMS FOR MAMMOGRAM ANALYSIS: A focus on breast tissue asymmetry (2005): In CEMS Research Poster Event, University of the West of England, Bristol, UK, September 2005
Henderson, C.D.M., Optional Storage (2004): In C/C++ Users Journal 22(5), May 2004
Henderson, C.D.M., Local segmentation of the pectoralis major in mediolateral oblique mammographic images (2003)
Henderson, C.D.M., Global segmentation of mediolateral oblique mammographic images (2003)
Henderson, C.D.M., Automated identification of the orientation of mediolateral oblique mammographic images (2003): Online at
Henderson, C.D.M., Ready-to-Run C++ (2002)
Henderson, C.D.M., Dragon Monitor (1989): In Dragon User January 1989
Henderson, C.D.M., Dragon Invoicer (1984): In Dragon User August 1984
Paper Details
There are a number of sections:
Published Papers have appeared in reputable journals and are available in the public domain (subscriptions may be required for access).
Online Papers are those that I have publish on my web site as the primary source.
Posters have been presented in academic poster sessions.
Unpublished Papers contains a list of other papers that I've written, but have not been published. Some papers may be under review at one or more journals, and others will never be submitted for publication.
Discussion Papers present ideas and are intended as a basis for wider discussion.
Nostalgic are articles I had published in my school days, many years ago.
Published Papers
Managing software defects: defect analysis and traceability
ACM SIGSOFT Software Engineering Notes, Vol 33 Issue 4
This paper describes a mechanism for presenting software defect metrics to aid analysis. A graphical representation of the history of software builds is presented, that records software build quality in a way that cannot be displayed in a single numerical table, and is visually more appealing and more easily digestible than a series of related tables. The radial analysis charts can be used to represent derivative information in a two-dimensional form and is demonstrated with practical examples of Defect Analysis and Root Cause Analysis.
Keywords: bugs, defect analysis, defect management, metrics, radial charts, software builds, software quality
Available online here.
Henderson, C.D.M. 2008. Managing software defects: defect analysis and traceability. SIGSOFT Softw. Eng. Notes 33, 4 (Jul. 2008), 1-3. DOI: 10.1145/1384139.1384141
String Concatenation and Template Expressions
2005, C/C++ Users Journal 23(6)
Expression templates are a powerful technique for delayed evaluation of expression. In this article, I use expression templates to make optimising string concatenation by taking advantage of the delay and allocating just one buffer that is large enough to contain the string that results from the entire expression. The expression is evaluated only when it is assigned to a basic_string object, so if the expression is never assigned, then the expression is never evaluated. This is contrary to the normal behaviour that would create a host of temporary strings and then just throw them away.
Keywords: C++ development; template; generic programming; expression templates
Available online here, and on Dr. Dobb's Portal.
Henderson, C.D.M., String Concatenation and Template Expressions (2005): In C/C++ Users Journal 23(6), June 2005
Optional Storage
2004, C/C++ Users Journal 22(5)
This paper presents a technique for creating a generic data structure that can eliminate any unwanted data members at compile time, to optimise the storage requirements of the class but maintain a consistent interface. A running example is provided to demonstrate the use of the technique. A generic personal_details class is defined to represent the forenames, surname, gender, maiden name and children's names of a person. Storage requirements for members that are not required are eliminated at compile time, for example the maiden name from the representation Men.
Keywords: C++, template, memory optimization
Available online here, and on Dr. Dobb's Portal.
Henderson, C.D.M., Optional Storage (2004): In C/C++ Users Journal 22(5), May 2004
Online Papers
Search Engine Update System; Reducing capacity and bandwidth burden of web crawlers
August 2008
The fundamental approach to maintaining a Search Engine’s index of the web has not changed since the earliest search engines. The implementations have developed, as have the user interfaces and underlying algorithms, but the core technique of crawling web sites for content remains unchanged. The web is now so large that crawlers cannot get to sites often enough to effectively represent the current content contained on websites. The problem for Web Masters is a challenge large enough that a new market for Search Engine Optimisation has evolved to address the Web Masters’ desire to be ranked number one on the top search engines’ results page for relevant queries, but they are almost powerless to increase the frequency of visits from crawlers to ensure the most up-to-date content is represented.
This paper assesses the scale of the problem facing organisations that attempt to index or monitor the information published on the World Wide Web and explores the missed opportunities of content that is hidden within inaccessible parts of the web which has become known as the Deep Web.
A system of Site Update Notifications is described as a method for web masters to automatically feed data about content and presentation updates from web servers to those interested. This alternative to the traditional polling of sites distributes the burden and increases efficiency by reducing bandwidth requirements across the internet.
Keywords: Spider, web crawler scalability, optimization, change notification, site update notification
Published online
Henderson, C.D.M. 2008. Search Engine Update System; Reducing capacity and bandwidth burden of web crawlers: Online at
Automated identification of the orientation of mediolateral oblique mammographic images
Authored August 2003
Revised October 2003
When comparing mammogram images, whether temporal, bilateral or otherwise, it is essential that the orientation of the breasts in each image match. This initial image orientation problem is generally omitted from the registration procedure and left to the operator to provide the x-ray images in the order and orientation that the software system requires. In a fully automated system, this is an unacceptable burden on the system operator. This paper describes an algorithmic procedure for identifying the orientation of mediolateral oblique (MLO) breast images that can be used as a first step in the process of mammogram registration in an automated system.
Keywords: mammogram; image analysis; image orientation
Available online.
Henderson, C.D.M., Automated identification of the orientation of mediolateral oblique mammographic images (2003): Online at
Posters
ALGORITHMS FOR MAMMOGRAM ANALYSIS: A focus on breast tissue asymmetry
CEMS Research Poster Event, Sept 2005
University of the West of England, Bristol, UK
A poster describing my research presented at the University's graduate research poster event, September 2005.
Keywords: mammography, breast cancer, image segmentation, WinMammo
Available online here.
Henderson, C.D.M., ALGORITHMS FOR MAMMOGRAM ANALYSIS: A focus on breast tissue asymmetry (2005): In CEMS Research Poster Event, University of the West of England, Bristol, UK, September 2005
Unpublished Papers
Global segmentation of mediolateral oblique mammographic images
A mediolateral oblique (MLO) mammogram image contains far more that just an image of the breast. A film clip is generally present along with imaging artefacts and background noise. Before any computer analysis of the mammogram begins, the identification and extraction of the breast area is necessary – a technique called global segmentation. This paper describes in detail an algorithm for global segmentation of MLO mammogram to create an accurate breast area region in good quality images.
Keywords: mediolateral oblique, mammogram, global segmentation; image processing; image analysis
Not available online.
Henderson, C.D.M., Global segmentation of mediolateral oblique mammographic images (2003)
Local segmentation of the pectoralis major in mediolateral oblique mammographic images
Keywords: mammogram segmentation; pectoralis major; pectoral muscle; image processing; image analysis
Not available online.
Henderson, C.D.M., Local segmentation of the pectoralis major in mediolateral oblique mammographic images (2003)
Discussion Papers
Ready-to-Run C++
Traditional compiler techniques centre on individual source files in their entirety to form a compilation unit. This requires the entire unit to be recompiled whenever any of its dependent files have been modified, regardless of the nature of the change. This paper discusses how things could be improved.
Keywords: software development environment, background compilation
Henderson, C.D.M., Ready-to-Run C++ (2002)
Nostalgic

As a child I was facinated by computers. I had my first computer, a Sinclair ZX81 for an early birthday (don't remember which one, but I was still at primary school), and I learned the basics of programming on my Dad's Dragon 32. It was for the Dragon computer that I published my first technical articles in the Dragon User magazine.
Dragon Monitor
Dragon User Magazine
January 1989
A memory dump program written in BASIC for the Dragon 32 computer.
Keywords: memory dump, hex dump
Henderson, C.D.M., Dragon Monitor (1989): In Dragon User January 1989
Dragon Invoicer
Dragon User Magazine
August 1984
A menu driven Invoice creation program written in BASIC for the Dragon 32 computer. Fully functioning program listing for the devoted readers to type into the machine before it crashed and you lost everything!
Henderson, C.D.M., Dragon Invoicer (1984): In Dragon User August 1984