第二章 软件生存周期与软件过程_PPT幻灯片

合集下载

软件的生命周期ppt

软件的生命周期ppt
件问题报告”和“软件修改报告”
二、软件的维护
• 可维护性:可理解性、可测试性、可修改性 • 改正性维护 • 适应性维护 • 完善性维护 • 预防性维护
三、软件的退役
软件生存周期的几种模型
• 一、瀑布模型 • 二、原型模型 • 三、迭代式模型 • 四、其他几种模型
• 螺旋模型 • 智能模型 • 喷泉模型 • 增量原型
开始 结束
初步需求 分析
快速设计
开发产品
建造原型
对原型加工
用户评估原 型(新需求)
谢谢观赏!
• 运行环境约束:运行环境(硬件、系统平台) 的要求
• 工具:需求规格说明语言、数据流图、数据字 典、状态图
• 通信瓶颈:用户 vs 开发人员 • 分析方法:结构化分析、面向对象分析
• 软件的开发
一、概要设计(总体设计)
• 划分功能模块 • 定义各功能模块的接口 • 设计全局数据结构(数据库) • 制定测试计划 • 设计原则:自顶向下、逐步求精、抽象、模块

了解软件开发的全过程 对照目前学习进行比较思考
—张昊哲
1
什么是生命周期?
生命周期(Life Cycle)的概念应用很广泛,特别是 在政治、经济、环境、技术,社会等诸多领域经常出现, 其基本涵义可以通俗地理解为“从摇篮到坟墓”的整个过程。
人的生命周期是什么样的? 出生、婴儿、儿童、青年、中年、老年.....
进度安排
二、需求分析:
• 解决“做什么(What to do)”,阶段性标志: 软件需求规格说明(Software Requirements
Specification,SRS)
• 既是软件开发依据,也是软件验收标准 • 功能需求:软件必须完成的功能 • 性能需求:安全性、可靠性、可维护性、精度

《软件工程》第2课 软件生存周期与软件过程PPT幻灯片

《软件工程》第2课 软件生存周期与软件过程PPT幻灯片

6.软件可行性研究
• 目的
–研究项目是否可能实现和值得进行。
• 研究的内容
–经济可行性 –技术可行性 –运行可行性 –法律可行性
可行性研究的步骤
• 对当前系统进行调查和研究
– 弄清当前系统 – 导出新系统逻辑模型
• 导出新系统的解决方案
– 设计不同的解决方案
• 提出推荐的方案
– 本项目的开发价值 – 推荐这个方案的理由
形式化开发记录 变换n
形式化 规格说明
系统需求
变换2 变换1
测试 目标系统
净室模型
• 净室思想
–在分析和设计阶段消除错误。 –在“洁净”状态下实现软件制作。
• 增量模型
–把软件看成一系列的增量。
• 形式化
–每一个增量用形式化表示—盒,表示分析和 设计。
–正确性验证。
净室模型
盒结构 形式化 正确性 代码生成
• 编写可行性论证报告
– 系统概述 – 可行性分析 – 结论意见
软件风险分析
• 软件开发存在风险。 • 风险识别
–项目风险(进度、人力、资源、客户) –技术风险(设计、实现、接口、维护) –商业风险(市场、策略、推销)
• 建立风险项目检测表
–产品规模 –商业影响 –客户关系 –人员 –技术
例:人员配备风险检测表
5. 统一过程和敏捷过程
• 统一过程
–Rational Unified Process(RUP)描述了软 件开发中各个环节应该做什么、怎么做、什么 时候做以及为什么要做,描述了一组以某种顺 序完成的活动。
• 敏捷过程
–Agile Development是一种以人为核心、迭 代、循序渐进的开发方法,其软件开发过程称 为“敏捷过程”。

第二章 软件生存周期与软件过程

第二章 软件生存周期与软件过程

统计性 使用测

