本地-01高级软件工程基础_第1页
本地-01高级软件工程基础_第2页
本地-01高级软件工程基础_第3页
本地-01高级软件工程基础_第4页
本地-01高级软件工程基础_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程基础软件工程基础图图1-7 V模型模型图图1-8 V模型改进模型改进-W模型模型图图1-10 构建集成模型构建集成模型图图1-11 智能模智能模型型图图1-11 智能模型智能模型n工程是对技术(或社会)实体的分析、设计、建造、验证和管理。n抛开要工程化的实体,下列问题是必须首先回答的:要解决的问题是什么?要用于解决该问题的实体具有什么特点?如何实现该实体(解决方案)?如何建造该实体?采用什么方法去发现该实体设计和建造过程中产生的错误?当该实体的用户要求修改、适应和增强时,如何支持这些活动? 软件工程过程(软件工程过程(Software Engineering Process)是为获得软

2、件产品,在软件工具支持)是为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。下由软件工程师完成的一系列软件工程活动。 软件工程的过程则是将软件工程的方法和工软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软具综合起来以达到合理、及时地进行计算机软件开发的目的。件开发的目的。 过程定义了方法使用的顺序、要求交付的文过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。、及软件开发各个阶段完成的里程碑。n P(Plan)P(Plan)软件规格说明软件规格

3、说明: : 规定软件的功能及其运行的规定软件的功能及其运行的 限制;限制;n D(Do)D(Do)软件开发软件开发: : 产生满足规格说明的软件产生满足规格说明的软件n C(Check)C(Check)软件确认软件确认: : 确认软件能够完成客户提出的要求确认软件能够完成客户提出的要求n A(Action)A(Action)软件演进软件演进: : 为满足客户的变更要求,软件必须在使用为满足客户的变更要求,软件必须在使用的过程中演进的过程中演进 编码修复模型编码修复模型编码修复模型的特点编码修复模型的特点n过程技术工具可以帮助软件组织分析它们当前的过程,组织工作任务,控制和监管进度,以及管理技术

4、质量。n一旦创建了一个可接受的过程,就可以使用其他过程技术工具来分配、监管、甚至控制过程模型中定义的所有软件工程任务。如果过程很弱,最终产品不可避免会出问如果过程很弱,最终产品不可避免会出问题。题。但过分依赖过程也是很危险的。但过分依赖过程也是很危险的。CMM CMM 能力成熟度模型能力成熟度模型(Capability Maturity Model)(Capability Maturity Model) 人员人员方 法 与 规方 法 与 规程程技 术 与 工技 术 与 工具具过程过程产品产品软件过程改进概述软件过程改进概述CMMCMM发展简史发展简史n软件工程研究所(SEI)提出了个综合模型,

5、定义了当一个组织达到不同的过程成熟度时应该具有的软件工程能力。n为了确定一个组织目前的过程成熟度,SEI 使用了一个五级的评估方案,即能力成熟度模型CMM.n该模型定义了在不同的过程成熟度级别上所需要的关键活动.第一级:初始级第一级:初始级n软件过程的特征是无序的,有时甚至是混乱的。几乎没有过程定义,成功完全取决于个人的能力。第二级:可重复级第二级:可重复级n建立了基本的项目管理过程,能够追踪费用、进度和功能。有适当的必要的过程规范,使得可以重现以前类似项目的成功.第三级:定义级第三级:定义级n用于管理和工程活动的软件过程已经文档化、标准化,并与整个组织的软件过程相集成。所有项目都使用文档化的

6、、组织认可的过程来开发和维护软件。本级包含了第二级的所有特征。第四级:管理级第四级:管理级n软件过程和产品质量的详细度量数据被收集,通过这些度量数据,软件过程和产品能够被定量地理解和控制。本级包含了第三级的所有特征。第五级:优化级第五级:优化级n通过定量的反馈,进行不断的过程改进,这些反馈来自于过程或通过测试新的想法和技术而得到。本级包含了第四级的所有特征。 CMM的结构是层次化的结构,包括级、关键过程的结构是层次化的结构,包括级、关键过程域域(18个个)、公共特征、公共特征(5类类)和关键实施和关键实施(316个个),划分了,划分了5个级别。个级别。 关键过程域是指一系列相互关联操作活动,这

