软件工程案例教程李军国主编复习题答案

合集下载

(完整word版)软工复习题答案.doc

(完整word版)软工复习题答案.doc
客户号码
5位数字串(6)
位数字串(
18)
(2)设计测试用例见表A.2.
表A2测试用例表
测试数据
测试范围
期望结果
(1)()5323456
等价类(1)(5)(6)
有效
(2)(01)8093216
等价类(2)(5)(6)
有效
(3)(0871)3356789
等价类(4)(5)(6)
有效
(4)(067)5065432
A.简化.压缩的
C.彻底的
A)需求分析
B.详细的
D.深入的
.设计过程。
8.下面说法正确的是(C
)。
A.经过测试没有发现错误说明程序正确
B.测试的目标是为了证明程序没有错误
C.成功的测试是发现了迄今尚未发现的错误的测试
D.成功的测试收是没有发现错误的测试
9.面向对象的主要特征除对象唯一性、封装、继承外,还有(
A
)。
A.多态性B.完整性
C.可移植性D.兼容性
四、简述题(第1、2、4答案不确定,需自己去找找)
1:简述需求分析的过程。
回答一:
(1)问题识别
(2)分析与综合
(3)编制需求分析阶段的文档
(4)需求验证
建立软件原型)3(分析需求可行性)4(确认需求优先级)5(建立需求分析模型)
6(创建数据字典)回答二:
(3)特殊需求
说明此用例的特殊要求
(4)前置条件
说明此用例开始执行的前提条件,如参与者登陆成功等
(5)后置条件
说明此用例执行结束后,结果应传给什么参与者
8:简述如何识别分析类及应当注意的问题?
分析类包括实体类、边界类和控制类

软件工程复习题及答案(完整)

软件工程复习题及答案(完整)

软件工程复习题及答案(完整)一、选择1、文档是软件产品的一部分,没有文档的软件就不称其为软件。

对2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。

错3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。

错4、建立用例模型的步骤包括确定角色、确定用例和绘制用例图。

错5、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。

错6、软件配置管理是一组标识、组织和控制修改源程序的活动。

错7、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。

错8、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。

对9、边界值分析方法是取输入/输出等价类的边界值作为测试用例。

对10、面向对象的分析是面向计算机系统建立软件系统的对象模型。

错11、(D)是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。

A 软件过程B 软件测试C 软件生存周期D 软件工程12、ISO9000是由ISO/TC176制定的关于(B)和质量保证的国际标准。

A 质量控制B 质量管理C 质量策划D 质量改进13、CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。

除第1级外,每个等级都包含了实现该成熟度等级目标的若干(B)。

A 关键实践 B 关键过程域 C 软件过程能力 D 软件过程14、在软件开发的各种资源中,(D)是最重要的资源。

A 开发工具B 方法C 硬件环境D 人员15、软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。

A 固有的B 人为的C 可消除的D 不可降低的16、在各种不同的软件需求中,(D)描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。

A 业务需求B 功能需求C 非功能需求D 用户需求17、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统。

软件工程(李军国等)课后习题原题

软件工程(李军国等)课后习题原题

软件工程习题习题1一、判断题1.程序是按事前设计的功能和性能要求执行的指令序列。

2.数据是使程序能够正确操纵信息的数据结构。

3.文档是与程序开发、保护和利用有关的图文材料。

4.软件开发时,一个错误发现得越晚,为更正它所付出的代价就越大。

5.增量模型的特点是文档驱动。

6.瀑布模型的特点是文档驱动。

7.瀑布模型是一种软件生存周期模型。

8.在软件生存周期中,用户主如果在软件开发期参与软件开发。

9.瀑布模型的主要问题是靠得住性低。

10.软件生存周期中时间最长的阶段是需求分析。

11.原型化方式适用于需求已肯定的系统。

12.瀑布模型本质上是一种线性顺序模型。

13.原型化方式是用户和软件开发人员之间进行的一种交互进程,适用于需求不肯定性高的系统。

