0.软件工程概述.ppt

上传人:夺命阿水 文档编号:235947 上传时间:2023-03-10 格式:PPT 页数:88 大小:1.54MB
返回 下载 相关 举报
0.软件工程概述.ppt_第1页
第1页 / 共88页
0.软件工程概述.ppt_第2页
第2页 / 共88页
0.软件工程概述.ppt_第3页
第3页 / 共88页
0.软件工程概述.ppt_第4页
第4页 / 共88页
0.软件工程概述.ppt_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《0.软件工程概述.ppt》由会员分享,可在线阅读,更多相关《0.软件工程概述.ppt(88页珍藏版)》请在课桌文档上搜索。

1、Chapter 0,什么是软件工程?(软件学:关于软件的科学),Contents,0 什么是软件?1.1 什么是软件工程?1.2 软件工程取得了哪些进展?1.3 什么是好的软件?1.4 软件工程设计的人员?1.5 系统的方法 1.6 工程的方法 1.7 开发团队的成员 1.8 软件工程发生了多大的变化?1.9 信息系统的例子 1.10 实时系统的例子 1.11 本章对单个开发人员的意义,本章概述,软件的含义软件工程的含义软件工程的发展历程“好的软件”的含义为什么系统的方法是重要的自20世纪70年代以来,软件工程是如何变革的.注意理解以下问题:什么是软件工程为什么需要软件工程(产生背景)软件工程

2、需要解决那些问题软件工程涉及那些方面内容,0 什么是软件?,软件(英语:Software)是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为编程语言、系统软件、应用软件和介于这两者之间的中介软件(中间件)。其中系统软件为计算机使用提供最基本的功能,但是并不针对某一特定应用领域。而应用软件则恰好相反,不同的应用软件根据用户和所服务的领域提供不同的功能。,0 什么是软件?,软件并不只是包括可以在计算机上运行的计算机程序,与这些计算机程序相关的文档,一般也被认为是软件的一部分。软件(Software)是计算机系统中与硬件相互依存的另一部分,它是包括程序(Program),数据(D

3、ata)及其相关文档(Document)的完整集合。程序是按事先设计的功能和性能要求执行的指令序列数据是使程序能正常操纵信息的数据结构文档是与程序开发,维护和使用有关的图文材料软件被应用于世界的各个领域,对人们的生活和工作都产生了深远的影响。,早期程序员们使用机器语言来进行编程运算;随着编译技术的出现,人们设计了许多更高级别的语言;例如:汇编语言,C语言,Pascal语言,Java语言,C#语言等。,0 软件:编程语言,软件可以由以下这些编程语言写成:低阶语言:组合语言,为硬件间各装置沟通的桥梁软件,又称为固件(例如BIOS,汇编语言)。高阶语言:Basic、C语言、C+语言等,为编辑操作系统

4、和应用软件的语言。脚本语言:例如 Shell Script、Javascript、PHP、Python。,据统计,全世界的高级语言起码有几千种,但从可计算性的角度看,它们的计算能力都等价于图灵机。已经证明,一个计算机语言,只要除了赋值语句之外,还包括顺序语句,条件语句和循环语句,它的计算能力即相当于图灵机。这里当然要排除其他技术因素的影响,如程序长度,变量个数,数据精度等。,0 软件:系统软件,系统软件为计算机使用提供最基本的功能,可分为操作系统和支撑软件,其中操作系统是最基本的软件。系统软件是负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机

5、当作一个整体而不需要顾及到底层每个硬件是如何工作的。1操作系统是一管理计算机硬件与软件资源的程序,同时也是计算机系统的内核与基石。操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让使用者与系统交互的操作接口。2支撑软件是支撑各种软件的开发与维护的软件,又称为软件开发环境(SDE)。它主要包括环境数据库、各种接口软件和工具组。著名的软件开发环境有IBM公司的Web Sphere,微软公司.NET Framework的等。包括一系列基本的工具(比如编译器,数据库管理,存储器格式化,文件系统管理,用户身份验证,驱动管

6、理,网络连接等方面的工具)。,0 软件:应用软件-为了某种特定的用途而被开发的软件,它可以是一个特定的程序,比如一个图像浏览器。也可以是一组功能联系紧密,可以互相协作的程序的集合,比如微软的Office软件。也可以是一个由众多独立程序组成的庞大的软件系统,比如数据库管理系统。较常见的有:文书处理软件如WPS Office、Microsoft Office、LibreOffice信息管理软件 如Oracle Database数据库辅助设计软件 如AutoCAD、开目CAD实时控制软件P2P流媒体软件 PPLive、PPStream、Banacast、UUSee、QQlive图形图像软件 Adob

