软件工程期末复习
填空题:
-
测量是对产品或过程的某个属性的范围. 数量. 维度等提供的定量表示,如某个程序模块所含代码函数。而测度是测量的一个行为,把数字或符号分配给现实世界实体的属性的过程
-
软件项目管理的四个p:people product process project
-
软件能力成熟度模型cmm分为五个等级,分别为:初始级,可重复级,已定义级,已定量管理级,优化级
-
如果每两天发生一个错误,那系统在第二天的不失败的概率是0.25
-
版本控制是全面实行软件配置管理的基础,是对系统不同版本进行标识和跟踪的过程
-
基线是已经通过正式复审和批准的某规约或产品,它可以作为进一步的基础并且只能通过正式的变化控制过程的改变
-
在公共过程框架中,一个任务级包括了工作任务. 里程碑. 交付物和质量保证点
-
软件风险管理是贯穿在项目开发过程中的一系列管理步骤。包括风险识别. 风险分析. 风险规划和风险监控
-
软件风险两个主要特性:不确定性和损失
-
软件工程是一种层次化的技术,包括过程. 方法和工具
-
一般而言,单独测试某一模块时,要为他设计驱动程序和桩模块,他们的作用是分别模拟被测试模块的上层调用模块和直接重属模块。
-
系统工程的层次结构包括全局试图. 领域试图. 要素试图和详细视图
-
功能独立性是模块化和抽象以及信息隐藏概念的直接产物,是通过两项质量标准(内聚和耦合)来衡量的。
-
常见过程模型包括瀑布模型. 增量过程模型. 原型和螺旋模型等,其中螺旋模型是风险驱动型的模型
-
软件测试的任务是发现错误,而调试的任务是诊断和改正程序的错误
-
计算机软件是一种逻辑产品,它与具体的物质实体有很大的区别,软件具有抽象性
选择题:
-
汽车有一个发动机,汽车和发动机之间的关系是整体和部分的关系
-
检测软件产品是否符合需求定义的过程称为确认测试
-
评价良构模块独立性的标准是高内聚低耦合
-
uml中有多种视图表示,我们可以利用时序图来进行动态建模
-
软件测试的目的是发现软件的错误
-
程序的三种基本控制结构的共同特点是:单入口,单出口
-
软件是不可见的复杂的逻辑实体,不同于任何其他制造业的产品,使得软件质量难以把握的一个因素是软件需求
-
进度安排的好坏往往会影响整个项目的按期完成,甘特图是软件进度安排的好方法
-
需求分析是分析员了解用户需求,认真细致地调研分析,最终建立目标系统的逻辑模型,并写出软件规格说明的过程
-
基线是软件生成期各开发阶段的一个特定点,它可以作为一个检查点,它是经过评审的软件配置项和交付物的集合
-
FTR是一种由软件工程师或相关人员进行的软件质量保证
-
封装是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外是隐藏的,外界只能通过有限的接口与对象发生联系
-
传统的结构化方法设计的结果是模块结构图,分析的结果是DFD(顺序流图)
计算题:
-
存钱5年后使用,5年年利率为5%,5年后需要资金25000元,单利计算情况下,目前需要存入的资金是多少?
知识点: 单利计算:不取出直到到期 复利计算:每年都取出本金和利息然后再存款 年金计算:每年取出本金和利息并再投入一倍本金在存款 解法 x+x*1.05*5 = 25000 25000/6.25 = 4000
-
投资18万元,期限4年,所期望的投资报酬率为10%,每年能获得现金流6万元,该项目是否可行?
知识点: 净现值计算:未来收入总现值-所有支出的现值 解法: 用6万元做年金计算得到年金现值 - 投资成本18万元 净现值大于零则可行
6 ∗ 1 − ( 1 + 0.1 ) − 4 0.1 − 18 = 1.2 6*\frac{1-(1+0.1)^{-4}}{0.1}-18=1.2 6∗0.11−(1+0.1)−4−18=1.2
-
加权因子为4,不考虑复杂度调整值,即为0
用户输入数 用户输出数 用户查询数 用户文件数 外部界面数 25 20 20 10 8 -
计算功能点总集数FP
0.65是固定值
F P = ( 25 + 20 + 20 + 10 + 8 ) ∗ 4 ∗ ( 0.65 + 0 ) = 215.8 FP=(25+20+20+10+8)*4*(0.65+0)=215.8 FP=(25+20+20+10+8)∗4∗(0.65+0)=215.8
-
设平均生产率为 10FP/pm,劳动力价格3000元,求每个FP的成本
3000 10 = 300 元 \frac{3000}{10}=300 \text{ 元} 103000=300 元 -
根据FP值计算总项目成本,并进行工作量估算(人月)
总 成 本 = 300 ∗ 215.8 = 64740 (元) E = 215.8 10 = 21.58 (人月) 总成本=300*215.8=64740 \text{ (元)} \\ E=\frac{215.8}{10}=21.58 \text{ (人月)} 总成本=300∗215.8=64740 (元)E=10215.8=21.58 (人月)
-
-
开发人员M=3,代码行数=12.1K LOC,工作量E=24pm,成本168000,计算生产率P和每行代码平均成本C
P = 12.1 ∗ 1000 ÷ 24 = 504.17 C = 168000 ÷ ( 12.1 ∗ 1000 ) = 13.88 P=12.1*1000\div24=504.17 \\ C=168000\div(12.1*1000)=13.88 P=12.1∗1000÷24=504.17C=168000÷(12.1∗1000)=13.88 -
甲比乙贵6000元,但每年节约2500元,使用5年,年利率为6%,选哪款?
净现值问题 以2500元为投资计算甲的年金现值-成本6000 若大于6000则表示有利
2500 ∗ 1 − ( 1 + 0.06 ) − 5 0.06 − 6000 = 4259.17 < 6000 2500*\frac{1-(1+0.06)^{-5}}{0.06}-6000=4259.17 \lt 6000 2500∗0.061−(1+0.06)−5−6000=4259.17<6000
-
计算MIF. PF
-
概念:
M d : declar 声明的方法数量 M i : inherit 继承的方法数量(非覆盖) M a = M d + M i : associate 关联的方法数量 M o : override 覆盖的方法数量 M n : new 新的方法数量 D C : 后代数量,子类的个数 M_d\text{ : declar 声明的方法数量} \\ M_i\text{ : inherit 继承的方法数量(非覆盖)} \\ M_a=M_d+M_i\text{ : associate 关联的方法数量} \\ M_o\text{ : override 覆盖的方法数量} \\ M_n\text{ : new 新的方法数量} \\ DC\text{ : 后代数量,子类的个数} Md : declar 声明的方法数量Mi : inherit 继承的方法数量(非覆盖)Ma=Md+Mi : associate 关联的方法数量Mo : override 覆盖的方法数量Mn : new 新的方法数量DC : 后代数量,子类的个数 -
题目
class A { int a; void x(){} void y(){} } class B extends A { int b; int bb; void x(){} void y(){} void z(){} } class C extends B { int c; void z(){} void w(){} }
类 Mi Md Ma Mn Mo DC A 0 2 2 2 0 2 B 0 3 3 1 2 1 C 2 2 4 1 1 0 -
计算MIF
M I F = ∑ M i ∑ M a = 0 + 0 + 2 2 + 3 + 4 = 2 9 MIF=\frac{\sum{M_i}}{\sum{M_a}}=\frac{0+0+2}{2+3+4}=\frac{2}{9} MIF=∑Ma∑Mi=2+3+40+0+2=92 -
计算PF
P F = ∑ M o ∑ ( M n ∗ D C ) = 0 + 2 + 1 ( 2 ∗ 2 ) + ( 1 ∗ 1 ) + ( 1 ∗ 0 ) = 3 5 PF=\frac{\sum{M_o}}{\sum{(M_n*DC)}}=\frac{0+2+1}{(2*2)+(1*1)+(1*0)}=\frac{3}{5} PF=∑(Mn∗DC)∑Mo=(2∗2)+(1∗1)+(1∗0)0+2+1=53
-
分析题
-
DFD绘制
典中典之教材购销系统
0层 1层 2.1层 购书处理展开 2.2层 进书处理展开 -
ER图. 类图. 用例图. 顺序图等
-