软考——软件工程——软件生存周期

2023-05-16

目录

1,软件生存周期

2,软件过程

3,瀑布模型

4,增量模型

5,演化模型

6,螺旋模型

7,喷泉模型

8,统一过程

9,敏捷过程

10,软件过程评估

11,软件工具

12,软件维护工具

13,软件管理和软件支持工具

14,软件开发环境


软件包括程序、数据和文档

软件生存周期:问题定义—>可行性研究—>需求分析—>总体设计—>详细设计—>编码和单元测试—>综合测试—>软件维护

1,软件定义时期:问题定义、可行性研究、需求分析;主要任务是确定相应的工作。

2,软件开发时期:系统设计(总体设计、详细设计)、系统实现(编码和单元测试、综合测试);具体设计和实现在前一个时期定义的软件。

3,软件维护:软件维护;任务是使软件持久地满足用户地需要。

软件过程

是软件生存周期中的一系列相关的过程。过程是活动的集合,活动是任务的集合。主要有以下三层含义:

1,个体含义:指软件产品或系统在生存周期中的某一类活动的集合;

2,整体含义:指软件产品在所有上述含义下的软件过程的总体;

3,工程含义:指解决软件过程的工程。

常见的软件生存周期模型:

1,瀑布模型:规定了由前至后、相互衔接的固定次序。

优点是:容易理解,管理成本低,强调开发的阶段性早期计划及需求调查和产品测试;

不足之处:客户必须能够完整、正确和清晰地表达它们地需要。需求和设计中的错误往往到了项目后期才能够被发现。

2,增量模型:融合了瀑布模型的基本成分和原型实现的迭代特征。

它假设可以将需求分段为一系列增量产品,每一增量可以分别的开发。

优点:具有瀑布模型的所有优点,第一个可交付版本所需要的成本和时间很少。

缺点:如果没有对用户的变更要求进行规划,那么产生的初始增量可能会造成后来增量的不稳定。

 

3,演化(原型模型)模型:主要针对事先不能完整定义需求的软件开发,是在快速开发一个原型的基础上,根据用户在使用原型的过程中提出的意见和建议对原型进行改进,获得原型的新版本。

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

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

4,螺旋模型:将瀑布模型和演化模型结合起来,加入了两种模型均忽略地风险分析,弥补了这两种模型的不足。

在每个螺旋周期分为如下4个工作步骤:

1>,制定计划:确定软件的目标,选定实施方案,明确项目开发的限制条件;

2>,风险分析:分析所选的方案,识别风险,消除风险;

3>,实施工程:实施软件开发,验证阶段性产品;

4>,用户评估:评价开发工作,提出修正建议,建立下一个周期的开发计划。

 

5,喷泉模型:是一种以用户需求为动力,以对象作为驱动的模型。

优点:可以提高软件项目开发效率,节省开发时间。

缺点:开发过程中需要大量的开发人员,不利于项目的管理;要求严格管理文档,使得审核的难度加大。

 

 6,统一过程:特色是“用例和风险驱动,以架构为中心,迭代的增量开发过程”。

迭代的意思是将整个软件开发项目划分为许多小的“袖珍项目”,每个“袖珍项目”都包含正常软件项目的所有元素:计划、分析和设计、构造、继承和测试,以及内部和外部发布。

定义了五个阶段:

1>,起始阶段:专注于项目的初始活动。本阶段的里程碑是生命周期目标。

2>,精化阶段:在理解了最初的领域范围之后进行需求分析和架构演讲。本阶段的里程碑是生命周期架构。

3>,构建阶段:关注系统的构建,产生实现模型。

4>,移交阶段:关注于软件提交方面的工作,产生软件增量。本阶段的里程碑是产品发布版本。

5>,生产阶段:对持续使用的软件进行监控,提供运行环境(基础设施)的支持,提交并评估缺陷报告和变更请求。

统一过程的典型代表是RUP,RUP是UP的商业扩展,完全兼容UP,但比UP更完整、更详细。

7,敏捷过程:敏捷开发的主体是通过“尽可能早地、持续地对有价值地软件的交付”。

1>,极限编程XP:是一种轻量级的、高效、低风险、柔性、可预测的、科学的软件开发方式。它由价值观、原则、实践、行为4个方面组成,彼此进行依赖、关联,并通过行为贯穿整个生存周期。

四大价值观:沟通、简单性、反馈、勇气

