项目 内容
课程班级博客链接 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-牛莉梅 实验一 软件工程准备-<初学《构建之法--现代软件工程》的疑问>的更多相关文章

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

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

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

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

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

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

  4. 201771030125-王英雪 实验一 软件工程准备一<构建之法与博客首秀>

    项目 内容 班级博客 点我呀! 作业要求 看这里! 课程学习目标 提出三个问题并以写博客的形式记录下来 参考文献 现代软件工程讲义 三个问题 问题一:软件工程究竟是什么? 在现代软件工程讲义一书中给出 ...

  5. 【软件工程】《构建之法》 & Git+ & CI/CD

    <构建之法> & Git+ & CI/CD 个人阅读作业#2 项目 内容 本作业所属课程 2020春季软件工程(罗杰 任健) 本作业要求 个人阅读作业#2 我的课程目标 具 ...

  6. 软件工程---阅读《构建之法》P384~391

    -阅读<构建之法>P384~391后,我充分认识到软件工程师的职业道德的重要性,具体有: 原则1:公众 原则2:客户与雇主 原则3:产品 原则4:判断 原则5:管理 原则6:职业 原则7: ...

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

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

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

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

  9. 201771010117—马兴德—实验一 软件工程准备—掌握博客中MarkDown的使用以及通读《现代软件工程—构建之法》的总结

    实验一 软件工程的前期准备工作 在前期的准备工作以及老师上课的讲解中,我懂得了"软件=程序+软件工程"这句话的基本含义,以前只是对软件工程有一个很浅显的概念,现在在读了<现代 ...

随机推荐

  1. 解决从服务器获取的数组是 __NSCFConstantString以及""没有空格字符串的问题

    AJ分享,必须精品 问题 项目遇到了个bug,从服务器获取到的数据是这样的 { status = 1, data = [ { uid = 161, type = 2, id = 79, addtime ...

  2. 别再问我 new 字符串创建了几个对象了!我来证明给你看!

    我想所有 Java 程序员都曾被这个 new String 的问题困扰过,这是一道高频的 Java 面试题,但可惜的是网上众说纷纭,竟然找不到标准的答案.有人说创建了 1 个对象,也有人说创建了 2 ...

  3. win10安装docker,VSCode管理docker

    背景 docker:随着技术的不断迭代,开发环境的配置与部署越来越重要.Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linu ...

  4. ASP.NET母版页

    ASP.NET母版页:主要是设置一致界面的页面,在固定的页中进行更新. 如图1-1所示 页头 页中(页内容) 页尾 图1-1  母版页 一般网页是固定页头和页尾,只更新页内容,来实现网页的跳转或内容的 ...

  5. word2sequence 把字符串转换数字编码

    地址:http://ai.stanford.edu/~amaas/data/sentiment/,这是一份包含了5万条流行电影的评论数据,其中训练集25000条,测试集25000条. 1.准备数据 d ...

  6. vector和数组

    对于之前没有接触过vector的初学者来说,经常会把vector和数组弄混,因为二者在用的时候比较像,下面就详细的来介绍一下vector和数组的区别. (1) 首先,vector类似于数组,有一段连续 ...

  7. STM32 内存分配解析及变量的存储位置

    内存映射 在一些桌面程序中,整个内存映射是通过虚拟内存来进行管理的,使用一种称为内存管理单元(MMU)的硬件结构来将程序的内存映射到物理RAM.在对于 RAM 紧缺的嵌入式系统中,是缺少 MMU 内存 ...

  8. 批量查询PDF文本并导出结果的小工具

    效果: 批量查询指定关键字 & 指定目录下PDF文件中的文本,并导出文件路径和关键字所在文本行. 下载: 链接: https://pan.baidu.com/s/1sK2OMMgGX26l7P ...

  9. 解决QQ可以登录但是网页打不卡 ,提示代理服务器拒绝连接 的问题。

  10. java学习(第四篇)数组

    一.一维数组 1.声明,分配内存 int[] a=new int[10]; 数组元素的数据类型 [] 数组名=new 类型 [数组元素个数]: 2.初始化 int[] a=new int[] {1,2 ...