7、e Photoshop、CorelDRAW、painter、MAYA、3DS MAX、lightwave后期合成软件 after effects、combustion、digital fusion、shake、flame网页浏览软件 Internet Explorer、Firefox、Chrome、Safari、Opera、Konqueror网络通讯软件 ICQ、Windows Live Messenger、Skype、Yahoo!Messenger、QQ、AOL Instant Messenger影音播放软件 MPlayer、RealPlayer、WMP、暴风影音、风雷影音音乐播放软件 Wi

8、namp、Foobar2000、千千静听、酷我音乐、酷狗音乐下载管理软件 Orbit、迅雷、快车、QQ旋风电子邮件客户端 Windows Live Mail、Outlook Express、Foxmail、ThunderBird、Dreammail、KMail资讯安全软件 360安全卫士 360杀毒 德国小红伞、卡巴斯基、诺顿防毒、瑞星杀毒、金山毒霸、虚拟机软件 VMware、VirtualBox、Microsoft Virtual PC,0 软件:软件工程师,一般指从事软件开发职业的人。软件工程师10余年来一直占据高薪职业排行榜的前列,作为高科技行业的代表,技术含量很高,职位的争夺也异常激烈

9、。软件开发是一个系统的过程,需要经过市场需求分析、软件代码编写、软件测试、软件维护等程序。软件开发工程师在整个过程中扮演着非常重要的角色,主要从事根据需求开发项目软件工作。,软件发展的历史回顾,现在的计算机的数学理论基础是由计算机的开山鼻祖,大名鼎鼎的图灵于1937年提出的图灵机模型。图灵确定了计算机中的可计算性(calculability)理论:即一个实际问题是否可以使用计算机来解决一个可以使用计算机解决的问题应该被定义为“可以在有限步骤内被解决的问题”,可计算性理论,可计算性理论是计算机科学的理论基础之一。在30年代图灵对存在通用图灵机的逻辑证明表明,制造出能编程序来作出任何计算的通用计算

10、机是可能的,这影响了40年代出现的存储程序计算机(即诺伊曼型计算机)的设计思想。可计算性理论确定了哪些问题可用计算机解决,哪些问题不可用计算机解决。如图灵机的停机问题是不可判定的表明,不可能用一个单独的程序来判定任意程序的执行是否终止。可计算性理论中的基本思想、概念和方法,被广泛应用于计算机科学的各个领域。建立数学模型的方法在计算机科学中被广泛采用。,可计算性理论起源于对数学基础问题的研究。20世纪30年代,为了讨论是否对于每个问题都有解决它的算法,数理逻辑学家提出了几种不同的算法定义:(1)K.哥德尔和S.C.克林尼提出了递归函数的概念;(2)A.丘奇提出转换演算;(3)A.M.图灵和E.波

11、斯特各自独立地提出了抽象计算机的概念(后人把图灵提出的抽象计算机称为图灵机),并证明这些数学模型的计算能力是一样的,即它们是等价的。(4)后来,人们又提出许多等价的数学模型,如A.马尔可夫于40年代提出的正规算法(后人称之为马尔可夫算法),60年代前期提出的随机存取机器模型(简称 RAM)等。50年代末和60年代初,胡世华和J.麦克阿瑟等人各自独立地提出了定义在字符串上的递归函数。,递归的思想被用于程序设计,产生了递归过程和递归数据结构,也影响了计算机的体系结构。演算被用于研究程序设计语言的语义,例如,表处理语言就以转换演算为理论基础。,随后不到十年,电子计算机就诞生了(1945)。(埃尼亚克

12、 ENIAC)它当时的主要任务之一就是用于导弹弹道轨迹的计算。,现代电子计算机的体系结构及实际计算模型来自冯.诺依曼的思想。1946年他和他的同事们发现了埃尼亚克的缺陷,发表了一份报告,提出了程序放入内存,顺序执行的思想。英国的科学家维尔克斯实现了冯.诺依曼的思想,领导研制了“艾克萨克”。因此,现在的计算机通常被称为冯.诺依曼计算机。,软件开发的发展阶段,软件开发经历了程序设计阶段、软件设计阶段和软件工程阶段的演变过程。程序设计阶段(1946年1955年)特点:尚无软件的概念,程序设计主要围绕硬件进行开发,规模很小,工具简单,无明确分工(开发者和用户),程序设计追求节省空间和编程技巧,无文档资

