这个作业属于那个课程 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1 |
---|---|
这个作业的要求在那里 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10618 |
这个作业的目标 | 问题清单 |
作业正文 | 如下 |
其他参考文献 | 无 |
第一章:初识软件工程
1.在其他领域有根据“仿生”技术研发的产品,例如根据蝙蝠的超声定位器仿制了探路仪等。虽然计算机中的算法某种程度上算是仿生人类的思维,但是从软件工程层面上来说,有没有可能仿照某一生物或是群体的构成或者行为来使得工程更加高效?
2.摩尔定律提出了电脑性能进步的规律,软件工程中也有类似的关于整个体系发展的规律吗?
3.工程是是系统方法,是使得软件高效运行的原则,机械自动化技术的发展淘汰了一些手工业,我觉得制造本身就是一个可以被自动化的过程,自动化程度越高,“工程”这个框架的优势就越明显,人力也越少,所以对于以后的软件开发,当技术逐渐成熟,软件工程体系中的哪一些职位会被淘汰?
第二章:编写高质量代码
1.我有时看我很久之前写的代码发现我竟然不知道当时是怎么写出来的甚至不知道我写的目的是什么,老师也会出现这种情况吗?如何尽量避免这样的事发生。
2. 写大型项目与脚本之间的思路区别是什么?
3. 设计文档是必需的吗?会不会限制创造性
4. 越了解越觉得大型项目需要的不是设计而是把控,怎样把控才可以起到1+1>2的效果?
第三章:单元测试
1.带数据库和外部资源的单元测试怎么做?
2.公开私有方法以进行单元测试是个好主意吗?
3.单元测试在游戏编程中是否可行?
第四章:软件开发过程
1.软件开发过程是否与软件开发生命周期相同?
2.目前公司使用最多的软件开发过程模型是哪种?
3.软件过程模型之间怎么相互转换
4.如何将团队从瀑布式开发模型转变为scrum模型
5.使用scrum等敏捷开发方法时,如何避免等待请求
6.敏捷开发方法的陷阱有什么
第五章:团队开发管理
没有问题
第六章:敏捷开发与配置管理
没有问题
第七章:需求获取
没有问题
第八章:用例建模
1.状态迁移的发生不会受到哪个因素的影响?
目标状态
2.当一个顺序图过大时,最好的处理方法是?
添加ref框,建立顺序图间的引用关系
3.用户故事与用例是一回事吗?
用户故事与用例- 相似之处
如果我们考虑两种方法中的关键组成部分:
用户故事包含用户角色,目标和验收标准。
用例包含等效元素:演员,事件流和事件条件(详细的用例模板可能包含更多其他元素)。
用户故事与用例- 差异
用户故事的详细信息可能不会与用例记录在同一极端。
用户故事故意遗漏了许多重要细节。用户故事旨在通过在Scrum会议期间提问来引发对话。
用于更频繁地获得反馈的小增量,而不是像用例中那样具有更详细的前期需求规范。
第九章:面向对象分析与设计
1.面向对象分析与设计方法与面向功能分析与设计方法的区别是什么?
面向功能的分析与设计总的指导思想是自顶向下、逐步求精、单入口、单出口,基本原则是抽象和功能分解,即按照按照功能或过程分解。面向对象分析与设计方法是出发点和基本原则是尽可能模拟人类习惯的思维方式,使开发软件的方法有过程尽可能接近人类认识世界的方法与过程,是按照按照对象或概念分解
2.如何实现运行时多态
在类层次结构的不同类中,将函数名相同但实现功能不同的函数定义为虚函数。然后定义一个基类的对象指针就可以指向不同派生类的对象,来调用不同派生类的虚函数,实现运行时多态。
3.面向对象技术发展的动因是什么
面向对象开发方法一改过去传统的以功能分析为基础的面向过程的结构化分析与设计方法,面向对象开发方法模拟人们理解和处理客观世界的方式来分析问题,把系统视为一系列对象的集合,面向对象的设计又将分析的结果映射到某种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的概念,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题描述空间与解空间在结构上尽可能一致。 因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的封装、继承、多态等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服软件危机。