《构建之法》读书笔记3
几乎所有的程序员都知道“软件=程序+算法”这句名言,但是在构建之法中让我了解到了一个公式:软件=程序+软件工程。
那么什么是程序呢?程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。为实现预期目的而进行操作的一系列语句和指令。
那么什么是软件工程呢?软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营、和维护上的过程。
软件工程包括下列领域:软件需求分析、软件设计、软件构件、软件测试和软件维护。软件工程和下列的学科相关:计算机科学、计算机工程、管理学、数学、项目管理学、质量管理、软件人体工学、系统工程、工业设计和用户界面设计。
软件工程的目标是什么呢?创造“足够好”的软件。什么是好的软件它有以下几个衡量尺度:用户满意度、可靠性、软件流程的质量、可维护性。
用户满意度:用户在使用时候发现了软件的许多问题,影响了用户使用软件的效率。
可靠性:某个软件经常会崩溃,某个操作系统会是不是死机,某个网站往往在最需要的时候登录不上去。
软件流程的质量:软件团队和开发流程的问题太多,导致团队成员无法相互协作,按时交付软件。这也可以说是软件团队的Bug。
可维护性:某个软件太难维护了,按下葫芦起了瓢,修复了一个问题,另一个问题又出来了,也没有足够的文档,维护人员需要更多的资金和时间;来维护这个软件。
只要考虑了这几个因素设计一款足够好的软件就不会太难以实现。
软件开发也会出现一些难题,总结后有以下点:复杂性、不可见性、易变性、服从性、非连续性。
以前认为开发软件是很平常的事情,没有考虑诸多因素问题。阅读了构建之法后,了解到开发软件是一个十分不容易的事情,有诸多因素需要去考虑。