Robert Hanmer

Robert Hanmer
Nokia

About

28
Publications
1,619
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
270
Citations

Publications

Publications (28)
Chapter
Achieving high software reliability in products is a costly process. Faults found late in the development cycle are the costliest to fix. Defect prediction models are developed prior to and during various stages of testing to predict the faults remaining or to predict which software modules are more prone to failures. Increasingly machine learning...
Article
Quality concerns, often referred to as nonfunctional requirements, service-level agreements, quality attributes, performance constraints, or architecturally significant requirements, describe system-level attributes such as security, performance, reliability, and maintainability. In conjunction with functional requirements, these quality concerns d...
Book
Imagine how much easier it would be to solve a programming problem, if you had access to the best practices from all the top experts in the field, and you could follow the best design patterns that have evolved through the years. Well, now you can. This unique book offers development solutions ranging from high-level architectural patterns, to desi...
Conference Paper
Software rejuvenation is a technique of proactive fault tolerance that designs the system for periodic reboots. This paper contains three patterns of which Software Rejuvenation is the first. The second, Count the Black Sheep, provides a solution to the problem of knowing precisely what fault has activated. This information is needed to recover qui...
Conference Paper
A five-state model of software rejuvenation is introduced that divides the working state into three sub-states: working, vulnerable, and preparing. The preparing state models the period during which workload is drained from software elements that are about to be rejuvenated. We compared our model to a four-state model that only has working and vuln...
Conference Paper
Telecommunications systems achieve high levels of reliability by implementing detection and recovery mechanisms with high coverage. With the trend towards the use of more COTS components in these systems the choices available for the systems detection and recovery mechanisms are more limited. An escalating recovery model with varying coverage facto...
Book
Software patterns have revolutionized the way developer’s and architects think about how software is designed, built and documented. This title in Wiley’s prestigious Series in Software Design Patterns presents proven techniques to achieve patterns for fault tolerant software. This is a key reference for experts seeking to select a technique appro...
Article
Design of highly secure systems is increasingly important. This paper explores the relationship between reliability engineering and security engineering for software products. Our work has indicated that designing for reliability and designing for security share many common ideas and, more importantly, techniques that can be leveraged in product de...
Conference Paper
There has been recognition that the writers' workshop process is beneficial for the production of high quality papers ever since the first patterns conference or PLoP was held in 1994. In this OOP-SLA workshop, attendees will participate in a writers' workshop of their paper as well as writers' workshops for papers of other attendees in their group...
Article
Reliability is an important aspect and requirement for communications network products. The end users experience of reliability is minimal disruption of service; while, for service providers and equipment suppliers, a key driver for high reliability is the ability to manage the maintenance costs associated with operating large, complex networks. Si...
Article
High availability is required in many computer systems today. These include web servers, e-commerce applications, network and telephony devices such as routers and switches, and many others. No software is defect free, and neither is the environment in which the software operates. As a result errors happen. To prevent errors from causing failures t...
Article
Software patterns have been used for a decade or more to describe solutions to design and architecture problems. This paper illustrates the value of using software patterns to describe and generate specific architectures and discusses the objectives and techniques of documenting architectures using these patterns. It defines the specialized system...
Article
Errors must be detected before they can be recovered or tolerated in highly available or highly reliable systems. These patterns discuss a time-honored method of detection, a Watchdog timer, and its larger cousin the System Monitor. This mechanism functions by having one part of the system watch for status or "heartbeat" messages to be delivered fr...
Article
The design and development of telecommunications software products require continuous attention to issues of performance and capacity, both of which are important requirements for the products that Lucent produces. The Software Technology Center (STC) in Bell Labs Advanced Technologies has defined performance-engineering best practices that help a...
Article
this paper for PLoP 2002
Article
VeriSoft is a tool for systematically exploring the state spaces of systems composed of several concurrent processes executing arbitrary code written in full-fledged programming languages such as C or C++. We report in this paper our analysis with VeriSoft of the 4ESS switch "Heart-Beat Monitor" (HBM), a telephone switching application developed at...
Article
The telephone network could be called the world's first distributed computing network. People in telecommunications treat as second nature many of the issues just surfacing in other problem domains. This article describes some of the techniques used ...
Article
Many system composed of both hardware and software components are expected to befailure-free. This article discusses software reliability and presents the reader with anunderstanding of why it is meaningful to talk in terms of the reliability of softwarecomponents. Software faults, unlike hardware faults, are not related to the physical prop-erties...
Article
This pattern language merges the Traffic Congestion pattern language from PLoP-99 with the patterns in Gerard Meszaros' "Pattern Language for Improving the Capacity of Reactive Systems" presented in Pattern Languages of Program Design-2 as well as those in the collection of 4ESS™ Switch project from Lucent Technologies. A system that reacts to exte...
Article
VeriSoft is a tool for systematically exploring the state spaces of systems composed of several concurrent processes executing arbitrary code written in full-fledged programming languages such as C or C++. The state space of a concurrent system is a directed graph that represents the combined behavior of all concurrent components in the system. By...
Conference Paper
VeriSoft is a tool for systematically exploring the state spaces of systems composed of several concurrent processes executing arbitrary code written in full-fledged programming languages such as C or C++. The state space of a concurrent system is a directed graph that represents the combined behavior of all concurrent components in the system. By...
Article
This work presents a complete pattern language that describes the building of a simple communications system meant to process customer telephone calls, i.e. A simple telephone switch. The subject system provides the infrastructure of a telephone/data network. It showcases/highlights/introduces the reader to the world of patterns specific to a parti...
Article
for the purposes of PLoP-98. Introduction A specialized set of patterns for defining the human-machine interface has come into use within the world of telecommunications switching products. The patterns presented here provide for the essential interaction between a system and its human masters. Several of the patterns discuss concepts specific to a...
Article
Large computer systems consist of many parts, only some of which contribute directly to the application for which the system was built. This collection of patterns describes several capabilities of a system that perform this background, supporting role. The roles of these patterns is to aid in application specific data, performance and health measu...