第1章软件与软件工程_第1页
第1章软件与软件工程_第2页
第1章软件与软件工程_第3页
第1章软件与软件工程_第4页
第1章软件与软件工程_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

教师:张为电话Q:2634422548软件工程

2023/2/62为什么要学习软件工程2023/2/632023/2/64为什么要学习这门课程正确理解和认识“软件”的概念及其特点正确地理解,领悟和掌握软件工程方法学掌握软件工程的原则、方法和思想来系统地开发软件,尤其是复杂、庞大软件的开发了解和接触各种软件开发技术和工具培养和他人相互合作进行软件开发、独立解决问题的能力培养通过多种手段获取新知识的能力培养逻辑思维能力,尤其是抽象能力软件工程是软件技术和管理人员必备的课程如何学习这门课程理论和实践的结合

-->课题实习内容小组形式软件开发过程验收内容和标准(项目开发计划、可行性研究报告、需求规格说明书、概要设计说明书、详细设计说明书、测试计划、测试分析报告、用户操作手册、项目开发总结报告、程序维护手册、软件修改报告、软件问题报告、源代码等文档

)软件工程目的体验软件工程各阶段的主要工作,特别注意吸取教训;

学会与他人合作,培养团队精神,单干户将得不到成绩。有何意义?■本课将是学习以下课程的基础综合课程设计专业实习毕业设计■实际应用参与单位软件系统建设工作参与软件开发第一章软件与软件工程1.1软件的概念1.2软件工程的概念1.3软件过程模型1.4敏捷软件开发原则和应用1.5软件工程人的因素9待增内容软件系统及软件元素系统子系统模块/包构件/组件/中间件类属性/方法/操作变量/运算新增内容:软件过程测试(V模型)测试计划测试需求测试设计逻辑设计数据/测试用例(输入/输出)设计测试编码测试运行及报告测试总结及展望新增内容:编号文档编号为阅读定位而对根据文档章节结构编号随机文档结构调整而改变本体编号因对工作内容本体识别需要而引入的标识符随着本体的识别而产生终身不变常用符号前缀REQ:需求DGN:设计TST:测试1.1.1软件与软件的组成计算机科学对软件的定义软件是在计算机系统支持下,能够完成特定功能和性能的程序、数据和相关的文档

软件可形式的表示为:

软件=知识+程序+数据+文档2023/2/6131.1软件的概念程序:用计算机程序设计语言描述的。数据:程序加工的对象和结果。文档:录软件开发的活动和中间制品,记录软件配置及变更,用于软件专业人员和用户的交流,用于软件开发、过程管理和运行阶段的维护。2023/2/614遵循标准保持程序、数据和文档的一致性。1.1.2软件生存周期软件生存周期:软件从概念形成、进化、运行到退役的全过程。图1.1传统软件生存周期

2023/2/6151.1.3软件的特点软件是一种逻辑实体,不是物理实体,他具有抽象性软件不会磨损和老化软件主要是研制,生产是简单的拷贝软件成本昂贵,其开发方式至今尚未摆脱手工方式软件维护不同于硬件维修,易产生新的问题软件具有“复杂性”,其开发和运行常受到计算机系统的限制,即受环境影响大2023/2/616图1.2软硬件的故障率曲线硬件交付后,初期会暴露产品设计、制造中的问题,各零部件需要磨合,经长期使用会发生磨损、老化,于是故障率曲线呈“浴缸”形(如图1.2a所示)。软件不会磨损、老化,但软件逻辑关系复杂、理解困难,维护过程中很可能产生新的缺陷(如图1.2b所示)。2023/2/6171.1.4几类常用的软件系统软件个人计算机软件实时嵌入式软件科学和工程计算软件事务处理软件人工智能软件Web应用软件2023/2/6181.1.5软件的质量不同人对软件质量的关注点和理解是不同的。用户:关注软件质量的外部属性,如软件的正确性、可靠性、有效性、完整性、可用性、可维护性、可移植性、可复用性等。软件工程师:更关注软件质量的内部属性,通过提高软件内部属性,如模块化、一致性、简洁性、可测试性、自文档化等,支持和保证软件外部质量属性的实现。国际标准化协会颁布的ISO9126(2001)将软件质量要素确定为正确性、可靠性、有效性、可使用性、可维护性、可移植性六个。2011年3月国际标准化组织对ISO9126做了修订和扩充,发布了ISO/IEC25010新标准,增加了安全性和兼容性。软件要素和属性之间的关系不是独立的,有些是相关的,甚至是矛盾的。2023/2/619(1)正确性(correctness)。软件满足需求规约及完成用户目标的程度。(2)可用性(usability)。

