




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、software engineering review 张磊张磊2007.102review 一个定义一个定义: :软件生存期软件生存期 如同任何其他事物一样,软件也有一个孕如同任何其他事物一样,软件也有一个孕育、诞生、成长、成熟、衰亡的生存过程,育、诞生、成长、成熟、衰亡的生存过程,一般称之为计算机一般称之为计算机软件的生存期软件的生存期。一般说来,软件生命期由软件定义、软件一般说来,软件生命期由软件定义、软件开发和软件维护三个时期组成,每个时期又开发和软件维护三个时期组成,每个时期又可进一步划分成若干个阶段。可进一步划分成若干个阶段。3软件生存期软件生存期1 1软件定义时期软件定义时期 (
2、1 1)问题定义:这是软件生存期的第一个阶)问题定义:这是软件生存期的第一个阶段,主要任务是弄清用户要计算机解决的问题段,主要任务是弄清用户要计算机解决的问题是什么。是什么。(2 2)可行性研究:任务是为前一阶段提出的)可行性研究:任务是为前一阶段提出的问题寻求一种至数种在技术上可行、且在经济问题寻求一种至数种在技术上可行、且在经济上有较高效益的解决方案。上有较高效益的解决方案。4软件生存期软件生存期2 2软件开发时期软件开发时期 (1 1)需求分析:弄清用户对软件系统的全部需求,主要)需求分析:弄清用户对软件系统的全部需求,主要是确定目标系统必须具备哪些功能。是确定目标系统必须具备哪些功能。
3、(2 2)总体设计:设计软件的结构,即确定程序由哪些模)总体设计:设计软件的结构,即确定程序由哪些模块组成以及模块间的关系。块组成以及模块间的关系。(3 3)详细设计:针对单个模块的设计。)详细设计:针对单个模块的设计。(4 4)编码:按照选定的语言,把模块的过程性描述翻译)编码:按照选定的语言,把模块的过程性描述翻译为源程序。为源程序。(5 5)测试:通过各种类型的测试)测试:通过各种类型的测试( (及相应的调试及相应的调试) )使软件使软件达到预定的要求。达到预定的要求。5软件生存期软件生存期3 3软件运行时期软件运行时期 是软件生存周期的最后一个时期。软是软件生存周期的最后一个时期。软件
4、人员在这一时期的工作,主要是做好件人员在这一时期的工作,主要是做好软件维护。维护的目的,是使软件在整软件维护。维护的目的,是使软件在整个生存周期内保证满足用户的需求和延个生存周期内保证满足用户的需求和延长软件的使用寿命。长软件的使用寿命。6需求分析需求分析 需求分析的过程需求分析的过程需求分析阶段可分为四个过程:调查需求分析阶段可分为四个过程:调查研究、分析与综合、书写需求分析的文档研究、分析与综合、书写需求分析的文档和需求评审。和需求评审。 7需求分析需求分析8需求分析需求分析9需求分析需求分析10需求分析需求分析11需求分析需求分析 需求分析的原则需求分析的原则(1)能够表达和理解问题的信
5、息域和功能域。)能够表达和理解问题的信息域和功能域。(2)能够对问题进行分解和不断细化,建立问题)能够对问题进行分解和不断细化,建立问题的层次结构。的层次结构。 (3)能够给出系统的逻辑视图和物理视图。)能够给出系统的逻辑视图和物理视图。12需求分析需求分析 13需求分析需求分析 结构化分析方法中使用的工具主要包括:结构化分析方法中使用的工具主要包括:数据流图、数据字典、结构化英语、判定表和数据流图、数据字典、结构化英语、判定表和判定树。判定树。其中数据流图用以表达系统内数据的运动其中数据流图用以表达系统内数据的运动情况;数据词典用以定义系统中的数据;结构情况;数据词典用以定义系统中的数据;结
6、构化语言、判定表和判定树都是用以描述数据流化语言、判定表和判定树都是用以描述数据流的加工的工具。的加工的工具。14概要设计概要设计 概要设计又称为总体设计或初步设计,概要设计又称为总体设计或初步设计,它的基本目的就是回答它的基本目的就是回答“概括地说,系统概括地说,系统应该如何实现应该如何实现?”这个问题。在总体设计阶这个问题。在总体设计阶段,应划分出组成系统的物理元素段,应划分出组成系统的物理元素程程序、文件、数据库、人工过程和文档等,序、文件、数据库、人工过程和文档等,并确定系统中每个程序由哪些模块组成以并确定系统中每个程序由哪些模块组成以及这些模块相互间的关系。及这些模块相互间的关系。1
7、516概要设计概要设计l实施总体设计的过程如下实施总体设计的过程如下: 1设想供选择的方案设想供选择的方案 2选取合理的方案选取合理的方案 3推荐最佳方案推荐最佳方案 4功能分解功能分解 5设计软件结构设计软件结构6数据库设计数据库设计7制定测试计划制定测试计划 8书写文档书写文档 9审查和复审审查和复审 17概要设计概要设计总体设计的图形工具总体设计的图形工具一、层次图一、层次图 层次图是在总体设计阶段最常使用的层次图是在总体设计阶段最常使用的图形工具之一,它常用于描绘软件的层次图形工具之一,它常用于描绘软件的层次结构。层次图中的每个方框代表一个模块,结构。层次图中的每个方框代表一个模块,方
8、框间的连线表示模块间的调用关系。方框间的连线表示模块间的调用关系。18概要设计概要设计二、二、hipohipo图图 hipo图实际上由图实际上由h图和图和ipo图两部分组成。图两部分组成。h图图即即层次图,为了能使层次图,为了能使hipo图具有可跟踪性,在图具有可跟踪性,在h图里除了图里除了最顶层的方框之外,每个方框都加了编号最顶层的方框之外,每个方框都加了编号;和和h h图中的图中的每个方框相对应,有一张每个方框相对应,有一张ipoipo图描述这个方框代表的模图描述这个方框代表的模块的处理过程。块的处理过程。ipoipo图能够方便地描述数据输入、数据图能够方便地描述数据输入、数据处理和数据输
9、出之间的关系。它的基本形式是:在左边处理和数据输出之间的关系。它的基本形式是:在左边的框中列出有关的输入数据,在中间的框中列出主要的的框中列出有关的输入数据,在中间的框中列出主要的处理处理处理框中列出的处理次序暗示了执行的次序,处理框中列出的处理次序暗示了执行的次序,在右边的框中列出产生的输出数据。另外,还用类似向在右边的框中列出产生的输出数据。另外,还用类似向量符号的粗大箭头清楚地指出数据通信的情况。量符号的粗大箭头清楚地指出数据通信的情况。19概要设计概要设计三、结构图三、结构图 结构图中的每个方框代表一个模块,框内注明模块结构图中的每个方框代表一个模块,框内注明模块的名字或主要功能;方框
10、之间的箭头(或直线)表示模的名字或主要功能;方框之间的箭头(或直线)表示模块间的调用关系。块间的调用关系。在结构图中通常还用带注释的箭头表示模块调用过在结构图中通常还用带注释的箭头表示模块调用过程中模块之间传递的信息。可以利用注释箭头尾部的不程中模块之间传递的信息。可以利用注释箭头尾部的不同形状来区分:尾部是空心圆表示传递的是数据,尾部同形状来区分:尾部是空心圆表示传递的是数据,尾部是实心圆则表示传递的是控制信息。是实心圆则表示传递的是控制信息。20详细设计详细设计详细设计以总体设计阶段的工作为基础的,但又不同于总详细设计以总体设计阶段的工作为基础的,但又不同于总体设计,主要表现为以下两个方面
11、:体设计,主要表现为以下两个方面:(1)在总体设计阶段,数据项和数据结构以比较抽象的)在总体设计阶段,数据项和数据结构以比较抽象的方式描述,而详细设计阶段则应在此基础上给出足够详方式描述,而详细设计阶段则应在此基础上给出足够详细描述。细描述。(2)详细设计要提供关于算法的更多的细节,例如:总)详细设计要提供关于算法的更多的细节,例如:总体设计可以声明一个模块的作用是对一个表进行排序,体设计可以声明一个模块的作用是对一个表进行排序,详细设计则要确定使用哪种排序算法。在详细设计阶段详细设计则要确定使用哪种排序算法。在详细设计阶段为每个模块增加了足够的细节后,程序员才能够以相当为每个模块增加了足够的
12、细节后,程序员才能够以相当直接的方式进行下一阶段的编码工作。直接的方式进行下一阶段的编码工作。21详细设计详细设计详细设计的任务详细设计的任务 (1 1)确定每个模块的算法。)确定每个模块的算法。(2 2)确定每一个模块的数据组织。)确定每一个模块的数据组织。(3 3)为每个模块设计一组测试用例。)为每个模块设计一组测试用例。(4 4)编写详细设计说明书。)编写详细设计说明书。22详细设计详细设计详细设计的原则详细设计的原则(1 1)模块的逻辑描述正确可靠、清晰易读。)模块的逻辑描述正确可靠、清晰易读。(2 2)采用结构化程序设计方法,改善控制)采用结构化程序设计方法,改善控制结构,降低程序复
13、杂度,提高程序的可读结构,降低程序复杂度,提高程序的可读性、可测试性和可维护性。性、可测试性和可维护性。23详细设计详细设计 详细设计的工具详细设计的工具一、一、程序流程图程序流程图 二、二、n-sn-s图图 三、三、padpad图图(问题分析图问题分析图) 四、四、pdlpdl语言语言 24软件测试软件测试 软件测试是保证软件质量的关键步骤,它是软件测试是保证软件质量的关键步骤,它是对软件系统规格说明、设计和编码的最后复审。对软件系统规格说明、设计和编码的最后复审。 广义上讲,测试是指软件产品生存周期内所广义上讲,测试是指软件产品生存周期内所有的检查、评审和确认活动。如:设计评审、有的检查、
14、评审和确认活动。如:设计评审、系统测试。系统测试。 狭义上讲,测试是对软件产品质量的检验和狭义上讲,测试是对软件产品质量的检验和评价。它一方面检查软件产品质量中存在的质评价。它一方面检查软件产品质量中存在的质量问题,同时对产品质量进行客观的评价。量问题,同时对产品质量进行客观的评价。25软件测试l单元测试l集成测试l系统测试l安全测试l配置测试l负载测试l自动化回归测试贯穿整个测试过程26单元测试l单元测试的相关概念l什么是junitl一个简单的例子27单元测试l什么是单元测试?单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元
15、测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。 28单元测试l单元测试的执行者程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试 l单元测试的重要进行充分的单元测试,是提高软件质量,降低开发成本的必由之路。 29单元测试l单元测试对象单元测试,应专门编写测试代码,并与产品代码隔离在结构化程序时代,单元测试所说的单元是指函数,在当今的面向对象时代,单元测试所说的单元是指类。 l单元测试时间单元测试越早越好 !30单元测试l单元测试一般方法编写产品函数的框架然后编写测试函数,针对产品函数的功能编写测试用例,然后编写产品函数的代码,每写一个功能点都运行测试,随时补充测试用
16、例。31the testing problemsprogrammersshould write fewdowhy?i am so busyit is difficult 32单元测试l为什么单元测试难以真正实施: 代码“难以”编写单元测试 项目进度要求和时间限制不想编写单元测试l带来的后果: 项目后期质量问题 代码逐渐”腐烂”33junit tutoriall单元测试的相关概念l什么是junitl一个简单的例子34 junitljunit基于面向对象构建的java单元测试框架.方便开发者编写单元测试并运行它也是第一个单元测试框架.ljunit测试可以通过多种方式运行:1.swing gui2.
17、eclipse plugin3.command line4.ant script35junitljunit的架构:ltestcase: 由开发者编写ltestsuite: 一组testcase的集合ltestrunner: 运行testcase/testsuiteltestresult: 收集测试结果ltestlistener: 测试运行过程中监听事件36junit tutoriall单元测试的相关概念l什么是junitl一个简单的例子37more readingl/index.html/se/tutorials/ju
18、nit/lhttp:/www.cs.umanitoba.ca/eclipse/10-junit.pdflhttp:/supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/junit/junit.pdflhttp:/ 39当前软件过程普遍存在的测试问题l手工过多,缺少测试工具,自动化测试方式缺失l缺乏文档测试、检查l测试在开发基本完成时才启动l测试案例、测试方案的重用率低下l测试人员素质低,缺乏相关知识培训l测试进度的错误估算40自动化测试的好处l执行一遍测试的速度大约是人工测试的1/10l每次测试正确执行相同的动作,避免人工测试的错误l重复执行相同的测试l可以撰写复杂测试脚本,以带出隐藏在应用程序中的信息l建立广泛的测试脚本,涵盖应用程序所有功能41自动化测试应该做的l测试应用程序做期望要做的事情(建设性或积极的测试)l测试应用程序不做不期望做的任何事情(破坏性或消极的测试)l测试应用程序是健壮的(如:能够处理假的数据而不崩溃)42主要的自动化测试工具l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年四川建兴园区运营管理有限公司社会招聘2人笔试参考题库附带答案详解
- 变色龙契诃夫课件
- 2024年中国石油集团工程有限公司北京项目管理分公司秋季高校毕业生招聘55人笔试参考题库附带答案详解
- 12个月院感知识培训内容
- 有关学生托管协议书二零二五年
- 搬运工劳动协议书二零二五年
- 篮球场租赁协议正规范例
- 二零二五股权转让补充协议书模板
- 二零二五借款还款协议合同
- 厨师礼仪培训课件
- 学习通《《诗经》导读》习题(含答案)
- 2025-2030智能代步车产业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2025届广东省燕博园联考(CAT)高三下学期3月模拟测试物理试题(含答案)
- 2025年常州工程职业技术学院单招综合素质考试题库及参考答案
- 华阳煤矿考试试题及答案
- 2025民法典婚姻家庭编司法解释二解读
- 2025年中国铁路投资集团有限公司招聘(28人)笔试参考题库附带答案详解
- 垃圾清运合同范本模板
- 2025年浙江学考数学试题及答案
- YS/T 3045-2022埋管滴淋堆浸提金技术规范
- 公开课一等奖创新教学设计 第四单元 明清中国版图的奠定与面临的挑战(无答案)必修 中外历史纲要(上)
评论
0/150
提交评论