什么是软件物理规范和逻辑规范?我了解从用户需求中衍生出来的逻辑规范,比如识别属性、实体和用例,并使用UML在图形化描述中绘制软件。但是什么是软件的物理规范呢?
逻辑术语与物理术语
术语逻辑与物理规范与实现无关的规范(逻辑)相关,然后将其细化以考虑实现细节和相关约束(物理)。
这种区别可以适用于任何系统观点,例如体系结构、数据流和过程设计。但是这些术语主要用于数据建模(ERD)的上下文中:
- 逻辑规范描述数据如何满足业务需求。通常,你会描述实体,它们的属性和它们的关系; 身体
- 规范描述了如何在数据库中实现逻辑数据模型,同时还考虑了技术需求和约束。通常,你会找到表、列、主键、外键、索引和所有与实现有关的东西。
备注:术语"物理";可能可以追溯到你必须仔细设计数据中的数据布局的时代(例如,在COBOL中,你必须在字节级别定义记录的字段,并且该布局实际上用于在磁盘上物理存储数据;之后也很难改)
面向目的的术语
现在,规格或模型倾向于根据它们的用途来命名。但是如何称呼它们,以及它们是独立的模型还是同一模型的连续改进,在很大程度上取决于方法论。一些流行术语:
- 需求规范/分析模型,用于表达业务需求(即问题空间)
- 设计规范/模型,用于描述解决方案(即解决方案空间)
- 实现规范/模型,包含所有技术细节(即与代码一对一,因此难以保持同步)。
- 域模型,用于表达给定域中业务对象和业务逻辑的设计,但没有任何特定于应用程序的设计(即,类似于设计模型,但只包含业务感兴趣的元素)。
UML
UML就是UML,相同类型的图可以用于不同的目的。例如:
- 用例图表示一般的用户目标,并倾向于映射到需求("逻辑")。但是用例也可以显示自主设备/独立组件与其环境("物理")中的技术参与者之间的关系。
- 类图可以用来记录域模型("逻辑")。但是类图也可以记录实现细节("物理")。请参阅本文中的逻辑类图与物理类图的示例。