2007东北大学网络学院计算机软件技术基础课程组

上传人:繁星 文档编号:88164377 上传时间:2019-04-20 格式:PPT 页数:79 大小:890KB
返回 下载 相关 举报
2007东北大学网络学院计算机软件技术基础课程组_第1页
第1页 / 共79页
2007东北大学网络学院计算机软件技术基础课程组_第2页
第2页 / 共79页
2007东北大学网络学院计算机软件技术基础课程组_第3页
第3页 / 共79页
2007东北大学网络学院计算机软件技术基础课程组_第4页
第4页 / 共79页
2007东北大学网络学院计算机软件技术基础课程组_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《2007东北大学网络学院计算机软件技术基础课程组》由会员分享,可在线阅读,更多相关《2007东北大学网络学院计算机软件技术基础课程组(79页珍藏版)》请在金锄头文库上搜索。

1、计算机软件已经成为一种驱动力 是进行商业决策的引擎 是现代科学研究和工程问题寻求答案的基础 是鉴别现代产品和服务的关键因素 软件被嵌入到各种类型的系统中 交通、医疗、电信、军事、工业生产过程、娱乐、办公、 软件在现代社会中确实是必不可少的,软件的概念 计算机系统中与硬件相互依存的另一部分,程序+数据结构+文档 程序 是按事先设计的功能和性能要求执行的指令序列 数据结构 是使程序能正常操纵信息的数据结构 文档 是与程序开发,维护和使用有关的图文材料,软件分类 给软件做出科学的分类是很困难的 目前还找不到一个统一的、严格的分类标准 常见的软件一般按照以下分类: 按功能划分 按规模划分 按工作方式划

2、分,软件分类 按功能划分 系统软件 与计算机硬件紧密配合,使计算机高效工作的软件 如操作系统、数据库管理系统、设备驱动程序、通信处理程序等 支撑软件 协助用户开发软件的工具性软件 如文本编辑程序、图形软件包等 应用软件 为特定领域内特定目的服务的软件 如OFFICE、科学计算软件、嵌入式软件、人工智能软件等,软件分类 按规模划分,软件的特点和性质 复杂性 实际问题复杂、程序逻辑结构复杂 抽象性 软件是一种逻辑实体 易于副本的大批量生产 强合作性,团队开发 软件多数是自定的,迄今为止,软件的开发尚未完全摆脱手工的方式。 软件成本相当昂贵,软件的特点和性质 与硬件不同,软件无明显制造过程,无硬件样

3、的机械磨损及老化问题,软件的发展 伴随计算机技术的发展经历了三个阶段 程序设计阶段 软件设计阶段 软件工程阶段,软件的发展 程序设计阶段(60 年代中期以前) 程序设计主要围绕硬件进行开发 由于硬件非常昂贵、运算速度低、内存容量少,造成这时的软件就是规模较小的程序,需求者和编写者往往是同一个人,程序设计追求节省空间和编程技巧以节省存储单元和CPU 时间,写出的程序只要能在计算机上的出现正确结果,程序的写法可以不受任何约束,无文档资料,这些程序很难被别人看懂。 主要是用于科学计算,软件的发展 软件设计阶段(60 年代中期到70 年代中期) 硬件环境相对稳定,高级编程语言层出不穷,应用领域不断拓宽

4、 社会对软件的需求量明显增加,软件用作商品,建立了软件的概念 软件开发技术没有重大突破,生产效率低下,导致“软件危机”,软件的发展 软件工程阶段( 1970年-) 技术的成熟 硬件向巨型、微型、网络、智能等方向发展 数据库技术已成熟并广泛应用 结构化程序设计在数值计算领域取得优异成绩 软件生产化 软件测试技术、方法、原理用于软件生产过程 软件工作的范围从只考虑程序编写扩展到涉及整个软件生存期,软件包括程序、数据和文档,软件开发的成果具有社会属性,它要在市场中流通以满足广大用户的需要。软件开发者和用户的分工和责任是十分清楚的,软件危机 背景 在软件设计阶段,一个重要特征是出现了“软件作坊”。 基

5、本上仍沿用早期形成的个体化软件开发方法 此时的软件包含程序及简单的说明书 当软件数量急剧膨胀时,“软件危机”爆发了,软件危机 1967年NATO(北大西洋公约组织) 的研究组首次提出“软件危机”问题 所谓软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,软件危机 被称为“软件危机”的现象 研制软件系统需要投入大量的人力、物力和财力,但系统的质量却无法保证 开发软件所需的高成本与软件产品的低质量之间存在着尖锐的矛盾 软件开发陷入不可自拔的恶性循环之中,软件危机 软件危机面临问题 项目没有被很好地理解;计划不周,最终导致进度拖延 对软件开发成本和进度的不准确估计造成的超预算、拖延、

