软件生命周期( 包括各开发模型的优缺点)知识点全面

news2024/11/23 9:14:01

 软件生命周期

指软件产品从计划到软件交付使用,直到最终退出为止的过程。包括计划阶段分析阶段实现阶段测试阶段运行维护阶段。

 软件开发模型

   瀑布模型、螺旋模型、喷泉模型、原型化模型、演化模型

   瀑布模型:严格遵循软件生命周期各阶段的固定顺序,一个阶段完成再进入另一阶段,适用于结构化开发方法。

   瀑布模型:软件计划、需求分析软件设计、程序编码、软件测试运行维护

                              定义阶段                             开发阶段                         维护阶段

  瀑布模型的优点

1、为项目提供按阶段划分的检查点。

2、当前阶段完成后,只需关注后续阶段

3、可在迭代模型中应用瀑布模型

4、适用于大规模系统项目

缺点:

1、各阶段划分完全固定,阶段之间产生大量文档,增加了工作量。

2、用户直到工程末期才能见到开发成果,增加了开发风险。

3、不适应用户需求变化。

原型化模型:开发人员对用户提出问题进行总结,就主要需求达成一致意见,开发一个原型并运行,然后对原型进行反复修改,使之完善。衡量原型化模型开发人员能力标准是快速获取需求能力

优点:用户需求清楚,降低开发风险与成本,用户参与决策,减少项目管理,要求完整的生命周期

缺点:不适用大型系统,系统难于维护。

演化模型:根据用户需求,快速分析构造该软件的一个初始版本,称之为原型,根据用户在使用原型过程中提出的建议改进原型,获得原型的新版本,重复这一过程,使用户最终获得满意的软件产品。

螺旋模型:将瀑布模型和原型模型结合,强调了其它模型所忽略的风险分析,适合大型复杂系统

优点:支持用户需求的动态变化,降低风险。

缺点:增加开发成本

喷泉模型:主要用于描述面向对象的开发过程,核心的特点是迭代。所有开发活动没有明显边界,允许各种开发活动交叉进行。

软件开发方法

结构化方法:用系统工程的思想和工程化的方法,按用户至上的原则,结构化、模块化、自顶向下的对系统进行分析和设计的方法。结构化开发方法是面向数据流的开发方法。

优点:从系统整体出发,强调整体优化的条件下,自上而下的分析和设计;遵循用户至上原则;严格区分系统开发的阶段性;每个阶段的成果作为下一阶段的依据,便于系统开发的管理与控制;文档规范化,按照工程标准建立规范化的文档资料。

缺点:开发周期长,难于适应环境变化;

数据流图:用于描述数据流从输入到输出的变化流程,由加工、数据流、文件和外部实体构成。

概要设计:主要设计软件的结构、确定系统由那些模块组成,以及每个模块之间关系。

详细设计:确定应该如何实现具体所要求的系统,得出对目标系统的精确描述。

面向对象的方法:从客观事物中构造软件系统,运用了对象、类、继承、封装、聚合、消息传递和多态等概念描述软件系统。

面向对象的软件开发方法有:Booch方法、coad方法,jocobson方法,对象建模技术OTM等

注:Jackson是面向数据结构的开发方法。

统一建模语言UML是面向对象软件的标准化建模语言。它的词汇表中包含了3种构造块

事物、关系和图:

事物是对模型中最具代表性的成分的抽象

关系把事物结合在一起,包括依赖、关联、泛化和实现。泛化关系是一种一般/特殊关系,利用这种关系子类可以共享父类的结构与行为。

聚集了相关事务,包括类图、对象图用例图等。

需求分析

任务:确定软件系统的功能需求;分析软件系统的数据要求;导出系统逻辑模型;修正项目开发计划。

工作:需求获取;需求分析与综合;编写需求规格说明书;需求评审。

需求分类:功能需求;非功能需求;设计约束。

需求工具:数据流图DFD、数据字典、判定表、判定树

软件设计

模块设计原则:高内聚,低耦合

软件测试:

目的:尽可能多的发现软件产品的错误和缺陷。

测试方法:

白盒测试:需要了解程序内部结构,测试用例是根据程序内部逻辑来设计。白盒测试用于软件的单元测试

黑盒测试:对软件已经实现的功能是否满足需求进行测试和验证。黑盒测试不关心内部逻辑结构,只根据程序的功能说明来设计测试用例。黑盒测试用于软件的功能测试

灰盒测试:关注输出对于输入的正确性,同时也关注内部表现,但不像白盒那样详细完整。

测试的步骤:单元测试、集成测试、确认测试、系统测试

项目管理

范围管理,时间管理,成本管理,质量管理,人力资源管理,沟通管理,风险管理,采购管理,整体管理

时间管理

