《软件生存期》PPT课件.ppt

上传人:小飞机 文档编号:5677253 上传时间:2023-08-08 格式:PPT 页数:42 大小:352.50KB
返回 下载 相关 举报
《软件生存期》PPT课件.ppt_第1页
第1页 / 共42页
《软件生存期》PPT课件.ppt_第2页
第2页 / 共42页
《软件生存期》PPT课件.ppt_第3页
第3页 / 共42页
《软件生存期》PPT课件.ppt_第4页
第4页 / 共42页
《软件生存期》PPT课件.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《《软件生存期》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《软件生存期》PPT课件.ppt(42页珍藏版)》请在三一办公上搜索。

1、Software Engineering Review,张磊2007.10,2,Review,一个定义:软件生存期 如同任何其他事物一样,软件也有一个孕育、诞生、成长、成熟、衰亡的生存过程,一般称之为计算机软件的生存期。一般说来,软件生命期由软件定义、软件开发和软件维护三个时期组成,每个时期又可进一步划分成若干个阶段。,3,软件生存期,1软件定义时期(1)问题定义:这是软件生存期的第一个阶段,主要任务是弄清用户要计算机解决的问题是什么。(2)可行性研究:任务是为前一阶段提出的问题寻求一种至数种在技术上可行、且在经济上有较高效益的解决方案。,4,软件生存期,2软件开发时期(1)需求分析:弄清用户

2、对软件系统的全部需求,主要是确定目标系统必须具备哪些功能。(2)总体设计:设计软件的结构,即确定程序由哪些模块组成以及模块间的关系。(3)详细设计:针对单个模块的设计。(4)编码:按照选定的语言,把模块的过程性描述翻译为源程序。(5)测试:通过各种类型的测试(及相应的调试)使软件达到预定的要求。,5,软件生存期,3软件运行时期 是软件生存周期的最后一个时期。软件人员在这一时期的工作,主要是做好软件维护。维护的目的,是使软件在整个生存周期内保证满足用户的需求和延长软件的使用寿命。,6,需求分析,需求分析的过程需求分析阶段可分为四个过程:调查研究、分析与综合、书写需求分析的文档和需求评审。,7,需

3、求分析,(1)问题识别从系统的角度来理解软件并评审软件范围是否恰当确定对目标系统的综合要求,即软件的需求提出这些需求实现条件,以及需求应达到的标准,8,需求分析,(2)分析与综合 从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的约束,分析它们是否满足功能要求,是否合理。最终综合成系统的解决方案,给出目标系统的详细逻辑模型.,9,需求分析,(3)编制需求分析阶段的文档软件需求说明书数据要求说明书初步的用户手册修改、完善与确定软件开发实施计划,10,需求分析,(4)需求分析评审 作为需求分析阶段工作的复查手段,应该对功能的正确性、文档的一致性、完备性、准

4、确性和清晰性,以及其它需求给予评价。为保证软件需求定义的质量,评审应以专门指定的人员负责,并按规程严格进行。评审结束应有评审负责人的结论意见及签字。除分析员之外,用户需求者,开发部门的管理者,软件设计、实现、测试的人员都应当参加评审工作。,11,需求分析,需求分析的原则(1)能够表达和理解问题的信息域和功能域。(2)能够对问题进行分解和不断细化,建立问题的层次结构。(3)能够给出系统的逻辑视图和物理视图。,12,需求分析,13,需求分析,结构化分析方法中使用的工具主要包括:数据流图、数据字典、结构化英语、判定表和判定树。其中数据流图用以表达系统内数据的运动情况;数据词典用以定义系统中的数据;结

5、构化语言、判定表和判定树都是用以描述数据流的加工的工具。,14,概要设计,概要设计又称为总体设计或初步设计,它的基本目的就是回答“概括地说,系统应该如何实现?”这个问题。在总体设计阶段,应划分出组成系统的物理元素程序、文件、数据库、人工过程和文档等,并确定系统中每个程序由哪些模块组成以及这些模块相互间的关系。,15,16,概要设计,实施总体设计的过程如下:1设想供选择的方案 2选取合理的方案 3推荐最佳方案 4功能分解 5设计软件结构6数据库设计7制定测试计划 8书写文档 9审查和复审,17,概要设计,总体设计的图形工具一、层次图 层次图是在总体设计阶段最常使用的图形工具之一,它常用于描绘软件

6、的层次结构。层次图中的每个方框代表一个模块,方框间的连线表示模块间的调用关系。,18,概要设计,二、HIPO图 HIPO图实际上由H图和IPO图两部分组成。H图即层次图,为了能使HIPO图具有可跟踪性,在H图里除了最顶层的方框之外,每个方框都加了编号;和H图中的每个方框相对应,有一张IPO图描述这个方框代表的模块的处理过程。IPO图能够方便地描述数据输入、数据处理和数据输出之间的关系。它的基本形式是:在左边的框中列出有关的输入数据,在中间的框中列出主要的处理处理框中列出的处理次序暗示了执行的次序,在右边的框中列出产生的输出数据。另外,还用类似向量符号的粗大箭头清楚地指出数据通信的情况。,19,

