东北大学计算机考研复试时软件工程的一些总结(三)

第六章 软件设计方法

6.1 设计活动的总体原则包括哪些?
设计过程不应陷入片面性;设计应能够追踪分析模型;设计应该选择合适的技术;设计应该选择合适的技术;设计应该选择合适的技术;设计应该是可集成的;设计应该尽可能地提高抽象层次;设计应该是可复用的;设计应该是可维护和可拓展的;设计的系统应该有韧性;设计应该具有一致性;设计的交互界面应该是友好的;设计评审。
6.2 什么是软件构架
在UML中,构架是指系统的组织结构,它可以递归解析为通过接口交互的部件、连接部件的关系以及组装部件的一些限制条件,通过接口交互的部件有类、构件和子系统。
总之,软件构架反映了系统整体的组织结构和基本特征
6.3 详细设计的任务是什么?
详细设计的任务是在软件构架的基础上,进一步确定如何实现目标系统,具体包括系统的模块逻辑的详细设计、系统数据结构的设计、系统数据结构的设计、系统人机接口的设计等。
6.4 分治的优点是什么?分治要考虑哪些问题
缩小问题空间,减少问题复杂度和开发工作量;便于并发执行,缩短开发时间;适合团队协作,降低实施难度;预防开发中的多米诺骨牌效应;容易产生可复用部件。
分治要考虑的问题:分治程度不应太大或是太小;从技术角度,如何分治?
6.5 抽象的优点是什么?
抽象有利于认识事物的普遍特征和基本原理;抽象可以帮助设计人员制定出模块的框架;抽象有利于软件的复用;抽象可以提高系统的可扩展性。
6.6 请分别解释里氏替换选择、开-闭原则、依赖倒转原则和接口隔离原则
里氏替换选择:子类可以替换父类,可以出现在父类能出现的任何地方。
开-闭原则:一个软件实体应当对扩展开放,对修改关闭。
依赖倒转原则:要依赖于抽象,不要依赖与具体类。
接口隔离原则:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。
6.7 什么是抽象类?什么是接口?他们有什么不同?
抽象类:不可被实例化的类。接口:是一些不包含具体实现的方法特征的集合。接口没有具体的实现方法,抽象可以有。抽象类只支持单继承,即继承它的子类只能有它这一个超类;对于接口而言,一个具体类可以有多个实现的接口。
6.8 什么是内聚?请列举内聚的种类,并说明哪些内聚类型较理想?
内聚是一个模块内部各部件之间联系紧密程度的度量。
功能内聚:所有部件处理同一组数据,共同完成单一的功能,用符号F表示。
顺序内聚:各部件之间既有数据联系,又有控制联系,用符号S表示。
通信内聚:所有部件都访问同一组数据,各部件只有数据关系、没有控制关系。用符号C表示。
过程内聚:只有控制联系,没有数据联系。符号P表示。
下面内聚较弱:
时间内聚:无数据、控制联系,部件之间具有时间联系。符号T表示。
实用程序内聚:不能归入上述内聚类型的部件放到一起。符号U表示。
偶然内聚(X)和层内聚(L)

6.9 什么是耦合?请列举耦合的种类,并解释耦合谱系。
耦合是模块间相互联系强弱的度量。
内容耦合:一个模块直接进入另一个模块中存取其数据或者使用其服务时。
公共耦合:两个模块间通过一个公共环境进行数据交换。
外部耦合:模块对外部系统有依赖关系。
控制耦合:两个模块之间通过接口的参数表交换开关数据,旨在控制另一个模块的执行逻辑。
印记耦合:不同专家有不同定义。
数据耦合:两个模块之间通过接口的参数表交换信息数据,并且这些信息数据的类型是基本数据类型。
谱系从左到右,耦合程度越来越高。当然,我们的目标是高内聚、低耦合。

6.10 什么是软件复用?什么是CBSD?什么是产品线工程?
软件复用是指重复使用为了复用目的而设计的软件的过程。
6.11 传统的设计建模方法有哪些?
层次图、结构图、HIPO图等。
6.12 面向对象的设计建模方法有哪些?请分别介绍。
包、类图、构件图和部署图。书上P131页
6.13 请举出一些不良界面的例子
对用户的主观臆测;不友好;晦涩难懂;行为不当;界面复杂等。
6.14 为了达到以用户为中心的设计目标,有哪些主要做法?
使用UCD:理解用户的特征、任务;确保用户参与;遵循良好的界面设计原则。
6.15 人机界面设计应遵循哪些指导准则?
系统的全部界面格式和风格应该保持一致;适当组织菜单层次和菜单项;为不同的用户或者功能提供不同的界面服务;力求用户需要的输入量最少;对于一些破坏性指令应确认;提供有效的系统保障能力;布局合理;简单易懂、整洁有序、条理清晰;界面具有帮助功能;有一定的智能。

第七章 软件实施与测试方法