二、填空题1.软件工程是开发、运行、保护和修复软件的系统化方式,它包括的三个要素指的是:(A )(B )和(C )2.软件是计算机系统中与硬件彼此依存的另一部份,它是包括(A )(B )及(C )的完整集合。

3.开发软件时对提高软件开发人员工作效率相当重要的是(A),软件工程中描述生存周期的瀑布模型一般包括计划(B )、设计、编码、测试、保护等几个阶段,其中设计阶段在管理上又可以依次分成(C )和(D )两步。

4.软件发展进程的第一阶段称为“程序设计的原始时期”,这时既没有(A ),也没有(B ),程序员只能用机械指令编写程序。

5.软件发展进程的第二阶段称为“大体软件期”,出现了(A),并逐渐普及,随着(B )的发展,编译技术也有较大的发展。

6.软件发展进程的第三阶段称为“程序设计方式时期”,这一时期,与硬件费用下降相反,软件开发费急剧上升。

人们提出了(A )和(B )等程序设计方式,设法降低软件的开发费用。

7.软件发展进程的第四阶段称为“软件工程时期”,软件开发技术再也不单单是程序设计技术,而是包括与软件开发的各个阶段,如(A )、(B )、编码、单元测试、综合测试、(C )及其整体有关的各类管理技术。

软件工程案例教程李军国主编复习题答案

软件工程案例教程李军国主编复习题答案

第1章习题答案一、判断题二、填空题三、简答题1.软件的特点:①软件具有抽象性。

②软件与硬件的生产方式不同。

③软件与硬件的维护方式不同。

④软件具有复杂的逻辑性。

⑤软件的成本较高。

⑥软件的使用和社会因素有关。

2.软件危机产生的原因:①用户需求不明确。

②缺乏正确的理论指导。

③软件开发规模越来越大。

④软件开发复杂度越来越高。

3.软件危机的主要表现:①软件开发进度难以预测。

②软件开发成本难以控制。

③用户对产品功能难以满足。

④软件产品质量无法保证。

⑤软件产品难以维护。

⑥软件缺少适当的文档资料。

4.软件工程学的基本原则有哪些:①抽象。

②信息隐蔽。

③模块化。

④局部化。

⑤确定性。

⑥一致性。

⑦完备性。

⑧可验证性。

5 什么是软件的生命周期?答案:软件与任何一个事物一样,有它的孕育、诞生、成长、成熟、衰亡的生存过程。

这就是软件的生存周期。

6 软件工程过程有哪几个基本过程活动?试说明之。

答案:软件工程过程的基本过程活动有4步:①软件规格说明(需求定义)。

规定软件的功能及其运行的限制;②软件设计与开发(设计开发)。

产生满足规格说明的软件;③软件确认(测试)。

确认软件能够完成客户提出的要求;④软件演进(维护)。

为满足客户的变更要求,软件必须在使用的过程中演进。

四、综合题1.详细说明软件生命周期分哪几个阶段?答案:软件生命周期主要分为6个阶段:软件项目计划、软件需求分析和定义、软件设计、程序编码、软件测试,以及运行维护。

(1)软件项目计划:在这一步要确定软件工作围,进行软件风险分析,预计软件开发所需要的资源,建立成本与进度的估算。

根据有关成本与进度的限制分析项目的可行性。

(2)软件需求分析和定义:在这一步详细定义分配给软件的系统元素。

可以用以下两种方式中的一种对需求进行分析和定义。

一种是正式的信息域分析,可用于建立信息流和信息结构的模型,然后逐渐扩充这些模型成为软件的规格说明。

另一种是软件原型化方法,即建立软件原型,并由用户进行评价,从而确定软件需求。

软件工程管理分析案例教程(第三版)课后习题-答案

软件工程管理分析案例教程(第三版)课后习题-答案

第一章二、判断题1、搬家属于项目。

(√)2、项目是为了创造一个唯一的产品或提供一个唯一的服务而进行的永久性的努力。

(×)3、过程管理就是对过程进行管理,目的是要让过程能够被共享、复用,并得到持续的改进。

(√)4、项目具有临时性的特征。

