GJB438B/GJB438C中的《系统/子系统规格说明》文档产生疑惑,我只有一个配置项软件,我这个项目该写这个文档吗?我只是写软件文档,为什么要写系统相关的文档?面对这些疑惑和困惑,我们就来详细说一说《系统/子系统规格说明》的适用范围。
系统和子系统
百度百科对系统和子系统的定义:
系统是一个可以独立存在的完整实体,由一组完成特定任务的功能组成。
子系统顾名思义,它也是一个系统,也就是说仍然是完整的实体。系统和子系统的概念是相对的,当作为另一个系统的一部分时,系统就成为一个子系统。
在GJB2786A的“1范围”中对系统是这样描述的:
本标准中所涉及的“系统”有两类:一类是硬件-软件系统(例如一个雷达系统),对于这类系统,本标准只适用于系统中的软件元素;一类是软件系统(例如一个地理信息系统),对于这类系统,本标准适用于其整个系统。
下面从这两类来分别描述系统和子系统的范围。
第一类是硬件-软件系统,用美国“爱国者导弹防御系统”来举例说明。美国爱国者导弹防御系统是一个功能系统,系统火力强,能够对抗饱和空袭,搜索速度快,跟踪能力强,反应时间短,可以实施多个同步攻击;能有效地对抗现有的电子攻击;能够与其他的陆军系统和联合系统互操作。系统由“交战控制站”、“地基雷达”和“导弹发射装置”三部分组成,这三部分就属于子系统或分系统,每个子系统具有相对独立和完整的功能,三个子系统联合实现系统功能。
第二类是软件系统,用“微信”来举例说明。微信是一个功能强大的即时通信软件系统,经过多年迭代,包含“微信”、“朋友圈”、“公众号”、“支付 ” 、 “微信小程序”等子功能,每个功能也是完整功能的独立子系统。
系统\子系统规格说明
在理解了系统和子系统的概念后,回归正题,《系统/子系统规格说明》到底是描述什么内容?
不管是哪类系统或子系统,《系统/子系统规格说明》都是从用户的角度以软件的维度来描述系统的功能、性能、业务流程、数据流和控制流等,并描述内外部接口需求、资源使用情况等。是系统要满足的需求以及保证每项需求得以满足所使用的方法。该文档是软件的顶层需求文档,涵盖了系统/子系统的完整软件需求,作为后续进行系统/子系统设计的输入,也是后续进行系统测试的依据。
因此,只要你参与的项目满足系统或子系统的范围,那么按照软件工程化的要求,需要拟制《系统/子系统规格说明》,除非你的项目只是子系统里面的一个设备、或一个配置项软件,那么则不需要拟制该系统类的文档。
后续会有专门文章来描述该文档的具体拟制规范要求。