文档库 最新最全的文档下载
当前位置:文档库 › 软件工程复习资料

软件工程复习资料

软件工程复习资料
软件工程复习资料

1、下列哪一模型是软件的基础模型

A.瀑布模型

B.快速原型

C.增量模型

D.螺旋模型

2、划分软件生存周期的阶段时所应遵循的基本原则是

A.各阶段的任务尽可能相对独立

B.各阶段的任务在时间上连续

C.各阶段的任务尽可能相关性

D.各阶段的任务在时间上相对独立

3、下列哪个办法不属于解决软件危机的途径之一

A.采用软件工程的解决途径

B.研制新一代智能计算机

C.采用面向对象的软件设计方法

D.大力扶持软件企业

4、下列哪个不属于软件工程的内涵之一

A.扶持培养软件高手的学院

B.开发既可靠又能有效运行的软件

C.应用完善的科学与工程原理

D.经济地开发软件

5.造成大型软件开发困难的根本原因在于

A.开发人员缺乏足够的开发经验

B.项目开发进度不合理

C.软件系统的复杂性

D.对软件开发的资金投入不足

6.软件会逐渐退化而不会磨损,其原因在于

A.软件备件很难订购

B.不断的变更使组件接口之间引起错误

C.软件错误在经常使用之后会逐渐增加

D.软件通常暴露在恶劣的环境下

7.下面说法正确的是

A.大多数软件系统是不容易修改的,除非它们在设计时考虑了变化

B.由于软件是产品,因此可以应用其他工程制品所用的技术进行生产

C.一般来说,软件只有在其行为与开发者的目标一致的情况下才能成功

D.购买大多数计算机系统所需的硬件比软件更昂贵

8.Ariane 5火箭发射失败的事例告诉我们

A.(2)软件后备系统可以通过复制生成

B.(3)软件重用必须重新进行系统论证和系统测试

C. 选项(1)和(3)

D.(1)系统环境的变化可能影响软件采集数据的精度、范围和对系统的控制

9.软件危机的主要原因是

A.软件本身的特点及开发方法。

B.软件工具落后。

C.软件生产能力不足。

D.对软件的认识不够。

10.下面的描述正确的是

A.软件质量是在开发过程中逐渐构建起来的。

B.软件质量是由产品的功能、性能、易用性等外在特性决定的。

C.运行正确的软件就是高质量的软件。

D.软件产品质量越高越好,最理想的情况是达到“零缺陷”。

11、可行性研究主要包括哪几项?

A.技术可行性、经济可行性和操作可行性

B.技术可行性、经济可行性和道德可行性

C.技术可行性、法律可行性和操作可行性

D.技术可行性、操作可行性和法律可行性

12、成本/效益分析的目的是帮助()正确地作出是否投资于这项开发工程的决定。

A.系统分析员

B.客户组织的负责人

C.项目经理

D.软件开发人员

13、在进行成本/效益分析的时候,需要考虑()

A.开发成本

B.运行费用

C.系统带来的经济效益

D.系统使用寿命

14、数据流图和数据字典共同定义了新系统的逻辑模型。

A.错

B.正确

15、可行性研究可行性研究需要的时间长短和所研究系统的规模关系不大。

A. 正确

B.错误

16、把可行性研究各个步骤的工作结果写成清晰的文档,请用户、客户组织的负责人及评审组审查,以决定是否继续这项工程及是否接受分析员推荐的方案。

A.正确

B.错误

17、结构化分析方法遵守的准则之一——定义软件需要完成的功能,需要建立的模型是

A.功能模型

B.数据模型

C.行为模型

D.动态模型

18、下列叙述中,()不属于数据字典的作用。

A.为用户与开发人员之间统一认识

B.为需求分析阶段定义各类条目

C.作为概要设计的依据

D.作为编码阶段的描述工具

19、分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的()。

A.总貌

B.软件的作者

C.细节

D.抽象

20、结构化分析方法以数据流图、()和加工说明等描述工具,即用直观的图和简洁的语言来描述软件系统模型。

A.PAD图

B.IPO图

C.DFD图

D.数据字典

21、不适于作为数据流图处理(加工)框名称的是()。

A.打印工资支票

B.工资支票数据

C.人工校核工资数据

D.计算职工工资

22、需求分析过程中,分析员是()。

A.用户和软件人员的中间人

B.用户和软件人员的领导

B. C.软件的编程人员 D.用户中系统的直接使用者

23、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于下列哪个系统。

A.管理信息

B.决策支持

C.需求不确定的

D.需求确定的

24、数据字典是用来定义下列哪个选项中的各成分的具体含义的。

A.功能结构图

B.数据流图

C.流程图

D.系统结构图

25、下列哪一项不是用来获取用户需求的。

A.与业务人员进行访谈

B.绘制时序图

C.发放调查问卷

D.绘制数据流图

26、获取用户需求的时候,定义数据流图中包含的元素使用下列哪一项进行描述?

A.数据字典

B.实体关系图

C.系统流程图

D.IPO图

27、数据流图的四个基本符号是下列哪一组。

A.数据源点,处理,数据存储,数据流

B.数据源点,数据终点,处理,数据存储

C.外部实体,处理,数据终点,数据流

D.外部实体,数据存储,处理,数据流

28、下列哪一项的作用是“用来明确系统和环境的界限”的?

A.数据终点

B.数据存储

C.外部实体

D.数据流

29、数据流图中的处理必须有流入的数据流和流出的数据流。

A.正确

B.错误

30、可行性研究可行性研究需要的时间长短和所研究系统的规模关系不大。

A.错误

B.正确

31、把可行性研究各个步骤的工作结果写成清晰的文档,请用户、客户组织的负责人及评审组审查,以决定是否继续这项工程及是否接受分析员推荐的方案。

A.正确

B.错误

32、一个软件项目是否进行开发的结论是在可行性报告文档中作出。

A.错误

B.正确

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

A.错误

B.正确

34、数据流图中的数据流可以从外部实体直接到数据存储。

A.错误

B.正确

35、同一个外部实体只能在一张数据流程图中出现一次。

A.正确

B.错误

36、处理又称功能,表示对数据进行的操作。

A.正确

B.错误

37、下列耦合关系中,模块之间最差的耦合是( )

A.控制耦合

B.内容耦合

C.数据耦合

D.公共耦合

38、一组模块均与同一外部环境关联,并受到约束时,这种耦合称之为()

A.外部耦合

B.数据耦合

C.控制耦合

D.数据耦合

39、如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称之为()

A.过程内聚

B.顺序内聚

C.功能内聚

D.通信内聚

40、在结构图中,将上级模块获得的数据,经过处理,再传给下属模块的模块是()

A.加工模块

B.协调模块

C.传出模块

D.传入模块

41、耦合是影响软件复杂程度的一个重要因素。应该采取下述分哪些设计原则()

A.尽量使用数据耦合

B.限制公共环境耦合的范围

C.偶尔可以使用内容耦合

D.少用控制耦合和特征耦合

42、在考虑模块内聚时的设计原则是()

A.应该力求做到模块的高内聚

B.通常中等程度的内聚(通信、过程)也是可以采用的

C.对于地内聚的模块可以考虑进行模块分割

D.低内聚(偶然、逻辑、时间)建议不要使用

42、局部化的概念和信息隐藏概念是密切相关的。

A.错误

B.正确

43、程序流程图中表示分支的图形是()。

A.矩形

B.平行四边形

C.圆角矩形

D.菱形

44、下列哪一项既可用于表示程序逻辑,也可用于描绘数据结构。()

A.流程图

B.判定表

C.PAD图

D.盒图

45、在结构化程序设计当中,不建议使用()

A.循环语句

B.子程序调用语句

C.转向语句

D.分支语句

46、下面哪个不属于良好的人机界面设计原则?()

A.力求用户输入量最少

B.具有帮助功能

C.为不同的用户和功能提供一致的界面服务

D.系统的全部界面格式和风格一致

47、当模块中包含复杂的条件组合,下列哪一项能够清晰地表达出各种动作之间的对应关系。()

A.流程图

B.盒图

C.关系图

D.判定表和判定树

48、流程图中的矩形表示()

A.处理

B.输入输出

C.分支

D.开始

49、判定表由四部分组成,右下部列出的是下列哪一项()

