这个作业属于那个课程 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1 |
---|---|
这个作业的要求在那里 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10618 |
这个作业的目标 | 列出问题清单 |
作业正文 | 如下所示 |
其他参考文献 | 百度 |
第一章:初识软件工程
1.如何有效降低用户需求的变更对于软件修改的影响?(譬如功能A在刚推出时收到欢迎,但两年后基本无人使用,功能A还有没有存在的必要?如果删除,用户数据怎么处理?) 2.使用重用方法时,如何识别可重用软件成分?如何把构件组装成,或与新开发的子系统合成为所需要的目标系统? 3.相较于瀑布模型,迭代式开发对可拓展性要求更高。如何保证迭代式开发能够在最初的版本就完成一个可拓展性较高的版本?
第二章:编写高质量代码
1、网课中提到的,单一职责是只有一个引起变化的原因。这个是引起变化是指在程序上引起变化吗?为什么只有一个?
2、对结对编程的实施性有点疑惑,每个人写代码的逻辑和习惯应该都是不同的,网课视频里,驾驶员编写代码的时候领航员在一边提意见,会不会慢慢发展成就是领航员“写”的程序?
3、代码性能优化有极限吗?
4、代码性能优化应该不止停留在代码的优化上面吧?在不同层面的优化方式是大同小异还是完全不同??
第三章:单元测试
1、无效等价类为什么要和有效等价类组合?产生的无效测试用例意义在哪里?是无效的不用管,还是作为负面案例存在?
2、条件覆盖和判定条件覆盖中相对应的“所有&每个”、“可能&所有”不是一个意思吗?用不同的词语下定义,其中的区别在哪里?
3、静态分析是不是没有动态分析效率高?静态分析的人工是判断代码逻辑,程序正确性就是跑不跑得出结果吗?
第四章:软件开发过程1、瀑布模型已经很少使用了,是否意味着我们之后基本上不用去考虑使用?
1、瀑布模型已经很少使用了,是否意味着我们之后基本上不用去考虑使用?
2、看可转换模型和迭代模型的定义,都是先构造框架再按照需求一步一步修改补充……的吗?
3、迭代比原型化要更加快吗?“原型是一个部分开发的产品”——意思是在部分开发的产品基础上再进行加工?结果还是迭代更加快一些?
4、为什么在敏捷开发中说“需求是不可预测的”?项目开始时期要做的关于未来发展的分析不算在预测用户未来需求吗?
5、全才化的专才是什么意思?
6、分解不明白,分解不算实质变更?
第五章:团队开发管理
1、例点计算中的权重可更改么?
2、好奇这些估算真的有广泛使用么?团队士气还能用权重表示,这东西不应该是个曲线一上一下么。
第六章:敏捷开发与配置管理
1、敏捷估算扑克的微小条目为什么是1/2?不是亮扑克数字吗?
2、软件配置项的定义不懂,它是一个成品吗?(此处的成品仅代表能够正常运行)
3、并行工作模式是不是也包含了独占工作模式?后发布的程序员是不是在并行工作的基础上又增添了独占工作的一半工作量?
第七章:需求获取
1、会有问题的解决是无商业价值的吗?
2、原型验证和基于测试验证哪个更好?
3、为什么列举出来的不同风格SRS的方法效果没有大?