北理工软件工程概论复习重点.docx
《北理工软件工程概论复习重点.docx》由会员分享,可在线阅读,更多相关《北理工软件工程概论复习重点.docx(15页珍藏版)》请在冰点文库上搜索。
北理工软件工程概论复习重点
基本概念及管理部分复习题
一、填空:
1.软件工程是将系统化的、严格约束的、可量化的方法应用于软件开发运行和维护,即将工程化应用于软件,并包括上述方法的研究。
[1.11]
2.软件危机的主要特点是,开发周期大大超过规定日期;软件系统开发成本高、质量差;质量得不到保证;软件系统开发人员短缺、质量低;软件系统维护难度大。
[1.9]
3.软件工程的三个视角为工程的视角、技术的视角、管理的视角。
[1.12]
4.软件的特点是:
没有物理形态的产品;质量因素仅取决于与产品研制过程与批量生产过程无关;没有磨损,维护内容和其他产品不同;软件产品具有很强的定制性。
[1.6]
5.软件过程模型的定义是:
根据不同的实际项目来定义,贯穿于生命周期之中的,一组关键区域。
[1.16]
6.软件工程管理要点(4个P)是:
人员、产品、过程、项目。
[5.41]
7.软件的错误通常来源于:
处理逻辑、数据处理、标准化处理、规约、用户界面、错误检测、硬件接口、软件接口。
[5.29]
8.软件项目生产率测量包括:
文档页数、评审次数、发现的错误数、功能点、交付的源代码行数
[5.30]
9.软件测量的基本指标:
正确性、可维护性、完整性、可用性。
[5.38]
10.可维护性是指:
错误容易修改;环境变化容易适应。
采用间接测量技术。
可维护性软件与不可维护软件相比,MTTC(mean-time-to-change)平均修改时间较低。
[5.39]
11.项目计划活动:
第一个活动是可行性分析第二个活动是估算开发所用资源。
[5.3]
12.项目计划中,估算软件开发资源包括:
开发环境资源(软件、硬件、工具)、可复用的软件构件、人力资源。
[5.4]
13.任务进度的执行指标是(scheduleperformedindex,SPI):
SPI=BCWPi/BCWSi。
[5.55]
14.在软件项目计划中,甘特图(GanttChart)可用于表示任务时间和进度的计划。
[5.43]
二、简答:
1.简述顺序模型、增量模型和喷泉模型的形式(可以画图表示)和特征。
[1.17]
顺序模型强调顺序性阶段性很弱的反馈
喷泉模型同时并发,循环
增量模型强调版本的价值
2.如果你遇到一个已经有先例的项目,你会选择怎样的模型?
如果项目的规模较大且时间又紧怎么办?
[1.25]
项目情况适用模型
•已经有先例的项目顺序模型(瀑布模型)
•问题明确且时间紧的项目RAD模型
•规模较大且时间紧的项目增量模型
•需求不确定的项目原型模型
•带有突破性技术的项目螺旋模型
•客户难以沟通和理解的项目原型模型
•明显复用潜力的项目构件模型
3.简述一般性风险包括的主要内容。
一般性风险分类
说明
产品规模(PS)
与总体规模相关的风险
商业影响(BU)
与市场约束相关的风险
客户特征(CU)
与客户素质及沟通程度相关的风险
过程定义(PD)
与过程定义及遵守程度相关的风险
开发环境(DE)
与开发工具的可用性相关的风险
建造的技术(TE)
与开发复杂性及技术新旧程度相关的风险
人员和经验(ST)
与开发人员技术水平及经验相关的风险
系统分析部分习题
一、填空:
1.软件系统工程分为两种,一种为业务过程工程,另一种为产品工程。
2.使某项业务能够有效地使用软件系统建造的信息体系,这种软件系统被称为:
业务过程工程。
3.将给定的功能映射为软件工作产品,这种软件系统被称为:
产品过程。
4.系统分析的建模分析语境图分为:
用户界面处理输入处理输出处理处理和控制功能测试和维护。
5.软件需求分析(系统分析)的产品是软件需求规格说明。
6.结构化分析的数据建模是对系统中所有数据的描述,功能建模是对系中加工规约的描述,行为建模是对系统的控制规约的描述。
7.结构化分析的模型的工具是:
实体-关系图ERD(数据建模)数据流模型图DFD[可加控制流CFD](功能建模)状态转换图STD(行为建模)数据字典DD。
8.实体关系图的基本元素是:
数据对象、属性、关系,以及关系上的三种表示一对多一对一、多对多。
9.数据流图(dataflowdiagramDFD)的基本元素是:
变换处理外部实体输入输出数据存储加工说明。
10.数据字典描述的内容包括:
名称别名何处使用/如何使用内容描述补充信息。
11.数据流图DFD,从问题陈述中区分所有动词和名词,动词作为变换处理名词作为外部实体控制队形数据存储。
12.面向对象分析建造系统的基本元素是封装了操作的对象类,以及类的实例对象。
13.领域分析的目标是创建可以广泛地用于整个应用领域范畴的可复用的软构件。
14..UML(UnifiedModelingLanguage)用于确定表示和记录软件系统,它提供的是模型符号标记,尤其适用于面向对象那个的软件分析和设计。
15.5.UseCase使用场景图,表示案例与角色的交互,从用户的角度对系统的要求。
16.Class类图,用关联来表示对象类之间的关系,只反映系统的静态结构_。
17.7.Sequence顺序图(轨迹图),表示每个使用案例所涉及对象之间的时间轨迹表示。
用确定对象事件来提取对象类的操作。
18.8.Collaboration合作图,以不同方式表示的顺序图,强调每个对象(类)的事件,表示出每个类上的作用事件,以及发出事件。
19.9.StateTransition状态转换图,表示一个对象(类)的所有状态转换描述。
21.对象的状态是行为属性的值,可以刻画一个对象行为的条件和范围。
22.Component构件图,表示系统组装成分。
相关的某些多个类构成的子系统共同协作完成一个特定的服务,则它们被组成构件。
23.Deployment布置图,表示软件组件的划分和部署示意图,属于软件体系结构的描述。
24.继承表示子类可以自动拥有父类全部属性和服务的对象类之间的关系。
25.聚合表示对象之间(即一个或一些对象是另一个对象的组成或部分)的组成关系。
二、简答:
1.简述面向对象方法和结构化方法的最根本的区别
实体组装式;过程算法式
1)结构化分析的实体关系图,关注实体的属性和相互间的关系;而面向对象的分析,除此之外还有非常主要的一点,就是关注实体的行为。
2)结构化分析的数据流图,将数据和加工处理分开;而面向对象的分析是将数据实体和他们的处理动作视为不可分割的整体来考虑的。
3)结构化分析建造系统的元素是基于功能及过程的;而面向对象分析建造系统的基本元素是封装了操作的对象类,以及类的实例对象
2.简述结构化分析步骤
对问题陈述做语法分析:
(1)区分所有动词和名词
(2)动词作为“变换处理”
(3)名词作为外部实体、控制对象和数据存储
(4)画DFD(5)对“变换”做进一步的陈述精化
(6)重复做1)到4)步(7)适当加入控制线,画CFD
(8)用状态变迁图协助分析控制事件和系统状态,画STD
(9)可以写必要的规约变换加工小说明
(10)对所有系统的加工和产生数据,以及控制事件和转换状态定义数据字典DD,既明确做出解释。
3.举例说明继承关系和聚合关系
答:
继承关系:
B=A+B’
C=A+C’
聚合关系:
A=B+C
4.简述面向对象分析方法的步骤
1)分析使用场景,画UseCase2)标识对象类
3)画Class对象类图4)组织类结构(继承、聚合关系)
5)定义主题(子系统包)6)画Sequence顺序图(轨迹图)
7)画StateTransition状态图8)画Collaboration协作图
软件设计部分复习题
一、填空:
1.软件设计的4个活动包括:
数据设计,体系结构设计,接口设计,和构建逻辑设计。
2.软件设计的三个基本思想方法是抽象逐步求精模块化。
3.模块划分的可以带来模块成本下降,但是模块划分也会带来集成成本增高的问题。
4.水平划分是将系统功能划分成独立的几部分,(输入、处理、输出),这样可以使系统问题清晰、互无干扰。
5.垂直划分的表示原则是:
上层不做具体处理,最下层(叶节点)做具体的处理。
这样的分层便于引发的副作用小。
6.一个模块直接修改另一个模块的内容,这种耦合被称为内容耦合。
7.公共耦合是指两个以上的模块共同引用一个全局数据。
8.控制耦合是指接收模块的动作依赖于控制信号。
9.两个模块接口的参数,包含相同的内部结构。
这种耦合称为标记耦合。
10.数据耦合是最好的模块耦合方式,仅是模块之间的数据传递。
11.偶然内聚是一种不好的内聚方式,它是把没有关系的分散在多处的成分组成模块。
12.仅仅是逻辑功能相关成分合在一起的内聚形式,叫做逻辑内聚。
13.时间内聚是将需要在同一时间执行并无逻辑联系的成分组成模块。
14.把过程顺序相关的功能成分合在一起的内聚形式,叫做过程内聚。
15.通讯内聚是将需要对相同的外部数据进行操作的成分合在一起。
16.一个内部成分的输出是另一个内部成分的输入,这样可以将它们合起来,这样的方式我们叫它顺序内聚。
17.理想的内聚方式是只完成单一的功能的功能内聚。
18.产生模块不可预测的原因通常是非单一功能成分的组合,或者是内部多分支情况处理。
19.界面的问题设计包括:
系统响应的时间问题、联机帮助、错误提示问题和命令标记。
20.界面设计的基本原则,也称黄金规则,包括:
①至于用户的控制之下、
②减少用户的记忆负担③保持界面风格一致。
21.面向对象设计方法的子系统(服务)划分是分层的,其层次与外界可视性相关。
22.面向对象设计方法的服务之间有两种形式的:
它们是C/S和P2P方式。
23.控制线程操作的分布性问题,在面向对象设计方法中,叫做并发性设计。
24.面向对象的任务管理设计其目标是设计系统的分散服务对象,组成独立并发的任务。
25.面向对象设计中的通讯设计,是完成系统中服务对象的协作关系描述,采用“协议”的方式,协议包括:
消息格式,访问的登记,注册权限。
26.面向对象的设计方法中,对象设计包括两部分的描述接口和实现。
二、简答:
1.举例说明分解模块可以减少控制信息传递
分解
2.举例说明合并模块可以减少全局数据的引用
K功能
如果B做出的判断,也要影响到C,需要加标记到A。
怎样解决才是更合理的安排?
为什么?
3.
G
F
E
A
B
C
D
B的判断上移,或C下移到B的控制域内
4.简述在界面设计时,问题设计中错误提示应具有的特征:
•使用可理解的术语
•提供从错误中恢复的建议•指出错误导致的不良后果
•应该有视觉和听觉提示•不应带有责怪色彩
5.将下面的程序流程图转换为N-S图:
答案见课件第三章51页。
开始
s1
Y
N
x>1
s2s3
i:
=1
N
i<5
Y
Y
N
y>0
s4s5
i:
=i+1
s6
Y
z>0
N
s7
s8
结束
6.将下面的变化行数据流图(DFD)转换为初始的模块结构图(MSD):
1
7
acij
6
3
4
5
g
ef
2
d
9
bhk
(注:
虚线表示输入、变换、输出之间的界面)
控制模块
输出处理模块
主要处理模块
输入处理模块
7.用决策表描述下列问题:
根据库存量与价格考虑对商品调价。
如果库存在5000以上,价格在100元以上,可以下调价格10%,价格在100月以下,可下调5%;如果库存在5000以下,价格在100元以上,可上调10%,价格在100元以下,可上调20%。
条件
1
2
3
4
库存在5000元以上
T
T
F
F
库存在5000元以下
F
F
T
T
价格在100元以上
T
F
T
F
价格在100元以下
F
T
F
T
动作
可下调10%
√
可下调5%
√
可上调10%
√
可上调20%
√
测试部分复习题
一、填空:
1.软件测试的目标是努力产生一个好的测试案例,为了发现软件中的错误。
2.能成功发现软件错误的测试才是好的测试。
3.冗余测试案例就是重复相同意义的测试案例。
4.黑盒测试,是为证实软件功能的测试,其途径是通过在软件接口上进行测试。
5.为证实软件内部的执行规约,在程序内部寻找错误的测试被称为白盒测试。
6.路径测试中的独立路径是指路径至少沿一条新的边移动的路径。
7.等价测试中,定义等价测试案例根据输入分类,分为4类①输入时指定范围②输入是特定范围③输入是集合的元素④输入时布尔值。
8.边界值测试策略中,如果输入是在a和b指定范围内,则测试案例应该包括:
案例执行包含a,b,略小于a和略大于b。
9.附属于编码步骤的测试被称为单元测试。
11.软件调试的过程是发现错误并消除错误的过程。
12.面向对象的测试焦点是类。
13.面向对象测试技术中的随机测试方法,是在最小和最大测试序列之间随机地产生一系列的不同操作案例。
14.面向对象技术测试的划分测试方法,是按照状态操作属性操作基本操作来划分类中的操作,设计案例的。
15.面向对象的线程测试可以用协作图来规划测试案例。
16.通过UseCase,捕获用户必须完成的任务,来设计案例测试软件的方法,叫做基于使用的集成测试方法。
17.基于行为的测试,是以状态转换图来导出测试案例的。
二、简答:
1.简述设计白盒测试案例的目标是什么
白盒测试案例的目标:
1)保证模块中的所有独立路径至少被使用一次
2)对所有逻辑值均需测试真和假,
3)在上下边界及可操作范围内运行所有循环
4)检查内部数据结构以确保有效的范围
2.简述自顶向下和自底向上策略的集成步骤。
自顶向下步骤:
1.主控模块作为测试驱动
2.下层桩模块,每次一个地被替代为真实模块
3.测试每次真实模块替代的情况
4.回归测试
5.循环2到4,直到整个系统被构造
自底向上集成步骤:
1.底层模块组合为特定功能的簇
2.编写驱动程序,包括测试簇的输入输出案例
3.测试簇
4.移走驱动程序,向上扩大簇的组合
3.简述测试和测试。
α测试:
用户到开发场所,在开发者指导下进行测试,开发者记录出现的问题
β测试:
用户在使用现场,开发者不在场,用户记录使用中的问题,报告问题
4.根据下面给出的流图,设计最少的测试案例,实现路径测试全部分支覆盖。
(其中:
A,B,C是输入数据。
语句块改变B、C的值,B:
=B+1、C:
=C+1;语句块改变A的值,A:
=A+1。
除此之外,其它语句块均不改变它们的值。
)
环路复杂度=4
nY
路径11-2-3-4-5,路径2,3,4……
A>3
测试案例:
y
路径1A=3B=1C=2
路径2A=4B=1C=3
y
路径3A=5B=3C=2
nY
y
nY
4
C>1
6
8
7
B>2
1
2
3
5
路径4A=6B=4C=0
5.简述面向对象分析方法步骤