学习和使用软件的难易程度,包括:操作软件、为软件准备输入数据,解释软件输出结果等。(3)可靠性(reliability)。

软件完成预期功能,成功运行的概率。软件可靠性反映了软件无故障工作的状况。(4)有效性(efficiency)。软件系统利用计算机的时间资源和空间资源完成系统功能的能力。2023/2/620软件工程8个质量要素:(5)可维护性(maintainability)。软件制品交付用户使用后,能够对它进行修改,以便改正潜伏的缺陷、改进性能和其他属性,使软件制品适应环境的变化等等。由于软件是逻辑产品,只要用户需要可以无限期地使用下去,软件维护是

不可避免的。软件维护成本约

占整个生命周期

的40%至60%。

软件维护费用高

的问题今天仍然没有明显改变。图1.3软件开发成本比重上升维护成本居高不下2023/2/621(6)可移植性(portability)。将软件安装在不同计算机系统或环境的难易程度。(7)安全性(security)。控制或保护程序和数据不受破坏的机制,以防止程序和数据受到意外的或蓄意的存取、使用、修改、毁坏或泄密。在网络环境下计算机犯罪、恶作剧增多,软件安全受到人们的高度重视。(8)可复用性(reusebility)。

概念或功能相对独立的一个或一组相关模块定义为一个软构件。软构件可以在多种场合应用的程度称为构件的可复用性。2023/2/6221.1.6软件的安全与保护软件安全是软件控制的系统始终处于不危及人的生命财产和生态环境的属性。软件安全包括两个方面:(1)关键领域关键部位的计算机软件必须正确、可靠的工作,要防止因概念、设计和结构等方面的不完善造成的系统失效,要具有挽回因设计、操作不当造成软件系统失效的能力。(2)对进入软件系统人的身份进行认证、对数据访问进行控制,阻止计算机病毒、木马的侵入,防止计算机失控,计算机内的重要信息被盗,给人们的财产和精神造成巨大损失。

2023/2/623软件的安全与保护IEC国际标准SC65A-123(草案)把软件危险程度分成四级,即灾难性、重大、较大、较小。灾难性计算机系统的失效会危及群众的生命,摧毁设备、设施,造成巨大的经济损失重大失效会危及人员生命,部分设备、设施严重损坏,造成大的经济损失较大失效会造成人员伤害,给设备、设施造成一定损失较小不涉及安全性问题2023/2/624表1.1IECSC65A-123不同危险等级软件的可靠性要求

连续控制系统

业务处理系统危险等级每小时发生危险故障的次数请求调用时发生故障的概率灾难性

10-8~10-9

10-4~10-5重大

10-7~10-8

10-3~10-4较大

10-6~10-7

10-2~10-3较小

10-5~10-610-1~10-2

2023/2/6251.2软件工程的概念1.2.1软件工程的定义1.2.2软件工程的发展1.2.3软件工程的目标和原则1.2.4软件开发的主要方法2023/2/6261.2.1软件工程的定义IEE93给出的软件工程定义:

①将系统的、规范的、可量化的方法应用于软件的开发、运行和维护的过程;

②及上述方法的研究。软件工程这一定义的第一部分要求,软件开发、运行和维护的过程是“系统的”、“规范的”、“可量化的”。软件工程定义的第二部分说明,软件工程需要相关科学研究做基础,需要方法学的支持。2023/2/627图1.4软件工程五要素软件工程的项目、人、过程、方法和工具、软件制品构成了软件工程的五要素,它们既有区别又有联系(如图1.4所示)2023/2/6282004年ACM和IEEE/CS联合推出的软件工程知识体SWEBOK系统的定义了软件工程学科的研究目标和主要内容,包括:

软件需求、设计、构造、

测试、维护、配置管理、

软件工程管理、软件工程过程、

软件工程工具和方法、软件质量2023/2/629计算机系统4个不同的发展阶段:时期主频软件第一代20世纪50年代初到60年代末103~105程序设计阶段个体化生产软件危机出现第二代20世纪60年代末期到80年代中期105~107程序系统阶段作坊式生产软件工程诞生第三代20世纪80年代中期到90年代末期107~108软件工程阶段工程化思想分布式系统第四代2000年至今109硬件与软件综合体系结构独立学科1.2.2软件工程的发展软件危机的原因:2023/2/631问题出在哪里?①用户对软件需求的描述经常出现二义性、不确定性、遗漏或错误。

