博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
构建之法阅读笔记01
阅读量:5263 次
发布时间:2019-06-14

本文共 2209 字,大约阅读时间需要 7 分钟。

构建之法-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

你可能感兴趣的文章
转获取sql维护的表关系
查看>>
Java 序列化
查看>>
Java 时间处理实例
查看>>
Java 多线程编程
查看>>
Java 数组实例
查看>>
mysql启动过程
查看>>
2017前端面试题总结
查看>>
Http GetPost网络请求
查看>>
SWIFT国际资金清算系统
查看>>
Sping注解:注解和含义
查看>>
站立会议第四天
查看>>
如何快速掌握一门技术
查看>>
利用AMPScript获取Uber用户数据的访问权限
查看>>
vagrant 同时设置多个同步目录
查看>>
python接口自动化28-requests-html爬虫框架
查看>>
生成随机数的模板
查看>>
hdu 2093
查看>>
Mysql 数据库操作
查看>>
转:linux终端常用快捷键
查看>>
009.栈实现队列
查看>>