项目 内容
课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE
这个作业要求链接 https://www.cnblogs.com/nwnu-daizh/p/12369881.html
我的课程学习目标 通过学习能够了解软件工程这门学科并且能够应用它进行简单的软件开发
这个作业在哪些方面帮助我实现学习目标 在学习时要带着问题去学习并且要及时地去解决它

一、初识软件工程

  上个星期我们开始了新一学期的学习,这学期的课中有一门很重要的专业课叫做软件工程。从在课表上看见这门课时我就在想明明有软件工程这个专业我们为什么还要学习这门课,我们不是计算机科学与技术专业吗?在课堂上老师给我们推荐了邹欣老师的《现代软件工程——构建之法》,阅读之后我有大概解决了一些我的问题当然也出现了一些其他疑惑。

二、三个问题

问题一:为什么软件工程可以发展为一门独立的学科?

  问题描述:邹欣老师在第一章1.2.2中阐述了计算机科学与软件工程的关系:

>

1、计算机科学可以分为偏理论的领域(如操作系统)和偏实践的领域(如软件工程);

2、计算机科学中与实践相关的部分,都和数据及其他学科发生关系,软件工程则和人的行为、现实社会的需求息息相关;

3、计算机理论的进展会帮助软件工程;软件工程的进展会帮助计算机科学家更有效地进行试验和探索。

根据以上可以看出软件工程是计算机科学的一个应用领域,为什么软件工程可以发展成为一个独立学科?

提出的原因:我们在学习中发现,软件工程和计算机其他专业学习的科目都差不多,所以我有时候挺疑惑各个专业之间到底有什么区别,特别是本软件工程专业的区别。查了很多资料有说领域不同的,有说软硬件不同的,回答都大同小异,还是有点搞不清楚。

**问题二:软件模块在新版本为什么会出现“退化”?**

  问题描述:邹欣老师在第二章2.1.3中说明了回归测试:

>  在软件项目中,如果一个模块或功能以前是正常工作的,但是在一个新的构建中出了问题,那么这个模块就出现了一个“退步”( Regression),从正常工作的状态退化到不正常工作的状态。假如,在3.1.5 版本,模块A的编号为125的测试用例是通过了的,但是在新的版本3.1.6上,这个测试用例却失败了,这就是一个“倒退”( Regression )。工程师们应该在新版本上运行所有已通过的测试用例,以验证有没有“退化”情况发生,这个过程就是一个“RegressionTest”。

  根据以上的描述,在新版本上要运行所有已通过的测试用例,如果出现了测试不通过则说明该模块出现了“退化”,我的问题是为什么在新版本上有些模块会出现“退化”?

  提出的原因:根据邹欣老师在书上提到的当该模块的功能发生了正常变化会引起模块退化,还有以前版本的bug在新版本中出现了“复发”,我想知道还有没有其他原因会引起模块“退化”。

问题三:所有的测试用例都可以通过是不是就可以说这个模块是正确的了?

  问题描述:邹欣老师在第二章2.1.2中说了:

>

  单元测试应该在最基本的功能/参数上验证程序的正确性。单元测试应该测试程序中最基本的单元一如在 C++/C#/Java中的类,在此基础上,可以测试一些系统中最基本的功能点( 这些功能点由几个基本类组成)。从面向对象的设计原理出发,系统中最基本的功能点也应该由一个类及其方法来表现。单元测试要测试API中的每一个方法及每一个参数。

根据以上一个“好的”单元测试的标准,我想知道是不是在最基本的功能/参数上测试通过了,就说明这个模块是正确的?还是说要继续找测试用例进行下一步的测试。

提出的原因:我不理解的是为什么在最基本的功能/参数上验证程序的正确性,万一最基本的功能/参数通过了,但是还可能存在其他问题这个要怎么解决。

三、参考文献

邹欣.构建之法——现代软件工程:现代软件工程[M].人民邮电出版社,2014