软件开发过程中,经常提出变更软件功能、界面、支撑环境等要求。2023/2/632②软件开发人员对用户需求的理解与用户的本来愿望有差异。

这种差异用户和开发人员可能还不知道,这必然导致开发出来的软件产品与用户要求不一致。2023/2/633③大型软件项目需要组织一定的人力共同完成,多数管理人员缺乏开发大型软件系统的经验,而多数软件开发人员又缺乏管理经验。

各类人员的信息交流不及时、不准确、有时还会产生误解2023/2/634人与人的交流比写程序困难得多。④软件项目开发人员不能有效地、独立自主地处理大型软件的全部关系和各个分枝,因此容易产生疏漏和错误。2023/2/635⑤缺乏有力的方法学和工具支持,过分地依靠程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化。2023/2/636⑥软件产品的特殊性和人类智力的局限性,使人们处理“复杂问题”困难重重。

所谓“复杂问题”的概念是相对的。一旦人们采用先进的组织形式、开发方法和工具提高了软件的开发效率和能力,新的、更大的、更复杂的问题又摆在人们面前。2023/2/637软件工程的发展综上所述,软件工程发展的主要因素是:信息社会的广泛需求,软硬件技术的进步,软件从业人员卓有成效的工作,软件产业的兴起,软件学科建设和人才培养,各国政府对软件发展的重视等四十年来软件工程逐步成熟,伴随硬件的发展,软件工程向着施工领域更广泛、开发能力更强,过程更成熟,软件质量、成本、进度更加可控的目标迈进。2023/2/638图1.5影响软件工程发展的关键要素2023/2/6391.2.3软件工程的目标和原则软件工程的目标在给定成本、进度的前提下,开发出满足用户或市场需要的高质量的软件产品。为了达到这些目标,在软件开发过程中必须根据软件系统,特别是各子系统的功能、特点和实际情况,选取适宜的开发模型和设计方法,采用有效的软件项目管理方法。过程中必须遵循的软件工程原则:

抽象、信息隐藏、模块化、局部化、一致性、

完全性和可验证性。2023/2/6401.2.4软件开发的主要方法常用的方法有:结构化方法、面向对象方法、及形式化开发方法等。近年来随着网络技术、多媒体技术的发展和构建大型复杂软件的需要:网络的软件开发方法基于构件的软件开发方法面向方面AOP的软件开发方法人机界面及虚拟现实的软件开发方法敏捷软件开发方法这些方法支持软件的分析、设计、编码、测试,给出了指导软件开发活动的基本原则、技术和步骤。2023/2/6411.结构化方法结构化方法是1970年代初至1980年代中广泛使用的方法至今在科学计算、实时嵌入式应用软件开发中仍在发挥作用结构化方法是从结构化的程序设计开始逐步扩展为,包括结构化分析、结构化设计、结构化程序设计的系统方法。结构化分析用分层的数据流图和控制流图开发系统的功能模型和数据模型。结构化设计按照系统功能模型,自顶向下,逐步求精,最终得到组成系统的模块(子系统)及它们之间的控制关系。结构化程序设计用结构化的程序设计语言,遵循结构化的程序设计原则实现模块功能,实现体系结构中每一功能模块的过程属性和算法描述。2023/2/6422.面向对象方法前提条件1980年代中期个人计算机图形界面迅速普及,处理基于社会的信息系统问题需求广泛,为面向对象方法的发展和推广创造了条件。内容面向对象方法是以对象、对象关系构建软件系统的方法。包括,面向对象分析、设计、编码、测试。对象是类的实例,类用属性、操作和关系描述。类是面向对象方法建模、设计、实现和测试的基础。类具有良好的可复用性。UMLJ.Rumbaugh、I.Jacobson、G.Booch等人联合开发对象管理组织(OMG)发布统一过程RUP将面向对象软件开发的分析、设计和构造无缝联接起来Rational

