软件系统结构与抽象:挑战与未来方向
1. 软件系统结构的挑战
几乎每个基于计算机的现实系统在多个层面都很复杂,这种复杂性是系统设计、结构沟通与解释的主要障碍,也是标准设计发展的阻碍。
系统具有多种结构,它提供众多功能特性,每个特性都是可识别的功能单元,由相关的设计实现。这些特性之间不可避免地会相互作用,例如共享问题域和软件资源、多个特性可能同时激活,且需求可能冲突。这种特性交互问题在20世纪后期的电话系统中凸显,增加了构建电话系统软件的成本和难度,并且在各类复杂系统中普遍存在。
系统作为一个整体,有多种运行上下文。以建筑电梯控制系统为例,要考虑不同时段的使用需求模式,还有紧急操作、测试操作和维护操作等特殊情况。当检测到设备故障时,系统要采取措施减轻故障影响,如隔离故障设备或执行紧急程序确保用户安全。
在开发过程中,需要分析各个问题域的属性和行为,实现每个特性的设计要考虑相关问题域的属性和行为。软件可能需要包含对问题域建模的对象,且这些模型需要协调和组合。
已实现的软件有模块化结构,各部分通过执行基础设施和编程语言特性进行交互。软件的高度可塑性使得实现结构可能与系统的其他结构有很大差异,这些结构之间的关系可能通过转换来调节。
所有这些结构都需要被捕获、设计、分析、协调和组合,简单的通用技术(如自顶向下分解或细化)和还原论方法都无法成功完成这项任务,这是许多基于计算机系统设计中的突出难题。
以下是系统结构相关要点总结:
|要点|描述|
| ---- | ---- |
|系统复杂性|多层面复杂,阻碍设计与标准设计发展|
|特性交互|共享资源、可能冲突,增加系统构建难度
超级会员免费看
订阅专栏 解锁全文
10万+

被折叠的 条评论
为什么被折叠?



