2019年上半年软考成绩出来查完松了一口气,也在预料之中论文涉险过关。虽然没压中题目不过使用的案例和相关的点都一样,硬着头皮写完。
去年的架构论文昏昏沉沉的两个小时才写了1900字,这回龙飞凤舞写居然提前15分钟写完了。把文章公布出来仅供参考,案例是不能再用了。


论软件开发模型的应用
摘要:
软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。对于不同的软件系统,可以采用不同的开发方法、运用不同的管理方法和手段等,以及允许采用不同的软件工具和不同的软件工程环境。针对不同的项目使用不同的开发模型能够有效的提高项目成功率。
本文将结合某省级《机动车驾驶员计时培训系统》的开发过程介绍,如何在中型的管理系统中使用“统一过程过程模型UP“与”敏捷开发方法(SCRUM)“,并结合面向服务的微服务开发方法完成整个软件项目。在该项目中本人担任系统规划、分析及架构设计的工作。本文将着重讨论统一过程模型UP与敏捷开发方法SCRUM在项目中的各实施步骤和取得的效果。最后本文还将讨论本项目开发时碰到的困难和存在的问题。
正文:
2017年初本人接受了某公司的委托负责组织人员开发某省的《机动车驾驶员计时培训系统》。项目包含了软件部分、车载终端部分、服务器、网络、安装调试等。项目使用范围涵盖省级主管部门、所有地级市以上的驾考培训机构和主管部门。本人在该项目中除了负责部分组织协调工作以外,主要负责软件部分的需求分析和架构设计工作。该系统需要按照交通运输部2016年修订的《机动车驾驶员计时培训系统平台技术规范》来进行开发。该项目的中标公司是一家负责交通路网工程的公司,并没有太多的软件开发背景,造成了后期运维相当困难。公司高层决定基于这一项目培养自己的软件开发和运维团队。本人在基于以上相关因素初步确定了软件的开发模型和系统架构。
传统的软件开发模型有瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型、统一过程模型、敏捷开发方法。最早的瀑布模型严格遵循工程化的思想,规划、分析、设计、评审、构建、验收、交付每一步都需要上一步的结果做为输入。原型模型则是快速开发一个小型版本并不断演化或抛弃,对于规模不大,需求不明确的项目有较好的效果。螺旋模型则是瀑布模型和原型模型的综合强调了风险的控制。喷泉模型是早期的面向对象开发模型,核心特点是迭代,分析、设计、编码等活动的边界不明显允许交叉进行。统一过程模型UP是一套完整的开发组织方式,核心是用例驱动、架构为中心、迭代与增量。分为初始、细化、构建、交付四个阶段。敏捷方法同样也是基于面向对象的,强调的是可工作的软件强于繁琐的文档,并且敏捷方法提出了许多实用性的软件开发方法。敏捷方法可以做为统一过程模型的一个补充来使用。
针对本项目的特点我们确定了采用统一过程模型UP与敏捷开发SCRUM结合的方式进行。
在仔细阅读了《技术规范》后得到了两点结论,一、规范中已经将《监管服务平台》和《计时平台》所应具有的功能描述得比较详尽。可以直接将文件中的相关说明直接转化为用例。这就符合UP中用例为中心的思想。二、《技术规范》中将个省级平台中的静态数据同步接口全部统一成为restful的方式,并且强调了采用事件驱动的方式进行。基于这点决定了该系统的中心架构是基于事件驱动的微服务架构。这也符合UP模型的以架构为中心的思想。
敏捷方法SCRUM的核心是用户故事,不同于传统的用例、用户故事可以是一个较为模糊的需求描述,在开发时将分析与设计的权利都赋予具体的设计人员,在例如预约教练、预约考试、支付管理、刷卡、刷脸、登记等受众面广、强调用户体验的功能时,能够更快的发布新版本。
遵循UP模型分为下面四个阶段
在初始阶段
1.识别系统的主要参与者,通过分析《技术规范》中所要求的功能模块整理出主要参与者如:全国驾培平台、省级交管部门、市级交管部门、驾驶培训机构、教练车终端、教练、学员等。识别主要参与者的目的是为了更好的划定系统边界。
2.确定项目边界,制定大体的开发计划。在这个阶段的工作对于项目的成败非常关键。在调研时发现各市级交管部门已经有在运行的计时培训系统但规则和管理范围都不一致,且系统管理的范围也不一致。因此为了防止需求蔓延在与省级交管部门开会时就明确了,所有教练车终端数据直接通过Socket通讯方式传输给省级平台不再直接与原市级平台对接,市级平台通过省级平台统一的restful接口获取数据,原有市级平台的改造由各地市负责不列入此项目。类似的项目风险在第一轮与第二轮迭代中还有很多,此处不一一列举。
3.定立系统的业务模型、建立系统目标里程碑完成初始阶段。订立目标就是建立省级监管服务平台、和省级计时平台,全省教练车终端与省级计时平台时时通讯。两个平台与相关的系统有统一的静态通讯接口。
在细化阶段首先制定需求获取方案。监管部门相关人员采用访谈、开会等方式进行。对于驾驶培训机构相关人员采用采样、观摩、问卷调查等方式进行。然后需求分析阶段进一步细化参与者和用例,并确定用例之间关系。确定了系统的总体框架后利用效用决策树将系统的基础服务和重要服务构件排序,确定开发顺序并分配开发小组。将例如车载认证、场地同步、终端学时同步、地图GIS绘制等服务列为关键的高风险点重点开发并提供备选方案;将培训机构、教练车、教练、学员的服务等列为优先开发的基础服务;将监督、投诉、评价等列为非重点服务,将预约、收费、检查等列为第三方服务。最后制定出详细的开发进度表。
在系统构建阶段,在此阶段大部分的服务采用敏捷开发SCRUM的方式分小组进行。敏捷开发做为统一过程模型的补充我们在此项目中主要经借鉴了SCRUM几个方法。一、用户故事。在细化阶段并不能将所有的用例都一一细化,需求获取、分析在开发阶段常常也一直在迭代进行,因此需要在一些服务开发时将分析的权利放到设计师头上,充分发挥软件设计师和前端设计师的作用。二、使用燃尽图代替甘特图等繁重的项目管理文档,同时也避免了口头汇报工作的不准确性。三、站立会议每天的短暂会议可以了解小组成员开发时碰到的困难以便按能力和兴趣重新分配任务。或成员间提供技术帮助。
我们按照开发计划将受众面广、并发高的20%的功能做为第一轮分析、设计和构建的重点,由核心小组的成员完成。剩余80%的功能由有经验的软件设计师和前端工程师带领在校学生或实习生完成。这样安排原因有两点,一、本项目整体是基于面向对象的方法学进行开发的。对于使用关系数据库开发项目经验越丰富的开发者面向过程的思维就难以转变,会造成项目代码严重依赖数据结构。这与我们采用的微服务架构相背。采用实习生可以将“系统结构存在与对象之间,数据库只是对象的持久化工具”的思想灌输给他们,也有利于培养后期运维队伍。二、采用校企合作或实习生可以有效降低工资成本。
交付阶段我们在关键服务完成80%的时候就开始与在部分地市开始与车载终端的安装进行部署与联调。在第二与第三轮迭代完成全部的安装、测试工作。在此阶段同时将一些开发人员转成后期维护人员,专门阅读文档和编写测试用例。
本系统在2017年10月份完成主体功能,2018年初随车载终端在部分地市联合调试运营,2018年底完成了一期投资所要求的所有功能服务。由于该项目是与驾校合作从学员培训费中回收投资成本,因此后期的运维团队格外重要。基于前面所采用的开发策略,后期的维护人员直接从开发人员中转换过来保证了技术连续性这也是本项目的一大特点。
虽然本项目采用面向对象的方法和敏捷开发来应对需求变化但开发过程中还是由于政策变化导致了部分服务完全重构。在做系统的分析和设计时都是基于《技术规范》,该规范还是以面向过程的方法为核心,假定系统已经存在来规定系统应该做什么,这样导致我们前期抽象用例时有很多不准确的地方,带到开发阶段导致迭代次数过多发布了一些无用的版本。但总体来说项目还是较为成功的。

