软件工程复习

工程

  • 软件工程是将系统化规范化可度量的方法应用于软件的开发运行和维护的工程。

生命周期模型

  • 瀑布模型

    • 阶段间具有顺序性和依赖性特点:阶段间具有顺序性和依赖性
    • 推迟实现的特点
    • 质量保证的观点:每个阶段要求写文档,每个阶段结束时进行文档评审
    • 缺点:瀑布模型由文档驱动,可能导致最后的结果不能满足用户需求。
    • 现在大多包含反馈环
  • 增量模型

    • 使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。
    • 当把新构件集成到现有构件中时,所形成的产品必须是可测试的。
    • 特点:将软件看作一系列相互联系的增量,在开发过程的各次迭代中,每次完成其中的一个增量。
    • 缺点:开发过程中,修改需求会边做边改,导致软件过程的控制失去整体性。需要软件具有开放性,
  • 演化模型

    • 主要针对事先不能完整定义需求的软件开发。把项目需求分组,分批循环开发,
    • 缺点:需要严格的过程管理,一开始弄清产品需求。
  • 并发模型

  • 统一软件过程

    ​ 横轴各阶段以时间坐标组织,具有过程展开的生命周期特征,体现开发过程的动态结构,用来描述它的术语主要包括周期,阶段,迭代何里程碑。纵轴以内容来组织为自然的逻辑活动,体现开发过程的静态结构,用来描述它的术语主要包括活动,产物,工作者和工作流。

    ​ 被分为四个顺序阶段,初始阶段,细化阶段,构造阶段和交付阶段。

  • 螺旋模型

管理

  • 4p:人员,管理,过程,项目
估算
  • 功能点:FP=总计数 × [ 0.65 + 0.01 × ∑ F i ] \times[0.65+0.01\times\sum F_i] ×[0.65+0.01×Fi]

    总计数和项目各功能点,简单,一般,复杂相关。

    F i F_i Fi和项目的复杂度调整因子相关

  • 代码行: n 1 n_1 n1=在一个程序中出现的不同操作符的个数,分号,括号也都算

    n 2 n_2 n2=在一个程序中出现的不同操作数的个数

    ​ 程序长度N= n 1 log ⁡ 2 n 1 + n 2 log ⁡ 2 n 2 n_1\log_2n_1+n_2\log_2n_2 n1log2n1+n2log2n2

    ​ 程序体积V= N log ⁡ 2 n 1 + n 2 N\log_2n_1+n_2 Nlog2n1+n2

  • COCOMOII

    • 对象点数目:累加所有带权重的对象实例
    • 将开发的新对象点数目NOP=对象点数目 × ( 100 − R E U S E % ) / 100 \times(100-REUSE\%)/100 ×(100REUSE%)/100
    • 生产率PROD=NOP/人月
    • 项目需要的人月数PM=NOP/PROD
  • 复利,单利

    • 复利现值计算

      • 年金终值:指一定时期内每期期末等额收付款的复利终值和(每年给银行存x元,最后有多少钱,用于算赚的钱)

        F = A × ( 1 + i ) n − 1 i F=A\times\frac{(1+i)^{n}-1}{i} F=A×i(1+i)n1

    • 年金现值计算

      • 年金现值:指一定时期内每期期末收付款项的复利现值之和(每年给银行还x元,算一开始借了多少钱,交的x元包括借的本金和产生的利息)

        P = A × 1 − ( 1 + i ) − n i P=A\times\frac{1-(1+i)^{-n}}{i} P=A×i1(1+i)n

质量

风险(机遇)

  • 项目风险源于任何项目中都存在的不确定性
  • 一般认为软件风险有3种类型,即项目风险技术风险商业风险
  • 风险曝光度=风险按预期值=风险发生概率 × \times ×风险发生时带来的项目成本

分析指标

  • 期望值
  • 标准离差(标准差)
  • 标准离差率:标准离差与期望值之比
  • 预期值不同的时候用标准离差率,预期值相同的时候用标准差

决策树在这里插入图片描述

在这里插入图片描述

分析-----设计-----实现-----测试-----度量

测试

  • 单元,集成,系统,确认
  • 驱动模块
  • 桩模块
  • 结构化,面向对象,覆盖路径,随机测试,划分测试

黑盒

白盒

  • 路径覆盖:指选择足够的测试用例,使流程图中的每条路径至少经过一次。

  • 判断覆盖:又叫分支覆盖,就是使每个判定的所有可能结果至少出现一次。

  • 条件覆盖:不仅每个判定都取得各种结果,而且判定表达式中的每个条件也都取得各种可能的结果。

  • 测试用例

环复杂度

计算方法

  • V(G)=流图中区域的数量
  • V(G)=E-N+2 (E指流图中边的数目,N是流图中结点的数目)
  • V(G)=P+1 (P是流图中判定节点的数目,有多条出去的箭头)