7.1 有哪些广泛使用的程序设计语言?
汇编语言、BASIC语言、Fortran语言、COBOL语言、C语言、Ada语言、Java语言、.NET系列语言。
7.2 开发在线宠物商店系统时,你打算用什么语言开发?为什么?
C语言或者JAVA语言,因为我会。。
7.3 编写一个好风格的程序,要从几个方面着手?对于程序语句的处理,你还有哪些好的建议?
注释、清晰的逻辑结构以及代码格式。
先将逻辑结构化为最简洁最易于理解的。
7.4 什么是白盒测试?有哪些主要方法?
白盒测试又称玻璃盒测试。使用白盒方法导出测试用例是依据模块的编码,即模块的内部逻辑,对测试者是可见的,故称白盒测试。
基本途径测试(每条完整的路径都要测试一次)、条件测试(检查程序所包含的逻辑条件)、循环测试(确定循环结构是否有效)

7.5 什么是黑盒测试?有哪些主要方法?
黑盒测试在程序或者模块的接口级进行,而不考虑程度内部逻辑。
等价类划分、边界值分析。

7.6 什么是单元测试?
单元测试是把一个模块作为独立的程序单元进行测试,以保证它能够正确执行规定的功能。
7.7 什么是驱动模块和存根模式?如何实现他们?
书上P162.
7.8 什么是集成测试?有哪几种?各有什么优缺点?
集成测试将已经通过彻底测试的模块组装起来,已形成一个系统或者软件产品。
自顶向下集成测试:优点是能够早期发现主要的设计错误。缺点是潜在的,可再使用模块可能没有得到充分的测试。
自底向上集成测试:优点是在合理的调度下,可以减少甚至避免开发存根模块的开销。缺点是逻辑控制模块测试较晚,将导致大量的程序修改。
自顶向下和自底向上相结合的集成测试:将二者优点结合并且弱化缺点。
7.9 什么是回归测试?为什么要进行回归测试?回归测试的用例应该包括哪些类型的测试用例?
回归测试:当有新模块加入时,要对原测试通过的测试模块重新进行测试。
当新模块引入时,原来成功的测试用例失效,错误通常在新加入的模块或者接口上。
回归测试用例应包括下面三种类型的测试用例:
①执行测试所有软件功能的代表性测试用例;
②测试可能受改变影响的那些功能的测试用例;
③测试已经改变的软件部件的测试用例。

第八章 软件项目管理方法

8.1 什么是项目管理?
项目管理是一种对人力和资源进行管理、分配和调度的过程。
8.2 什么是软件特征量?有哪些主要的基础特征量?
一个系统、部件或者过程的一个给定属性的程度的定量度量。
基础特征量:软件规模、开发成本、开发期限、开发工作量、软件质量
8.3 面向功能点的软件特征量和面向尺寸的软件特征量相比,有哪些优点?
面向功能的软件特征量是使用应用程序交付的功能度的度量作为规范值。功能点是根据软件信息域内直接度量的量和对软件复杂程度的估计值估算出来。
8.4 软件企业中的人力资源具有哪些特点?
高技术更新性、高主观经验性、效率波动性、不可存储性、角色灵活性、绩效模糊性。
8.5 软件企业人力资源管理的主要任务是什么?
启动、计划、实施、收尾阶段
8.6 什么是SQA?SQA的主要任务是什么?执行SQA的难点是什么?
SQA:软件质量保证是为了保证软件的质量所要需要的一系列有计划的和有系统的活动
主要任务:
①为项目准备SQA计划;
②执行技术审查;
③执行项目的软件开发过程的评审;
④收集和分析软件度量信息;
⑤持续跟踪项目的错误或者问题;
⑥向上级管理者提供质量分析报告;
⑦向软件项目团队提供反馈;
⑧协调变更控制和变更管理。
难点:缺乏专业的SQA工程师;容易出现沟通问题;不受管理层重视;缺乏对项目的整体观;可验证性差。
8.7基于统计的软件质量包括哪些步骤?
①收集和分类软件缺陷信息
②尝试追踪的基本原因
③使用Pareto原理
④校正引起这些缺陷的关键少数原因。
8.8 软件风险的特性是什么?
不确定性和可能损失。
8.9 什么是软件配置?什么是软件配置管理?什么是基线?SCM的任务包括哪些?
软件配置是指软件开发过程中的三个主要类别的信息,包括计算机程序、描述计算机程序的文档,以及程序内部和外部的数据。
软件配置管理是贯穿于整个软件工程过程的一种保护性活动,该活动标识、组织和控制对正在开发软件进行的修改,能够有效地保证软件质量,并提高软件生产率。
基线:已经通过正是评审和批准的规格说明或者产品。
SCM的任务:统一标志配置项;版本控制;变更控制;配置审核;状态报告。

猜你喜欢

转载自blog.csdn.net/Jayson13/article/details/88598527