<XML><RECORDS><RECORD><REFERENCE_TYPE>3</REFERENCE_TYPE><REFNUM>8051</REFNUM><AUTHORS><AUTHOR>Johnson,C.W.</AUTHOR></AUTHORS><YEAR>2005</YEAR><TITLE>The Natural History of Bugs: Using Formal Methods to Analyse Software Related Failures in Space Missions</TITLE><PLACE_PUBLISHED>Formal Methods 2005, F. Fitzgerald, I.J. Hayes and A. Tarlecki (eds), Springer Verlag, LNCS 3582</PLACE_PUBLISHED><PUBLISHER>Springer Verlag</PUBLISHER><PAGES>9-25</PAGES><ISBN>3-540-27882-6</ISBN><LABEL>Johnson:2005:8051</LABEL><KEYWORDS><KEYWORD>Space</KEYWORD></KEYWORDS<ABSTRACT>Space missions force engineers to make complex trade-offs between many different constraints including cost, mass, power, functionality and reliability. These constraints create a continual need to innovate. Many advances rely upon software, for instance to control and monitor the next generation ‘electron cyclotron resonance’ ion-drives for deep space missions. Programmers face numerous challenges. It is extremely difficult to conduct valid ground-based tests for the code used in space missions. Abstract models and simulations of satellites can be misleading. These issues are compounded by the use of ‘band-aid’ software to fix design mistakes and compromises in other aspects of space systems engineering. Programmers must often re-code missions in flight. This introduces considerable risks. It should, therefore, not be a surprise that so many space missions fail to achieve their objectives. The costs of failure are considerable. Small launch vehicles, such as the U.S. Pegasus system, cost around $18 million. Payloads range from $4 million up to $1 billion for security related satellites. These costs do not include consequent business losses. In 2005, Intelsat wrote off $73 million from the failure of a single uninsured satellite. It is clearly important that we learn as much as possible from those failures that do occur. The following pages examine the roles that formal methods might play in the analysis of software failures in space missions.</ABSTRACT><NOTES>Lecture Notes in Computing Science Number 3582, Paper to accompany a keynote presentation</NOTES></RECORD></RECORDS></XML>