软件设计与模块化:从理论到实践
1. 软件设计的角色与抽象层次
软件设计是对实现的简化表示,能帮助开发者理解实现的结构和功能,而无需陷入细节。设计的抽象层次至关重要,它应使问题更易于理解,避免包含理解整体方法所不需要的细节。
1.1 合适的设计抽象层次
不同系统的设计抽象层次有所不同。例如,若一个例程要对列表中的所有数字求和,设计应关注“累加到运行总和”和“选择列表中的每个元素”等概念,而像使用 8 位还是 16 位整数作为循环计数器,以及数字相加的顺序等细节,虽然在实现中必要,但通常不应出现在设计中。判断抽象层次是否合适,可以问自己:“这个细节对理解必须发生的事情是否至关重要?” 并且在创建设计时,可采用这样的启发式方法:“我能否让这个描述更简单,同时仍能传达要点?”
设计不应与所使用的编程语言相关。一旦设计表示中出现变量名或代码行,就需要思考是否已越过设计与实现的界限。尽管这种简写在表达高层次想法时可能有用,但也可能是走向实现而非设计的开端。避免包含可执行代码是获得良好设计的最佳方式。
1.2 直接进入实现的问题
如果跳过设计直接进入实现,虽然开发者头脑中可能有某种设计,但这种设计未被记录下来。这会带来一些问题:一是其他人阅读代码时需要在脑海中重新构建设计,相比查看书面设计,会花费更多时间和精力;二是错过在记录设计过程中发现问题的机会,因为很多时候设计在脑海中是模糊的,将其写下来更容易发现问题。
2. 模块化评估
模块化的核心思想是将程序创建为一组构建块,通过组合这些构建块来形成解决方案。确定构建块的策略有很多,如常用函数、计算阶段、系统状态、对象及其访问方法、控制
超级会员免费看
订阅专栏 解锁全文

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



