Software development of XXX – Part 2 Specifications and Conception Doc # Version: 01 Page 1 / 10 Thank-you for downloading the Software development template - part 2 Specifications! More templates to download on the: Templates Repository for Software Development Process (click here) Or paste the link below in your browser address bar: http://blog.cm-dm.com/pages/Software-Development-Processtemplates This work is licensed under the: Creative Commons Attribution-NonCommercial-NoDerivs 3.0 France License: http://creativecommons.org/licenses/by-nc-nd/3.0/fr/ Waiver: You can freely download and fill the templates of blog.cmdm.com, to produce technical documentation. The documents produced by filling the templates are outside the scope of the license. However, the modification of templates to produce new templates is in the scope of the license and is not allowed by this license. To be compliant with the license, I suggest you to keep the following sentence at least once in the templates you store, or use, or distribute: This Template is the property of Cyrille Michaud License terms: see http://blog.cm-dm.com/post/2011/11/04/License Who am I? See my linkedin profile: http://fr.linkedin.com/pub/cyrille-michaud/0/75/8b5 You can remove this first page when you’ve read it and acknowledged it! This Template is the property of Cyrille Michaud License terms: see http://blog.cm-dm.com/post/2011/11/04/License Software development of XXX – Part 2 Specifications and Conception Doc # Version: 01 Page 2 / 10 This is the part 2 of three templates for software development of simple projects It covers aspects of specification, general/architecture conception and detailed conception. This template doesn’t cover the risk management TABLE OF CONTENTS 1 Introduction 3 2 Software Requirements Specifications 5 3 System Architecture Description 7 4 Software Detailed Design 9 1.1 1.2 1.3 1.4 1.5 Document overview Scope Abbreviations and Glossary References Conventions 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 States Performance Safety, security, and privacy protection User maintenance Usability and human-factors engineering System environment External interfaces Resources Internal data Adaptation Verification Personnel and training Packaging and installation 3.1 3.2 3.3 Architecture overview Physical architecture overview Software COTS 4.1 4.2 4.3 Component 1 Component 2 Component 3 5.1 5.2 User Requirements to Software Requirements Software Requirements to software design 5 Traceability This Template is the property of Cyrille Michaud License terms: see http://blog.cm-dm.com/post/2011/11/04/License 3 3 3 3 3 5 5 5 5 5 5 5 6 6 6 6 6 6 7 7 8 9 9 9 10 10 10 Software development of XXX – Part 2 Specifications and Conception Doc # 1 Version: 01 Page 3 / 10 Introduction 1.1 Document overview This document contains the specifications and the conception of XXX software development project. It covers the following goals: XXX. 1.2 Scope 1.2.1 Identification This document applies to the XXX device(s) developed in the XXX project. 1.2.2 Overview Project Overview 1.3 Abbreviations and Glossary 1.3.1 Abbreviations Add here abbreviations 1.3.2 Glossary Add here words definitions 1.4 1.4.1 # [R1] 1.4.2 References Project References Document Identifier ID Document Title Add your documents references. One line per document Standard and regulatory References # Document Identifier [STD1] Document Title Add your references 1.5 Conventions Requirements listed in this document are constructed according to the following structure: Requirement Id Requirement title Requirement description Requirement version This Template is the property of Cyrille Michaud License terms: see http://blog.cm-dm.com/post/2011/11/04/License Software development of XXX – Part 2 Specifications and Conception Doc # Version: 01 Example: SRS-XXX-000 Title of XXX-000 requirement Description of XXX-000 requirement Version of XXX-000 Typographical convention. Any other convention. This Template is the property of Cyrille Michaud License terms: see http://blog.cm-dm.com/post/2011/11/04/License Page 4 / 10 Software development of XXX – Part 2 Specifications and Conception Doc # 2 Version: 01 Page 5 / 10 Software Requirements Specifications This chapter is an extract of the Software Requirements Specifications template. Have a look at the SRS template to see some examples of requirements. 2.1 States FOO software works in three states: Starting: the software loads its components; In use: all the functionalities of the software are available to the users; Stopping: the software is being stopped. Maintenance: the software is in maintenance mode And so on … Add a diagram with states and transitions if necessary 2.2 Performance This is the core of your SRS. It contains the purpose of your software expressed in technical requirements What are its functions What are the algorithms used … 2.3 Safety, security, and privacy protection This section is about software features like confidentiality, integrity control, reliability, and availability. See CyberSecurity requirements of FDA and HIPAA requirements if necessary 2.4 User maintenance Maintenance functions (logs, archives, …) 2.5 Usability and human-factors engineering The requirements here may have traceability with result of 62366 standard implementation 2.5.1 Man machine interface layout The layout of XXX is …. Instead of a dozen of text requirements, a mock-up of the software GUI is very appreciated Add only requirements for which a description of layout/behaviour is necessary and/or requested by a user. 2.5.2 Help The user guide is always very important for medical devices. It may be online, in this case add requirements here about the online help …. An about window is a good way to identify software version…. 2.6 System environment If software is integrated in a specific system, describe briefly the system and add specific requirements to which your software shall comply 2.7 External interfaces This section describes hardware and software interfaces of the software in the system This Template is the property of Cyrille Michaud License terms: see http://blog.cm-dm.com/post/2011/11/04/License Software development of XXX – Part 2 Specifications and Conception Doc # Version: 01 Page 6 / 10 2.7.1 Hardware interfaces For PEMS/Electro-medical Devices, add requirements about integration of software and hardware. 2.7.2 Network interfaces Also add here communication and networks stuff, like IP, wireless, Bluetooth … 2.7.3 Data exchange If XXX software is in interface with other software, describe here the requirements on data exchanges. 2.8 Resources In what environment runs the software 2.8.1 Hardware resources Hardware requirements 2.8.2 Software resources OS, libraries, external programs requirements 2.9 Internal data If specific requirements for internal data, like databases, binary files, xml … 2.10 Adaptation If specific requirements adaptability of configuration of software 2.11 Verification Special functions to test the software, if necessary. For example a hidden function to activate a log file during beta tests 2.12 Personnel and training Requirements about the capabilities/knowledge of users, the training the shall have before using software 2.13 Packaging and installation Requirements about packaging, install shield … This Template is the property of Cyrille Michaud License terms: see http://blog.cm-dm.com/post/2011/11/04/License Software development of XXX – Part 2 Specifications and Conception Doc # 3 Version: 01 Page 7 / 10 System Architecture Description 3.1 Architecture overview Give a general description of the system, from the point of view of the user : • In what environment it works (home, near patient bed, operating room …) • Who the users are • What it is for, • The main functions, • The main interfaces, inputs and outputs. 3.1.1 Logical architecture overview Describe the top level software components and their interactions/relationships. Use UML package diagrams and/or layer diagrams and/or interface diagrams. Describe also the operating systems on which the software runs. 3.1.2 Physical architecture overview Describe the hardware components on which software runs and their interactions/relationships Use components diagrams, deployment diagrams, network diagrams, interface diagrams 3.1.3 Software Component 1 description Optional Describe the content of each top level software component in the architecture The description shall contain : • Its identification • The purpose of the component, • Its interfaces with other components, • Its network interfaces, • The hardware resources it uses, for example : average RAM usage, peak RAM usage and peak frequency and duration, disk space for permanent data, disk space for cache data, average CPU usage, peak CPU usage and peak frequency and duration … 3.1.4 Software Component 2 description Repeat the pattern for each top level component. 3.1.5 Software Component 3 description Repeat the pattern for each top level component. 3.2 Physical architecture overview Describe the hardware components on which software runs and their interactions/relationships Use components diagrams, deployment diagrams, network diagrams, interface diagrams 3.2.1 Hardware Component 1 description Optional Describe the content of each hardware component in the architecture The description shall contain : • Its identification • The purpose of the component • The software component it receives • Its technical characteristics : type of machine, CPU, RAM, disk and so on. • Its network hardware interfaces This Template is the property of Cyrille Michaud License terms: see http://blog.cm-dm.com/post/2011/11/04/License Software development of XXX – Part 2 Specifications and Conception Doc # Version: 01 Page 8 / 10 3.2.2 Hardware Component 2 description Repeat the pattern for each top level component. 3.2.3 Hardware Component 3 description Repeat the pattern for each top level component. 3.3 Software COTS If you use COTS (Components Off the Shelf, also named SOUP, Software Of Unknown Provenance), list them here. For each COTS, describe : • Its identification and version • Its purpose • Where it comes from : manufacturer, vendor, university … • Wether it is maintained by a third party or not • If this is an executable, o what are the hardware / sotfware resources it uses o Wether it is insulated in the architecture and why • Its interfaces and data flows Note : have a look at FDA Guidance « Off-The-Shelf Software Use in Medical Devices » to determine if you need specific or special documentation for your COTS. This Template is the property of Cyrille Michaud License terms: see http://blog.cm-dm.com/post/2011/11/04/License Software development of XXX – Part 2 Specifications and Conception Doc # 4 Version: 01 Page 9 / 10 Software Detailed Design Describe the components in 3.1.x with more details. Only for those which deserve to be split to show interesting functions/behaviors/algorithms/patterns. Note: Describing interfaces is ALWAYS interesting!!! 4.1 Component 1 4.1.1 Component interfaces Describe the interfaces of the component and input output data 4.1.2 Component design description Describe the design of the component, Use package diagrams and/or class diagrams to show the links between sub-components/sub-packages and or classes inside the component. 4.1.3 Workflows and algorithms Use collaboration diagrams and/or sequence diagrams to show the workflows of components/packages/classes inside the component. Describe algorithms, if possible. An algorithm may be described outside this document, in this case, add the reference to that document. 4.2 Component 2 Repeat the pattern for each component. 4.3 Component 3 Repeat the pattern for each component. This Template is the property of Cyrille Michaud License terms: see http://blog.cm-dm.com/post/2011/11/04/License Software development of XXX – Part 2 Specifications and Conception Doc # 5 Version: 01 Page 10 / 10 Traceability 5.1 User Requirements to Software Requirements If you have a statement of work, or a list of user requirements at very high level, Add here a table with traceability between architecture and component vs software requirements User Reqt ID USR-001 Description On/off button Software Reqt ID SRS-010 Title On/off panel 5.2 Software Requirements to software design Add traceability between Software requirements and software architecture and components. Mandatory for Class C software. Software Reqt ID USR-001 USR-001 Description On/off panel On/off panel Component Comp.panel.onoff Controller.onoff Comment For GUI For Controller This Template is the property of Cyrille Michaud License terms: see http://blog.cm-dm.com/post/2011/11/04/License