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

下载本文档

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

文档简介

软件开发过程四川华迪信息技术有限公司Version1.0软件开发过程四川华迪信息技术有限公司Overview课程介绍需求分析分析设计实施部署2023/8/242HwadeeOverview课程介绍2023/8/22Hwadee课程介绍课程介绍关于本次课程课程目标预备知识目标听众日程表词汇表2023/8/244Hwadee关于本次课程课程目标2023/8/24Hwadee课程目标了解软件开发活动的流程了解软件开发活动的规范要求2023/8/245Hwadee课程目标了解软件开发活动的流程2023/8/25Hwadee目标听众项目组成员2023/8/246Hwadee目标听众项目组成员2023/8/26Hwadee预备知识了解软件工程知识2023/8/247Hwadee预备知识了解软件工程知识2023/8/27Hwadee日程表总课时:130分钟授课大纲:0:20介绍常用的软件开发模式0:20需求分析0:20分析设计0:30实施0:20测试0:20部署共计:

130分钟2023/8/248Hwadee日程表总课时:130分钟0:20介绍常用的软件开发模式0:2CMM:能力成熟度模型(CapabilityMaturityModel)SQA:软件质量保证(SoftwareQualityAssurance)词汇表2023/8/249HwadeeCMM:能力成熟度模型(CapabilityMaturit什么是软件开发过程用以开发和维护软件及其相关产品(如,项目计划、设计文档、代码、测试用例、用户手册等等)的一组活动、方法、实践和变换2023/8/2410Hwadee什么是软件开发过程用以开发和维护软件及其相关产品(如,项目计2023/8/2411Hwadee2023/8/211Hwadee常用的软件开发过程瀑布式开发迭代式开发增量式开发演化式开发原型式开发2023/8/2412Hwadee常用的软件开发过程瀑布式开发2023/8/212Hwadee瀑布式开发模型立项需求分析分析设计编码、测试结项生存周期表现为线形的一组开发活动。开发阶段有明确的输入和输出,一个阶段的输出是下一个阶段的输入。从一个阶段进入到下一个阶段,需要满足特定的条件。

2023/8/2413Hwadee瀑布式开发模型立项需求分析分析设计编码、测试结项生存周期表现迭代式开发模型先启阶段精化阶段构件阶段产品化阶段迭代开发模型将开发过程分成多个为期数周的迭代,而每个迭代包括了迭代计划、需求分析、系统设计、编程、测试及评估,而每个迭代完成时都会产生一个可运行的版本2023/8/2414Hwadee迭代式开发模型先启阶段精化阶段构件阶段产品化阶段迭选择生命周期模型没有适合所有人的“帽子”生命周期选择应考虑:需求架构系统演进风险管理费用中途变更用户对系统进展的可视情况管理者对系统进展的可视情况管理与开发经验………2023/8/2415Hwadee选择生命周期模型没有适合所有人的“帽子”生命周期选择应考虑选择生命周期模型……2023/8/2416Hwadee选择生命周期模型……2023/8/216Hwadee软件开发角色划分项目经理设计人员编码人员测试人员配置人员SQA……..2023/8/2417Hwadee软件开发角色划分项目经理2023/8/217Hwadee需求分析

需求分析

需求的重要性开发软件系统最为困难的部分就是准确说明开发什么。最为困难的概念性工作就是编写出详细技术需求,这包括所有面向用户、面向机器和其它软件系统的接口。同时这也是一旦做错,将最终会给系统带来极大损害的部分,并且以后再对它进行修改也极为困难。2023/8/2419Hwadee需求的重要性开发软件系统最为困难的部分就是准确说明开发什么。需求问题—软件开发中的问题客户表面上同意需求,但完成的产品并不能满足需求需求总是变化,无法稳定需求太多,无法在给定的时间完成设计人员抱怨测试人员没有拿最新的需求版本来设计测试项目经理发觉开发人员独自增加了新的功能,新的功能用了很长的时间进行开发,但客户认为价值不大客户总是不想对项目进行验收,他们担心系统无法最终满足需要2023/8/2420Hwadee需求问题—软件开发中的问题客户表面上同意需求,但完成的产需求活动的目的定义系统的边界和功能、非功能需求,以便涉众(客户、最终用户)和项目组对所开发的内容达成一致。使项目组能够更好的理解需求,并达成一致。建立软件需求基线供软件工程和管理使用。软件计划、产品和活动同软件需求保持一致。为其它软件工程活动提供基础(如管理活动、测试活动)。2023/8/2421Hwadee需求活动的目的定义系统的边界和功能、非功能需求,以便涉众(客需求分析流程制定需求管理计划提取业务需求需求开发需求批准基线化需求需求变更控制需求状态评审2023/8/2422Hwadee需求分析流程制定需求管理计划2023/8/222Hwadee制定需求管理计划定义角色和职责建立跟踪机制选择需求属性定义需求管理机制编写需求管理计划制定需求管理计划编写用于需求管理活动的计划。项目经理2023/8/2423Hwadee制定需求管理计划制定需求管理计划编写用于需求管理活动的计划。提取业务需求收集用户初始需求(业务需求)标识需求项提取业务需求到用户方进行需求调查,以获得项目的初始需求。项目组成员2023/8/2424Hwadee提取业务需求提取业务需求到用户方进行需求调查,以获得项目的初需求开发对客户的需要进行分析,并用清晰合理的方式进行描述,使客户方和开发方对开发的内容达成一致。需求开发需求开发项目成员2023/8/2425Hwadee需求开发对客户的需要进行分析,并用清晰合理的方式进行描述,使确认需求正式作为项目管理和其它工程活动的基础,并作为客户之间承诺对系统进行验收的基准。需求批准需求批准客户、高级管理者需求批准是一种正式的管理过程,代表相关各方达成一致的承诺经过需求评审的需求工件作为批准的内容2023/8/2426Hwadee确认需求正式作为项目管理和其它工程活动的基础,并作为客户之间此活动的目的是在经过客户和项目组的授权下,将批准的正式的软件需求工件放入配置管理系统。基线化需求基线化需求配置经理

基线化正式的需求工件正式的软件需求工件、需求跟踪工件进入配置库,作为其它相关活动(管理、设计、测试等)的基础。2023/8/2427Hwadee此活动的目的是在经过客户和项目组的授权下,将批准的正式的软件需求变更控制需求变更控制配置经理

需求一旦建立基线后,需要通过控制流程来改变需求的变更需要经过双方的批准变更后的需求需要经过客户、用户和相关组的评审进入配置管理库,作为工作基线2023/8/2428Hwadee需求变更控制需求变更控制配置经理需求一旦建立基线后,需要通需求评审需求状态评审举行评审会议

举行需求规格说明书评审会议,需求评审人员高级管理者和项目经理通过需求状态评审监控需求管理的状态。项目组通过需求状态评审对需求状况达成一致2023/8/2429Hwadee需求评审需求状态评审举行评审会议—举行需求规格说明书评审分析设计

分析设计

分析设计目的软件分析设计活动是建立系统的构架,将系统的软件需求分配给软件结构,使设计适应具体的实施环境。

2023/8/2431Hwadee分析设计目的2023/8/231Hwadee分析设计活动流程软件详细设计软件构架设计软件构架设计评审软件详细设计评审基线化构架基线化详细设计软件需求工件软件开发计划软件构架设计工件软件详细设计工件2023/8/2432Hwadee分析设计活动流程软件详细设计软件构架设计软件构架设计软件详细分析设计角色构架设计师设计员配置管理员构架评审人员详细设计评审人员

2023/8/2433Hwadee分析设计角色2023/8/233Hwadee分析设计进入准则需求已经基线化

软件开发计划已指派了分析设计活动

2023/8/2434Hwadee分析设计进入准则2023/8/234Hwadee分析设计输入软件需求工件软件开发计划2023/8/2435Hwadee分析设计输入2023/8/235Hwadee分析设计活动介绍构架设计

建立软件系统的构架,将系统的软件需求分配给软件结构2023/8/2436Hwadee分析设计活动介绍构架设计2023/8/236Hwadee分析设计活动介绍构架设计评审

检查软件系统构架设计是否合理,包括如下几点:发现和修复缺陷

一致性确认

2023/8/2437Hwadee分析设计活动介绍构架设计评审2023/8/237Hwade分析设计活动介绍基线化构架设计

将评审通过的软件构架设计工件置于配置管理,作为详细设计的基础

2023/8/2438Hwadee分析设计活动介绍基线化构架设计2023/8/238Hwad分析设计活动介绍软件详细设计

根据需求工件、构架设计工件,进一步精确描述软件系统,并使之适于具体的实施环境

2023/8/2439Hwadee分析设计活动介绍软件详细设计2023/8/239Hwade分析设计活动介绍详细设计评审

检查软件系统详细设计是否合理,包括如下几点:发现和修复缺陷

一致性确认

2023/8/2440Hwadee分析设计活动介绍详细设计评审2023/8/240Hwade分析设计活动介绍基线化详细设计

将评审通过的软件详细设计工件置于配置管理,作为实施活动的基础

2023/8/2441Hwadee分析设计活动介绍基线化详细设计2023/8/241Hwad分析设计活动介绍输出软件构架设计工件:概要设计说明书、数据库设计说明书等软件详细设计工件:详细设计说明书评审记录

2023/8/2442Hwadee分析设计活动介绍输出2023/8/242Hwadee实施

实施

目的:单元编码、单元测试、缺陷修复以及系统集成等工作

主要任务:制定集成计划·单元编码、测试/评审集成系统基线化目的2023/8/2444Hwadee目的:目的2023/8/244Hwadee编码的任务编码阶段的任务就是将详细设计翻译成计算机最终可运行的软件单元、集成工作版本。

软件构架详细设计工作版本软件开发计划编码2023/8/2445Hwadee编码的任务编码阶段的任务就是将详细设计翻译成计算机最终可运行编码的任务编码工作对一个程序员来说是司空见惯的事,然而,如何编写出高质量的程序,还是有很多值得讨论的问题。如何选择程序设计语言?如何评价程序的质量?程序设计的风格等等。。。2023/8/2446Hwadee编码的任务编码工作对一个程序员来说是司空见惯的事,然而,如何词汇表

代码评审(CodeReview)代码评审是检查源代码与编码标准的符合性以及程序逻辑的正确性的活动,目的是发现缺陷或者是提出改进措施。系统集成(SystemIntegration)系统集成指的是将单独的软件单元合并成一个整体的软件开发活动。集成活动可以分级、分阶段进行。工作版本(Build)工作版本既可以是软件系统的可操作版本,也可以是具有最终产品部分功能的软件系统组成部分。程序单元(Unit)程序单元是项目定义的软件最小可测试单元。2023/8/2447Hwadee词汇表代码评审(CodeReview)2023/8/24软件实施活动流程图

2023/8/2448Hwadee软件实施活动流程图2023/8/248Hwadee角色

编码员—编码员负责编码、修复代码缺陷;

集成员

—负责制定集成计划、集成程序单元,创建工作版本基线;测试员

—负责执行测试活动;集成计划评审人员

—参与集成计划的评审,一般由设计员、测试、配置经理、编码员、构架设计师等组成;代码评审员

—评审源代码,一般由编码员(非代码作者)组成;2023/8/2449Hwadee角色编码员—编码员负责编码、修复代码缺陷;2023/进入准则

详细设计工件已经被基线化构架工件已经被基线化

2023/8/2450Hwadee进入准则详细设计工件已经被基线化2023/8/250Hwa输入

软件构架设计工件

构架设计文档主要描述备选设计方案、软件子系统划分、子系统间接口和错误处理机制等;

软件详细设计工件

详细设计文档主要描述将构架设计转化为最小实施单元,产生可以编码实现的设计;

2023/8/2451Hwadee输入软件构架设计工件2023/8/251Hwadee活动制定系统集成计划

评审集成计划

单元编码及缺陷修复代码评审执行单元测试集成程序单元执行集成测试执行系统测试创建最终工作版本基线2023/8/2452Hwadee活动制定系统集成计划2023/8/252Hwadee制定系统集成计划

角色集成员

活动描述

确定系统要实施的部分,以及实施它们的先后顺序。

确定集成的工作版本:根据开发计划的工作内容,将它们划分成不同的工作版本。

确定集成的策略:定义系统集成的方式。可以根据系统自身的特点,选择合适的集成策略,以及确定实施测试所需的驱动和桩模块。

2023/8/2453Hwadee制定系统集成计划角色2023/8/253Hwadee评审集成计划

角色集成计划评审人员

活动描述

发现缺陷,跟踪并修复缺陷。

发现和修复缺陷:根据评审规范,评审集成计划工件。2023/8/2454Hwadee评审集成计划角色2023/8/254Hwadee单元编码及缺陷修复

角色编码员

活动描述

生产出同设计一致的源代码。

编写代码:按照分配的任务项,编写新单元的代码,保证源代码只是设计的代码实现,并且源代码可以成功编译。

缺陷修复:按照分配的任务项,修复已有代码中经过测试或代码评审发现的缺陷,并保证源代码可以成功编译。

2023/8/2455Hwadee单元编码及缺陷修复角色2023/8/255Hwadee代码评审

角色代码评审员

活动描述

通过阅读他人的代码,检查代码中的缺陷。

检查编写缺陷:依照编码标准检查代码是否符合标准。检查逻辑缺陷:根据设计工件检查代码是否正确反映且仅反映设计的内容。2023/8/2456Hwadee代码评审角色2023/8/256Hwadee执行单元测试

角色测试员

活动描述

测试员执行单元测试的目的是验证单元的内部结构以及单元实现的功能。

执行单元测试:按照测试过程手工执行单元测试或运行测试脚本自动执行单元测试。

记录单元测试结果:将单元测试结果作详细记录,并将测试结果提交给相关组。

回归测试:对修改后的单元执行回归测试

2023/8/2457Hwadee执行单元测试角色2023/8/257Hwadee集成程序单元

角色集成员

活动描述

提供一个可以测试的集成工作版本。

生成集成工作版本:按照集成计划集成并编译已经通过单元测试的程序单元。判断集成结束:根据集成计划判断集成是否结束。

2023/8/2458Hwadee集成程序单元角色2023/8/258Hwadee创建最终工作版本基线

角色集成员

活动描述

建立一个完整的基线化的软件工作版本。配置最终工作版本基线:创建最终工作版本基线。2023/8/2459Hwadee创建最终工作版本基线角色2023/8/259Hwadee输出

软件程序单元

包括了所有编码员完成的程序单元源代码;

工作版本

按照集成计划创建的各个集成工作版本;

集成计划 软件工作版本的定义、工作版本的内容、集成的策略以及实施的先后顺序等;

评审记录

记录评审内容、评审结果、评审意见、参与人员等;

2023/8/2460Hwadee输出软件程序单元2023/8/260Hwadee退出准则最终工作版本被基线化

2023/8/2461Hwadee退出准则最终工作版本被基线化2023/8/261Hwad编码标准编制易于修改和维护的代码;编制易于测试的代码;必须将编程与编文档的工作统一起来;编程中采用统一的标准和约定,降低程序复杂性;限定每一层的副作用,减少耦合度;尽可能地重用。2023/8/2462Hwadee编码标准编制易于修改和维护的代码;2023/8/262Hwa编程风格概述编程风格是在不影响性能的前提下,有效地编排和组织程序,以提高可读性和可维护性。从软件工程的角度来说,程序的质量主要取决于设计的质量,而编程风格在很大的程度上影响着程序的可读性、可测试性和可维护性;软件开发的很大部分的成本消耗在编码、测试和维护阶段,因此,努力追求软件的可读性、可测试性和可维护性极其重要。2023/8/2463Hwadee编程风格概述编程风格是在不影响性能的前提下,有效地编排和组织编程风格(一)节俭化(Economy)

提供尽可能简洁的代码。模块化(Modularity)

把代码划分为内聚度高、富有意义的功能块。通常是把常且复杂的程序段或子程序分解为小且定义良好的程序段。简单化(Simplicity)

去掉过分复杂和不必要的矫揉造作。2023/8/2464Hwadee编程风格(一)节俭化(Economy)2023/8/264H编程风格(二)结构化(Structure)

把程序的各个构件组织成一个有效的系统。文档化(Documentation)

程序能够自说明。格式化(Layout)

尽量使程序布局合理、清晰、明了。2023/8/2465Hwadee编程风格(二)结构化(Structure)2023/8/26测试

测试

测试软件测试是为了发现错误而执行程序的过程软件测试是根据程序开发阶段的规格说明及程序内部结构而精心设计的一批测试用例(输入数据及其预期结果的集合),并利用这些测试用例去运行程序,以发现错误的过程2023/8/2467Hwadee测试软件测试是为了发现错误而执行程序的过程2023/8/26测试流程制订测试计划设计测试执行单元测试执行集成测试执行系统测试评估测试制订测试计划设计测试执行单元测试执行集成测试执行系统测试评估测试2023/8/2468Hwadee测试流程制订测试计划制订测试计划设计测试执行单元测试执行集成角色和职责测试设计员制定和维护测试计划。设计测试用例及测试过程。评估测试,生成测试分析报告。

测试员执行集成测试和系统测试。记录测试结果。

设计员设计测试需要的驱动程序和稳定桩。编码员编写测试驱动程序和稳定桩。执行单元测试。2023/8/2469Hwadee角色和职责测试设计员2023/8/269Hwadee测试产生工件阶段产生工件制订测试计划测试计划设计测试测试用例执行单元测试单元测试通知单、单元测试日志执行集成测试集成测试通知单、集成测试日志、执行系统测试系统测试通知单、系统测试日志评估测试测试分析报告2023/8/2470Hwadee测试产生工件阶段产生工件制订测试计划测试计划设计测试测试用例软件部署软件部署软件部署目的确保最终用户可以正常使用软件产品2023/8/2472Hwadee软件部署目的2023/8/272Hwadee软件部署参与角色部署经理文档开发人员

温馨提示

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

评论

0/150

提交评论