项目 内容
课程班级博客链接 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. Android UIAutomator自动化测试

    描述:UiAutomator接口丰富易用,可以支持所有Android事件操作,事件操作不依赖于控件坐标,可以通过断言和截图验证正确性,非常适合做UI测试. UIAutomator不需要测试人员了解代码 ...

  2. springboot 项目使用阿里云短信服务发送手机验证码

    1.注册阿里云账户进行账号实名认证 2.申请短信签名和模板 3.创建access_key和access_secret 4.然后就是代码编写 一.找到产品与服务里面的云通信模块,然后找到短信服务,开通短 ...

  3. D3.js 力导向图的拖拽(drag)与缩放(zoom)

    不知道大家会不会跟我一样遇到这样的问题,在之前做的力导向图的基础上加上缩放功能的时候,拖动节点时整体会平移不再是之前酷炫的效果(失去了拉扯的感觉!).天啊,简直不能接受如此丑X的效果.经过不懈的努力终 ...

  4. 《带你装B,带你飞》pytest修仙之路5 - yield操作

    1. 简介 上一篇中,我们刚刚实现了在每个用例之前执行初始化操作,那么用例执行完之后如需要清除数据(或还原)操作,可以使用 yield 来实现.fixture通过scope参数控制setup级别,既然 ...

  5. CSS 中的伪类和伪元素

    伪类(Pseudo classes) 由于状态的变化是非静态的,所以元素达到一个特定状态时,它可能得到一个伪类的样式:当状态改变时,它又会失去这个样式.由此可以看出,它的功能和 class 有些类似, ...

  6. 二、Go语言开发环境安装与编写第一个Hello World

    本系列文章均为学习过程中记录的笔记,欢迎和我一起来学习Go语言. 全文使用环境如下: Go语言版本:1.13 操作系统:deepin 使用工具:Goland开发工具 Go语言追溯历史 Go语言2009 ...

  7. ES6中对函数的扩展

    ES6一路扩展,字符串.数组.数值.对象无一“幸免”,ES6说要雨露均沾,函数也不能落下,今天,就来讲解ES6对函数的扩展. 参数的默认值 在开发中,给函数的参数指定默认值,是很普遍很常见的一个需求, ...

  8. 数据库SQL---数据库、基本表、视图、索引的定义、修改、删除

    1.SQL(结构化查询语言)的组成:数据定义语言DDL.数据操纵语言DML.数据控制语言DCL.其他. 2.SQL语言的功能: 1)数据查询:SELECT 2)数据定义:CREATE   DROP  ...

  9. Node 接入阿里云实现短信验证码

    本文介绍在案例云开通短信服务的流程以及在Node项目中使用的方法. 一.开通阿里云短信服务 登陆阿里云,然后进入 https://dysms.console.aliyun.com/dysms.htm  ...

  10. Libra教程之:Libra protocol的逻辑数据模型

    文章目录 Libra protocol简介 逻辑数据模型 账本状态 交易 账本历史 Libra protocol简介 Libra区块链本质上是一个加密数据库,这个数据库是通过Libra protoco ...