《软件生存期》PPT课件

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

《《软件生存期》PPT课件》由会员分享,可在线阅读,更多相关《《软件生存期》PPT课件(42页珍藏版)》请在金锄头文库上搜索。

1、Software Engineering Review 张磊张磊2007.10Review 一个定义一个定义: :软件生存期软件生存期 如如同同任任何何其其他他事事物物一一样样,软软件件也也有有一一个个孕孕育育、诞诞生生、成成长长、成成熟熟、衰衰亡亡的的生生存存过过程程,一般称之为计算机一般称之为计算机软件的生存期软件的生存期。一般说来,软件生命期由软件定义、软件一般说来,软件生命期由软件定义、软件开发和软件维护三个时期组成,每个时期又开发和软件维护三个时期组成,每个时期又可进一步划分成若干个阶段。可进一步划分成若干个阶段。2软件生存期软件生存期1 1软件定义时期软件定义时期 (1 1)问题定

2、义:这是软件生存期的第一个阶)问题定义:这是软件生存期的第一个阶段,主要任务是弄清用户要计算机解决的问题段,主要任务是弄清用户要计算机解决的问题是什么。是什么。(2 2)可行性研究:任务是为前一阶段提出的)可行性研究:任务是为前一阶段提出的问题寻求一种至数种在技术上可行、且在经济问题寻求一种至数种在技术上可行、且在经济上有较高效益的解决方案。上有较高效益的解决方案。3软件生存期软件生存期2 2软件开发时期软件开发时期 (1 1)需需求求分分析析:弄弄清清用用户户对对软软件件系系统统的的全全部部需需求求,主主要要是确定目标系统必须具备哪些功能。是确定目标系统必须具备哪些功能。(2 2)总总体体设

3、设计计:设设计计软软件件的的结结构构,即即确确定定程程序序由由哪哪些些模模块组成以及模块间的关系。块组成以及模块间的关系。(3 3)详细设计:针对单个模块的设计。)详细设计:针对单个模块的设计。(4 4)编编码码:按按照照选选定定的的语语言言,把把模模块块的的过过程程性性描描述述翻翻译译为源程序。为源程序。(5 5)测测试试:通通过过各各种种类类型型的的测测试试( (及及相相应应的的调调试试) )使使软软件件达到预定的要求。达到预定的要求。4软件生存期软件生存期3 3软件运行时期软件运行时期 是是软软件件生生存存周周期期的的最最后后一一个个时时期期。软软件件人人员员在在这这一一时时期期的的工工

4、作作,主主要要是是做做好好软软件件维维护护。维维护护的的目目的的,是是使使软软件件在在整整个个生生存存周周期期内内保保证证满满足足用用户户的的需需求求和和延延长软件的使用寿命。长软件的使用寿命。5需求分析需求分析 需求分析的过程需求分析的过程需求分析阶段可分为四个过程:调查需求分析阶段可分为四个过程:调查研究、分析与综合、书写需求分析的文档研究、分析与综合、书写需求分析的文档和需求评审。和需求评审。 6需求分析需求分析(1) (1) 问题识别问题识别l从系统的角度来理解软件并评审软件从系统的角度来理解软件并评审软件范围是否恰当范围是否恰当l确定对目标系统的综合要求,即软件确定对目标系统的综合要

5、求,即软件的需求的需求l提出这些需求实现条件,以及需求应提出这些需求实现条件,以及需求应达到的标准达到的标准7需求分析需求分析(2) (2) 分析与综合分析与综合 从信息流和信息结构出发,逐步从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的素之间的联系、接口特性和设计上的约束,分析它们是否满足功能要求,约束,分析它们是否满足功能要求,是否合理。最终综合成系统的解决方是否合理。最终综合成系统的解决方案,给出目标系统的详细逻辑模型案,给出目标系统的详细逻辑模型. .8需求分析需求分析(3) (3) 编制需求分析阶段的文档编