A.条件组合与动作之间的对应关系

B.所有条件

C.所有可能的动作

D.可能的条件组合

50、下列关于伪码的描述,哪个是不准确的?()

A.描述复杂的条件组合与动作间的对应关系时,不如判定表清晰简单;

B.可以嵌入在源程序中一起作为程序文档;

C.利用伪码可自动生成程序代码。

D.伪码和图形工具一样形象直观;

51、不允许违背结构程序设计精神的图形工具有以下哪些选项?( )

A.盒图

B.流程图

C.PAD图

D.判定表

52、在同一用户界面中,所有的菜单选择、命令输入、数据显示和其他功能应采用不同的形式和风格。

A.错误

B.正确

52、软件设计也可看作将需求规格说明逐步转换为软件源代码的过程。

A.错误

B.正确

53、判定表的右上部是表示各种条件组合的一个矩阵。

A.正确

B.错误

54、盒图的功能域明确,可以从图上一眼就看出来。

A.正确

B.错误

55、PAD图的符号不支持自顶向下、逐步求精方法的使用。

A.正确

B.错误

56、程序流程图中表示分支的图形是()。

A.菱形

B.矩形

C.圆角矩形

D.平行四边形

57、下列哪一项既可用于表示程序逻辑,也可用于描绘数据结构。()

A.PAD图

B.盒图

C.流程图

D.判定表

58、在结构化程序设计当中,不建议使用()

A.分支语句

B.转向语句

C.子程序调用语句

D.循环语句

59、下面哪个不属于良好的人机界面设计原则?()

A.具有帮助功能

B.系统的全部界面格式和风格一致

C.力求用户输入量最少

D.为不同的用户和功能提供一致的界面服务

60、当模块中包含复杂的条件组合,下列哪一项能够清晰地表达出各种动作之间的对应关系。()

A.判定表和判定树

B.盒图

C.关系图

D.流程图

61、流程图中的矩形表示()

A.分支

B.处理

C.开始

D.输入输出

62、判定表由四部分组成,右下部列出的是下列哪一项()

A.所有条件

B.所有可能的动作

C.条件组合与动作之间的对应关系

D.可能的条件组合

63、下列关于伪码的描述,哪个是不准确的?()

A.利用伪码可自动生成程序代码。

B.可以嵌入在源程序中一起作为程序文档;

C.伪码和图形工具一样形象直观;

D.描述复杂的条件组合与动作间的对应关系时,不如判定表清晰简单;

64、不允许违背结构程序设计精神的图形工具有以下哪些选项?( )

A.流程图

B.PAD图

C.判定表

D.盒图

65、在同一用户界面中,所有的菜单选择、命令输入、数据显示和其他功能应采用不同的形式和风格。

A.错误

B.正确

66、软件设计也可看作将需求规格说明逐步转换为软件源代码的过程。

A.错误

B.正确

67、判定表的右上部是表示各种条件组合的一个矩阵。

A.正确

B.错误

68、盒图的功能域明确,可以从图上一眼就看出来。

A.错误

B.正确

69、PAD图的符号不支持自顶向下、逐步求精方法的使用。

A.错误

B.正确

70、下列属于维护阶段的文档是( )

A.用户操作手册

B.软件问题报告

C.软件测试分析报告

D.软件规格说明

71、下列哪项不是维护的代价?( )

A.维护费用高

B.引发用户不满

C.影响新项目开发

D.降低可重用性

72、下面说法正确的是()。

A.成功的测试是发现了迄今尚未发现的错误的测试

B.成功的测试是没有发现错误的测试

C.经过测试没有发现错误说明程序正确

D.测试的目标是为了证明程序没有错误

73、单元测试时,调用被测模块的是()。

A.桩模块

B.通信模块

C.代理模块

D.驱动模块

74、软件测试过程中的系统测试主要是为了发现()阶段的错误。

A.详细设计

B.需求分析

C.编码

D.概要设计

75、软件测试是按照特定的规程,___________的过程。

A.设计并运行测试用例

B.说明程序正确

C.证明程序没有错误

D.发现软件错误

76、以程序的内部结构为基础的测试用例技术属于()。

A.灰盒测试

B.白盒测试

C.黑盒测试

D.数据测试

77、为了提高测试的效率,正确的做法是()。

A.随机选取测试用例

B.在完成程序的编码之后再制定软件的测试计划

C.使用测试用例测试是为了检查程序是否做了应该做的事

D.选择发现错误可能性大的数据作为测试用例

78、有一组测试用例使得每一个被测试用例的分支覆盖至少被执行一次,它满足的覆盖标准___________。

A.路径覆盖

B.条件覆盖

C.判定覆盖

D.语句覆盖

79、软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?

A.单元测试

B.确认测试

C.目的测试

D.集成测试

80、编码阶段产生的错误由__________检查出来的。

A.单元测试

B.集成测试

C.系统测试

D.有效性测试

81、白盒测试不仅与程序的内部结构有关,还要考虑程序的功能要求。

A.错误

B.正确

82、黑盒测试的测试用例是根据程序内部逻辑设计的。

A.正确

B.错误

83、为了快速完成集成测试,采用一次性集成方式是适宜的

A.错误

B.正确

84、在设计测试用例时,应包括合理的输入条件和不合理的输入条件。

A.错误

B.正确

85、汽车有一个发动机,因而汽车与发动机之间的关系是()关系

A.is a 关系

B.分类关系

C.一般与特殊

D.整体与部分

86、时序图反映对象之间发送消息的时间顺序,它与()是同构的。

A.类图

B.协作图

C.用例图

D.活动图

87、封装的的作用是()。

A.实例

B.复用

C.对象

D.方法

88、软件部件的内部实现与外部可访问性的分离,是指软件的()。

A.封装性

B.继承性

C.共享性

D.抽象性

89、关于用例的概念,下列说法不正确的是()。

A.用例是一个连贯的功能性单元

B.可以借助状态转换图来描述用例

C.用例是通过Actor确认的

D.用例是一个类,而不是事件

90、模型表示对象的相互行为的模型是()。

A.分析

B.动态

C.对象

D.功能

91、面向对象模型主要由以下哪些模型组成()

A.对象模型、动态模型、功能模型

B.对象模型、动态模型、数据模型

C.数据模型、动态模型、功能模型

D.对象模型、数据模型、功能模型

92、面向对象的主要特征除对象惟一性、封装、继承外,还有( )

A.完整性

B.多态性

C.兼容性

D.可移植性

93、用例之间是具有相关性的。在一个“订单输入子系统”中,创建新订单和更新订单都需要检查用户帐号是否正确。那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是()关系。

A.包含(include)

B.分类(classification)

C.聚集(aggregation)

D.扩展(extend)

94、在考察系统的一些涉及时序和改变的状况时,要用动态模型来表示。

动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图,另一个是( )

A.数据流图

B.状态图

C.系统结构图

D.用例图

95、面向对象方法=对象+类+继承+( 用消息通信 )

96、在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是(关联)关系。

97、父类和子类之间共享数据结构和消息的机制是( 继承性 )。

