前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【系统架构】第五章-软件工程基础知识(一)

【系统架构】第五章-软件工程基础知识(一)

作者头像
阿提说说
发布2023-10-16 11:23:34
2580
发布2023-10-16 11:23:34
举报
文章被收录于专栏:Java技术进阶

软考-系统架构设计师知识点提炼-系统架构设计师教程(第2版)

软件工程

一、软件过程模型 1、瀑布模型

在这里插入图片描述
在这里插入图片描述

特点:前一个阶段工作的输出结果,是后一个阶段工作的输入 缺点:

  • 软件需求的完整性、正确性等很难确定,甚至是不可能和不现实的;
  • 瀑布模型是一个严格串行化的过程模型,使得用户和软件项目负责人要相当长的时间才能得到一个看得见的软件系统。如果出现与用户期望不一致,或需求变更,将会带来重大的损失;
  • 瀑布模型的基本原则是在每个阶段一次性地完全解决该阶段的工作,不会出现遗漏、错误等情况,而实际上这是不现实或不可能的。

2、原型化模型 又称为快速原型

在这里插入图片描述
在这里插入图片描述

原型模型主要阶段:

  • 原型开发阶段:根据用户提出的软件系统的定义,快速开发一个原型,该原型包含目标系统的关键问题和反映目标系统的大致面貌,展示目标系统的全部或部分功能、性能等
  • 目标软件开发阶段

原型模型后续,按照原型的作用不同,分抛弃型原型和演化型原型

3、螺旋模型 是在快速原型的基础上扩展而成,这种模型把整个软件开发流程分成多个阶段,每个阶段都有4个部分组成,适用于大型软件开发

  • 目标设定:需求分析,需求确认,开发计划,生命周期计划
  • 风险分析
  • 开发和有效性验证
  • 评审

二、敏捷模型 1、敏捷方法 特点:适应性和预设性(使用反馈机制对不可预测的过程进行控制)、面向人而非面向过程(提倡面对面交流) 核心思想:适应性非预测型、以人为本,非以过程为本、迭代增量的开发过程 主要的敏捷方法:

  • 极限编程:轻量、严谨,软件项目入手:加强交流、从简单做起、寻求反馈、实事求是
  • 水晶系列方法:提倡“机动性的”方法
  • Scrum:侧重于项目管理,包括了一系列实践和预定义角色过程的骨架(是一种流程、计划、模式、用于有效率的开发软件)
  • 特征驱动开发方法:FDD是一个迭代的开发模型,3个要素(人、过程、技术),5个核心过程(开发整体对象模型、构造特征列表、计划特征开发、特征设计、特征构建)

三、统一过程模型(RUP) RUP是一种重量级过程,一个二维的软件开发模型,有9个核心工作流:

  • 业务建模:理解待开发系统所在的机构及其商业运作,确保所有参与人员对待开发系统所在的机构有共同的认识,评估待开发系统对所在机构的影响
  • 需求:定义系统功能及用户界面,使客户知道系统的功能,使开发人员理解系统的需求,为项目预算及计划提供基础
  • 分析与设计:把需求分析的结果转换为分析与设计模型
  • 实现:把设计模型转换为实现结果,对开发的代码做单元测试,将不同实现人员开发的模块集成为可执行系统
  • 测试:检查各子系统之间的交互、集成。验证所有需求是否均被正确实现,对发现的软件质量上的缺陷进行归档,对软件质量提出改进建议
  • 部署:打包、分发、安装软件,升级旧系统,培训用户及销售人员,并提供技术支持
  • 配置与变更管理:跟踪并维护系统开发过程中产生的所有制品的完整性和一致性
  • 项目管理:为软件开发项目提供计划、人员分配、执行、监控等方面的指导,为风险管理提供框架
  • 环境:为软件开发机构提供软件开发环境,即提供过程管理和工具的支持

RUP划分软件开发生命周期,每个循环生成产品的一个新版本,每个循环由4个连续的阶段,每个阶段完成确定的任务,4个阶段:

  • 初始阶段:定义最终产品视图和业务模型,并确定系统范围
  • 细化阶段:设计及确定系统的体系结构,制定工作计划及资源要求
  • 构造阶段:构造产品并继续演进需求、体系结构、计划直至产品提交
  • 移交阶段:把产品提交给用户使用

RUP核心概念:

  • 角色:描述某个人或一个小组的行为和职责
  • 活动:是一个有明确目的的独立工作单元
  • 制品:制品是活动生成、创建或修改的一段信息
  • 工作流:工作流描述了一个有意义的连续的活动序列,每个工作流产品一些有价值的产品,并显示了角色之间的关系

RUP的特点:以体系结构为中心、迭代和增量的软件开发过程

  • 用例驱动,需求分析、设计、实现和测试等活动都是用例驱动的
  • 以体系结构为中心:软件的体系结构是一个多维的结构,会采用多个视图来描述软件体系结构,“4+1”视图
在这里插入图片描述
在这里插入图片描述
  • 迭代与增量:把整个项目开发分为多个迭代过程,每次迭代都是在已完成部分的基础上,每次增加一些新功能实现。 好处: 1、在软件开发的早期就可以对关键的、影响大的风险进行处理 2、可以提出一个软件体系结构来指导开发 3、可以更好地处理不可避免的需求变更 4、可以较早得到一个可运行的系统,鼓舞团队的士气,增强项目成功的信心 5、为开发人员提供一个能更有效工作的开发过程

四、软件能力成熟度模型 5个成熟度等级:

  • Level 1 初始级: 过程随意混乱,能产出产品和服务,但经常超出预算与成本
  • Level 2 已管理级: 确保策划、文档化、执行、监督和控制项目级的过程,需要为过程建立明确的目标,实现成本、进度和质量目标等
  • Level 3 已定义级 根据自身特殊情况定义适合的标准流程,将这套管理体系和流程制度化,同时进行项目积累,企业资产的收集
  • Level 4 量化管理级 建立产品质量、服务质量以及过程性能的定量目标
  • Level 5 优化级 通过增量式的与创新式的过程与技术改进,不断地改进过程性能
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 软件工程
相关产品与服务
项目管理
CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档