• 教育软件项目的开发过程与模型

    普通类
    • 支持
    • 批判
    • 提问
    • 解释
    • 补充
    • 删除
    • 一、教育软件项目开发一般过程

    (一)教育软件项目开发过程定义

     教育软件项目开发过程 是以教育软件项目生命周期各阶段的活动划分为基础,将用户需求转化为软件系统活动集合的过程。

    (二)教育软件项目开发过程的六个阶段

    1. 开发计划:相关系统分析员和用户初步了解需求,然后用WORD列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。 
    2. 需求分析:系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚例用系统大致的大功能模块,大功能模块有哪些小功能模块,并且还例出相关的界面和界面功能。系统分析员和用户再次确认需求。 
    3. 软件设计:系统分析员根据确认的需求文档所例用的界面和功能需求,用迭代的方式对每个界面或功能做系统的概要设计。 
    4. 编码:系统分析员把写好的概要设计文档给程序员,程序员根据所例出的功能一个一个的编写。 
    5. 软件测试:测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能,然后验收。 

    6.软件维护:对产品进行管理

    如图1所示:

                                                  图1 软件项目开发过程阶段图

    • 二、教育软件项目开发过程模型

    软件开发模型给出了软件开发活动各阶段之间的关系,它是软件开发过程的概括,是软件工程的重要内容。软件开发模型为软件工程管理提供了里程碑和进度表,为软件开发过程提供了原则和方法。

    软件开发模型大体上可分为三种类型。第一种是以软件需求完全确定为前提的瀑布模型;第二种是在软件开发初始阶段只能提供基本需求时采用的迭代式或渐进式开发模型,例如,喷泉模型、螺旋模型、统一开发过程和敏捷方法等;第三种是以形式化开发方法为基础的变换模型。

    (一)瀑布模型

    软件开发生命周期(Software Development Life Cycle,SDLC)模型的发展体现了软件工程理论的发展。在最早的时候,软件的开发过程处于无序和混乱的情况,人们为了能够控制软件的开发过程,就将软件开发严格区分为多个不同的阶段,并在阶段之间加上严格的审查,这就是瀑布模型产生的起因。瀑布模型是一种严格定义方法,它将软件开发的过程分为软件计划、需求分析、软件设计、程序编码、软件测试和运行维护6个阶段,形如瀑布流水,最终得到软件产品,如图2所示。

     瀑布模型

    图2 瀑布模型 

    优点:瀑布模型是一个线性顺序模型,支持直线开发。它假设当线性序列完成之后就能交付一个完善的系统,并没有考虑软件的演化特征。其优点是强调开发的阶段性、早期计划及需求调查和产品测试,以这样严格的方式构造软件,开发人员很清楚每一步应该做什么,有利于项目管理。

    缺点:在瀑布模型中,依赖于早期进行的需求调查,不能适应需求的变化;由于是单一流程,开发中的经验教训不能反馈应用于本产品的过程;风险往往迟至后期的开发阶段才显露出来,从而失去了及早纠正的机会。在瀑布模型中,需求或设计中的错误往往只有到了项目后期才能够被发现,对于项目风险的控制能力较弱,从而导致项目常常延期完成,开发费用超出预算。

     (二)演化模型

     

    演化模型主要针对事先不能完整定义需求的软件开发,是在快速开发一个原型的基础上,根据用户在调用原型的过程中提出的反馈意见和建议,对原型进行改进,获得原型的新版本,重复这一过程,直到演化成最终的软件产品。

     

    优点:任何功能一经开发就能进入测试,以便验证是否符合产品需求,可以帮助导引出高质量的产品要求。

    缺点:如果不加控制地让用户接触开发中尚未稳定的功能,可能对开发人员及用户都会产生负面的影响。 

     

    (三)螺旋模型

    螺旋模型是瀑布模型与演化模型相结合,并加入两者所忽略的风险分析所建立的一种软件开发模型。螺旋模型是一种演化软件过程模型,它将原型实现的迭代特征与线性顺序模型中控制的和系统化的方面结合起来,使软件的增量版本的快速开发成为可能。在螺旋模型中,软件开发是一系列的增量发布。

    螺旋模型沿着螺线进行若干次迭代,每次迭代都包括制订计划、风险分析、实施工程和客户评估四个方面的工作。螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,继而做出应有的反应。因此,特别适用于庞大、复杂并具有高风险的系统。图3-2即为螺旋模型的结构图。

     螺旋模型

    图3 螺旋模型

    优点:与瀑布模型相比,螺旋模型支持用户需求的动态变化,为用户参与软件开发的所有关键决策提供了方便,有助于提高软件的适应能力,并且为项目管理人员及时调整管理决策提供了便利,从而降低了软件开发的风险。

    缺点:在使用螺旋模型进行软件开发时,需要开发人员具有相当丰富的风险评估经验和专门知识。另外,过多的迭代次数会增加开发成本,延迟提交时间。

    (四) 喷泉模型

    喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。该模型认为软件开发过程自下而上的各阶段是相互重叠和多次反复的,就像水喷上去又可以落下来,类似一个喷泉。各个开发阶段没有特定的次序要求,并且可以交互进行,可以在某个开发阶段中随时补充其他任何开发阶段中的遗漏。

    优点:在喷泉模型中,各活动之间无明显边界,例如,分析和设计之间没有明显的边界。这种特性称为无间隙性。由于对象概念的引入,只用类和关系来表达分析、设计和实现等活动,从而可以较容易地实现活动的迭代和无间隙,提高软件项目开发效率,节省开发时间。

    (五) 变换模型

    变换模型是基于形式化规格说明语言和程序变换的软件开发模型,它对形式化的软件规格说明进行一系列自动或半自动的程序变换,最后映射为计算机能够接受的软件系统。为了确认形式化规格说明与软件需求的一致性,往往以形式化规格说明为基础开发一个软件原型,用户可以从人机界面、系统主要功能和性能等方面对原型进行评审。必要时,可以修改软件需求、形式化规格说明和原型,直至原型被确认为止。这时,开发人员即可对形式化的规格说明进行一系列的程序变换,直至生成计算机可以接受的目标代码。

    程序变换是软件开发的另一种方法,其基本思想是把程序设计的过程分为生成阶段和改进阶段。首先,通过对问题的分析制订形式规范并生成一个程序,通常是一种函数型的递归方程。然后,通过一系列保持正确性的源程序到源程序的变换,把函数型风格转换成过程型风格,并进行数据结构和算法的求精,最终得到一个有效的面向过程的程序。这种变换过程是一种严格的形式推导过程,所以只需对变换前的程序的规范加以验证,变换后的程序的正确性将由变换法则的正确性来保证。

    优点:变换模型解决了代码结构经多次修改而变坏的问题,减少了许多中间步骤(例如,设计、编码和测试等)。

    缺点:变换模型以形式化开发方法为基础的变换模型需要严格的数学理论和一整套开发环境的支持。

    (六)智能模型

    智能模型也称为基于知识的软件开发模型,它综合了上述若干模型,并把专家系统结合在一起。该模型应用基于规则的系统,采用规约和推理机制,帮助开发人员完成开发工作,并使维护在系统规格说明一级进行。为此,需要建立知识库,将模型本身、软件工程知识与特定领域的知识分别存入知识库。

    (七)V模型

    V模型是在快速应用开发模型基础上演变而来,由于将整个开发过程构造成一个V字形而得名。V模型应用在软件测试方面,和瀑布模型有着一些共同的特征。V模型中的过程从左到右,描述了基本的开发过程和测试行为,其价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程各阶段的对应关系,如图3-3所示。

     V模型

    图4 V模型

    在V模型中,单元测试是基于代码的测试,最初由开发人员执行,以验证程序代码的各个部分是否已达到预期的功能要求;集成测试验证了两个以上单元之间的集成是否正确,并有针对性地对详细设计中所定义的各单元之间的接口进行检查;在所有单元测试和集成测试完成后,系统测试开始以客户环境模拟系统的运行,以验证系统是否达到了在概要设计中所定义的功能和性能;最后,当技术部门完成了所有测试工作后,由业务专家或用户进行验收测试,以确保产品能真正符合用户业务上的需要。

    优点:V模型强调软件开发的协作和速度,将软件实现和验证有机地结合起来,在保证较高的软件质量情况下缩短开发周期。V模型适合企业级的软件开发,它更清楚地揭示了软件开发过程的特性及其本质。

     

    • 标签:
    • 过程
    • 教育软件
    • 项目
    • 模型
    • 开发
    • 参考
    • 资源
    • 阶段
    • 拓展
    • 五个
  • 加入的知识群:
    学习元评论 (0条)

    评论为空
    聪明如你,不妨在这 发表你的看法与心得 ~



    登录之后可以发表学习元评论
      
暂无内容~~
顶部