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