98、(用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。

99、结构化设计的目标是_______

A.建立系统软件模型

B.建立软件体系结构和详细的处理算法

C.产生设计规格说明书

D.以上全部

100、结构化设计一般又可分为概要设计阶段和____详细___设计阶段。

101、总体设计不包括_______

A.体系结构设计

B.接口设计

C.数据设计

D.数据结构设计

102、模块结构图中,如果两个模块之间有直线连接,表示他们之间存在______关系

A.调用

B.组成

C.连接

D.顺序执行

103、关于总体设计阶段的任务,以下说法错误的是______

A.主要任务是将DFD转为MSD

B.针对不同类型的DFD有不同的设计方法

C.精化MSD不属于总体设计阶段的任务

D.根据穿越系统边界的数据流确定系统与外界的接口

104、获取正确软件的关键是()

A.开发逻辑

B.开发团队

C.人员素质

D.明确需求

105、软件生存周期的含义是表明软件的演化和发展具有周期性,每过一段时间就需要更新。

A.正确

B.错误

106、当软件的一个版本被淘汰时,则该软件的生存周期就结束了。

A.正确

B.错误

107、软件生存周期过程表示软件生存周期内的一个过程。

A.正确

B.错误

108、为了表述软件开发需要做什么映射,引入了三个概念:(过程活动任务)109、软件工程概念的提出是为了解决(软件危机)。

110、在()年的NATO会议上,软件工程的术语被首次提出。

A.1966

B.1968

C.1970

D.1972

111、软件工程的目的是倡导以工程的原理、原则和方法进行软件开发。

A.正确

B.错误

112、软件工程是一门交叉性学科,下列哪些学科是软件工程涉及的?

A.数学

B.计算机科学

C.管理科学

D.工程科学

113、需求规约是一个软件产品/系统的()

A.开发模型

B.框架模型

C.概念模型

D.功能模型

114、需求规约是一个软件产品所有需求陈述的正式文档,它是不能被修改的。A.正确 B.错误

115、下列哪些不是需求规约的性质。()

A.完整性

B.一致性

C.不可修改性

D.稳定性

116、非功能需求必须依附于功能需求而存在。

A.正确

B.错误

117、下列需求属于性能需求的是()

A.并发访问数

B.网络协议

C.异常响应

D.用户友好

118、下列需求属于外部接口需求的是()

A.第三方插件

B.安全隐私

C.编程语言

D.字体字号

119、下列需求属于设计约束的是()

A.响应时间

B.运行平台

C.错误处理

D.可维护

120、与其他类型的非功能需求不同,(设计约束)是必须予以满足的,且对项目规划、所需的附加成本和工作产生直接影响。

121、质量属性必须要给出量化的测量指标。

A.正确

B.错误

122、当无法与用户进行直接交流时,可采用()的需求发现方式。

A.自悟

B.提炼

C.小组会

D.思考

123、下列哪些是观察这一需求发现的方法可能带来的问题。()

A.无法全面了解需求

B.被客户抵触

C.让客户误以为开发者已经熟悉了业务

D.消耗过多的时间

124、小组会和交流这两种需求发现方式的区别在于参加人员的多少。

A.正确

B.错误

125、需求发现常采用多种方式联合进行,但具体某一项需求常采用某一种具体的方式去捕获。

A.正确

B.错误

126、下述情况分别最适合采取哪种需求发现的方式()

①为解决生活中遇到的麻烦事而开发的软件

②有较多繁琐环节的社区医保系统的开发

③某小型团体组织开发其内部人员管理系统

④某大型连锁集团开发集团人员管理系统

⑤某专业化软件外包公司接手烂尾的软件开发项目

A.①-自悟;②-观察;③-交流;④-小组会;⑤-提炼

B.①-观察;②-自悟;③-小组会;④-交流;⑤-提炼

C.①-自悟;②-交流;③-观察;④-提炼;⑤-小组会

D.①-提炼;②-自悟;③-交流;④-观察;⑤-小组会

127、关于软件开发方法,以下说法正确的是

A.软件开发方法是指软件开发过程所遵循的办法和步骤

B.软件开发活动的目的是有效地得到一个运行的系统及其支持文档,并且满足有关的质量要求

C.软件开发方法学指的是规则、方法和工具的集成

D.以上说法都正确

128、结构化方法包括了

A.结构化分析方法

B.结构化项目管理方法

C.结构化设计方法

D.结构化程序设计方法

129、需求分析的目标不包括

A.解决需求陈述中的歧义、不一致的问题

B.作为开发人员和客户间技术契约的基础

C.给出解决问题的具体算法和数据结构

D.给出问题的形式化或半形式化的描述

130、结构化分析模型中,支持数据抽象的是哪些术语________

①数据流②数据存储③数据源④数据潭⑤加工

A.①②

B.③④

C.①②③④

D.③④⑤

131、在结构化分析方法中,与数据流图配合使用的是________

A.网络图

B.数据字典

C.程序流程图

D.加工小说明

132、结构化分析方法使用DFD描述________

A.系统的功能

B.系统的控制流程

C.系统的数据结构

D.系统的基本加工

133、结构化分析阶段,不适用于描述加工逻辑的工具是

A.结构化语言

B.判定表

C.判定树

D.流程图

简答题:

1、图书预订系统:书店向顾客发放订单,顾客将所填订单交由系统处理,系统首先依据图书目录对订单进行检查并对合格订单进行处理,处理过程中根据顾客情况和订单数目将订单分为优先订单与正常订单两种,随时处理优先订单,定期处理正常订单。最后系统根据所处理的订单汇总,并按出版社要求发给出版社。

画出图书预定系统的各层数据流图。

3、说明数据流图的作用和四种基本符号的名称、图形表示和含义。

数据流图简称DFD(,是SA方法中用于表示系统逻辑模型的一种工具.它以图形的方式描述数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型.数据流图有四种基本图形符号:“→”箭头表示数据流;“○”圆或椭圆表述加工;“=”双杠表示数据存储;“”方框表示数据的源点或终点

4、简述需求分析的概念及需求分析的基本任务。

需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。

需求分析的基本任务是要准确地定义新系统的目标,为了满足用户需要,回答系统必须“做什么”的问题。

5、什么叫模块化?设计一个系统时是否分的模块越多就越好?说明原因。

1.模块化就是把程序划分成可独立命名且独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。

2.不一定。当模块数目增加时每个模块的规模将减小,开发单个模块需要的成本(工作量)确实减少了,但是,随着模块数量增加,设计模块间接上所需要的工作量也将增加,根据这两个因素,得出设计一个系统时并不一定模块越多越好

6、说明模块化的两层含义

把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,这些模块集成起来构成一个整体,可以完成指定的功能以满足用户的需求。

模块是由边界元素限定的相邻程序元素的序列,而且有一个总体标识符代表它。模块是构成程序的基本构件。

过程、函数、子程序和宏等,都可作为模块。

面向对象方法学中的对象是模块,对象内的方法(或称为服务)也是模块

7、说明模块独立性的概念和衡量模块独立的标准

模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。

模块的独立性很重要:

第一,有效的模块化(即具有独立的模块)的软件比较容易开发出来。

第二,独立的模块比较容易测试和维护。

模块的独立程度可以由两个定性标准度量,分别是内聚和耦合。

内聚衡量一个模块内部各个元素彼此结合的紧密程度;

耦合衡量不同模块彼此之间互相依赖(连接)的紧密程度。

8、简要说明PAD图的优点

PAD图所描述的程序结构十分清晰。

用PAD图表现程序逻辑,易读、易懂、易记。

很容易将PAD图转换成高级程序语言源程序

既可用于表示程序逻辑,也可用于描述数据结构

PAD图的符号支持自顶向下、逐步求精方法的使用。

9、请使用PAD图和PDL语言描述在数组A(1)~A(10)中找最大数的算法

PDL语言

N=1

WHILE N<=10 DO

IF A(N)<=A(N+1) MAX =A(N+1);

ELSE MAX =A(N) ENDIF;

N=N+1;

ENDWHILE;

10、什么是集成测试,包括哪两种策略?

集成测试是测试和组装软件的系统化技术,主要目标是发现与接口的问题;由模块组装成程序时有两种方法,一种是渐增式方法,另一种是渐增式反法,当使用渐增式方式把模块结合到程序中去时,有自顶向下和自底向上两种集成策略

11、什么是软件测试,软件测试分为哪几个阶段。

软件测试:使用人工或自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异。软件测试一般分为4个阶段:单元测试、集成测试、系统测试、验收测试

11、在软件模型当中如何表达对象的整体性、关联性、交互性、继承性、多态性?

整体性:通过面向对象的封装class形式来体现

关联性:指一般关系和组成关系:(1)一般关系指主次关系、拥有关系、数量关系;(2)、整体部分关系是组合或聚合

交互性:用依赖关系,消息机制;

继承性:通过表达家族谱的泛化关系

多态性:通过重载、接口、抽象类

12、说明面向对象的特征?

(1)封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。(2)继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表达共性的方法。(3)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。(4)多态:多态是指允许不同类的对象对同一消息作出响应,多态性语言具有灵活,抽象,行为共享,代码共享的优势,很好地解决了应用程序函数同名问题

综合应用题

1、题目:在某大学学籍管理信息系统中,假设学生年龄的输入范围为16—40,则根据黑盒测试中的等价类划分技术,可以划分为几个有效等价类?几个无效等价类?分别是什么?试根据有效等价类和无效等价类测试用例设计的原则,设计相应的测试用例。

答:等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其他值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。

①有效等价类:是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。

②无效等价类:与有效等价类的定义恰好相反,指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。

对于本题,输入范围为16~40,所以这个区域内的为有效等价类,小于16或大于40的为无效等价类,即一个有效等价类,两个无效等价类。

2、用例建模

某网络学院决定开发一个管理所有学生和教师信息的交互式网络系统,其中网络学院人员包括学生、教师、管理员。该系统提供如下服务:

1)浏览学生信息:网络学院的任何人员,包括学生和老师,均可以浏览学院任何学生的信息,包括姓名、学号和专业名称。

2)浏览教师信息:网络学院的任何人,包括学生和老师,均可以浏览学院任何教师的信息,包括姓名、工号和职称。

