1、软件开发过程.ppt_第1页
1、软件开发过程.ppt_第2页
1、软件开发过程.ppt_第3页
1、软件开发过程.ppt_第4页
1、软件开发过程.ppt_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

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

文档简介

软件开发过程,四川华迪信息技术有限公司Version1.0111111,2020/5/23,Hwadee,2,Overview,课程介绍需求分析分析设计实施部署,课程介绍,2020/5/23,Hwadee,4,关于本次课程,课程目标预备知识目标听众日程表词汇表,2020/5/23,Hwadee,5,课程目标,了解软件开发活动的流程了解软件开发活动的规范要求,2020/5/23,Hwadee,6,目标听众,项目组成员,2020/5/23,Hwadee,7,预备知识,了解软件工程知识,2020/5/23,Hwadee,8,日程表,总课时:130分钟授课大纲:,2020/5/23,Hwadee,9,CMM:能力成熟度模型(CapabilityMaturityModel)SQA:软件质量保证(SoftwareQualityAssurance),词汇表,2020/5/23,Hwadee,10,什么是软件开发过程,用以开发和维护软件及其相关产品(如,项目计划、设计文档、代码、测试用例、用户手册等等)的一组活动、方法、实践和变换,2020/5/23,Hwadee,11,2020/5/23,Hwadee,12,常用的软件开发过程,瀑布式开发迭代式开发增量式开发演化式开发原型式开发,2020/5/23,Hwadee,13,瀑布式开发模型,生存周期表现为线形的一组开发活动。开发阶段有明确的输入和输出,一个阶段的输出是下一个阶段的输入。从一个阶段进入到下一个阶段,需要满足特定的条件。,2020/5/23,Hwadee,14,迭代式开发模型,迭代开发模型将开发过程分成多个为期数周的迭代,而每个迭代包括了迭代计划、需求分析、系统设计、编程、测试及评估,而每个迭代完成时都会产生一个可运行的版本,2020/5/23,Hwadee,15,选择生命周期模型,没有适合所有人的“帽子”,生命周期选择应考虑:需求架构系统演进风险管理费用中途变更用户对系统进展的可视情况管理者对系统进展的可视情况管理与开发经验,2020/5/23,Hwadee,16,选择生命周期模型,2020/5/23,Hwadee,17,软件开发角色划分,项目经理设计人员编码人员测试人员配置人员SQA.,需求分析,2020/5/23,Hwadee,19,需求的重要性,开发软件系统最为困难的部分就是准确说明开发什么。最为困难的概念性工作就是编写出详细技术需求,这包括所有面向用户、面向机器和其它软件系统的接口。同时这也是一旦做错,将最终会给系统带来极大损害的部分,并且以后再对它进行修改也极为困难。,2020/5/23,Hwadee,20,需求问题软件开发中的问题,客户表面上同意需求,但完成的产品并不能满足需求需求总是变化,无法稳定需求太多,无法在给定的时间完成设计人员抱怨测试人员没有拿最新的需求版本来设计测试项目经理发觉开发人员独自增加了新的功能,新的功能用了很长的时间进行开发,但客户认为价值不大客户总是不想对项目进行验收,他们担心系统无法最终满足需要,2020/5/23,Hwadee,21,需求活动的目的,定义系统的边界和功能、非功能需求,以便涉众(客户、最终用户)和项目组对所开发的内容达成一致。使项目组能够更好的理解需求,并达成一致。建立软件需求基线供软件工程和管理使用。软件计划、产品和活动同软件需求保持一致。为其它软件工程活动提供基础(如管理活动、测试活动)。,2020/5/23,Hwadee,22,需求分析流程,制定需求管理计划提取业务需求需求开发需求批准基线化需求需求变更控制需求状态评审,2020/5/23,Hwadee,23,制定需求管理计划,定义角色和职责建立跟踪机制选择需求属性定义需求管理机制编写需求管理计划,制定需求管理计划,编写用于需求管理活动的计划。,项目经理,2020/5/23,Hwadee,24,提取业务需求,收集用户初始需求(业务需求)标识需求项,提取业务需求,到用户方进行需求调查,以获得项目的初始需求。,项目组成员,2020/5/23,Hwadee,25,需求开发对客户的需要进行分析,并用清晰合理的方式进行描述,使客户方和开发方对开发的内容达成一致。,需求开发,需求开发,项目成员,2020/5/23,Hwadee,26,确认需求正式作为项目管理和其它工程活动的基础,并作为客户之间承诺对系统进行验收的基准。,需求批准,需求批准,客户、高级管理者,需求批准是一种正式的管理过程,代表相关各方达成一致的承诺经过需求评审的需求工件作为批准的内容,2020/5/23,Hwadee,27,此活动的目的是在经过客户和项目组的授权下,将批准的正式的软件需求工件放入配置管理系统。,基线化需求,基线化需求,配置经理,基线化正式的需求工件正式的软件需求工件、需求跟踪工件进入配置库,作为其它相关活动(管理、设计、测试等)的基础。,2020/5/23,Hwadee,28,需求变更控制,需求变更控制,配置经理,需求一旦建立基线后,需要通过控制流程来改变需求的变更需要经过双方的批准变更后的需求需要经过客户、用户和相关组的评审进入配置管理库,作为工作基线,2020/5/23,Hwadee,29,需求评审,需求状态评审,举行评审会议举行需求规格说明书评审会议,,需求评审人员,高级管理者和项目经理通过需求状态评审监控需求管理的状态。项目组通过需求状态评审对需求状况达成一致,分析设计,2020/5/23,Hwadee,31,分析设计,目的软件分析设计活动是建立系统的构架,将系统的软件需求分配给软件结构,使设计适应具体的实施环境。,2020/5/23,Hwadee,32,分析设计活动流程,软件详细设计,软件构架设计,软件构架设计评审,软件详细设计评审,基线化构架,基线化详细设计,软件需求工件,软件开发计划,软件构架设计工件,软件详细设计工件,2020/5/23,Hwadee,33,分析设计,角色构架设计师设计员配置管理员构架评审人员详细设计评审人员,2020/5/23,Hwadee,34,分析设计,进入准则需求已经基线化软件开发计划已指派了分析设计活动,2020/5/23,Hwadee,35,分析设计,输入软件需求工件软件开发计划,2020/5/23,Hwadee,36,分析设计活动介绍,构架设计建立软件系统的构架,将系统的软件需求分配给软件结构,2020/5/23,Hwadee,37,分析设计活动介绍,构架设计评审检查软件系统构架设计是否合理,包括如下几点:发现和修复缺陷一致性确认,2020/5/23,Hwadee,38,分析设计活动介绍,基线化构架设计将评审通过的软件构架设计工件置于配置管理,作为详细设计的基础,2020/5/23,Hwadee,39,分析设计活动介绍,软件详细设计根据需求工件、构架设计工件,进一步精确描述软件系统,并使之适于具体的实施环境,2020/5/23,Hwadee,40,分析设计活动介绍,详细设计评审检查软件系统详细设计是否合理,包括如下几点:发现和修复缺陷一致性确认,2020/5/23,Hwadee,41,分析设计活动介绍,基线化详细设计将评审通过的软件详细设计工件置于配置管理,作为实施活动的基础,2020/5/23,Hwadee,42,分析设计活动介绍,输出软件构架设计工件:概要设计说明书、数据库设计说明书等软件详细设计工件:详细设计说明书评审记录,实施,2020/5/23,Hwadee,44,目的:单元编码、单元测试、缺陷修复以及系统集成等工作主要任务:制定集成计划单元编码、测试/评审集成系统基线化,目的,2020/5/23,Hwadee,45,编码的任务,编码阶段的任务就是将详细设计翻译成计算机最终可运行的软件单元、集成工作版本。,软件构架详细设计,工作版本,软件开发计划,编码,2020/5/23,Hwadee,46,编码的任务,编码工作对一个程序员来说是司空见惯的事,然而,如何编写出高质量的程序,还是有很多值得讨论的问题。如何选择程序设计语言?如何评价程序的质量?程序设计的风格等等。,2020/5/23,Hwadee,47,词汇表,代码评审(CodeReview)代码评审是检查源代码与编码标准的符合性以及程序逻辑的正确性的活动,目的是发现缺陷或者是提出改进措施。系统集成(SystemIntegration)系统集成指的是将单独的软件单元合并成一个整体的软件开发活动。集成活动可以分级、分阶段进行。工作版本(Build)工作版本既可以是软件系统的可操作版本,也可以是具有最终产品部分功能的软件系统组成部分。程序单元(Unit)程序单元是项目定义的软件最小可测试单元。,2020/5/23,Hwadee,48,软件实施活动流程图,2020/5/23,Hwadee,49,角色,编码员编码员负责编码、修复代码缺陷;集成员负责制定集成计划、集成程序单元,创建工作版本基线;测试员负责执行测试活动;集成计划评审人员参与集成计划的评审,一般由设计员、测试、配置经理、编码员、构架设计师等组成;代码评审员评审源代码,一般由编码员(非代码作者)组成;,2020/5/23,Hwadee,50,进入准则,详细设计工件已经被基线化构架工件已经被基线化,2020/5/23,Hwadee,51,输入,软件构架设计工件构架设计文档主要描述备选设计方案、软件子系统划分、子系统间接口和错误处理机制等;软件详细设计工件详细设计文档主要描述将构架设计转化为最小实施单元,产生可以编码实现的设计;,2020/5/23,Hwadee,52,活动,制定系统集成计划评审集成计划单元编码及缺陷修复代码评审执行单元测试集成程序单元执行集成测试执行系统测试创建最终工作版本基线,2020/5/23,Hwadee,53,制定系统集成计划,角色集成员活动描述确定系统要实施的部分,以及实施它们的先后顺序。确定集成的工作版本:根据开发计划的工作内容,将它们划分成不同的工作版本。确定集成的策略:定义系统集成的方式。可以根据系统自身的特点,选择合适的集成策略,以及确定实施测试所需的驱动和桩模块。,2020/5/23,Hwadee,54,评审集成计划,角色集成计划评审人员活动描述发现缺陷,跟踪并修复缺陷。发现和修复缺陷:根据评审规范,评审集成计划工件。,2020/5/23,Hwadee,55,单元编码及缺陷修复,角色编码员活动描述生产出同设计一致的源代码。编写代码:按照分配的任务项,编写新单元的代码,保证源代码只是设计的代码实现,并且源代码可以成功编译。缺陷修复:按照分配的任务项,修复已有代码中经过测试或代码评审发现的缺陷,并保证源代码可以成功编译。,2020/5/23,Hwadee,56,代码评审,角色代码评审员活动描述通过阅读他人的代码,检查代码中的缺陷。检查编写缺陷:依照编码标准检查代码是否符合标准。检查逻辑缺陷:根据设计工件检查代码是否正确反映且仅反映设计的内容。,2020/5/23,Hwadee,57,执行单元测试,角色测试员活动描述测试员执行单元测试的目的是验证单元的内部结构以及单元实现的功能。执行单元测试:按照测试过程手工执行单元测试或运行测试脚本自动执行单元测试。记录单元测试结果:将单元测试结果作详细记录,并将测试结果提交给相关组。回归测试:对修改后的单元执行回归测试,2020/5/23,Hwadee,58,集成程序单元,角色集成员活动描述提供一个可以测试的集成工作版本。生成集成工作版本:按照集成计划集成并编译已经通过单元测试的程序单元。判断集成结束:根据集成计划判断集成是否结束。,2020/5/23,Hwadee,59,创建最终工作版本基线,角色集成员活动描述建立一个完整的基线化的软件工作版本。配置最终工作版本基线:创建最终工作版本基线。,2020/5/23,Hwadee,60,输出,软件程序单元包括了所有编码员完成的程序单元源代码;工作版本按照集成计划创建的各个集成工作版本;集成计划软件工作版本的定义、工作版本的内容、集成的策略以及实施的先后顺序等;评审记录记录评审内容、评审结果、评审意见、参与人员等;,2020/5/23,Hwadee,61,退出准则,最终工作版本被基线化,2020/5/23,Hwadee,62,编码标准,编制易于修改和维护的代码;编制易于测试的代码;必须将编程与编文档的工作统一起来;编程中采用统一的标准和约定,降低程序复杂性;限定每一层的副作用,减少耦合度;尽可能地重用。,2020/5/23,Hwadee,63,编程风格概述,编程风格是在不影响性能的前提下,有效地编排和组织程序,以提高可读性和可维护性。从软件工程的角度来说,程序的质量主要取决于设计的质量,而编程风格在很大的程度上影响着程序的可读性、可测试性和可维护性;软件开发的很大部分的成本消耗在编码、测试和维护阶段,因此,努力追求软件的可读性、可测试性和可维护性极其重要。,2020/5/23,Hwadee,64,编程风格(一),节俭化(Economy)提供尽可能简洁的代码。模块化(Modularity)把代码划分为内聚度高、富有意义的功能块。通常是把常且复杂的程序段或子程序分解为小且定义良好的程序段。简单化(Simplicity)去掉过分复杂和不必要的矫揉造作。,2020/5/23,Hwadee,65,编程风格(二),结构化(Structure)把程序的各个构件组织成一个有效的系统。文档化(Documentation)程序能够自说明。格式化(Layout)尽量使程序布局合理、清晰、明了。,测试,2020/5/23,Hwadee,67,测试,软件测试是为了发现错误而执行程序的过程软件测试是根据程序开发阶段的规格说明及程序内部结构而精心设计的一批测试用例(输入数据及其预期结果的集合),并利用这些测试用例去运行程序,以发现错误的过程,2020/5/23,Hwadee,68,测试流程,制订测试计划设计测试执行单元测试执行集成测试执行系统测试评估测试,2020/5/23,Hwadee,69,角色和职责,测试设计员制定和维护测试计划。设计测试用例及测试过程。评估测试,生成测试分析报告。测试员执行集成测试和系统测试。记录测试结果。设计员设计测试需要的驱动程序和稳定桩。编码员编写测试驱动程序和稳定桩。执行单元测试。,2020/5/23,Hwadee,70,测试产生工件,软件部署,2020/5/23,Hwadee,72,软件部署,目的确保最终用户可以正常使用软件产品,20

温馨提示

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

评论

0/150

提交评论