12.5 所谓设计就是拆解
下面先回到图12.1所示的瀑布模型,从上游到下游再回顾一遍该模型中的各个开发阶段。从需求分析到程序设计,所进行的工作都是拆解业务,把将要为计算机系统所替代的手工业务拆解为细小的要素。从编码实现到部署、维护阶段,所进行的工作则是集成,把拆解后的细小要素转换成程序的模块,再把这些模块拼装在一起构成计算机系统。
庞大复杂的事物往往无法直接做出来。这个道理不仅适用于计算机系统,也同样适用于建筑物、飞机……人们往往要把庞大复杂的事物先分解成细小简单的要素来进行设计。有了各个要素的设计图,整体的设计图也就出来了。先根据每个要素的设计图制成小零件(程序中的模块),待每个小零件的测试(单元测试)都通过了,剩下的就只是一边看着整体的设计图,一边把这些零件组装起来了。然后再来一轮测试(集成测试),测试组装起来的零件是否能正确地协作运转。大型的计算机系统就是这样构建出来的(如图12.3所示)
图12.3 把小的模块组装起来,构成大的计算机系统
可以说,所谓计算机系统的设计,就是拆解。老一辈工程师们已经发明出了可作为规范的各种各样的设计方法,这些方法之间的差异只是拆解时的关注点不同,这里先把几个具有代表性的程序设计方法列在表12.3中
表12.3 具有代表性的程序设计方法
设计方法 拆解时所关注的事物
通用功能分割法 在整个计算机系统中通用的功能
STS法 数据流(输入、变换、输出)
TR法 事务(数据的处理单位)
Jackson法 输入数据和输出数据
Warnier法 输入数据
面向对象法 构成计算机系统的事物(对象)
STS:Source, Transofrm, Sink
TR:Transaction
下面回忆一下第1章中的“计算机三大原则”
原则1:计算机只能够做输入、运算、输出三种操作
原则2:程序是指令和数据的集合
原则3:计算机有自己的处理方法
可以看到,表12.3所示的各种设计方法,其关注点要么在输入、运算、输出、指令、数据这几个要素的某一个上,要么在某几个的组合上。引进计算机系统的目的是通过用计算机替代靠手工作业进行的业务来提升工作效率。因此在设计时,要使手工作业的业务顺应计算机的处理方式来进行替换,这一点也值得注意。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论