3)登录:网络学院给每人一个账号。拥有授权帐号的学生和老师,可以使用系统提供的页面设置个人密码,并使用该帐号和密码

向系统注册。

4)修改个人信息:学生或老师向系统注册后,可以发送电子邮件或使用系统提供的页面,对个人信息进行修改。

5)删除个人信息:只有管理员才能删除相关人员的信息。

请完成下列问题?

(1)哪些是参与者?他们之间有什么关系?

(2)哪些是用例?

答案:

3、试用UML对新闻发布系统及相关的数据库系统进行分析和设计。

假设管理员可以在后台对新闻、评论、注册会员进行管理,并发布新闻;任何游客可以浏览新闻,浏览者注册后可以成为系统会员;注册会员可以发表新闻评论。新闻信息实体的主要属性主要包含标题(title)、内容(content)、发布日期(DateTime),主要操作有添加新闻(Addnews)、删除新闻(Delnews)、修改新闻(Modinews); 评论实体的主要属性包含新闻标识(ArticleID)、评论者名(UserName)和评论内容(body),主要操作有添加评论(AddRemark)、删除评论(DelRemark); 会员实体的主要属性有会员编号(MemberNo)、会员密码(Memberpsw)、会员名字(MemberName)、会员描述(MemberDesc)等,主要操作有登陆(Login);管理员实体的主要属性有管理员编号(AdmNo)、会员密码(Admpsw)、

会员名字(AdmName)等, 主要操作有添加用户(Adduser)、删除新闻(Deluser)。请完成下列工作:

(1)画出系统用例图;

(2)画出分析类图;

(3)画出“新闻管理”的活动图;

软件工程复习资料

软件概念:与计算机系统操作有关的程序、数据以及相关文档的完整集合 软件特点:逻辑实体、智力产品,制造即拷贝2无磨损和老化,不遵循“浴盆曲 线”,但存在退化问题3尚未摆脱手工方式,软件移植的需要,复杂(问题复杂性/ 程序结构复杂性),软件开发的性质如成本、进度、质量等难以估计控制,维护困难,可复用性软件分类:按功能:系统软件/支撑软件/应用软件2按工作方式:实时处理/分时/交互/批处理3按服务对象:项目 / 产品(定制 / 通用)4按失效影响:关键/ 非关键5规模:微型、小型、中型、大型、甚大型、极大型 软件危机的表现:软件开发成本和进度失控,维护代价高2用户不满意3软件 质量不可靠4软件不可维护 5无文档资料6 计算机系统中软件成本比重加大7软件开发生产率提高不能满足要求软件危机的原因软件的规模和复杂性2人类智力的局限性3协同工作的困难性4缺乏方法学和工具5用户描述不精确、二义、遗漏,双方理解有偏差缓解软件危机的途径组织管理、协同配合的工程2软件工程的理论模型、技术方法3软件工具 软件工程的三要素1过程:管理部分2方法:技术手段3工具:自动或半自 动地支持软件的开发和管理三要素的关系:相互关联与支持 软件生命周期:可行性研究-需求分析-概要设计-详细设计-实现-集成测试-确认 测试-使用与维护-退役 软件开发和测试活动之间的关系软件 开发和软件测试都是软件生命周期中的重要组成部分,软件测试是保证软件开发产物 质量的重要手段。测试是贯穿于整个开发流程了,而不是在编码完成才开始。 瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工 作,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。最终得到软件产品优点是使用时间最长、应用面比较广泛的开发模型2是其他一些开发模型的基础3当前一阶段完成后,只需要去关注后续阶段缺点不能适应用户需求的变化2到最后阶段才能得到可运行的软件版本适用场合:对于规模较小,软件需求较为稳定的项目,采用模型能够显著提高软件开发的质量和效率 演化模型(原型模型)演化模型是一种全局的软件(或产品) 生存周期模型。属于 迭代开发方法。该模型可以表示为:第一次迭代(需求->设计->实现->测试->集成)->反馈->第二次迭代(需求->设计->实现->测试->集成)->反馈->……优点:1支持需求的动态变化2有助于获取用户需求,便于用户对需求的理解3尽早发现软件中的错误缺点1需要为系统的每个新版本交付文档,不划算2新需求的不断增加,使系统结构退化,变更成本上升3不支持风险分析 螺旋模型1将瀑布模型与原型模型进行有机结合2增加风险分析步骤优点1支持 需求的动态变化2有助于获取用户需求,便于用户对需求的理解3尽早发现软件中的错误4支持风险分析,可降低或者尽早消除软件开发风险5适合于需求动态变化、开发风险较大的系统缺点建设周期长适用场合在需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。特别适合于大型复杂的系统 喷泉模型:软件复用与生命周期中多项开发活动集成,主要支持面向对象的开发 方法优点1软件系统可维护性较好2各阶段相互重叠,表明了面向对象开发方法各阶段间的交叉和无缝过渡3整个模型是一个迭代的过程,包括一个阶段内部的迭代和跨阶段的迭代4模型具有增量开发特性,即能做到“分析一点、设计一点、实现一点,测试一点”,使相关功能随之加入到演化的系统中5模型由对象驱动,对象是各阶段活动的主体,也是项目管理的基本内容6该模型很自然地支持软部件的重用缺点由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。 OO 为什么好oo 解决问题的思路是从现实世界中的客观对象入手,运用人类的 自然思维方式来构造软件系统,而传统的结构化方法从功能入手和信息工程化方法从信息入手。在面向对象方法中,把一切都看成是对象。OO 方法用类和对象作为系统的基本构成单位。对象对应问题域中的事物,其属性与操作刻画了事物的静态特征和动态特征,它们之间的继承关系、聚合关系、消息和关联如实地表达了问题域中事物之间实际存在的各种关系面向对象方法的特点(1)从现实世界中客观存在的事物出发来建立软件系统,强调直接以问题域中的事物为中心来思考问题、认识问题,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。这可以使系统直接映射问题域,保持问题域中事物及其相互关系的本来面貌(对象) (2)用对象的属性表示事物的状态特征;用对象的操作表示事物的动态特征(属性与操作)(3)对象的属性与操作结合为一体,成为一个独立的、不可分的实体,对外屏蔽其内部细节(封装)(4)对事物进行分类。把具有相同属性和相同操作的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例(分类)(5)复杂的对象可以用简单的对象作为其构成部分(聚集:一个(较复杂的)对象由其他若干(较简单的)对象作为其构成部分,称较复杂的对象为聚集,称较简单的对象为成分,称这种关系为聚集)(6)通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与操作,从而简化系统的构造过程及其文档,有利于复用(继承:特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承)(7) 类具有封闭性,把内部的属性和服务隐藏起来,只有公共的服务对外是可见的(类的封闭性)(8) 对象之间通过消息进行通讯,以实现对象之间的动态联系(消息)(9) 通过关联表达类之间的静态关系(关联) 自顶向下,逐步求精:从顶层开始逐层向下分解,直至系统的所有模块都小 到易于掌握为止 抽象从事物中舍弃个别的非本质的特征,而抽取共同的、本质特征的做法叫抽象。 过程抽象:将完成一个特定功能的动作序列抽象为一个函数名和参数表(模块)例: 比较字符串: int Compare (CString, CString)。数据抽象:将诸多数据对象的定义(描述)抽象为一个数据类型名,以后可通过该数据类型名来定义多个具有相同性质的数据对象例:Eg: 1, 2, 3,—>Integer ;软件工程书;人工智能书—>书类 封装把对象的属性和操作结合成一个独立的系统单位,并尽可能隐蔽对象的内部 细节。只是向外部提供接口,降低了对象间的耦合度使对象能够集中完整地描述并对应一个具体事物。意义:体现了独立性,使对象外部不能随意存取对象的内部数据,使其所含的信息对那些不需要这些信息的模块不可访问。对象的内部的修改对外部的影响很小,减少了修改引起的“波动效应”。公开静态的、不变的操作,而把动态的、易变的信息隐藏起来。 模块化将一个软件划分为一组具有相对独立功能的部件,每个部件称为一个模 块;当把所有的模块组装在一起时,便可获得满足用户需求的软件系统。为什么要进行模块化:模块化体现了“分而治之”的问题分析和解决方法。模块化的目的①进行功能分解,把复杂的大的功能划分成简单的小的子功能,尽量降低每个模块的成本。②尽量使每个模块间的接口不能太多,太多会使接口成本增加。兼顾二者可取得最佳的划分状态,确保软件总成本最低模块设计原则1信息隐藏2高内聚度(强)3低耦合度(松)什么是信息隐藏(1)模块应该设计得使其所含的信息(过程和数据)对那些不需要这些信息的模块不可访问(2)模块之间仅仅交换那些为完成系统功能所必须交换的信息信息隐藏的优点(1)支持模块的并行开发(设计和编码)(2)模块的独立性更好(3)便于系统功能的扩充(4)便于测试和维护,减少修改影响向外传播的范围模块化、信息隐藏,局部化是什么关系局部化与信息隐藏是一对密切相关的概念。局部化就是指将一些使用上密切相关的元素尽可能放在一起。对一个模块来说,局部化是期望模块所使用的数据尽可能是在模块内部定义的。因此,局部化意味着减少模块之间的联系,有助于实现模块之间的信息隐藏。在软件测试和维护期间经常需要修改一些模块的内容。信息隐藏和局部化降低了模块之间的联系,使得在修改一个模块时对其他模块的影响降到最低。“隐藏”的意思是,有效的模块化通过定义一组相互独立的模块来