ROSE可方便地生成一系列的UML视图2023/2/6433.形式化开发方法以软件正确性为目标软件需求规约用形式化需求规约语言(RSL)描述,如VDM的META—IV,CSP,Z语言等依靠严格的数学推理,保证软件开发的正确性有效解决歧义性、完整性、一致性、安全性问题形式化语言支持形式化需求规约语言有严格的语法、语义定义,以及一系列的数学推演规则。通常语法、语义以集合论、数理逻辑或代数学为基础。规则指明软件规约必须满足的数学性质,及软件实现与软件规约必须保持的一致性。正确地程序变换在此基础上,利用变换模型和配套的开发工具,如程序变换工具、定理证明工具等进行一系列的程序变换,最后生成正确的程序代码。2023/2/6441.3软件过程模型1.3.1瀑布模型1.3.2增量过程模型1.3.3原型建造模型1.3.4螺旋模型1.3.5基于构件的过程模型1.3.6通用软件过程模型2023/2/6451.3软件过程模型软件过程(process):描述、开发、维护软件制品,创建、管理和支持软件项目的一系列活动。为了描述、规范软件开发的管理和技术活动,需要建立软件过程模型,对软件开发过程的结构和属性进行抽象。软件过程模型定义了软件开发活动,给出了它们之间的逻辑关系,为软件工程管理提供里程碑和进度表;为软件开发提供框架和方法。2023/2/646软件过程模型软件过程模型受软件开发历史环境的影响,可分为三种类型:(1)将软件开发过程的分解与软件生存周期划分绑定在一起的瀑布模型及其变形。(2)软件开发过程的分解与软件生存周期划分相对独立的通用过程模型。(3)专用模型,包括基于构件的软件过程模型、Web应用软件过程模型、面向方面AOP的软件过程模型、以形式化开发方法为基础的变换模型等。2023/2/6471.3.1瀑布模型瀑布模型(waterfallmodel)也称软件生存周期模型,是W.Royce在1970年首先提出的。它们既是软件开发过程的分解,也是软件生存周期的阶段划分。瀑布模型按照各阶段的目标和任务逐步进行开发,直至通过确认测试,向用户交付最终软件制品为止。

图1.6软件生存周期的瀑布模型2023/2/648利用瀑布模型进行软件开发的

过程和生成的软件制品2023/2/649反馈的瀑布模型实践中,对某一阶段软件制品的评审会经常发现缺陷和疏漏,这时不得不暂停这一阶段的活动,反馈到前面的有关阶段修正缺陷、增补疏漏,然后再重复前面的工作,直至该阶段通过评审后再进入下一阶段。于是,瀑布模型演变成带有反馈的瀑布模型,如图1.8所示。图1.8带反馈的瀑布模型2023/2/650V字型瀑布模型另一种改进的瀑布模型是V字型瀑布模型,如图所示。软件的分析、设计过程与软件测试过程一一对应,强化了软件设计和测试的关系,加强了软件的质量保证。图1.9V字型瀑布模型2023/2/651瀑布模型的特点思路简洁、明确上一阶段的开发结果是下一阶段开发的输入,相邻两个阶段具有因果关系,紧密相联。阶段分离、评审为了保障软件开发的正确性,每一阶段任务完成后,都必须对它的阶段性制品(文档、原型、程序等)进行评审,确认之后再转入下一阶段瀑布模型的可行性研究、需求、设计、编码、测试分离,有利于软件的体系结构设计,规范了软件开发活动,有利于开发人员的组织、管理适用场景对于规模较小、软件需求比较稳定的项目或子系统,采用瀑布模型能够显著提高软件开发的质量和效率2023/2/652瀑布模型的缺点①需求难以确定必须要求客户和系统分析员确定软件需求后才能进行后续的软件开发工作,但多数场合给出大型软件项目的全部需求是困难的,有时甚至是不现实的;②初版开发时间长,缺陷发现晚需求确定后,用户和软件项目负责人要等相当长的时间(经过设计、实现、测试、运行)才能得到软件的最初版本,如果用户对这个软件提出比较大的修改意见,那么整个软件项目将会蒙受巨大的人力、财力和时间损失;③缺陷积累、放大开发人员在瀑布模型“上游”出现“过失”(mistake)会为软件制品带来“缺陷”(fault)并潜伏在软件制品中,缺陷会误导“下游”的开发活动,若未被发现,则软件运行时会造成系统“故障”(failure)。造成修复成本高这时必须花力气找到故障原因,修复缺陷,造成不应有的人力、财力和时间损失。2023/2/653使用瀑布模型的注意事项①需求明确后再施工;②每个阶段的结果要及时评审和测试,发现的问题妥善处理后再开始下一阶段的工作;③开发周期尽量短,尽快给用户使用,得到反馈意见;④一次开发的软件规模不宜过大。2023/2/654瀑布模型实践中,很多物理系统中的实时软件,或大型软件系统的某些部分已经过严格的可行性论证和仿真实验,需求是非常明确的,有些还能用严格的数学物理模型描述,如火箭控制系统的嵌入式软件、军用指挥控制系统的装备软件等。这样的软件过程就可以采用带反馈的瀑布模型或V字瀑布模型。美国国防部标准2167-A规定,瀑布模型是国防部合同中软件开发交付的依据,德国国防部1992年也强调了V字瀑布模型的作用。2023/2/6551.3.2增量过程模型动因:解决瀑布模型的不足对于软件开发前需求基本确定的大型软件项目,采用瀑布模型开发时间长、不能快速占领市场、不能在短期内得到用户的反馈意见。增量过程模型的基本思想

