在 SRS 的Wikipedia 链接中,在“产品视角”部分中,提到了“系统接口”一词。我不清楚这到底是什么意思。我查看了其他一些在线可用的 SRS 示例,但无法从示例中拼凑出明确的定义。有人可以详细说明“系统接口”指的是什么吗?
3 回答
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
...
其中 2.1.1 实际上应该是 2.1.2 - 2.1.4 的父部分。
所以他们对“系统接口”部分给出了一些模糊的定义:
这应该列出每个系统接口并确定软件的功能以完成系统要求和接口描述以匹配系统。
写这篇文章的人,请试着在 12 年级的英语作文课上拿个 B!
无论如何,作为非母语人士,我对 IEEE 版本的“系统接口”的理解是:
软件可能是为一般用途而制作的独立产品(例如商业软件、视频游戏等),也可能是包含软件和硬件的更大系统的一部分。例如,汽车是一个系统,而嵌入式计算机软件只是系统的一部分。另一个例子是医院 CT 扫描仪中的软件也是系统(机器)的一部分。
假设系统需求是在软件需求之前定义的(即自顶向下的方法),考虑一下
a) 您的软件必须具备哪些功能才能满足系统要求?(不能忘记更大的图景)
例如,如果自动驾驶汽车系统要求是“汽车应在 0.1 秒内检测到前车突然减速”,那么您可能需要为您的软件系统编写非功能性需求,例如'软件收到前传感器的'突然减速'信号后,对信号进行处理并做出决定。如果是确认的真实场景(不是误报),则软件应向中断系统发送“命中中断”信号。决策和信号发送过程不超过0.05秒。
b) 您的软件与更大系统中的其他所有内容之间的接口是什么?
例如,您的车载计算机软件应与前传感器具有以下接口:
public int processFrontSensorSignal(Signal signal){
if (signal.getType() == 1){
SuddenSlowDownSignalProcessor.process(signal);
} else if (signal.getType() == 2){
...
}
else
....
}
此类接口应明确定义。
如果您的软件不是更大系统的一部分,或者如果它被设计为在通用系统中运行的通用软件(例如 MS Windows 应用程序),那么几乎不需要指定“系统接口”部分。
系统接口包括以下内容: 1. 用户接口,例如屏幕格式、按键 2. 硬件接口,例如配置特征、支持的设备 3. 软件接口,例如操作系统 4. 通信接口 - LAN
此外,您可能希望包含与所有这些接口相关的系统高级视图。
如果您需要更多详细信息,请告诉我。
上下文中的系统接口将意味着您的系统将需要执行其目的的所有接口。
可能如果您的服务器使用 Web 服务响应/队列消息或数据库轮询,它们可以算作系统的 3 个接口。这些接口的实现将是一个 SOAP 实现、一个 ACTIVEMQ 代理和一个数据库。