201771030115-牛莉梅 实验一 软件工程准备-<初学《构建之法--现代软件工程》的疑问>
| 项目 | 内容 |
|---|---|
| 课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE |
| 这个作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/12369881.html |
| 我的课程学习目标 | 1、了解软件工程是什么 2、学好软件工程的理论知识 3、将理论知识应用到实践中去 |
| 这个作业在哪些方面帮助我实现学习目标 | 初步了解了软件工程的具体含义,同时对理论知识有了大概的了解 |
| 作业正文 | 1、快速浏览邹欣老师博客或《构建之法--现代软件工程》,参照参考文章的提问模板,尝试拟定3个准备从课程学习中找到答案的问题,并以写博客形式记录下来,博客要求使用Markdown排版。2、请参考这篇博客修改博客园博客默认编辑器。3、请参照这篇博客,在博客撰写中练习 MarkDown,有余力的同学可以进一步优化博客的阅读体验。 |
| 作业参考文献 | [1]张涛,马春燕,郑炜,杨帆,王海鹏,成静编.软件技术基础实验教程[M].陕西:西北工业大学出版社,2015.01:第111页 [2]邹欣.构建之法--现代软件工程.人民邮电出版社,2017 |
一、读完邹欣老师《构建之法--现代软件工程》一书,以下三个问题比较困扰我
1、问题一
我阅读了该书第1.2.2章的这一段文字
软件工程与计算机科学的关系[2]:
根据我们对软件特性及工程这一概念的了解,可以看到,计算机科学中的理论研究部分,大多可以从形式上证明,与数学、离散数学、数理逻辑密切相关;计算机科学中与实践相关的部分,都和数据以及其他学科发生关系;软件工程则和人的行为、现实社会的需求息息相关。软件工程的研究目标(软件的开发、运营和维护)中都有“人”出现,这些“人”可以是项目需求的提供者,可以是软件的开发人员,还可以是软件的用户。这一特征与其他计算机科学的子领城明显不同。其实,在任何科学领域中,都有偏理论的子领域和偏应用的子领域(例如数学与应用数学),当偏应用的领域得到长足发展之后,就会更多地被大家所熟知,甚至成为一门独立的学科,这并不说明相对应的两方面有高低或优劣之分。
计算机理论的进展会帮助软件工程(例如对程序正确性的分析);软件工程的进展(更好的工具,更多的应用领域)会帮助计算机科学家更有效地进行实验和探索。理论方面的不足或错误,也会对实践造成深远的影响。托尼本人反省,他在20世纪60年代设计Algol w语言的时候引入了NullReference,对后来的编程语言影响很大,他自已估计给工业界造成的损失应该在10亿美元以上。”
我有这个问题:是否可以说软件工程和计算机科学两者相辅相成,缺一不可?
我在网络上查找了一些资料,有这些说法:
- 软件工程算是专业培养软件技术开发人才的专业,计算机科学是培养理论性人才
- 两者都很重要,各有侧重点
根据我的实践,我得到的这些经验作为一个计算机科学与技术班的学生,我们和软件工程班所开设的课程大致相同,但软件工程班相对来说他们的动手能力更强,但两个专业都可以从事软件开发工作,所以应该是可以舍弃一个的。但是我还是不太明白,我的困惑是如果可以舍弃一个,那么为什么还会有这两个专业?
2、问题二
我阅读了该书第3.2章的这一段文字
软件工程师的思维误区[2]
- 分析麻痹
- 不分主次,想解决所有依赖问题
- 过早优化
- 过早扩大化/泛化
- 画扇面——调侃目标和远景
由于该书是电子版的,可能图片看起来不是很清晰
我有这个问题:读到这,我觉得此处描绘的现象正是我们亲身经历的,那么在做项目之前如何有效的进行需求分析,避免项目太空,到最后完成不了?
我在网络上查找了一些资料,有这些说法:
- 编写业务流程规范
- 调研多种类型的用户,了解用户需求
- 延长需求分析时间
根据我的实践,我得到的这些经验一定要多调研,让调研个体足够大。但是我还是不太明白,我的困惑是在这个个人信息很不安全的时代,如何采集多个用户的需求信息?需求随时在变,到最后项目的实际完成时间是否会远远大于计划完成的时间?
3、问题三
我阅读了该书第13.1.1章的这一段文字
测试设计有两类方法:黑箱(Black Box)和白箱(White Box),这是每个接触过软件测试的人都会给出的答案,但这只是整个软件测试的人门知识。所谓黑箱/白箱,是指软件测试设计的方法,不是软件测试的方法!注意“设计”二字。[2]
有这个问题:软件测试设计和软件测试两者有什么区别?
我查了资料,有这些说法:
- 软件测试是使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
- 从是否关心软件内部结构和具体实现的角度划分,测试方法主要有白盒测试和黑盒测试。
- 从是否执行程序的角度划分,测试方法又可分为静态测试和动态测试。[1]
--引用自百度搜索
然而,并未给出软件测试设计的具体含义,根据我的实践,我得到的这些经验软件测试设计是指在尚未开发软件之前,对软件测试所要用的方法的一个预先设计,而软件测试伴随软件的整个生命周期,是一种检验手段。但是我还是不太明白,我的困惑是为什么大多数作者并未强调两者的区别,反而把黑箱/白箱归结于软件测试的范畴?
二、修改博客默认编辑器为Markdown
第一步:打开博客园-->随笔,点击设置默认编辑器

第二步:选择Markdown编辑器,点击确定即可修改博客默认编辑器为Markdown

