- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
知识回顾 软件工程40年回顾 信息时代的软件工程 软件是人类思维创造的杰作,是信息化的核心。如何以经济有效的方法开发高质量的软件是人们一直努力研究的问题。 软件工程(Software Engineering)是在克服60年代末所出现的“软件危机”的过程中逐渐形成与发展的。软件工程是一门指导计算机软件系统开发和维护的工程学科,是一门新兴的边缘学科,主要研究如何应用软件开发的科学理论和工程技术来指导大型软件系统的开发。 软件工程是为了解决开发成本效益和软件质量的问题。 基本要求 了解软件的发展历程 掌握软件和软件工程的概念 理解软件工程知识体系 了解软件工程职业道德规范 复杂性 (1)软件实体可能比任何由人类创造的其他实体要复杂,因为没有任何两个软件部分是相同的。 (2)数字计算机本身就比人类建造的大多数东西复杂。计算机拥有大量的状态,这使得构思、描述和测试都非常困难。软件系统的状态又比计算机系统状态多若干个数量级。 (3)软件实体的扩展也不仅仅是相同元素重复添加,而必须是不同元素实体的添加。 复杂性 (4)软件的复杂度是必要属性,不是次要因素。抽掉复杂度的软件实体描述常常也去掉了一些本质属性。 数学家和物理学家们建立模型以简化复杂的现象,从模型中抽取出各种特性,并通过试验来验证这些特性 复杂性 复杂性问题造成软件产品开发问题 团队成员之间的沟通非常困难,导致了产品瑕疵、成本超支和进度延迟 由于复杂度,列举和理解所有可能的状态十分困难,影响了产品的可靠性 由于函数的复杂度,函数调用变得困难,导致程序难以使用 由于结构性复杂度,程序难以在不产生副作用的情况下用新函数扩充 由于结构性复杂度,造成很多安全机制状态上的不可见性 复杂性 复杂度引发管理上的问题 全面理解问题变得困难,从而妨碍了概念上的完整性 它引起了大量学习和理解上的负担,使开发慢慢演变成了一场灾难 (3) 软件的发展 (1)第一阶段:20世纪50-60年代 应用:快速计算 语言: Algol Fortran 程序质量依赖于程序员个人的技巧 60年代末出现了“软件危机” (2)第二阶段:20世纪70年代 应用:涉及非数值计算的商业事务处理。 语言:Pascal Cobol 软件的概念包含了文档。开始采用开发模型 (3) 软件的发展 (3)第三阶段:20世纪80年代 微处理器出现,计算机大众化 语言: 面向对象 CASE 开始注重软件质量 (4)第四阶段:20世纪90年代至今 Internet技术迅速发展,软件系统从封闭走向开放 WEB应用、分布式软件、软件复用、构件技术 进入21世纪:Internet向智能网络时代发展,网格技术、web services 分布式计算等。 软件错误的实例 IBM公司的 OS/360,共约100万条指令,花费了5000个人年;经费达数亿美元,而结果却令人沮丧,错误多达2000个以上,系统根本无法正常运行。 OS/360系统的负责人Brooks这样描述开发过程的困难和混乱:“…像巨兽在泥潭中作垂死挣扎,挣扎得越猛,泥浆就沾得越多,最后没有一个野兽能够逃脱淹没在泥潭中的命运。…” 1963年美国飞往火星的火箭爆炸,造成1000万美元的损失。原因是FORTRAN程序: DO 5 I=1,3 误写为:DO 5 I=1 . 3 软件危机 软件危机的原因: 软件规模越来越大,结构越来越复杂,超过了人所能接受的程度。 软件开发的管理困难,可靠性无法保证。 软件开发费用不断增加。 软件开发技术落后。 生产方式落后。 开发工具落后。 软件工程 人们在分析了软件危机的原因之后,开始探索用工程化的方法进行软件生产的可能性,即用现代工程的概念、原理、技术和方法进行计算机软件的开发、管理、维护和更新。于是产生了计算机科学技术的一个新领域—软件工程。 (1)软件工程学科的形成与发展 (2) 软件工程知识体SWEBOK (2) 软件工程知识体SWEBOK (2) 软件工程知识体SWEBOK 作业: 思考题:为什么要研究和学习软件工程? 作业题: 1. 什么是软件?软件产品的特性是什么? 2. 什么是软件危机?其产生的原因是什么? 3. 软件工程包括哪些基本要素?请简要说明这些要素极其作用。 ? – ? – ? – ? – 团队协同工作 注重训练有素,并以团队的形式进行有效的工作。 角色分工 多重角色:研究、开发、设计、生产、测试、构造、实施、 管理以及其他诸如销售、咨询和教学等。 最佳实践 通过专业团体不断地开发和确认工程原则、标准和实践。 强调重用 工程师应该重用设计和设计制品。 22 (2) 工程的特征 Evalu
文档评论(0)