软件工程重点知识复习资料集锦Word下载.docx
- 文档编号:19885717
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:19
- 大小:117.49KB
软件工程重点知识复习资料集锦Word下载.docx
《软件工程重点知识复习资料集锦Word下载.docx》由会员分享,可在线阅读,更多相关《软件工程重点知识复习资料集锦Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。
7﹑什么是软件生存周期模型?
有哪些主要模型?
生存周期模型:
描述软件开发过程中各种活动如何执行的模型。
对软件开发提供强有力的支持,为开发过程中的活动提供统一的政策保证,为参与开发的人员提供帮助和指导,是软件生存周期模型化技术的基础,也是建立软件开发环境的核心。
主要有:
瀑布模型,增量模型,螺旋模型,喷泉模型,基于知识的模型,变换模型。
8﹑什么是软件开发方法?
有哪些主要方法?
使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。
通过使用成功的软件开发方法,在规定的投资和时间内,开发出符合用户需求的高质量的软件。
软件开发方法是克服软件危机的重要方面之一,对软件工程及软件包产业的发展起了不可估量的作用。
结构化方法,JACKSON方法,维也纳开发方法﹙VDM﹚,面向对象开发方法。
9、软件工程方法学包含3个要素分别是什么?
分别是:
方法、工具和过程。
Ø
方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;
工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;
过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
10、什么是软件过程?
为了获得高质量软件所需要完成的一系列任务的框架,规定了完成各项任务的工作步骤。
在完成开发任务时必须进行一些开发活动,并且使用适当的资源,在过程结束时将把输入转化为输出。
11、瀑布模型的特点及优点?
特点:
(1)各个阶段的顺序性和依赖性;
(2)划分逻辑设计与物理设计,尽可能推迟程序的物理实现;
(3)每个阶段必须完成规定的文档,对其中问题通过复审及早发现,及早解决。
优点:
可强迫开发人员采用规范的方法(例如,结构化技术);
严格地规定了每个阶段必须提交的文档;
要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
12、螺旋模型的优点?
对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;
减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险;
在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。
螺旋模型主要适用于内部开发的大规模软件项目。
项目越大,风险也越大,因此,进行风险分析的必要性也越大。
此外,只有内部开发的项目,才能在风险过大时方便地中止项目。
13、快速原型的分类、特点及使用策略?
分类:
探索型、实验型、进化型
特点:
尽快向用户提供一个可在计算机上运行的目标系统的模型,以便使用户和开发者在目标系统应该“做什么”这个问题上尽可能快地达成共识。
快速原型应该具备的第一个特点是“快速”;
快速原型应该具备的第二个特点是“容易修改”。
原型的“修改—试用—反馈”过程可能重复多遍。
使用策略:
废弃策略和追加策略。
14、软件工程的目标?
15、软件开发技术主要研究内容?
16、软件开发管理主要研究内容?
17、快速原型开发的步骤?
快速开发、需求、构造原形、原形、运行原形、评价原形、修改意见。
18、某计算机系统投入使用后、5年内每年可节省人民币2O0O元,假设系统的投资额为5000元,年利率为12%。
试计算投资回收期和纯收入。
第二章可行性研究
1、可行性研究的任务是什么?
可行研究的任务:
首先需要进行概要的分析研究,初步确定项目的规模,目标,约束和限制。
分析员再进行简要的需求分析,抽象出项目的逻辑结构,建立逻辑模型。
从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的解决方法,对每种解决方法都要研究它的可行性。
主要从四个方面考虑:
⑴.技术可行性:
一般要考虑的情况包括开发的风险即设计出的系统能否达到要求的功能和性能;
资源的有效性;
相关技术的发展是否支持;
⑵.经济可行性:
进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资。
⑶.法律可行性:
要开发的项目是否存在任何侵权问题。
(4).管理可行性:
运行方式在用户组织内是否可行,现有管理制度﹑人员素质﹑操作方式是否可行。
4、什么是数据流图?
其作用是什么?
数据流图(DFD):
以图形的方式描述数据在系统中流动和处理的逻辑过程。
只反映系统必须完成的逻辑功能,是一种功能模型。
5、什么是数据字典?
共有哪些条目?
数据字典(DD)用来定义数据库流图中的各个成分的具体含义。
有以下四类条目:
数据流,数据项,数据存储,基本加工。
7、某图书管理系统有以下功能:
⑴借书:
输入读者借书证。
系统首先检查借书证是否有效,若有效,对于第一次借书的读者,在借书证上建立档案。
否则,查阅借书文件,检查该读者所借图书是否超过10本,若已达10,拒借,末达10本,办理借书(检查库存,修改库存目录并将读者借书情况录入借书文件。
)
⑵还书:
从借书文件中读出与读者有关的记录,查阅所借日期,如超期(3个月)作罚款处理。
否则,修改库存目录与借书文件。
⑶查询:
通过借书文件,库存目录文件查询读者情况﹑图书借阅及库存情况,打印统计表。
解:
8、某银行的计算机储蓄系统功能是:
将储户的存户填写的存款单或存款单输入系统,如果是存款,系统记录存款人姓名﹑住址﹑存款类型﹑存款日期﹑利率等信息,并打印出存款单给储户;
如果是取款,系统计算清单给储户。
请用DFD,IDEF0描绘该功能的需求,并建立相应数据字典。
9、一个考务处理系统的要求如下,试画出该系统的数据流图。
(1)对考生送来的报名表进行检查;
(2)对合格的报名表编好准考证号码后将准考证送给考生,并将汇总后的考生名单送给阅卷站;
(3)对阅卷站送来的成绩表进行检查,并根据考试中心指定的合格标准审定合格者;
(4)填写考生通知单(内容包含考试成绩及合格∕不合格标志),送给考生;
(5)按地区、年龄、文化程度、职业、考试级别等进行成绩分类统计及试题难度分析,产生统计分析表。
(1)顶层数据流图
(2)第1层数据流图
(3)第2层数据流图
加工1子图:
加工2子图:
10、系统流程图
是概括地描绘物理系统的传统工具,表达的是数据在系统各部件之间流动的情况,
11、原型化方法主要用于解决什么问题?
试说明这种方法的主要优缺点。
原型化方法主要用于解决在产品开发的早期阶段需求不确定的问题,用户、经理和其他非技术项目风险承担者发现在确定和开发产品时,原型可以使他们的想象更具体化。
这种方法的主要优点如下:
(1)
明确并完善需求原型作为一种需求工具,它初步实现所理解的系统的一部分,用户对原型的评价可以指出需求中的许多问题。
(2)
探索设计选择方案原型作为一种设计工具,可以探索不同的用户界面技术,使系统达到最佳的可用性,并且可以评价可能的技术方案。
(3)
发展为最终的产品原型作为一种构造工具,是产品最初子集的完整功能实现,通过一系列小规模的开发循环,你可以完成整个产品的开发。
(4)
这种方法的主要缺点包括:
用户看到一个正在运行的原型便以为产品即将完成,他们会要求不再进行产品重建,而只是对原型进行一些修改就交付。
由于原型没有考虑软件的总体
质量和可维护性,交付原型往往造成"
欲速则不达"
的情况。
(2)开发人员为了快速构造原型,可能会采用不合适的操作系统或程序设计语言,也可能使用一些效率低的算法。
在一段时间的开发之后,他们往往已经习惯了这些选择,于是便在系统中参杂了这些不理想的选择。
第三章需求分析
1、什么是需求分析?
需求分析阶段的基本任务是什么?
需求分析:
开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。
基本任务:
⑴问题识别:
双方确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求。
⑵分析与综合,导出软件的逻辑模型。
⑶编写文档:
包括编写"
需求规格说明书"
"
初步用户使用手册"
确认测试计划"
修改完善软件开发计划"
。
2、什么是结构分析方法?
该方法使用什么描述工具?
结构化分析:
简称SA,面向数据流进行数据分析的方法。
采用自顶向下逐层分解的分析策略。
顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。
中间层则是从抽象到具体的过渡。
使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。
3、结构化分析方法通过哪些步骤来实现?
⑴了解当前系统的工作流程,获得当前系统的物理模型。
⑵抽象出当前系统的逻辑模型。
⑶建立目标系统的逻辑模型。
⑷作进一步补充和优化。
4、E-R图中包含哪几种种基本成分?
实体(即数据对象)、关系和属性
5、联系可分为哪几种类型?
一对一联系(1∶1),一对多联系(1∶N),多对多联系(M∶N)
6、为何要进行数据结构规范化?
为减少数据冗余,避免出现插入异常或删除异常,简化修改数据的过程。
7、第一范式
每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构。
8、第二范式
满足第一范式条件,而且每个非关键字属性都由整个关键字决定(而不是由关键字的一部分来决定),消除了非关键字属性对关键字属性的部分依赖。
9、第三范式
符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述(即一个非关键字属性值不依赖于另一个非关键字属性值),消除了非关键字属性对关键字属性的传递依赖。
10、S-L-C(SNO,SDEPT,SLOC,CNO,G),这里SNO表示学号,SDEPT表示系名,SLOC表示楼号,CNO表示课程号,G表示成绩。
函数依赖有:
(SNO,CNO)→G;
SDEPT→SLOC;
SNO→SDEPT,对关系进行规范化,达到三范式要求。
(1)SC(SNO,CNO,G)和
(2)S-D(SNO,SDEPT,)(3)S-L(SDEPT,SLOC)
11、状态转换图
状态转换图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。
提供了行为建模机制。
12、层次方框图
层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。
树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再分割的元素)。
13、IPO图
IPO图是输入、处理、输出图的简称,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。
14、从哪些方面验证软件需求的正确性
(1)一致性所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。
(2)完整性需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。
(3)现实性指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。
对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。
(4)有效性必须证明需求是正确有效的,确实能解决用户面对的问题。
第四章总体设计
4、模块化
是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
5、模块化的优点
(1)模块化使软件容易测试和调试,因而有助于提高软件的可靠性。
(2)模块化也有助于软件开发工程的组织管理。
6、抽象
就是抽出事物的本质特性而暂时不考虑它们的细节。
7、抽象化包括哪些?
过程的抽象、数据抽象。
8、模块的独立程度的定性标准度量是什么?
好的模块应满足什么标准?
内聚和耦合;
高内聚低耦合。
9、什么耦合?
模块间的耦合有哪些?
指衡量不同模块彼此间互相依赖(连接)的紧密程度;
有非直接耦合、标记耦合、数据耦合、控制耦合、外部耦合、公共耦合和内容耦合。
10、非直接耦合
如果两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。
这种耦合的模块独立性最强。
11、标记耦合
如果一组模块通过参数表传递记录信息,就是标记耦合。
这个记录是某一数据结构的子结构,而不是简单变量。
12、数据耦合
如果一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合。
13、控制耦合
如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。
14、外部耦合
一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。
15、公共耦合
若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。
公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。
16、内容耦合
如果发生下列情形,两个模块之间就发生了内容耦合
(1)一个模块直接访问另一个模块的内部数据;
(2)一个模块不通过正常入口转到另一模块内部;
(3)两个模块有一部分程序代码重迭(只可能出现在汇编语言中);
(4)一个模块有多个入口。
17、内聚
衡量一个模块内部各个元素彼此结合的紧密程度。
功能内聚,信息内聚,通信内聚,过程内聚,时间内聚,逻辑内聚,巧合内聚。
19、功能内聚
一个模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。
则称该模块为功能内聚模块。
20、信息内聚
这种模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。
这个模块将根据不同的要求,确定该执行哪一个功能。
由于这个模块的所有功能都是基于同一个数据结构(符号表),因此,它是一个信息内聚的模块。
21、通信内聚
如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。
通常,通信内聚模块是通过数据流图来定义的。
22、过程内聚
使用流程图做为工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚模块。
例如,把流程图中的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。
23、时间内聚
时间内聚又称为经典内聚。
这种模块大多为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。
例如初始化模块和终止模块。
24、逻辑内聚
这种模块把几种
相关的功能组合在一起,每次被调用时,由传送给模块的判定参数来确定该模块应执行哪一种功能。
25、巧合内聚
巧合内聚又称为偶然内聚。
当模块内各部分之间没有联系,或者即使有联系,这种联系也很松散,则称这种模块为巧合内聚模块,它是内聚程度最低的模块。
26、扇出
是一个模块直接控制(调用)的模块数目。
27、扇入
一个模块的扇入表明有多少个上级模块直接调用它。
28、模块的作用域
定义为受该模块内一个判定影响的所有模块的集合。
29、模块的控制域
是这个模块本身以及所有直接或间接从属于它的模块的集合。
30、模块化的优点。
模块化使软件容易测试和调试,因而有助于提高软件的可靠性,提高软件的可修改性。
模块化也有助于软件开发工程的组织管理。
第五章详细设计
1、详细设计的基本任务是什么?
有那几种描述方法?
设计模块的数据结构、设计数据库的物理结构、设计模块的详细算法、其它(代码设计、输入/输出格式设计、人机对话设计)、编写详细设计说明书、评审。
程序流程图、PAD图、PDL。
2、请使用流程图、PAD图和PDL语言描述下列程序的算法。
(1)在数据A
(1)~A(10)中求最大数和次大数。
3、输入三个正整数作为边长,判断该三条边构成的三角形是等边、等腰还是一般三角形。
使用流程图、PAD图和PDL语言描述
第六章编码与测试
1、软件测试的目的是什么?
软件测试中,应注意哪些原则?
答:
软件测试的目的是为了发现软件的错误。
软件测试中应注意的原则有:
(1)测试用例应由输入数据和预期的输出数据两部分组成。
这样便于对照检查,做到有的放矢。
(2)测试且例不仅选用合理输入数据,还要选择不合理的输入数据。
这样能更多地发现错误,提高程序的可靠性。
对于不合理的输入数据,程序应拒绝接受,并给出相应的提示。
(3)除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事。
(4)应制定测试计划并严格执行,排除随意性。
(5)长期保留测试用例。
(6)对发现错误较多的程序段,应进行更深入的测试。
(7)程序员应避免测试自己的程序。
测试是一种"
挑剔性"
的行为,心理状态是测试自己程序的障碍。
2、什么是白盒测试法?
有哪些覆盖标准?
试对他们的检错能力进行比较?
白盒法测试法把测试对象看作一个打开的盒子,测试人员须了解程序内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。
白盒法有下列几种覆盖标准:
语句覆盖:
设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。
判定覆盖:
设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。
条件覆盖:
设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。
判定/条件覆盖:
设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断中的每个条件的可能取值至少执行一次。
条件组合覆盖:
设计足够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次。
路径覆盖:
设计足够的测试用例,覆盖程序中所有可能的路径。
从上到下的覆盖标准其检错能力也从弱到强,其中条件组合发现错误的能力较强,凡满足其标准的测试用例,也必然满足前四种覆盖标准。
在实际的逻辑测试中,一般以条件组合覆盖为主设计测试用例,然后再补充部分用例来达到路径覆盖的测试标准。
3、什么是黑盒测试法?
采用黑盒技术测试用例有哪几种方法?
这些方法各有什么特点?
黑盒测试法把被测试对象看成是一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。
采用黑盒技术测试用例的方法有:
等价类的划分、边界值分析、错误推测和因果图。
等价类的划分:
是将输入数据按有效的或无效的(也称合理的或不合理的)划分成若干个等价类,测试每个等价类的代表值就等于对该类其他值的测试。
这样就把漫无边迹的随机测试改为有针对性的等价类测试,用少量有代表性的例子代替大量测试目的相同的例子,能有效地提高测试效率。
但这个方法的缺点是没有注意选择某些高效的、能够发现更多错误的测试用例。
边界值分析法:
是将测试边界情况作为重点目标,选取正好等于、刚刚大于和刚刚小于边界值的测试数据。
(边界情况是指输入等价类和输入等价类边界上的情况。
)这种方法可以查出更多的错误,因为在程序中往往在处理边界情况时易发生错误。
错误推测法:
是在测试程序时,人们根据经验或直觉推测程序中可能存在的错误,从而有针对性地编写检查这些错误的测试用例。
因果图:
能够有效地检测输入条件的各种组合可能会引起的错误。
它的基本原理是通过画因果图,把用自然语言描述的功能说明转换为判定表,最后为判定表的每一列设计一个测试用例。
这几种方法都不能提供一组完整的测试用例,在实际测试中应把各种方法结合起来使用。
综合策略:
就是联合使用上述几种测试方法,尽可能多地发现程序中的错误。
4、软件测试要经过哪些步骤?
这些测试与软件开发各阶段之间有什么关系?
软件测试要经过的步骤是:
单元测试→集成测试→确认测试→系统测试。
单元测试:
对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。
该阶段涉及编码和详细设计文档。
集成测试:
是为了检查与设计相关的软件体系结构的有关问题,也就是检查概要设计是否合理有效。
确认测试:
主要是检查已实现的软件是否满足需求规格说明书中确定了的各种需求。
系统测试:
是把已确认的软件与其他系统元素(如硬件、其他支持软件、数据、人工等)结合在一起进行测试。
以确定软件是否可以支付使用。
5、单元测试有哪些内容?
测试中采用什么方法?
单元测试主要针对模块的以下五个基本特征进行测试:
(1)模块接口
(2)局部数据结构
(3)重要的执行路径
(4)错误处理
(5)边界条件
测试的方法是为被测试模块编写驱动模块和桩模块来实现被测试单元的可运行。
通过驱动模块来模拟被测试模块的上级调用模块,以上级模块调用被测模块的格式驱动被测模块,接收被测模块的测试结构并输出。
桩模块则用来代替被测试模块所调用的模块。
它的作用是返回被测模块所需的信息。
6、什么是集成测试?
非渐增式测试与渐增式测试有什么区别?
渐增式测试如何组装模块?
集成测试是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。
非渐增式测试是指首先对每个模块分别进行单元测试,再把所有模块组装成一个完整的系统进行的测试。
而渐增式测试就是逐个把未经测试的模块组装到已经过测试的模块上去进行集成测试,每加入一个新模块进行一次集成测试,重复此过程直到程序组装完毕。
渐增式测试有两种不同的组装方法:
自顶向下和自底向上结合。
两者区别是:
(1)非渐增式方法把单元测试和集成测试分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 重点 知识 复习资料 集锦