三、小结
这篇博客是我的首篇博客,起初,很难接受用博客的方式来提交作业,各种操作都不熟悉,但是到这篇博客完成后,还是有一丝丝成就感,感觉一步一步来,还是可以做好的,同时,通过对邹欣老师《构建之法--现代软件工程》简单浏览后,我也对软件工程这门课有了初步的了解,可以毫不夸张的说,该书真的是我阅读过的语言最幽默的一本书,希望广大读者有机会能够仔细阅读该书,相信一定会受益匪浅。
201771030115-牛莉梅 实验一 软件工程准备-<初学《构建之法--现代软件工程》的疑问>的更多相关文章
- 201771010111-李瑞红 实验一 软件工程准备-<构建之法-现代软件工程-基础认识和理解>
|||||||| | :--
- 201771030106-葛佳诚 实验一 软件工程准备-<初读《构建之法——现代软件工程》有问>
项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE 作业要求链接 https://www.cnblogs.com/nwnu-da ...
- 201771010128王玉兰实验一软件工程准备——<阅读《构建之法——现代软件工程》初步了解软件工程>
|||||||||||||| |:--|:--| |项目|内容| |软件工程|https://www.cnblogs.com/nwnu-daizh/| |作业要求在博客里|https://www.cn ...
- 201771030125-王英雪 实验一 软件工程准备一<构建之法与博客首秀>
项目 内容 班级博客 点我呀! 作业要求 看这里! 课程学习目标 提出三个问题并以写博客的形式记录下来 参考文献 现代软件工程讲义 三个问题 问题一:软件工程究竟是什么? 在现代软件工程讲义一书中给出 ...
- 【软件工程】《构建之法》 & Git+ & CI/CD
<构建之法> & Git+ & CI/CD 个人阅读作业#2 项目 内容 本作业所属课程 2020春季软件工程(罗杰 任健) 本作业要求 个人阅读作业#2 我的课程目标 具 ...
- 软件工程---阅读《构建之法》P384~391
-阅读<构建之法>P384~391后,我充分认识到软件工程师的职业道德的重要性,具体有: 原则1:公众 原则2:客户与雇主 原则3:产品 原则4:判断 原则5:管理 原则6:职业 原则7: ...
- 201771010105—达拉草 实验一 软件工程准备—<软件工程构建之法—初步了解和认识>
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
- 201771030117-祁甜 实验一 软件工程准备—<阅读《现代软件工程——构建之法》提出的三个问题>
项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE 这个作业要求链接 https://www.cnblogs.com/nwnu- ...
- 201771010117—马兴德—实验一 软件工程准备—掌握博客中MarkDown的使用以及通读《现代软件工程—构建之法》的总结
实验一 软件工程的前期准备工作 在前期的准备工作以及老师上课的讲解中,我懂得了"软件=程序+软件工程"这句话的基本含义,以前只是对软件工程有一个很浅显的概念,现在在读了<现代 ...
随机推荐
- AJ学IOS(18)UI之QQ聊天布局_键盘通知实现自动弹出隐藏_自动回复
AJ分享,必须精品 先看图片 第一步完成tableView和Cell的架子的图 完善图片 键盘弹出设置后图片: 自动回复图: 粗狂的架子 tableView和Cell的创建 首相tableView为了 ...
- 借助Python来实现的定量城市研究
一.数据处理基础 (一)数据分析的概念 城市数据分析,可以从数据分析的广义和狭义两个角度来看: 狭义的数据分析是指根据分析目的,采用对比分析.分组分析.交叉分析和回归分析等分析方法,对相关城市数据(包 ...
- SPFA()判环
1 SPFA()判负环 SPFA()判负环的原理就是在求最短路的过程中,如果存在负环,比如说要求从A到a的最短距离,设为s,但是经过a->c->b->a可以更短,所以如果一直经过a- ...
- ATcoder E - Flatten 质因子分解求LCM
题解:其实就是求n个数的lcm,由于数据特别大,求lcm时只能用质因子分解的方法来求. 质因子分解求lcm.对n个数每个数都进行质因子分解,然后用一个数组记录某个质因子出现的最大次数.然后累乘pow( ...
- Numpy学习-(2)
我学习numpy过程的记录 1. 切片和索引 (1) 两种切片方式示例: (2) 多维数组: import numpy as np a = np.array([[1,2,3],[3,4,5],[4,5 ...
- PHP函数:get_class()
get_class() -返回对象的类名 说明: get_class ([ object $object = NULL ] ) : string 参数: object:要测试的对象.如果在类里,此参 ...
- token认证和理解
认知篇:https://blog.csdn.net/FYGu18/article/details/89345490 token失效篇认知:https://segmentfault.com/q/1010 ...
- The new SFCB broker fails to start with a SSL-related error: Failure setting ECDH curve name (secp22
# openssl ecparam -list_curves secp384r1 : NIST/SECG curve over a 384 bit prime field secp521r1 : NI ...
- Spring5参考指南:容器扩展
文章目录 BeanPostProcessor自定义bean BeanFactoryPostProcessor自定义配置元数据 使用FactoryBean自定义实例化逻辑 Spring提供了一系列的接口 ...
- 预测球队比赛结果及利用pyinstaller打包文件
一.预测乒乓球球队比赛成绩 1.乒乓球比赛规则 一局比赛:在一局比赛中,先得11分的一方为胜方:10平后,先多得2分的一方为胜方. 一场比赛:单打的淘汰赛采用七局四胜制,双打淘汰赛和团体赛采用五局三胜 ...