6、制需求分析阶段的文档l软件需求说明书软件需求说明书l数据要求说明书数据要求说明书l初步的用户手册初步的用户手册l修改、完善与确定软件开发实施计划修改、完善与确定软件开发实施计划9需求分析需求分析l l(4) (4) 需求分析评审需求分析评审 作作作作为为为为需需需需求求求求分分分分析析析析阶阶阶阶段段段段工工工工作作作作的的的的复复复复查查查查手手手手段段段段,应应应应该该该该对对对对功功功功能能能能的的的的正正正正确确确确性性性性、文文文文档档档档的的的的一一一一致致致致性性性性、完完完完备备备备性性性性、准准准准确确确确性性性性和和和和清清清清晰晰晰晰性性性性,以以以以及及及及其它需求给予

7、评价。其它需求给予评价。其它需求给予评价。其它需求给予评价。 为为为为保保保保证证证证软软软软件件件件需需需需求求求求定定定定义义义义的的的的质质质质量量量量,评评评评审审审审应应应应以以以以专专专专门门门门指指指指定定定定的的的的人人人人员员员员负负负负责责责责,并并并并按按按按规规规规程程程程严严严严格格格格进进进进行行行行。评评评评审审审审结结结结束束束束应应应应有有有有评评评评审审审审负负负负责责责责人人人人的的的的结结结结论论论论意意意意见见见见及及及及签签签签字字字字。除除除除分分分分析析析析员员员员之之之之外外外外,用用用用户户户户需需需需求求求求者者者者,开开开开发发发发部部部

8、部门门门门的的的的管管管管理理理理者者者者,软软软软件件件件设设设设计计计计、实实实实现现现现、测测测测试试试试的的的的人人人人员员员员都都都都应应应应当当当当参加评审工作。参加评审工作。参加评审工作。参加评审工作。10需求分析需求分析 需求分析的原则需求分析的原则(1)能够表达和理解问题的信息域和功能域。)能够表达和理解问题的信息域和功能域。(2)能够对问题进行分解和不断细化,建立问题)能够对问题进行分解和不断细化,建立问题的层次结构。的层次结构。 (3)能够给出系统的逻辑视图和物理视图。)能够给出系统的逻辑视图和物理视图。11需求分析需求分析 12需求分析需求分析 结结构构化化分分析析方方

9、法法中中使使用用的的工工具具主主要要包包括括:数数据据流流图图、数数据据字字典典、结结构构化化英英语语、判判定定表表和和判定树。判定树。其其中中数数据据流流图图用用以以表表达达系系统统内内数数据据的的运运动动情情况况;数数据据词词典典用用以以定定义义系系统统中中的的数数据据;结结构构化化语语言言、判判定定表表和和判判定定树树都都是是用用以以描描述述数数据据流流的加工的工具。的加工的工具。13概要设计概要设计 概概要要设设计计又又称称为为总总体体设设计计或或初初步步设设计计,它它的的基基本本目目的的就就是是回回答答“概概括括地地说说,系系统统应应该该如如何何实实现现?”这这个个问问题题。在在总总

10、体体设设计计阶阶段段,应应划划分分出出组组成成系系统统的的物物理理元元素素程程序序、文文件件、数数据据库库、人人工工过过程程和和文文档档等等,并并确确定定系系统统中中每每个个程程序序由由哪哪些些模模块块组组成成以以及这些模块相互间的关系。及这些模块相互间的关系。1415概要设计概要设计l实施总体设计的过程如下实施总体设计的过程如下: 1设想供选择的方案设想供选择的方案 2选取合理的方案选取合理的方案 3推荐最佳方案推荐最佳方案 4功能分解功能分解 5设计软件结构设计软件结构6数据库设计数据库设计7制定测试计划制定测试计划 8书写文档书写文档 9审查和复审审查和复审 16概要设计概要设计总体设计

11、的图形工具总体设计的图形工具一、层次图一、层次图 层层次次图图是是在在总总体体设设计计阶阶段段最最常常使使用用的的图图形形工工具具之之一一,它它常常用用于于描描绘绘软软件件的的层层次次结结构构。层层次次图图中中的的每每个个方方框框代代表表一一个个模模块块,方框间的连线表示模块间的调用关系。方框间的连线表示模块间的调用关系。 17概要设计概要设计二、二、HIPOHIPO图图 HIPO图实际上由图实际上由H图和图和IPO图两部分组成。图两部分组成。H图图即即层次图,为了能使层次图,为了能使HIPO图具有可跟踪性,在图具有可跟踪性,在H图里除了图里除了最顶层的方框之外,每个方框都加了编号最顶层的方框