验证
2.5 统一过程和敏 捷过程
2.5.1统一过程
统一过程描述了软件开发中各个环节 应该做什么,怎么做,什么时候做以及为 什么要做,描述了一组以某种顺序完成的 活动。
统一过程在一个二维空间中描述软件 开发活动,水平轴代表时间,显示了动态 过程的一面。垂直轴代表过程静态的一面 其中活动代表怎么做,用产品表示做什么 ,用人员表示谁来做,用工作流表示什么 时候来描述。
2.3.1 增量模型(渐增模型) (Incremental Model)
先完成一个系统子集的开发,再按同样的开发 步骤增加功能 (系统子集),如此递增下去直至 满足全部系统需求。
系统的总体设计在初始子集设计阶段就应作出 设想。
增量1 需求
设计
和设计
交付客户
增量2
需求
设计 实现和集成
交付客房
增量3
统一过程有四个阶段
1.初始阶段
本阶段确定所设立的项目是否可行。
2.细化阶段
识别出剩余的大多数用例。对当前迭代的每个用例 进行细化,分析用例的处理流程,状态细节以及可能 发生的状态变化。
3.构造阶段
识别出剩余的用例。每一次迭代开发都是针对用例 进行分析,设计,编码,测试和集成的过程,所得到 的产品是满足项目需求的一个子集。由于细化阶段的 软件设计已经完成,这样各项目可以并行开发。
为保证软件质量,瀑布模型每一阶段必 须完成规定的文档,并对文档进行复审, 及早发现问题消除隐患。可参照下图如:
• 传统的瀑布模型过于理想化。事实上, 人在工作过程中不可能不犯错误。
• 在设计阶段可能发生规格说明文档中的 错误。
• 而设计上的缺陷或错误可能在实现过程 中显现出来。

软件工程 第2章 软件生存周期与软件过程 CUMT 110726PPT课件

软件工程 第2章 软件生存周期与软件过程  CUMT 110726PPT课件
该模型也可以看成是软件的生命周期模型。
该模型是计划驱动的,理论上,在开始工 作之前,必须对所有的过程活动制定计划并给 出进度安排。
计算机网络》课件 制作人:谢希

15
计划 时期
开发 时期
运行 时期
2.2.2瀑布模型
问题定义
可行性研究
需求分析
概要设计
详细设计
编码
测试
维护
计算机网络》课件 制作人:谢希
各阶段结束前都要对所完成的文档进 行评审,以便及时发现问题,改正错 误。
计算机网络》课件 制作人:谢希

20
瀑布模型的缺点
(1) 各个阶段的划分完全固定,阶段之间产 生大量的文档,极大地增加了工作量。
(2) 由于开发模型ቤተ መጻሕፍቲ ባይዱ线性的,用户只有等到 整个过程的末期才能见到开发成果,从而增 加了开发的风险。
计算机网络》课件 制作人:谢希

18
2.推迟实现
实践表明,编码开始得越早完成开发工作所 需要的时间反而越长。
这是因为,前期阶段的工作没完全做好,就 急于考虑程序实现,其结果导致大量返工, 有时甚至产生无法弥补的问题,带来严重后 果。
计算机网络》课件 制作人:谢希

19
3.质量保证
各阶段都必须完成规定的文档。完整、 正确、合格的文档不仅是软件开发时 期各类人员之间相互通信的媒介,也 是软件维护的重要依据。
求,系统定义。 2.可行性研究 估计可利用的资源(计算机硬件,软件,人力
等)、成本、效益、开发进度。 制定出完成开发任务的实施计划和解决方案,
可行性研究报告。
计算机网络》课件 制作人:谢希

6
2.1.2开发时期

《软件生命周期》课件

《软件生命周期》课件
软件设计的主要目的是创建和维护软件系统的架构,以确保软件系统的可 维护性、可扩展性和可重用性。
软Hale Waihona Puke 设计的原则模块化原则将软件系统划分为独立的模块,每个模块具 有明确定义的输入和输出。
抽象化原则
通过抽象来隐藏实现细节,使软件设计更加 简单明了。
单一职责原则
每个模块只负责一个功能,避免模块之间的 耦合。
软件维护技术
包括代码重构、单元测试、持续集成/持续 部署(CI/CD)等。
软件维护的注意事项
建立完善的文档
详细记录软件的架构、功能、接口等信息, 方便后续维护。
定期进行代码审查
及时发现和修复潜在的错误和漏洞。
遵循最佳实践
如代码规范、命名规范等,提高代码质量和 可维护性。
保持与开发人员的沟通
确保维护工作的顺利进行。
需求规格说明
将分析后的需求编写成需求规格说明 文档,明确需求的细节和验收标准。
需求分析
对收集到的需求进行整理、分类和评 估,明确软件的功能和非功能需求。
需求评审
邀请相关人员对需求规格说明进行审 查和评估,以确保需求的准确性和完 整性。
需求分析的工具
原型开发工具
用于快速构建软件原型,帮助用户更好地理解软件的 功能和界面设计。
软件测试的目的是发现软件 中存在的缺陷和错误,并提 供相应的反馈和建议,帮助 开发人员修复和改进软件。
软件测试贯穿于整个软件开 发生命周期,包括需求分析 、设计、编码、集成和部署 等阶段。
软件测试的方法和步骤
单元测试
对每个模块或函数进行测试,确保它们正常工作并满足设计要求。
集成测试
将多个模块或组件组合在一起进行测试,确保它们能够协同工作。