甘特图:用水平线段表示任务的工作阶段;线段的起点和终点对应任务的开始和完成;线段的长度表示完成任务所需时间。

优点:清晰的描述每个任务从何时开始到何时结束以及各任务之间的并行性。

缺点:不能反映任务之间的依赖关系,难以确定任务关键所在,也不能反映任务中有潜力部分。

PERT:是一个有向图,途中用有向弧表示任务,可以标上任务完成所需时间;图中的节点表示流入节点的任务结束,并开始流出节点任务,把这些节点称为事件。事件本身不消耗时间和资源,它仅表示某个时间点。

Pert图不仅给出了任务开始时间、结束时间和完成任务所需时间,还给出了任务之间关系,以及如期完成整个工程的关键路径。但不能反映任务之间的并行关系。

最晚开始时间取最小,最早开始时间取最大。

关键路径上的最早开始时间和最晚开始时间的点是相等的。

人力资源管理

需要综合考虑系统规模、技术复杂度、项目计划、成本和进度等因素。


风险管理

风险具有不确定性损失两大特性

 分类:项目风险,技术风险,商业风险

风险曝光度:风险的概率乘以风险可能造成的损失。

软件成熟度模型CMM

分为5个等级,初始级、可重复级、定义级、管理级和优化级,每一级都为下一级提供基础。

·初始级:软件过程的特点是无秩序的,有时甚至是混乱的。软件过程定义几乎处于无章法和步骤可循的状态,软件产品所取得的成功往往依赖于极个别人的努力和机遇。

·可重复级:已建立了基本的项目管理过程,可用于对成本、进度和功能特性进行跟踪。对类似的应用项目,有章可循并能重复以往所取得的成功。

·已定义级:用于管理的和工程的软件过程均已文档化、标准化,并形成了整个软件组织的标准软件过程。全部项目均采用与实际情况相吻合的、适当修改后的标准软件过程来进行操作。

·已管理级:软件过程和产品质量有详细的度量标准。软件过程和产品质量得到了定量的认识和控制。

·优化级:通过对来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续地对促进过程进行改进。

除第一级外,每一级都设定了一组目标,如果达到了这组目标,则表明达到了这个成熟级别,自然可以向下一级别迈进。CMM体系不主张跨级别的进化。因为从第二级开始,每一个低级别的实现均是高级别实现的基础。

文档的编制在开发过程中占有突出地位。文档作为检查项目进度和设计质量的依据;是设计人员在一定阶段的工作成果和结束标识;有助于提高设计效率。

知识产权

著作权:作者对其创作的作品享有的人身权和财产权

自软件开发完成之日起,保护期为50年,期满后,除人身权外其他权利终止。

人身权包括:署名权、发表权、修改权和保护作品完整权

财产权包括:发行权、出租权、展览权、表演权和信息网络传播权

合理使用是指可不经著作权人许可,也无需支付报酬,使用其作品。

著作权归属

   1、职务开发软件著作权归单位。包括:本职工作明确的开发目标或从事本职工作活动的结果。

   2、利用单位资金、专用设备、未公开的信息等物质技术条件,并由单位承担责任的软件,著作权归单位。

   3、合作开发软件著作权一般为共同所有,如果有软件著作权协议,按协议确定著作权归属。

   4、委托开发的软件,著作权归属由委托人和受托人通过合同约定,如果未明确,著作权归属受托人。

   5、接受任务开发的软件,著作权归属在合同中明确约定的一方,未明确的,属于软件开发单位。

   6、只进行组织、提供咨询意见、物质条件或其他辅助工作不享有著作权。

   侵权判定:

   1、中国公民、法人和组织的作品,不论发表是否发表均享有著作权。

   2、开发软件所用思想、处理过程、操作方法及数学概念不受保护。

   3、法规、决定、命令、立法文件、官方译文、新闻和通用数表不受保护。

   以下属于合理使用:

   1、个人学习、研究或欣赏,适当引用不构成侵权。

   2、为介绍、评论某一作品或说明某一问题,在作品中适当引用他人已发表的作品。

   3、公开演讲内容、免费表演他人作品、不够成侵权

   4、用户教学或科学研究不构成侵权

   5、将汉语译成少数民族语言作品或盲文出版不构成侵权

   专利权:由国务院相关部门授予的,对发明创造者在规定的时间内享有的独占使用权。

发明专利的保护时限为自申请日起20年,实用新型专利和外观设计专利为自申请日起10年

两个以上申请人分别对同样的发明创造申请专利,专利权授予最先申请的人。同时申请专利,在收到国务院专利行政部门通知后,自行协商确定申请人,协商不成的均予以驳回。

同样的发明创造,只能授予一项专利。

强制实施许可:法律规定不经专利权人许可而实施专利权人之专利的不构成侵权