(√)5、日常运作存在大量的变更管理,而项目基本保持连贯性的。

(×)6、项目开发过程中可以无限制地使用资源。

(×)三、选择题1、下列选项中不是项目与日常运作的区别的是(C)A. 项目是以目标为导向的,日常运作是通过效率和有效性体现的。

B. 项目是通过项目经理及其团队工作完成的,而日常运作是职能式的线性管理。

C.项目需要有专业知识的人来完成,而日常运作的完成无需特定专业知识。

D.项目是一次性的,日常运作是重复性的。

2、下列选项中最能体现项目的特征(C)A.运用进度计划技巧 B.整合范围与成本 C.确定期限 D.利用网络进行跟踪3、以下都是日常运作和项目的共同之处,除了(D)A.由人来做 B.受限于有限的资源 C.需要规划、执行和控制 D.都是重复性工作4、项目经理的职责不包括(D)A.开发计划 B.组织实施 C.项目控制 D.提供资金5、下列选项中属于项目的是(C)A.上课 B.社区保安 C.野餐活动 D.每天的卫生保洁6、下列选项中正确的是(C)A.一个项目具有明确的目标而且周期不限B.一个项目一旦确定就不会发生变更C.每个项目都有自己的独特性D.项目都是一次性的并由项目经理独自完成7、(B)是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力。

A.过程 B.项目 C.项目群 D.组合8、(B)是一系列伴随着项目的进行而进行,目的是确保项目能够达到期望结果的一系列管理行为。

A.人力资源管理 B.项目管理 C.软件项目管理 D.需求管理9、下列活动中不是项目的是(C)A.野餐活动 B.集体婚礼 C.上课 D.开发操作系统10、下列选项中不是项目的特征的是(C)A.项目具有明确的目标B.项目具有限定的周期C.项目可以重复进行D.项目对资源成本具有约束性第二章二、判断题1、项目初始阶段甲方为软件开发方,乙方为顾客。

《软件工程》经典考试例题复习试题,重点知识点[含答案解析]

《软件工程》经典考试例题复习试题,重点知识点[含答案解析]

1.某旅馆的电话服务如下:可以拨分机号和外线号码。

分机号是从7201至7299。

外线号码先拨9,然后是市话号码或长话号码。

长话号码是以区号和市话号码组成。

区号是从100到300中任意的数字串。

市话号码是以局号和分局号组成。

局号可以是455,466,888,552中任意一个号码。

分局号是任意长度为4的数字串。

要求:写出在数据字典中,电话号码的数据流条目的定义即组成。

电话号码=[分机号|外线号码]分机号=7201 (7299)外线号码=9+[市话号码|长话号码]长话号码=区号+市话号码区号=100 (300)市话号码=局号+分局号局号=[455|466|888|552]分局号=4{数字}4数字=[0|1|2|3|4|5|6|7|8|9]2.为以下程序流程图分别设计语句覆盖和判定覆盖测试用例,并标明程序执行路径。

(1)语句覆盖测试用例令x=2,y=0,z=4作为测试数据,程序执行路径为abcde。

(2)判定覆盖可以设计如下两组数据以满足判定覆盖:x=3,y=0,z=1(1分)(通过路径abce);x=2,y=1,z=2(1分)(通过路径acde)。

或者x=2,y=1,z=1;覆盖路径acdex=1,y=1,z=1;覆盖路径acex=3,y=0,z=1;覆盖路径abce(注意:本题也还可以有其他答案)3.请用判定表画出以下问题的行为逻辑。

人们往往根据天气情况决定出门时的行装。

天气可能下雨,也可能不下雨;下雨或不下雨天气可能变冷,也可能不变冷。

如果天气要下雨,出门时带上雨伞;如果天气变冷,出门时要穿上大衣。

4.对下列子程序进行调试:procedure example(y,z: real; var x: real)beginif (y>1) and (z=0) then x:=x/y;if (y=2) or (x>l) then x:=x+l;end.该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。

软件工程案例教程答案

软件工程案例教程答案

