分享

软件工程有什么用?

 行者花雕 2022-12-13 发布于北京

软件工程的思想目的和其他学科的工程方法(比如土木工程等)并无太大差异,主要是降低软件系统的复杂性、提高其可控性,以此在软件开发、维护、测试等各个阶段提高效率。

其实要了解软件工程“有什么用”,最好能了解软件开发过程有多复杂(或者说为什么称之为“复杂”)。如果只是一个geek自己随便开发上千行代码的小系统,其实并不需要传统的软件工程方法。但是,如果开发的系统的规模上升到万行乃至十万行左右的规模,加上软件中各行代码间存在的千丝万缕的联系,普通人(即使是常常具有自我智力优越感的程序员)要继续开发并且维护这样一个系统就会变得捉襟见肘了。当现实中存在这种情况时,程序员们往往会说,这个系统“太复杂了”,或者会说这个系统“太乱了”。复杂原因在于程序员面对的问题规模(万行乃至于十万行左右的系统中千丝万缕的代码逻辑)超过了他人脑所能处理的极限。面对现实问题,比如,一个银行系统,我们很难改变它本身的规模,因为银行业务本身就很庞大,但是人们能做到的是降低那“庞然大物”内部的逻辑复杂性。更重要的是,很多时候,程序员在开发一个软件功能时并不需要完全了解整个系统的所有细节,他只需要专注于某个局部。这样,相比于系统规模,减少系统内部的逻辑耦合就更为重要。由此,软件工程的核心目的就在于做到这一点,简而言之,我们需要让整个软件系统“大而不乱”,井井有条。如果了解软件工程领域的相关知识,就会发现软件工程的准则,比如高内聚低耦合、构件化软件开发以及关注点分离等等,都是围绕这一目的提出的。

当然,软件工程本身是一个很大的范畴,软件工程方面的研究也纷繁复杂,但最终目的都是要减少程序员工作的负荷并提高软件需求、设计、开发、测试、维护的效率。


其实这种所谓的工程化思想本质上是一种分治思想,当人们遇到复杂性过高的现实问题,都会“不由自主”地去采取这种方法。掌握这种思想其实也可以解决自己生活中的不少“复杂”问题。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多