5个原则:快速反馈、简单性假设、逐步修改、提倡更改、优质工作。

2>,水晶法

3>,并列争求法

4>,自适应软件开发(ASD)

软件过程评估

1,软件能力成熟度模型CMM

是提供一种评价软件承接方能力的方法。分为5个成熟度模型:初始级,可重复级、已定义级,已管理级,优化级

2,能力成熟度模型集成CMMI

是若干过程模型的综合和改进。提供了两种表示方法:阶段式模型和连续性模型

阶段式模型:结构类似于CMM,有5个成熟度模型:初始的、已管理的、已定义的、定量管理的、优化的。

连续式模型:关注每个过程域的能力。

软件工具

用来辅助软件开发、运行、维护、管理和支持等过程中的活动的软件称为软件工具。

软件开发工具:对应于软件开发过程的各种活动。

1,需求分析工具:用于辅助软件需求分析活动的软件称为需求分析工具;

2,设计工具:用于辅助软件设计活动的软件称为设计工具,可分为概要设计工具和详细设计工具;

3,概要设计工具:用于辅助设计人员设计目标软件的体系结构、控制结构、数据结构;

4,编码和排错工具:分为编码工具和排错工具;

5,测试工具:用于支持进行软件测试的工具称为测试工具,分为数据获取工具、静态分析工具、动态分析工具、模拟工具、测试管理工具。

软件维护工具:辅助软件维护过程中相关活动的软件称为软件维护工具,主要有版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具。

软件管理和软件支持工具:有项目管理工具、配置管理工具、软件评价工具。

软件开发环境:是支持软件产品开发的软件系统。特征如下:

1,环境的服务是集成的;

2,环境应支持小组工作方式,并为其提供配置管理;

