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

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

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

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

    F. Ray in the tube 链接 题意: 有两条平行于x轴的直线A,B,每条直线上的某些位置有传感器.你需要确定A,B轴上任意两个整点位置$x_a$,$x_b$,使得一条光线沿$x_a→x_ ...

  2. selenium-登录C语言中文网

    from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from seleni ...

  3. Mac下 通过 VMware Fusion 配置 windows 虚拟机的详细步骤

    内容中包含 base64string 图片造成字符过多,拒绝显示

  4. NLPIR分词(c++接口整理)

    C/C++接口——对应的各个函数 函数1-bool NLPIR_Init(const char * sInitDirPath=0, int encoding=GBK_CODE,constchar*sL ...

  5. Flutter - Stateful(有状态) 和 stateless(无状态) widgets

    Stateful(有状态) 和 stateless(无状态) widgets 有些widgets是有状态的, 有些是无状态的 如果用户与widget交互,widget会发生变化,那么它就是有状态的. ...

  6. js中for循环的多种方式

    For/In 循环 JavaScript for/in 语句循环遍历对象的属性: 实例 var person={fname:"John",lname:"Doe" ...

  7. (转)js在数组中删除重复的元素自保留一个(两种实现思路)

    例如:var student = [‘qiang','ming','tao','li','liang','you','qiang','tao']; 第一种思路是:遍历要删除的数组arr, 把元素分别放 ...

  8. 干货分享:五大最适合学习AI开发的编程语言

    AI(人工智能)为应用开发者开创了一个全新的可能性.通过利用机器学习或深度学习,您可以生成更好的用户配置文件.个性化设置和推荐,或者整合更智能的搜索.语音界面或智能助手,或者以其他数种方式改进您的应用 ...

  9. Cocos2DX开发:记录遇到的一些问题和解决方法

    今天看了一下以前学习cocos2dx时记录的一些笔记,主要是在实际中遇到的一些问题,整理了一下,就成为了这篇文章,便于自己以后查找,也为一些新手提供点经验. 这篇文章会一直更新,将自己之后开发中遇到的 ...

  10. 用Python做一个翻译软件

    前两天吃了平哥的一波狗粮,他给女朋友写了一个翻译软件,自己真真切切的感受到了程序员的浪漫.在学习requests请求的时候做过类似的Demo,给百度翻译发送一个post请求可以实现任意词组的翻译,利用 ...