为软考准备的论文!!相关推荐

  1. 计算机软考高级论文,【2019年软考高项论文一定要避开这些坑】- 环球网校

    [摘要]环球网校分享的"2019年软考高项论文一定要避开这些坑",以下介绍了软件水平考试备考建议供大家参考,更多资料敬请关注环球网校软件水平考试频道,网校会及时更新相关资料-- 2 ...

  2. 2016软考网络规划设计师论文写作

    课程包含了备战网络规划设计师考试上午基础知识讲解.下午案例分析讲解.论文写作及历年真题强化训练.是全网备战软考网规第一个最新.最全套餐.套餐中对考试中所有知识点进行了详细的讲解.对重要考点进行了反复强 ...

  3. 软考高项论文写作注意要点(一)

    备考2020年软考高项(信息系统项目管理师)的小伙伴们注意啦,想要软考高项论文顺利通过,一定要注意以下要点! 1.偏题 论文最先做的事情就是要看清题目要求啊,千万不要一看到信息系统项目管理师论文试题的 ...

  4. 软考高项论文写作要求有哪些

    计算机软件资格考试是由国家人力资源和社会保障部.工业和信息化部领导下的国家级考试,其目的是科学.公正地对全国计算机与软件专业技术人员进行职业资格.专业技术资格认定和专业技术水平测试.关于软考高项论文写 ...

  5. 2022年下半年软考网络规划设计师论文真题

    2022年下半年软考网络规划设计师论文真题 试题 一 论5G与校园网络融合的规划与设计 近年来,教育部等部门印发了<教育信息化2 .0行动计划>: <关于推进教育新型基础设施建 设构 ...

  6. 软考高项论文写作指南分享

    软考高级考试(如信息系统项目管理师)论文考试时间为下午3:30-5:30,考试时间为2小时,要求写3000字以内的论文.总分75分,45分及格. 一.论文写作要求 1.简要介绍项目的背景,发起单位,目 ...

  7. 计算机软考高级职称论文,关于计算机软考,这里可以解决你所有的问题

    计算机技术与软件专业技术资格(水平)考试(以下简称计算机资格考试),是由国家人力资源和社会保障部(原人事部,以下简称人社部).工业和信息化部(原信息产业部,以下简称工信部)领导,全国计算机软件考试办公 ...

  8. 计算机软考高级的论文考什么,软考高项考什么知识(三)

    计算机技术与软件专业技术资格(水平)考试(以下简称计算机软件资格考试)是原中国计算机软件专业技术资格和水平考试(简称软件考试)的完善与发展.计算机软件资格考试是由国家人力资源和社会保障部.工业和信息化 ...

  9. 软考高项论文范文——论信息系统项目的采购管理

    论信息系统项目的采购管理 [摘要] 2016 年 7 月,我参加了╳╳市物价局发起的"智慧物价"信息综合管理平台系统的建设工作,担任承建方项目经理,该信息综合管理平台系统的主要功能 ...

  10. 2023年软考高项论文秘籍大讲堂|开篇

    2023年"指尖疯论文秘籍大讲堂"视频版,已经提交CSDN平台免费发布中,让长达36分钟,信息含量10000字的论文攻略,植下你拿下证书的小树苗! ■ 我希望解决你的痛痛痛点 提到 ...

