构建之法第一章学习笔记

软件=程序+软件工程

软件工程是什么

软件可分为:系统软件,应用软件与恶意软件,他的存在都是为了解决某种需求。计算机的硬件能力发展符合摩尔定律,即大致每两年提高一倍的速度,而软件开发流程的提速过程却没有如此迅速,原因是由于软件自身的本质特性,大概分为以下五个:

1.复杂性:

(1)源代码多
(2)模块间依赖关系复杂
(3)系统增长与模块增多关系数量以几何级数速度增长

2.不可见性:

(1)无法直接看到源代码的具体执行过程
(2)无法重现问题

3.易变性:

(1)新功能多,适应新硬件需求多
(2)正确修改困难

4.服从性:

(1)服从系统其他组成部分
(2)服从用户需求
(3)服从行业系统要求

5.非连续性:

输入与输出变化不成正比

软件开发项目目的分为四种:

1.发现客观规律或探求方法优劣
2.演示目的,展现某个技术作用
3.服务一定范围目标用户
4.赢得用户

软件工程知识构成

软件工程涉及到计算基础,数学基础以及工程基础三大基础知识领域
学习软件工程的重要方法不是了解软件工程的专业名词概念以及定义,而是需要在实践中学习,去了解软件工程究竟是做什么的,在每个项目里的具体体现。

软件工程的目标:

创造‘足够好’的软件是软件工程的目的。但足够好的定义是什么呢?软件中bug的多少可以直接衡量一个软件的开发效率,用户满意度,可靠性和可维护性。但是一个bug到底是缺陷还是功能这是一个值得考虑的问题。有些缺陷可能也是一种功能,因此在多种约束条件下,当软件足够好了就可以发布了而不是一定要等软件完美。学习本书的目标是:
(1)研发出符合用户需求的软件
(2)在预计时间内发布足够好的软件
(3)能证明所开发的软件是可以维护和继续发展的

posted on 2018-10-28 14:37  20189224史馨怡  阅读(126)  评论(1编辑  收藏  举报

导航