6、甚至半途而废 开发进度难以控制、导致开发周期过长、开发成本过高 软件成本在计算机系统总成本中所占比例逐年上升 资料不规范、测试不充分,导致软件质量低 软件产品的质量往往靠不住,软件危机 软件危机面临问题 软件开发生产率远远落后于计算机应用迅速普及深入的趋势造成软件产品“供不应求” 软件开发过程中涉及多人的复杂协作,软件产品难以维护 软件常常是不可维护 包括程序中的错误难以改正、难以适应新的软硬件环境的变化和无法扩展等,软件危机 软件危机面临问题 不同角色的“神话”也导致了危机的存在 管理者软件开发的标准与示例可解决开发中遇到的任何问题;如已落后计划,可增加更多程序员来赶上进度 用户项目需求总在

7、不断变化,但这些变化能够很容易地满足;对目标的一般性描述就足以开始写程序了,细节可以后补充 开发者一旦我们写出了程序并使其正常运行,我们的工作就结束了,只有差的软件产品才需要维护;成功项目唯一应该提交的就是运行程序;,软件工程定义 1967年NATO(北大西洋公约组织) 的研究组首次提出使用“软件工程”来改进软件生产的方法和工具、提高软件生产率和软件质量,以解决软件危机 1968年在德国召开的NATO软件工程会议的认可了“软件工程”概念 1968年北大西洋公约组织的计算机科学家在当时联邦德国召开的专门讨论解决“软件危机”的国际会议上正式提出并使用的 目前软件危机依然存在,并继续推动软件工程的研

8、究和发展,软件工程定义 1968年,Fritz Bauer在第一届NATO会议上给出的定义 软件工程 是为了经济地获得能够在实际机器上高效运行的可靠软件而建立和使用的一系列好的工程化原则。 1983年,IEEE(Institute of Electrical & Electronic Engineers,电气与电子工程师协会)给出的定义 (1) 研究和应用如何以系统化的、规范的、可度量的方法去开发、运行和维护软件,即把工程化应用到软件上。(2) 研究(1)中的方法。,软件工程定义 软件工程视软件的开发是一项工程,它借鉴传统工程的原则、方法,使经过时间考验而证明是正确的管理方法和当前能够得到的最

9、好的开发技术结合了起来,以提高质量、降低成本为目的。 是一种以质量为核心的层次化技术,软件工程定义 软件工程三要素 过程 将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的 方法 为软件开发提供“如何做”的技术 工具 为软件工程方法提供自动的或半自动的软件支撑环境,软件工程基本目标 达到软件所要求的功能 按时完成开发工作,及时交付使用 付出较低的开发成本 取得较好的软件性能 开发的软件具有较高的可靠性 开发的软件维护简单、容易,软件工程基本目标 软件工程目标之间存在着互补和互斥的关系,软件工程原则 软件工程是一门交叉学科 涉及计算机科学、管理科学、工程学和数学等 将软件作

10、为特殊产品,将其的生产、管理过程纳入传统工程管理的轨道 用计算机科学中的最新成果应用于软件工程中 用管理学的原理和方法进行软件生产管理 用工程学的观点进行核算,制定工程进度和实施方案 用数学方法建立软件的可靠模型和各种有效算法,软件工程原则 自1968年提出“软件工程”的概念以来,专家学者又陆续提出了100多条关于软件工程的准则 1983年美国TRW公司著名软件工程专家B.W.Boehm在其发表的一篇论文中提出了软件工程的七条基本原理 他认为这七条原理是确保软件产品质量和开发效率的最小准则集合,软件工程原则 B.W.Boehm概括出著名的七条原则 按软件生存期分阶段制定计划并认真实施 坚持进行

11、阶段评审 坚持严格的产品控制 使用现代程序设计技术 明确责任,以使结果能清楚地审查 用人少而精 不断改进开发过程,软件工程原则 按软件生存期分阶段制定计划并认真实施 在软件的整个生命周期中应该制定并严格执行六类计划 项目概要、项目进度表、项目控制、产品控制、验证及运行维护计划。 不同层次的管理人员必须严格按照计划各尽其职地去管理软件开发与维护工作 不可以因受客户或上级的影响而擅自背离预定计划,软件工程原则 坚持进行阶段评审 要在每个阶段进行严格的评审,尽早发现并修正各个阶段中所犯的错误是一条必须遵循的重要原则 为什么不能在编码阶段结束后确保软件的质量? 原因在于: 大部分错误是在编码之前造成的

