对于任何一个学计算机的人来说,软件都不陌生,甚至于一个普通的朝九晚五的上班族,他的每日生活工作也都与软件有着密不可分的关系。然而,程序又是如何从一行行指尖留下的代码,机器存储的数据变成快捷高效的软件的呢?这中间我们所经历的一系列过程的总和,我们称之为软件工程。

从本科开始学习计算机,我们就不可避免的接触了形形色色的软件,了解大量的软件开发工具,我那个时候甚至没有软件工程这个概念,只认为,我们所用的软件就是开发工具编译、执行、包装、发布的产物。后来,开设了软件工程这门课程,才开始系统地接受软件工程方面的教育,然而,教科书太过死板,给我们的印象中大多留下的是一个个生涩的概念和工程的流程图。直到接触了构建之法,我才真正理解了什么是软件工程,软件经过了怎样的流程来到用户的手中并为其服务的。

构建之法这本书写得生动且贴进实际,对相关的定义有其独特的阐释,让我们更为了解软件工程,就比方说,书中对软件这一名词的定义:软件 = 程序 + 软件工程,这很直观地表示了软件的两个方面:一个是软件的载体,是程序;另一个是软件形成手段工具,软件工程。倘若你到传统的教科书中去寻找,或是临时为了考试而抱佛脚而百度,可能得到的答案是这样,软件:与硬件相对,是一系列按照特定顺序组织的计算机数据和指令的集合(见百度百科)。这个定义好高大上,从硬件本质的基础上来解释什么叫软件,然而会令刚入门的一头雾水。笔者对软件开发的不同阶段的介绍也很风趣,使用飞机行业的发展来类比软件产业的前进,既简明贴切,又让人茅塞顿开。笔者在书中也多次提及曾经的工作经历用以佐证:比如笔者用他二十多年的从业经历中所见过的软件项目的特点和目的来证明计算机科学与软件工程是密切相关的两个部分。

作者对于软件工程的定义是:把系统的、有序的、可量化的方法应用到软件的开发、运营、和维护上的过程。介绍了软件工程所包含的领域:软件需求分析、软件设计、软件构建、软件测试、软件维护,并从工程的角度去理解软件工程,即设计和建造的过程中涉及大量的计算、计划、各类角色的协作,以及成千上百的人、动物、机械经年累月的劳作。也用实例来描述软件工程的目标:用户满意度高、可靠性强、软件流程质量高、可维护性强。先是从个人角度来讲,通过个人的锻炼成为合格的软件工程师,其中介绍了程序的单元测试、效能分析和个人软件开发的整个流程。之后从个人升级为结对编程,开始学会协作开发。最终在合作的过程中学会如何进行团队合作,开始参与一个团队来开发软件,进入真正的软件工程。书末介绍了很多有利于更好地推动软件工程的策略方法:比如敏捷流程、Scrum会议。

通过这本书,我对软件工程的理解由书本定义进入到实际应用,也因而对此有了更进一步的了解。

