《软件工程(本科教学版)》考试重点

简答题

1.软件工程的作用/必要性(Software Engineering)

软件工程是建立和使用一套合理的工程原则,以便经济地获得可靠地、可以在实际机器上高效运行地软件;
IEEE给出的定义:(1)将系统化的、规范的、可量化的方法应用于软件的开发,运行和维护,即将工程化方法应用于软件;(2)在        (1)中所述方法的研究。
软件过程构成了软件项目惯例控制的基础,建立了工作环境以便于应用技术方法、提交工作产品、建立里程碑、保证质量及正确管理变更;
软件工程方法为构件软件提供技术上的解决方法;
软件工程工具为过程和方法提供自动化或半自动化的支持;

2.瀑布模型的优劣(The merits of the waterfall model)

优点
 ①为项目提供了按阶段划分的检查点;
 ②当前一阶段完成后,只需要去关注后续阶段;  
 ③可在迭代模型中应用瀑布模型;
 ④它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导;
缺点
①各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增大了工作量。
②由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
③通过过多的强制完成日期和里程碑来跟踪各个项目阶段;
④瀑布模型的突出缺点是不适应用户需求的变化;

3.对象的概念、特征(The concept and characteristics of the object)&& 对象与传统数据对象的区别(The difference between object and traditional data)

1)对象的定义:
    定义1:对象是具有相同状态的一组操作集合。
    定义2:由保存对象属性的数据和可以施加于这些数据的操作封装在一起构成的整体。对象是类的实例,对象给类以生命。
对象的特征:继承、封装、多态(面向对象)不确定,保留
对象与传统数据对象的区别:
对象是封装了数据结构及可以施加在这些数据结构上的操作的封装体,这个封装体有唯一标识它的名称,而且向外界提供一组服务(即共有的操作)。传统的数据是可见的,可被修改的,而实现对象操作的代码和数据是隐藏在对象内部的,在外面看不见的,更不能从外面去访问或修改这些数据或代码。对象将传统的数据进行封装处理。

4.实体类、边界类、控制类(Entity class boundary class control class)

实体类:实体对象的抽象,通常来自域模型(现实世界)用来描述具体的实体,通常映射到数据库表格与文件中;
边界类:边界对象的抽象,通常是用来完成参与者(用户、外部系统)于系统之间交互的对象(例如:对话框、菜单、接口等);
控制类:控制对象的抽象,主要用来体现应用程序的执行逻辑,将其抽象出来,可以使变化不影响用户界面和数据库中的表;

5.高质量软件设计的特征(Characteristics of high quality software design)

①设计应展示出这样一种结构:
    A.已经使用可识别的体系结构风格或模式创建;
    B.由展示出良好设计特征的构件构成;
    C.能够以演化的方式实现从而便于实现和测试;
②设计应该模块化:也就是说应将软件逻辑地划分为元素和子系统;
③设计应该包含数据、体系结构、接口和构件的清晰表示;
④设计应导出数据结构,这些数据结构适用于要实现的类,并从可识别的数据模式提取。
⑤设计应导出显示独立功能特征的构件
⑥设计应导出接口
⑦设计的导出应根据软件需求分析过程中获取的信息采可重复的方法进行;
⑧应使用能够有效传达其意义的表示法来表达设计;

6.体系结构的概念及其重要性(The concept and importance of Architecture)

概念:程序或计算系统的软件体系结构是指系统的一个或者多个结构,它包括软件构件、构件的外部可见属性以及它们之间的相互关系。
作用
    ①对设计在满足既定需求方面的有效性进行分析;
    ②在设计变更相对容易的阶段,考虑体系结构可能的选择方案;
    ③降低与软件构造相关的风险;

7.模块独立性划分标准(Standard for module independence)

①内聚性:又称为块内联系,指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量,如果一个模块内各元素联系得越紧密则它的内聚性就越高;
②耦合性:也称块间联系,指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密其耦合性就越强,模块的独立性就越差。
耦合性和内聚性是模块独立性的两个定性标准,将软件系统划分模块使尽量做到高内聚和低耦合,提高模块的独立性。

8.基于类的构建设计原则(Component based design principles)

①开闭原则:模块应该对外延具有开放性,对修改具有封闭性;
②Liskov原则:子类可以替换它们的基类;
③依赖倒置原则:依赖于抽象而非具体实现
④接口分离原则:多个客户专用接口比一个通用接口要好
⑤发布复用等价性原则:复用的粒度就是发布的粒度;
⑥共同封装原则:一同变更的类应该合在一起;
⑦共同复用原则:不能一起复用的类不能被分到一组;

9.界面设计黄金原则(Golden principles of interface design)

①用户操纵控制
②减少用户的记忆负担
③保持界面一致

10.软件测试层次(Various stages of software testing)

教学PPT
单元测试——详细设计/构建级设计
集成测试——体系结构设计
确认测试——需求
系统测试——系统工程
课本

11.黑盒、白盒测试(White box and black box testing method)

黑盒测试
    概念:也称行为测试,侧重于软件的功能需求,使软件工程师能设计出将测试程序所有功能需求的输入条件集;
    适用场合:对程序内部结构不了解而只关心程序功能的场合
优点
    ①适用于各阶段测试;
    ②从产品功能角度测试;
    ③容易入手生成测试数据;
缺点
    ①某些代码得不到测试;
    ②如果规格说明有误,则无法发现;
    ③不易进行充分性测试
白盒测试
    适用场合:更关注程序内部逻辑结构的测试
优点
    ①可构成测试数据使特定程序部分得到测试;
    ②有一定的充分性度量手段;
    ③可获得较多工具支持;
缺点
    ①不易生成测试数据;
    ②无法对未实现规格说明的部分进行测试;
    ③工作量大,通常用于单元测试,有应用局限
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值