ImageVerifierCode 换一换
格式:PPT , 页数:52 ,大小:1.83MB ,
资源ID:10459725      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10459725.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件工程技术与应用.ppt)为本站会员(zf)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件工程技术与应用.ppt

1、软件工程技术与应用 为什么需要软件工程?什么是软件工程?第一章 软件与软件工程1.1 1.1 软件软件 1.1.软件软件Software=Program+Data+DocumentSoftware=Program+Data+Document 软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它包括程序(program)、相关数据(data)及其说明文档(document)。软件特征软件特征l软件是一种逻辑实体,而不是具体的物理实体l软件的生产与硬件不同l在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题磨合调整磨损用坏硬件失效率曲线时间失效率修改点实际曲

2、线理想曲线时间失效率软件失效率曲线软件特征软件特征软件是一种逻辑实体,具有抽象性软件没有明显的制造过程软件在使用过程中,没有磨损、老化的问题 软件对硬件和环境有着不同程度的依赖性 软件的开发至今尚未完全摆脱手工作坊式 的开发方式,生产效率低 软件是复杂的,而且以后会更加复杂 软件的成本相当昂贵 大多数软件是自定的,而不是通过已有的 构件组装而来的软件工作牵涉到很多社会因素 l软件的成本相当昂贵软件技术的发展落后于需求时间软件复杂性软件需求差距软件技术硬、软件成本比例的变化年份成本%软件软件1950197019851995硬件硬件软件的分类软件的分类按软件功能划分:按软件功能划分:系统软件、支持

3、软件、应用软系统软件、支持软件、应用软件件按软件规模划分:按软件规模划分:微、小、中、大、甚大、极微、小、中、大、甚大、极大型大型按软件工作方式划分:按软件工作方式划分:实时处理软件、分时软件、实时处理软件、分时软件、交互式软件、批处理软件交互式软件、批处理软件软件的发展软件的发展早期早期面向批处理有限的分布自定义软件第二阶段第二阶段多用户实时数据库软件产品第三阶段第三阶段分布式系统嵌入“智能”低成本硬件消费者的影响第四阶段第四阶段强大的桌面系统面向对象技术专家系统人工神经网络并行计算网路计算机1950196019701980199020002 2、软件危机、软件危机过去几十年的大型软件系统的

