《构建之法(第三版)》第一章学习总结

第一章 概论

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

程序(算法、数据结构)是基本功,但是在算法和数据结构之上;软件工程决定了软件的质量;商业模式影响了了一个软件企业的成败。

软件开发分为几个不同的阶段:玩具阶段、业余爱好阶段、探索阶段、成熟的产业阶段。

1.2软件工程:软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。

包括很多领域:软件需求分析、软件设计、软件构建、软件测试和软件维护领域等。
软件开发具有复杂性、不可见性(无法看到机器内部源代码如何运行)、易变性(正确修改软件很困难)、服从性(服从用户、行业系统的需求)、非连续性(输入很小的变化,可能会引起输出上极大的变化)。
软件工程和计算机科学的关系:

软件工程的目标:创造“足够好”的软件。
软件的Bug多少可以直接衡量一个软件的开发效率、用户满意度、可靠性和可维护性。例如:
—用户满意度:用户使用时发现了很多Bug,影响了用户使用软件的效率
—可靠性:某个软件经常会崩溃,某个操作系统会时不时死机
—软件流程的质量:软件团队和开发流程的问题太多,导致团队成员无法互相协作,按时交付软件。这也可以说是软件团队的Bug
—可维护性:某个软件太难维护了,按下葫芦起了瓢,修复了一个问题,另一个问题又出来了。也没有足够的文档,维护人员表示需要更多的资金和时间来维护这个软件

1.3软件工程三步曲:

①研发出符合用户需求的软件说明:
要通过实际的工作收集、推导、提炼需求,并在软件发布后通过实际数据验证需求的确被满足了;
需求来自于实际,而不是自己想象出来的“需求”或者人云亦云的需求(例如:图书馆管理系统)。
②通过一定的软件流程,在预计的时间内发布“足够好”的软件说明:
这个软件是经历了一定的软件流程,通过全体团队成员的努力,在一个时间段内逐步完成的。
③通过数据和其他方式展现所开发的软件是可以维护和继续发展的说明:
例如,对用户需求有详细的分析,包括对将来这类软件发展的分析和计划;
关键模块有可以执行的单元测试、压力测试脚本,对于已知的bug和将来的工作都有详细的记录。

课后习题,总结了一个:

同一类型的软件之间是如何竞争的:

首先,我们现在日常生活中手机电脑等电子产品常用软件主要分为以下三类:
1.工具类(以聊天软件为例):聊天类软件大都都是通过加大用户信息的安全性和聊天功能的多样化来竞争的。随着竞争越来越激烈,软件开发的要求也变得越来越高,特别是对技术优化的要求,同时在相关人员的努力下软件开发也越来越完善。
2.游戏类:现在的手游大多根据近期出现的电视剧、电影、动漫等改编推出的;而国内的端游一般同时从国外购买而来。通过游戏的公平性、对电脑配置的要求高不高、场面的宏大、人物衣着的华丽、游戏流畅度、是否需要付费玩等进行竞争,十分激烈。
3.系统类:系统类软件就不仅仅是软件方面还有硬件方面的竞争,这就要求全面发展,现下win软件是发展就广泛的,在未来几年里其霸主地位不可动摇。

总结:

由于是《构建之法(第三版)》第一章,主要内容讲述的是概论,主要生动形象地解释了什么是程序、什么是软件工程、软件地特性、软件工程地组成等等,内容偏基础偏理论,但却为我们学习这本书打下了一个很好的基础,或者说是有了一个基本的认识。

原文地址:https://www.cnblogs.com/aiYY/p/9838487.html