上一个项目遇到一些接口问题,现总结如下,以备将来改进。转载请标明出处。
问题描述,在软件开发活动中,当系统分调结束而进入联调时,开发者们突然发现,系统各部分之间的接口约定出现了很多令人不愉快的形势:
1.有人不遵守约定,也未通知有关方面;
2.有人临时创造出一些强加于人的约定;
3.原始的约定本身不完备或不正确,但在开发过程中未予修正等等
导致的结果只有一个:系统根本无法联调,而要局部或者全部进【】行返工。考虑到由此引发的开发人员、甚至单位之间的心理因素的变化,互相埋怨。推卸责任,就会耽误大量工期。
本文旨在针对接口设计中的共性问题提出解决的方法或想法,供大家参考。
本文将围绕子系统接口设计、模块接口设计讨论。
二、子系统间的接口设计
1、子系统之间的接口设计是一个全局性的问题,应该受到管理者和全体开发者的重视。
在软件开发过程中应在系统分析和系统设计时就开始考虑接口设计问题,这个应由负责系统总体的、经验丰富的系统开发者完成,主要包括子系统划分和相应的接口设计。
2.1.1由于现在的系统多为分布式的,不同的子系统分布在不同的物理机或虚拟机上,子系统交互如果采取文件的形式必须考虑接口文件的格式转换问题(即子系统之间数据的一致性)。
2.1.2由于现在的系统常会引用其他的开源或付费的商业软件,因此在子系统之间必须考虑是否需要增加必要的接口文件或相应的软件工具。
三、模块间的接口设计
1、模块间的接口分类:参数传递,全局变量,文件
2、设计原则:
3.2.1 低耦合,高内聚
3.2.2 两个耦合的模块间以数据耦合为最佳,即除了调用时传参数以外不存在其他关系。设计要点:
3.2.2.1模块功能力求单一,即一个模块只做一件事
3.2.2.2模块的输入输出数据全部组织成为调用参数且当被调用时实参和形参要保持一致
四、软件接口设计流程
4.1 软件接口需求分析
需求人员需对所开发的软件系统中的接口给出定义并作需求分析、制定详细的接口需求说明,当接口关系非常复杂很难说明时,需要对接口做出完整的描述,并将软件接口进行分解并单独做需求分析和说明,经审定和批准后、作为软件接口开发工作的基础,。
4.2 接口设计:
4.2.1分类明确说明该软件产品所配置的各接口的功能、性能等技术要求。
4.2.2列出各接口的标准、约定等技术要求。
4.2.3.接口的数据需求(
a各个数据元素的单一标识符和简短说明
b各个数据元素的源和目标
c各个数据元素的数值范围或极限
d各个数据元素的计量单位
e各个数据元素的精度要求
f其他数据要求
g数据类型,如整型,实型、常量等
h数据元素的合法性检查
i数据元素的计算或更新的频率
j数据表达式或格式
k数据元素的优先级
4.2.4接口的质量保证要求(时间特性、空间特性)
4.2.5 接口关系
以框图或结构图的方式、说明系统与各个接口之间的连接关系、包括主要控制信息和数据信息流向。
4.2.6接口一览表
分类列出各接口的名称、标识、类别和基本功能。
4.2.7 硬件环境
说明需求的硬件环境和特征。
4.2.8其他约定
如工作方式、调用方式等。
4.3 接口测试
由开发及测试人员针对接口的设计完成覆盖测试,并形成最终文档。