软件工程期末考试复习总结知识点必考题型 本文关键词:必考,软件工程,知识点,题型,期末考试
软件工程期末考试复习总结知识点必考题型 本文简介:软件工程复习资料1.软件危机产生的原因(1)软件不同于硬件,它是计算机系统的逻辑部件而不是物理部件。在写出程序代码并在计算机上试运行之前软件开发过程的进展情况较难衡量。很难检验开发的正确性且软件开发的质量也较难评价。因此控制软件开发过程相当困难。此外在软件运行过程中发现错误很可能是遇到了一个在开发期
软件工程期末考试复习总结知识点必考题型 本文内容:
软件工程复习资料
1.
软件危机产生的原因
(1)
软件不同于硬件,它是计算机系统的逻辑部件而不是物理部件。在写出程序代码并在计算机上试运行之前软件开发过程的进展情况较难衡量。很难检验开发的正确性且软件开发的质量也较难评价。因此控制软件开发过程相当困难。此外在软件运行过程中发现错误很可能是遇到了一个在开发期间引入的但在测试阶段没有能够检测出来的错误,所以软件维护常常意味着修改原来的设计。这样维护的费用十分惊人,客观上使得软件较难维护。
(2)
软件开发的过程是多人分工合作分阶段完成的过程,参与人员之间的沟通和配合十分重要。但是,相当多的软件开发人员对软件的开发和维护存在不少错误的观念。在实践的过程中没有采用工程化的方法,或多或少采用了一些错误的方法和技术。这是造成软件危机的主要原因。
(3)
开发和管理人员只重视开发而轻视问题的定义,使软件产品无法满足用户的要求。对用户的要求没有完整准确的认识就急于编写程序。这是许多软件开发失败的另一主要原因。事实上,许多用户在开始时并不能准确具体地叙述他们的需要。软件人员需要做大量深入细致的调查研究工作,反复多次与用户交流信息,才能真正全面、准确、具体地了解用户的要求。
(4)
软件管理技术不能满足现代软件开发的需要,没有统一的软件质量管理规范。首先是文档缺乏一致性和完整性,从而失去管理的依据。因为程序只是完整软件产品的一个组成部分。一个软件产品必须由一组的配置组成,不能只重视程序而应当特别重视软件配置。其次,由于成本估计不准确,资金分配混乱,人员组织不合理,进度安排无序,导致软件技术无法实施。
(5)
在软件的开发和维护关系问题上存在错误的观念。软件维护工作通常是在软件完成之后进行的,因此是极端艰巨复杂的工作,需要花费很大的代价。所以做好软件的定义工作是降低软件成本,提高软件质量的关键。如果软件人员在定义阶段没有正确、全面地理解用户要求,直到测试阶段才发现软件产品不完全符合用户的需要,这时再修改就为时已晚了。另外,在软件生存期的不同结点进行修改需要付出的代价是很不相同的。在早期引入变更涉及面较小,付出的代价较低,在开发的中期软件配置的许多成分已经完成,引入一个变更可能需要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上更复杂。因而付出的代价剧增。在软“已经完成“后再引入变更。则需要付出更高得多的代价。因此,必须把软件维护的观念引入软件开发的各个阶段,建立起软件开发与维护的正确关系。
2.软件工程的概念
软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
2.
软件工程的三要素
方法、工具和过程
3.
软件工程的基本原理
(1)
用分阶段的生命周期计划严格管理
(2)
坚持进行阶段评审
(3)
实行严格的产品控制
(4)
采用现代程序设计技术
(5)
结果应能清楚地审查
(6)
开发小组的人员应该少而精
(7)
承认不断改进软件工程实践的必要性
4.
软件生命周期
问题定义
可行性研究
需求分析
总体设计
详细设计
编码和单元测试
综合测试
软件维护
5.
瀑布模型存在的问题
靠文档驱动,用户不能全面地认识动态的软件产品。且过于理想化,可能出现设计上的错误。缺乏灵活性。
6.
RUP统一过程的四个阶段
RUP模型将软件开发过程分为4个大的阶段,分别是先启、精化、(构建)和产品化。
7.
可行性分析研究的主要目的
用最小的代价在尽可能小的时间内,确定问题是否能解决,从而确定问题是否值得去解决。
8.
需求分析阶段所有分析方法需要遵守的准则
(1)
必须理解并描述问题的信息域,根据这条准则必须建立数据模型。
(2)
必须定义软件应完成的功能,这条准则要求建立功能模型。
(3)
必须描述作为外部事件结果的软件行为,这条准则要求建立行为准则。
(4)
必须对描述信息,功能和行为的模型进行分解,用层次的方式展示细节。
9.
需求分析的目的
准确的回答“系统必须做什么”这个问题
10.
数据字典的作用和概念
概念:数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。
作用:数据字典和数据流图共同构成系统的逻辑模型。没有流图数据字典难以发挥作用。没有数据字典,数据流图就不严格。
11.
数据流图的图形元素
→
数据流
□
数据的源点或终点
变换数据的处理
〓
数据存储
12.
E-R图(非画图题)
在ER图中有如下四个成分:
矩形框:表示实体,在框中记入实体名。
菱形框:表示联系,在框中记入联系名。
椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下划一下划线。
连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上标注联系的类型。(对于一对一联系,要在两个实体连线方向各写1;
对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M。)
构成E-R图的3个基本要素是实体型、属性和联系,其表示方法为:
实体
一般认为,客观上可以相互区分的事物就是实体,实体可以是具体的人和物,也可以是抽象的概念与联系。关键在于一个实体能与另一个实体相区别,具有相同属性的实体具有相同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体。在E-R图中用矩形表示,矩形框内写明实体名;比如学生张三、学生李四都是实体。如果是弱实体的话,在矩形外面再套实线矩形。
属性
实体所具有的某一特性,一个实体可由若干个属性来刻画。属性不能脱离实体,属性是相对实体而言的。在E-R图中用椭圆形表示,并用无向边将其与相应的实体连接起来;比如学生的姓名、学号、性别、都是属性。如果是多值属性的话,在椭圆形外面再套实线椭圆。如果是派生属性则用虚线椭圆表示。
联系
联系也称关系,信息世界中反映实体内部或实体之间的关联。实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。在E-R图中用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1
:
1,1
:
n或m
:
n)。比如老师给学生授课存在授课关系,学生选课存在选课关系。如果是弱实体的联系则在菱形外面再套菱形
13.
需求分析和软件设计两个阶段的目的
需求分析:确定对系统的综合要求
分析系统的数据要求
导出系统的逻辑模型
修正系统开发计划
软件设计:用比较抽象概括的方式确定目标系统如何完成预定任务。
14.
信息隐藏的概念
在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是不可访问的。
15.
耦合的概念和分类
概念:耦合性是程序结构中各个模块之间相互关联的度量.它取决于各个模块之间的接口的复杂程度、调用模块的方式以及哪些信息通过接口.
分类:内容耦合,公共耦合,外部耦合,控制耦合,标记耦合,数据耦合,非直接耦合,顺序耦合(耦合度由高到低排列)
16.
内聚的概念和分类
概念:内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。
分类:偶然内聚,逻辑内聚,时间内聚,过程内聚,通信内聚,顺序内聚,功能内聚(内聚度由弱到强排列)
17.
模块化的概念
概念:把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
18.
详细设计的任务
确定怎样具体的实现用户需要的软件系统,也就是要设计出程序的蓝图(书上)
(网上)(1)为每个模块进行详细的算法设计。用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。
(2)为模块内的数据结构进行设计。对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。
(3)为数据结构进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。
(4)其他设计:根据软件系统的类型,还可能要进行以下设计:
①代码设计。为了提高数据的输入、分类、存储、检索等操作,节约内存空间,对数据库中的某些数据项的值要进行代码设计。
②输入/输出格式设计。
③人机对话设计。对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容、格式的具体设计。
(5)编写详细设计说明书。
(6)评审。对处理过程的算法和数据库的物理结构都要评审。
19.
设计复审的目的和作用
避免后期付出高代价
20.
判定树,判定表
判定树和判定表是用于描述结构化分析方法中(数据加工)环节的工具
21.
结构化程序设计的三种结构
顺序,选择,循环
22.
画N-S图和pad图
Pad:
N-S图
23.
软件测试的目的
发现程序中的错误而执行程序的过程
24.
软件测试的方法(黑盒
时序图描述的事物:
时序图描述系统中类和类之间的交互,将这些交互建模成消息交换,时序图描述了类以及类之间的交换以完成的期望行为的消息,时序图中每条消息都代表了类的一个操作
或者
引起状态机改变的触发事件;
时序图表示
:
参与交互的对象在时序图顶端水平排列,每个对象的底端绘制了一条垂直虚线,对象A像对象B发送消息,用一条带箭头的实线表示,该实线起始于对象A底部的虚线,终止于对象B底部的虚线;
实线箭头水平放置,越靠近顶端越早被发送.
时序图轨迹
:
时序图提供了随时间推移的,清晰的
可视化的轨迹;
时序图组成
:
时序图包括四个元素
对象(Object),生命线(Lifeline),激活(Activation),消息(Message);
协作图
:
协作图是
一种
类图,包含
类元角色
和
关联角色,不仅仅是
类元
和
关联;
--
强调
:
强调参与交互的
各个对象的结构信息
和
组织;
协作图建模对象
:
对有交互的对象
和
这些对象之间的关系建模,不参与交互的对象及它们的关系忽略;
协作图内容
:
协作图中表现了
类操作中用到的参数,布局变量,操作中的永久链;
对象图扩展
:
协作图可以看做对象图的扩展,该图展示了对象之间的关联,显示出了对象间的消息传递;
41.
软件重用的定义和层次(三个层次)
定义:软件重用,是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。
层次:
(1)知识重用(例如,软件工程知识的重用)。
(2)方法和标准的重用(例如,面向对象方法或国家制定的软件开发规范的重用)。
(3)软件成分的重用。
42.
面向对象设计的启发规则
1、
设计结果应该清晰易懂
2、
一般特殊结构的深度适当
3、
设计简单的类
4、
使用简单的协议
5、
使用简单的服务
6、
把设计变动减至最小
43.
软件质量的的概念
概括地说,软件质量就是“反应实体满足明确的和隐含的需求的能力的特性的总和”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的和隐含特征相一致的程度。
44.
软件可移植性
把程序从一种硬件配置和软件系统环境转移到另一种配置和环境时,需要的工作量多少。有一种度量方法是:用原来的程序设计和调试的成本除移植时需要的费用
44.软件工程管理的定义
45.
能力成熟度模型作用
1.初始级
软件过程的特征是无序的,有时甚至是混乱的。
2.可重复级
软件机构建立了基本的项目管理过程(过程模型),可跟踪成本、进度、功能和质量。
3.已定义级
软件机构已经定义了完整的软件过程(过程模型),软件过程已经文档化和标准化。
4.已管理级
软件机构对软件过程(过程模型和过程实例)和软件产品都建立了定量的质量目标,所有项目的重要的过程活动都是可度量的。
5.优化级
软件机构集中精力持续不断地改进软件过程。这一级的软件机构是一个以防止出现缺陷为目标的机构,它有能力识别软件过程要素的薄弱环节,并有足够的手段改进它们。
46.
基线的概念
基线(baseline)——经过正式审查和认可作为以后进一步演进的基础,并且只有通过正式的更改控制规程才能进行更改的规格说明或产品。
简而言之
基线就是通过了正式复审的软件配置项。
47.
关键路径的概念
关键事件:EET(最早时刻)=LET(最迟时刻)
48.
度量软件规模的常用技术
代码行技术
估算方法:
由多名有经验的软件工程师分别做出估计。
每个人都估计程序的最小规模(a)、最大规模(b)和最可能的规模(m),
分别算出这3种规模的平均值之后,再用下式计算程序规模的估计值:
L=a+4m+b6
单位:
LOC或KLOC。
代码行技术的优点:
代码是所有软件开发项目都有的“产品”,而且很容易计算代码行数;
有大量参考文献和数据。
代码行技术的缺点:
源程序仅是软件配置的一个成分,由源程序度量软件规模不太合理;
用不同语言实现同一个软件所需要的代码行数并不相同;
不适用于非过程性语言。
功能点技术
功能点技术依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。这种方法用功能点(FP)为单位度量软件规模。
1.
信息域特性
输入项数(Inp)、输出项数(Out)、查询数(Inq)、主文件数(Maf)、外部接口数(Inf)
每个特征根据其复杂程度分配一个功能点数,即信息域特征系数a1,a2,a3,a4,a5
2.
估算功能点的步骤
(1)
计算未调整的功能点数UFP
UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf
(2)
计算技术复杂性因子TCF
技术因素对软件规模的综合影响程度DI:
DI=i=114Fi
技术复杂性因子TCF由下式计算:
TCF
=
0.65
+
0.01
×
DI
因为DI的值在0~70之间,所以TCF的值在0.65~1.35之间。
(3)
计算功能点数FP
FP
=
UFP
×
TCF
功能点技术优点:与所用的编程语言无关,比代码行技术更合理。
功能点技术缺点:在判断信息域特性复杂级别和技术因素的影响程度时主观因素较大,对经验依赖性较强。
49.
评价软件质量的因素(常见的4个)
可维护性,可靠性,可理解性,效率
50.COCOMO2模型
3个层次的估算模型:
应用系统组成模型:这个模型主要用于估算构建原型的工作量,模型名字暗示在构建原型时大量使用已有的构件。
早期设计模型:这个模型适用于体系结构设计阶段。
后体系结构模型:这个模型适用于完成体系结构设计之后的软件开发阶段。
COCOMO2使用的5个分级因素:项目先例性、开发灵活性、风险排除度、项目组凝聚力、过程成熟度
1.
请使用N-S图、PAD图描述下列程序的算法。
(1)在数据A(1)~A(10)中求最大数和次大数。
2.
某公司为本科以上学历的人重新分配工作,分配原则如下:
(1)如果年龄不满18岁,学历是本科,男性要求报考研究生,女性则担任行政工作;
(2)如果年龄满18岁不满50岁,学历本科,不分男女,任中层领导职务,学历是硕士不分男女,任课题组组长;
(3)如果年龄满50岁,学历本科,男性任科研人员,女性则担任资料员,学历是硕士不分男女,任课题组组长。
要求:画出分析过程,得出判定表,并进行化简。
3.
“一个程序读入3个整数,它们分别代表一个三角形的3个边长。该程序判断所输入的整数是否构成一个三角形,以及该三角形是一般的、等腰的或等边的,并将结果打印出来。”
要求:设三角形的3条边分别为A、B、C,并且
(1)
列出等价类表,格式如下:
输入条件有效等价类无效等价类
(注意:将等价类编号)(注意:将等价类编号)
(2)
设计测试用例,格式如下:
用例n:输入【A,B,C】覆盖等价类……(列出等价类序号),输出结果为……。
例如:用例10:输入【3,3,3】覆盖等价类(100)(600),输出结果为等边三角形。
1.
网络的普及带给了人们更多的学习途径,随之而来的管理远程网络教学的“远程网络教学系统”诞生了。
“远程网络教学系统”的功能需求如下:
a)学生登录网站后,可以浏览课件、查找课件、下载课件、观看教学视频。
b)教师登录网站后,可以上传课件、上传教学视频、发布教学心得、查看教学心得、修改教学心得。
c)系统管理员负责对网站页面的维护、审核不合法课件和不合法教学信息、批准用户注册。
1)学生需要登录“远程网络教学系统”后才能正常使用该系统的所有功能。如果忘
记密码,可与通过“找回密码”功能恢复密码。请画出学生参与者的用例图。
2)教师如果忘记密码,可以通过“找回密码”功能找回密码。请画出教师参与者的用例图
2.
图书管理系统功能性需求说明如下:
图书管理系统能够为一定数量的借阅者提供服务。每个借阅者能够拥有唯一标识其存在的编号。图书馆向每一个借阅者发放图书证,其中包含每一个借阅者的编号和个人信息。提供的服务包括:提供查询图书信息、查询个人信息服务和预定图书服务等。
当借阅者需要借阅图书、归还书籍时需要通过图书管理员进行,即借阅者不直接与系统交互,而是通过图书管理员充当借阅者的代理和系统交互。
系统管理员主要负责系统的管理维护工作,包括对图书、数目、借阅者的添加、删除和修改。并且能够查询借阅者、图书和图书管理员的信息。
可以通过图书的名称或图书的ISBN/ISSN号对图书进行查找。
回答下面问题:
(1)
该系统中有哪些参与者?
借阅者
图书管理员
系统管理员
(2)
确定该系统中的类,找出类之间的关系并画出类图.
(3)
画出语境“借阅者预定图书”的时序图。
(4)