项目 内容
本次作业所属课程 2019BUAA软件工程
本次作业要求 阅读《构建之法》,初步了解软件工程
我在本课程的目标 熟悉软件工程相关规范,学会结对编程和团队编程
本次作业的帮助 在《构建之法》的基础上解惑,在老师帮助下了解软件工程

1.快速看完整部教材,列出你仍然不懂的5到10个问题

问题1 第二章 个人技术和流程 2.1 单元测试

问:如果用随机数以增加测试的真实性,好么?

答:一般情况下不好,如果某个随机数导致程序出错,但是下一次运行又不能重复这一错误,则于事无补。我们还是要用随机数等办法“增加测试的真实性”,但不是在单元测试中。单元测试不能解决所有问题,不必期望它会发现所有的缺陷。……

​ “某个随机数导致程序出错,但是下一次运行又不能重复这一错误”,在随机生成单元测试的时候,为何下一次运行不能重复这个错误呢?随机生成的数据对测试者来说应该是可见的,在随机生成单元测试的时候,若某个随机数导致出错,可不可以记录这个数据,下一次测试就不需要重新随机生成了呢?

还有,对于类似随机数生成器这个程序本身,如果要进行单元测试要怎么进行呢? 这是我在查询以上疑问的时候遇到的新问题,但是似乎没有得到解答。

问题2 第二章 个人技术和流程 2.3 个人开发流程

个人项目耗时对比记录表

……

·如果数据不准确或有遗失,怎么办?让工程师编造一些?

​ 正如书中提出的问题,当PSP中数据不准确或有遗失应该怎么办呢?我个人觉得编造应该是不可取的,这样失去了PSP的意义。在回忆不起来的时候,如果单项时间缺失,可以从其他项目来计算时间;如果数据多项缺失… 有没有什么补救措施呢?

问题3 第三章 软件工程师的成长 3.3 技能的反面

​ 书中用魔方的精通来类比编程技能的精通,这样说来,C++之类的语言精通应该远比C语言困难得多,但即使是c语言,达到“精通”的标准也有一定难度。很多人编程的过程都被调侃或者自嘲为“面向谷歌编程”,那么是否意味着一门编程语言,当我还不能脱离文档或者谷歌独立完成一个项目的时候,我就不能声称我“精通”这门语言呢?

问题4 第三章 软件工程师的成长 3.4 技能的反面 练习与讨论

​ 在本章的练习与讨论里看到一个有趣的问题,也就是练习与讨论的第四题

​ ……

他越来越意识到自己原来设计中的弱点,……

如果现在就改弦更张,那势必要影响自己原来估计的准确性,并会花费额外的时间,这样他的老板、同事也许会因此看不起他。如果他按部就班地按既定设计完成,最后整个团队还要花更多时间在后续集成上,但那就不是他个人的问题了,怎么办?

​ 这个问题感觉有那么一点点类似“电车困境”,对于这个问题,我个人的看法是向团队说明自己的失误,并想办法更正以前的错误,后者肯定是不可取的,浪费整个团队的时间同时也是浪费自己的时间。但是我在这里想提问的是,有没有更好的解决方案呢?

问题5 第四章 两人合作 4.2 代码风格规范 4.2.4 断行与空白的{}行

if(condition){

​ DoSomething();

}

else{

DoSomethingElse();

}

​ 书上提倡每个大括号都占一行,但是没有提到过如上的大括号换行规范,即一个第一个大括号不换行。我觉得这种写法也是相对清晰的,并且在网上搜索了一下,采用上述格式和书上的格式D的人都有,甚至大家戏谑地称对方为“异端”。那么第一个大括号换不换行究竟有没有一些我没有考虑到的讲究呢?实例代码比较简单,显得我在钻牛角尖,但是我在想如果在复杂的代码中是否二者的某种优势或者劣势会被放大。

问题6 第四章 两人合作 4.2 代码风格规范 4.3.4 如何处理C++中的类

……

4)当你拿不定注意的时候,用成员函数,不要用运算符。

请问为什么这样说呢?我是这样想的,拿不定注意的时候,说明二者皆可,这个时候运算符重载会使得代码可读性更高,尤其是有嵌套调用的时候,所以我个人觉得运算符更好,不知道为什么要这个时候要用成员函数。