第一章1.下列所述不是软件特点的是(A)A.软件是有形的B.软件不存在磨损和消耗问题C.软件开发成本高D.软件没有明显的制作过程 C)2.软件工程的出现主要是由于(计算机的D.C.B.其他工程学科的影响软件危机的出现 A.程序设计方法学的影响发展)不是软件危机的表现形式3.以下(C开发的软件价格便宜C.A.开发的软件不满足用户的需要 B.开发的软件可维护性差D.开发的软件可靠性差4.软件工程的目的是(C)A.建造大型的软件系统B.开发的软件可维护性差C.软泥吉安质量的保证D.研究软件开发的远离)5.下列所述不是软件组成的是(D 文档界面 D. A.程序B.数据 C. 下列对“计算机软件”描述正确的是(A)6.是在计算机硬件设备生产过 C.是计算机系统的组成部分A. B.不能作为商品参加交易程中生产出来的 D.之存在语计算机系统工作时7.软件工程的方法的产生源于软件危机,下列(D)是产生软件危机的内在原因A.软件的复杂性B.软件维护困难 C软件成本太高. D.软件质量难保证8.软件工程方法的提出源于软件危机,其目的应该是最终解决软件的(D)问题A.软件危机B.质量保证C.开发效率D.生产工程化9.软件工程学中除重视软件开发的研究外,另以重要组成内容是软件的(A)和过程改进A.项目管理B.成本核算C.人员培训D.工具开发10.软件工程设计软件开发技术和项目管理等方面内容,下述内容中(D)不属于开发技术的范畴软件工程经济D. 软件工程环境C. 软件开发工具B. 软件开发方法A.二、填空题1.软件工程的目的是成功的建造大型的软件系统,主要内容是开打软件开发技术、软件项目管理和软件质量管理。

2.螺旋式开发模型主要是针对风险比较大的项目而设计的3.由于软件产生的复杂性和高成本,使大型软件产生出了很多问题,即出现软件危机,软件工程正是为了克服它而提出的一种概念及相关方法和技术。

4.增量模型假设需求可以分段,成为一系列增量产品,每一增量可以分别开发。

软件工程习题解答(含基本章节应试例子以及一个UML案例)

软件工程习题解答(含基本章节应试例子以及一个UML案例)

软件⼯程习题解答(含基本章节应试例⼦以及⼀个UML案例)软件⼯程习题解答⼀、软件⽣存周期各阶段的基本任务?1. 问题定义:(1)回答要解决的问题是什么。

(2)系统分析员应该提出关于问题性质、⼯程⽬标和规模的书⾯报告。

(3)经过和⽤户讨论,澄清含糊不清的地⽅,改正理解不正确的地⽅,得出⼀份双⽅都满意的⽂档。

(4)问题定义是软件⽣命周期中最简短的阶段。

2.可⾏性研究:(1)前⼀阶段定义的问题有可⾏的解决办法吗?(2)系统分析员要进⾏⼀次⼤⼤压缩和简化了的系统分析和设计。

导出⾼层逻辑模型(⽤数据流图表⽰)。

确定⼯程规模和⽬标,准确估计系统的成本和效益。

(3)使⽤部门的负责⼈根据可⾏性研究的结果决定是否继续进⾏该⼯程的开发⼯作。

3.需求分析:(1)主要确定⽬标系统必须具备哪些功能。

(2)系统分析员和⽤户密切配合,充分交流,得出经⽤户确认的系统逻辑模型(数据流图、数据字典、算法描述)。

4.总体设计:(1)回答如何解决问题。

(2)系统分析员应使⽤系统流程图或其他⼯具描述每种可能系统;估计每种⽅案的成本和效益。

推荐⼀较好的系统──有其详细计划。

设计软件的结构(⽤层次图或结构图描述)。

5.详细设计:(1)回答应该怎样具体地实现这个系统。

(2)设计出程序的详细规格说明(⽤HIPO层次图加输⼊/处理/输出图)或PDL语⾔(过程设计语⾔)。

6.编码和单元测试:(1)写出正确的容易理解,容易维护的程序模块。

(2)程序员:选取⼀种适当的⽤⾼级语⾔书写程序(或汇编语⾔)。

仔细测试编写出的每⼀个模块。

7.综合测试:(1)通过各种类型的测试,使软件达到预定的要求。

(2)最基本的测试是集成测试和验收测试⽅法。

集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配的过程中对程序进⾏必要的测试。

验收测试是按照需求规格说明书的规定,由⽤户对⽬标系统进⾏验收。

(3)⽤正式⽂档将测试计划、详细测试⽅案以及实际测试结果保存。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第1章习题答案一、判断题二、填空题三、简答题1.软件的特点:①软件具有抽象性。

②软件与硬件的生产方式不同。

③软件与硬件的维护方式不同。

④软件具有复杂的逻辑性。

⑤软件的成本较高。

⑥软件的使用和社会因素有关。

2.软件危机产生的原因:①用户需求不明确。

②缺乏正确的理论指导。

③软件开发规模越来越大。

④软件开发复杂度越来越高。

3.软件危机的主要表现:①软件开发进度难以预测。

②软件开发成本难以控制。

③用户对产品功能难以满足。

④软件产品质量无法保证。

⑤软件产品难以维护。

⑥软件缺少适当的文档资料。

4.软件工程学的基本原则有哪些:①抽象。

②信息隐蔽。

③模块化。

④局部化。

⑤确定性。

⑥一致性。

⑦完备性。

⑧可验证性。

5 什么是软件的生命周期?答案:软件与任何一个事物一样,有它的孕育、诞生、成长、成熟、衰亡的生存过程。

这就是软件的生存周期。

6 软件工程过程有哪几个基本过程活动?试说明之。

答案:软件工程过程的基本过程活动有4步:①软件规格说明(需求定义)。

规定软件的功能及其运行的限制;②软件设计与开发(设计开发)。

产生满足规格说明的软件;③软件确认(测试)。

确认软件能够完成客户提出的要求;④软件演进(维护)。

为满足客户的变更要求,软件必须在使用的过程中演进。

四、综合题1.详细说明软件生命周期分哪几个阶段?答案:软件生命周期主要分为6个阶段:软件项目计划、软件需求分析和定义、软件设计、程序编码、软件测试,以及运行维护。

(1)软件项目计划:在这一步要确定软件工作围,进行软件风险分析,预计软件开发所需要的资源,建立成本与进度的估算。

根据有关成本与进度的限制分析项目的可行性。

(2)软件需求分析和定义:在这一步详细定义分配给软件的系统元素。

可以用以下两种方式中的一种对需求进行分析和定义。

一种是正式的信息域分析,可用于建立信息流和信息结构的模型,然后逐渐扩充这些模型成为软件的规格说明。

另一种是软件原型化方法,即建立软件原型,并由用户进行评价,从而确定软件需求。

(3)软件设计:软件的设计过程分两步走。

第一步进行概要设计,以结构设计和数据设计开始,建立程序的模块结构,定义接口并建立数据结构。

此外,要使用一些设计准则来判断软件的质量。

第二步做详细设计,考虑设计每一个模块部件的过程描述。

经过评审后,把每一个加细的过程性描述加到设计规格说明中去。

(4)程序编码:在设计完成之后,用一种适当的程序设计语言或CASE工具生成源程序。

应当就风格及清晰性对代码进行评审,而且反过来应能直接追溯到详细设计描述。

(5)软件测试:单元测试检查每一单独的模块部件的功能和性能。

组装测试提供了构造软件模块结构的手段,同时测试其功能和接口。

确认测试检查所有的需否都得到满足。

在每一个测试步骤之后,要进行调试,以诊断和纠正软件的故障。

(6)软件维护:为改正错误,适应环境变化及功能增强而进行的一系列修改活动。

与软件维护相关联的那些任务依赖于所要实施的维护的类型。

2.试论述瀑布模型软件开发方法的基本过程。

答案:瀑布模型规定了各项软件工程活动,包括:制定软件项目计划,进行需求分析和定义,软件设计,程序编码,测试及运行维护。

并且规定了它们自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落。

然而软件开发的实践表明,上述各项活动之间并非完全是自上而下,呈线性图式。

实际情况是,每项开发活动均应具有以下特征:(1)从上一项活动接受本项活动的工作对象,做为输入;(2)利用这一输入实施本项活动应完成的容;(3)给出本项活动的工作成果,做为输出传给下一项活动;(4)对本项活动实施的工作进行评审。

若其工作得到确认,则继续进行下一项活动,否则返回前项,甚至更前项的活动进行返工。

第2章习题答案一、判断题二、选择题三、填空题四、简答题1可行性研究主要做4个方面的研究:①经济可行性:进行成本∕效益分析。

从经济角度判断系统开发是否“合算”。

②技术可行性:进行技术风险评价。

从开发者的技术实力、以往工作基础、问题的复杂性等出发,判断系统开发在时间、费用等限制条件下成功的可能性。

③法律可行性:确定系统开发可能导致的任何侵权、妨碍和责任。

④方案的选择:评价系统或产品开发的几个可能的候选方案。

最后给出结论意见。

2需求获取难的原因是:①用户需求具有动态性(不稳定性)。

②用户需求具有模糊性(不准确性)。

③对需求达成一致的艰难性。

④管理体制、机构设置处在变革中。

⑤软件书籍没有将需求分析讲清楚。

3.需求分析的原则:①解决逻辑问题:需求分析是对问题的识别和说明,要回答“做什么”,而不是“怎么做”。

②以运行环境为基础:需求分析工作应以具体的运行环境为基础,实事。

③用户参与的原则:需求分析工作是系统分析人员同用户不断交互的过程。

④构造高质量的需求规格说明:需求规格说明是需求分析工作重要的完成标志。

4.需求分析的任务有:①画出目标系统的组织机构模型。

②画出目标系统业务操作流程图。

③画出目标系统的数据流图。

④列出目标系统的功能点列表,即功能模型。

⑤列出系统的性能点列表,即性能模型。

⑥列出目标系统的接口列表,即接口模型。

⑦确定目标系统的运行环境,即环境模型。

⑧目标系统的界面约定,即界面模型。

⑨分析与评估开发工期、费用、进度、风险等。

5数据流图的作用:数据流图可以用来抽象地表示系统或软件。

它从信息传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程,同时可以按自顶向下、逐步分解的方法表示容不断增加的数据流和功能细节。

因此,数据流图既提供了功能建模的机制,也提供了信息流建模的机制,从而可以建立起系统或软件的功能模型。

6数据词典的作用:分析模型中包含了对数据对象、功能和控制的表示。

在每一种表示中,数据对象和控制项都扮演一定的角色。

为表示每个数据对象和控制项的特性,建立了数据词典。

数据词典精确地、严格地定义了每一个与系统相关的数据元素,并以字典式顺序将它们组织起来,使得用户和分析员对所有的输入、输出、存储成分和中间计算有共同的理解。

第3章习题答案一、判断题二、选择题三、填空题四、简答题1.模块的基本属性:①功能:描述该模块做什么?②逻辑:描述模块部怎么做?③状态:模块使用时的环境和条件。

④接口:指模块的输入与输出。

2.软件设计的具体任务:①制定规②结构设计③处理方式结构设计④数据结构及数据库设计⑤可靠性设计(质量设计)⑥编写软件设计文档⑦设计审查和复审⑧详细设计3.模块化的特征:①抽象:用层次的方式构造和分析复杂系统。

②逐步求精:帮助开发人员把精力集中在与当前开发阶段最相关的那些问题上。

③信息隐蔽:如果一个模块包含的信息(过程和数据) 不允许外部的模块访问的话,其它模块不能对其访问。

④局部化:把一些关系密切的软件元素物理地放得彼此靠近。

4.软件设计优化的准则:①划分模块时,尽量做到高聚、低耦合,保持模块相对独立性。

模块划分的准则:“将相关的各部分放在一起,无关的东西不要放在一起。

”②模块的大小要适中。

③模块的接口要简单、清晰、含义明确,便于理解,易于实现、易于测试和维护。

④一个模块的作用围应在其控制围之,且判定所在的模块,应与受其影响的模块在层次上尽量靠近。

⑤软件结构的深度、宽度、扇入、扇出应适当。

⑥力求设计单入口和单出口的模块,避免“病态连接”,以防止容耦合。

⑦设计功能可预测模块的划分,应防止功能过分局限。

5.结构化设计的优点:①减少设计复杂性。

将大化小,使复杂问题简单化。

②结构独立。

将程序划分成多个相对独立的模块。

③模块功能单一化,可使软件设计获得最大的益处。

④易于进行软件修改。

⑤易于开发和维护。

⑥加强了代码的可重用性。

五、综合题1.③、⑤、④、②、⑥、⑦、①2.③、⑥、④、⑦、②、⑤、①第4章习题答案一、填空题二、简答题1.面向对象是:Coad和 Yourdon给出的定义:“面向对象(Object Oriented,OO)=对象(Object)+类(Classification)+继承(Inheritance)+通信(Communication with Messages)”。

2.面向对象基本特征是:面向对象技术的基本特征主要是抽象性、封装性、继承性和多态性。

3.软件开发过程指:软件开发过程就是将软件系统所涉及到的应用领域和业务围(现实世界)的问题空间和用于解决某些问题的软件系统的解空间之间的映射。

4.传统软件开发方法存在的问题:(1)问题空间不能直接映射到解空间(2)软件复用程度低(3)分析不能直接过渡到设计(4)软件可维护性差(5)软件不满足用户需要5.面向对象开发方法的特点:(1)对软件开发过程所有阶段进行综合考虑。

(2)软件生存期各阶段所使用的方法、技术具有高度的连续性,用符合人类认识世界的思维方式来分析、解决问题。

(3)增强系统稳定性(4)具有良好的可复用性6.统模语言:UML是具有指定的建模元素(图式符号),严格的语法(构图规则),明确的语义(逻辑含义)的建模语言,是面向对象技术领域占主导地位的标准建模语言。

7.Coda/Yourdon方法的面向对象设计模型:Coda/Yourdon方法的OOD模型是在OOA模型5个层次(主题层、类与对象层、结构层、属性层和服务层)基础上,建立4个组元的设计模型:问题域组元(PDC)、人机交互组元(HIC)、任务管理组元(TMC)和数据管理组元(DMC)。

8.简述UML视图结构:(1)用例视图:描述系统的外部特性、系统功能等。

(2)逻辑视图:描述系统设计特征。

(3)进程视图:表示系统部的控制机制。

(4)配置视图:描述系统的物理配置特征。

(5)实现视图:表示系统的实现特征,常用构件图表示。

三、综合题1.类、属性、操作、继承、多态、封装及抽象类的概念:(举例略)1)类,又称对象类(Object Class),是一组具有相同属性和相同操作的对象的集合。

2)类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。

3)类具有操作,它是对象的行为的抽象,操作实现的过程称为方法。

4)继承是类间的基本关系,它是基于层次关系的父类和子类之间共享数据和操作的一种机制。

5)多态是指同一个操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果。

6)封装是一种信息隐蔽技术,用户只能看见对象封装界面上的信息,对象的部实现对用户是隐蔽的。

7)抽象类是没有实例的类,它把一些类组织起来,提供一些公共的行为,但并不需要使用这个类的实例,而仅使用其子类的实例。

2.面向对象开发方法及每个方法的特点:(1)Booch方法Booch方法描述了面向对象的软件开发方法的基础问题,指出面向对象开发是一种根本不同于传统的功能分解的设计方法。

Booch方法的开发模型包括静态模型和动态模型,Booch方法偏向于系统的静态描述,对动态描述支持较少。

(2)Coda/Yourdon方法在Coda/Yourdon方法中,对于一个复杂问题建立问题域的分析模型,构造和评审OOA概念模型的顺序由5个层次组成,OOD模型是在OOA模型5个层次基础上,建立4个组元的设计模型。

相关文档
最新文档