中国海洋大学 考研 期末软件工程复习资料综述.docx
- 文档编号:215767
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:18
- 大小:91.45KB
中国海洋大学 考研 期末软件工程复习资料综述.docx
《中国海洋大学 考研 期末软件工程复习资料综述.docx》由会员分享,可在线阅读,更多相关《中国海洋大学 考研 期末软件工程复习资料综述.docx(18页珍藏版)》请在冰点文库上搜索。
中国海洋大学考研期末软件工程复习资料综述
软件工程复习提纲
第一章
1.软件危机包含两方面的问题:
1)如何开发软件,以满足对软件日益增长的需求
2)如何维护数量不断膨胀的已有软件。
2.软件生命周期由软件定义、软件开发和运行维护三个时期组成,每个时期又可进一步划分成若干个阶段。
软件定义划分为:
问题定义、可行性研究、需求分析
软件开发划分为:
总体设计、详细设计、编码和单元测试、综合测试。
运行维护:
不再分;
这8个阶段每个阶段的基本任务是什么?
1、问题定义:
明确要解决的问题是什么。
2、可行性研究:
这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。
3、需求分析:
准确的确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备哪些功能。
这个阶段的一项重要任务,是用正式文档准确记录对目标系统的需求,这份文档通常称为规格说明书。
4、总体设计:
必须回答的关键问题是“概括的说,应该怎样实现目标系统?
”总体设计又称为概要设计。
首先,应该设计出实现目标系统的几种可能的方案。
另一个就是设计程序的体系结构,也就是确定程序由哪些模块组成以及模块之间的关系。
5、详细设计:
关键问题是“应该怎样具体的实现这个系统呢?
”这个阶段将详细的设计每个模块,确定实现模块功能所需要的算法和数据结构。
6、编码和单元测试:
写出正确的容易理解、容易维护的程序模块。
选择一种高级语言,将详细设计的结果翻译成用选定的语言书写的程序,并且自习测试编写出的每一个模块。
7、综合测试:
通过各种类型的测试(及相应的调试)使软件达到预定的要求。
最基本的测试:
集成测试、验收测试;
8、软件维护:
通过各种必要的维护活动是系统持久的满足用户的需要。
通常有四类维护活动:
改正性维护,适应性维护,完善性维护,预防性维护。
3.软件过程的各种模型:
瀑布模型(文档驱动模型),快速原型模型,增量模型,螺旋模型(风险驱动的模型),喷泉模型(适用于面向对象软件开发),Rational统一过程,敏捷过程和极限编程,微软过程。
各模型的基本特点(描述出过程的特点能识别出是哪种过程模型)
4.软件工程的基本原理:
1)用分阶段的生命周期计划严格管理
2)坚持进行阶段评审
3)实行严格的产品控制
4)采用现代程序设计技术
5)结果应能清楚地审查
6)开发小组的人员应该少而精
7)承认不断改进软件工程实践的必要性。
第二章
5.可行性研究,应该至少从三个方面研究每种解法的可行性:
技术可行性、经济可行性、操作可行性。
6.可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。
7.可行性研究的过程包括哪些主要步骤?
1)复查系统规模和目标
2)研究目前正在使用的系统
3)导出新系统的高层逻辑模型
4)进一步定义问题
5)导出和评价供选择的解法
6)推荐行动方针
7)草拟开发计划
8)书写文档提交审查
8.数据流图是描绘系统逻辑功能的图形表示,掌握数据流图的基本符号和附加符号,会用数据流图描绘系统逻辑功能。
9.数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
定义数据的方法。
10.数据流图和数据字典共同构成了系统的逻辑模型。
11.货币时间价值的公式:
F=P(1+i)n
第三章
12.与用户沟通获取需求的方法有哪些?
访谈,面向数据流自顶向下求精,简易的应用规格说明技术,快速建立软件原型
13.软件需求规格说明书是需求分析阶段得出的最主要文档。
14.会画实体-联系图(E-R图):
实体、属性、联系
15.状态转换图,会看,明白其含义
16.层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。
会画层次方框图。
17.Warnier图也用树形结构描绘信息,但是比层次方框图提供更丰富的描绘手段,会看Warnier图,明白其含义。
18.IPO图是输入、处理、输出图的简称,它能够方便的描绘输入数据、对数据的处理和输出数据之间的关系。
改进的IPO图。
第五章
19.软件设计过程中应该遵循的基本原理:
1)模块化:
把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,由这些模块集成起来构成一个整体,可完成指定的功能,满足用户的需求。
2)抽象:
抽出事物的本质特征而暂时不考虑它们的细节。
3)逐步求精:
为了解决主要问题而推迟对问题细节的考虑,是一种把一个时期内要解决的问题按优先级排序的技术。
4)信息隐藏和局部化:
信息隐藏指的是一个模块包含的信息对不需要这些信息的模块来说是不能访问的。
局部化指把关系密切的软件元素物理地放得彼此靠近。
5)模块独立:
开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,可做到模块独立。
可用内聚和耦合来衡量模块的独立程度。
20.模块独立程度可以用内聚和耦合两个定性标准度量。
耦合衡量不同模块彼此间互相依赖的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。
21.有哪些种类的耦合?
各有什么特点?
数据耦合,控制耦合,特征耦合,公共环境耦合,内容耦合。
有关使用耦合的设计原则:
尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。
22.内聚分为高内聚、中内聚、低内聚。
各有哪几种?
各有什么特点?
偶然内聚、逻辑内聚、时间内聚是低内聚
过程内聚、通信内聚是中内聚
顺序内聚、功能内聚是高内聚
23.总体设计中用于改进软件设计提高软件质量的启发性规则:
1)改进软件结构提高模块独立性
2)模块规模应该适中
3)深度、宽度、扇出和扇入都应适当
4)模块的作用域应该在控制域之内
5)力争降低模块接口的复杂程度
6)设计单入口单出口的模块
7)模块功能应该可以预测
24.上题中深度、宽度、扇入、扇出的含义
深度:
表示软件结构中控制的层数,它往往能粗略地标志一个系统的大小和复杂程度。
宽度:
软件结构内同一个层次上的模块总数的最大值;
扇出:
一个模块直接控制(调用)的模块数目,扇出过大意味着模块过分复杂,需要控制和协调过多的下级模块;
扇入:
一个模块的扇入表明有多少个上级模块直接调用它,扇入越大则共享该模块的上级模块数目越多,这是有好处的。
25.层次图用来描绘软件的层次结构,层次图中一个矩形框代表一个模块,方框间的连线表示调用关系。
会画层次图。
26.HIPO图是“层次图加输入/处理/输出图”的英文缩写,会画HIPO图。
27.结构图是描绘软件结构的图形工具,图中一个方框代表一个模块,框内注明模块的名字或主要功能;方框之间的箭头表示模块的调用关系。
会画结构图。
第六章
结构程序设计对定义:
如果一个程序的代码块仅仅通过顺序、选择、和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口,一个出口,则称这个程序是结构化的。
28.结构化程序设计三种基本控制结构是:
顺序、选择、循环
29.掌握过程设计的几种工具:
程序流程图、盒图(N-S图)、PAD图、判定表、判定树、过程设计语言(伪码,这个要能看懂)。
30.会画流图,能够用三种方法计算程序环形复杂度。
1)流图中的区域树等于环形复杂度;
2)流图G中的环形复杂度等于V(G)=E—N+2;E是流图中边的条数,N是节点数。
3)流图G中的环形复杂度等于V(G)=P+1;P是图中判定结点的数目;
第七章
31.选择程序设计语言时应该尽量选用理想的高级语言,但是实际选取语言时不能仅仅使用理论上的标准,还必须同时考虑实用方面的各种限制。
32.软件测试是为了发现程序中的错误而执行程序的过程。
G.Myers给出了一些关于测试的规则,也可以看做是测试的目标或定义:
1)测试是为了发现程序中的错误而执行程序的过程。
2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。
3)成功的测试是发现了至今为止尚未发现的错误的测试。
33.大型软件系统的测试过程基本上由下述几个步骤组成:
模块测试(单元测试),子系统测试、系统测试(系统测试与子系统测试一起称为集成测试)、验收测试、平行运行。
各步骤的含义。
1)模块测试:
保证每个模块作为一个单元能正确运行,所以模块测试通常成为单元测试;
2)子系统测试:
把经过单元测试的模块放在一起形成子系统来测试。
模块间的协调和通信是这个测试过程中的主要问题,因此,这个步骤着重测试模块的接口。
3)系统测试:
把经过测试的子系统装配成一个完整的系统来测试。
不论是子系统测试还是系统测试,都兼有检测和组装两重含义,通常称为集成测试。
4)验收测试:
把软件系统作为单一的实体进行测试,测试内容与系统测试基本类似,但是它是在用户积极参与下进行的,而且可能主要是用实际数据进行测试。
验收测试也称为确认测试。
5)平行运行:
即同时运行新开发出来的系统和将被它取代的旧系统,以便比较新旧两个系统的处理结果。
34.软件测试准则:
1)所有测试都应该追溯到用户需求
2)应该远在测试开始之前就制定出测试计划
3)把Pareto原理应用到软件测试中(80%的错误出现在20%的模块中,因此应该重点测试它们)。
4)应该从小规模测试开始,并逐步进行大规模测试。
5)穷举测试是不可能的,因此必须精心设计测试方案,才有可能充分覆盖程序逻辑并使程序达到所要求的可靠性。
6)为了达到最佳的测试效果,应该由独立的第三方从事测试工作。
35.测试方法分为黑盒测试(又称功能测试)和白盒测试(又称结构测试)两种。
黑盒测试法:
不考虑程序的内部结构和处理过程,只是在程序接口进行的测试,只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当的接收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
又称为功能测试。
白盒测试法:
完全了解程序的内部结构和处理过程,按照程序内部的逻辑测试程序,检验程序中的每条通路是否能按预定要求正确工作。
又称为结构测试。
36.集成测试可以有非渐增式测试方法和渐增式测试方法,渐增式测试分为自顶向下和自底向上两种集成策略。
它们各表示什么含义。
非渐增式测试:
先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序。
渐增式测试:
把下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合起来进行测试。
37.逻辑覆盖是对一系列测试过程的总称,主要的覆盖标准有:
语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、点覆盖、边覆盖、路径覆盖。
每种覆盖是什么含义。
会用前5种覆盖标准设计测试用例。
38.会用基本路径测试技术设计测试用例
39.会写条件测试中的条件约束集。
40.理解结构化程序中的简单循环、嵌套循环和串接循环应该如何进行循环测试。
41.理解等价类划分和边界值分析两种黑盒测试技术。
7.7.1等价划分
等价划分是用黑盒法设计测试方案的一种技术。
其基本思想是:
选取少量最有代表性的输入数据,以期用较小的代价暴露出较多的程序错误。
如果把所有可能的输入数据(有效的和无效的)划分成若干个等价类,则可以合理地做出下述假定:
每类中的一个典型值在测试中的作用与这一类中所有其它值的作用相同。
因此,可以从每个等价类中只取一组数据作为测试数据。
这样选取的测试数据最有代表性,最可能发现程序中的错误。
42.理解调试的定义及过程。
调试是在测试发现错误之后排除错误的过程。
定义:
调试是在测试发现错误之后排除错误的过程;
调试过程(177页)
执行测试用例——>结果——>调试——>被怀疑的原因
43.理解估算程序中错误总数的两种方法:
植入错误法和分别测试法。
(1)错误植入法
测试前由专人在程序中随机植入一些错误,假设人为地植入的错误数为Ns,经过一段时间的测试后发现ns个植入的错误,此外还发现了n个原有的错误。
如果可以认为测试方案发现植入错误和发现原有错误的能力相同,则能够估计出程序中原有错误的总数为
这就是错误总数ET的估计值。
(2)分别测试法
如果有办法随机地把程序中一部分原有错误加上标记,然后根据测试过程中发现的有标记错误和无标记错误的比例,估算程序中的错误总数,则得到的结果比用植入错误法得到的更可信。
为了随机给一部分错误加标记,分别测试法使用两个测试员(测试小组),彼此独立测试同一个程序的两个副本,把其中一个测试员发现的错误作为有标记的错误。
用t表示测试时间,假设
t=0时错误总数为B0。
t=t1时测试员甲发现的错误数为B1。
t=t1时测试员乙发现的错误数为B2。
t=t1时两个测试员发现的相同错误数为bc。
如果认为测试员甲发现的错误是有标记的,即程序中有标记的错误总数为B1,则测试员乙发现的B2个错误中有bc个是有标记的。
假定测试员乙发现的有标记错误和发现无标记错误的概率相同,则可估算出测试前程序中的错误总数为:
第八章
44.软件维护主要包括改正性维护、适应性维护、完善性维护、预防性维护
定义:
在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
四种维护活动:
改正性维护:
诊断和改正错误的过程;50%—66%
适应性维护:
为了和变化了的环境适当地配合而进行的修改软件的活动;17%—21%
完善性维护:
满足用户提出的增加新功能或是修改已有功能的要求;18%—25%
预防性维护:
为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改软件的活动;4%
45.软件维护过程包括哪些活动?
1)建立维护组织
2)确定报告和评价过程(维护报告)
3)明确维护的事件流(规定一个标准化的事件序列)
4)保存维护记录
5)评价维护活动
46.决定软件可维护性的因素:
可理解性、可测试性、可修改性、可移植性、可重用性。
47.软件系统的文档分为用户文档和系统文档两类。
用户文档主要描述系统功能和使用方法,并不关心这些功能是怎样实现的;系统文档描述系统设计、实现和测试等各方面的内容。
第九章
48.面向对象方法学的要点:
对象、类、继承、通过传递消息互相联系。
具体解释如下:
1)认为客观世界是由各种对象组成的,软件中任何元素都是对象,复杂对象由简单对象组合而成。
2)把所有对象都划分成对象类(class),每个对象类都定义了一组数据和方法。
3)按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统。
下层可继承上层的特性。
4)对象彼此之间仅能通过传递消息互相联系。
对象有封装性,私有信息不能被外界直接访问。
49.面向对象方法包括的基本概念:
对象、类、实例、消息、方法、属性、封装、继承、多态性、重载。
以及各概念的含义。
50.用面向对象方法开发软件,通常需要建立三种形式的模型:
描述系统数据结构的对象模型;描述系统控制结构的动态模型和描述系统功能的功能模型。
51.类图是建立对象模型的工具。
类图的基本符号,尤其是定义类图的符号。
类图中表示关系的符号:
关联(包括限定关联)、聚集(包括共享聚集和组合聚集)、泛化(包括普通泛化和受限泛化,受限泛化的约束有多重、不相交、完全、不完全)、依赖、细化。
能够用类图建立对象模型。
52.用例图的作用和包含的模型元素:
用例图是进行需求分析和建立功能模型的强有力工具,用用例图建立起来的系统模型称为用例模型。
使用用例模型代替传统的功能说明往往能够更好的获取用户需求,它回答的问题是:
“系统应该为每个(或每类)用户做什么”。
用例图包含的模型元素有:
系统、行为者、用例、用例之间的关系。
第十三章
53.估算软件规模的两种常用的度量标准为:
代码行、功能点。
代码行:
每个人都估计程序的最小规模(a)最大规模(b)和最可能的规模(m),分别算出这3种规模的平均值a’,b’和m’之后,再用下式计算程序规模的估计值
代码行技术的主要优点是,代码是所有软件开发项目都有的“产品”,而且很容易计算代码行数。
代码行技术的缺点是:
源程序仅是软件配置的一个成分,用它的规模代表整个软件的规模似乎不太合理,用不同语言实现同一个软件所需要的代码行数并不相同;这种方法不适用于非过程语言。
1.信息域特性
功能点技术定义了信息域的5个特性,分别是输入项数(Inp)、输出项数(Out)、查询数(Inq)、主文件数(Maf)和外部接口数(Inf)。
UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf
其中,ai(1<=i<=5)是信息域特性系数,其值由相应特性的复杂级别决定
计算技术复杂性因子TCF
DI=∑Fi
技术复杂性因子TCF由下式计算:
TCF=0.65+0.01×DI
因为DI的值在0-70之间,所以TCF的值在0.65-1.35之间。
(3)计算功能点数FP
用下式计算功能点数FP:
FP=UFP×TCF
功能点数与所用的编程语言无关,看起来功能点技术比代码行技术更合理一些。
但是,在判断信息域特性复杂级别和技术因素的影响程度时,存在着相当大的主观因素。
54.制定进度计划的工具有:
Gantt图、工程网络。
理解这两种工具,能看懂,理解其中的一些关键概念,例如最早时刻、最迟时刻。
工程网络:
事件的最早时刻是该事件可以发生的最早时间。
通常工程网络中第一个事件的最早时刻定义为零,其他事件的最早时刻在工程网络上从左至右按事件发生顺序计算。
计算最早时刻EET使用下述3条简单规则:
(1)考虑进入该事件的所有作业;
(2)对于每个作业都计算它的持续时间与起始事件的EET之和;
(3)选取上述和数中的最大值作为该事件的最早时刻EET。
事件的最迟时刻是在不影响工程竣工时间的前提下,该事件最晚可以发生的时刻。
按惯例,最后一个事件(工程结束)的最迟时刻就是它的最早时刻。
其他事件的最迟时刻在工程网络上从右至左按逆作业流的方向计算。
计算最迟时刻LET使用下述3条规则:
(1)考虑离开该事件的所有作业;
(2)从每个作业的结束事件的最迟时刻中减去该作业的持续时间;
(3)选取上述差数中的最小值作为该事件的最迟时刻LET。
55.关键路径:
工程网络中最早时刻和最迟时刻相同的事件定义了关键路径。
关键路径上的事件(关键事件)必须准时发生,组成关键路径的作业(关键作业)的实际持续时间不能超过估计的持续时间,否则工程就不能准时结束。
56.什么是机动时间?
机动时间=(LET)结束-(EET)开始-持续时间
作业的机动时间=作业结束事件的最迟时间-作业开始事件的最早时间-作业持续时间。
57.民主制程序员组、主程序员组和现代程序员组的特点。
13.4.1民主制程序员组
民主制程序员组的一个重要特点是,小组成员完全平等,享有充分民主,通过协商做出技术决策。
因此,小组成员之间的通信是平行的,如果小组内有n个成员,则可能的通信信道共有n(n-1)/2条。
程序设计小组的人数不能太多,否则组员间彼此通信的时间将多于程序设计时间。
一般来说,程序设计小组的规模应该比较小,以2-8名成员为宜。
民主制程序员组的主要优点是,组员们对发现程序错误持积极的态度,这种态度有助于更快速地发现错误,从而导致高质量的代码。
民主制程序员组的另一个优点是,组员们享有充分民主,小组有高度凝聚力,组内学术空气浓厚,有利于攻克技术难关。
13.4.2主程序员组
美国IBM公司在20世纪70年代初期开始采用主程序员组的组织方式。
采用这种组织方式主要出于下述几点考虑:
(1)软件开发人员多数比较缺乏经验;
(2)程序设计过程中有许多事务性的工作,例如,大量信息的存储和更新;
(3)多渠道通信很费时间,将降低程序员的生产率。
主程序员组用经验多,技术好,能力强的程序员作为主程序员,同时,利用人和计算机在事务性工作方面给主程序员提供充分支持,而且所有通信都通过一两个人进行。
主程序员组的两个重要特性:
(1)专业化。
该组每名成员仅完成他们受过专业训练的那些工作。
(2)层次化。
主程序员指挥每名组员工作,并对程序全部负责。
13.4.3现代程序员组
一个技术负责人,负责小组的技术活动;一个行政负责人,负责所有非技术性事务的管理决策。
这样的组织结构如图13.6所示
由于程序员组成员人数不宜过多,当软件项目规模较大时,应该把程序员分成若干个小组,采用图13.7所示的组织结构。
58.能力成熟度模型的5个等级为:
初始级、可重复级、已定义级、已管理级、优化级。
各级的特点是什么?
1.初始级
软件过程的特征是无序的,有时甚至是混乱的。
几乎没有什么过程是经过定义的(即没有一个定型的过程模型),项目能否成功完全取决于开发人员的个人能力。
处于1级成熟度的软件机构,其过程能力是不可预测的,其软件过程是不稳定的,产品质量只能根据相关人员的个人工作能力而不是软件机构的过程能力来预测。
2.可重复级
软件机构建立了基本的项目管理过程(过程模型),可跟踪成本、进度、功能和质量。
已经建立起必要的过程规范,对新项目的策划和管理过程是基于以前类似项目的实践经验,使得有类似应用经验的软件项目能够再次取得成功。
达到2级的一个目标是使项目管理过程稳定,从而使得软件机构能重复以前在成功项目中所进行过的软件项目工程实践。
处于2级成熟度的软件机构的过程能力可以概括为,软件项目的策划和跟踪是稳定的,已经为一个有纪律的管理过程提供了可重复以前成功实践的项
目环境。
软件项目工程活动处于项目管理体系的有效控制之下,执行着基于以前项目的准则且合乎现实的计划。
3.已定义级
软件机构已经定义了完整的软件过程(过程模型),软件过程已经文档化和标准化。
所有项目组都使用文档化的、经过批准的过程来开发和维护软件。
这一级包含了第2级的全部特征。
处于3级成熟度的软件机构的过程能力可以概括为,无论是管理活动还是工程活动都是稳定的。
软件开发的成本和进度以及产品的功能和质量都受到控制,而且软件产品的质量具有可追溯性。
4.已管理级
软件机构对软件过程(过程模型和过程实例)和软件产品都建立了定量的质量目标,所有项目的重要的过程活动都是可度量的。
该软件机构收集了过程度量和产品度量的方法并加以运用,可以定量地了解和控制软件过程和软件产品,并为评定项目的过程质量和产品质量奠定了基础。
这一级包含了第3级的全部特征。
处于4级成熟度的软件机构的过程能力可以概括为,软件过程是可度量的,软件过程在可度量的范围内运行。
这一级的过程能力允许软件机构在定量的范围内预测过程和产品质量趋势,在发生偏离时可及时采取措施予以纠正,并且可以预期软件产品是高质量的。
5.优化级
这一级的软件机构是一个以防止出现缺陷为目标的机构,它有能力识别软件过程要素的薄弱环节,并有足够的手段改进它们。
在这样的机构中,可以获得关于软件过程有效性的统计数据,利用这些数据可以对新技术进行成本/效益分析,并可以优化出在软件工程实践中能够采用的最佳新技术。
这一级包含了第4级的全部特征。
处于5级成熟度的软件机构的过程能力可以概括为,软件过程是可优化的。
这一级的软件机构能够不断地改进其过程能力,即对现行的过程实例不断地改进和优化,又借助于所采用的新技术和新方法来实现未来的过程改进。
注意考试要求:
1.答应用题时,一定不能只写最后结果,要把产生这个结果的原因写清楚。
比如,如果回答一个要求你用逻辑覆盖法中的分支覆盖写测试用例的题目,一定不能只把测试用例写出来,还要写出该测试用例是覆盖哪个分支的。
因为这样的题目正确答案往往不止一个,如果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中国海洋大学 考研 期末 软件工程复习资料综述 中国海洋 大学 软件工程 复习资料 综述