13、料(除程序清单外),主要用于科学计算。软件设计阶段(1956年1970年)特点是:硬件环境相对稳定,出现了“软件作坊”的开发组织形式。随着计算机技术的发展和计算机应用的日益普及,软件系统的规模越来越庞大,高级编程语言层出不穷,应用领域不断拓宽,开发者和用户有了明确的分工,社会对软件的需求量剧增。但软件开发技术没有重大突破,软件产品的质量不高,生产效率低下,从而导致了“软件危机”的产生。软件工程阶段(1970年起)特点是:硬件已向巨型化、微型化、网络化和智能化四个方向发展,数据库技术已成熟并广泛应用,第三代、第四代语言出现;第一代软件技术:结构化程序设计在数值计算领域取得优异成绩;第二代软件技术

14、:软件测试技术、方法、原理用于软件生产过程;第三代软件技术:处理需求定义技术用于软件需求分析和描述。,软件工程产生的背景,c.软件的发展,早期面向批处理有限的分布自定义软件,第二阶段多用户实时数据库软件产品,第三阶段分布式系统嵌入“智能”低成本硬件消费者的影响,第四阶段强大的桌面系统面向对象技术专家系统人工神经网络并行计算网路计算机,1950,1960,1970,1980,1990,2000,1968年10月,北大西洋公约组织(NATO)的科学家在德国召开的学术会议上正式提出了软件危机问题。,软件危机,1968,NATO(北大西洋公约组织),软件危机(1)对软件开发成本和进度的估计常常不准确。

15、开发成本超出预算,实际进度比预定计划一再拖延的现象并不罕见。(2)用户对“已完成”系统不满意的现象经常发生。(3)软件产品的质量不可靠。(4)软件的可维护程度非常之低。(5)软件通常没有适当的文档资料。(6)软件的成本不断提高。(7)软件开发生产率无法满足人们对软件的生产要求,软件开发生产率的提高落后于硬件的发展。1968年秋季,软件工程学的形成,软件危机的原因,软件工程研究结果表明,软件危机的原因主要有两方面:一、与软件本身的特点有关二、与软件开发人员有关(1)软件生产水平相当程度上取决于软件人员的教育、训练和经验的积累;(2)大型软件需要许多人合作开发,容易出现理解的差异和错误;(3)计算

16、机技术和应用发展迅速,知识更新周期加快,软件开发人员变动大。,软件工程主要研究软件生产的客观规律性,建立与系统化软件生产有关的概念、原则、方法、技术和工具,指导和支持软件系统的生产活动,以期达到降低软件生产成本、改进软件产品质量、提高软件生产率水平的目标。人们开始研制和使用软件工具辅助软件项目管理与技术生产,并软件生命周期各阶段使用的软件工具有机地集合成为一个整体,以期从管理和技术两方面解决软件危机问题。人工智能与软件工程的结合成为80年代末期活跃的研究领域。基于程序变换、自动生成和可重用软件等软件新技术研究也已取得一定的进展,把程序设计自动化的进程向前推进一步。,23,非常复杂,逻辑复杂远远

17、高于硬件的逻辑复杂度开发复杂成本难以估算进度难以控制人员素质要求质量得不到保证96年Ariane火箭发射失败,浮点数转换时发生错误,软件工程产生的背景:软件的特征,成本高(1/2),软件工程产生的背景:软件的特征,成本高(2/2),软件工程产生的背景:软件的特征,风险大,1995年美国Standish咨询集团的统计分析(至90年代初的软件项目执行情况)成功:16.2%失败:31受到挑战:53.8%近几年来的统计数据成功:26失败:28受到挑战:46%,软件工程产生的背景:软件的特征,维护困难,维护形式多样化改正性:修改故障完善性:增加功能适应性:移植维护成本越来越高55%到70维护带来的问题,