《软件工程》课件 第二章-软件生存周期及模型

《软件工程》课件   第二章-软件生存周期及模型

模型适合的项目:
项目开始,明确了需求的大部分,但是需
求可能会发生变化
对于市场和用户把握不是很准,需要逐步
了解
对于有庞大和复杂功能的系统进行功能改
进,就需要一步一步实施的。
银行业务系统的生存期实例
项目规划
.银行业务需求 .原形系统源代码 业务需求分析 产品阶段1设计 项目规划
产品阶段n设计
加工原型 客户评价原型
建造原型
原型开发过程
▲快速分析:分析人员与用户配合,迅速确定系统的基 本要求。要根据原型所要体现的特征,描述基本需求。 关键是要注意分析描述内容的选取。 ▲构造原型:在软件工具支持下尽快实现一个可运行的 系统。 ▲运行原型:是发现问题、消除误解、开发者与用户充 分协调的一个步骤。 ▲评价原型:评价原型的特性,纠正误解与错误,增添 新要求或提出要求变动,提出全面的修改意见。 ▲修改:原型开发的循环。
确认系统

把软件产品分解成一系列的增量构件,在增量开发迭代 中逐步加入。


每个构件由多个相互作用的模块构成,并且能够完成特
定的功能。 增量开发方法的新演进版本叫做 “极限程序设计 (eXtreme Programming)”。

增量模型
第一增量 第二增量 第三增量
……
核心功能
核心功能
核心功能
1
1
2
V模型:瀑布模型的细化--对测试的展开
适合的项目

项目的需求在项目开始前很明确
解决方案在项目开始前也很明确
对系统的性能安全很严格的项目 类似的项目如:

航天飞机等 公司的财务系统
2.增量模型
定义 基本需求
将需求赋予 增量构件

《软件生存期》PPT课件

《软件生存期》PPT课件
(1)能够表达和理解问题的信息域和功能域。
(2)能够对问题进行分解和不断细化,建立问题
的层次结构。
(3)能够给出系统的逻辑视图和物理视图。
精选课件ppt
11
需求分析
精选课件ppt
12
需求分析
结构化分析方法中使用的工具主要包括:
数据流图、数据字典、结构化英语、判定表和
判定树。
其中数据流图用以表达系统内数据的运动
并确定系统中每个程序由哪些模块组成以
及这些模块相互间的关系。
精选课件ppt
14
精选课件ppt
15
概要设计

实施总体设计的过程如下:
1.设想供选择的方案
2.选取合理的方案
3.推荐最佳方案
4.功能分解
5.设计软件结构
6.数据库设计
7.制定测试计划
8.书写文档
9.审查和复审
精选课件ppt
16
概要设计
详细设计则要确定使用哪种排序算法。在详细设计阶段
为每个模块增加了足够的细节后,程序员才能够以相当
直接的方式进行下一阶段的编码工作。
精选课件ppt
20
详细设计
详细设计的任务
(1)确定每个模块的算法。
(2)确定每一个模块的数据组织。
(3)为每个模块设计一组测试用例。
(4)编写详细设计说明书。
精选课件ppt
精选课件ppt
2
软件生存期
1.软件定义时期
(1)问题定义:这是软件生存期的第一个阶
段,主要任务是弄清用户要计算机解决的问题
是什么。
(2)可行性研究:任务是为前一阶段提出的
问题寻求一种至数种在技术上可行、且在经济
上有较高效益的解决方案。