7、些关键过程域是指一系列相互关联操作活动,这些活动反映了一个软件组织改进软件过程时必须集中力活动反映了一个软件组织改进软件过程时必须集中力量改进的方面。公共特征有效指出了一个量改进的方面。公共特征有效指出了一个KPA的实现的实现范围、结构要求和实施内容,包括:执行约定、执行范围、结构要求和实施内容,包括:执行约定、执行能力、实施活动、度量和分析、验证实施。关键实践能力、实施活动、度量和分析、验证实施。关键实践是一些主要的实践活动,它是组成是一些主要的实践活动,它是组成KPA的单元。比如:的单元。比如:遵循已文档化的规程制订项目的软件开发计划是软件遵循已文档化的规程制订项目的软件开发计划是软件项目

8、计划的一个关键实践。项目计划的一个关键实践。 CMMCMM的结构的结构过程成熟度第二级过程成熟度第二级n软件配置管理n软件质量保证n软件子合同管理n软件项目追踪和查错n软件项目计划n需求管理过程成熟度第三级过程成熟度第三级n同级复审n组内协调n软件产品工程n集成的软件管理n培训计划n组织的过程定义n组织的过程焦点过程成熟度第四级过程成熟度第四级n软件质量管理n定量的过程管理过程成熟度第五级过程成熟度第五级n过程变化管理n技术变化管理n缺陷预防CMMCMM等级评估等级评估CMM CMM 在中国在中国 将大项目分成若干里程碑式(将大项目分成若干里程碑式(MilestoneMilestone)的重)

9、的重要阶段,各阶段之间有缓冲时间,但不进行单要阶段,各阶段之间有缓冲时间,但不进行单独的产品维护。独的产品维护。运用想象描述和对特性的概要说明运用想象描述和对特性的概要说明(ProgramProgram SpecificationSpecification)指导项目。)指导项目。根据用户行为(根据用户行为(UserUser BehaviorBehavior)和有关用户的)和有关用户的资料确定产品特性及其优先顺序。资料确定产品特性及其优先顺序。建立模块化的和水平式的设计结构,并使项目建立模块化的和水平式的设计结构,并使项目结构反映产品结构的特点。结构反映产品结构的特点。靠个人负责和固定项目资源实

10、施控制。靠个人负责和固定项目资源实施控制。微软的产品定义与开发过程中遵循五个原则微软的产品定义与开发过程中遵循五个原则nMSF 过程模型是从瀑布模型和螺旋模型发展而来的,它把瀑布模型中基于里程碑的规划的优势与螺旋模型中增量迭代的长处结合了起来。nMSF 过程模型的基本元素是阶段和里程碑。所谓“阶段”,就是在这一段时间里团队集中精力做某一类事情,每个阶段的结束都代表了项目的进展和团队工作重心的变化。比如在“开发阶段”结束后,团队就不再允许设计/实现新的功能,除非有充分理由的“变更请求”。 Rational Unified Process Rational Unified Process(简称(简

11、称RUPRUP)是)是一套软件工程过程,主要由一套软件工程过程,主要由The Objectory The Objectory Approch Approch 和和 The Rational Approch The Rational Approch 发展而来。发展而来。同时,它又是文档化的软件工程产品,所有同时,它又是文档化的软件工程产品,所有RUP RUP 的实施细节及方法导引均以的实施细节及方法导引均以WebWeb文档的方式集成文档的方式集成在一张光盘上,由在一张光盘上,由RationalRational公司开发、维护并公司开发、维护并销售,当前版本是销售,当前版本是RUP 2000RUP

12、2000。 RUPRUP又是一套软件工程方法的框架,各个组又是一套软件工程方法的框架,各个组织可根据自身的实际情况,以及项目规模对织可根据自身的实际情况,以及项目规模对RUPRUP进行裁剪和修改,以制定出合乎需要的软件工进行裁剪和修改,以制定出合乎需要的软件工程过程。程过程。 RUP RUP 吸收了多种开发模型的优点,具有吸收了多种开发模型的优点,具有很好的可操作性和实用性、从它一推出市很好的可操作性和实用性、从它一推出市场,凭借场,凭借RationalRational在业界的领导地位、以在业界的领导地位、以及与统一建模语言(及与统一建模语言(Unified Model Unified Mod

13、el Language , Language , 以下简称以下简称UMLUML)的良好集成、)的良好集成、多种多种CASECASE工具的支持、不断的升级与维护,工具的支持、不断的升级与维护,迅速得到业界广泛的认同,越来越多的组迅速得到业界广泛的认同,越来越多的组织(如织(如IBMIBM、MicrosoftMicrosoft、 SunSun)以它作为)以它作为软件开发模型框架。软件开发模型框架。RUPRUP简述简述 RUPRUP二维开发模型二维开发模型nRUPRUP可以用二维坐标来描述。可以用二维坐标来描述。n横轴通过时间组织,是过程展开的生命周横轴通过时间组织,是过程展开的生命周期特征,体现开