问题7 第十一章 软件设计与实现 11.5 开发阶段的日常管理

​ 文中的提到设定一个阈值,如果开发人员Bug数量超过这个阈值则需要他专心修复Bug,也就是掉进“小强地狱”。对于一个新的项目组,假如大家的代码能力我们都不是很了解,而本身这个阈值又不适合经常修改,那到底应该如何制定出合适的阈值呢?制定不好对于项目进度的影响是否会有负面效果?

2.请问 “软件” 和 “软件工程” 这些词汇是如何出现的 - 何时、何地、何人?

软件:

根据维基百科

The first theory about software—prior to creation of computers as we know them today—was proposed by Alan Turing in his 1935 essay On Computable Numbers, with an Application to the Entscheidungsproblem (decision problem).

软件理论的提出者是 Alan Turing

软件工程:

根据维基百科

1968年秋季,NATO(北约)的科技委员会召集了近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。在那次会议上第一次提出了软件工程(software engineering)这个概念.

3.大家知道了软件和软件工程的起源,请问软件工程发展的过程中有什么你觉得有趣的冷知识和故事?

著名计算机科学家Donald Knuth(高德纳)(学计算机的肯定知道这个人)写的排版软件TeX版本号可以算是个趣事,从TeX第三版开始,之后的升级是在小数点后加入一个新数位,使之越来越接近Pi的值。TeX目前的版本是3.1415926。于2008年3月更新。

这个程序很稳定,高德纳许诺要是谁发现一个bug,就奖励他一些钱(1美分开始,每年翻倍),一般真的发现bug的人,会把支票裱起来。

作者:FMiaoZ

链接:https://www.zhihu.com/question/20774002/answer/16134516

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

在知乎查找到一则有趣的故事,在此就直接引用了。

4.上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点?

目前流行的包括Microsoft TFS、git、Trac、Bugzilla等。

  1. git(github、gitlab等)

    • 优点:

      • 功能强大,使用方便。
      • 用户基数大,方便用户间交流学习。
    • 缺点:
      • 初期有一定学习成本。
  2. Trac

    • 优点:

      • 轻量级。
      • 插件丰富,可拓展性强。
    • 缺点:
      • 不支持多项目。
      • 需求和缺陷没有分离。
      • 核心功能很少,不安装插件基本上没法用。
  3. Microsoft TFS

    • 优点:

      • 易于使用。
      • 高度集成其他工具(VS、ItelliJ等).
      • 自动化生成和发布。
    • 缺点:
      • 用户数量不够多。
  4. Bugzilla

    • 优点:

      • 丰富的配置设定,定制能力强
      • 免费开源
    • 缺点:
      • 装需要Perl和配置MYSQL数据库,过程比较繁琐
      • 修改配置文件麻烦
      • 汉化容易出现乱码

转载于:https://www.cnblogs.com/dszw/p/10479175.html