四、小结

  这是一门新的专业课,也是一个新的教学方式。因为疫情我们没有办法去学校所以在网上上课,我们也在慢慢适应。以往都是在学校的教学平台上提交作业,以写博客的形式提交作业还是第一次,所以排版比较乱不是很好。而且以往的作业都是写实验报告之类的,看书提出问题还是第一次。以往都是直接把书上的知识全盘接收,没有一个自己的思考所以感觉学习很枯燥。现在发现学习要善于发现问题,然后去思考到底为什么是这么样子的,尽信书不如无书。

201771030117-祁甜 实验一 软件工程准备—<阅读《现代软件工程——构建之法》提出的三个问题>的更多相关文章

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

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

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

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

  3. 8th 对软件工程的理解(读构建之法有感)

    对于任何一个学计算机的人来说,软件都不陌生,甚至于一个普通的朝九晚五的上班族,他的每日生活工作也都与软件有着密不可分的关系.然而,程序又是如何从一行行指尖留下的代码,机器存储的数据变成快捷高效的软件的 ...

  4. 软工个人阅读作业2 —— 构建之法与CI/CD

    项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人阅读作业#2 我在这个课程的目标是 阅读思考教材,调研软工工具 这个作业在哪个具体方面帮助我实 ...

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

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

  6. 201771010105—达拉草 实验一 软件工程准备—<软件工程构建之法—初步了解和认识>

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  7. 2021S软件工程——个人阅读作业2

    2021S软件工程--个人阅读作业2 项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任建) 这个作业的要求在哪里 个人阅读作业#2 我在这个课程的目标是 了解并熟悉软件开发的具体流程, ...

  8. 201771030129-张琳 实验一软件工程准备—<阅读书之后的三个疑问>

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

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

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

随机推荐

  1. 怎样才能拥有营销号生成器功能?python帮你实现

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...

  2. L5语言模型与数据集

    本次实验使用的数据下载: jaychou_lyrics.txt 链接:https://pan.baidu.com/s/1LJSrkpV84YF61OPmjIHGIw 提取码:dj53 语言模型 一段自 ...

  3. week homework: 大家来找茬

    上周课程主题为用户体验,每位同学也根据自己使用APP的体验,例举出一些手机或电脑客户端软件的bug或用户体验非常不好的地方: Tianfu: GitHub.com:界面不够直观,有许多功能不知道入口在 ...

  4. 基于RabbitMQ的Rpc框架

    参考文档:https://www.cnblogs.com/ericli-ericli/p/5917018.html 参考文档:RabbitMQ 实现RPC MQ的使用场景大概包括解耦,提高峰值处理能力 ...

  5. F - Distinct Numbers

    链接:https://atcoder.jp/contests/abc143/tasks/abc143_f 题解:开两个数组,其中一个arr用来保存每个元素出现的次数,同时再开一个数组crr用来保存出现 ...

  6. 从零开始学AB测试:基础篇

    什么是AB测试? 通俗点理解,AB测试就是比较两个东西好坏的一套方法,这种A和B的比较在我们的生活和人生中非常常见,所以不难理解.具体到AB测试这个概念,它和我们比较哪个梨更大.比较哪个美女更漂亮.比 ...

  7. 一站式轻量级框架 Spring

    Spring 简介 Spring 是一个轻量级的 Java 开发框架,它是为了解决企业应用开发的复杂性而创建的.Spring 的核心是控制反转(IoC)和面向切面编程(AOP).简单来说,Spring ...

  8. C#获取文件夹内文件包括子文件(递归)实例

    这个在我工作上,写了一次工具项目,用上的. static ArrayList FileList = new ArrayList();//这个必须写在方法外, static ArrayList GetA ...

  9. Java面试系列第2篇-Object类中的方法

    Java的Object是所有引用类型的父类,定义的方法按照用途可以分为以下几种: (1)构造函数 (2)hashCode() 和 equals() 函数用来判断对象是否相同 (3)wait().wai ...

  10. 带你玩linux集成环境

    据我现在知道的,在linux一键部署集成环境的应用有: “宝塔面板” “LNMP" "XRDP" 参考:http://www.ampnmp.com/ 具体什么安装就直接百 ...