18、软件工程产生的背景:软件的特征,现实世界的特点,复杂复杂性1:包含大量关联事物,具有巨量的分解和组合复杂性2:对任一事物都不能完全描述,因为从不同的角度出发有不同的观察结论非形式化的事物描述实体概念,计算世界的特点,形式化描述有限的实体单位,合作依赖包含、继承调用、使用控制逻辑序列,软件构建单位,单位组织方法,软件模型,事物,属性和定义的抽象集合即称为软件模型如果用现实世界的语言进行描述,即称为用户模型软件用计算实体(类、函数等)进行描述,即称为设计模型如果用编码进行描述,即为编码模型(程序)如果用一种中立(于用户语言和计算实体)的、半形式化的语言进行描述,即为分析模型不论如何表示,其本质知识

19、保持不变软件建模通常意指建立分析模型,模拟软件的三个世界,软件分析的任务建立分析模型软件建模以中立的(接近用户语言)语言、半形式化的方式定义“软件应该做什么”限定了模拟的范围,软件设计按照定义来安排计算实体及其组合方式缓和了用户和软件设计者之间(形式化 VS 非形式化)的交流差距,软件分析的任务,软件工程产生的背景:软件危机,a、软件危机的表现(1/3),成本高IBM 360 OS,5000多人年,耗时4年(19631966),花费2亿多美元美国空军:1955年软件占总费用(计算机系统)的18%,70年60%,85年达到85美国全球军事指挥控制系统,硬件1亿美元,软件高达7.2亿美元计算机软件

20、和硬件费用比,软件质量得不到保证软件应用面的扩大:科学计算、军事、航空航天、工业控制、企业管理、办公、家庭软件越来越多的应用于安全攸关(safety critical)的系统,对软件质量提出更高的要求80年代欧洲亚丽安娜火箭的发射失败,原因是软件错误美国阿托拉斯火箭的发射失败,原因是软件故障英国1986年开发的办公室信息系统Folios经4年,因性能达不到要求,1989年取消日本第5代机因为软件问题在投入50亿美元后于1993年下马由于软件质量问题导致失败的软件项目非常多,a、软件危机的表现(2/3),a、软件危机的表现(3/3),进度难以控制项目延期比比皆是由于进度问题而取消的软件项目较常见

21、只有一小部分的项目能够按期完成维护非常困难软件维护的多样性软件维护的复杂性软件维护的副作用,b、产生软件危机的原因,与软件本身的特点有关(难于维护,逻辑复杂)与软件开发与维护的方法不正确有关:软件程序急于求成=拔苗助长各自为阵无方法/学,开发一个具有一定规模和复杂性的软件系统与编写一个简单的程序不一样正如建设狗窝和高楼大厦大型、复杂软件系统的开发是一项工程,必须按照工程化的方法组织软件的生产和管理,必须经过分析、设计、实现、测试、维护等一系列软件过程和活动,C、软件工程(学)因危机而产生,软件工程(学):克服软件危机的努力,(1)从管理的角度 软件开发过程的研究、文档的标准化以及人们的交流方式

22、等(2)软件开发方法的研究结构化软件开发方法,面向对象的开发,提出有效的方法和工具支持软件开发1968年提出软件工程概念和思想20世纪70年代的结构化软件开发方法20世纪80年代的面向对象的软件开发方法新的技术:软件重用、快速原型、需求工程典型技术:COM,Java,C+,J2EE,.Net,.支撑工具和环境:Jbuilder,Visual Studio,WebLogic,1、解决危机的技术途径,20世纪80年代末,美国DoD和工业界开始认识到管理的重要性美国DoD的一项研究表明,70%的项目由于管理不善导致难以控制进步、成本和质量;进一步的研究发现:管理是影响软件项目成功开发的全局性因素,而

23、技术只影响局部如果软件开发组织不能对软件项目进行有效管理,就不能充分发挥软件开发方法和工具的潜力,也就不能高效率地开发出高质量的软件产品,2、解决危机的管理途径,1.1 什么是软件工程?问题求解,多数问题是庞大而复杂的通过分析和合成的方法求解问题分析:将较大问题分解成可以理解并能够处理的若干小问题抽象是分析问题的关键合成:把小的构造块组合成大的结构将每个解决方案组合在一起与寻找解决方案本身同样具有挑战性,1.1 什么是软件工程?问题求解(continued),分析的过程,1.1 什么是软件工程?问题求解(continued),合成的过程,软件工程定义,总之:软件工程是应用计算机科学、数学及管理

