阅读完了《构建之法》第一章后,觉得我们平时使用的软件并不是自己想象中的那样简单,用的时候是觉得很方便,但从来没有考虑过一个软件的背后需要一个团队多少的付出才能换来一个获得用户频频好评的软件。突然之间很佩服所有软件的开发者,因为在读了概述之后,我就能体会到他们背后付出的努力、时间和精力。

软件=程序+软件工程。要有一个软件,首先需要一个程序,而算法、数据结构是程序的基本功。其次软件工程的核心部分是:构建管理、源代码管理、软件设计、软件测试、项目管理等相关内容,软件工程直接决定了软件的质量。在现在的学习中,我觉得我还停留在建立基本功的部分,掌握住足够多的算法和数据结构,才能写出程序,然后才能从工程管理的角度去构建这个软件。

书上用航空业的发展对比着来看软件的发展过程,形象地给我们描述了软件是如何一步一步走到今天这个地步的。在最初的时代,人们尝试用新的语言来写“hello world”,成功了以后便吸引了一些人的兴趣,从而由开发出了用JavaScript、asp.net、ruby等写网站。当程序能够跑起来的时候,便开始钻研新技术,应用新技术在软件行业创新,使得软件日益壮大,到了如今的银行软件系统,互联网搜索行业,电子商务系统、Windows操作系统。软件的发布会影响一个公司、一个行业,这些以前无法想象的系统,如今都变成了现实,也造就了一批程序员。由于软件本身具有几大特殊性,所以在软件开发过程中会碰到一些难题。例如:一、软件的复杂性:一些大型软件有超过百万行的源代码,上万个不同的文件,软件的各个模块之间有各种显性或隐性的依赖关系,会随着系统的成长和模块的增多以几何级数的速度增长。二、不可见性:软件工程师可以直接看见源代码,但是源代码不是软件本身,软件已机器码的形式高速运行,还可能在几个CPU核上同时运行。所以工程师是看不到自己的源代码是如何被具体执行的,如果出错了以后,查错和纠错就会相当的困难。三、易变性:软件很容易修改,软件工程师经常需要修改软件来实现新的功能或适应新的环境,所以如何正确的修改软件也是一大难题。

一个好的软件必定会有一个好的软件工程。软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。它包括软件需求分析、软件设计、软件测试和软件维护。目的是为了提高软件开发、运营、维护的效率,并提高软件的质量、用户满意度、可靠性和软件的可维护性。

以前一直觉得做一个软件,只要写程序就好了,完全没有考虑过它是一个过程,需要一个完整的软件开发流程,首先需要做软件需求分析,弄清楚用户的需求,确定这个软件“做什么”,其次才开始设计软件,确定软件如何来实现用户的需求,在完成一个模块或一个单元后就要进行测试,测试是很关键的一步,只有保证中间过程没有出错,才能在最后获得一个成功的软件。在可以基本开发出一个软件的基础上想办法提高软件的效率、可维护性和用户满意度。而这些,是我在这本书里需要学习,在实践中需要实践的内容。