流程图

  • ER图
  • 用例图
  • 活动图
  • 类图
  • 顺序图
  • 状态图

流图

数据流图

  • 怎么画

  • 输入,处理,输出

  • 转换成软件结构图

软件结构图

设计原则

  • 开闭原则:一个模块在扩展性方面应该是开放的而在修改方面应该是封闭的。
  • 里氏替换:子类应当可以替换父类并出现在父类能够出现的任何地方。
  • 接口分离:采用多个与特定客户类有关的接口比采用一个通用的涵盖多个业务方法的接口要好。
  • 依赖位置:在进行业务设计时,与特定业务有关的依赖关系应该尽量依赖接口和抽象类,而不是依赖于具体类。

类的设计

可见性

实现对象A 到对象B 的可见性

  • 参数可见性:B 是A 中方法的参数。
  • 属性可见性:B 是A 的属性。
  • 局部可见性:B 是A 中方法的局部对象。
  • 全局可见性:B 具有某种方式的全局可见性。

面向类的度量

CK套件度量

  • WMC=每个方法的权重的和(不要漏了类的构造方法)

    如果有多个类,算平均值

  • DIT=继承树的深度(自己不算)

  • NOC=子女的数量(直接从属)

  • CBO=与该类有关联的类的个数

  • RFC=该类可以调用的方法个数(不要漏了类的构造方法)

MOOD度量套件

  • 方法继承因子

    M I F = ∑ i = 1 T C M i ( C i ) ∑ i = 1 T C M a ( C i ) MIF=\frac{\sum_{i=1}^{TC}M_i(C_i)}{\sum_{i=1}^{TC}M_a(C_i)} MIF=i=1TCMa(Ci)i=1TCMi(Ci)

    M i M_i Mi为继承的但是没有被覆盖的方法

    M a M_a Ma为该类所有能用到方法

    每个类继承的方法的和 除 每个类继承的方法+自己的方法

  • 耦合因子

    C F = ∑ i = 1 T C ∑ j = 1 T C i s _ c l i e n t ( C i , C j ) T C 2 − T C CF=\frac{\sum_{i=1}^{TC}\sum_{j=1}^{TC}is\_client(C_i,C_j)}{TC^{2}-TC} CF=TC2TCi=1TCj=1TCis_client(Ci,Cj)

    关联个数 除 类的平方-类

  • 多态因子

    P F = ∑ i = 1 T C M o ( C i ) ∑ i = 1 T C [ M n ( C i ) × D C ( C i ) ] PF=\frac{\sum_{i=1}^{TC}M_o(C_i)}{\sum_{i=1}^{TC}[M_n(C_i)\times DC(C_i)]} PF=i=1TC[Mn(Ci)×DC(Ci)]i=1TCMo(Ci)

    M o M_o Mo为覆盖的方法个数

    M n M_n Mn为新的方法个数

    D C DC DC为后代类的个数

    每个类重写的方法个数 除 每个类子类个数*自己新方法个数

项目进度获取值分析

  • BCWS 计划完成工作的预算成本:到目前为止的总预算成本。计划上到当前应该完成的工作的估计成本。
  • ACWP 以完成工作的实际成本:到目前为止所完成工作的实际成本。实际已经完成的工作的实际成本。
  • BCWP 已完成工作的预算成本:到目前为止已经完成的工作的原来预算成本。实际已经完成的工作的估计成本。
  • BAC 完成工作的预算成本:是项目计划中的成本估算结果,是项目完成的预计总成本。所有工作的估计成本。
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
VR(Virtual Reality)即虚拟现实,是一种可以创建和体验虚拟世界的计算机技术。它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真,使用户沉浸到该环境。VR技术通过模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。 VR技术具有以下主要特点: 沉浸感:用户感到作为主角存在于模拟环境的真实程度。理想的模拟环境应该使用户难以分辨真假,使用户全身心地投入到计算机创建的三维虚拟环境,该环境的一切看上去是真的,听上去是真的,动起来是真的,甚至闻起来、尝起来等一切感觉都是真的,如同在现实世界的感觉一样。 交互性:用户对模拟环境内物体的可操作程度和从环境得到反馈的自然程度(包括实时性)。例如,用户可以用手去直接抓取模拟环境虚拟的物体,这时手有握着东西的感觉,并可以感觉物体的重量,视野被抓的物体也能立刻随着手的移动而移动。 构想性:也称想象性,指用户沉浸在多维信息空间,依靠自己的感知和认知能力获取知识,发挥主观能动性,寻求解答,形成的概念。此概念不仅是指观念上或语言上的创意,而且可以是指对某些客观存在事物的创造性设想和安排。 VR技术可以应用于各个领域,如游戏、娱乐、教育、医疗、军事、房地产、工业仿真等。随着VR技术的不断发展,它正在改变人们的生活和工作方式,为人们带来全的体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值