专利权归属 :

下列情况专利权归属单位:

1、履行本单位交付的本职工作外的任务所作出的发明。

2、离职、退休或调动工作1年后与原单位相关的发明

3、职务发明创造

4、利用本单位的物质技术条件完成发明创造,其专利权依据合同约定。

商标法

商标注册年限为10年,注册人死亡或倒闭1年未转移可以注销,期满后6个月内可以续注。

商标谁先申请谁拥有,但知名商标非法抢注的除外。

同时申请,谁先使用谁拥有(需提供证据)

无法提供证据、协商归属无效时抽签确定(但不可不确定)

公民作品保护期限:作者终身及死后50年,合作的作品,以最后一名作者死亡为准。

标准是对重复性事物和概念所做的统一规定。它以科学、技术和实践经验的综合成果为基础,经有关方面协商一致,由主管机构批准,以特定形式发布,作为共同遵守的准则和依据。

我国家标准的有效期一般为5年

标准编号

国际标准代号:标准代号+专业类号+顺序号+年代号

我国标准代号:标准代号+标准发布顺序号+标准发布年号

强制性标准代号GB

推荐性标准代号GB/T

指导性标准代号GB/Z

实物标准代号GSB

行业标准代号:汉语拼音大写字母

地方标准代号:由DB加省级行政区代码前两位

企业标准代号:由Q/XXX加企业代号组成

国际标准:IEC  ISO  ITU

国家标准:ANSI  GB

行业标准:IEEE  

商业秘密:不为公众所知,具有经济利益和实用性,并且已采取了保密措施的技术信息和经营信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/610569.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue对接海康摄像头,配合ifarme进行展示。

1、在public文件夹下建一个文件ifarme.index&#xff0c;和index.html同级。 <!doctype html> <html><head><title></title><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><meta http-equi…

支付宝电脑版二维码Java