构建之法 chapter1 心得的更多相关文章

  1. 《构建之法》chapter5,6 读书心得

    <构建之法>第五章用体育运动等团队例子引出软件开发团队的形式,用更加生活化.形象化的例子让读者更能理解软件开发团队的形式.软件团队形式多样,适用于不同的人员与需求.团队可能会演变的模式有: ...

  2. 对"构建之法“的理解和困惑

    对"构建之法"的理解和困惑        本人"学沫沫"一个,对于之前的编程学习虽不大"感冒",但秉着对自己负责的态度进行了基础学习.   ...

  3. 2nd 阅读构建之法有感

    阅读构建之法有感 利用这一周的时间,我大致了解构建之法一书,这本书带我走进了一个全新的领域.它让我以一种新的视角去了解软件产业的发展和工作,领略软件工程的独特魅力,更给出了简单易懂的方式去理解何为软件 ...

  4. 《构建之法》CH5~6读书笔记 PB16110698 第九周(~5.15)

    这段时间我阅读了<构建之法>的大部分章节,包括个人技能.软件测试.用户体验和需求分析等相关内容.之前的个人作业和结对作业结束后,我们的工作重心终于转向了团队项目,作为团队中前端组的组长,我 ...

  5. 初窥构建之法——记2020BUAA软工个人博客作业

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任建) 这个作业的要求在哪里 个人博客作业 我在这个课程的目标是 完成一次完整的软件开发经历并以博客的方式记录开发过程的心得掌握 ...

  6. <构建之法>第十三章到十七章有感以及这个项目读后感

    <构建之法>第十三章到十七章有感 第13章:软件测试方法有哪些? 主要讲了软件测试方法:要说有什么问题就是哪种效率最高? 第14章:质量保障 软件的质量指标是什么?怎么样能够提升软件的质量 ...

  7. <构建之法>第十一章、十二章有感

    十一章:软件设计与实现 工作时要懂得平衡进度和质量.我一直有一个困扰:像我们团队这次做 男神女神配 社区交友网,我负责主页的设计及内容模块,有个队友负责网站的注册和登录模块,有个队友负责搜索模块,有个 ...

  8. 《构建之法》阅读有疑 与 个人Week1作业

    <构建之法>阅读有疑 在用将近五节课的时间将邹欣老师的书<构建之法——现代软件工程>第二版大致看完.虽然全书是以轻松的口吻与”移山公司”员工的一些趣味谈话来传输一些理念和思想的 ...

  9. 软件工程---阅读《构建之法》P384~391

    -阅读<构建之法>P384~391后,我充分认识到软件工程师的职业道德的重要性,具体有: 原则1:公众 原则2:客户与雇主 原则3:产品 原则4:判断 原则5:管理 原则6:职业 原则7: ...

随机推荐

  1. python全栈开发笔记---------函数

    一 数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因 ...

  2. Vue混入

    Vue 混入 混入 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式.混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项. 数据对象合 ...

  3. 关于html的基础标签

    html: 超文本标记语言 h1 -- h6: 标题标签 一级标题,一个页面中只能存在一个h1 数字越大,标题的级别越小br:换行p:段落 自带换行,前后自带间隙a::::href属性---指定将要跳 ...

  4. MFC窗口风格 WS_style/WS_EX_style

    窗口风格(Window style) WS_BORDER   有边框窗口 WS_CAPTION   必须和WS_BORDER风格配合,但不能与WS_DLGFRAME风格一起使用.指示窗口包含标题要部分 ...

  5. ABP-DDD学习

    有一个比较大的项目,打算使用 DDD +ABP +微服务 开发: 1.涉及到社交: 业务场景比较复杂:会多变: 2.采用前后端分离,netcore+vue; 3.部署采用K8S +docker 进行部 ...

  6. 关于解决Mac使用docker安装SQL server for Linux 中文乱码问题

    本人是Mac的追随者,无奈本学期数据库课要求使用Microsoft的SQL server.但是Microsoft并没有发布SQL server for Mac ,笔者使用Google搜索后, 发现可以 ...

  7. 【转】Linux的nm查看动态库和静态库的符号

    转自https://blog.csdn.net/qq_16683355/article/details/52297884 功能 列出.o..a..so中的符号信息,包括符号的值,符号类型及符号名称等. ...

  8. servlet中常用到的工具

    1. 解析ajax传来的json字符串,得到json对象 private JSONObject getJsonObject(HttpServletRequest req) { StringBuffer ...

  9. Java复数的加乘除运算

    //主要是对零的处理,有什么不对的地方欢迎批评指正,一起进步class complex{ double a,b; public String toString() { return("实部: ...

  10. makefile笔记2 - makefile总述

    一.makefile的组成 Makefile 里主要包含了五个东西:显示规则.隐晦规则.变量定义.文件指示和注释. 1. 显示规则.显示规则说明了,如何生成一个或多的的目标文件.这是由 Makefil ...