软件工程课件ch1概述.ppt
《软件工程课件ch1概述.ppt》由会员分享,可在线阅读,更多相关《软件工程课件ch1概述.ppt(62页珍藏版)》请在三一办公上搜索。
1、知识回顾,软件工程40年回顾信息时代的软件工程,第一章 软件工程概述,信息学院计算机系 张翠肖,软件是人类思维创造的杰作,是信息化的核心。如何以经济有效的方法开发高质量的软件是人们一直努力研究的问题。软件工程(Software Engineering)是在克服60年代末所出现的“软件危机”的过程中逐渐形成与发展的。软件工程是一门指导计算机软件系统开发和维护的工程学科,是一门新兴的边缘学科,主要研究如何应用软件开发的科学理论和工程技术来指导大型软件系统的开发。软件工程是为了解决开发成本效益和软件质量的问题。,内容提纲,软件 软件的定义与软件危机 软件的本质特性,软件工程 定义与发展历史 理解软件
2、质量 过程、方法和工具 软件工程学科 软件工程知识体系(SWEBOK)软件工程职业道德规范,基本要求,了解软件的发展历程掌握软件和软件工程的概念理解软件工程知识体系了解软件工程职业道德规范,内容提纲,软件 软件的定义与软件危机 软件的本质特性,软件工程 定义与发展历史 理解软件质量 过程、方法和工具 软件工程学科 软件工程知识体系(SWEBOK)软件工程职业道德规范,1.1 什么是软件,软件的定义(IEEE Standard Glossary of Software Engineering Terminology),软件是计算机程序、规程以及运行计算机系统可能需要的相关文档和数据。,从软件的内
3、容来说,软件更像是一种嵌入式的数字化知识,其形成是一个通过交互对话和抽象理解而不断演化的过程。,(1)软件的分类,通用软件(Generic Software),通用软件是由软件开发组织开发,面向市场用户公开销售的独立运行系统,有时也被称为套装软件。,举例:操作系统、数据库系统、字处理软件等,定制软件(Customized Software),定制软件是由某个特定客户委托,软件开发组织在合同的约束下开发的软件。,举例:企业 ERP 系统、卫星控制系统、空中交通指挥系统等,根据软件服务对象的范围分类,实时系统:嵌入式系统:数据处理系统:信息系统:传感系统:系统软件:通信软件:办公系统:科学计算软件
4、:图形软件:,空中交通控制系统数码相机,GPS电话帐单网站,数字图书气象数据操作系统,编译器路由器,移动电话文字处理,视频会议仿真模拟,天气预报电影制作,CAD 设计,7,软件的应用,No silver bullet:essence and accidents of software engineering,Fredrick P.Brooks,IBM OS360 项目经理 1999 年图灵奖获得者,“没有任何技术或管理上的进展,能够独立地许诺十年内使生产率、可靠性或简洁性获得数量上的进步。”,软件的本质特性,复杂性(Complexity)一致性(Conformity)可变性(Changeabi
5、lity)不可见性(Invisibility),12,(2)软件的本质特性,复杂性,(1)软件实体可能比任何由人类创造的其他实体要复杂,因为没有任何两个软件部分是相同的。(2)数字计算机本身就比人类建造的大多数东西复杂。计算机拥有大量的状态,这使得构思、描述和测试都非常困难。软件系统的状态又比计算机系统状态多若干个数量级。(3)软件实体的扩展也不仅仅是相同元素重复添加,而必须是不同元素实体的添加。,(4)软件的复杂度是必要属性,不是次要因素。抽掉复杂度的软件实体描述常常也去掉了一些本质属性。数学家和物理学家们建立模型以简化复杂的现象,从模型中抽取出各种特性,并通过试验来验证这些特性,复杂性,复
6、杂性,复杂性问题造成软件产品开发问题团队成员之间的沟通非常困难,导致了产品瑕疵、成本超支和进度延迟由于复杂度,列举和理解所有可能的状态十分困难,影响了产品的可靠性由于函数的复杂度,函数调用变得困难,导致程序难以使用由于结构性复杂度,程序难以在不产生副作用的情况下用新函数扩充由于结构性复杂度,造成很多安全机制状态上的不可见性,复杂性,复杂度引发管理上的问题全面理解问题变得困难,从而妨碍了概念上的完整性它引起了大量学习和理解上的负担,使开发慢慢演变成了一场灾难,一致性(Conformity),软件必须遵从人为的惯例并适应已有的技术和系统,软件必须遵循各种接口、协议和标准 有些情况下,兼容性是软件开
7、发的目标,软件需要随接口的不同而改变,随时间的推移而变化,而这些变化是不同的人设计的结果。,许多复杂性来自保持与其他接口的一致,对软件的任何再设计,都无法简化这些复杂特性。,14,(2)软件的本质特性,可变性(Changeability),软件产品扎根于文化的母体中,如各种应用、用户、自然及社会规律、计算机硬件等,后者持续不断地变化着,这些变化无情地强迫着软件随之变化。,所有成功的软件都会发生变更!,当人们发现软件很有用时,会在原有应用范围的边界,或者在超越边界的情况下使用软件;,功能扩展的压力主要来自那些喜欢基本功能,又对软件提出了很多新用法的用户。,15,(2)软件的本质特性,软件修改会带
8、来的副作用,不断的修改最终导致软件的退化。,软件的失效率曲线,16,可变性,不可见性Invisibility,软件是不可见的和无法可视化的,软件的客观存在不具有空间的形体特征 定义“需要做什么”成为软件开发的根本问题,人们一直试图使用不同的技术进行软件可视化,控制流程、数据流、依赖关系、UML、这些技术仍然无法给出准确的、完整的描述,软件仍然保持着无法可视化的固有特性,从而剥夺了一些具有强大功能的概念工具的构造思路。这种缺憾不仅限制了个人的设计过程,也严重地阻碍了相互之间的交流。,(2)软件的本质特性,(3)软件的发展,(1)第一阶段:20世纪50-60年代应用:快速计算语言:Algol Fo
9、rtran程序质量依赖于程序员个人的技巧60年代末出现了“软件危机”(2)第二阶段:20世纪70年代应用:涉及非数值计算的商业事务处理。语言:Pascal Cobol软件的概念包含了文档。开始采用开发模型,(3)软件的发展,(3)第三阶段:20世纪80年代微处理器出现,计算机大众化语言:面向对象CASE开始注重软件质量(4)第四阶段:20世纪90年代至今Internet技术迅速发展,软件系统从封闭走向开放WEB应用、分布式软件、软件复用、构件技术进入21世纪:Internet向智能网络时代发展,网格技术、web services 分布式计算等。,(4)软件危机,“软件危机”主要表现:(1)经费
10、预算经常突破,完成时间一再拖延。(2)开发的软件不能满足用户要求。(3)开发的软件可维护性差。(4)开发的软件可靠性差。,软件危机(Software Crisis)是指在计算机软件的开发和维护过程中遇到的一系列严重问题。,软件危机出现于 20 世纪 60 年代末,ARIANE 5 火箭,1996 年 6 月,耗资 70 亿美元,发射 37 秒后爆炸 发射失败的原因在于软件的错误,软件错误,程序中试图将 64 位浮点数转换成 16 位整数时产生溢出 缺少错误处理程序对数据溢出进行管理 备份软件复制而成,严格地遵守软件确认过程可以避免这种错误,软件错误的实例,爱国者导弹,曾在海湾战争期间对抗伊拉克
11、飞毛腿导弹 1991 年 2 月,一次对抗失利中 28 名美国士,兵丧生,问题的症结在于导弹软件包含一个累加计时误差,软件错误,target=f(velocity,time),计时采用系统时钟(即 1/10 秒)并使用整数表达,(1/10)2,24 位寄存器,存储导致误差(0.000000095)10,10,软件错误的实例,千年虫问题,迫于计算机存储空间的限制,程序员将日期年份缩减 为 2 位数 世界各地更换或升级 2000 年问题软件的花费超过数亿美元,11,1967年苏联“联盟一号”载人宇宙飞船在返航时,由于软件忽略一个小数点,在进入大气层时因打不开降落伞而烧毁。,软件错误的实例,IBM公
12、司的 OS/360,共约100万条指令,花费了5000个人年;经费达数亿美元,而结果却令人沮丧,错误多达2000个以上,系统根本无法正常运行。OS/360系统的负责人Brooks这样描述开发过程的困难和混乱:“像巨兽在泥潭中作垂死挣扎,挣扎得越猛,泥浆就沾得越多,最后没有一个野兽能够逃脱淹没在泥潭中的命运。”1963年美国飞往火星的火箭爆炸,造成1000万美元的损失。原因是FORTRAN程序:DO 5 I=1,3 误写为:DO 5 I=1.3,软件错误的实例,软件危机,软件危机的原因:软件规模越来越大,结构越来越复杂,超过了人所能接受的程度。软件开发的管理困难,可靠性无法保证。软件开发费用不断
13、增加。软件开发技术落后。生产方式落后。开发工具落后。,软件工程,人们在分析了软件危机的原因之后,开始探索用工程化的方法进行软件生产的可能性,即用现代工程的概念、原理、技术和方法进行计算机软件的开发、管理、维护和更新。于是产生了计算机科学技术的一个新领域软件工程。,内容提纲,软件 软件的定义与软件危机 软件的本质特性,软件工程 定义与发展历史 理解软件质量 过程、方法和工具 软件工程学科 软件工程知识体系(SWEBOK)软件工程职业道德规范,1.2:(1)工程的含义,工程是将理论和所学的知识应用于实践的科学,以便经济有效地解决实际问题。,19,手工和工程规模上的差异,花园小道 vs.汽车高速公路
14、 树上小屋 vs.摩天大楼,加法程序 vs.医院档案系统,手工(Craft):小规模的设计与建造,简单问题与单一目标 个人控制与个人技能,工程(Engineering):大规模的设计与建造,复杂问题与目标分解,多人参与,需要考虑运营、管理、成本、质量控制、安全等,20,1.2-(1)工程的含义,(2)工程的特征,平衡与决策,需要进行一系列决策和认真评价,并在每一个决策点做出适当选择,适当与否可以通过平衡成本和利益的分析来判断。,度量与验证,应该度量事物,在适当的时候定量工作;需要校正并验证度,量,并在经验和实验数据的基础上进行近似。,运用工具,工程师需要将工具系统地应用在过程中,因此选用适当的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 课件 ch1 概述

链接地址:https://www.31ppt.com/p-6434252.html