Medical and surgical robot systems are examples of safety-critical systems due to the potential hazards that can lead to severe injury or the loss of human life. Furthermore, robot safety is becoming increasingly important in other domains as robots begin to share their workspace with humans. At the same time, the complexity of robot hardware and software has been increasing to endow them with capabilities for safe human-robot collaboration and other demanding tasks. While component-based frameworks have been widely adopted in robotics to manage the increasing scale and complexity of these systems, it is still challenging for both academic researchers and industrial developers to develop robot systems with safety in a reusable and structured manner. To address these issues, we reformulate safety as a visible, reusable, and verifiable property, rather than an embedded, hard-to-reuse, and hard-totest property that is tightly coupled with the system. Specifically, we present a state-based model and a safety-oriented software architecture that allow us to reuse the design of safety features across different systems and different applications without relying on a particular component model. To demonstrate and evaluate the proposed methods, we built SAFECASS, an open source software framework that enables reuse of experience and knowledge on safety, and applied it to two medical robot systems, one of which is presented in this paper.