12、之外,每个方框都加了编号;和和H H图中的图中的每个方框相对应,有一张每个方框相对应,有一张IPOIPO图描述这个方框代表的模图描述这个方框代表的模块的处理过程。块的处理过程。IPOIPO图能够方便地描述数据输入、数据图能够方便地描述数据输入、数据处理和数据输出之间的关系。它的基本形式是:在左边处理和数据输出之间的关系。它的基本形式是:在左边的框中列出有关的输入数据,在中间的框中列出主要的的框中列出有关的输入数据,在中间的框中列出主要的处理处理处理框中列出的处理次序暗示了执行的次序,处理框中列出的处理次序暗示了执行的次序,在右边的框中列出产生的输出数据。另外,还用类似向在右边的框中列出产生的输

13、出数据。另外,还用类似向量符号的粗大箭头清楚地指出数据通信的情况。量符号的粗大箭头清楚地指出数据通信的情况。18概要设计概要设计三、结构图三、结构图 结结构构图图中中的的每每个个方方框框代代表表一一个个模模块块,框框内内注注明明模模块块的的名名字字或或主主要要功功能能;方方框框之之间间的的箭箭头头(或或直直线线)表表示示模模块间的调用关系。块间的调用关系。在在结结构构图图中中通通常常还还用用带带注注释释的的箭箭头头表表示示模模块块调调用用过过程程中中模模块块之之间间传传递递的的信信息息。可可以以利利用用注注释释箭箭头头尾尾部部的的不不同同形形状状来来区区分分:尾尾部部是是空空心心圆圆表表示示传

14、传递递的的是是数数据据,尾尾部部是实心圆则表示传递的是控制信息。是实心圆则表示传递的是控制信息。19详细设计详细设计详详细细设设计计以以总总体体设设计计阶阶段段的的工工作作为为基基础础的的,但但又又不不同同于于总总体设计,主要表现为以下两个方面:体设计,主要表现为以下两个方面:(1)在在总总体体设设计计阶阶段段,数数据据项项和和数数据据结结构构以以比比较较抽抽象象的的方方式式描描述述,而而详详细细设设计计阶阶段段则则应应在在此此基基础础上上给给出出足足够够详详细描述。细描述。(2)详详细细设设计计要要提提供供关关于于算算法法的的更更多多的的细细节节,例例如如:总总体体设设计计可可以以声声明明一

15、一个个模模块块的的作作用用是是对对一一个个表表进进行行排排序序,详详细细设设计计则则要要确确定定使使用用哪哪种种排排序序算算法法。在在详详细细设设计计阶阶段段为为每每个个模模块块增增加加了了足足够够的的细细节节后后,程程序序员员才才能能够够以以相相当当直接的方式进行下一阶段的编码工作。直接的方式进行下一阶段的编码工作。20详细设计详细设计详细设计的任务详细设计的任务 (1 1)确定每个模块的算法。)确定每个模块的算法。(2 2)确定每一个模块的数据组织。)确定每一个模块的数据组织。(3 3)为每个模块设计一组测试用例。)为每个模块设计一组测试用例。(4 4)编写详细设计说明书。)编写详细设计说

16、明书。21详细设计详细设计详细设计的原则详细设计的原则(1 1)模块的逻辑描述正确可靠、清晰易读。)模块的逻辑描述正确可靠、清晰易读。(2 2)采采用用结结构构化化程程序序设设计计方方法法,改改善善控控制制结结构构,降降低低程程序序复复杂杂度度,提提高高程程序序的的可可读读性、可测试性和可维护性。性、可测试性和可维护性。22详细设计详细设计 详细设计的工具详细设计的工具一、一、程序流程图程序流程图 二、二、N-SN-S图图 三、三、PADPAD图图(问题分析图问题分析图) 四、四、PDLPDL语言语言 23软件测试软件测试 软件测试是保证软件质量的关键步骤,它是软件测试是保证软件质量的关键步骤