7、概要设计,三、结构图 结构图中的每个方框代表一个模块,框内注明模块的名字或主要功能;方框之间的箭头(或直线)表示模块间的调用关系。在结构图中通常还用带注释的箭头表示模块调用过程中模块之间传递的信息。可以利用注释箭头尾部的不同形状来区分:尾部是空心圆表示传递的是数据,尾部是实心圆则表示传递的是控制信息。,20,详细设计,详细设计以总体设计阶段的工作为基础的,但又不同于总体设计,主要表现为以下两个方面:(1)在总体设计阶段,数据项和数据结构以比较抽象的方式描述,而详细设计阶段则应在此基础上给出足够详细描述。(2)详细设计要提供关于算法的更多的细节,例如:总体设计可以声明一个模块的作用是对一个表进行

8、排序,详细设计则要确定使用哪种排序算法。在详细设计阶段为每个模块增加了足够的细节后,程序员才能够以相当直接的方式进行下一阶段的编码工作。,21,详细设计,详细设计的任务(1)确定每个模块的算法。(2)确定每一个模块的数据组织。(3)为每个模块设计一组测试用例。(4)编写详细设计说明书。,22,详细设计,详细设计的原则(1)模块的逻辑描述正确可靠、清晰易读。(2)采用结构化程序设计方法,改善控制结构,降低程序复杂度,提高程序的可读性、可测试性和可维护性。,23,详细设计,详细设计的工具一、程序流程图 二、N-S图 三、PAD图(问题分析图)四、PDL语言,24,软件测试,软件测试是保证软件质量的

9、关键步骤,它是对软件系统规格说明、设计和编码的最后复审。广义上讲,测试是指软件产品生存周期内所有的检查、评审和确认活动。如:设计评审、系统测试。狭义上讲,测试是对软件产品质量的检验和评价。它一方面检查软件产品质量中存在的质量问题,同时对产品质量进行客观的评价。,25,软件测试,单元测试集成测试系统测试安全测试配置测试负载测试自动化回归测试贯穿整个测试过程,26,单元测试,单元测试的相关概念什么是JUnit一个简单的例子,27,单元测试,什么是单元测试?单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(

10、或者场景)下某个特定函数的行为。,28,单元测试,单元测试的执行者程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试 单元测试的重要进行充分的单元测试,是提高软件质量,降低开发成本的必由之路。,29,单元测试,单元测试对象单元测试,应专门编写测试代码,并与产品代码隔离在结构化程序时代,单元测试所说的单元是指函数,在当今的面向对象时代,单元测试所说的单元是指类。单元测试时间单元测试越早越好!,30,单元测试,单元测试一般方法编写产品函数的框架然后编写测试函数,针对产品函数的功能编写测试用例,然后编写产品函数的代码,每写一个功能点都运行测试,随时补充测试用例。,31,The Test

11、ing Problems,programmers,Should write,few,Do,Why?,I am so busy,It is difficult,32,单元测试,为什么单元测试难以真正实施:代码“难以”编写单元测试 项目进度要求和时间限制不想编写单元测试带来的后果:项目后期质量问题 代码逐渐”腐烂”,33,JUnit Tutorial,单元测试的相关概念什么是JUnit一个简单的例子,34,JUnit,JUnit基于面向对象构建的java单元测试框架.方便开发者编写单元测试并运行它也是第一个单元测试框架.JUnit测试可以通过多种方式运行:Swing GUIEclipse Plug

12、inCommand LineAnt Script,35,JUNIT,JUnit的架构:TestCase:由开发者编写TestSuite:一组TestCase的集合TestRunner:运行TestCase/TestSuiteTestResult:收集测试结果TestListener:测试运行过程中监听事件,36,JUnit Tutorial,单元测试的相关概念什么是JUnit一个简单的例子,37,More Reading,http:/www.cs.umanitoba.ca/eclipse/10-JUnit.pdfhttp:/,38,软件自动化测试,软件自动化测试工具标准流程提供了一套完整的测试

13、流程框架,软件测试团队可以以它为基础,根据业务发展的实际要求,定制符合团队使用的软件测试流程,39,当前软件过程普遍存在的测试问题,手工过多,缺少测试工具,自动化测试方式缺失缺乏文档测试、检查测试在开发基本完成时才启动测试案例、测试方案的重用率低下测试人员素质低,缺乏相关知识培训测试进度的错误估算,40,自动化测试的好处,执行一遍测试的速度大约是人工测试的1/10每次测试正确执行相同的动作,避免人工测试的错误重复执行相同的测试可以撰写复杂测试脚本,以带出隐藏在应用程序中的信息建立广泛的测试脚本,涵盖应用程序所有功能,41,自动化测试应该做的,测试应用程序做期望要做的事情(建设性或积极的测试)测

14、试应用程序不做不期望做的任何事情(破坏性或消极的测试)测试应用程序是健壮的(如:能够处理假的数据而不崩溃),42,主要的自动化测试工具,Rational Robot:业界最顶尖的功能测试工具,集成在测试人员的桌面 IBM Rational TestManager 上,测试人员可以计划、组织、执行、管理和报告所有测试活动,包括手动测试报告。这种测试和管理的双重功能是自动化测试的理想开始。QuickTest Professional:功能测试自动化工具,主要应用在回归测试中。QuickTest针对的是GUI应用程序,包括传统的Windows应用程序,以及现在越来越流行的Web应用。QA Run:QARun的测试实现方式是通过鼠标移动、键盘点击操作被测应用,既而得到相应的测试脚本,对该脚本可以进行编辑和调试。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号