最新文章

  1. 丘成桐:中国人可以做世界一流学者
  2. java qt jni_java JNI 实现原理 (二) Linux 下如何 load JNILibrary
  3. 工作随笔——Intellij_idea-14官方快捷键中文版
  4. 超详细轮播图的三种实现方法html+css+javascript
  5. 面试系列-JVM性能优化相关内容
  6. L1-046 整除光棍
  7. 生产过程代码分析(二)--估计
  8. 头颅ct有伪影_颅脑CT怎么看?正常和异常影像分别是什么?干货满满!
  9. 开源ext2read代码走读之-扩展分区与逻辑分区说明及如何读取扩展分区的分区表(EBR)
  10. Geodesic flow kernel for unsupervised domain adaptation
  11. python模拟登录浏览器_Python爬虫常用之登录(二) 浏览器模拟登录
  12. 线性代数在计算机中的应用论文,论线性代数在现实生活中的应用(结课论文)
  13. 【CSDN浏览器助手】这款插件忒好用了
  14. 【B站弹幕游戏开发笔记02】Win10系统下给Python项目导入Protobuf
  15. 2020年金融科技创新项目总结
  16. 微信小程序——车牌键盘组件实现
  17. linux刻录光驱是哪个好,Linux中使用mkisofs或genisoimage刻录光盘
  18. 1024竟是官方节日,祝大家节日快乐
  19. python selenium爬取去哪儿网的酒店信息——详细步骤及代码实现
  20. chrome跳转IE

热门文章

  1. winform 鼠标 静止时间_四款蓝牙鼠标的详细使用体验对比
  2. Silverlight 实现文件下载
  3. 惠普M1005打印机驱动-LaserJet提供下载
  4. 电音插件auto_Antares 发布新型人声制作插件 Auto-Tune EFX +
  5. python 俄罗斯方块_俄罗斯方块
  6. 笔记本电脑风扇转速测试软件,笔记本温度查看和风扇转速调节工具
  7. 数据库课程设计——实验报告管理系统(超详细)
  8. JAVA计算机毕业设计网上零食进销存(附源码、数据库)
  9. 面试宝典-常见面试问题回答技巧
  10. 推荐几款好用实用的宝藏软件。记得收藏