软件工程 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1 |
---|---|
作业要求 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10458 |
作业目标 | 问题清单 |
作业正文 | 见下文 |
其他参考文献 | 云班课,百度 |
1#
1: 敏捷开发方法
答:敏捷开发模式是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于"非敏捷",更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重做为软件开发中人的作用。
2: 软件工程的瀑布模型
答:瀑布模型(Waterfall Model) 是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。包括软件工程开发、企业项目开发、产品生产以及市场销售等构造瀑布模型。
3: 软件的固有内在特性一般怎样去克服
2#
1:模块化程序设计在实践中怎么样运用?
答:模块化程序设计是指在进行程序设计时,将一个大程序按照功能划分为若干小程序模块,每个小程序模块完成一个确定的功能,然后在这些小程序模块之间建立必要的联系,通过这些小程序模块的互相协作,完成整个大程序功能的程序设计方法。
这里需要说明的是,模块化程序设计(开发)并非专指多文件编程,模块化程序设计(开发)的重点在于小功能模块的设计和协作,多文件编程只是将(一个或多个)“小程序模块”打包在单独的文件中,以文件的形式进行呈现,形成了多文件的编程形式。
2:面向抽象编程怎么去运用实现?
答:面向抽象编程,顾名思义,是对抽象类(abstract)进行一系列操作的编程。也就是说 当设计某种重要的类时,不让该类面向具体的类,而是面向抽象类,即 设计类中的重要数据 是 抽象类的对象 ,不是具体类声明的对象。
简单一点理解,就是定义了一个abstract类 和 一个abstract 方法,再定义一个或几个abstract类的子类,在子类中重写abstract类中的abstract方法(子类中重写的方法不再是abstract方法),然后就可以只声明一个abstract类,再利用 上转型对象 对其重写的方法进行调用。这样就可以实现声明的一个变量可以应对多种不同的变化
3:错误与异常的处理
3#
1:程序性能优化中时间和空间复杂性的优化
2:代码审查作用
答:
1)检查设计的合理性
2)互为Backup
3)分享知识、设计、技术
4)增加代码可读性
5)处理代码中的“地雷区”
3:Python代码性能优化中的循环优化基本原则
4#
1:什么是Mock测试,Mock对象。
答:mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。
2:单元测试中的模块接口测试考虑因素
答:
(1)、输入的实际参数与形式参数的个数是否相同;
(2)、输入的实际参数与形式参数的属性是否匹配;
(3)、输入的实际参数与形式参数的量纲是否一致;
(4)、调用其他模块时所给实际参数的个数是否与被调模块的形参个数相同;
(5)、调用其他模块时所给实际参数的属性是否与被调模块的形参属性匹配;
(6)、调用其他模块时所给实际参数的量纲是否与被调模块的形参量纲一致;
(7)、 调用预定义函数时所用参数的个数、属性和次序是否正确;
(8)、是否存在与当前入口点无关的参数引用;
(9)、是否修改了只读型参数;
(10)、对全程变量的定义各模块是否一致;
(11)、是否把某些约束作为参数传递。
(12)、文件使用前是否已经打开;
(13)、是否处理了文件尾;
(14)、是否处理了输入/输出错误;
(15)、输出信息中是否有文字性错误;
3:unittest中的断言方法
5#
1:瀑布模型本质上是一种什么样的模型?
答:瀑布模型本质上是一种顺序迭代模型。
2:瀑布模型的优缺点。
答:
瀑布模型的优点:
有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。
(1)为项目提供了按阶段划分的检查点。
(2)当前一阶段完成后,您只需要去关注后续阶段。
(3)可在迭代模型中应用瀑布模型。
增量迭代应用于瀑布模型。迭代1解决最大的问题。每次迭代产生一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测试。
瀑布模型的缺点:
(1)开发过程一般不能逆转,否则代价太大;
(2)实际的项目开发很难严格按该模型进行;
(3)客户往往很难清楚地给出所有的需求,而该模型却要求如此。
(4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。
3:敏捷式开发与瀑布开发的区别
6#
1:Scrum框架是什么。
2:Scrum中增量和迭代开发有什么区别。
3:增量模型是什么?
答:
增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。