17、,它是对软件系统规格说明、设计和编码的最后复审。对软件系统规格说明、设计和编码的最后复审。 广义上讲,测试是指软件产品生存周期内所广义上讲,测试是指软件产品生存周期内所有的检查、评审和确认活动。如:设计评审、有的检查、评审和确认活动。如:设计评审、系统测试。系统测试。 狭义上讲,测试是对软件产品质量的检验和狭义上讲,测试是对软件产品质量的检验和评价。它一方面检查软件产品质量中存在的质评价。它一方面检查软件产品质量中存在的质量问题,同时对产品质量进行客观的评价。量问题,同时对产品质量进行客观的评价。24软件测试l单元测试l集成测试l系统测试l安全测试l配置测试l负载测试l自动化回归测试贯穿整个测

18、试过程25单元测试l单元测试的相关概念l什么是JUnitl一个简单的例子26单元测试l什么是单元测试?单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。 27单元测试l单元测试的执行者程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试 l单元测试的重要进行充分的单元测试,是提高软件质量,降低开发成本的必由之路。 28单元测试l单元测试对象单元测试,应专门编写测试代码,并与产品代码隔离在结构化程序时代,单元测试所说的单元是指函数,在当今的面向对象时代,单元测

19、试所说的单元是指类。 l单元测试时间单元测试越早越好 !29单元测试l单元测试一般方法编写产品函数的框架然后编写测试函数,针对产品函数的功能编写测试用例,然后编写产品函数的代码,每写一个功能点都运行测试,随时补充测试用例。30The Testing ProblemsprogrammersShould write fewDoWhy?I am so busyIt is difficult 31单元测试l为什么单元测试难以真正实施: 代码“难以”编写单元测试 项目进度要求和时间限制不想编写单元测试l带来的后果: 项目后期质量问题 代码逐渐”腐烂”32JUnit Tutoriall单元测试的相关概念l

20、什么是JUnitl一个简单的例子33 JUnitlJUnit基于面向对象构建的java单元测试框架.方便开发者编写单元测试并运行它也是第一个单元测试框架.lJUnit测试可以通过多种方式运行:1.Swing GUI2.Eclipse Plugin3.Command Line4.Ant Script34JUNITlJUnit的架构:lTestCase: 由开发者编写lTestSuite: 一组TestCase的集合lTestRunner: 运行TestCase/TestSuitelTestResult: 收集测试结果lTestListener: 测试运行过程中监听事件35JUnit Tutori

21、all单元测试的相关概念l什么是JUnitl一个简单的例子36More Readinglhttp:/www.junit.org/index.htmlhttp:/open.ncsu.edu/se/tutorials/junit/lhttp:/www.cs.umanitoba.ca/eclipse/10-JUnit.pdflhttp:/supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/junit/junit.pdflhttp:/ 38当前软件过程普遍存在的测试问题l手工过多,缺少测试工具,自动化测试

22、方式缺失l缺乏文档测试、检查l测试在开发基本完成时才启动l测试案例、测试方案的重用率低下l测试人员素质低,缺乏相关知识培训l测试进度的错误估算39自动化测试的好处l执行一遍测试的速度大约是人工测试的1/10l每次测试正确执行相同的动作,避免人工测试的错误l重复执行相同的测试l可以撰写复杂测试脚本,以带出隐藏在应用程序中的信息l建立广泛的测试脚本,涵盖应用程序所有功能40自动化测试应该做的l测试应用程序做期望要做的事情(建设性或积极的测试)l测试应用程序不做不期望做的任何事情(破坏性或消极的测试)l测试应用程序是健壮的(如:能够处理假的数据而不崩溃)41主要的自动化测试工具lRational Robot: 业界最顶尖的功能测试工具,集成在测试人员的桌面 IBM Rational TestManager 上,测试人员可以计划、组织、执行、管理和报告所有测试活动,包括手动测试报告。这种测试和管理的双重功能是自动化测试的理想开始。l QuickTest Professional:功能测试自动化工具,主要应用在回归测试中。QuickTest针对的是GUI应用程序,包括传统的Windows应用程序,以及现在越来越流行的Web应用。lQA Run: QARun的测试实现方式是通过鼠标移动、键盘点击操作被测应用,既而得到相应的测试脚本,对该脚本可以进行编辑和调试。42

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号