开发人员与用户协商将需求分解,划分为一系列增量,并为增量排序,急需的增量排在前面先开发,不急需的放在后面。

每个增量都历经需求、设计、编码、测试、移交几个阶段(如图1.10所示)。

根据增量间的依赖关系、开发人员和项目的实际情况,有些增量可串行开发,有些可并行开发。

在此过程中不断开发、不断集成、不断交付,直到完成所有增量的开发,得到最终的软件制品。2023/2/656

图1.10增量过程模型2023/2/657例:开发字处理软件第一个增量构件基本的文件管理、编辑、和文档生成功能第二个增量构件更完善的编辑和文档生成功能;第三个增量构件实现拼写和语法检查功能;第四个增量构件完成高级的页面排版功能2023/2/658优点①不断地发布软件新版本,可及时获得客户的反馈,用于调整后续的软件开发策略;②由于软件需求是确定的,可先对软件体系结构进行设计,能保持良好的软件体系结构。缺点①增量规模不能大(开发不要超过20k行代码),否则会暴露瀑布模型的缺点;②将客户需求分解成增量序列必须对系统需求十分了解,并有顶层设计的经验;③多数系统都需要基本服务,如何为基本服务定义增量,何时实现这些增量,处理起来比较困难。2023/2/659增量过程模型的特点1.3.3原型建造模型原型(prototyping):是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。原型向客户展示了待开发软件系统的全部或部分功能和性能,在征求客户对原型意见的过程中,进一步修改、完善、确认软件系统的需求并达到一致的理解。2023/2/660原型建造模型快速开发原型的途径有三种:①利用计算机模拟软件系统的人机界面和人机交互方式;②利用敏捷软件开发方法开发一个工作原型,实现软件系统重要的,容易产生误解的部分功能;③找来若干个类似软件,利用这些软件向客户展示软件需求中的部分或全部功能。2023/2/661原型建造模型原型有两类。(1)抛弃型原型(实验性原型)利用原型定义和确认了软件需求后,原型就完成了任务。开发人员就可以按照确认的需求进行软件设计、编码、测试。(2)应用型原型(进化性原型)

利用原型确认软件需求后,对原型进一步加工、完善,使之成为系统的一部分。2023/2/662图1.11原型建造模型1.3.4螺旋模型螺旋模型(spiralmodel)是TRW的B.Boehm在1988年提出的一种迭代模型。螺旋模型是从里向外,螺旋线每个回路表示的软件过程都由四个阶段组成。(1)定义目标(2)风险分析(3)开发和验证(4)规划2023/2/663图1.12Boehm的螺旋模型2023/2/664螺旋模型适合大型软件开发特别是电子商务、电子政务一类的业务软件系统因为开发这类系统时,需求往往不能完全确定项目开始时开发人员与用户协商,将能够确定的需求、暂时不能确定的需求划分为一系列的增量,并为增量排序,确定的、急需的增量排在前面,暂时不能确定或不急需的放在后面2023/2/665螺旋模型优点具有边学习、边建模,边开发、边使用、边改进缺点由于需求的不确定性,软件开发初期无法进行软件体系结构设计,多次迭代会导致软件体系结构变坏,为软件理解和维护带来困难2023/2/666通过迭代、进化,占领先机原型建造模型和螺旋模型既是迭代模型,又是进化模型实践中,客户利用迭代或增量模型尽快开发第一个版本的软件制品,占领市场的有利商机,然后再逐步扩展系统功能,不断推出后续版本1.3.5基于构件的过程模型基于构件的软件开发以软件复用为基础,必须有可供选择和使用的构件及集成构件的框架。构件的基本要素包括:接口定义(操作名、参数、异常处理)构件使用说明(如定义接口的语言,构件功能、性能)构件部署信息(指明部件如何“打包”成为可执行的实体)。它也是快速构建原型的有效方法,应用广泛实践中构件往往是异构的有些构件是传统的软件模块,有些是面向对象的类或软件包可能来自于多个供应商给软件维护带来困难2023/2/668基于构件的过程模型基于构件的软件过程模型如图所示。图1.13基于构件的软件开发模型2023/2/669基于构件的过程模型优点减少了软件开发工作量,降低了软件开发成本和风险,缩短了软件交付时间。缺点为使用构件可能要修改需求,提供的软件可能与用户期望的系统不同。2023/2/6701.3.6通用软件过程模型到了1990年代为了满足社会对应用软件广泛、迫切的需求,适应多数应用软件开发需要从创意开始、需求若明若暗、需求变更频繁的实际情况,人们对常用的软件过程进行了总结和扩展,将软件开发过程的活动划分为:

沟通、策划、建模、构建、部署共五项,并以此为基础,构建多种通用的软件过程模型。2023/2/671通用软件过程模型“沟通”活动:确定业务模型

项目立项,软件系统工程师和领域专家、用户的交流。不断提取需求、筛选业务用例,逐步完善业务过程模型。沟通活动适应大型业务软件需求提取、变更的需要。

沟通活动也是领域专家、用户、软件系统工程师共同学习、认识、确定用户业务过程模型(也是待开发软件的基本过程模型)的过程。“策划”活动:评估项目整体风险分析、项目规划、成本估算、制定项目计划、项目跟踪等。

策划活动加强了软件过程的项目管理。2023/2/672通用软件过程模型“建模”活动:分析与设计软件开发的需求建模和软件体系结构设计“构建”活动:实现软件开发的构件获取或构件设计、编码和测试。建模和构建活动是传统软件开发过程的核心。“部署”活动:交付发布软件制品、现场安装、运行、维护,及用户培训等。通用的软件过程模型线性过程模型迭代过程模型增量过程模型进化过程模型并行过程模型2023/2/673通用软件过程模型通用的软件过程模型有下列几种。(1)线性过程模型线性过程模型是在瀑布模型的基础上发展起来的,如图所示。

图1.14线性过程模型2023/2/674(2)迭代过程模型迭代过程模型由带反馈的瀑布模型发展而来。模型中允许沟通和策划活动反复迭代。这是软件系统工程师、管理人员与客户反复交流、提取、确定软件需求,形成待开发的需求用例、规约,进行风险分析、估算开发成本、制定项目计划的过程。建模活动是一个迭代过程开发的软件体系结构应满足需求用例和需求规约的要求,应不断优化,力求简洁,符合软件开发的原则,满足开发的约束条件

图1.15迭代过程模型2023/2/675(3)通用增量过程模型当软件开发前,软件需求能基本确定,能进行相对完整的软件体系结构设计时,可采用通用增量过程模型

图1.16通用的增量过程模型2023/2/676(4)通用进化过程模型原型过程模型和螺旋过程模型都是进化过程模型。包含通用软件开发活动的原型模型如图所示。

图1.17通用原型过程模型利用软件开发五项活动的通用螺旋模型如图所示。

图1.18通用螺旋过程模型2023/2/677(5)并行过程模型软件开发的沟通、策划活动与建模活动可以并行操作。沟通、策划的结果和变更可及时反馈给建模活动。建模活动产生的软件制品,如原型、需求规约、体系结构也可及时反馈给沟通、策划活动参考。多数构建、部署活动始

于建模完成并通过评审

之后,因为构建活动工

作量大、参与的人比较

多,因此希望建模活动

生成的软件体系结构质

量比较高、变更比较少,

这样可以减少返工和产

品报废。图1.19并行过程模型2023/2/6781.4敏捷软件开发原则和应用1.4.1敏捷软件开发原则1.4.2敏捷软件过程的极限编程实践1.4.3敏捷软件开发过程的应用2023/2/6791.4敏捷软件开发原则和应用针对中小型事务处理软件开发2001年RobertCMartin等21位经验丰富的软件开发专家针对中小型事务处理软件开发采用大型、高可信软件开发的标准带来的文档多、成本高、开发时间长等弊端,论述了他

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论