软件工程第一次阅读作业相关推荐

  1. 软件工程 - 第一次阅读作业

    软件工程 - 第一次阅读作业 项目 内容 这个作业属于哪个课程? 北航软工2019班级博客 这个作业的要求在哪里? 第一次阅读作业 我在这个课程的目标是? 按时完成老师给的任务 这个作业在哪个具体方面 ...

  2. 【软件工程】第一次阅读作业

    项目 内容 这个作业属于哪个课程 软件工程(罗杰) 这个作业的要求在哪里 第一次阅读作业 本次作业要完成的目标 阅读<构建之法>,快速了解软件工程的相关知识和过程并提出疑问 读完<构 ...

  3. 《构建之法》——第一次阅读作业

    第一次阅读作业 这个作业属于哪个课程          此课程的链接                 https://edu.cnblogs.com/campus/xnsy/SoftwareEngin ...

  4. 软件工程第一次团队作业

    软件工程第一次团队作业 阳光普照队 团队成员 队长:杨光海天 队员: - 周琪文 - 郭剑南 - 朱晓健 - 郑珍发 - 赖志平 - 邹星 - 吴伟根 项目描述 一幅画卷尽可展现祖国大好河山的风采,画 ...

  5. 软件工程个人阅读作业——阅读和调研

    目录 软件工程个人阅读作业--阅读和调研 1 阅读提问 1.1 单元测试问题 1.2 效能分析问题 1.3 杀手功能问题 1.4 典型用户问题 1.5 创业团队问题 2 调研源代码版本管理软件 2.1 ...

  6. 软件工程原理及方法学习随笔——第一次阅读作业

    正式开始学软件工程原理之前,博主虽然从师兄师姐或者老师那里都听过,这门课很重要,但是对于这么多的理论,内心深处对其并不感冒. 但当你深入阅读,你会发现这门课许多的知识都和你的工程息息相关.以下就谈谈自 ...

  7. 【软工】第一次阅读作业

    一.建立博客并介绍自己 我是来自17级软件一班的学生,黄欣,我喜欢与人交流与沟通,我身上的闪光点,大概就是乐观积极吧,我最喜欢的一本书是<飘>,到目前为止我都把它当作我的人生之书,在博客这 ...

  8. 【软工作业思考】关于软工的一些概念性理解暨第一次阅读作业

    概述 项目 内容 本次作业所属课程 2019BUAA软件工程 周二班 本次作业要求 第1次个人作业 当然,比这个更重要百倍的还是实实在在的思考,这也是标题如此命名的原因 我在本课程的目标 在原有实践经 ...

  9. 软件工程个人阅读作业1 201521123023 戴建钊 网络1511

    姓名:戴建钊 学号:201521123023 班级:网络1511 博客园地址:链接 码云地址:链接 阅读参考材料,并回答下面几个问题: (1)回想一下你初入大学时对网络工程专业的畅想 当初你是如何做出 ...

  10. 软件工程第一次结对作业

    一.题目要求 (1). 首先在同学中找一个同伴,范围不限,可以在1~5班中随意组合,建议尽量不要找同组的成员,女同学尽量找男同学结对,但是不做强制要求: (2). 从以往个人完成的项目中选择一个作品, ...

最新文章

  1. 互联网10年,激战如梦
  2. 老照片修复、寻找系外行星……这里有8个超赞的机器学习项目
  3. 网络编程(part10)--socket套接字编程之UDP套接字
  4. Windows 10企业批量部署实战之刷新并添加启动映像
  5. 【转】Pro Android学习笔记(一):Android 平台 2013.6.4
  6. python微信集成_python+微信+腾讯智能闲聊
  7. 博客搬家到CSDN:http://blog.csdn.net/yeweiouyang
  8. 一道笔试题的解法和联想
  9. 深入理解Nginx:模块开发与架构解析
  10. 工业机器人综合教学实训平台
  11. 孙玄:一文完全理解定时器实现技术
  12. Python3快速入门—7.枚举
  13. 维控plc解密 维控程序文件密码 工程密码 子程序密码搞定
  14. Python3+Selenium3+Pycharm自动化环境搭建(四):运行unittest时报错,unhandled inspector error
  15. 融资融券黑马选股分析系统主力意图大资金流出流入短线涨停板股票炒股软件
  16. cuda FORTRAN 统一内存 managed
  17. 快速gcd vs 普通gcd
  18. 企业内训——如何成为一家高利润的公司
  19. halcon学习教程2-相机畸变矫正
  20. 为什么蝙蝠一直显示无法连接服务器,Doodle Jump无法连接服务器是什么原因

热门文章

  1. 腾达fh307没有显示服务器名,腾达(Tenda)FH307路由器无线WiFi密码和名称设置
  2. abaqus如何快速导入其他cae文件的assembly?
  3. python炫彩界面_用 ESP32 制造炫彩 LED 球
  4. 镁光闪存颗粒对照表_海力士、南亚、镁光内存颗粒编码解析,妈妈再也不用担心你买内存条了...
  5. 计算机英语教程作文,如何写好话题作文
  6. php thrift 编译,Thrift 源码编译
  7. 华为云平台 IP SAN 存储配置
  8. 无线键盘RK61使用说明
  9. python基础教程python详细教程
  10. 锂电池升压-SX1308