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

下载本文档

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

文档简介

1现代软件测试技术八月262第1章软件工程过程与模型八月26目录3软件工程过程概述软件过程框架软件过程分类软件生命周期模型软件过程工具软件工程模型与方法1.1软件工程过程4核心定义软件过程是一组相互关联的活动,将输入工作产品转换为输出工作产品。与传统工程过程不同,软件工程过程聚焦软件的开发、维护和操作相关的工作活动,包括需求、设计、结构、测试、配置管理等子过程。

核心目的促进人们之间的理解、沟通和协调协助管理软件项目以有效的方式衡量和提高软件产品的质量支持改进过程为过程执行的自动化提供基础1.1软件工程过程(续)5关键要素输入:可能是触发事件或另一个软件过程的输出,需满足输入标准转换:活动分解为任务(软件过程管理的最小单位)输出:工作产品需满足输出标准和验收条件补充内容:角色和能力、IT支持、软件工程技术和工具、工作环境、过程度量方法符号定义:包括文本列表、自然语言描述、数据流图、状态图、BPMN、Petri网、UML活动图等1.1.1软件过程框架6框架定义软件过程框架为过程定义、解释和应用提供策略与描述,同时提供资金、工具、培训和专职人员支持。其规模和复杂度需匹配组织与项目的大小,大型复杂组织可设立软件工程过程组等单元监督过程实现与改进。框架活动沟通:技术工作前与客户及干系人协作,理解项目目标并收集需求策划:制定软件项目计划,明确技术任务、风险、资源需求和工作进度建模:通过草图或模型明确软件需求与设计,细化问题解决方案构建:包括手写或自动生成编码,以及用于发现错误的测试活动部署:将软件全部或部分增量交付用户,收集评测反馈普适性活动(贯穿全程)7软件项目跟踪和控制:按计划评估进度,采取措施保障项目按计划推进风险管理:评估可能影响项目成果或产品质量的风险软件质量保证:确定并执行保证软件质量的活动技术评审:评估软件工程产品,尽早发现并清除错误测量:定义和收集软件过程、项目及产品的度量数据软件配置管理:管理变更带来的影响可复用管理:定义工作产品复用标准,建立构件复用机制工作产品的准备和生产:包括建模、文档、日志等产品的生产活动软件过程框架示意8软件过程流类型线性过程流:从沟通到部署顺序执行五项框架活动迭代过程流:执行下一个活动前,重复执行之前的一个或多个活动演化过程流:循环执行各活动,每次循环产生更完善的软件版本并行过程流:一个或多个活动与其他活动并行执行软件过程├──过程框架│├──框架活动(沟通/策划/建模/构建/部署)││└──软件工程动作→任务集(工作任务+工作产品+质量保证点+里程碑)│└──普适性活动(贯穿全程)1.1.2软件过程分类9基本过程(直接相关软件生产)获取过程:确定需求定义、投标准备、合同管理、供应方监督及验收供应过程:理解需求、应标准备、合同签订、计划实施、产品交付开发过程:需求分析、系统设计、编码、测试、安装及验收,贯穿其他软件过程维护过程:包括改正性、适应性、完善性维护,涵盖问题分析、修改实施、维护评审、移植和退役等活动运行过程:用户业务环境中使用软件,提供咨询支持,评价运行效果并反馈1.1.2软件过程分类(续1)10支持过程(保障基本过程)文档过程:记录其他过程产生的特定信息配置管理过程:捕获和维护开发过程中的信息与产品,支持后续开发与维护质量保证过程:客观保证产品和过程与需求文档、计划保持一致验证过程:依据需求定义和产品规范,通过分析、评审、测试等活动检验产品是否满足要求确认过程:确定产品是否满足客户实际预期用途,与验证过程共同构成软件测试的核心联合评审过程:供需双方共同评估活动状态和产品,包括管理评审和技术评审审核过程:内部评审,判断软件活动是否符合需求、计划和合同要求问题解决过程:分析并根除开发、运行、维护等过程中暴露的问题,形成文档化对策1.1.2软件过程分类(续2)11组织过程(提供组织级支持)管理过程:包括项目管理、质量管理、风险管理、子合同商管理,保障项目在周期和预算内达成目标基础设施过程:建立和维护软件工具、技术、标准及开发、支持、运行所需设施改进过程:评估、度量、控制和改进软件生命周期过程培训过程:制定培训计划、开发培训资料并实施人员培训1.1.3软件生命周期模型12瀑布模型(传统模型)阶段:需求分析→设计→编码→集成与系统测试→运行与维护阶段交付产品:软件需求规格说明、系统设计说明、代码和测试用例、最终产品、产品升级等核心特点:每个阶段以验证/确认/测试结束;允许对前阶段产品迭代优化优点:易理解、管理成本低;早期控制基线和配置缺点:需求需完整清晰;文档可能冗余;早期难以评估进度;项目后期集成测试压力大;需到项目结束才能演示系统能力适用场景:需求稳定、技术方案明确的项目;版本维护或平台移植项目;质量需求高于成本和进度需求的项目1.1.3软件生命周期模型(续1)13V模型(瀑布模型变体)核心特征:测试与开发并行,每个开发阶段对应特定测试类型,实现开发者与测试者分离阶段对应关系:需求分析和功能设计→验收测试系统设计→系统测试详细设计→集成测试编码→单元测试关键优势:项目启动即启动测试工作,避免瀑布模型后期集中测试的弊端适用场景:软件外包项目,便于阶段性考查成果1.1.3软件生命周期模型(续2)14增量模型(瀑布模型精化)核心假设:需求可分段为独立的可交付增量产品,分阶段开发开发方式:可并行开发不同增量,也可迭代优化(如完成首个增量后改进后续设计)优点:首个可交付版本成本低、周期短;风险小;早期交付减少用户需求变更;支持增量投资缺点:初始增量可能因未规划用户变更导致后续不稳定;需求不稳定时需重新开发增量;管理复杂度高适用场景:需求明确且可分解的项目,需尽早交付核心功能的项目1.1.3软件生命周期模型(续3)15演化模型(增量模型扩展)核心机制:通过增量迭代精化需求,利用早期增量的反馈和实践完善后续需求开发方式:每个增量仍可采用瀑布模型管理优点:适应需求不规范场景;用户参与度高;能动态调整产品方向缺点:风险较高,需有效管理;易忽视文档规范;用户可能因结果不符预期产生抱怨适用场景:需求模糊、需快速验证产品概念的项目1.1.3软件生命周期模型(续4)16原型模型核心流程:需求采集与细化→快速构建原型→用户评价→原型优化→重复迭代,直至明确需求后开发正式系统关键特点:原型仅用于需求验证,不关注内部结构,需快速构建与修改优点:减少需求不明确导致的开发风险,提升用户满意度适用场景:需求模糊、用户界面要求高的项目1.1.3软件生命周期模型(续5)17螺旋模型(风险导向)核心思想:迭代开发与风险分析结合,将项目分解为多个小项目,逐个识别并降低主要风险迭代步骤:确定目标、方案和约束→识别风险并选择最优方案→实施开发→评估成果→规划下一轮迭代优点:风险随投入增加逐步降低;管理控制能力强;支持与其他模型结合(如原型模型验证性能风险)缺点:复杂度高,需专业管理能力;周期可能较长适用场景:高风险、需求不确定的大型复杂项目1.1.3软件生命周期模型(续6)18统一过程模型核心特征:用例驱动、构架为中心、风险驱动的迭代增量开发阶段划分(横向):初始阶段:明确系统“做什么”,确定生命周期目标里程碑细化阶段:构建构架基线,确定生命周期构架里程碑构造阶段:形成初步可运行能力,确定最初操作性能里程碑移交阶段:完成产品发布,确定产品发布里程碑核心工作流(纵向):业务建模、需求、分析与设计、实现、测试、部署、配置与变更管理、项目管理、环境优点:提前识别风险;持续验证质量;有效管理变更;支持团队协作1.1.3软件生命周期模型(续7)19敏捷过程模型(轻量级)核心价值观:短期交付、用户紧密参与、适应变更、简化设计、最小化不必要工作12条核心原则:尽早并持续交付有价值的软件以满足用户;欢迎需求变更,利用变更提升用户竞争优势频繁交付可运行软件(周期从几周至几个月)业务人员与开发团队全程紧密协作围绕积极主动的个人构建项目,提供必要支持与信任面对面沟通是最高效的信息传递方式可运行软件是进度的核心度量标准倡导可持续的开发节奏持续关注优秀技能与设计,增强敏捷能力保持简洁,最小化不必要的工作最佳构架、需求和设计源于自组织团队团队定期反思并调整工作方式1.1.3软件生命周期模型(续7)20敏捷过程模型(轻量级)常见方法:RAD(快速应用程序开发):适用于数据密集型业务系统XP(极限编程):故事驱动、测试先行、结对编程、持续重构Scrum:Sprint迭代(≤30天)、产品待办清单、每日站会FDD(特征驱动开发):模型驱动、分阶段实现特征1.1.4软件过程工具21建模与符号工具:数据流图编辑器、UML活动图工具、Petri网工具CASE工具:支持过程定义、执行与跟踪(如需求-设计-代码跟踪)ALM平台(应用程序生命周期管理):代表:Integrity(PTC)、RationalALM(IBM)、HPEALM功能:需求管理、项目规划、测试管理、配置管理其他工具:GDPA(过程定义工具包)ProVision(工作流自动化工具)通用工具:文字处理器、电子表格1.2软件过程模型22软件工程模型与方法软件工程模型与方法将结构强加于软件工程,以促使该活动系统化、可重复,并且更加面向成功作为目标。模型提供解决问题的方法、符号,以及软件构建和分析的方式方法则为最终项目的软件和相关工作产品的系统规范、设计、构造、测试和验证提供解决途径。1.2.1建模23建模原则聚焦要点:抽象不必要信息,仅关注需明确答案的核心方面,使模型易于管理提供透视:从多维度(结构、行为、时态等)展示软件视图,集中解决特定问题有效通信:使用统一的领域词汇、建模语言和语义表达,促进与干系人的沟通模型的性质与表达核心性质:完整性(实现所有需求)、一致性(无冲突描述)、正确性(符合规范无缺陷)表达元素:实体(具体或抽象工件)与关系,可通过文本或图形建模语言实现验证方式:自动化工具检查完整性和一致性,模拟或评审验证正确性1.2.1建模(续)24关键概念语法:定义建模语言的有效结构(文本用BNF,图形用元模型)语义:明确实体与关系的含义语用:解释模型在具体上下文的意义传递前置条件:功能/方法执行前必须满足的条件后置条件:功能/方法执行成功后保证为真的条件不变量:执行前后持续存在的环境条件1.2.2模型类型25模型类型信息模型:聚焦数据实体的概念、属性、关系及约束,为软件提供形式和上下文行为模型:定义软件功能,包括状态机(状态-事件-转换)、控制流模型(进程激活/停用)、数据流模型(数据移动步骤)结构模型:说明软件物理/逻辑组成,包括实体组合、分解、泛化、特化等,UML结构图(类图、组件图等)为典型代表1.2.3模型分析26模型分析完整性分析:验证所有需求是否实现,可通过工具自动分析或手动评审一致性分析:检查需求、约束、组件描述等是否冲突正确性分析:验证模型语法(语言结构使用正确)和语义(含义表达准确)无缺陷可追溯性分析:映射工作产品间的依赖关系,支持变更影响评估交互分析:检查实体间通信流和控制流,通过仿真工具验证协同工作能力1.2.4软件工程方法27启发式方法(基于经验)结构化分析和设计方法:从功能/行为角度,自上而下逐步分解细化模型,最终形成可编码的详细规范数据建模方法:聚焦数据需求,定义数据表和关系,支持数据库设计,适用于业务软件面向对象的分析和设计方法:以封装数据和关系的对象为核心,通过图表构建模型,迭代细化为代码实现1.2.4软件工程方法(续1)28形式化方法(基于数学)核心特征:使用严格的数学符号和语言,系统验证模型的一致性、完整性和正确性关键技术:规范语言:非执行性高级语言,描述输入/输出行为程序细化:通过多轮转换生成详细规范,直至可编码形式验证:通过状态空间探索等技术证明设计属性逻辑推理:基于前置/后置条件的数学证明,预测软件行为1.2.4软件工程方法(续2)29原型方法原型类型:丢弃型(验证需求后废弃)、蓝本型(作为设计基础)、可执行规范型原型目标:需求规范验证、架构设计测试、人机界面评估等评估方式:基于目标需求或实际软件测试,可为后续开发提供参考1.2.4软件工程方法(续2)30敏捷方法(轻量级)诞生背景:降低重量级计划驱动方法的开销,适应快速变化的需求主流方法:RAD:快速开发、测试和部署数据密集型业务

温馨提示

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

评论

0/150

提交评论