8th 对软件工程的理解(读构建之法有感)的更多相关文章

  1. 学习JAVAWEB第三十七天(读构建之法有感)

    读<构建之法>有感 我今年暑假回去就要升入大二了,在今年的专业分流时,我选择了软件工程专业,起初的想法很简单,做一款优秀的,能拥有大量用户的软件,甚至还想通过自己的软件改变人们的生活.读了 ...

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

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

  3. 201771030115-牛莉梅 实验一 软件工程准备-<初学《构建之法--现代软件工程》的疑问>

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE 这个作业要求链接 https://www.cnblogs.com/nwnu- ...

  4. 201771010128王玉兰实验一软件工程准备——<阅读《构建之法——现代软件工程》初步了解软件工程>

    |||||||||||||| |:--|:--| |项目|内容| |软件工程|https://www.cnblogs.com/nwnu-daizh/| |作业要求在博客里|https://www.cn ...

  5. week1读构建之法-读书笔记

    最开始听见杨老师说邹欣老师这个名字总觉得很熟悉,后来看见博客上老师的头像恍然大悟,原来机缘巧合已经在微博上关注邹老师许久,一直觉得邹老师是个很有意思的人,兴趣一定十分广泛,看了老师的书确实能感觉到邹老 ...

  6. 201771010111-李瑞红 实验一 软件工程准备-<构建之法-现代软件工程-基础认识和理解>

    |||||||| | :--

  7. 201771030106-葛佳诚 实验一 软件工程准备-<初读《构建之法——现代软件工程》有问>

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE 作业要求链接 https://www.cnblogs.com/nwnu-da ...

  8. 读着读着《构建之法》(Build To Win) 越精神的白雪儿的思考

    哲学家的宗旨是:我思,故我在 科学家的宗旨是:我发现,故我在 工程师的宗旨是:我构建,故我在 ——<工程学--无尽的前沿> 序言:珍惜角色“人”,注重实践“物” <构建之法>, ...

  9. 201771010135-杨蓉庆 实验一 软件工程准备—用Markdown写构建之法

    项目 内容 软件工程 https://www.cnblogs.com/nwnu-daizh   博客园  https://www.cnblogs.com/nwnu-daizh/p/12369881.h ...

随机推荐

  1. c++MFC工程修改在共享DLL中使用MFC为使用标准Windows库的解决办法

    由于创建MFC工程时,默认是在共享DLL中使用MFC,如果将此选项改成使用标准Windows库,会报如下错误 c:\program files\microsoft visual studio 9.0\ ...

  2. spark-submit python 程序,"/home/.python-eggs" permission denied 问题解决

    问题描述,spark-submit 用 yarn 模式提交一个python 脚本运行程序,运行到需要分布式的部分,即map/mapPartition等等RDD的时候,或者actor RDD的时候,报错 ...

  3. C++ STL 学习笔记__(5)list

    10.2.6List容器 List简介 ²  list是一个双向链表容器,可高效地进行插入删除元素. ²  list不可以随机存取元素,所以不支持at.(pos)函数与[]操作符.It++(ok) i ...

  4. Java的自动拆/装箱

    作者:Alvin 关键字:语法糖 类 对象 参考 Java 中的语法糖 语法糖--这一篇全了解 浅谈 Integer 类 什么是Java中的自动拆装箱 深入剖析Java中的装箱和拆箱 前言 我们知道, ...

  5. python基础开发环境Pycharm的详细使用方法

    PyCharm是由JetBrains打造的一款Python IDE(集成开发环境) 1. 创建Python文件 2. pycharm的操作界面 3. PyCharm修改字体大小的方式 4. pycha ...

  6. Appium+python的单元测试框架unittest(1)(转)

    unittest为python语言自带的单元测试框架,python把unittest封装为一个标准模块封装在python开发包中.unittest中常用的类有:unittest.TestCase.un ...

  7. Shuffle Bags让你的随机不那么随机

    前言 当我最初写游戏时,我经常使用标准Random()函数,然后写一堆if和else条件来我获得预期结果.如果结果不太好,我会写更多的条件进行过滤或者筛选,直到我觉得游戏变得有趣.最近我发现有更好的方 ...

  8. 8.openldap mirrormode(主主同步)

    作者:yaoyao #MirrorMode双主模式 1.主机: ldap01.liuyao.com ldap02.liuyao.com 2.搭建LDAP服务 搭建过程省略,保证2台服务器部署配置一样即 ...

  9. ftp部署及使用

    常用软件安装及使用目录 http://www.jb51.net/article/106604.htm   ftp部署 本篇文章主要介绍了CentOS7.0下安装FTP服务的方法,小编觉得挺不错的,现在 ...

  10. Python函数式编程中map()、reduce()和filter()函数的用法

    Python中map().reduce()和filter()三个函数均是应用于序列的内置函数,分别对序列进行遍历.递归计算以及过滤操作.这三个内置函数在实际使用过程中常常和“行内函数”lambda函数 ...