软件工程导论第1章课件-概论()技术总结.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程;内容摘要;内容摘要;计算机软件;软件的发展;1956-1968年 从实用的高级程序语言出现到软件工程出现前 存储器容量大,外围设备得到迅速发展,出现了高级程序设计语言 应用领域包括数据处理(非数值数据),其特点是计算量不大,但输入、输出量却较大 高速主机与低速外围设备的矛盾突出,出现了操作系统、并发程序、数据库及其管理系统 20世纪60年代初提出了软件一词,开始认识到文档的重要性 研究高级程序设计语言、编译程序、操作系统、支持编程的工具及各种应用软件 工作方式逐步从个体方式转向合作方式 出现软件危机;1968年-至今 从软件工程出现到现在 硬件向巨型机和微型机二个方向发展,出现了计算机网络,软件方面提出了软件工程,出现了“计算机辅助软件工程”(CASE) 计算机的应用领域渗透到各个业务领域,出现了嵌入式应用,其特点是受制于它所嵌入的宿主系统 开发方式逐步由个体合作方式转向工程方式 软件工程方面的研究主要包括软件开发模型、软件开发方法及技术、软件工具与环境、软件过程、软件自动化系统等 软件方面研究以智能化、自动化、集成化、并行化、以及自然化为标志的软件开发新技术;软件危机;软件危机的表现;软件危机的原因;在软件开发的不同阶段进行修改需要付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;而在开发的中期软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时再引入变动,当然需要付出更高的代价。根据美国一些软件公司的统计资料,在后期引入一个变动比在早期引入相同变动所需付出的代价高2~3个数量级。 图1.1定性地描绘了在不同时期引入一个变动需要付出的代价的变化趋势。; 图1.1 引入同一变动付出的代价随时间变化的趋势;轻视维护是一个最大的错误。许多软件产品的使用寿命长达10年甚至20年,在这样漫长的时期中不仅必须改正使用过程中发现的每一个潜伏的错误,而且当环境变化时(例如硬件或系统软件更新换代)还必须相应地修改软件以适应新的环境,特别是必须经常改进或扩充原来的软件以满足用户不断变化的需要。所有这些改动都属于维护工作,而且是在软件已经完成之后进行的,因此维护是极端艰巨复杂的工作,需要花费很大代价。 统计数据表明,实际上用于软件维护的费用占软件总费用的55%~70%。软件工程学的一个重要目标就是提高软件的可维护性,减少软件维护的代价。;克服软件危机的途径;软件的特点;*;其它特点: 软件的开发和运行常受到计算机硬件的限制,对计算机硬件有着不同程度的依赖性 软件的开发至今尚未完全实现自动化 软件成本相当昂贵 相当多的软件工作涉及到社会因素;软件的分类;按软件服务对象的范围划分 项目软件 产品软件 按使用的频度进行划分 一次使用 频繁使用 按软件失效的影响进行划分 高可靠性软件 一般可靠性软件 ;软件语言 software language;内容摘要;软件工程定义;软件工程的框架; 过程 生产一个最终满足需求且达到工程目标的软件产品所需要的步骤 软件工程过程包括:开发过程、运作过程、维护过程、管理过程、支持过程、获取过程、供应过程、剪裁过程等; 原则 选取适宜的开发模型 采用合适的设计方法 提供高质量的工程支持 重视软件工程的管理;软件生存周期 ( software life cycle);计算机系统工程 计算机系统包括计算机硬件、软件、使用计算机系统的人、数据库、文档、规程等系统元素 计算机系统工程的任务 确定待开发软件的总体要求和范围,以及它与其它计算机系统元素之间的关系 进行成本估算,做出进度安排 进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中作出选择;软件需求分析 主要解决待开发软件要“做什么”的问题 确定软件的功能、性能、数据、界面等要求,生成软件需求规约;软件设计 主要解决待开发软件“怎么做”的问题 软件设计通常可分为系统设计(也称概要设计或总体设计)和详细设计 系统设计的任务是设计软件系统的体系结构,包括软件系统的组成成分、各成分的功能和接口、成分间的连接和通信,同时设计全局数据结构 详细设计的任务是设计各个组成成分的实现细节,包括局部数据结构和算法等;编码 用某种程序设计语言,将设计的结果转换为可执行的程序代码 测试 发现并纠正软件中的错误和缺陷。测试主要包括单元测试、集成测试、确认测试和系统测试 运行和维护 在软件运行期间,当发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界环境的变化等情况出现时对软件进行修改;内容摘要;软

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档