软件工程重点整理

软件工程重点 (吐血整理——林新发) 红色的是重点中的重点 前面数字是课本页码 第一章概论 1 什么是计算机软件 计算机软件指计算机系统中的程序及其文档 3软件的特点 (1)软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算 (2)软件是被开发的或被设计的,它没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大 (3)软件的使用没有硬件那样的机械磨损和老化问题 4软件的分类 (1)系统软件(如操作系统、编译程序等)、 (2)支持软件(如数据库管理系统、网络软件、软件开发环境等)、 (3)应用软件(如实时软件、嵌入式软件、科学和工程计算软件、事务处理软件、人工智能软件等) 6软件工程定义 软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程 7生存周期 软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存周期 软件生存周期大体可分为如下几个活动:计算机系统工程、需求分析、设计、编码、测试、运行和维护 12能力成熟度模型CMM(了解一下) 初始级、可重复级、已定义级、已管理级、优化级 18瀑布模型(重) 系统工程、需求分析与规约、设计与规约、编码与单元测试、集成测试系统测试、运行与维护 第二章系统工程 41系统工程的任务 (1)识别用户的要求,确定待开发软件的总体要求和范围,

(2)系统建模和模拟 (3)进行成本估算,做出进度安排 (4)进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中作出选择。 (5)生成系统规格说明书 42可行性分析 (1)经济可行性(成本、效益、货币的时间价值、投资回收期、纯收入) (2)技术可行性(风险分析、资源分析、技术分析) (3)法律可行性 第三章需求工程 48软件需求 指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。 包括:功能需求、性能需求、用户或人的需求、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全保密要求、可靠性需求、软件成本消耗与开发进度需求、其他非功能需求 50需求获取方法与策略(重) 建立顺畅的通信途径、访谈与调查、观察用户操作流程、组成联合小组、用况 51 图3.2 53 创建用况模型的主要步骤 (1)确定谁会直接使用该系统,即参与者(Actor) (2)选取其中一个参与者 (3)定义该参与者希望系统做什么,参与者希望系统作的每件事将成为一个用况 (4)对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用况的基本过程 (5)描述该用况的基本过程 54需求分析原则(重) 1.必须能够表示和理解问题的信息域 2.必须能够定义软件将完成的功能 3.必须能够表示软件的行为(作为外部事件的结果) 4.必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节

软件工程期末考试重点

软件工程期末考试重点 《软件工程》期末复习重点 第一章软件工程 1. 什么是软件工程。 A.把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;b.研究a中提到的途径。2. 软件工程的三要素:方法、工具和过程。 第二章软件过程 1. 软件生命周期分为哪几个阶段?每个阶段的基本任务是什么? a.软件定义:确定软件开发工程必须完成的总目标问题定义:要解决的问题是什么 可行性研究:上阶段所确定的问题是否有可行的解决办法?需求分析:目标系统必须做什么 b.软件开发:具体设计和实现在前一个时期定义的软件。概要设计:怎样宏观地解决问题 详细设计:应如何具体地实现这个系统 编码和单元测试:写出正确的、易理解、易维护的程序综合测试:通过各类型测试使达到预定要求。 c.运行维护:修正错误,使软件持久地满足用户需要。改正性维护:诊断和改正使用中的错误适应性维护:修改

以适应环境变化 完善性维护:根据用户的要求改进和扩充以完善预防性维护:修改以为将来的维护作准备 2. 常用的过程模型有哪些?各自的特点及不足。如:瀑布模型的不足是不能适应需求的动 态变更。 A.瀑布模型 特点: 可强迫开发人员采用规范化的方法。严格地规定了每个阶段必须提交的文档。要求每个阶段交出的所有产品都必须是经过验证的。 缺点:太理想化,于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。如果需求规格与用户需求之间有差异,就会发生这种情况。只适用于项目开始时需求已确定的情况。 B.快速原型模型 特点:快速 软件产品开发基本上是线性顺序进行。降低了规格说明文档变化的可能性。减少了后续阶段错误的可能性。 c.增量模型 1 优点: 人员分配灵活,刚开始不用投入大量人力资源。

软件工程复习资料

1、下列哪一模型是软件的基础模型 A.瀑布模型 B.快速原型 C.增量模型 D.螺旋模型 2、划分软件生存周期的阶段时所应遵循的基本原则是 A.各阶段的任务尽可能相对独立 B.各阶段的任务在时间上连续 C.各阶段的任务尽可能相关性 D.各阶段的任务在时间上相对独立 3、下列哪个办法不属于解决软件危机的途径之一 A.采用软件工程的解决途径 B.研制新一代智能计算机 C.采用面向对象的软件设计方法 D.大力扶持软件企业 4、下列哪个不属于软件工程的内涵之一 A.扶持培养软件高手的学院 B.开发既可靠又能有效运行的软件 C.应用完善的科学与工程原理 D.经济地开发软件 5.造成大型软件开发困难的根本原因在于 A.开发人员缺乏足够的开发经验 B.项目开发进度不合理 C.软件系统的复杂性 D.对软件开发的资金投入不足 6.软件会逐渐退化而不会磨损,其原因在于 A.软件备件很难订购 B.不断的变更使组件接口之间引起错误 C.软件错误在经常使用之后会逐渐增加 D.软件通常暴露在恶劣的环境下 7.下面说法正确的是 A.大多数软件系统是不容易修改的,除非它们在设计时考虑了变化 B.由于软件是产品,因此可以应用其他工程制品所用的技术进行生产 C.一般来说,软件只有在其行为与开发者的目标一致的情况下才能成功 D.购买大多数计算机系统所需的硬件比软件更昂贵 8.Ariane 5火箭发射失败的事例告诉我们 A.(2)软件后备系统可以通过复制生成 B.(3)软件重用必须重新进行系统论证和系统测试 C. 选项(1)和(3) D.(1)系统环境的变化可能影响软件采集数据的精度、范围和对系统的控制

