构建之法 chapter1 心得
阅读完了《构建之法》第一章后,觉得我们平时使用的软件并不是自己想象中的那样简单,用的时候是觉得很方便,但从来没有考虑过一个软件的背后需要一个团队多少的付出才能换来一个获得用户频频好评的软件。突然之间很佩服所有软件的开发者,因为在读了概述之后,我就能体会到他们背后付出的努力、时间和精力。
软件=程序+软件工程。要有一个软件,首先需要一个程序,而算法、数据结构是程序的基本功。其次软件工程的核心部分是:构建管理、源代码管理、软件设计、软件测试、项目管理等相关内容,软件工程直接决定了软件的质量。在现在的学习中,我觉得我还停留在建立基本功的部分,掌握住足够多的算法和数据结构,才能写出程序,然后才能从工程管理的角度去构建这个软件。
书上用航空业的发展对比着来看软件的发展过程,形象地给我们描述了软件是如何一步一步走到今天这个地步的。在最初的时代,人们尝试用新的语言来写“hello world”,成功了以后便吸引了一些人的兴趣,从而由开发出了用JavaScript、asp.net、ruby等写网站。当程序能够跑起来的时候,便开始钻研新技术,应用新技术在软件行业创新,使得软件日益壮大,到了如今的银行软件系统,互联网搜索行业,电子商务系统、Windows操作系统。软件的发布会影响一个公司、一个行业,这些以前无法想象的系统,如今都变成了现实,也造就了一批程序员。由于软件本身具有几大特殊性,所以在软件开发过程中会碰到一些难题。例如:一、软件的复杂性:一些大型软件有超过百万行的源代码,上万个不同的文件,软件的各个模块之间有各种显性或隐性的依赖关系,会随着系统的成长和模块的增多以几何级数的速度增长。二、不可见性:软件工程师可以直接看见源代码,但是源代码不是软件本身,软件已机器码的形式高速运行,还可能在几个CPU核上同时运行。所以工程师是看不到自己的源代码是如何被具体执行的,如果出错了以后,查错和纠错就会相当的困难。三、易变性:软件很容易修改,软件工程师经常需要修改软件来实现新的功能或适应新的环境,所以如何正确的修改软件也是一大难题。
一个好的软件必定会有一个好的软件工程。软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。它包括软件需求分析、软件设计、软件测试和软件维护。目的是为了提高软件开发、运营、维护的效率,并提高软件的质量、用户满意度、可靠性和软件的可维护性。
以前一直觉得做一个软件,只要写程序就好了,完全没有考虑过它是一个过程,需要一个完整的软件开发流程,首先需要做软件需求分析,弄清楚用户的需求,确定这个软件“做什么”,其次才开始设计软件,确定软件如何来实现用户的需求,在完成一个模块或一个单元后就要进行测试,测试是很关键的一步,只有保证中间过程没有出错,才能在最后获得一个成功的软件。在可以基本开发出一个软件的基础上想办法提高软件的效率、可维护性和用户满意度。而这些,是我在这本书里需要学习,在实践中需要实践的内容。
构建之法 chapter1 心得的更多相关文章
- 《构建之法》chapter5,6 读书心得
<构建之法>第五章用体育运动等团队例子引出软件开发团队的形式,用更加生活化.形象化的例子让读者更能理解软件开发团队的形式.软件团队形式多样,适用于不同的人员与需求.团队可能会演变的模式有: ...
- 对"构建之法“的理解和困惑
对"构建之法"的理解和困惑 本人"学沫沫"一个,对于之前的编程学习虽不大"感冒",但秉着对自己负责的态度进行了基础学习. ...
- 2nd 阅读构建之法有感
阅读构建之法有感 利用这一周的时间,我大致了解构建之法一书,这本书带我走进了一个全新的领域.它让我以一种新的视角去了解软件产业的发展和工作,领略软件工程的独特魅力,更给出了简单易懂的方式去理解何为软件 ...
- 《构建之法》CH5~6读书笔记 PB16110698 第九周(~5.15)
这段时间我阅读了<构建之法>的大部分章节,包括个人技能.软件测试.用户体验和需求分析等相关内容.之前的个人作业和结对作业结束后,我们的工作重心终于转向了团队项目,作为团队中前端组的组长,我 ...
- 初窥构建之法——记2020BUAA软工个人博客作业
项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任建) 这个作业的要求在哪里 个人博客作业 我在这个课程的目标是 完成一次完整的软件开发经历并以博客的方式记录开发过程的心得掌握 ...
- <构建之法>第十三章到十七章有感以及这个项目读后感
<构建之法>第十三章到十七章有感 第13章:软件测试方法有哪些? 主要讲了软件测试方法:要说有什么问题就是哪种效率最高? 第14章:质量保障 软件的质量指标是什么?怎么样能够提升软件的质量 ...
- <构建之法>第十一章、十二章有感
十一章:软件设计与实现 工作时要懂得平衡进度和质量.我一直有一个困扰:像我们团队这次做 男神女神配 社区交友网,我负责主页的设计及内容模块,有个队友负责网站的注册和登录模块,有个队友负责搜索模块,有个 ...
- 《构建之法》阅读有疑 与 个人Week1作业
<构建之法>阅读有疑 在用将近五节课的时间将邹欣老师的书<构建之法——现代软件工程>第二版大致看完.虽然全书是以轻松的口吻与”移山公司”员工的一些趣味谈话来传输一些理念和思想的 ...
- 软件工程---阅读《构建之法》P384~391
-阅读<构建之法>P384~391后,我充分认识到软件工程师的职业道德的重要性,具体有: 原则1:公众 原则2:客户与雇主 原则3:产品 原则4:判断 原则5:管理 原则6:职业 原则7: ...
随机推荐
- js查漏补缺
js中: 1.对空(Null).未定义(Undefined).Symbol .函数(Function) 都是数据类型(js不像java中,声明了变量会有默认值,在js中只声明变量而没有赋值的时候,类型 ...
- 2017年4月13日用VS写C程序遇到的一些问题
在网上找到一篇展示计算机浮点数格式的文章,且有C代码如下: #include <stdio.h> #include <stdlib.h> #include <string ...
- 单总线(1-Wire Bus)技术及其应用
单总线(1-Wire Bus)技术及其应用 reference: http://www.doc88.com/p-2106151016582.html 摘要:介绍了美DALLAS公司推出的单总线技术的原 ...
- PAT A1103
PAT A1103 标签(空格分隔): PAT 解题思路: DFS #include <cstdio> #include <vector> using namespace st ...
- DD常用命令组合
管理一个系统经常需要备份磁盘数据,那么在UNIX/Linux系统中如何备份整个分区或整个硬盘的数据呢? dd命令就可以很方便实现这个功能. 1.把一个分区复制到一个文件中 dd if=/dev/sda ...
- 三张图搞懂JavaScript的原型对象与原型链
对于新人来说,JavaScript的原型是一个很让人头疼的事情,一来prototype容易与__proto__混淆,二来它们之间的各种指向实在有些复杂,其实市面上已经有非常多的文章在尝试说清楚,有一张 ...
- Codeforces Round #538 (Div. 2) C. Trailing Loves (or L'oeufs?) (分解质因数)
题目:http://codeforces.com/problemset/problem/1114/C 题意:给你n,m,让你求n!换算成m进制的末尾0的个数是多少(1<n<1e18 ...
- html+css+javascript之间的关系与作用
三者间的关系 一个基本的网站包含很多个网页,一个网页由html, css和javascript组成. html是主体,装载各种dom元素:css用来装饰dom元素:javascript控制dom元素. ...
- mysql字段默认值不生效的问题解决(上)
在项目中使用mybatis做为持久层框架,mysql数据库.项目上线前,DBA要求我们将每张数据库表中的字段都设置默认值和not null.之前项目中有一些insert语句是将表中所有字段都列出来,然 ...
- QT自定义控件系列(二) --- Loading加载动画控件
本系列主要使用Qt painter来实现一些基础控件.主要是对平时自行编写的一些自定义控件的总结. 为了简洁.低耦合,我们尽量不使用图片,qrc,ui等文件,而只使用c++的.h和.cpp文件. 由于 ...