这周我再次读了《构建之法》这本书的前几章,我了解到了从个人角度的软件工程的概念。
第一章绪论中,作者通过程序员阿超的一件生活经历,为我们讲述了什么是软件,还有软件与程序的区别。程序是一段源代码,而软件则需要满足许多条件。我从中知道了,一个软件要有人买,首先满足顾客需求,所以有了软件团队要从需求分析(Re-quirement Analysis),把合适的需求梳理出来。编写过程中,新的成员要尽快读懂已有的程序,了解程序的设计,这叫程序理解(Pro-gram Comprehension)。再之后,软件架构(Software Architecture)、软件设计与实现(Software Design, Implementation and Debug)这些是软件构建的过程。修改各种源代码,为了保证软件在修改过程中能不断提高质量,有些程序要配置不同的界面,这需要源代码管理(Source Code Control)。工程师们还需要一系列的工具和程序来保证程序的正确性,这是质量保障(Quality Assurance),也叫做软件测试(Testing)。软件在完成后,要时不时给软件打一个补丁,或者维护众多的服务器,团队的新老成员要一起工作,修复各种各样的问题,这叫软件维护(Software Maintenance),或者服务运营(Service Operation)。这一系列过程就是软件的生命周期(Software Life Cycle,SLC),有人得负责软件项目的管理(Project Management)。一个好的软件,即使功能和同类软件区别不大,但是会让人感觉到非常好用。这就是软件的用户体验(User Experience)。所以,需要满足上述的一系列条件,一个软件才可以称之为软件。我明白了程序是围绕计算机来实现的,为了满足计算机的识别写出的代码,而软件是围绕人来实现的,为了满足人的各种需求,是一种产品,不仅要满足用户还要有之后的售后保障。其中每个细节都要做到最好,像是其他产业一样,如果不严谨就会发生很大的事故。飞机必须要有设施齐全的自救措施,软件也必须要有完善的错误补救方法。