12、(根据Boehm统计,设计错误占软件错误的63%,编码错误占37%)错误发现与改正得越晚,所付出的代价将越高,软件工程原则 坚持严格的产品控制 在软件开发过程中不应随意改变需求,但也不能禁止更改需求 当必须修改时,为了保持软件各配置成分的一致性,必须实行严格的产品控制 一切有关修改软件的建议都必须按照严格的规程进行评审,获准后才能实施修改 绝对不能谁想修改就随意进行修改的行为,软件工程原则 使用现代程序设计技术 采用先进的技术既可以提高软件开发的效率,又可以提高软件维护的效率 实践证明 结构化程序设计技术、面向对象程序设计技术是各个不同历史阶段的优秀程序设计技术和方法,软件工程原则 明确责任,

13、以使结果能清楚地审查 由于软件产品是看不见、摸不着的逻辑产品,导致软件开发人员的工作进展情况可见性差 为了提高开发过程的可见性,应根据软件开发项目中的目标完成期限,规定开发组织的责任和产品标准,使得到的结果能够清楚的审查,软件工程原则 用人少而精 人员素质和数量是影响产品质量和开发效率的重要因素 素质高的人开发效率比低的人高几倍甚至几十倍,而错误则明显得少 应组织素质高的开发小组成员,并且人员不宜过多 人数增加,管理难度也增加,软件工程原则 不断改进开发过程 积极主动地采纳新的软件技术 不断总结经验,软件工程模式 软件开发方法又称开发模式、开发范型等 对开发方法的选择将影响整个软件开发过程 从

14、软件工程诞生以来,人们重视软件开发方法的研究,提出了多种软件开发方法和技术 传统软件开发方法 面向对象开发方法 现代方法学,软件工程软件工程概述,软件工程模式 开发方法主要定义 特定问题和应用的开发过程中将遵循的步骤 确定将用于表示问题和解的那些成分的类型 利用这些成分表示与问题解决有关的抽象 直接得到问题的结构,软件工程模式软件工程三要素 过程 是为了获得高质量的软件所需要完成的一系列任务的框架,将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的 规定了完成各项任务的工作步骤 方法 是完成软件开发的各项任务的技术方法 为软件开发提供“如何做”的技术 工具 为软件工程方法

15、提供自动的或半自动的软件支撑环境,软件工程模式传统软件工程模式 把软件生存周期划分成若干个阶段 每个阶段的任务相对独立,比较简单,便于不同人员分工协作,从而降低整个软件开发工程的困难程度 采用系统化的技术方法实现每个阶段任务 结构化分析技术 结构化设计技术 缺点 过分强调了分阶段实施模块化、结构化程序设计技术和方法 忽视了人在软件开发过程中的地位和作用,软件工程模式传统软件工程模式 存在的问题 由于结构化方法要么面向行为,要么面向数据,因此当软件规模庞大,或对软件的需求模糊的、或随时间需要变化时,软件开发往往不成功。 传统方法人为地把数据和数据处理分开,导致了问题的复杂性 计算机的主要功能是处

16、理数据,数据和对数据的处理本是紧密联系在一起的,软件工程模式现代软件工程模式 在传统软件开发方法基础上,为强调人在软件开发中的作用,以及应用软件开发新技术的发展趋势而提出的 例如:面向对象开发、形式化开发等 在面向对象开发方法中将数据和数据处理紧密结合在一起 软件开发过程变为系统分析、系统构造、系统测试的集成过程 最大限度地采用软件组件 现代软件工程不仅包括软件开发方法、工具和过程,更强调人在开发过程中的作用,软件工程模式现代软件工程模式(1) 基本要点 以人为主,充分利用软件开发方法及软件开发工具 开发人员的组织管理对软件开发成功与否至关重要 基于软件组件的软件开发技术 各种功能的可重用软件组件不断问世,使得在软件开发过程中编程工作量日趋减少 在设计好系统体系结构后,利用软件组件构造或重构软件系统 软件组件是标准化设计、成品化生产的结果 大大简化了设计、编程、测试各个环节的工作量,提高了工作效率和生产效率,软件工程模式现代软件工程模式(2) 系统分析 系统分析阶段要独立于系统的实现环境 可以保证建立起来的系统结构具有相对的稳定性 便于系

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号