软件需求规范(SRS):什么是"系统接口"?

bal*_*erc 3 srs

在SRS 的维基百科链接中,在"产品视角"部分中,提到了"系统接口"一词.我不清楚究竟是什么意思.我已经查看了其他一些在线提供的SRS样本,但我无法从示例中拼凑出明确的定义.有人可以详细说明"系统接口"所指的是什么吗?

Vic*_*tor 8

IEEE 830-1998标准将"硬件接口"定义为

'软件产品和系统硬件组件之间每个接口的逻辑特性'

同样,它将"用户界面"定义为

'软件产品与其用户之间每个接口的逻辑特征'.

所以,一点推理告诉我们'系统接口'应该被定义为

'软件产品和更大系统之间每个接口的逻辑特征'.

这意味着,"系统接口"不是更大系统与外部世界的接口,而是软件与更大系统内其他所有内部接口,包括用户接口,硬件接口和软件接口.

具有讽刺意味的是,830-1998以不一致的方式编写,推荐的部分层次结构是:

2. Overall Description
   2.1. Product perspective
     2.1.1 System Interfaces 
     2.1.2. User Interfaces
     2.1.3. Hardware Interfaces
     2.1.4. Software Interfaces 
...
Run Code Online (Sandbox Code Playgroud)

其中2.1.1应该是2.1.2 - 2.1.4的母节.

所以他们给出了'系统接口'部分的一些模糊定义:

这应该列出每个系统接口并识别软件的功能以完成系统要求和接口描述以匹配系统.

无论是谁写的,请尝试从12年级的英语作文课程中获得一个B!

无论如何,作为一个非母语的人,我对IEEE的"系统接口"版本的理解是:

  1. 软件可以是为一般用途而制作的独立产品(例如商业软件,视频游戏等),或者它可以是包含软件和硬件的更大系统的一部分.例如,汽车是一个系统,嵌入式计算机软件只是系统的一部分.另一个例子是医院CT扫描仪中的软件也是系统(机器)的一部分.

  2. 假设系统要求是在软件需求之前定义的(即自上而下的方法),请考虑一下

a)您的软件必须具备哪些功能才能满足系统要求?(不能忘记更大的图片)

例如,如果自动驾驶汽车系统要求是"汽车应在0.1秒内检测到汽车前方车辆突然减速",那么您可能需要为您的软件系统编写非功能性要求,例如'在软件收到来自前传感器的'突然减速'信号后,它将处理信号并做出决定.如果是确认的真实场景(不是误报警),则软件应向休息系统发送"命中"信号.决策和信号发送过程不应超过0.05秒.

b)您的软件与更大系统中的其他所有内容之间的接口是什么?

例如,您的车载计算机软件应与前传感器具有以下接口:

public int processFrontSensorSignal(Signal signal){
   if (signal.getType() == 1){
      SuddenSlowDownSignalProcessor.process(signal);
   } else if (signal.getType() == 2){
      ...
   }
   else
    ....
}
Run Code Online (Sandbox Code Playgroud)

应明确界定此类接口.

如果您的软件不是更大系统的一部分,或者它被设计为在一般系统(例如MS Windows应用程序)中运行的通用软件,则几乎不需要指定"系统接口"部分.