9.软件危机的主要原因是 A.软件本身的特点及开发方法。 B.软件工具落后。 C.软件生产能力不足。 D.对软件的认识不够。 10.下面的描述正确的是 A.软件质量是在开发过程中逐渐构建起来的。 B.软件质量是由产品的功能、性能、易用性等外在特性决定的。 C.运行正确的软件就是高质量的软件。 D.软件产品质量越高越好,最理想的情况是达到“零缺陷”。 11、可行性研究主要包括哪几项? A.技术可行性、经济可行性和操作可行性 B.技术可行性、经济可行性和道德可行性 C.技术可行性、法律可行性和操作可行性 D.技术可行性、操作可行性和法律可行性 12、成本/效益分析的目的是帮助()正确地作出是否投资于这项开发工程的决定。 A.系统分析员 B.客户组织的负责人 C.项目经理 D.软件开发人员 13、在进行成本/效益分析的时候,需要考虑() A.开发成本 B.运行费用 C.系统带来的经济效益 D.系统使用寿命 14、数据流图和数据字典共同定义了新系统的逻辑模型。 A.错 B.正确 15、可行性研究可行性研究需要的时间长短和所研究系统的规模关系不大。 A. 正确 B.错误 16、把可行性研究各个步骤的工作结果写成清晰的文档,请用户、客户组织的负责人及评审组审查,以决定是否继续这项工程及是否接受分析员推荐的方案。 A.正确 B.错误 17、结构化分析方法遵守的准则之一——定义软件需要完成的功能,需要建立的模型是 A.功能模型 B.数据模型 C.行为模型 D.动态模型 18、下列叙述中,()不属于数据字典的作用。 A.为用户与开发人员之间统一认识 B.为需求分析阶段定义各类条目

软件工程知识点总结

软件工程(简要知识点) 一、. 软件过程五个模型对比(瀑布模型、快速原型、增量、螺旋、喷泉模型) 二、可行性研究: 1、任务:用最小的代价在尽可能短的时间内确定问题是否能够解决。 2、四个方面:技术、经济、操作可行性、法律 3、数据流图四种成分:1、源点/终点2、处理3、数据存储 4、数据流 三、需求分析: 1、任务:确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要求。 2、结构化方法就是面向数据流自顶向下逐步求精进行需求分析的方法。 3、实体联系图:1、数据对象2、属性3、联系(1:1、1:N、M:N) 四、总体设计: 1.任务:回答“概括的说,系统应该如何实现”,用比较抽象概括的方式确定系统如何完成预定的任务,也就是说应该确定系统的物理配置方案,并且进而确定组成系统的每个程序结构。 2.系统设计阶段(确定系统具体实施方案)、结构设计阶段(确定软件结构) 3.模块独立:内聚和耦合 4. 耦合表示一个软件结构内各个模块之间的互连程度,应尽量选用松散耦合的系统

5. 内聚(Cohesion): 一个模块内各元素结合的紧密程度 6.面向数据流的设计方法:变换流和事务流 五、详细设计: 1.任务:确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计工作应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 2.过程设计的工具(程序流程图、盒图、PAD图、判定表、判定树) 七、测试: 1、单元测试:又称模块测试。每个程序模块完成一个相对独立的子功能,所以可以对该模块进行单独的测试。由于每个模块都有清晰定义的功能,所以通常比较容易设计相应的测试方案,以检验每个模块的正确性。 2、集成测试: 在单元测试完成后,要考虑将模块集成为系统的过程中可能出现的问题,例如,模块之间的通信和协调问题,所以在单元测试结束之后还要进行集成测试。这个步骤着重测试模块间的接口,子功能的组合是否达到了预期要求的功能,全程数据结构是否有问题等。 3、白盒测试技术(逻辑覆盖、基本路经测试)

大学软件工程复习资料

五、简答题 1.层次图和层次方框图之间区别何在?P92 ①层次图描绘软件的层次结构,层次方框图描绘数据结构 ②层次图中方框代表一个功能模块,层次方框图方框代表数据的子集或数据元素 ③层次图中连线表示模块间调用关系,层次方框图连线表示组成关系。 2.2、软件设计过程中为什么要采用模块化设计方法?P85 参考答案: (1)、采用模块化原理可以使软件结构清晰,不仅容易设计,也容易阅读和理解; (2)、模块化使软件容易测试和调试,因而有助于提高软件的可靠性; (3)、模块化可以提高软件的可修改性; (4)、模块化有助于开发过程的组织和管理; 3.用某种软件复杂性度量算法来度量不同类型的程序时。得出的度量值是否真正反映了它们的复杂性? 如果对同类型的程序进行度量,其结果是否就比较有价值? 参考答案: 开发规模相同,但复杂性不同的软件,花费的成本和时间会有很大的差异。因此到目前为止,还没有一个软件复杂性度量的方法能够全面、系统地度量任一软件的复杂性,某一种度量方法只偏重于某一方面。所以,用某种软件复杂性来度量不同类型的程序,所得到的度量值不一定真正反映它们的复杂性。但对同一类里的程序,按某种视点来度量它们的复杂性,其结果还是比较有价值的。 4.数据流图的作用是什么?它有哪些基本成分? 参考答案: 数据流图可以用来抽象地表示系统或软件。它从信息传递和加工的角度.以图形的方式刻画数据流从输入到输出的移动变换过程,同时可以按自顶向下、逐步分解的方法表示内容不断增加的数据流和功能细节。因此,数据流图既提供了功能建模的机制.也提供了信息流建模的机制,从而可以建立起系统或软件的功能模型。 基本成分有:数据原点/终点数据处理数据流数据存储 5.常用的估算软件规模的方法有哪些?试比较这些方法的优缺点。 代码行技术的优点,容易计算,缺点是太片面,因为源程序只是软件配置的很少一部分,不同语言实现同一个软件所需的代码行数不同; 功能点数的特点:与编程语言无关,但是判断信息域复杂性级别和技术因素的影响程度时,存在着相当大的主观因素。 6.CMM的全称是什么?其基本思想是什么?为什么要对CMM进行分级?P321 其基本思想是:软件开发和维护过程中的问题是由于管理软件过程的方法不当引起的,即使是应用新的软件技术,也不会自动提高软件的生产率和质量。能力成熟度模型有助于软件开发机构建立一个有规律的、成熟的软件过程。改进后的软件过程将有利于开发出高质量的软件,使更多的软件项目免受时间和费用超支之苦。 ······························································································· 3分 对于任何软件开发机构的软件过程的改进都是在完成一个又一个小的改进的基础之上不断进行的渐进过程,而不是一蹴而就的彻底革命。CMM将软件过程从无序到有序的进化过程分为5个等级,用于测量软件机构的软件过程成熟度和评价其软件过程能力 什么是软件配置管理? 答:软件配置管理,简称SCM(Software Configuration Management),是在软件的整个生命周期内管理变化的一组活动。具体地讲,这组活动包括:①标志变化,②控制辩化,③确保适当地实现变化,④向需要指导这类信息的人报告变化。软件配置管理技术可以使软件变更所产生的错误达到最小并最有效地提高

软件工程知识点汇总

软件工程知识点汇总 1 软件工程、软件工程方法学:三要素 1.1 软件工程:○1应用系统化的、规范化的、可度量的方法来开发、运行和维护软件,即将工 程应用到软件;○2对○1的各种方法的研究 1.2 软件工程是一门研究用工程化方法构建和维护有效的实用的和高质量的软件的学科 1.3 软件工程三要素是:方法、工具、过程 软件工程的方法:是指完成软件开发各项任务的技术方法 软件工具:是指为软件工程方法的运用提供自动半自动的软件支撑环境 软件工程过程:是指将软件工程方法和工具综合起来以达到合理、及时地进行计算机软件开发这一目的 2 软件工程的原则包括:模块化原则、信息隐蔽原则、抽象化原则、模块独立原则(内聚、耦合)、 依赖倒转原则、开闭原则等 2.1 模块化原则:指解决一个复杂问题时自顶向下逐层把软件系统划分为若干模块的过程。模 块是程序中相对独立的成分,一个独立的编程单位,应有良好的编程接口,模块的大小要 适中,模块过大会使模块内部的复杂性增加不利于模块的理解和修改,模块过小会导致整 个系统表示过于复杂,不利于控制系统的复杂性。 2.2 信息隐蔽原则:采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单。 2.3 抽象化原则:抽取事物最基本的特性和行为,忽略非本质细节,采用分层次抽象,自顶向 下,逐层细化的办法控制软件开发过程的复杂性。 2.4 模块独立原则:是指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少 且接口简单。要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块间由松 散的偶合关系,模块内部有较强的内聚性,这有助于控制系统的复杂性。(即:高内聚低 耦合) 2.5 依赖倒转原则:抽象不应该依赖于细节,细节应该依赖于抽象。 2.6 开闭原则:软件实体应该是可扩展的,但是不可以修改。即对于扩展是开放的,对于更改 是封闭的。 3 软件开发模型:瀑布模型;快速原型;喷泉模型;各种模型的工作原理、阶段、每阶段任务、 特点、示意图; 软件开发模型(也称为软件过程模型):是从软件项目需求定义开始直至软件经使用后废弃为止,跨 越整个生命周期的系统开发、运行和维护所实施的全部过程、活动和任务的结构框架 3.1 瀑布模型(又称线性模型): 3.1.1工作原理:规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。 前一阶段的工作成果是后一阶段工作开始的基础.所以,每个阶段都必须交出合格的文档,必须对前阶段的工作进行评审,前一阶段的工作完成后才可以开始后一阶段的工作 3.1.2 阶段: 计划时期:问题定义、可行性研究 开发时期:需求分析、设计、编码、测试 运行时期:运行和维护 3.1.3 各阶段任务: 1.需求分析和定义 在软件项目进行过程中,需求分析是从软件定义到软件开发的关键步骤,是今后软件,开发的基本依据,同时也是用户对软件产品进行验收的基本依据。需求分析和定义是以用

