Upload
solomon-chapman
View
43
Download
3
Embed Size (px)
DESCRIPTION
软件工程主要研究内容. 1 软件开发技术 方法学:面向数据流、面向对象(学习重点) 工具:开发方法的支持工具 环境:软件开发各阶段工具及运行平台的结合 2 软件工程管理技术 管理学:各项资源分配、过程管理等 度量学:经济效益和工作量、工组进度的度量 经济学:分析软件的经济效益. 失效率. 失效率. 时间. 时间. 硬件失效率曲线. 软件失效率曲线. 软件工程概述 —— 软件特点. . 软件是一种逻辑实体,而不是具体的物理实体. . 软件的生产与硬件不同. . 在软件的运行和使用期间,没有硬件那样的机械 磨损,老化问题. 修改点. 实际曲线. - PowerPoint PPT Presentation
Citation preview
软件工程 1
软件工程主要研究内容• 1 软件开发技术
– 方法学:面向数据流、面向对象(学习重点)– 工具:开发方法的支持工具– 环境:软件开发各阶段工具及运行平台的结合
• 2 软件工程管理技术– 管理学:各项资源分配、过程管理等– 度量学:经济效益和工作量、工组进度的度量– 经济学:分析软件的经济效益
软件工程 2
.. 软件是一种逻辑实体,而不是具体的物理实体.. 软件的生产与硬件不同
. . 在软件的运行和使用期间,没有硬件那样的机械 磨损,老化问题
磨合调整 磨损
用坏
修改点实际曲线
理想曲线
硬件失效率曲线时间
失效率
时间
失效率
软件失效率曲线
软件工程概述——软件特点
软件工程 3
软件工程概述• 软件的定义及特点• 软件危机:定义:软件开发和维护中遇到的一系列严重问题现象: 软件价格高 (目前成本高达整个系统的 90 %)
难于控制进度(实现前存在人脑中,实现方式千差万别 , )
工作量估计困难(进度拖延时,加人手无济于事)
质量低 维护困难(改正一错误会引入更多新的错误、占 30 - 80 %的成本)
软件工程 4
软件工程概述 ---- 软件危机原因
• 规模大 ( 如 IBM360 操作系统耗费 5000 人年 )
• 复杂性高• 各子系统接口数 : 环状系统 :N• 各子系统都相连的系统 : N(N-1)/2
• 软件灵活性不能满足要求 ( 导致更改困难 )
• 影响软件生产率和质量的因素-- 个人能力 -- 团队合作-- 产品复杂度 -- 合适的表达方式-- 可利用时间 -- 其他
软件工程 5
软件工程概念
• 软件工程:以工程化原则解决软件问题• 软件工程过程:软件工程师在软件工
具支持下进行的一系列软件工程活动( 8.22 )
四类基本活动: 软件需求规格说明 软件开发 软件确认 软件维护
软件工程 6
软件生存周期• 软件定义问题定义、可行性研究、需求分析 • 软件开发概要设计、详细设计,编码测试(单元测试,组装测试,验证测试)( 8.31 )
• 软件确认• 软件维护改正性维护,适应性维护, 完善性维护,预防性维护( 8.34 )
软件工程 7
软件开发模型• 定义:各种软件工程活动的不同组织方
式 -- 瀑布模型-- 演化模型-- 螺旋模型-- 喷泉模型
软件工程 8
需求分析需求分析
问题定义问题定义
可性行研究可性行研究计划时期
概要设计概要设计
详细设计详细设计
编 码 编 码
测 试测 试
开发时期
运行与维护运行与维护运 行时 期
瀑布模型
•优点:•顺序性、依赖性 质量有保证•缺点:•用户很迟才看见软件,有风险• 错误不及早发现,会扩散• 不适宜于需求不明确的系统( 8.37 )
软件工程 9
演化模型• 用原型过程来代替全部开发阶段• 需要强有力开发工具和环境支持(
加工原型 原型
快速分析和设计
建造原型
客户评价原型
•通过原型过程的反复循环,直接得到软件系统•不强调开发的严格阶段性和高质量得阶段性文档,不追求理想的开发模式•原型 1 -》原型 2 -》…-》最终产品
软件工程 10
•螺旋模型沿着螺线旋转,在四个象限上分别螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:表达了四个方面的活动,即:•制定计划制定计划──确定软件目标,选定实施方案,──确定软件目标,选定实施方案,弄清项目开发的限制条件弄清项目开发的限制条件•风险分析风险分析──分析所选方案,考虑如何识别──分析所选方案,考虑如何识别和消除风险和消除风险•实施工程实施工程──实施软件开发──实施软件开发•客户评估客户评估──评价开发工作,提出修正建议──评价开发工作,提出修正建议 螺旋模型的表示如图所示螺旋模型的表示如图所示
螺旋模型
软件工程 11
螺旋模型
软件工程 12
喷泉模型• 无明显边界各阶段可交叉进行,
反映软件并行性• 模型强调增量开发,分析一点,
设计一点,并不要求一个阶段彻底完成,整个过程是一个迭代的逐步提炼的过程
• 以分析为基础,资源消耗呈塔型,在分析阶段消耗资源最多
• 适用于面向对象开发• ( 8.44 )