3,环境的服务可用于支持各种软件开发活动。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软考——软件工程——软件生存周期 的相关文章

  • [课程复习] 软件工程导论之经典题目回顾 (一)选择题、填空题1

    作者最近在复习考博 乘此机会分享一些计算机科学与技术 软件工程等相关专业课程考题 一方面分享给考研 考博 找工作的博友 另一方面也是自己今后完成这些课程的复习资料 同时也是在线笔记 基础知识 希望对您有所帮助 不喜勿喷 软件工程导论 张海藩
  • 正确的认识乱码与编码

    文章目录 编码的本质 乱码的几个例子及思考解决方案 浏览器输入到后端乱码 后端返回浏览器乱码 java 枚举类乱码 数据库存储乱码 Linux系统显示乱码 总结 编码的本质 编码将内存字节作用于磁盘文件或者网络文件的过程 是将磁盘文件 网络
  • 软件工程—软件结构图笔记详谈

    一 定义 结构图 Structure Chart 简称SC图 是精确表达软件结构的图形表示方法 它以特定的符号表示模块 模块间的调用关系和模块间信息的传递 二 主要构成 模块 Module 用矩形框表示 框中写有模块的名字 说明模块的功能
  • 17、系统设计篇-技术选型

    技术选型 就是在两个或多个技术方案中选择适合当前项目情况的方案 技术选型不仅是个技术的选择 也是一个和项目情况密切相关的项目决策 技术选型 本质上是项目决策的一种 要做好技术选型 就是要做好项目决策 一 项目决策需考虑的角度 1 时间 范围
  • 音乐软件案例分析

    项目 内容 这个作业属于哪个课程 2023年北航敏捷软件工程 这个作业的要求在哪里 软件案例分析 我在这个课程的目标是 学习软件工程理论 在实践中体会并运用软件工程理论 收获团队开发和软件工程实践经验 这个作业在哪个具体方面帮助我实现目标
  • 软件设计师--结构化开发

    结构化开发 耦合 真题 内聚 真题 设计原则 真题 系统文档 真题 数据流图 数据流图基本数据元素 外部实体 数据存储 加工 数据流 父图子图平衡 加工既要有输入数据流也要有输出数据流 数据守恒 真题 数据字典 真题 杂题精选 耦合 真题
  • 系统架构设计师-数据库系统(1)

    目录 一 数据库模式 1 集中式数据库 2 分布式数据库 二 数据库设计过程 1 E R模型 2 概念结构设计 3 逻辑结构设计 三 关系代数 1 并交差 2 投影和选择 3 笛卡尔积 4 自然连接 一 数据库模式 1 集中式数据库 三级模
  • Open Source Game Clones

    Open Source Game Clones This site tries to gather open source reimplementations of great old games in one place If you t
  • 【论文阅读-ICSE-2021】CodeShovel: 构造方法级别上的源代码历史信息 Constructing Method-Level Source Code Histories

    CodeShovel Constructing Method Level Source Code Histories Conference ICSE 2021 Github https github com ataraxie codesho
  • 海南大学软件工程原理835考研

    海南大学835考研 2023考研已经落幕 我从2022 05 2023 03 用了大概一年的时间 目前已被海南大学计算机科学与技术学院录取 下面来谈谈我的学习感想 希望能给大家带来帮助 对于专业课 我用的是张海藩的软件工程导论第六版 和史济
  • 什么是决策表?什么是决策树?

    决策树 是在已知各种情况发生概率的基础上 通过构成决策树来求取净现值的期望值大于等于零的概率 评价项目风险 判断其可行性的决策分析方法 是直观运用概率分析的一种图解法 这种决策分支画成图形很像一棵树的树干 故称决策树 它是一种树形结构 每个
  • 推荐111个软件工程本科的计算机毕业设计,有手就会

    对于即将挑战计算机专业毕业设计的学子们 是否已经为选题和项目感到焦虑 今天 我们为即将毕业的学生提供了大量的毕业设计项目 期望对于正在为毕业设计挠头的同学们有所助益 一 成品列表 以下所有springboot框架项目的源码博主已经打包好上传
  • [需求管理-4]:需求分析全过程:需求分析+资源评估+项目计划

    前言 需求收集后 需要经过漫长的需求分析和所需要评估过程 才能正式在某个软件版本中实现需求 在软件开发人员通过编程实现需求前 中间经过了多种角色的辛苦劳动 最终才会生成需要规格说明书 需求规格说明书是逐步由粗到细的分解过程 一个需求 要进入
  • WMS系统出库扫描:提升仓储管理效率与准确性

    WMS系统中的出库扫描功能是关键环节之一 它通过扫描物料或货物的条形码或二维码 实现实时 准确地记录和更新库存信息 一 WMS系统出库扫描的重要性 1 实现库存准确性 通过出库扫描 WMS系统能够准确记录物料或货物的出库信息 实时更新库存数
  • MES系统工单进度查询:提升生产控制与监控

    在MES系统中 工单进度查询是一个至关重要的功能 它为企业提供了实时 准确地追踪和监控生产工单进度的能力 一 MES系统工单进度查询的重要性 1 实时监控生产进度 通过工单进度查询 企业能够随时了解每个工单的进展情况 包括已完成的工序 正在
  • DEVOPS 持续部署的例子:IMVU

    持续部署的例子 IMVU IMVU是一家社交娱乐公司 它的产品允许用户以一种3D阿凡达式的体验互相连接起来 本节内容改编自一位IMVU工程师所写的博客 IMVU采用了持续集成 开发人员尽早提交并经常提交 每次提交都触发测试套件的执行 IMV
  • thinkphp+vue教学互动课程资源网站

    软件工程课程建设通篇文章的撰写基础是实际的应用需要 然后在架构系统之前全面复习大学所修习的相关知识以及网络提供的技术应用教程 以软件工程课程建设的实际应用需要出发 架构系统来改善现软件工程课程建设工作流程繁琐等问题 不仅如此以操作者的角度来
  • git 的碎步浪荡,添加仓库子项目,迁移仓库

    1 git仓库迁移 将他人的代码仓库 xxxx 移为自己的 yyyy 仓库 先创建自己的yyyy空仓库 假设url为 yyyy git 将 xxxx 的全部数据 包括分支和 tag 都 download 到本地 git clone recu
  • 68 | 软件工程的宏观视角

    软件工程 今天开始 我们进入第六章 谈谈软件工程 我理解的架构师的职责其实是从软件工程出发的 也许大家都学过软件工程 但如果我们把软件工程这门课重新看待 这门学科到底谈的是什么 是软件项目管理的方法论 无论如何 软件工程是一门最年轻的学科
  • 掌握 C# 变量:在代码中声明、初始化和使用不同类型的综合指南

    C 变量 变量是用于存储数据值的容器 在 C 中 有不同类型的变量 用不同的关键字定义 例如 int 存储整数 没有小数点的整数 如 123 或 123 double 存储浮点数 有小数点 如 19 99 或 19 99 char 存储单个

随机推荐