【系分论文】论软件开发模型及应用

论题

论软件开发模型及应用

论题介绍

软件开发模型( Software Development Model)是指软件开发全部过程、活动和任务的结构框架。软件开发过程包括需求、设计、编码和测试等阶段,有时也包括维护阶段。软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要任务和活动,用来作为软件项目工作的基础。对于不同的软件项目,针对应用需求、项目复杂程度、规模等不同要求,可以采用不同的开发模型,并采用相应的人员组织策略、管理方法、工具和环境。

请围绕“软件开发模型及应用”论题,依次从以下三个方面进行论述。

  • 简要叙述你参与的软件开发项目以及你所承担的主要工作。
  • 列举出几种典型的软件开发模型,并概要论述每种软件开发模型的主要思想
    和技术特点。
  • 根据你所参与的项目中使用的软件开发模型,具体阐述使用方法和实施效果。

论文要点

问题1要点

  • 软件系统的概要:系统的背景、发起单位、目的、开发周期、交付的产品等。
  • “我”的角色和担任的主要工作。

问题2要点

  • 常用的开发模型:瀑布模型、快速原型模型、演化模型、增量模型、螺旋模型、喷泉模型、敏捷方法。
  • 每种软件开发模型的主要思想和技术特点。
    问题3要点
  • 在项目中所采用的开发模型,具体实施效果如何。
  • 还有哪些地方值得改进或提高。

理论素材准备

常见开发模型及特点:

瀑布模型:严格遵循软件生命周期各阶段的固定顺序, 一个阶段完成再进入另一个阶段。 其优点是可以使过程比较规范化, 有利于评审;缺点在于过于理想, 缺乏灵活性, 容易产生需求偏差。
快速原型模型:对于许多需求不够明确的项目, 比较适合采用该模型。 它采用了一种动态定义需求的方法, 通过快速地建立一个能够反映用户主要需求的软件原型, 让用户在计算机上使用它, 了解其概要, 再根据反馈的结果进行修改, 因此能够充分体现用户的参与和决策。
演化模型:也是一种原型化开发, 但与快速原型不同的是, 快速原型模型在获得真实需求时,就将抛弃原型。 而演化模型则不然, 它将从初始的模型中逐渐演化为最终软件产品, 是一种“渐进式” 原型法。
增量模型:它采用的是一种“递增式” 模型, 它将软件产品划分成为一系列的增量构件, 分别进行设计、 编码、 集成和测试。
螺旋模型:结合了瀑布模型和演化模型的优点, 最主要的特点在于加入了风险分析。 它是由制定计划、 风险分析、 实施工程、 客户评估这一循环组成的, 它最初从概念项目开始第一个螺旋。
喷泉模型:主要用于描述面向对象的开发过程, 最核心的特点是迭代。 所有的开发活动没有
明显的边界, 允许各种开发活动交叉进行。
统一过程(UP) :统一过程是一个通用过程框架, 可以用于种类广泛的软件系统、 不同的应用领域、 不同的组织类型、 不同的性能水平和不同的项目规模。 UP是基于构件的, 在为软件系统建模时, UP使用的是UML。 与其他软件过程相比, UP具有三个显著的特点, 即用例驱动、 以架构为中心、 迭代和增量。
敏捷方法:敏捷方法是一种以人为核心、迭代、循序渐进的开发方法。在敏捷方法中,软件项目的构建被切分成多个子项目,各个子项目成果都经过测试,具备集成和可运行的特征。在敏捷方法中, 从开发者的角度来看,主要的关注点有短平快的会议、小版本发布、较少的文档、合作为重、客户直接参与、自动化测试、适应性计划调整和结对编程;从管理者的角度来看,主要的关注点有测试驱动开发、持续集成和重构。

范文

摘要

  本文结合作者实践,讨论软件开发模型在出版社ERP系统中的应用。在互联网信息时代,传统出版行业受到冲击,图书发行种类和发行量在下降。当前商业环境要求出版社必须放弃以前粗犷的管理方式,通过系统化的管理思想对企业资源进行调度管控。通过ERP系统改善出版社业务流程,提高企业核心竞争力势在必行。ERP系统复杂度比较高,想保证项目成功,就必须系统的运用软件开发模型作为指导。在本文中首先对出版社ERP系统进行了概要性的描述。然后列举了几种主要的开发模型,以及这些模型的特点,分析哪种模型更适合出版社ERP项目。最后结合我们的出版社ERP系统,具体分析快速原型法的使用方法、实施效果以及经验教训。在本系统的开发过程中,我担负了技术负责人的工作。

