<构建之法>阅读感想
在阅读《构建之法》之前,我所认为的软件就是通过c,c++等语言编程,制作出的一个能满足人们操作需求的一些代码,认为一个好的软件工程师,就是能够在很短的时间之内,最快的根据需求写出几段代码程序的人,认为一个完美的软件就是能够满足人们的要求永远都不出bug。
而邹欣老师在《构建之法》绪论中提到,软件=程序+软件工程,程序是软件的基础,而软件工程师吧系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。简而言之,就是将软件开发、运营和维护的流程进行系统统一化,从而提高软件开发的速度,减少开发周期,提升软件质量。而一个好的软件工程师,出了需要具备良好的编写程序的能力外,还需要有软件工程的意识。
邹欣老师还提到了软件的特殊性质:复杂性、不可见性、易变性、服从性和非连续性。这些性质让“做一个好软件”变得很难。对于程序的bug,有一个软件行业的著名笑话——这不是缺陷,这是 一个功能!道出了bug的本质:软件的行为与用户的期望值不一样。也许现在的bug可能是以后的某种功能,或者曾近是某种功能。因此,软件很少有完美的,但是软件工程师就是在挑战完美,让软件更加的可靠,用户体验更加的满意,软件的维护更加的容易。
对于这一点,我认为软件工程和机械工程有很大的相似之处——追求完美!机械加工之中工件的表面的光滑程度永远都可以更进一步,工件内部或多或少的都会存在着加工残余的应力,这些往往和理想情况相冲突,最终使得产品的功能出现缺陷和偏差。因此,机械工程追求精准,减小误差是一直以来的目标。
在机电控制方面,机械和软件结合得十分紧密。机械负责传动和执行,电力负责提供动力,而软件则负责控制。因此,机械学生很有必要学习软件工程,了解了软件工程的开发模式和编写思维,能够使我们设计的机械更符合控制需求,而拥有机械工程能力的学生也更容易理解机械的运行方式利于软件控制
<构建之法>阅读感想的更多相关文章
- <<构建之法>>略读感想
经过对构建之法这本书的快速阅读和学习,我有以下疑问. 1.对软件工程来说是应该更注重结果和功能的实现还是更注重代码的易读和完整? 2.应该怎样平衡不同用户的不同需求以达到使大多数人满意的目的? 3.应 ...
- 学习打卡day12&构建之法阅读笔记第一篇
今天浅读了<构建之法>的前四章,稍微有一些个人的见解与感受 第一点即是开篇提及到的算法与数据结构这门学科开设的必要,大二上学期学习了这门课程,就我个人目前接触到的层面来看,几乎可以说用不太 ...
- <构建之法>阅读笔记6
第九章:项目经理 是讲项目经理的作用功能和重要性,书里面主要讲的是微软的PM(Programe Manager)和其他团队PM(Project Manager)的区别,还介绍了PM的能力要求以及人物, ...
- 学习打卡day14&&构建之法阅读笔记第二篇
对于书中所提到的结对编程我还是有些许感受的,在大二上学期我就有和同学合作,共同完成编码.有时候可能是我来做非常非常简易的前端页面部分,然后给同学一个基础框架,让同学往框架里面填充,时而遇到问题我再来沟 ...
- 《构建之法》阅读有疑 与 个人Week1作业
<构建之法>阅读有疑 在用将近五节课的时间将邹欣老师的书<构建之法——现代软件工程>第二版大致看完.虽然全书是以轻松的口吻与”移山公司”员工的一些趣味谈话来传输一些理念和思想的 ...
- 软件工程---阅读《构建之法》P384~391
-阅读<构建之法>P384~391后,我充分认识到软件工程师的职业道德的重要性,具体有: 原则1:公众 原则2:客户与雇主 原则3:产品 原则4:判断 原则5:管理 原则6:职业 原则7: ...
- 阅读《构建之法》P384~391
通过阅读<构建之法>P384~391以及参考阅读杜老师给出的链接,得出一个重要的结论:软件工程师的职业道德至关重要. 软件工程的动态性和需求的前后关系,要求一个规范能对出现的新情形有较强的 ...
- 阅读《构建之法》第八、九、十章有感和Sprint总结
1.阅读<构建之法>读后感 第八章:需求分析 需求分析,我觉得需求分析挺重要的,一个需求分析是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应 ...
- [BUAA软工]第一次博客作业---阅读《构建之法》
[BUAA软工]第一次博客作业 项目 内容 这个作业属于哪个课程 北航软工 这个作业的要求在哪里 第1次个人作业 我在这个课程的目标是 学习如何以团队的形式开发软件,提升个人软件开发能力 这个作业在哪 ...
随机推荐
- TopJUI | easyui HTML Dialog页面间GET方式数据传递
较容易的方式通过URL内带参数进行数据传递 var url = "apddList.html?c0=" + row.uuid + "&c1=" + ro ...
- ubuntu16.04编译安装opencv3.4.6
1.下载压缩包:https://github.com/opencv/opencv,在Branch栏选择3.4版本,clone下载 2.安装cmake及依赖库,打开终端,输入以下命令: sudo apt ...
- dategate的用法
菜鸟教程上的说法是这样: delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数. 使用 delegate() 方法的事件处理程序适 ...
- hadoop在CentOS下的安装配置
版本:CentOS-6.8-x86_64-minimal,hadoop2.6.4,jdk1.7.0 首先把jdk.hadoop压缩包下载发送到CentOS下并解压 下载发送不多赘述,解压命令tar - ...
- angular自定义过滤器在页面和控制器中的使用
首先设置自定义过滤器. 定义模块名:angular .module('myApp') .filter('filterName',function(){ return function(要过滤的对象,参 ...
- Linux下查看Mysql数据库端口的方法
mysql 默认的端口是 3306,但是如果在安装的时候,修改了mysql的默认端口的话,可以采用以下方式查看 第一种方法: 直接查看数据库的配置文件 在/etc/mysql/my.cnf(Linux ...
- uefi+gpt安装双系统
uefi+gpt:不要用easybcd!不起作用.找不到.mbr文件. win10空出一个盘: 制作ubuntu启动盘: 分区设置 挂载点 分区大小 新分区类型 新分区位置 用于 / 22000MB ...
- 【HNOI2011】卡农
题面 题解 将无序化为有序,最后答案除以$m!$. 设$f[i]$表示选出了$i$个子集,并且满足所有的限制的方案数. 因为转移困难,所以考虑容斥 限制了每个数的出现次数为偶数,所以如果前$i - 1 ...
- spring在service层获取session和request
首先要在web.xml增加如下代码: <listener> <listener-class>org.springframework.web.context.request.Re ...
- 网络知识 ACL NAT IPv6
第1章 ACL 访问控制列表 访问控制表(Access Control List,ACL),又称存取控制串列,是使用以访问控制矩阵为基础的访问控制方法,每一个对象对应一个串列主体. 访问控制表描述每一 ...