24、科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。,软件工程的目标,软件工程的目标是:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难,1.1 什么是软件工程?问题求解(continued),方法:是指产生某些结果的形式化过程。工具:是用更好的方式完成某件事情的设备或自动化系统,如各种集成开发环境、编译工具、测试工具等。过程:生产特定产品的工具和技术的结合范型:构造软件的特定方式或哲学,软件工程

25、方法学,软件工程:一种层次化技术,软件工程三个要素:工具、方法、过程,基础层,综合方法及工具,定义方法使用的顺序,所需要的管理,为软件开发提供“如何做”的技术,为软件开发提供自动或半自动的软件支撑环境,建立计算机辅助软件工程(CASE)的软件开发支撑系统,软件工程包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(methodology),也称为范型(paradigm)。在软件工程领域中,这两个术语的含义基本相同。软件工程方法学包含3个要素:方法、工具和过程。,所谓管理就是通过计划、组织和控制等一系列活动,合理地配

26、置和使用各种资源,以达到既定目标的过程。,软件工程层次的扩展,软件生命周期模型,问题定义 软件定义 可行性研究 需求分析 总体设计 详细设计软件生命周期 软件开发 编码 单元测试 综合测试 运行维护 持久满足用户需求,1.1 什么是软件工程?软件工程师的角色是什么?,计算机科学:研究硬件设计或者算法的理论证明软件工程:注重与把计算机作为问题求解的工具,1.1 什么是软件工程?软件工程师的角色是什么?(continued),计算机科学与软件工程之间的关系,1.2软件工程取得了哪些进展?,执行任务更快、更有效文字处理,表格处理,电子邮件支撑医学、农业、交通、多媒体教学以及其他产业的进展但是,软件不

27、是完美的。,1.2软件工程取得了哪些进展?补充材料 1.1 描述”bug”的术语,错误:当人们在进行软件开发活动的过程中出错时。例如:设计人员错误理解用户需求。故障:非正常或非期望的工作状态。失效:是指系统违背了它应有的行为。,1.3什么是好的软件?补充材料 1.2 关于质量的各种视角,先言论的观点:质量是可以认知而不能定义的。用户的观点:质量是恰好达到目的。制造业的观点:质量是与规格说明的一致。产品的观点:质量是与产品的内在特征相联系的。基于价值的观点:质量取决于客户愿意支付的金额。,1.3什么是好的软件?,良好的软件工程必须始终用到开发优质软件的战略三种方式考虑质量:产品的质量过程的质量商

28、业环境背景下产品的质量,1.3什么是好的软件?1.3.1产品的质量,用户评价外部特性(例如:正确的功能,故障数目,故障类型)设计和编写代码的人员评价内部特性(例如:故障类型)因此个人利益不同,评价标准不同软件质量模型把用户的外部视图和软件开发人员的内部视图联系起来,1.3什么是好的软件?1.3.1产品的质量(continued),McCall 的质量模型,1.3什么是好的软件?1.3.2过程的质量,开发和维护过程的质量与产品的质量同等重要过程需要进行建模过程建模可以提出下列问题:在什么时间、什么地点,我们可以发现某种特定类型的故障?如何能够在开发过程的更早期发现故障?如何建立容错机制?是否有一

29、些替代方法能够在确保质量的前提下是我们的过程更加高效和有效?,1.3什么是好的软件?1.3.2过程的质量(continued),过程改进模型软件能力成熟度模型(CMM,SEIs Capability Maturity Model)ISO 9000软件过程改进及能力确定(SPICE,Software Process Improvement and Capability dEtermination),1.3 什么是好的软件?1.3.2 商业环境背景下产品的质量,商业价值与技术价值同等重要商业价值与技术价值的联系必须量化一种通用方法:投资回报率(ROI)为了其他投资而做的放弃ROI 用不同的术语解释

