在截然不同的抽象层次上概念化解决方案是软件架构师的基本技能。通过将解决方案组织到离散的层次上,架构师可以将精力集中在解决方案的单个方面而忽略所有剩余的复杂性,一旦稳定了解决方案中的某个部分,就可以处理其他部分,从而不断的将层次发展并完善到最终可以被实现的粘合模型中。
而软件开发人员也应该理解解决方案的不同抽象层次,在实际项目中非常难于实践,第一个困难就是开发人员在急于编码时很容易放弃这些层次,架构师需要在整个项目的生命周期中严格保持这些层次。无论开发人员或架构师必须意识到通过不同抽象层次概念化解决方案可以简化系统,保证不会淹没在系统的复杂性中。
IT解决方案的抽象层次并没有固定的模式,在定义抽象层次的数量和范围时要注意抽象层次的完善性,在每个抽象层次上定义多个视图,每个视图展现系统的一个单独方面,其次在解决方案的实施过程中注意保持层次间的一致性,因为需求处在不断的变化当中,当需求发生变化时,对高抽象层次的更改需要同步低抽象层次。
这里展示了一个IT企业解决方案定义的抽象层次:
域。域层次捕获项目的业务环境。
项目洞察力。项目洞察力对系统将会有的对企业的业务影响进行通讯。它以投资回报分析量化了这个影响。项目洞察力表示该项目的最高抽象层次。
业务处理。系统层次为公司内的业务处理建模。对于极其复杂的单位来说,这个层次可以再细分到子层次:部门、部门间以及部门内。
UI 规范。UI 规范设计了实现业务处理的用户界面。它是由 UI 设计文档和功能 UI 原型组成的。
详细要求。详细要求指定了系统要求的最低层次抽象。它包括诸如数据类型格式和详细业务规则等详细信息。它还包括专业性要求,例如,性能、可用性、安全性、国际化、配置、可扩展性和灵活性要求等。
体系结构。系统的体系结构被组织到六个视图中:
逻辑。定义软件层和执行系统功能的主要抽象。
并发。捕获系统的并行方面,包括交易、服务器场和资源争用。
安全性。定义用于身份验证、授权、保护机密和日志记录的方法。
部署。定义网络拓扑和系统的部署配置。
组件。定义系统组件、其接口以及依赖项。
数据。定义持久性数据的设计结构。
而软件开发人员也应该理解解决方案的不同抽象层次,在实际项目中非常难于实践,第一个困难就是开发人员在急于编码时很容易放弃这些层次,架构师需要在整个项目的生命周期中严格保持这些层次。无论开发人员或架构师必须意识到通过不同抽象层次概念化解决方案可以简化系统,保证不会淹没在系统的复杂性中。
IT解决方案的抽象层次并没有固定的模式,在定义抽象层次的数量和范围时要注意抽象层次的完善性,在每个抽象层次上定义多个视图,每个视图展现系统的一个单独方面,其次在解决方案的实施过程中注意保持层次间的一致性,因为需求处在不断的变化当中,当需求发生变化时,对高抽象层次的更改需要同步低抽象层次。
这里展示了一个IT企业解决方案定义的抽象层次:
域。域层次捕获项目的业务环境。
项目洞察力。项目洞察力对系统将会有的对企业的业务影响进行通讯。它以投资回报分析量化了这个影响。项目洞察力表示该项目的最高抽象层次。
业务处理。系统层次为公司内的业务处理建模。对于极其复杂的单位来说,这个层次可以再细分到子层次:部门、部门间以及部门内。
UI 规范。UI 规范设计了实现业务处理的用户界面。它是由 UI 设计文档和功能 UI 原型组成的。
详细要求。详细要求指定了系统要求的最低层次抽象。它包括诸如数据类型格式和详细业务规则等详细信息。它还包括专业性要求,例如,性能、可用性、安全性、国际化、配置、可扩展性和灵活性要求等。
体系结构。系统的体系结构被组织到六个视图中:
逻辑。定义软件层和执行系统功能的主要抽象。
并发。捕获系统的并行方面,包括交易、服务器场和资源争用。
安全性。定义用于身份验证、授权、保护机密和日志记录的方法。
部署。定义网络拓扑和系统的部署配置。
组件。定义系统组件、其接口以及依赖项。
数据。定义持久性数据的设计结构。