软件工程复习知识要点

1 软件及软件工程概念 集合,程序只是软件的组成部分之一;在软件开发中,编程只是软件开发过程的一个阶段。 2.在结构化程序设计时代,程序最小的单位是函数及子程序,程序及数据是分离的。程序的最小单位是类。 3.软件的特性:形态特性、智能特性、开发特性、质量特性、生产特性、管理特性、环境特性、维护特性、废弃特性、应用特性。 4.软件的分类:系统软件;应用软件;支撑软件;可复用软件。 5.什么是软件工程?(课后题) 软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来 开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合 起来,以经济地开发出高质量的软件并有效地维护它。 6.可以用功能性、可靠性、易用性、效率、可维护性和可移植性六个特性衡量软件的质量。 功能性是指软件所实现的功能达到它的设计规范和满足用户需求的程度。 可移植性是指软件从某一环境转移到另一环境时所作努力得程度。 7.软件生存期由软件定义、软件开发和运行维护三个时期组成。 开发时期通常由概要设计、详细设计、编码和测试四个阶段组成。 开发过程中的典型文档包括:项目计划、软件测试计划、软件设计说明书、用户手册。 8.需求分析的基本任务? (1)建立分析模型,了解系统的各种需求细节。 (2)基于分析结果,编写出软件需求规格说明或系统功能规格说明,确认测试计划和初步的系统 用户手册,并提交管理机构进行分析评审。 2 软件工程方法及工具 1.面向对象方法的出发点和基本原则,是尽量模拟人类习惯的思维方式,使开发软件的方法和 过程尽可能接近人类认识问题和解决问题的方法及过程,从而使描述问题的问题空间及其解 空间在结构上尽可能一致。 2.形式化方法的主要特点是:(课后题)

软件工程期末考试参考试题

软件工程期末考试参考试题 一、填空题 1、软件生存周期一般可分为问题定义、可行性研究、需求分析、设计编码、测试、运 行与维护阶段。 2、按软件的功能进行划分,软件可以划分为系统软件、支撑软件和应用软件。 3、可行性研究主要集中在以下四个方面经济可行性、技术可行性、法律可行性和抉择。 4、用户界面的可使用性是用户界面设计最重要的也是最基本的目标。 5、常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的结构化设计 方(SD),以数据结构为基础构造模块的Jackson方法,以对象、类、继承和通信为基础的面向对象设计方法(OOD)。 6、数据流图和数据字典共同构成系统的逻辑模型。 7、软件测试的方法有分析方法和非分析方法(即黑盒法)。 8、单元测试一般以白盒测试为主,黑盒测试为辅。 9、成本估计方法主要有自底向上估计、自顶向下估计和算法模型估计三种类型。 10. 文档(document)—一种数据媒体和其上所记录的(数据)。 11 机器语言、汇编语言:依赖于机器,面向(机器) 12. 软件有效性(efficiency),指软件系统的时间和(空间)效率。 13. 软件定义过程可通过软件系统的(可行性研究)和需求分析两个阶段来完成。 14. 软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”。 15. 为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)。 16. 一个软件的深度是指其控制的(层数)。 17. 以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并 最终可运行的代码的过程叫(编码)过程。 18. 软件维护是软件生命周期的(最后)一个阶段 19. 软件工程由(方法)、工具和过程三部分组成,称软件工程的三要素。 20. 基于计算机系统的软件要素中的软部件由程序、数据和(文档)组成。 21. 数据流图就是用来刻画数据流和转换的信息系统建模技术。它用简单的图形记号分 别表示数据流、转换、(数据源)以及外部实体。 22. 被继承的类我们称之为基类(父类),在基类的基础上新建立的类我们称之为派生 类子类。 23. 流程图也称为程序框图是最常用的一种表示法,它有顺序、分支和(循环)三个基 本控制构件。 24. 机器语言和汇编语言,也称为(低级)语言。 25. 软件测试是执行程序发现并排除程序中潜伏的(错误)的过程。 26. 软件可维护性,是指软件产品交付使用后,在实现改正潜伏的错误、改进性能等属性、适应环境变化等方面工作的(难易)程度。 27. 软件可理解性,指系统具有清晰的结构,能直接反映问题的(需求)。 28 在实体-关系图简称E-R图中,数据对象实体用长方形、关系用(菱形)、属性用椭 圆表示。 29. 建立数据流模型要遵循的原则包括:每个加工至少应有一个输入数据流以反映被处 理数据的来源和一个(输出)数据流来反映加工的结果 30. 从工程管理的角度软件设计可分为概要设计和(详细)设计两大步骤。

软件工程复习资料

软件工程的定义:软件工程是一门研究如何用系统化、规范化、数量化等工程化思想和方法去进行软件开发、维护和管理的学科。 软件危机的定义:软件开发和维护过程中所遇到的如软件规模越来越大,复杂度不断增加,软件的需求量日益增大等的严重问题我们称之为软件危机。 软件工程有哪些基本的思想:a.推迟实现的观点b.逐步求精的观点c.分解与抽象的观点d.信息隐蔽的观点e.质量保证的观点 CMM(Capability Maturity Model)能力成熟度模型,是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。 极限编程(Extreme Programming , XP)是一种软件工程方法学是敏捷软件开发中最富有成效的几种方法学之一。它的的核心有四个要点:交流、简单、反馈、勇气 软件生命周期模型:通常把软件生命周期中各项开发活动的流程用一个合理的框架——开发模型来规范描述,这就是软件过程模型,或者称为软件生命周期模型。 软件需求分类:功能需求、非功能需求和领域需求 结构化分析(Structured Analysis, SA) 结构图(Structure Chart ,SC) 面向对象的一些概念:类是具有相同或相似性质的对象的抽象。实例是类的具体化。继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。消息是指对象间相互联系和相互作用的方式 数据流类型:变换型数据流、事务型数据流、混合型数据流 Jackson图:Jackson图是Jackson方法分析和设计最有效的表达手段,用它既可以描述问题的数据结构,也可以描述软件的程序结构。Jackson图的优点是便于表示层次结构,利于结构自顶向下分解,形象直观,可读性好。Jackson方法用某种形式的伪码给出程序的过程性描述。伪码一般采用结构化形式的英语描述,例如,用”select”语句描述选择结构,用”until”或”while”语句描述重复结构。 结构化程序设计的三种基本逻辑结构是:顺序结构、选择结构和循环结构。 类与类之间的关系:关联、泛化、聚集 软件设计的三类活动:软件设计的第一类活动是软件结构设计,也称为总体设计、概要设计或高层设计。第二类活动是软件详细设计,也称为(模块)过程设计或底层设计。第三类活动是设计测试。 软件模块化设计的指导思想:分解、抽象、逐步求精、信息隐蔽和模块独立性。 软件模块化设计的定义:把一个大型软件系统的全部功能,按照一定的原则合理地划分为若干个模块,每个模块完成一个特定子功能,所有的这些模块以某种结构形式组成一个整体。 模块独立性的定义及控制标准:模块独立性是模块化、抽象、信息隐蔽概念的直接结果,也是判断模块化结构是否合理的标准。模块独立性可以由两个定性标准度量,即模块自身的内聚和模块之间的耦合。 内聚性、耦合性和抽象的定义:内聚性是从功能的角度对模块内部聚合能力的量度,耦合性是对一个软件结构内不同模块之间互连程度的度量。抽象是一种从一般的观点看待事物的方法,它要求我们集中于事物的本质特征(内部状态和运动规律),而非具体细节或具体实现。 信息隐蔽定义:每个模块对其他所有模块都隐蔽自己的设计决策,也就是说,模块应该详细说明且精心设计以求在某个模块中包含的信息不被不需要这些信息的其他模块访问。 按耦合度从低到高依次有7种耦合方式:a.非直接耦合(独立运行)b.数据耦合(用参数表传递简单数据)c.标记耦合(传递数据结构或者一部分)d.控制耦合(传递的信息包括控制模块的信息)e.外部耦合(模块与软件之外的环境有关)f.公共耦合(多个模块引用同一全局的数据区)g.内容耦合(访问内部数据,代码重叠或者多个入口)按内聚度从低到高依次有7种内聚种类:a.偶然内聚(模块完成的多个任务,任务之间的关系松散)b.逻辑内聚(模块完成逻辑相关的一组任务)c.瞬时内聚(模块的所有任务必须在同一时间间隔内执行)d.过程内聚(模块的处理元素相关而且按照特定的次序执行)e.通信内聚(模块的所有元素集中在一个数据结构区域上)顺序内聚(模块的处理元素相关,必须顺序执行)f.功能内聚(模块完成单一的功能,各个部分协调工作,而且不可缺少)结构化设计方法(SD)是基于模块化、自顶向下细化、结构化程序设计等程序设计技术基础上发展起来的。 软件维护类型及对应方向的维护: 纠错性维护:对在测试阶段未能发现的,在软件投入使用后才逐渐暴露出来的错误的测试、诊断、定位、纠错以及验证、修改的回归测试过程。纠错性维护占整个维护工作的21% 完善性维护:为了满足这些日益增长的新要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、

