这是一本展现现代工程学壮阔图景的著作。作者欧阳莹之(美)通过研究工程学的历史、结构、技术成就和社会责任感,以及它同自然科学、工商管理和公共政策的相互关系,为我们传递了一个信念:工程学必将在未来科学研究中发挥基本作用。
作为一名工程师,有必要了解工程学的前世今生和发展趋势,能够对自己在用户问题分析方式和解决方案选择决策方面有所启发。
下面分享内容是我感兴趣的:
系统工程
系统工程通过整合自然物质技术和组织管理技术来创造复杂系统,波音777客机的成功发布,就是系统工程一个成功典范。
系统工程的多个维度上图展现了系统工程的三个维度。
时间维度从一个工程系统的全生命周期去分析解决问题,投射到软件产品研发的范畴,就是要求我们工程师在分析、实现、交付需求时,力求放宽视角,全程考虑问题,实现整体优化。
一个需求或特性交付出去之前,要尽可能识别出各阶段干系人的诉求或目的,而不能图一时之快,简单地只满足一部分干系人的要求,无情地抛弃其他重要的诉求。
举个正面的案例,波音777客机的零部件设计阶段,就充分考虑了航空公司飞机检修维护工程师的要求,确保部件都设计得便于维护,大大节省了后期的维护费用。
反观不好的案例,我们在软件开发中常常听到这样的话,这个需求就变更了那么几行代码,为什么要设计这么多用例来测试验证?
奇怪了,为什么?代码的可测试性考虑不充分,测试用例的层面混淆了,揉在一起就傻傻分不清了。怎么办?
系统工程的模块化和集成化
上一节的问题可以从下图的V模型中得到启发。
系统→子系统→模块,体现了系统分解的层次,反过来,每个层面的集成验收,也需要层次分明,如果层次模糊就很容易引发混乱,几行代码变更需要很多个用例(可能不是这个层次)来回归验证,造成极大的成本上升。
系统工程V模型我对最近理解的一个词:自洽,非常有认同感。
系统工程的内在要求:自洽
一个系统的各个组件或模块在交付时,都需要满足其必须的自洽性,必须注明自己是符合需求的,且是经过验证的。
一个典型的例子,每个模块的代码源文件,都有对应的tests文件同时发布,以证明自己的自洽性。
自洽的解释如果每个层面的系统分解系统、组件、模块等,都实现了基本的自洽性,那系统的集成难度和耗费成本会大大降低。
总结
我们从系统工程的学习理解过程中可以得到哪些好处?
①复杂系统可以分解降维,形成不同层次的体系框架;
②每个层面的组件/系统需要满足自洽性,以降低集成的复杂性;
③系统和部件设计必须充分考虑全生命周期的干系人需求。
以上是一些管中窥豹的感想,想细究详情的同学可以去阅读全本,细细体会工程学的奥妙之处。
网友评论