正文

  我工作的单位是一家跨国出版发行集团,其中图书出版是我集团重要业务板块之一。我集团下有七家出版社,由于各出版社主营图书方向不同,业务上也有很大差异。为加强企业内部控制,规范各社业务流程,提高管理水平、工作效率,我集团于2015年8月开始建设出版社ERP系统。我在该项目中担任了技术负责人的角色。出版社ERP系统主要由编务、出版、发行、财务四个子系统构成。其中编务系统负责图书的内容生产;出版系统负责图书的成品印刷生产;发行系统是图书的批发销售系统;财务系统相对比较传统,与主流生产销售型企业没有大的区别。由于财务和发行系统用户相对比较固定,各出版社在这两个板块上业务差别不大,同时这两个系统又经常需要执行复杂的嵌套表格操作,所以设计为C/S架构,采用VB.NET开发。而编务和出版系统用户会贯穿出版社各业务部门,不同出版社在生产流程上也存在较大差异,所以我们把这两个子系统设计为B/S架构,使用一套基于Java的工作流引擎(JBPM)实现。四个子系统数据库为Oracle 10G,为消除“信息孤岛”,采用数据仓库的方式进行数据集成。该系统对外与电商零售管理系统和物流系统对接,通过Webservice的方式进行数据交换。(项目简介)

  我们知道系统开发是一种复杂度很高的工作, 而且需要团队协作。 为保证项目成功率, 就应该使用系统化的方法论来指导开发作业。 软件开发模型作为指导软件开发全部过程、 活动和任务的结构框架, 能清晰、直观地表达软件开发全过程, 明确规定了要完成的主要任务和活动, 用来作为软件项目工作的基础。 对于不同的软件项目, 针对应用需求、 项目复杂程度、 规模等不同要求, 可以采用不同的开发模型, 并采用相应的人员组织策略、 管理方法、 工具和环境。 主要的开发模型有:(主要的开发模型)

  1. 瀑布模型。提到软件开发模型, 瀑布模型是不得不讲的, 它是结构化开发时代产物, 是最早用来指导系统开发的成熟方法。 瀑布模型是一种结构化的方法, 它将软件过程严格的定义为软件计划、 需求分析、 软件设计、 程序编码、 软件测试和运行维护几个阶段。 每个阶段都有自己的工作, 应交付的产出物。 完成一个阶段工作,才能启动下一阶段是这种模型的特点。 瀑布模型最大的局限性在于上一阶段潜在的问题经常要等到后续阶段才容易暴露。 而在后续阶段修正问题, 往往要付出很高的代价。 所以瀑布模型更加适合用在需求非常明确,而且几乎不会变更的软件项目上。(瀑布模型)

  2. 螺旋模型。螺旋模型采用一种周期性的方法来进行系统开发。 一个完整的周期包括需求定义、 风险评估、 工程实现和用户评审。 整个系统开发包含了若干个周期的迭代, 以循序渐进的方式逐步求精, 最后导出通过用户评审的开发结果。 由于经过多次迭代的需求定义, 螺旋模型可以应付用户需求不明确的情况。 引入风险评估是该模型与其它开发模型最显著的区别。 螺旋模型的局限性在于迭代轮数不可控, 完成整个系统开发时间周期很长, 成本很高。 所以螺旋模型一般用在需求不能完全确认的复杂的大型项目中。(螺旋模型)

  3. 增量模型。增量模型与其它演化型的开发模型有共性, 本质上是迭代的。 但有别与其它模型的是增量模型强调每次都发布一个可供用户操作的产品, 这就使得该模型不必等所有用户需求都确认。 只要某个需求增量包得到确认, 就可以开始进行这部分的开发工作。 增量模型可以优先发布用户急需功能或者核心功能, 而每次增量发布都会对之前的功能进行测试, 这也使得增量模型下进行的开发作业可以获取较高的质量。 增量模型需要各个构件逐步并入已有的软件体系结构, 新加入的构件不能破坏已有的系统部分, 这就使得软件必须具有开放式的体系结构。 同时增量模型难于管理, 容易陷入边做边改的模式, 从而使软件过程的控制失去整体性。(增量模型)

  4. 原型法模型。原型法是以快速搭建的直观的可交互的界面, 代替僵化的形式的规格说明。 根据系统开发过程中原型系统是否抛弃, 原型法又可以划分为抛弃型原型法和演化型原型法。 用户可以通过在计算机上实际运行的试用原型系统而向开发者提供真实的、 具体的反馈意见, 这就使得原型法在面对不确定的用户需求面前具有先天优势。 原型法符合人们认识事物的规律, 系统开发循序渐进, 反复修改,能够确保较好的用户满意度。 开发周期和成本相对与螺旋模型也比较少, 比较符合我们的出版社ERP系统情况, 所以我们最后选择了原型法模型作为开发框架。 该模型也是现在业内受到普遍欢迎的开发方法。(原型法模型)

  我们在开发出版社ERP系统的过程中,对原型法的使用情况如下:(总结与不足)

  1. 搭建原型。由于我们集团下有七家出版社,业务各不相同。为了能够快速搭建出可供用户操作的原型系统,我们先选择了其中业务比较规范,产品面向大众,以社科文化类图书为主的一家出版社为开发对象。通过对该出版社各业务部门一轮简要的需求调研,我们使用JBPM(一种基于JAVA的工作流引擎)构件了该出版社编务系统和出版系统的业务流和各业务流上的审批节点。通过对出版社历史单据的分析,为工作流各节点添加需要用户使用过程中填写的数据项,如选题申报过程中填写的选题申报单、三审三校过程中的发稿单等。通过这些工作,就搭建出了一个可以让出版社用户操作试用的系统原型。(搭建原型)

  2. 借助原型确认需求。搭建出系统原型之后,我们就组织出版社各业务部门的业务骨干和部门负责人以及出版社领导展开联席会议。首先为出版社人员演示了原型系统,再听取出版社用户修改意见。完成经过确认的修改之后开始组织出版社人员对系统进行功能性的测试,并根据用户测试反馈,再对原型系统进行修改调整。经过几轮迭代之后我们系统开发人员和出版社最终用户,都对需求有了比较清晰的了解,原型系统也比较接近最终结果。项目组根据原型系统导出了取得出版社领导认可的需求规格说明书。(借助原型确认需求)

  3. 根据需求规格说明书,我们对原型系统进一步细化。重新设计了数据库,梳理各业务流程中的数据项关系,各工作流节点的权限,最后形成可以上线运行的正式系统环境。解决完一家出版社之后,我们就以该出版社系统为原型,开展其他出版社的ERP系统项目工作。(根据需求规格说明书)

  我们的出版社ERP系统已经在2016年10月全部上线运行。经过半年多的使用,目前运行正常,系统功能和性能均达到用户要求,得到各出版社用户的一致好评。现在正在准备项目最终验收。总结原型法在该项目中的应用,我们认为有几点很关键。一是开发环境很重要。由于编务系统和出版系统使用JBPM开发,可以快速的构件工作流, 才能快速搭建出原型系统。而财务系统和发行系统在第一家出版社项目开始时就不能搭建出可供用户操作的原型系统,只能提供绘制的工作界面, 效果没有编务系统和出版系统好。二是用户参与。在搭建原型和验证原型的过程中,都要鼓励用户积极参与,这样才能帮助用户真正弄清自己的需求。三是引导需求。即便用户参与项目,我们也要分析用户的意见是否合理,对需求进行控制,否则原型模型就变成了边做边改模型。通过该项目的顺利实施,让我在系统分析和原型法模型应用方面受益良多,也深刻认识到我们技术工作者要不断学习,拼搏进取,才能为以后解决更加复杂的工作做好准备。(总结与不足)

论文补充知识

JBPM:JBPM(JBoss Business Process Manager)是一个基于Java的开源流程管理框架,用于定义、管理和执行业务流程。JBPM提供了一个完整的流程框架,包括流程定义、流程实例、任务、角色、资源、监控等,可以帮助企业和组织构建健壮、高效、可扩展的业务流程。JBPM被广泛应用于企业应用开发、服务化架构、云计算、大数据等领域。

猜你喜欢

转载自blog.csdn.net/qq_44033208/article/details/130789400