版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程贾西平贾西平Email: 本课程的学习内容概述概述基本概念过程模型需求分析需求分析需求分析过程结构化分析面向对象分析软件设计软件设计设计概述结构化设计面向对象设计软件实现测试与维测试与维护护软件测试软件维护项目管理项目管理项目估算计划管理7:1227:12第1讲 概论3学习目标 软件 软件危机 软件工程 两大范型 基本思想 基本原理 基本活动7:127:12讲义提纲 计算机软件 软件危机 软件工程57:12计算机软件 什么是软件 软件的特征 软件的分类 软件的发展7:12什么是软件? 软件是计算机系统中与硬件相互依存的另一部分,是程序,数据及其相关文档的完整集合。 程序:为实现设计的功
2、能和性能要求而编写的指令序列。 数据:使指令能够正常操纵信息的数据结构 文档:与程序开发,维护和使用有关的图文资料软件的要素和特性 程序程序 文档文档 数据数据三要素 复杂性复杂性 一致性一致性 不会磨损和不会磨损和“老化老化” 易变性易变性 移植性移植性 成本高成本高特性7:127:12软件的特征(参考) 是一种逻辑实体,具有抽象性没有物理实体,非可视性 软件的生产与硬件不同批量生产的难易程度产品生产方法不同软件主要成本集中在开发过程,硬件主要集中在原材料 软件产品不会“磨损”(参见图1-1 产品失效曲线)7:12图1.1 软件/硬件产品失效率曲线(a)硬件 (b)软件(a)失效率磨合调整磨
3、损用坏时间(b)时间失效率修改点实际曲线理想曲线7:12软件的分类 按用途划分 系统软件 实时软件 商业管理软件 工程与科学计算软件 嵌入式软件 人工智能软件 个人计算机软件软件的分类(2) 按规模划分 微型 小型 中型 大型 甚大型 极大型7:12软件演化 第一代:程序设计阶段。第一代:程序设计阶段。1946年到60年代初,其主要特征是程序生产方式为个体手工方式。 第二代:程序系统阶段。第二代:程序系统阶段。60年代初到70年代初,软件工程学科诞生。软件的开发方式由个体生产发展到了小组生产,软件的开发与维护费用以惊人的速度增加,维护困难,导致软件危机。 第三代:传统软件工程阶段。第三代:传统
4、软件工程阶段。20世纪70年代中期至80年代中期,软件工程师把工程化的思想加入到软件的开发过程中,用工程化的原则、方法和标准来开发和维护软件。 第四代:面向对象阶段。第四代:面向对象阶段。20世纪80年代中期至今,面向对象的方法学受到了人们的重视,促进了软件业的飞速发展。7:127:12软件的发展(参考) 从计算机问世到现在,软件发展主要经历了三个阶段: 程序设计阶段程序设计阶段:20世纪5060年代 程序系统阶段程序系统阶段:20世纪6070年代 软件工程阶段软件工程阶段:20世纪70年代现在7:12表表1.2 1.2 计算机软件发展的三个阶段及其特点计算机软件发展的三个阶段及其特点 阶 段
5、特 点程序设计程序设计程序系统程序系统软件工程软件工程软件所指软件所指程序程序及说明书程序、文档、数据主要程序设计语主要程序设计语言言汇编及机器语言高级语言软件语言*软件工作范围软件工作范围程序编写设计和测试整个软件生命周期需求者需求者程序设计者本人少数用户市场用户开发软件的组织开发软件的组织个人开发小组开发小组及大、中型开发机构软件规模软件规模小型中、小型大、中、小型转下页表1.2续* 软件语言包括需求定义语言,软件功能语言,软件设计语言,程序设计语言等。7:12 阶 段特 点程序设计程序设计程序系统程序系统软件工程软件工程决定质量的因决定质量的因素素个人技术小组技术水平技术与管理水平开发技
6、术和手开发技术和手段段子程序、程序库结构化程序设计数据库、开发工具、集成开发环境、工程化开发方法、标准和规范、网络及分布式开发、面向对象技术、计算机辅助软件工程维护责任者维护责任者程序设计者开发小组专职维护人员硬件的特征硬件的特征高价、存储量小、可靠性差降价,速度、容量和可靠性明显提高向超高速、大容量、网络化、微型化方向发展软件的特征软件的特征完全不受重视软件的技术发展不能满足需求,出现软件危机开发技术有进步,但仍未完全摆脱软件危机表表1.2 1.2 计算机软件发展的三个阶段及其特点(续)计算机软件发展的三个阶段及其特点(续)7:12软件危机 概念 表现 原因 解决途径7:12软件危机的概念
7、如何满足日益增长的软件需求,如何维护应用中的大量已有软件,已成为计算机应用系统进一步发展的瓶颈 1968年,北大西洋公约组织的计算机科学家们在联邦德国召开的国际会议上讨论了软件危机软件危机问题 软件危机软件危机:指在软件开发和软件维护过程中所存在的一系列严重问题。7:12软件危机的表现 软件开发无计划性,成本和工期经常失控 软件产品不能满足用户的实际需求 软件产品的质量无保证 软件的可复用性和可维护性较差 开发过程不规范,缺乏合格的文档资料 软件开发的人力成本持续上升 软件开发的生产率低下,满足不了急剧增长的软件需求7:12图1.2 计算机系统硬件、软件成本比例变化 年份软件硬件成本 / %1
8、008060402019501970198519957:12图1.3 软件技术的发展落后于需求 时间差距软件需求软件技术7:12软件危机的原因 软件是逻辑产品,开发进度、成本难以估计和控制 维护过程复杂,代价大 用户对软件需求的描述不准确,有遗漏,有二义 忽视需求分析的重要性 文档不完备,不规范 过分强调编码技巧,忽视软件的可维护性 大型软件项目需多人协同完成,缺乏管理经验 缺乏有力的方法学和支持工具7:12软件危机的解决途径 推广推广使用成功的开发技术和方法 消除消除 错误的概念和做法 使用使用软件工具和软件工程支持环境 加强软件管理管理7:12软件工程 概念 两大范型 基本原理 思想 基本
9、活动软件的工程化思想 把软件看作是一个工程产品,其完成要经过需求分析、设计、实现、测试、管理和维护几个阶段。 用完善的工程化思想研究软件生产的规范方法。7:127:12软件工程定义1968年NATO(北大西洋公约组织)会议上首次提出 B.W.Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必须的相关文件资料。 Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法 IEEE:开发、运行、维护和修复软件的系开发、运行、维护和修复软件的系统方法。统方法。软件工程两大范型软件工程两大范型 传统的结构化范型
10、传统的结构化范型 特征:结构化技术要么面向行为,要么面向数据 构成结构化范型的技术包括: 结构化分析 结构化设计 结构化编程 结构化测试 结构化维护7:12软件工程两大范型软件工程两大范型 面向对象范型面向对象范型 特征:将对象视作一个融合了数据及在其上操作的行为的、统一的软件组件。 技术包括: 面向对象分析 面向对象设计 面向对象编程 面向对象测试 面向对象维护 优势: 对象的概念符合业务或领域的客观实际 维护容易7:12软件工程基本原理软件工程基本原理 分阶段的软件生存周期 坚持进行阶段评审 实行严格的产品控制 采用现代程序设计技术 明确职责 开发小组的人员应少而精 不断改进开发过程7:1
11、2软件工程思想软件工程思想 推迟实现的观点 逐步求精的观点 分解与抽象的观点 信息隐蔽观点 质量保证观点7:127:12软件工程的核心思想(参考) 采用工程的概念、原理、技术和方法来开发和维护软件,把经过实践考验而证明是正确的管理技术管理技术和当前能够得到的最好的技术方法技术方法结合起来,从而大大提高软件开发的成功率和生产率。软件工程基本活动软件工程基本活动 开发活动开发活动 软件生命周期模型 项目管理活动项目管理活动 项目的范围(要做的内容) 进度(要花费的时间) 成本(要耗费的资源) 过程改进活动过程改进活动 关注质量 软件开发的最佳实践 过程定义和改进7:127:12软件工程的基本要素(参考) 软件工程包括三要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论