软件的单元划分可以根据不同的原则和方法进行,以下是一些常见的划分方式:
按功能划分
这是最常见的单元划分方式。将软件系统划分为不同的功能模块,每个模块负责实现特定的功能。例如,一个电子商务网站可以划分为用户管理模块、商品管理模块、订单管理模块等,每个模块又可以继续细分为更小的功能单元。
按模块划分
模块是软件中的一个独立部分,具有特定的功能和接口。通过将软件系统划分为多个模块,可以提高代码的复用性和可维护性。模块之间通过定义良好的接口进行通信。
按数据划分
根据软件系统中处理的数据类型和结构进行划分。可以将数据划分为不同的数据模块,每个模块负责处理特定类型的数据。这种划分方式有助于降低系统的复杂度,提高数据管理的效率。
按管理类别和预期用途划分
根据《医疗器械软件注册技术审查指导原则》(2022修订版),独立软件注册单元以管理类别、预期用途、功能模块作为划分原则。不同管理类别的独立软件作为不同注册单元,若在技术上无法拆分可作为一个注册单元并按照较高管理类别申报注册。不同预期用途的独立软件作为不同注册单元,按照预期用途可分为辅助决策类和非辅助决策类,每类又可细分为治疗、诊断、监护、筛查等情形。对于功能庞大复杂的独立软件,依据功能模块的类型和数量划分注册单元,每个注册单元所含功能模块数量需适中。
基于等价类划分
在软件单元测试中,等价类测试是一种重要的测试设计方法。通过将输入数据划分为若干个等价类,并从每个等价类中选取代表性的数据进行测试,以提高测试的全面性和效率。等价类分为有效等价类和无效等价类,有效等价类指那些在正常操作条件下预期程序能够正确处理的输入数据集合,对应有效输入域的数据,用以检测被测系统能否正确完成指定功能。
基于专业领域划分
根据软件的专业领域进行划分,如用户操作GUI、数据处理、网络接口等。这种划分方式有助于解决实现上的问题,并确保同一模块中不允许存在两个不同专业领域的内容。
在进行软件单元划分时,应根据具体的应用场景和需求选择合适的划分方式,以实现系统的模块化、可维护性和可扩展性。