30、:减少成本,预测节省,计算采用新技术的成本,1.3 什么是好的软件?1.3.2 商业环境背景下产品的质量,工业界中的 ROI,1.4 软件工程设计的人员,用户:将实际使用系统的人客户:为将要开发的软件支付费用的公司、组织或个人开发者:为客户构建软件系统的公司、组织或个人,1.4软件工程设计的人员(continued),软件开发中的参与者,1.5 系统的方法,确定活动和对象定义系统边界嵌套系统,系统关系,1.5 系统的方法1.5.1系统的要素,活动和对象活动是某个触发器引发的事件对象或实体是活动中设计的要素关系和系统边界关系定义了活动和对象之间的相互作用系统边界决定输入和输出的起源,1.5系统的

31、方法 1.5.1系统的要素(continued),系统举例:人的呼吸系统,1.5系统的方法 1.5.1系统的要素(continued),必须清晰地描述计算机系统:工资单产品的系统定义,1.5系统的方法1.5.2 相互联系的系统,许多系统依赖于其他系统相互依赖关系可能非常复杂一个系统存在于另一个系统内部也是可能的如果边界的定义详细,由小系统建立较大的系统就会相对容易,1.6 工程的方法构建一个系统,需求分析和定义系统设计程序设计编写程序 单元测试集成测试系统测试系统交付维护,1.7 开发团队的成员,需求分析员:与客户合作,确定并文档化客户需求设计人员:生成系统描述:系统要做什么程序员:编写事先指

32、定需求的代码测试人员:发现错误培训人员:向用户说明如何使用这个系统维护小组:修复系统验收之后出现的错误资料管理员:准备和存储软件需求文档等配置管理团队:保持各工件之间的通信,1.7开发团队的成员(continued),开发团队中成员的角色,1.8 软件工程发生了多大的变化?1.8.1变化的本质,1970s以前单处理器:中型处理机两种设计方式转换:输入转化为输出事务:输入决定哪个功能将被执行1970s以后多系统上运行执行多个功能,1.8软件工程发生了多大的变化?Wasserman:七个关键因素 TEPNOGW,商品上市时间的紧迫性 Time计算技术在经济学中的转变 Economic功能强大的桌面

33、计算的可用性 PC广泛的本地和广域网络 Network面向对象技术的可行性及其有效性 Object-Oriented图形用户界面 GUI软件开发瀑布模型的不可预测性。Waterfall-Mode,1.8软件工程发生了多大的变化?Wasserman:七个关键要素(continued),改变软件开发的关键因素,1.8软件工程发生了多大的变化?抽象,对问题的概述信息隐藏,1.8软件工程发生了多大的变化?分析、设计方法和表示法,提供文档方便的沟通提供多视角统一不同的视角,1.8软件工程发生了多大的变化?用户界面原型,原型化:构建一个系统的小版本帮助用户标识系统的关键需求证明设计或方法的可行性设计良好的

34、用户界面,1.8软件工程发生了多大的变化?软件体系结构,系统的体系结构根据一组体系结构单元以及单元之间的相互关系来描述系统体系分解技术模块化分解面向数据的分解面向事件的分解由外到内的设计面向对象的分解,1.8软件工程发生了多大的变化?软件过程,多变化 不同类型的软件需要不同的过程企业范围的应用程序需要大量的控制单个的或部门级的应用程序可以利用快速应用程序开发,1.8软件工程发生了多大的变化?软件过程(continued),不同开发中的差异,1.8软件工程发生了多大的变化?复用,应用程序之间的共性允许先前开发的项目重复利用提高效率降低成本潜在忧虑构建一个小的构件比在可复用构件库中搜索一个构件更快

35、通用性的组件需要更多的时间建立如果某个复用的构建失效或者需要进行更新,不清楚谁应该对此负责通用性和专业性之间通常存在冲突,1.8软件工程发生了多大的变化?测试,使用测度发现解决方案,1.8软件工程发生了多大的变化?工具和集成环境,平台集成(工具在异构网络中互操作的能力)表示集成(用户界面的共性)过程集成(工具和开发过程之间的链接)数据集成(工具共享数据的方式)控制集成(一个工具通知和启动另一个工具的动作的能力),1.11 本章对单个开发人员的意义,给开发人员一个待解决的问题时分解合并理解需求可能发生变化从不同角度观察质量可以使用抽象和测度标识哪些是问题和解决方案的本质牢记系统的边界,软件=程序+数据+文档软件危机:原因,现象,办法(软件工程学)软件工程(学):开发、运行和维护软件的系统方法软件工程3个要素:方法、工具和过程。,小结,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号