《构建之法》第一章总结

1.软件=程序+软件工程          程序=数据结构+算法          软件企业=软件+商业模式

软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。软件工程的核心部分:项目管理、源代码管理、软件需求分析、软件设计、软件构建管理、软件测试和软件维护(服务运营)等

程序,就是指的源程序,是可执行代码。软件构建,构建成机器能懂的可执行代码,要有合理的软件架构,软件设计与实现,还要有各种文件和数据来描述各个程序文件之间的依赖关系,编译参数,链接参数等等

程序(算法、数据结构)是基本功,但是在算法和数据结构之上,软件工程决定了软件的质量;商业模式决定了软件企业的成败。软件从业人员和软件企业的道德操守会极大地影响软件用户的利益

 2.软件开发的不同阶段(打比方的方法)

玩具阶段:写程序联系数据结构/算法  

业余爱好阶段:用JavaScript等写写网站

 探索阶段:专研新技术,应用新技术在软件行业创新

成熟的产业阶段:开发软件/操作系统

 3.软件的特殊性(软件开发难题)

复杂性:软件的各个模块之间有各种显性或隐性的依赖关系,随着系统的成长和模块的增多,这些关系的数量往往以几何级数的速度增长。

不可见性:软件工程师能够直接看见源代码,但是源代码不是软件本身。商业软件出现了错误,工程师可以看到程序在出错的一瞬间留下的一些痕迹(错误代号、大致的目标代码位置、错误信息),但是几乎无法完整重现到底程序出现了什么问题。

 易变性:软件看上去很容易修改,修改软件比修改硬件容易多了。人们自然地期待软件能在下面出现的两种情况下“改变”,一个是让软件做新的事情;另一个让软件适应新的硬件。但是与此同时,正确地修改软件是一件很困难的事情。

 服从性:软件不能独立存在,它总是要运行在硬件上面,它要服从系统中其他组成部门的要求,它还要服从用户的要求,行业系统的要求。

非连续性:人们能够比较容易地理解连续的系统:增加输入,就能看到相应输出的增加。但是许多软件系统却没有这样的特性,有时输入上很小的变化,会引起输出上极大的变化。

 4.软件工程的目标:用户满意度高、可靠性强、软件流程的质量好、可维护性强

posted on 2017-12-03 21:08  student123  阅读(94)  评论(0编辑  收藏  举报

导航