第二章软件生命周期和软件过程.pptx

第二章软件生命周期和软件过程.pptx
装配厂使用一台小型计算机处理更新库存清单 主文件和产生定货报告的任务。零件库存量的 每一次变化称为一个事务,由放在仓库中的 CRT终端输入到计算机中;
系统中的库存清单程序负责对事务进行处理, 更新存储在磁盘上的库存清单主文件;
必要的定货信息写在磁带上; 每天由报告生成程序读一次磁带,生成并打印
31
系统流程图
符号
名称
说明
能改变数据值或数据位置的处理或部件、例
处理
如, 程序、处理机、人工处理等都是处理
输 入 输 表示输入或输出(或既输入又输出),是一

个广义的不指明具体设备的符号
连接
指出转到图的另一部分或从图的另一部分转 来,通常在同一页上
换页连 接
数据流
指出转到另一页图上或由另一页图 转来
在值
1
2500
1.12
2232.14 2232.14
2
2500
1.25
1992.98 4225.12
3
2500
1.40
1779.45 6004.57
4
2500
1.57
1588.80 7593.37
5
2500
1.76
1418.57 9011.94
48
几种度量效益的方法
投资回收期:是使累计的经济效益等于 最初投资所需要的时间。显然投资回收 期越短,就能越快地获得利润,因此这 项工程也就越值得投资。
11
可行性研究的任务
⑷生产评估:
生产工具与设备是否有效? 必需的过程是否短缺? 是否充分地实施了质量保证?
12
可行性研究的任务
⑸人员问题:
开发人员是否得到培训? 用户是否了解这个系统将要做面:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4. 采用增量模型比采用瀑布模型和快速原型 模型需要更精心的设计,但在设计阶段多 付出的劳动将在维护阶段获得回报。
2.3.2螺旋模型(Spiral Model)
螺旋模型为目前软件开发中最常 用的软件快发模型,是在结合瀑布模 型与快速原型模型基础上演变而成的, 尤其适用于大型软件的开发。
1.典型的迭代模型
验证
风险分析 设计 验证
风险分析 编码 测试
风险分析 综合测试
简化的螺旋模型
维护
可看作在每个 优点 –对可选方案和约束条件的强调有利于 已有软件的重用,也有助于把软件质 量作为软件开发的一个重要目标; –减少了过多测试或测试不足; –维护和开发之间并没有本质区别。
• ……
原型模型可能是最好的选择
2.3软件演化周期
2.3 软件演化模型
原型开发模型的出现,使人们 逐渐熟悉非线性的开发模型。随着 软件规模的不断增长,复杂软件开 始采用渐增式或迭代式的开发方式 。于是,一种称为演化模型( evolutionary mode)的渐进式的开 发模型应运而生。
2.3.1 增量模型(渐增模型) (Incremental Model)
交付客房
增量模型图
增量模型的优点
1. 在较短时间内向用户提交可完成部分工作 的产品,并分批、逐步地向用户提交产品。 从第一个构件交付之日起,用户就能做一 些有用的工作。
2. 整个软件产品被分解成许多个增量构件, 开发人员可以一个构件一个构件地逐步开 发。
3. 逐步增加产品功能可以使用户有较充裕的 时间学习和适应新产品,从而减少一个全 新的软件可能给客户组织带来的冲击。
2.1软件生存周期
2.1 软件生存周期
一切的工业产品都有自己的生 存周期,软件(产品)也不例外。一个 软件从开始立项起,到废弃不用止, 统称为软件的生存周期(life cycle)。
软件生存周期一般被划分为设 计,开发和运行3个时期。
需求分析 软件分析 软件设计 编码测试 软件测试 运行维护 典型的软件生存周期
• “瀑布模型是由文档驱动的”这个事实也是它的 一个主要缺点。 实际项目很少按照该模型给出的顺序进行; 用户常常难以清楚地给出所有需求; 用户必须有耐心,等到系统开发完成; 开发者常常被不必要地耽搁。
2.2.2快速原型模型
1.原型开发的优越性 2.原型开发的方法 3.原型模型的启示 4.应该防止的方向
快速原型模型工作过程
• 原型模型从需求收集开始。 开发者和用户在一起 定义软件的总体目标,标识出已知的需求,并规划 出进一步定义的区域。
• 然后是“快速设计”,快速设计集中于软件那些对 用户可见部分的表示。“快速设计”导致原型的建 造。
• 原型由用户评估,并进一步精化待开发软件的需求, 逐步调整原型使其满足客户的要求。同时开发者对 将要做的事情有更好的理解, 这个过程是迭代的。
• 产品交付给用户后用户可能不满意; • 到了预定的交付日期软件可能还未开发
出来; • 实际的开发成本可能超过预算; • 产品完成前一些关键的开发人员
“跳槽”了; • 产品投入市场之前竞争对手发布
了一个功能相近、价格更低的软 件等。
风险分析 快速原型
验证 风险分析 规格说明 验证
风险分析 变化的需求
对象设计将事物封装成包含数据和加工该数据的 方法的对象,并抽象成为类.经过适当设计和实现的 类,也可称为构件(component).它们在某个领域中具 有一定的通用性,可以在不同的计算机软件系统中复 用.
用户要求 需求分析
需求规格说明书
软件分析与总体设计 软件结构图 详细设计 模块说明
系统测试
确认测试 维 综合测试
单元测试 程序清单
编码
传统瀑布模型存在什么问题?
• 传统的瀑布模型过于理想化。事实上, 人在工作过程中不可能不犯错误。
• 在设计阶段可能发生规格说明文档中的 错误。
• 而设计上的缺陷或错误可能在实现过程 中显现出来。
• 在综合测试阶段将发现需求分析、设计 或编码阶段的许多错误。
—— 实际的瀑布模型
—— 瀑布模型的优缺点
• 瀑布模型有许多优点:可强迫开发人员采用规范 的方法(例如,结构化技术); 严格地规定了 每个阶段必须提交的文档;要求每个阶段交出的 所有产品都必须经过质量保证小组的仔细验证。 瀑布模型的成功在很大程度上是由于它基本上是 一种文档驱动的模型。
先完成一个系统子集的开发,再按同样的开发 步骤增加功能 (系统子集),如此递增下去直至 满足全部系统需求。
系统的总体设计在初始子集设计阶段就应作出 设想。
增量1 需求
设计
和设计
交付客户
增量2
需求
设计 实现和集成
交付客房
增量3
需求
设计 实现和集成
交付客房
规格说明组
设计组 增量4
实现和集成组
需求
设计
实现和集成
• 按线性模型构建软件系统
听取用 户意见
建造/修改 原型
用户测试 运行原型
需求 原型开发
用户 反馈
原型评价 最终系统评价
最终 系统开发
快速原型法的过程模型
原型模型 — 适用情况
• 用户定义了一组一般性目标,但不能标 识出详细的输入、处理及输出需求;
• 开发者可能不能确定算法的有效性、操 作系统的适应性或人机交互的形式;
• 特点 –风险驱动
• 主要适用于内部开发的大规模软件项目 • 要有具有丰富风险评估专门知识的开发
人员,否则风险更大。
2.3.3构件集成模型
1.面向对象的基本概念 2.什么是构件 3.构件集成模型的特征
1.面向对象的基本概念 面向对象的一个简单的公式:
面向对象=对象+分类+继承+消息通信
2。什么是构件
螺旋模型是一种典型的迭代模型,每迭代一次,螺旋 线就前进一周。每轮螺旋均包含计划,风险分析,建立原 型,用户评审。
图1.8 螺旋模型
螺旋模型的基本思想
• 使用原型及其他方法来尽量降 低风险。
软件风险是任何软件开发项目中都普遍存在的 实际问题,项目越大,软件越复杂,承担该项 目所冒的风险也越大。例如:
2.2传统的软件过程
2.2.1瀑布模型 (Waterfall Model) 瀑布开发模型是一种基于软件生命周
期的线性开发模型,它与软件生命周期 的特点是一致的。
瀑布模型开发软件的特点:
1.阶段间具有顺序性和依性。 2.推迟实现的观点。 3.保证质量的观点。 4.存在的问题。
为保证软件质量,瀑布模型每一阶段必 须完成规定的文档,并对文档进行复审, 及早发现问题消除隐患。可参照下图如:
相关文档
最新文档