【系统分析师】软件工程

本文详细阐述了软件生命周期的各个阶段、过程划分,包括5个基本过程、9个支持过程和7个组织过程。着重介绍了形式化方法、净室软件工程、逆向工程等开发方法,以及瀑布模型、敏捷开发和统一过程等模型的特点和优缺点。同时讨论了CMM和CMMI的能力成熟度模型。


【系统分析师-系列文章目录 】


非 系统分析师 的重点!!!

1、软件生命周期

软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程称为软件生命周期或生存周期。

1.1 软件生存周期过程

在国家标准 GB/T 8566-2007 标准中,将软件生存周期中可能执行的活动分为:

  1. 5个基本过程
  2. 9个支持过程
  3. 7个组织过程

每个生存周期过程划分为一组活动,每一项活动进一步划分为一组任务。

1.1.1 5个基本过程

基本过程供 各主要参与方在软件生存周期期间使用,主要参与方是发起或完成软件开发、运行或维护的组织。

基本过程分为:

  1. 获取过程
  2. 供应过程
  3. 开发过程
  4. 运作过程
  5. 维护过程

1.1.2 9个支持过程

支持过程,作为一个有机组成部分 支持其他过程,以便取得软件项目的成功,并提到软件项目的质量。

支持过程包括:

  1. 文档编制过程
  2. 配置管理过程
  3. 质量保证过程
  4. 验证过程
  5. 确认过程
  6. 联合评审过程
  7. 审核过程
  8. 问题解决过程
  9. 易用性过程

1.1.3 7个组织过程

组织过程 可被某个组织 用来 建立和实现 由相关的生存周期过程和人员组成的基础结构 并不断改进这种结构的过程。

应用它们通常超出特定的项目和合同的范围,但是,这些特定项目和合同的经验教训有助于改善组织状况。

组织过程包括:

  1. 管理过程
  2. 基础设施过程
  3. 改进过程
  4. 人力资源过程
  5. 资产管理过程
  6. 重要大纲管理过程
  7. 领域工程过程

1.2 软件生命周期各阶段的任务

根据 GB/T 8566-2007,软件生命周期可以划分为可行性研究、需求分析、概要设计、详细设计、实现、组装测试、确认测试、使用、维护、退役 10个阶段。

  1. 可行性研究:确认软件项目性质、目标和规模,得出可行性报告。如果是可行的,就要指定详细的项目开发计划。
  2. 需求分析:把软件性能和功能的总体概念 描述为具体的软件需求规格说明,从而奠定开发的基础。
  3. 概要设计:根据软件需求规格说明建立软件的总体结构和模块间的关系,定义各功能模块接口,设计全局数据库或数据结构,规定设计约束,指定组装测试计划。
  4. 详细设计:将各模块要实现的功能用相应的设计工具详细描述出来。
  5. 实现:程序员根据详细设计文档将详细设计转化为程序,完成单元测试。
  6. 组装测试:经过单元测试的模块逐步进行组装和测试。
  7. 确认测试:测试系统是否达到了系统需求,由用户或用户参与 对系统进行验收。
  8. 使用:
  9. 维护:
  10. 退役

立项阶段
开发阶段
运维阶段
消亡阶段

在这里插入图片描述
其中重头戏是:开发阶段
单个系统开发 流程

# 需要关注不同阶段的产出物 - 会考选择
系统规划
系统分析
系统设计
系统实施
系统验收

在这里插入图片描述

2、软件开发方法

在这里插入图片描述

2.1 形式化方法

2.1.1 形式化方法概述

提高软件可靠性的一种重要技术是使用形式化方法。

形式化方法建立在严格数学基础上,具有精确数学语义的开发方法。

近年来,形式化方法在以下两个方面的发展大大改善了其实用性:

  1. 形式化方法与图形语言机制相结合。为图形语言机制赋予形式化的语法和语义,从而兼具了图形表示的直观、简洁,以及形式化方法的严谨、精确等优点。
  2. CASE(计算机辅助软件工程)工具支持形式化软件开发。CASE工具不仅能简化描述工作,而且还可以利用自动证明技术,帮助开发人员验证软件的数学性质。

2.1.2 净室软件工程

  • 是软件开发的一种形式化方法
  • 使用 盒结构规约 进行分析和建模
  • 并且将正确性验证作为发现和排除错误的主要机制
  • 使用统计测试来获取认证软件可靠性所需要的信息。

在这里插入图片描述

主要缺点

  1. 对开发人员的要求比较高
  2. 正确性验证的步骤比较困难,且比较耗时
  3. 开发小组不进行传
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值