构建之法 学习笔记03

   关于程序和软件以及两者的关系。

    所有的程序员都知道“程序=数据结构+算法”这句名言。程序,在这里指的是源程序,就是一行行的代码。它们是建立在数据解耦上的一些算法,程序还要对数据进行操作,这些数据有些是静态的(例如软件的图标,提示信息),有些是动态的(例如程序生成的随机数字、程序通过网络下载的数据、用户的文字或语音输入等)。但是光有代码和静态数据还是不行,工程师要把他们构建成为机器能懂得可执行代码。构建不仅仅是cc和link命令,一个复杂的软件不但要有合理的软件架构、软件设计与实现,还要有各种文件和数据描述来描述各个程序文件之间的依赖关系、编译参数、链接参数,等等。这些都是软件构建的过程。

     软件开发活动,包括构建管理,源代码管理,软件设计,软件测试,项目管理,这些相关的内容是软件工程的核心内容。广义上的软件工程也包括用户体验、用户界面设计等。所以,一个推论是:软件=程序+软件工程。一个扩展的推论是:软件企业=软件+商业模式。当然软件企业还需要各方面的支持工作,例如人员的招聘、绩效评估、升迁。淘汰等人力资源方面的工作。弄清楚这些概念,是进行所有与程序、软件、企业有关的讨论的基础。

     而关于软件开发的不同阶段,分:1.玩具阶段,2.业余爱好阶段,3.探索阶段,4.成熟的产业阶段。

     关于软件工程是什么。软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营、维护上的过程。软件工程包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件维护。软件工程与下列的学科有关:计算机科学、计算机工程、管理学、数学、项目管理学、质量管理、软件人体工学、系统工程、工业设计和用户界面设计。

原文地址:https://www.cnblogs.com/ly1128/p/6789962.html