2010秋 计算机学科概论 软件工程概述解析.ppt

2010秋 计算机学科概论 软件工程概述解析.ppt

  1. 1、本文档共102页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程 Software Engineering 2010秋 (2)软件副本的大批量生产轻而易举 绝大多数其他类型的工程师非常关心每一个部件耗费的成本与劳动量。换句话说,对于有形产品,设计完成之后的制作过程往往是代价昂贵的部分。 与之相反,软件产品能通过网络下载或制作CD以极低的成本进行复制。因此,几乎全部的软件成本都存在于它的开发过程中,而不是制造过程中。 (3)软件业是劳动密集型的 通过使用机器,制造业与建筑业的许多领域已经实现了自动化;因此其他工程分支可以用更少的劳动量生产出更多的产品。但是,使软件的设计与编程完全实现自动化,需要真正“智能”的机器。目前这个方向上的尝试离成功还很遥远。 (4)一个没有经过充分训练的软件开发人员很容易编写出难以理解和修改的软件 编程新手可以创建复杂的系统完成有用的功能,但它的设计却可能极其紊乱。其他工程领域也可能产生不良的设计,但是这些缺陷通常比较容易发现,因为它们不会隐藏在上千页的源代码中。例如,如果土木工程师设计了一座不安全的桥梁,审查人员一般会比较容易地发现设计中的缺陷,因为他们清楚地知道在每张图纸和每次计算中应当寻找什么。 (5)软件本身很容易修改 但由于它的复杂性,又很难正确地修改 人们总是试图在尚未完全了解软件的时候就去修改它,而这些修改又会带来新的错误。 (6)软件不像其他的工业产品那样会因使用而磨损,随着反复修改,它的设计会逐渐退化 对软件的修改很容易引入新的缺陷,因此修改过的软件从设计角度讲容易变差。随着时间的流逝,软件后续版本的设计可能会表现出严重的退化,这时就需要完全重新设计了。 (6)软件不像其他的工业产品那样会因使用而磨损,随着反复修改,它的设计会逐渐退化。 软件的特性造成的问题 总而言之,以上这些特性说明,大部分现有软件的质量都相对较差,而且还在不断地变得更差。 同时,对新的、修改过的软件的需求旺盛,客户希望它们质量高,并且能够很快地生产出来。 因此,软件开发人员常常满足不了经理与客户的期望——许多软件项目不是根本没有交付,就是推迟交付而且超出了预算。 此外,许多已交付的软件系统的问题太多,从未投入使用;而其他一些软件在使用前需要做较大的修改。 构造一栋房屋 构建一个高层建筑 早期的结构 现代的结构 房屋建模 “工程”的定义 定义有很多,通常来说: 用最少的代价解决问题 ... ... 目的是处理实际的难题 ... ... 以科学知识为手段 ... ... 建造工具 ... ... 服务于人类 目标: 使普通人能做以前只有专家圣手才能做的事情。 “工程”的进化 “工程” 化的步伐 规范化循环 讨论 软件工程的背景和历史 1968年由NATO (北大西洋公约组织)在德国Garmish召开的学术会议上,Feitz Bauer首先提出了“软件工程”概念。 软件工程的概念 概括地说,软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。 软件工程的概念 1993年IEEE的定义: (1)把系统化的、规范的、可度量的途径应用与软件开发、运行和维护; (2)研究(1)中的途径。 软件工程的本质特性 1.关注大型程序的构造 2.中心课题是控制复杂性(分解便于管理) 3.软件经常变化 4.开发效率非常重要 5.和谐协作是关键 6.软件必须有效地支持用户 7.开发者与使用者文化不同(隔行如隔山) 软件工程的基本原理 1.用分阶段的生命周期计划进行严格管理 2.坚持进行阶段评审 3.实行严格的产品控制 4.采用现代程序设计技术 5.结果应能清楚地审查 6.开发小组的人员应该少而精 7.承认不断改进软件工程实践的必要性 软件生命周期 软件工程方法学 通常把在软件生命周期全过程中使用的一整套技术的集合称为方法学(methodology),也称为范型(paradigm)。在软件工程范畴中,这两个词的含义基本相同。 软件工程方法学 软件工程方法学三要素,这就是方法、工具和过程。其中,方法是完成软件开发的各项任务的技术方法,回答“如何做”的问题;工具是为方法的运用提供自动的或半自动的软件支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。 软件工程:一种层次化技术 软件工程方法学 传统方法学(结构化方法学):

文档评论(0)

此项为空 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档