【系分论文】论软件开发模型及应用
目录
- 论题
- 论题介绍
- 论文要点
- 理论素材准备
- 范文
- 摘要
- 正文
- 论文补充知识
论题
论软件开发模型及应用
论题介绍
软件开发模型( 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被广泛应用于企业应用开发、服务化架构、云计算、大数据等领域。
相关文章:
【系分论文】论软件开发模型及应用
目录 论题论题介绍论文要点理论素材准备范文摘要正文 论文补充知识 论题 论软件开发模型及应用 论题介绍 软件开发模型( Software Development Model)是指软件开发全部过程、活动和任务的结构框架。软件开发过程包括需求、设计、编码和测试等阶段&…...

渗透测试--5.3.使用john破解密码
前言 由于Linux是Internet最流行的服务器操作系统,因此它的安全性备受关注。这种安全主要靠口令实现。 Linux使用一个单向函数crypt()来加密用户口令。单向函数crypt()从数学原理上保证了从加密的密文得到加密前的明…...
Go中的变量类型
Go中的变量类型 1.为什么要使用变量 变量其实指定的是一段内存地址,根据这个内存地址可以找到我们需要找到的东西。 2.变量类型 变量的功能就是用来存储数据的,根据不同的数据类型可以存储不同的数据。常见的变量的类型 整型、浮点型、布尔型等。变…...

基于STM32的NRF24L01 2.4G通讯模块的驱动实验(HAL库)
前言:本文为手把手教学NRF24L01 2.4G通讯模块的驱动实验,本教程的 MCU 采用STM32F103ZET6与STM32F103C8T6,彼此进行互相通讯。通过 CubeMX 软件配置 SPI 协议驱动NRF24L01 2.4G通讯模块(HAL库)。NRF24L01 2.4G是嵌入式…...

DJ5-3 多路访问链路和协议
目录 一、网络链路 二、广播信道要解决问题 三、多路访问协议 1、基本介绍 2、多路访问协议的类型(3) 四、信道划分协议 1、时分多路访问 TDMA 2、频分多路访问 FDMA 3、码分多路访问 CDMA(略) 五、随机访问协议 1、纯…...
技术领导力?
作品集(Portfolio)会比简历(Resume)更有参考意义。 怎么才算有技术领导力? 1) 能够发现问题,并能够提供解决问题的思路和方案,并能比较方案的优缺点。 2) 能用更简洁有效的方式解决问题。 3…...

计算机的基本工作原理
参考资料: L-1.6: Common Bus system| How basic computer works - YouTube 准备好内存单元、不同类型的寄存器,内存和寄存器、寄存器和寄存器之间都是通过总线连接(假设是直接把数据总线、控制总线、地址总线变成一条总线)。 使用多路复用器实现的总线&…...

【论文简述】Cross-Attentional Flow Transformer for Robust Optical Flow(CVPR 2022)
一、论文简述 1. 第一作者:Xiuchao Sui、Shaohua Li 2. 发表年份:2021 3. 发表期刊:arxiv 4. 关键词:光流、Transformer、自注意力、交叉注意力、相关体 5. 探索动机:由于卷积的局部性和刚性权重,有限…...

【JAVA】Java中方法的使用,理解方法重载和递归
目录 1.方法的概念及使用 1.1什么是方法 1.2方法的定义 1.3方法调用的执行过程 1.4实参和形参 2.方法重载 2.1为什么需要使用方法重载 2.2什么是方法重载 3.递归 3.1什么是递归 3.2递归执行的过程 3.3递归的使用 1.方法的概念及使用 1.1什么是方法 方法就是一个代…...
高级网络计算模式复习
P2P 对等网络(Peer-to-Peer Networks)是分布式系统和计算机网络相结合的产物,在应用领域和学术界获得了广泛的重视和成功,被称为“改变Internet的一代网络技术”。 peer指网络结点,在行为上是自由的——任意加入、退…...

【笔试强训选择题】Day15.习题(错题)解析
作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训选择题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!! 文章目录 前言 一、…...
图论专题(一)
图论专题(一) 参考文献 BFS和DFS的直观解释 https://blog.csdn.net/c406495762/article/details/117307841Leetcode岛屿问题系列分析 https://blog.csdn.net/qq_39144436/article/details/124173504多源广度优先 https://blog.csdn.net/peko1/article/details/121989497拓扑排…...

新星计划2023【网络应用领域基础】————————Day4
常见的网络基础介绍 前言 我们学习了一些基础的网络协议,以及子网掩码和vlan,同时也做了个简单的单臂路由实验 这篇文章我将仔细的讲解单臂路由的应用和交换机二层接口类型,以及wireshark的教程。 一,交换机二层接口 交换机的二…...

[CTF/网络安全] 攻防世界 view_source 解题详析
[CTF/网络安全] 攻防世界 view_source 解题详析 查看页面源代码方式归类总结 题目描述:X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。 查看页面源代码方式归类 单击鼠标右键,点击查看页面源代码: …...

目前流行的9大前端框架
1. React 2. Vue 3. Angular 、 4. Svelte 官网:https://svelte.dev 中文官网:https://www.sveltejs.cn Svelte 是一种全新的构建用户界面的方法。传统框架如 React 和 Vue 在浏览器中需要做大量的工作,而 Svelte 将这些工作放到构建应用程…...

【mysql】explain执行计划之select_type列
目录 一、说明二、示例2.1 simple:简单表,不使用union或者子查询2.2 primary:主查询,外层的查询2.3 subquery:select、where之后包含了子查询,在select语句中出现的子查询语句,结果不依赖于外部…...

网易云音乐开发--音乐播放暂停切换上下首功能实现
音乐播放暂停功能实现 封装一个控制音乐播放/暂停的功能函数 看一下文档,我需要用的api 这个接口好像没有音频的url,查看一下,换个api 这样就能拿到id,并可以播放了 但是音乐并没有播放 我们少了这个 现在可以播放了ÿ…...

如何学习网络安全?
近半年我一直在整理网络安全相关资料,对于网络安全该怎么入门我谈谈我的看法,网络安全一直处于法律的边缘,学的不好或者剑走偏锋一下子人就进去了,所以我建议入门前先熟读《网络安全法》,除此之外还有《互联网安全产品…...
软件测试适合女生吗?
大家好,我是程序员馨馨,一个混过大厂,待过创业公司,有着 6 年工作经验的软件测试妹纸一枚。之前在也写过几篇文章,之后很多朋友过来咨询女生能不能做软件测试。 今天索性写篇文章,详细的介绍一下软件测试&a…...

华为云——代码托管的使用
一、打开前后端项目 登录华为云,点击页面右上角的用户名——点击个人设置 2.点击代码托管的HTTPS密码管理,设置自己的密码 3.回到代码仓库,复制HTTP地址 4.打开GitHubDesktop,点击左上角进行仓库克隆 (我这里已经cl…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向
在人工智能技术呈指数级发展的当下,大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性,吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型,成为释放其巨大潜力的关键所在&…...
LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)
在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...
【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?
FTP(File Transfer Protocol)本身是一个基于 TCP 的协议,理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况,主要原因包括: ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...