Below I have assembled a few books related to the field of system engineering, safety, security and risk management and physical system modeling, that had a influence on my work and mindset or that I consider as good references. The list is certainly not complete:
Boris Cogan (ed.): “Systems Engineering – Practice and Theory“ (2012)
The book is a collection of articles written by developers and researches from all around the globe. Mostly they present methodologies for separate Systems Engineering processes; others consider issues of adjacent knowledge areas and sub-areas that significantly contribute to systems development, operation, and maintenance. Case studies include aircraft, spacecrafts, and space systems development, post-analysis of data collected during operation of large systems etc. Important issues related to “bottlenecks” of Systems Engineering, such as complexity, reliability, and safety of different kinds of systems, creation, operation and maintenance of services, system-human communication, and management tasks done during system projects are addressed in the collection.
The complete book is freely downloadable (!). Concerning system safety, the most interessant part would be chapter 4: A Safety Engineering Perspective by Derek Fowler and Ronald Pierce. Whereas the most frequently downloaded part is chapter 3: Functional Analysis in Systems Engineering: Methodology and Applications by Nicole Viola, Sabrina Corpino, Marco Fioriti and Fabrizio Stesina.
Sanjoy Mahajan: “The Art of Insight in Science and Engineering: Mastering Complexity” (2014)
The book is an outgrowth of notes that Prof. Mahajan developed for his course “The Art of Approximation,” taught at Cambridge University, MIT. It provides valuable background for “engineering guesses” in general and especially for system modeling, e.g. to find appropriate modeling approaches and necessary assumptions. It is good to read and is provided under a Creative Commons license for free download here.
Quote from the website: “To master complexity, we can organize it or discard it. The Art of Insight in Science and Engineering first teaches the tools for organizing complexity, then distinguishes the two paths for discarding complexity: with and without loss of information. Questions and problems throughout the text help readers master and apply these groups of tools. Armed with this three-part toolchest, and without complicated mathematics, readers can estimate the flight range of birds and planes and the strength of chemical bonds, understand the physics of pianos and xylophones, and explain why skies are blue and sunsets are red.”
Felix Redmill: “Software Projects – Evolutionary vs. Big-bang Delivery” (2015)
The book is based on the pioneering experience of the author as a Development Manager. For 25 years he has been a consultant in project management and in risk management for safetycritical systems. Before that, he spent more than 20 years in industry, as engineer and manager, going through many roles: programmer, systems analyst, development manager, project manager and system strategist. He also edited two volumes of Guidelines, which influenced the development of IEC61508. The book puts modern development trends into a wider context or as R. Chapman, one of the reviewers put it: “In particular, the material on project planning, preparation and the importance of business strategy in managing change should be required reading for anyone considering a more ‘Agile development approach.”
The book has been republished in 2015 (the author talks about it in the interview with Chris Hills, CEO of Phaedrus Systems, in this video) and is freely downloadable (!) here.
Hillary Sillitto: “Architecting Systems. Concepts, Principles and Practice” (2014)
Did not yet have the time to read it myself, but plan to do it asap following the very good recommendations and since I want to learn more about the art of planning the architecture of systems, not only technical ones. For the time being, here is an excerpt from the description; please note that there is a preview to some of the pages available under Amazon’s “Look Inside“-Feature:
“What do the Wall Street “Flash Crash”, the 2003 invasion of Iraq, and the community on the remote Scottish island of St Kilda, have in common? They’re all complex systems that failed in unexpected ways because critical interdependencies weren’t understood properly.
Why do so many big projects overspend and over-run? They’re managed as if they were merely complicated when in fact they are complex. They’re planned as if everything was known at the start when in fact they involve high levels of uncertainty and risk.
In a rapidly changing world, how do you plan for success and create adaptable, resilient, sustainable systems that will achieve their purpose without adverse unintended consequences?
Based on the author’s extensive experience as a practical engineer and thought-leader in the systems business, this book provides a highly readable synthesis of the foundations for architecting systems. Starting from a clear set of systems principles and insights into the nature of complexity, the “six step architecting process” will help you to unravel complexity and to architect systems of any type, scale and socio-technical mix. It’s illustrated with numerous examples ranging from familiar domestic situations through software-dependent products and services to ultra-large-scale sociotechnical networks spanning the planet.
This book is required reading for engineers, managers, clients and leaders of change faced with the challenges of developing systems for the 21st Century. It gives architecting teams and their stakeholders a common understanding of the why, the what, and the how of architecting systems fit for the future.”
Ross Anderson: “Security Engineering” – A Guide to Building Dependable Distributed Systems (2nd edition, 2008)
This is an extraordinary textbook written by Ross Anderson, professor of computer security at University of Cambridge. Four years after publication of the 2nd edition in 2008, he now put the complete book online for free download (!).
Quote from the introduction: “Security engineering is about building systems to remain dependable in the face of malice, error, or mischance. As a discipline, it focuses on the tools, processes, and methods needed to design, implement, and test complete systems, and to adapt existing systems as their environment evolves.
Security engineering requires cross-disciplinary expertise, ranging from cryptography and computer security through hardware tamper-resistance and formal methods to a knowledge of economics, applied psychology, organizations and the law. System engineering skills, from business process analysis through software engineering to evaluation and testing, are also important; but they are not sufficient, as they deal only with error and mischance rather than malice.”
Michael M. Tiller: “Modelica by Example” by. Michael Tiller” (2012)
A book on the object-oriented modeling language Modelica, developped as Kickstarter-project in 2012 and published under Creative Commons-license as freely online readable HTML-version. For other electronic versions “pay as you can”.
From the preface: “One aspect of the book worth remarking on at this point is the fact that there are a couple of different “flows” supported in the book. Overall, the book attempts to present material in a logical order in the progression of chapters shown in the table of contents. This means that the first few chapters focus on expressing different types of mathematical behavior and deferring discussions about building more structured models (e.g. packages, component models, subsystems, etc.) until later. However, when reading about a particular example, the provided links will make it possible to sidestep this normal flow of topics and simply continue with further expansion on that particular example in subsequent chapters (which introduce additional language features). Hopefully, this approach enhances the reading experience without disorienting the user.
Most chapters are organized into three parts. The first part introduces the topics to be discussed in the chapter. Next, an extensive set of examples are used to demonstrate the language features relevant to the topics introduced in part one. Note that each example typically introduces a new topic, so it is best to review all the examples to provide the most complete coverage of these topics. Finally, most chapters include a review of the topics and a summary of any details not found in the examples to provide thorough coverage of the topics.”
Chris Rupp: “Requirements-Engineering und -Management: Aus der Praxis von klassisch bis agil” (in German; 6th edition, 2014)
The book provides a good overview on the concepts and procedures of Requirements Engineering. It starts with a good introduction into the domain and then gives very illustrative hands-on instructions how requirements are acquired, formulated, documented and validated. Other topics are: Functional and non-functional requirements; a requirements lifecycle; traceability and dependence between requirements; change control, re-use and version management of requirements and many others.
Chris Rupp has more than 20 years experience in the analysis of safety-critical projects, has developped her own requirements management method based on object-oriented concepts and is co-founder of the International Requirements Engineering Board (IREB).
The book can be considered as the guide to the basics of all system and safety engineering. It has meanwhile been published in edition 6 and now comes also with an ebook copy.