软件工程基础知识点总结

软件工程基础部分知识点总结 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素 3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件)

1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。 1)研究软件工程的主要目的就是在规定的时间、规定的开发费用内开发出满足用户需求的高质量的软件系统(高质量是指错误率低、好用、易用、可移植、易维护等)。 2)软件工程的三个要素:方法、工具和过程。 ①方法:完成软件工程项目的技术手段;

软件工程期末复习知识点整理

复习整理 、绪论 1. 软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 是指导计算机软件开发和维护的一门工程学科;采用工程化的原理与方法对软件进行计划、开发和维护;把证明正 确的管理技术和最好技术综合运用到软件开发中;研究经济地开发岀高质量的软件方法和技术;研究有效维护软件 的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。 ⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1)过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构 +算法;着眼于程序的过程和基本控制结构,粒度最小 (2)面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对 象,粒度比较大 (3)基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合 整个领域的类对象,粒度最大 二、软件生存周期与软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动 定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期 目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段, 给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。 主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护( P19) 2、软件生命周期划分为哪几个阶段 软件生命周期分为三个时期八个阶段: 软件定义:问题定义、可行性研究; 软件开发:需求分析、概要设计、详细设计、编码、测试; 软件运行:软件维护

软件工程复习题库带答案完整版

一、选择题 1、白盒测试法是通过分析程序的(C)来设计测试用例的。 A.应用范围 B.功能 C.内部逻辑 D.输入数据 2、风险预测从两个方面评估风险,即风险发生的可能性以及(D)。 A.风险产生的原因 B.风险监控技术 C.风险能否消除 D.风险发生所产生的后果 3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。 A.好的计划 B.不断的发布 C.反馈和勇气 D.持续集成 4、等价分类法的关键是(C)。 A.确定等价类的边界条件 B.按照用例来确定等价类 C.划分等价类 D.确定系统中相同和不同的部分 5、下列不属于黑盒测试的技术是(A)。 A.程序段或语句的功能 B.模块的接口 C.数据的名称和用途 D.模块的功能 6、为了提高模块的独立性,模块之间最好是(D)耦合。 A.控制耦合 B.公共耦合 C.内容耦合 D.数据耦合 7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。 A.角色 B.活动 C.制品 D.工作流 8、功能性注释嵌入在源程序内部,它是用来说明(A)。 A.程序段或语句的功能 B.模块的接口 C.数据的名称和用途 D.模块的功能 9、在结构化分析方法中,数据字典是重要的文档。对加工的描述是数据字典的组成内容之一,常用的加工描述方法有( C )。 A.只有结构化语言 B.有结构化语言和判定树 C.有结构化语言、判定树和判定表 D.有判定树和判定表 10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行( B )维护。 A.正确性 B.适应性 C.完善性 D.预防性 11、软件危机的主要原因是(A)。 A软件本身特点与开发方法B对软件的认识不够 C软件生产能力不足D软件工具落后 12、DFD是常用的进行软件需求分析的图形工具,其基本符号是(C)。 A.输入、输出、外部实体和加工 B.变换、加工、数据流和存储 C.加工、数据流、数据存储和外部实体 D.变换、数据存储、加工和数据流

《软件工程》期末考试题及答案++精华版!!

《软件工程》期末考试样题 一、填空题 1.软件开发模型有(瀑布模型)(螺旋模型)第四代技术模型(原型模型)构件组装模型、混合模型。 2.可行性研究一般可以从(经济)可行性、(技术)可行性、运行可行性、法律可行性和开发可行性等方面来研究。 3.现在向银行存款,年利率为i,若希望在n年后从银行得到F元,现在应该存入的钱数为(F/(1+i)n)。 4.数据流图的基本符号包括(数据输入的源点和数据输出的汇点)、(加工)、(数据流)、(数据存储文件)。 5.Jackson图除了可以表达程序结构外,还可以表达(数据结构),它首先要分析(数据结构),并用适当的工具来描述。 6.详细设计的工具有图形工具)、表格工具和(语言工具)。 7.IPO图由(输入)、处理和(输出)三个框组成。这个图的特点是能够直观的显示三者之间的关系。 8.面向对象技术是一整套关于如何看待(软件系统)和(现实世界)的关系,以什么观点来研究问题并进行分析求解,以及如何进行系统构造的软件方法学。面向对象方法是一种运用(对象)、(类)、(继承)、(封装)、聚集、消息传送、多态性等概念来构造系统的软件开发方法。 二、单项选择题 1.下列( A )属于系统软件。 A.WINDOWS 2000 B.Word C.Flash D.3D MAX 2.下列哪个图是N-S图的构件( C )。 A. B. C. D. 3.对于螺旋模型,下列( D )不是利用笛卡尔坐 标表达的活动。 A. 制定计划 B. 实施工程 C. 风险分析 D. 程序编码 三、多项选择题 1.软件危机可以表现为(ABXD )。 A.产品不符合用户的需要 B.软件产品的质量差 C.软件的可维护性差 D.软件的价格昂贵 2.Jackson图中一般可能包括(ABCD )。 A.表头 B.表体 C.表名 D.字段名 3.关于内容耦合的描述正确的是(AD )。 A、内容耦合是最高程度的耦合 B、应该尽量使用内容耦合 C、高级语言一般设计成允许内容耦合的形式 D、如果一个模块有多个入口,可能发生内容耦合 4.下列属于不标准的书写格式(BCD )。 A、书写时适当使用空格分隔 B、一行写入多条语句 C、嵌套结构不使用分层缩进的写法 D、程序中不加注释 四、判断题(正确的在括号内打上“√”,错误的打上“×”) 1.软件生存周期是从软件开始开发到开发结束的整个时 期。() 2.系统流程图是一个典型的描述逻辑系统的传统工具。 () 3.数据流图和数据字典共同构成系统的逻辑模型。 (1) 4.扇出是一个模块直接调用的模块数目,一般推荐的扇出 为3或4。( 1 ) 5.耦合用于衡量一个模块内部的各个元素彼此结合的紧 密程度。()

相关文档