目录
第五章 面向对象开发方法
一、填空题
1、在面向对象分析和OOD中,通常将对象的操作称为方法或服务。
2、对象的抽象是类,类的实例化是对象。
3、面向对象的程序设计语言应具备面向对象方法所要求的4个成分,它们是类、对象、继承和消息通信。
4、可能的潜在对象有7类,它们是外部实体、事物、事件、角色、场所或位置、组织机构、结构。
5、具有相同特征和行为的对象构成类。
6、汽车有一个发动机,汽车和发动机之间的关系是整体部分关系。
7、在面向对象方法中,信息隐蔽是通过对象的封装性来实现的。
8、只有类的共有界面的成员才能成为使用类的操作,这是软件设计的信息隐蔽原则。
9、当且仅当一个操作对类的实例的用户有用时,它才是类公共界面的一个成员,这是软件设计的最小界面原则。
10、每个派生类应该当作基类的特殊化来开发,而基类所具有的公共界面成为派生类的共有界面的一个子集,这是软件设计的继承性原则。
二、简答题
1、什么叫面向对象?面向对象方法OOM的特点是什么?为何用OOM开发软件?
答:面向对象=对象+类+继承+消息通信
OOM的4个关键特点:
(1)符合人类分析解决问题的习惯思维方式;
(2)各阶段所使用的技术方法具有高度连续性;
(3)开发阶段有机集成有利系统稳定;
(4)重用性好。
2、面向对象的开发方法与面向数据流的结构化开发方法有什么不同?
答:面向对象开发方法是我们分解问题所使用方法演化的结果。在结构化开发方法中过程抽象是优先的,而面向对象开发方法中优先的是实体,即问题论域的对象。
3、面向对象的特征和要素是什么?
答:特征
(1)对象唯一性。每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。
(2)分类性。分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。
(3)继承性。继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。
(4)多态性。多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。
要素:
(1)抽象。抽象是指强调实体的本质、内在的属性。
(2)分装性(信息隐藏)。封装性是保证软件部件具有优良的模块性的基础。
(3)共享性。
4、基于复用的面向对象的需求分析过程主要分为哪两个阶段?它们各自承担什么任务?如何衔接?
答:两个阶段:论域分析和应用分析。
论域分析仅在扩充当前系统或将来建立其它系统时找寻复用信息时才是实用的。基于论域信息的应用更容易适应论域内知识的改变和用户需求的变化。论域分析产生的模型并不需要用任何基于计算机系统的程序设计语言来表示,而应用分析阶段产生影响的条件则伴随着某种基于计算机系统的程序设计语言的表示。响应时间需求、用户界面需求和某些特殊的需求,如数据安全等,在这一层都被分解提取。
5、在类的通过复用的设计中,主要的继承关系有哪几种?试举例说明。
答:在类的通过复用的设计中,主要的继承关系有两大类:①配置:利用既存类来设计类,可能会要求由既存类的实例提供类的某些特性。通过把相应类的实例声明为新类的属性来配置新类。例如,一种仿真服务器可能要求使用一个计时器来跟踪服务时间。设计者不必开发在这个行为中所需的数据和操作,而是应当找到计时器类,并在服务器类的定义中声明它。但如果使用既存类的内部表示来做为新类的内部表示的一部分,这是一-种“针对实现”的继承方式,这种继承方式不好。②演变:要开发的新类可能与一个既存类非常类似,但不完全相同。此时可以从一个既存类演变成一个新类,可以利用继承机制来表示一般化——特殊化的关系。特殊化处理有三种可能的方式。如果新的概念是一个既存类所表示概念的一个特殊情况,特殊化运算可以从该既存类的定义产生新类的初始构造,这是典型的类继承的使用。
第六章 软件编程实现
一、填空题
1、编程语言是人与计算机交流的工具。
2、从语言层次上,编程语言可以分为面向机器的语言和面向问题的语言两种类型。
3、20世纪50年代出现了模块化编程方法,20世纪60年代出现了结构化程序设计。
4、编程风格是指一个人编制程序时所表现出来的特点、习惯和逻辑思路等。
5、代码实现可以分为数据库、业务对象和用例实现,以及自顶向下策略、自底向上策略和基于业务对象的用例实现开发策略。
二、选择题
1、下面(A)属于专用语言。
A、Lisp B、C C、Panscal D、Java
2、下面不属于一般程序设计方法的是(B)。
A、模块化编程方法 B、体系化编程方法
C、结构化编程方法 D、OOP设计方法
3、下面不符合命名规范的标识符是(C)。
A、sUmNumber B、SumNumber
C、Sum_Of Number D、SumOfNumber
4、下面(C)不属于选择OOL应该考虑的因素。
A、开发环境 B、发展前景
C、类库的可扩展性 D、支持多继承
5、下面(C)是错误的说法。
A、中间版本是软件未完成前的版本
B、 α版本是可以提交严格测试的软件版本
C、β版本是提交给测试人员进行全面测试的软件版本
D、发布版本是正式向社会发布,或向用户提交使用的软件版本
三、简答题
1、可以从哪几个方面对编程语言进行分类?
答:可以从以下五个方面对编程语言进行分类:
(1)从语言层次方面,可以分为面向机器的语言和面向问题的语言两大类;
(2)从语言适用性方面,可以分为通用语言和专用语言两类;
(3)从语言面向方面,可以分为面向过程语言和面向对象语言两类;
(4)从应用领域,可以分为科学计算、数据处理、实时处理和人工智能等语言;
(5)从语言级别上,分为低级语言和高级语言。
2、概述OOP设计的基本思想。
答:OOP始于OOL语言,简称面向对象语言(Object-Oriented Language,OOL),是为了解决面向过程编程中存在功能与数据分离而引起的程序复杂性问题而设计的。
3、源程序文档化主要应当考虑哪几方面的问题?
答:应注意以下三方面:
(1)标识符命名。标识符名字不宜过长,以免书写与输入易出错,必要时可用规则统一的缩写名;
(2)程序注释。注释是便于阅读程序的重要手段,必要的注释有助于尽快理解程序,有助于软件测试和维护;
(3)标准的书写格式。应当使用统一、标准规范的书写格式编写源程序,可以提高程序的可阅读性。
4、软件实现的概念及主要任务和过程有哪些?
答:概念:软件实现是通过编程或利用复用与生成技术集成、测试和调试,具体完成软件产品(项目/工程)的过程。
主要任务:软件实现阶段的主要任务是将软件详细设计的结果转换为目标软件。
过程:在宏观上软件实现是指遵照制定的程序设计规范,按照“软件详细设计文档”中对数据结构、算法分析和模块实现等方面的要求和说明,从软件企业的函数库、存储过程库、类库、构件库、中间件库中挑选有关的部件,采用面向对象的语言,将相关部件进行组装,分别实现各模块的功能,最终实现新系统的功能、性能、接口、界面等。
在微观上,软件实现是指通过编程、调试、单元与集成测试、系统集成等创建软件产品的过程。
5、软件实现的策略有哪些?其基本思想分别是什么?
答:三种策略:
(1)OOP开发策略。每个业务对象都应作为独立的类进行编写,并认真测试,保证所编写的业务对象程序没有错误。
(2)自顶向下策略。从顶层模块开始,逐步向下层模块延伸,直到最后编写最底层模块。
(3)自底向上策略。从数据层开始逐步向业务层和界面层过渡。
第七章 软件测试与维护
一、填空题
1、软件测试的目的是发现软件的错误。
2、单元测试一般以白盒法为主,测试的依据是系统的模块功能规格说明。
3、黑盒测试法是通过分析程序的功能来设计测试用例的方法。
4、软件测试用例主要由输入数据和预期输出结果两部分组成。
5、为适应软硬件环境变化而修改软件的过程是适应性维护。
6、成功的测试是指运行测试用例后发现了程序错误。
7、白盒测试法是根据程序的内部逻辑来设计测试用例的方法。
8、检查软件产品是否符合需求定义的过程称为系统测试。
9、软件的集成测试工作最好由不属于该软件开发组的软件设计人员承担,以提高集成测试的效果。
10、分析和理解程序是决定软件维护成败和质量好坏的关键。
二、简答题
1、什么是白盒测试法?什么是黑盒测试法?
白盒测试主要是对程序内部结构和执行路径的测试,也称透明盒测试、开放盒测试、结构化测试、基于代码测试和逻辑驱动测试等。测试人员将测试软件看作一个打开的盒子,搞清软件内部逻辑结构和执行路径后,利用其结构及有关信息设计测试用例,对程序所有逻辑路径进行测试,以检测不同点检查程序的实际状态与预期状态一致性。
黑盒测试也称为功能测试或黑箱测试,其盒是指被测试的软件,“黑盒”则指测试人员只知道被测软件的界面和接口外部情况,不必考虑程序内部逻辑结构和特性,只根据程序的需求分析规格说明,检查其功能是否符合。
2、软件测试一般经过哪些步骤?采用哪些方法?
通常具体的软件测试分为单元测试、集成测试、有效性(确认)测试和系统测试4个步骤。
方法:人工测试方法、计算机辅助静态分析方法、白盒测试方法、黑盒测试方法。
3、软件维护包括哪些内容?
完善性维护、适应性维护、纠错性维护、预防性维护。