14、发过程的动态结构,用来期特征,体现开发过程的动态结构,用来描述它的术语主要包括周期、阶段、迭代描述它的术语主要包括周期、阶段、迭代和里程碑;和里程碑;n纵轴以内容来组织为自然的逻辑活动,体纵轴以内容来组织为自然的逻辑活动,体现开发过程的静态结构,用来描述它的术现开发过程的静态结构,用来描述它的术语主要包括活动、产物语主要包括活动、产物) )、工作者和工作流、工作者和工作流。 RUPRUP开发过程中的各个阶段和里程碑开发过程中的各个阶段和里程碑nRUPRUP中的软件生命周期在时间上被分解为四中的软件生命周期在时间上被分解为四个顺序的阶段,分别是:初始阶段、细化个顺序的阶段,分别是:初始阶段、细化

15、阶段、构造阶段和交付阶段。阶段、构造阶段和交付阶段。n每个阶段结束于一个主要的里程碑;每个每个阶段结束于一个主要的里程碑;每个阶段本质上是两个里程碑之间的时间跨度阶段本质上是两个里程碑之间的时间跨度。n在每个阶段的结尾执行一次评估以确定这在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。个阶段的目标是否已经满足。n如果评估结果令人满意的话,可以允许项如果评估结果令人满意的话,可以允许项目进入下一个阶段。目进入下一个阶段。RUPRUP的迭代开发模式图的迭代开发模式图nRUP中的每个阶段可以进一步分解为迭代。n一个迭代是一个完整的开发循环,n产生一个可执行的产品版本,是最终产品的一个子

16、集,它增量式地发展,n从一个迭代过程到另一个迭代过程到成为最终的系统。RUPRUP的特点的特点n开发复用。减少开发人员的工作量,并保证软件质量;n项目初期可降低风险;n对需求进行有效管理;n可视化建模;n使用组件体系结构,使软件体系架构更具弹性;n贯穿整个开发周期的质量核查;n对软件开发的变更控制。敏捷软件开发宣言敏捷软件开发宣言 我们正在通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。通过这项工作,我们认为:n个体和交互个体和交互 胜过 过程和工具n可以工作的软件可以工作的软件 胜过 面面俱到的文档n客户合作客户合作 胜过 合同谈判n响应变化响应变化 胜过 遵循计划n虽然右项也具有价值

17、,但我们认为左项具有更大的价值。敏捷宣言遵循的原则敏捷宣言遵循的原则n我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。n即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。n经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。n在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。n围绕被激励起来的个体来构建项目。给他们提供所需的环境和支持,并且信任他们能够完成工作。n在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。n工作的软件是首要的进度度量标准。n敏捷过程提倡可持续的开发速度。责任人、开发

18、者和用户应该能够保持一个长期的、恒定的开发速度。不断地关注优秀的技能和好的设计会增强敏不断地关注优秀的技能和好的设计会增强敏捷能力。捷能力。简单简单-使未完成的工作最大化的艺术使未完成的工作最大化的艺术-是是根本的。根本的。最好的构架、需求和设计出自于自组织的团最好的构架、需求和设计出自于自组织的团队。队。每隔一定时间,团队会在如何才能更有效地每隔一定时间,团队会在如何才能更有效地工作方面进行工作方面进行反省,然后相应地对自己的行为进行调整。反省,然后相应地对自己的行为进行调整。极限编程实践极限编程实践XPXPn完整团队 XP 项目的所有参与者(开发人员、业务分析师、测试人员等等)一起工作在一个开放的场所中,他们是同一个团队的成员。这个场所的墙壁上随意悬挂着大幅的、显著的图表以及其他一些显示他们进度的东西。n计划游戏 计划是持续的、循序渐进的。每2周,开发人员就为下2周估算候选特性的成本,而客户则根据成本和商务价值来选择要实现的特性。n客户测试 作为选择每个所期望的特性的一部分,客户定义出自动验收测试来表明该特性可以工作。n简单设计 团队保持设计恰好和当前的系统功能相匹配。它通过了所有的测试,不包含任何重复,表达出了编写者想表达的所有东西,并且包含尽可能少的代码

温馨提示

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

评论

0/150

提交评论