zoukankan      html  css  js  c++  java
  • 软件过程

    典型软件生存周期:

    需求分析——软件分析——软件设计——编码(测试)——软件测试——运行维护

    软件过程

    1.瀑布模型:

          

    2.快速原型模型

    快速原型模型需要迅速建造一个可以运行的软件原型 ,以便理解和澄清问题,使开发人员与用户达成共识,最终在确定的客户需求基础上开发客户满意的软件产品。 快速原型模型允许在需求分析阶段对软件的需求进行初步而非完全的分析和定义,快速设计开发出软件系统的原型,该原型向用户展示待开发软件的全部或部分功能和性能;用户对该原型进行测试评定,给出具体改进意见以丰富细化软件需求;开发人员据此对软件进行修改完善,直至用户满意认可之后,进行软件的完整实现及测试、维护。

    3.增量模型

    增量模型融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。当使用增量模型时,第1个增量往往是核心的产品,即第1个增量实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。

    4.螺旋模型

    螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。

    每轮循环包含如下六个步骤:
    1. 确定目标,可选项,以及强制条件。
    2. 识别并化解风险。
    3. 评估可选项。
    4. 开发并测试当前阶段。
    5. 规划下一阶段。
    6. 确定进入下一阶段的方法步骤。
     
    5.构建集成模型
    构件组装模型融合了螺旋模型的许多特征。它本质上是演化的支持软件开发的迭代方法。但是,构件组装模型是利用预先包装好的软件构件(有时称为“类”)来构造应用程序的。
     
    6.转换模型
    该模型结合了形式化软件开发方法和程序自动生成技术,采用形式化需求规格说明和变换技术等技术手段,生产目标程序系统。
    软件需求分析确定以后,选用某种形式化的需求规格说明语言描述软件规格说明,可以生成形式化的规格说明。为了确认该形式化规格说明与软件需求的一致性,还可以在形式化规格说明的基础上开发一个软件原型,让用户对该软件原型系统的界面,功能和性能进行确认,必要时,可对形式化需求说明和原型进行修改,直到形式化规格说明能正确反映用户需求为止。然后进行一系列的人机交互或全自动的程序变换,直到生成计算机系统可以接受的目标代码。

    7.净室模型

       净室模型是一种形式化的增量开发模型。基本思想是力求在分析和设计阶段就消除错误,确保正确,然后在无缺陷或“洁净”的状态下实现软件的制作。

       和增量模型一样,净室开发把软件看成一系列的增量,每个增量是一个形式化方法表示的“盒”。当需求收集结束后,就用盒结构表示分析和设计模型。这种“盒”是在某个特定的抽象层次上对系统(或系统的某些方面)的一次封装。完成了盒结构设计之后,先对设计的软件构件进行正确性检验;通过正确性验证后,再将形式化的盒结构设计转换为适当的程序设计语言,并进行源代码的正确性验证;接着开始统计性使用测试,即根据统计样本得出使用分布概率,按此概率进行随机测试;以上工作全部完成后,还要对增量进行集成前的认证。

  • 相关阅读:
    字节码编程,Javassist篇四《通过字节码插桩监控方法采集运行时入参出参和异常信息》
    字节码编程,Javassist篇三《使用Javassist在运行时重新加载类「替换原方法输出不一样的结果」》
    字节码编程,Javassist篇二《定义属性以及创建方法时多种入参和出参类型的使用》
    字节码编程,Javassist篇一《基于javassist的第一个案例helloworld》
    CPU瞒着内存竟干出这种事
    可怕!CPU竟成了黑客的帮凶!
    完了!CPU一味求快出事儿了!
    如果平行宇宙也有编程语言
    你离黑客的距离,就差这20个神器了
    哈希表哪家强?几大编程语言吵起来了!
  • 原文地址:https://www.cnblogs.com/chenshaogang/p/4374033.html
Copyright © 2011-2022 走看看