构建之法阅读笔记01

构建之法-1章概论

第一章概论主要介绍软件工程涉及的知识点,名词等内容。

在读《构建之法》之前,我对软件的一些知识点和名词不是很了解,在我看了《构建之法》之后,就把我看到的认为重要的记录了下来,

 

一.软件=软件工程+程序

1.  程序就是指的源程序,就是一行行的代码。程序是建立在数据结构上些算法,还要对数据进行操作,这些数据可以是静态或者是动态的。

软件还需要把数据构建成机器能懂的可执行代码,构建不仅仅是cclink命令,一个复杂的软件要有合理的软件架构,软件设计与实现,还要有各种文件和数据来描述各个程序文件之间的依赖关系,编译参数,链接参数,这些都是软件构建的过程。

 

  1. 源代码管理或者配置管理:我们需要修改源代码来实现不同的功能,例如有些程序需要配置不同的界面,运行在中文,英文或者其他语言的操作系统上,有些程序还有32位,64位,这些是源代码管理有时候也叫配置管理的问题。

 

  1. 软件团队的完成软件的过程:需求分析,设计(软件架构),实现(写数据结构和算法),测试到最后发布软件。
  2. 程序理解:新的成员需要尽快读懂已有的程序,了解程序的设计。
  3. 软件维护或服务运营:团队的新老成员一起工作,修复各种各样的问题。
  4. 这一系列的过程叫做软件的生命周期。
  5. 软件=软件工程+程序   扩展推论:软件企业=软件+商业模式

 

二:软件开发的不同阶段。(用航空产业作比较

1.玩具阶段:例如制造纸飞机的过程。

2.业余爱好阶段:肯特。柯西,一位美国俄勒冈州的居民,用100多个气球和一把椅子飞上了天。

3.探索阶段:美国的莱特兄弟,制造出了飞机。

4.成熟的产业阶段:现在的航空行业。

 

 我们现在的状态就处于第一阶段,在Java上编一些代码,实现其中的几个功能,运行出来没有错误,就算完成任务了,既没有目的,也不具有实用性,没有数据的保存,这些只能作为代码编程最基础的东西,虽然不可或缺,但是也应该在

实现第一阶段的基础上再多花一些时间去研究它,学会追根溯源,这样我们才会收获更多。

 

 

三:软件工程是什么?

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

2.软件工程包括以下领域:软件需求分析,软件设计,软件构建,软件测试和软件维护。

3.软件工程和下列的学科相关:计算机科学,计算机工程,管理学,数学,项目管理学,质量管理,软件人体工学,系统工程,工业设计和用户界面设计。

4.软件工具:工程师自行开发的工具,软件团队独有的工具也有公开的软件工具,例如编译工具,源代码管理工具,源代码编译工具。也有一些软件工具系统等等。

5.软件是可以运行在计算机及电子设备中的指令和数据的有序集合。

6.软件形式:系统软件:操作系统,设备驱动程序,工具软件。

 应用软件:用户使用他们来完成工作,从管理核电厂到写文章,或者是通信,游戏,浏览网页,播放视频。

 恶意软件:软件病毒等。

 

四:软件开发的难题

1.复杂性:软件是人类创造的最复杂的系统类型,软件的各个模块之间有各种显性关系或者隐性的依赖关系,随着系统的成长和模块的增多,这些关系的数量往往以及和技术的速度的增长。

2.不可见性:软件工程师能看见代码,但是源代码不是软件本身,工程师看不到自己的源代码如何具体的在用户的机器上被执行。

3.易变性:软件看上去很容易修改,修改软件比修改硬件容易得多,的那是正确的修改软件是一件很困难的事。

4.服从性:软件不能独立存在,他总是要运行在硬件上面,他要服从系统中其他组成部分的要求。

5.非连续性:人们比较容易理解连续的系统,但是许多软件系统却没有这样的特性。

这些特性前四个是佛瑞斯。布鲁克斯提过的,第五个特性是瓦茨拉夫。拉里奇提过的。

 

我们现在能体会到的软件编程中的难题只是其中的一小部分,比如易变性,代码很容易进行改变,但是要想使代码能够正确的按照我们需求的功能来实现他,就不是那抹容易了,还有不可见性,

我们能看到只是代码,而不是软件本身,我们只能通过代码来实现所需的功能,至于是怎么执行的,我们都接触不到。

 随着以后的学习和编代码的积累,我们会面对更多的难题,从而会对这些性质能有更深的了解。

五.计算机科学和软件工程的不同侧重点。

计算机科学

软件工程

发现和研究长期,客观的真理

短期的实际结果(具体的软件会过时)

理想化的

对各种因素的折衷

确定性,完美,通用性

对不确定性和风险的管理,足够好,具体的应用

各个学科独立深入研究,做出成果

关注和应用各个相关学科的知识,解决问题

理论的统一

百花齐发的实践方法

强调原创性

最好的,成熟的实践方法

形式化,追求简明的公式

在实践中建立起来的灵感和直觉

正确性

可靠性

  看完这个后,我对计算机科学和软件工程之间有了一个更好的认识,计算机科学是偏向于理论,比较重视理论,耗时更长,研究更深入,追求完美,而软件工程则不需要长期的探究,比较注重实践,

而且生命周期不会太长,注重的是解决问题。

 

 

  总结:通过《构建之法》的阅读,了解了很多以前不知道的名词和知识点,同时对软件工程有了一个更深的认识,了解了计算机网络和软件工程的区分,这本书很好,相信我以后可以收获更多。 

  建议:我们要学会对所学过的内容进行总结和对比,这样会有助于我们对内容的掌握。

 

转载于:https://www.cnblogs.com/qingtianxt/p/6383622.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值