软件工程复习资料1Word格式文档下载.docx
《软件工程复习资料1Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《软件工程复习资料1Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
![软件工程复习资料1Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2023-1/29/c5f49020-fb6e-4467-a65e-204c2b60397a/c5f49020-fb6e-4467-a65e-204c2b60397a1.gif)
设计这组测试用例的方法是边界值分析法。
22.软件详细设计的主要任务是确定每个模块的算法和使用的数据结构。
23.为了提高软件的可维护性,在编码阶段应注意养成良好的程序设计风格。
24.快速原型模型的主要特点之一是及早提供工作软件。
25.软件需求分析的主要任务是准确地定义出要开发的软件系统是系统做什么。
26.软件生命周期中所花费用最多的阶段是软件维护。
27.面向对象分析是对系统进行需求建模的一种方法。
28.下面模型属于成本估算方法的有CoComo模型。
29.因计算机硬件和软件环境的变化而作出的修改软件的过程称为完善性维护。
30.一个模块内部各程序都在同一数据结构上操作,这个模块的内聚性称为时间内聚。
31.面向对象技术中,对象是类的实例。
对象有三种成份,标识、属性和方法。
32.数据字典是用来定义数据流图中的各个成份的具体含义的。
33.在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了软件危机。
34.软件详细设计主要采用的方法是结构化程序设计。
35.软件可行性研究一般不考虑待开发的软件是否会有质量问题。
36.下列关于瀑布模型的描述正确的是瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开。
37.研究开发所需要的成本和资源是属于可行性研究中的经济可行性研究的一方面。
38.在McCall软件质量度量模型中,适应性属于面向软件产品修改。
2、名词解释
1.软件:
软件是程序、数据及相关文档的完整集合。
2.信息隐蔽:
指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其它模块来说,是不能访问的。
3.对象:
是人们进行研究的任何事物在面向对象程序设计中的抽象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
万物皆为对象。
对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。
4.软件的可维护性:
软件能够被理解、校正、适应及增强功能的容易程度。
5.原型:
是目标软件系统的一个可操作模型,它实现了目标软件系统的某些重要方面。
6.软件工程:
用科学知识和技术原理来定义、开发、维护软件的一门学科。
采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
7.适应性维护:
为了适应环境的改变而修改软件的活动和操作。
8.数据字典(DD):
数据字典是用来定义数据流图中的各个成分的具体含义的。
它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。
9.系统响应时间:
用户完成某个控制动作到系统响应的时间。
10.重构工程:
也称为修复和改造工程,它是在逆向工程所获信息的基础上修复或重构已有的系统从而产生系统的新版本。
11.项目风险软件:
项目在预算、进度、人力、资源、顾客、需求等方面的原因对软件项目产生的不良影响。
12.软件测试:
为了发现程序中的错误而执行的程序的过程。
13.完善性维护任务:
根据用户在使用过程中提出的一些建设性意见而进行的维护活动。
14.技术风险:
软件在设计、实现接口、验证和维护过程中可能发生的潜在问题对软件项目带来的危害。
15.活动图:
描述系统未完成某项目功能而执行的操作序列,这些操作序列可以并发和同步。
16.内聚性:
内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
17.软件工程方法:
是软件生产的组织方式,包括对软件过程的建议、使用的标记法、进行系统描述的规律和设计指南。
18.异步消息:
表示消息源发出消息后不必等待消息处理过程的返回,即可继续执行自己的后续操作。
19.数据设计:
在需求规格说明书定义的那些数据对象选择合适的逻辑表示,并确定可能作用在这些逻辑结构上所有的操作。
3、简答题
1.规模度量有哪些优点和缺点?
答:
优点:
用软件代码行数估算软件规模简单易行。
缺点:
代码行数的估算依赖于程序设计语言的功能和表达能力;
采用代码行估算方法会对设计精巧的软件项目产生不利的影响;
在软件项目开发前或开发初期估算它的代码行数十分困难;
代码行估算只适用于过程式程序设计语言,对非过程式的程序设计语言不太适用等等。
2.软件总体结构设计的目标是什么?
软件总体结构设计的目标就是产生一个模块化的程序结构并明确各模块之间的控制关系,此外还要通过定义界面,说明程序的输入输出数据流,进一步协调程序结构和数据结构。
3.人们总是希望编制清晰紧凑、高效的程序,但这些特性在编码时往往互相矛盾,一般应依次考虑哪些原则?
编制易于修改、维护的代码
编制易于测试的代码
必须将编程与编文档的工作统一开来
编程中采用统一的标准和约定,降低程序复杂性
限定每一层的副作用,减少耦合度尽可能地重用
4.黑盒测试旨在测试软件是否满足功能要求,它主要诊断的错误为:
不正确或遗漏的功能;
界面错误;
数据结构或外部数据库访问错误;
性能错误;
初始化和终止条件错误。
5.使用哪些相应的工具可帮助开发人员使用快速原型技术完成开发任务?
用户界面自动生成工具
支持数据库应用的开发工具包
四代语言及相应的开发环境
软件重用工具等都可以直接服务于快速原型的构造与进化
6.子程序是可独立编译的程序单元,子程序一般具备那三种机制
①子程序说明,它给出子程序与其他程序单元的接口;
②子程序体,它实现子程序的数据和控制结构;
③调用方式。
7.瀑布模型的优缺点主要有哪些?
软件生命周期模型,使软件开发过程可以在分析、设计、编码、测试和维护的框架下进行;
软件开发过程具有系统性、可控性,克服了软件开发的随意性;
在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。
在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。
不支持产品的演化,缺乏灵活性,使软件产品难以维护。
8.软件工程的目标是生产高质量的软件,高质量的软件应该具备那三个条件。
①满足软件需求定义的功能和性能
②文档符合事先确定的软件开发标准
③软件的特点和属性遵循软件工程的目标和原则。
9.软件总体结构应该包括那两方面内容?
一是由系统中所有过程性部件(即模块)构成的层次结构,亦称为程序结构;
二是输入输出数据结构
10.软件产品具有哪些特点?
1.软件产品是一种逻辑产品。
2.软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发完成后,复制就产生了大量软件产品。
3.软件产品不会用坏,不存在磨损、消耗问题。
4.软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,而且碰分是"
定做"
的。
软件费用不断增加,成本相当昂贵。
11.自顶而下渐增测试与自底而上渐增测试各有何优、缺点?
①自顶而下渐增测试
不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能够尽早发现上层模块的接口错误。
需要存根程序,底层错误发现较晚。
②自底而上渐增测试优点与缺点和自顶而下渐增测试相反
12.边界类描述目标软件系统与外部环境的交互,简述边界类主要任务是什么?
界面控制:
包括输入数据的格式及内容转换,输出结果的呈现,软件运行过程中界面的变化与切换等。
外部接口:
实现目标软件系统与外部系统或外部设备之间的信息交流和互操作。
主要关注跨越目标软件系统边界的通信协议。
环境隔离:
将目标软件系统与操作系统、数据库管理系统、应用服务器中间件等环境软件进行交互的功能与特性封装于边界类之中,使目标软件系统的其余部分尽可能地独立于环境软件。
13.精化体系结构的目的是什么?
寻找一种包的划分方案,使得每个包直接包含的类的数量适中,包的边界清晰、自然,并且包间的耦合度较低。
14.一般而言,衡量某种程序语言是否适合于特定的项目,应考虑哪些因素?
应用领域;
算法和计算复杂性;
软件运行环境;
用户需求中关于性能方面的需要;
数据结构的复杂性;
软件开发人员的知识水平;
可用的编译器与交叉编译器
4.综合题
3.Banknetwork、Manager、Clerk
2.下图显示了某个学校课程管理系统的部分类图,其中一个学生(student)可以知道所有注册课程的教师(instructor),一个教师也可以知道所有注册课程的学生。
现在提出一个新的需求:
"
一个教师也可以是某些课程的学生"
,那么下面设计A~C中哪一个是最好的?
为什么?
设计A:
设计B:
设计C:
设计C最好。
学生和教员均可以从Candidate类继承而来;
抽象出Role类,使Candidate类与Role类之间形成多对多的关联关系,实现了"
一个人既是教师又是某门课的学生"
这个需求。
3.高考录取统分子系统有如下功能:
(1)计算标准分:
根据考生原始分计算,得到标准分,存入考生分数文件;
(2)计算录取线分:
根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。
试根据要求画出该系统的数据流程图,并将其转换为软件结构图。
(1)数据流图:
(2)软件结构图
4.建立以下有关“微机”的对象模型。
(7分)一台微机有一个显示器,一个主机,一个键盘,一个鼠标,汉王笔可有可无。
主机包括一个机箱,一个主板,一个电源及储存器等部件。
储存器又分为固定储存器和活动存储器两种,固定存储器为内存和硬盘,活动存储器为软盘和光盘。
5.某培训中心要研制一个计算机管理系统。
它的业务是:
将学员发来的信件收集分类后,按几种不同的情况处理。
1)如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。
2)如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文件上做相应的修改,并给学生注销单。
3)如果是付款的,则由财务人员在帐目文件上登记,也给学生一张收费收据。
要求:
(1).对以上问题画出数据流程图。
(3分)
(2).画出该培训管理的软件结构图的主图。
(4分)
(4分)
6.根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。
一个程序读入3个整数,它们分别代表一个三角形的3个边长。
该程序判断所输入的整数是否构成一个三角形,以及该三角形是一般的、等腰的或等边的,并将结果打印出来。
设三角形的3条边分别为A、B、C,并且
(1)列出等价类表,格式如下:
输入条件
有效等价类
无效等价类
(注意:
将等价类编号)
(2)设计测试用例,格式如下:
用例n:
输入【A,B,C】覆盖等价类……(列出等价类序号),输出结果为……。
(1)列出等价类表
输入条件
有效等价类
无效等价类
是否构成一个三角形
(1)A>0且B>0且C>0且
A+B>C且B+C>A且
A+C>B。
(2)A≤0或B≤0或C≤0
(3)A+B≤C或A+C≤B
或B+C≤A
是否等腰三角形
(4)A=B或A=C或B=C
(5)A≠B且A≠C且B≠C
是否等边三角形
(6)A=B且A=C且B=C
(7)A≠B或A≠C或B≠C
(2)设计测试用例
用例1:
输入【3,4,5】覆盖等价类(1,2,3,4,5,6),输出结果为构成一般三角形。
用例2:
三者取一
输入【0,1,2】覆盖等价类
(2),输出结果为不构成三角形。
输入【1,0,2】覆盖等价类
(2),输出结果为不构成三角形。
输入【1,2,0】覆盖等价类
(2),输出结果为不构成三角形。
用例3:
输入【1,2,3】覆盖等价类(3),输出结果为不构成三角形。
输入【1,3,2】覆盖等价类(3),输出结果为不构成三角形。
输入【3,1,2】覆盖等价类(3),输出结果为不构成三角形。
用例4:
输入【3,3,4】覆盖等价类
(1)(4),输出结果为等腰三角形。
输入【3,4,4】覆盖等价类
(1)(4),输出结果为等腰三角形。
输入【3,4,3】覆盖等价类
(1)(4),输出结果为等腰三角形。
用例5:
输入【3,4,5】覆盖等价类
(1)(5),输出结果为不是等腰三角形。
用例6:
输入【3,3,3】覆盖等价类
(1)(6),输出结果为等边三角形。
用例7:
输入【3,4,4】覆盖等价类
(1)(4)(7),输出结果为不是等边三角形。
输入【3,4,3】覆盖等价类
(1)(4)(7),输出结果为不是等边三角形。
输入【3,3,4】覆盖等价类
(1)(4)(7),输出结果为不是等边三角形。
7.某校教务系统具备以下功能输入用户ID号及口令后经验证进入教务管理系统可进行如下功能的处理:
查询成绩查询成绩以及从名次表中得到名次信息
学籍管理根据学生总成绩排出名次信息
成绩处理处理单科成绩并输入成绩表中。
就以上系统功能画出顶层和0层的DFD。