/*生成二维码/ PostMapping(value “getQRCode”) RequestLog(“支付宝支付”) ApiOperation(“支付宝支付”) AnonAccess public String qrCode(Validated RequestBody SysMemberRecordVo sysMemberRecordVo) throws AlipayApiException { AlipayClient alipayClient new De…

聚观早报|上海迪士尼辟谣乐园落户武汉;Wi-Fi7国内标准即将落地

今日要闻&#xff1a;上海迪士尼辟谣乐园将落户武汉&#xff1b;Wi-Fi7国内标准即将落地&#xff1b;微软Office365AI助手价格曝光&#xff1b;刘畊宏20秒短视频要价60万&#xff1b;滴滴旗下公司新增互联网游戏业务 上海迪士尼辟谣乐园将落户武汉 6 月 3 日&#xff0c;有消息…

Android-Activity生命周期

文章参考&#xff1a;添加链接描述 文章参考&#xff1a;添加链接描述 五大状态 StartingRunningStoppedPausedDestroyed 借用一张已经包浆的图 PS&#xff1a;Running和Paused是可视阶段&#xff0c;其余都是不可视 几大函数 onCreate&#xff1a;通过setContentLayout初始…

如何选择最佳数据库:MongoDB、PostgreSQL或ScyllaDB?

Tractian是一家提供工业监控系统的机器智能公司。去年&#xff0c;我们面临着将我们的实时机器学习&#xff08;ML&#xff09;环境和分析仪表板升级以支持数据吞吐量的大幅增长的挑战&#xff0c;因为我们成功地将客户数据库和数据量扩大了10倍。 我们意识到&#xff0c;在快…

MySQL版本5.7.99?

序&#xff1a;在项目工作中需要从三方厂商数据库同步数据到项目业务库中&#xff0c;本平平无奇的功能却被一个报错打破。 在使用某框架的DataSourceConfig(Object)方法初始化数据库连接时&#xff0c;日志输出报错&#xff1a; Unknown system variable transaction_isolatio…

sparkRDD编程实战

文章目录 sparkRDD编程实战1、Spark RDD 实现单词计数2、Spark RDD 实现分组求TopN3、Spark RDD 实现二次排序4、Spark RDD 计算平均成绩5、Spark RDD 倒排索引统计每日新增用户6、Spark案例实操7、Spark RDD 综合应用需求1&#xff1a;Top10热门品类需求说明实现方案一实现方案…

【Python SMTP/POP3/IMAP】零基础也能轻松掌握的学习路线与参考资料

Python是一种高级编程语言&#xff0c;广泛应用于Web开发、人工智能、数据科学、自动化等领域。SMTP/POP3/IMAP是与邮件相关的三个协议&#xff0c;分别用于发送邮件、接收邮件和访问邮件。使用Python可以轻松实现这些功能&#xff0c;本文将介绍Python SMTP/POP3/IMAP的学习路…

【Python】Python系列教程-- Python3 条件控制(十六)

文章目录 前言if 语句if 嵌套match...case 前言 往期回顾&#xff1a; Python系列教程–Python3介绍&#xff08;一&#xff09;Python系列教程–Python3 环境搭建&#xff08;二&#xff09;Python系列教程–Python3 VScode&#xff08;三&#xff09;Python系列教程–Pytho…

Spring Boot整合Swagger2 Swagger2配置

目录 什么是Swagger? Swagger如何使用 如何使用Swagger 查看SwaggerAPI文档 什么是Swagger? Swagger是一款流行的RESTful API文档生成工具&#xff0c;它支持多种编程语言和多种框架&#xff0c;包括但不限于Java、Python、Node.js、Go等&#xff0c;Spring Boot也提供了…

【机器学习】第二章:K近邻(分类)

系列文章目录 第二章&#xff1a;K近邻&#xff08;分类&#xff09; 相关代码地址&#xff1a;https://github.com/wzybmw888/MachineLearning.git 文章目录 系列文章目录一、最近邻算法二、最近邻算法的缺陷&#xff08;1&#xff09;策略一&#xff1a;K近邻&#xff08;k‐…

java源码为什么需要编译成字节码?

作用1: jvm支持多语言,需要字节码作为统一的规范 作用2: 字节码转成机器的指令会更快 作用3: 如果没有对应的反编译器,字节码还具有一定的安全保密作用

【Rust日报】2023-06-02 Rust 1.70.0 稳定版发布

Rust 1.70.0 稳定版发布 Rust 团队很高兴地宣布 Rust 的新版本 1.70.0。Rust 是一种编程语言&#xff0c;它使每个人都能构建可靠、高效的软件。 最大的特性是&#xff0c;OnceCell稳定版可用啦。 如果你通过 rustup 安装了以前版本的 Rust&#xff0c;你可以通过以下方式获得 …

Linux 之大数据定制篇-Shell 编程

Linux 之大数据定制篇-Shell 编程 为什么要学习Shell 编程 Linux 运维工程师在进行服务器集群管理时&#xff0c;需要编写Shell 程序来进行服务器管理。对于JavaEE 和Python 程序员来说&#xff0c;工作的需要&#xff0c;你的老大会要求你编写一些Shell 脚本进行程序或者是服…

Mocha AE:图层相关面板

Mocha AE 左侧的图层面板、图层属性面板以及边缘属性面板提供了与图层、样条、跟踪等相关的选项。 Layers 图层 图层的上下顺序相当重要。 上方所有图层的样条区域将被自动排除出跟踪遮罩 Track Mattes。 也可在同一图层上绘制多个样条形状。相交的样条区域将被排除出遮罩。 Vi…

【MySQL】一文带你了解MySQL中的子查询

文章目录 1. 需求分析与问题解决1. 1实际问题1.2 子查询的基本使用1.3 子查询的分类 2. 单行子查询2.1 单行比较操作符2.2 代码示例2.3 HAVING 中的子查询2.4 注意的问题 3. 多行子查询3.1 多行比较操作符3.2 代码示例 4. 相关子查询4.1 相关子查询执行流程4.2 代码示例 子查询…

图论学习(六)

图的连通度 删去任意一条边后便不连通 删去任意一条边后仍连通&#xff0c;但删去点u后不连通。 G3和G4删去任意一条边或任意一个点后仍连通&#xff0c;但从直观上看&#xff0c;G4的连通程度比G3高。 割边 设e是图G的一条边&#xff0c;若ω(G-e)>ω(G)&#xff0c;则…

uniapp微信一键登录微信授权

前言 现在小程序逐渐成为主流&#xff0c;常用的微信授权登录很重要很常见的一个功能&#xff0c;今天自己总结了一下。 准备工作 1.如果你想自己想试一下这个功能首先你需要有一个开发中的项目并且你在开发成员里面。 2.配置自己的微信开发者工具的appid码 3.在hbuilderx的…

echarts 如何实现图例单个数据项加上背景颜色和饼图中的背景图自适应

需求: 实现效果如下: ECharts中,可以通过设置legend中的formatter属性来自定义图例项的显示格式。以下是一个示例: option = {// ...legend: {data: [A, B, C],formatter: function (name) {var color = #fff;if (name === A) {color = #ff0000; // 设置A的背景颜色为红色…

如何使用ArcGIS计算容积率

字段计算 为建筑图层新建一个area字段&#xff0c;用于记录单层建筑的面积&#xff0c;如下图所示。 单层建筑面积 为建筑图层新建一个areaAll字段&#xff0c;用于记录总建筑面积&#xff0c;areaAllarea*floor&#xff0c;如下图所示。 计算总面积 为小区图层新建一个area…