4、开发就犹如这样一个焦油坑,很多大型和强壮的动物在其中剧烈地挣扎。拉布雷阿的焦油坑(拉布雷阿的焦油坑(Mural of La Brea Tar PitsMural of La Brea Tar Pits)软件危机包含两方面问题:软件危机包含两方面问题:-如何开发软件,以满足不断增长,日趋复杂的需求;如何开发软件,以满足不断增长,日趋复杂的需求;-如何维护数量不断膨胀的软件产品。如何维护数量不断膨胀的软件产品。鉴于软件危机的长期性和症状不明显的特点,近年来有人建议将软件危机更名为:Software depression (软件萧条软件萧条)Software affliction (软件困扰软件困扰

5、)“慢性的苦恼慢性的苦恼”软件危机主要有以下表现:软件危机主要有以下表现:对软件开发成本和进度的估计常常不准对软件开发成本和进度的估计常常不准确。开发成本超出预算,实际进度比预确。开发成本超出预算,实际进度比预定计划一再拖延的现象并不罕见。定计划一再拖延的现象并不罕见。用户对用户对“已完成已完成”系统不满意的现象经系统不满意的现象经常发生。常发生。软件产品的质量往往靠不住。软件产品的质量往往靠不住。BugBug一大堆,一大堆,PatchPatch一个接一个。一个接一个。软件的可维护程度非常之低。软件的可维护程度非常之低。软件通常没有适当的文档资料。软件通常没有适当的文档资料。软件的成本不断提高

6、。软件的成本不断提高。软件开发生产率的提高赶不上硬件的发软件开发生产率的提高赶不上硬件的发展和人们需求的增长。展和人们需求的增长。软件危机的原因 一方面是与软件本身的特点一方面是与软件本身的特点有关有关 另一方面是由软件开发和维另一方面是由软件开发和维护的方法不正确有关护的方法不正确有关 软件开发工作量分配比例软件开发工作量分配比例40%50%10%20%引入同一变化付出的代价随时间变化的趋势引入同一变化付出的代价随时间变化的趋势 费用分配比例费用分配比例55%70%例例:Windows95Windows95有有10001000万行代码万行代码 Windows2000Windows2000有有

7、50005000万行代码,万行代码,30003000多个工程师,几百个小团队。多个工程师,几百个小团队。Exchange2000Exchange2000和和Windows2000Windows2000开发人员结构开发人员结构Exchange2000Exchange2000 Windows2000 Windows2000项目经理项目经理2525人人 约约250250人人开发人员开发人员140140人人 约约17001700人人测试人员测试人员350350人人 约约32003200人人3 3、消除软件危机的途径、消除软件危机的途径对计算机软件有一个正确的认识对计算机软件有一个正确的认识(软件软件程

8、序程序)必须充分认识到软件开发不是某必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各是一种组织良好、管理严密、各类人员协同配合、共同完成的工类人员协同配合、共同完成的工程项目。程项目。推广使用在实践中总结出来的开推广使用在实践中总结出来的开发软件的成功技术和方法。发软件的成功技术和方法。开发和使用更好的软件工具。开发和使用更好的软件工具。1.3 1.3 软件工程软件工程1.1.工程工程工程是对技术(或社会)实体的分析、设计、建造、验证和管理。水利工程水利工程建筑工程建筑工程机械工程机械工程 软件工程软件工程软件工程软件工程传统工程

9、新兴工程气象工程气象工程生物工程生物工程软件工程软件工程 -Software Engineering于于1968年年 NATO 组织在组织在德国召开的一次会议上提出德国召开的一次会议上提出是把软件当作一种工业产品,要求是把软件当作一种工业产品,要求是把软件当作一种工业产品,要求是把软件当作一种工业产品,要求 “采用工程化的采用工程化的采用工程化的采用工程化的原理与方法对软件进行计划、开发和维护原理与方法对软件进行计划、开发和维护原理与方法对软件进行计划、开发和维护原理与方法对软件进行计划、开发和维护 ”。围棋与软件工程的感想围棋 围棋棋谱拿过来的时候,大师问“后面应该走哪里?”十个初级爱好者选

10、择的落点散布在棋盘各处 十个职业棋手说的落子点都差不多,甚至包括后面的几步 这就是高手和低手的差别软件工程 当一个小程序拿过来的时候,项目经理让大家编写 十个中国软件工程师写出来的程序各有“特色”、千差万别,十个印度软件工程师写出来的程序差不多,以至于怀疑是“抄袭”。项目经理也不清楚中国软件业和印度软件业的差距是多少年只是觉得差了好远好远2 2、软件工程定义(、软件工程定义(1 1)The establishment and use of sound The establishment and use of sound engineering engineering principles(me

11、thods)principles(methods)in in order to obtain economically software order to obtain economically software that is reliable and works on real that is reliable and works on real machines.(1968-machines.(1968-Fritz Bauer)软件工程就是为了经济地获得可软件工程就是为了经济地获得可靠的且能在实际机器上高效运行靠的且能在实际机器上高效运行的软件,而建立和使用完善的工的软件,而建立和使用完

12、善的工程原理。程原理。软件工程定义(软件工程定义(2 2)Software engineering.(1)The Software engineering.(1)The applicationapplication of a of a systematic,disciplined,quantifiable approach systematic,disciplined,quantifiable approach to the development,operation,and maintenance to the development,operation,and maintenance of

13、 software;that is,the application of of software;that is,the application of engineering to software.(2)The engineering to software.(2)The studystudy of of approaches as in(1).approaches as in(1).(IEEE Std 610-1990.(IEEE Std 610-1990.)软件工程是软件工程是:(:(1 1)把系统的、规范的、把系统的、规范的、可度量的途径应用于软件开发、运行和可度量的途径应用于软件开发

14、、运行和 维护过程,也就是把工程应用于软件;维护过程,也就是把工程应用于软件;(2 2)研究)研究(1 1)中提到的途径。中提到的途径。Software engineering(3)SEI software engineering definition from 1990 SEI Report on Undergraduate Software Engineering Education(CMU/SEI-90-TR-003):Engineering is the systematic application of scientific knowledge in creating and bui

15、lding cost-effective solutions to practical problems in the service of mankind.Software engineering is that form of engineering that applies the principles of computer science and mathematics to achieving cost-effective solutions to software problems.总之:总之:软件工程是应用计算机科学、软件工程是应用计算机科学、数学及管理科学等原理开发软数学及管

16、理科学等原理开发软件的工程。它借鉴传统工程的件的工程。它借鉴传统工程的原则、方法,以提高质量,降原则、方法,以提高质量,降低成本为目的。低成本为目的。软件工程是一门交叉学科软件工程是一门交叉学科软件工程的主要研究内容软件工程的主要研究内容u 软件开发技术软件开发技术:软件开发方法学软件开发方法学 软件开发过程软件开发过程 软件工具和软件工程环境软件工具和软件工程环境 u 软件工程管理软件工程管理:软件管理学软件管理学 软件经济学软件经济学 软件心理学软件心理学软件工程:一种层次化技术一种层次化技术质量焦点质量焦点过程过程方法方法工具工具 软件工程层次图软件工程层次图软件工程三个要素:软件工程三

17、个要素:方法、工具、过程方法、工具、过程Software engineering layers软件工程是一种层次化的技术,以有组织的质量保证为基础。全面的质量管理和软件工程是一种层次化的技术,以有组织的质量保证为基础。全面的质量管理和类似的理念刺激了不断的过程改进,正是这种改进导致了更加成熟的软件工程方类似的理念刺激了不断的过程改进,正是这种改进导致了更加成熟的软件工程方法的不断出现。支持软件工程的根基就在于对质量的关注。法的不断出现。支持软件工程的根基就在于对质量的关注。软件工程的基层是过程层。软件工程过程是将技术层结合在一起的凝聚力,使得软件工程的基层是过程层。软件工程过程是将技术层结合在

18、一起的凝聚力,使得计算机软件能够被合理地和及时地开发出来。过程定义了一组关键过程区域框架,计算机软件能够被合理地和及时地开发出来。过程定义了一组关键过程区域框架,构成了软件项目的管理控制的基础,并且确立了上下各区域之间的关系,规定了构成了软件项目的管理控制的基础,并且确立了上下各区域之间的关系,规定了技术方法的采用、工程产品(模型、文档、数据、报告、表格等)的产生、李成技术方法的采用、工程产品(模型、文档、数据、报告、表格等)的产生、李成本的建立、质量的保证及变化的适当管理。本的建立、质量的保证及变化的适当管理。软件工程的方法层提供里建造软件在技术上需要软件工程的方法层提供里建造软件在技术上需

19、要“如何做?如何做?”。方法涵盖了一系。方法涵盖了一系列的任务:需求分析、设计、编程、测试和维护。列的任务:需求分析、设计、编程、测试和维护。软件工程方法依赖于一组基软件工程方法依赖于一组基本原则,这些原则控制了每一技术区域,且包含建模活动和其他描述技术。本原则,这些原则控制了每一技术区域,且包含建模活动和其他描述技术。软件工程的工具层对过程和方法提供了自动的或半自动的支持。当这些工具被集软件工程的工具层对过程和方法提供了自动的或半自动的支持。当这些工具被集成起来使得一个工具产生的信息可被另外一个工具使用时,一个支持软件开发的成起来使得一个工具产生的信息可被另外一个工具使用时,一个支持软件开发

20、的系统就建立了,称为计算机辅助软件工程(系统就建立了,称为计算机辅助软件工程(CASECASE)。)。CASECASE集成了软件、硬件和一集成了软件、硬件和一个软件工程数据库(一个仓库,其中包含了分析、设计、编程和测试的重要信息)个软件工程数据库(一个仓库,其中包含了分析、设计、编程和测试的重要信息)。软件工程框架可可用用性性性性性性确确正正合合算算选取适宜的开发模型选取适宜的开发模型采用合适的设计方法采用合适的设计方法提供高质量的工程支持提供高质量的工程支持重视软件工程的管理重视软件工程的管理基基本本过过程程原则原则 目标目标 过过 程程支支支支持持持持过过过过程程程程组组组组织织织织过过过

21、过程程程程软件工程与一般工程的差异软件工程与一般工程的差异软件是逻辑产品而不是实物产品软件是逻辑产品而不是实物产品软件的功能依赖于硬件和软件的运软件的功能依赖于硬件和软件的运行环境以及人们对它的操作行环境以及人们对它的操作软件设计的复杂性软件设计的复杂性软件特征:软件特征:功能的多样性功能的多样性 实现的多样性实现的多样性 能见度低能见度低 软件结构合理性差软件结构合理性差智力密集及知识产权保护智力密集及知识产权保护软件工程知识体系指南(软件工程知识体系指南(2004 2004 版)版)Guide to the Software Engineering Body of Knowledge Gu

22、ide to the Software Engineering Body of Knowledge 2004 Version2004 Version IEEEIEEE计算机学会(计算机学会(IEEE Computer SocietyIEEE Computer Society)SWEBOK SWEBOK 的的1010个知识域(个知识域(Knowledge AreasKnowledge Areas,KAKA),),软件需求软件需求 Software RequirementsSoftware Requirements软件设计软件设计 Software DesignSoftware Design软件构

23、造软件构造 Software ConstructionSoftware Construction软件测试软件测试 Software TestingSoftware Testing软件维护软件维护 Software MaintenanceSoftware Maintenance软件配置管理软件配置管理 Software Configuration ManagementSoftware Configuration Management软件工程管理软件工程管理 Software Engineering ManagementSoftware Engineering Management软件工程过程软件

24、工程过程 Software Engineering ProcessSoftware Engineering Process软件工程工具和方法软件工程工具和方法 Software Engineering Tools and MethodsSoftware Engineering Tools and Methods软件质量软件质量 Software QualitySoftware Quality20042004软件工程知识体系指南软件工程知识体系指南软件工程相关学科软件工程相关学科计算机工程计算机工程 Computer EngineeringComputer Engineering计算机科学计算机

25、科学 Computer ScienceComputer Science管理管理 ManagementManagement数学数学 MathematicsMathematics项目管理项目管理 Project ManagementProject Management质量管理质量管理 Quality ManagementQuality Management软件人类工程学软件人类工程学 Software ErgonomicsSoftware Ergonomics系统工程系统工程 Systems EngineeringSystems Engineering软件工程软件工程 本质特征本质特征软件工程关注

26、于大型程序的构造软件工程关注于大型程序的构造软件工程的中心课题是控制复杂性软件工程的中心课题是控制复杂性软件经常变化软件经常变化开发软件的效率非常重要开发软件的效率非常重要和谐地合作是开发软件的关键和谐地合作是开发软件的关键软件必须有效地支持它的用户软件必须有效地支持它的用户在软件工程领域中是由具有一种文化在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人背景的人替具有另一种文化背景的人创造产品创造产品软件工程的基本原理软件工程的基本原理用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工

27、程实践的必要性软件工程技术的两个明显特点:强调规范化强调规范化 强调文档化强调文档化软件产品的标准化软件产品的标准化软件开发过程的标准化软件开发过程的标准化“软件工程软件工程”课程课程 与其它软件专业课的区别与其它软件专业课的区别(1)(1)立足于系统的整体。立足于系统的整体。(2)(2)讲授系统分析、系统设计、讲授系统分析、系统设计、测试及维护的理论和方法。测试及维护的理论和方法。(3)(3)构筑一个软件系统,实践构筑一个软件系统,实践 软件开发全过程。软件开发全过程。“软件工程”课程教学与实践的目标转变对软件开发的认识:转变对软件开发的认识:上升上升 程序程序 系统系统 转变思维定式:转变

28、思维定式:上升上升 程序员程序员 系统工程师系统工程师 (系统分析员系统分析员)工程化训练工程化训练系统分析员的地位系统分析员的地位用户用户分析员分析员程序员程序员职业素质职业素质 Professional PracticeCommunication skillsHonesty/Integrity Teamwork skillsInterpersonal skills Motivation/Initiative Strong work ethic3 3、软件工程方法学、软件工程方法学把在软件生命周期全过程中使用的一整套技术方把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学。法的集合

29、称为方法学。(Methodology or Paradigm)软件工程方法学包含软件工程方法学包含3 3个要素:个要素:方法、工具和过程方法、工具和过程方法方法 完成软件开发的各项任务的技完成软件开发的各项任务的技 术方法,回答术方法,回答“怎样做怎样做”的问题;的问题;工具工具 为运用方法而提供的自动的或为运用方法而提供的自动的或 半自动的软件工程支撑环境;半自动的软件工程支撑环境;过程过程 为了获得高质量的软件所需要为了获得高质量的软件所需要 完成的一系列任务的框架,它规定了完完成的一系列任务的框架,它规定了完 成各项任务的工作步骤。成各项任务的工作步骤。软件工程方法学分类:软件工程方法学

30、分类:传统方法学传统方法学面向对象的方法学面向对象的方法学传统方法学传统方法学(生命周期方法学生命周期方法学)仍然是使用十分广泛的软件工程方法学。采用结构化技术来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。从上而下,顺序地完成软件开发的各阶段任务。传统方法学的优点传统方法学的优点使软件开发工程的全过程以一使软件开发工程的全过程以一种有条不紊的方式进行种有条不紊的方式进行保证了软件的质量,提高了软保证了软件的质量,提高了软件的可维护性件的可维护性提高软件开发的成功率提高软件开发的成功率软件开发的生产率也明显提高软件开发的生产率也明显提高学习传统方法学的原因学

31、习传统方法学的原因传统方法学使用非常广泛传统方法学使用非常广泛历史悠久历史悠久在开发某些类型的软件时也比在开发某些类型的软件时也比较有效较有效在相当长一段时期内还会有生在相当长一段时期内还会有生命力命力可以深入理解面向对象方法学可以深入理解面向对象方法学为何优于传统方法学为何优于传统方法学面向对象的方法学面向对象的方法学出发点和基本原则是尽量模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识实践解决问题的方法与过程,从而使描述问题的问题空间与实现解法的解空间在结构上尽可能一致。面向对象的方法学的特点面向对象的方法学的特点把对象作为融合了数据及在数据上的操作行为的统一软件构件;把所有对象都划分成类;按照父类与子类的关系,把若干个相关类组成一个层次结构的系统;对象彼此间仅能通过发送消息互相联系。作业:作业:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1