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

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

书上用航空业的发展对比着来看软件的发展过程,形象地给我们描述了软件是如何一步一步走到今天这个地步的。在最初的时代,人们尝试用新的语言来写“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爬取qq空间说说

    #coding:utf-8 #!/usr/bin/python3 from selenium import webdriver import time import re import importl ...

  2. 最长公共子串和子序列的Python实现,带图示。

    使用矩阵来记录两个子串之间各个字符之间的对应关系. 最长子串:矩阵中数字最大的就是最长子串的长度.若对应位置字符相同,则c[i][j] = c[i-1][j-1] + 1 def longSubStr ...

  3. Spring事务操作介绍

    Spring的特色之一,简单而强大的事务管理功能,包括编程式事务和声明式事务. 1. Spring中涉及到事务管理的API有100多个,核心的只有三个: TransactionDefinition.P ...

  4. flink基础教程读书笔记

    数据架构设计领域发生了重大的变化,基于流的处理是变化的核心. 分布式文件系统用来存储不经常更新的数据,他们也是大规模批量计算所以来的数据存储方式. 批处理架构(lambda架构)实现计数的方式:持续摄 ...

  5. Spring Cloud的应用程序—上下文服务

    Spring Boot对于如何使用Spring构建应用程序有一个看法:例如它具有常规配置文件的常规位置,以及用于常见管理和监视任务的端点.Spring Cloud建立在此之上,并添加了一些可能系统中所 ...

  6. 5、AngularJS 直接绑定显示html ($sce、$sanitize服务)

    1.直接使用$sce服务(angularjs中:$sce.trustAsHtml($scope.snippet).html:ng-bind-html="snippet") 以下代码 ...

  7. python ---split()函数讲解

    python ---split()函数讲解 split中文翻译为分裂. 在python用于分割字符串使用. split()就是将一个字符串分裂成多个字符串组成的列表. split()可以传入参数,也可 ...

  8. DevExpress VCL Controls 2019发展路线图(No.3)

    [DevExpress VCL Controls下载] ExpressFlowChart 允许最终用户修改形状(v19.1) 允许开发人员以XML格式定义自定义形状(v19.1) 使用30多个新形状扩 ...

  9. intellij idea 程序包不可见问题

    刚用intellij idea不久,出现了个程序包不可见的问题. 原因:jdk9的问题,用的是jdk9就会出现这个问题. 解决办法:把jsk9换成jdk1.8就能解决.

  10. 基于springboot构建dubbo的入门demo

    之前记录了构建dubbo入门demo所需的环境以及基于普通maven项目构建dubbo的入门案例,今天记录在这些的基础上基于springboot来构建dubbo的入门demo:众所周知,springb ...