12软件工程基础ppt课件

上传人:cl****1 文档编号:592676393 上传时间:2024-09-21 格式:PPT 页数:51 大小:168KB
返回 下载 相关 举报
12软件工程基础ppt课件_第1页
第1页 / 共51页
12软件工程基础ppt课件_第2页
第2页 / 共51页
12软件工程基础ppt课件_第3页
第3页 / 共51页
12软件工程基础ppt课件_第4页
第4页 / 共51页
12软件工程基础ppt课件_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《12软件工程基础ppt课件》由会员分享,可在线阅读,更多相关《12软件工程基础ppt课件(51页珍藏版)》请在金锄头文库上搜索。

1、Web程序设计程序设计第六章第六章软件工程基础软件工程基础:主要内容主要内容需求分析的方法需求分析的方法概要设计的目标及方法概要设计的目标及方法详细设计的原则详细设计的原则软件测试的方法软件测试的方法CMMCMM与项目管理与项目管理:需求分析需求分析n n需求分析的重要性需求分析的重要性: :n n11、软件开发的阶段、软件开发的阶段n n、需求分析的概念、需求分析的概念n n、需求分析的原则、需求分析的原则n n、需求分析的任务、需求分析的任务n n:需求分析方法需求分析方法 结构化分析方法结构化分析方法SASAn n结构化分析结构化分析StructuredAnalysisStructure

2、dAnalysis,SASA是由是由DouglasRossDouglasRoss提出的,由提出的,由DeMarcoDeMarco进行推广的。进行推广的。n n采用自顶向下、逐层进行功能分解的系统分析方采用自顶向下、逐层进行功能分解的系统分析方法来定义系统的需求。法来定义系统的需求。n n适用于分析大型的数据处理系统。适用于分析大型的数据处理系统。n n方法的特点:利用数据流图方法的特点:利用数据流图DataFlowDataFlowDiagramDiagram,DFDDFD来帮助理解问题,对问题进行分来帮助理解问题,对问题进行分析。析。n n一般工具:一般工具:DFDDFD、数据字典、结构化英语

3、、判定、数据字典、结构化英语、判定表、判定树等。表、判定树等。:需求分析的方法需求分析的方法n n数据流图:描述数据处理过程的工具。n n数据字典:关于数据的信息集合,对数据流程图中的各个元素做出完整的定义和说明,是数据流图的补充。n n内容:数据流n n数据项n n数据结构n n数据存储n n处理逻辑n n外部实体:需求分析的步骤需求分析的步骤调查分析分析与综合调查分析分析与综合书写文档需求分析评审书写文档需求分析评审文档说明书:引言、任务概述、数据描述、文档说明书:引言、任务概述、数据描述、功能要求、性能需求、运行需求、其他要功能要求、性能需求、运行需求、其他要求、附录。求、附录。:概要设

4、计概要设计n n概要设计的目标n n概要设计的过程:n n、设计系统方案n n、模块化与模块独立性n n模块独立性的重要性n n耦合与内聚n n结构设计原则:Jackson图图n nJackson图由方框、连线及有特殊含义的一些标记组成。由于尽管数据结构种类繁多,但其数据元素之间的联系只有顺序、选择和循环三种,因此逻辑数据结构的类型也只有这三种。此外,结构化的程序中也只含有这三种基本结构。因而,使用Jackson图无论表达数据结构或程序结构,都是由这三种基本结构组合而成的。这三种基本结构在Jackson图中的表示符号如图所示。:Jackson图图 三种基本结构在Jackson图中的表示符号(a

5、) 顺序结构;(b) 选择结构;(c);循环结构:Jackson图在图中,在图中,(a)(a)图表示图表示A A由由B B、C C和和D D三部分顺序组成;三部分顺序组成;(b)(b)图表示图表示A A根据分支条件由根据分支条件由B B、C C、D D三个部分中选择一个,三个部分中选择一个,注意注意A A、B B和和C C上均标有上均标有“”“”标记表示选择;标记表示选择;(c)(c)图表图表示示A A由由B B重复若干次组成,注意重复若干次组成,注意B B上标有上标有“*”“*”标记表示重标记表示重复。由于复。由于JacksonJackson图可直观、清晰地描述系统中的数据图可直观、清晰地描

6、述系统中的数据结构,成为了一种在需求分析和设计阶段均可采用的通结构,成为了一种在需求分析和设计阶段均可采用的通用图形表达手段。用图形表达手段。:Jackson方法方法n n Jackson方法是一种典型的面向数据结构的结方法是一种典型的面向数据结构的结构程序设计方法,其设计目标是从分析系统的数构程序设计方法,其设计目标是从分析系统的数据结构出发,最后得出用据结构出发,最后得出用Jackson伪代码表示的伪代码表示的程序处理过程。下面通过一个简单的例子来说明:程序处理过程。下面通过一个简单的例子来说明:Jackson方法的具体设计步骤。假定某单位原来方法的具体设计步骤。假定某单位原来存在一个职工

7、工资文件和一个职工档案文件,两存在一个职工工资文件和一个职工档案文件,两个文件中的记录均按照职工编号升序排列且数目个文件中的记录均按照职工编号升序排列且数目相等,现在要将这两个独立的文件合并为一个职相等,现在要将这两个独立的文件合并为一个职工工资档案文件。采用工工资档案文件。采用Jackson方法设计,共分方法设计,共分为如下四步进行:为如下四步进行::(1)分析问题,确定输入、输出数据的逻辑结构,并用Jackson图将其描述出来。如上面例子中的输入数据为职工档案文件和职工工资文件,输出数据为职工工资档案文件,用Jackson图表示的输入和输出数据结构如图1所示。:图1 输入和输出数据结构(a

8、) 输入数据的数据结构;(b) 输出数据的数据结构:(2)找出输入数据结构和输出数据结构中有对应关系的单元,并按下列规则导出描述程序结构的Jackson图。所谓对应单元,是指在程序中具有因果关系,可以同时处理的数据单元。若这些单元在结构图中重复出现,则它们在输入结构和输出结构中重复出现的次数都相同时才算作是对应单元。为每对输入结构与输出结构中有对应关系的数据单元在程序结构图的相应层次画一个处理框。为输入数据结构中剩余的每一个数据单元在程序结构图的相应层次画一个处理框。为输出数据结构中剩余的每一个数据单元在程序结构图的相应层次画一个处理框。:图图2 生成工资档案文件的程序结构图生成工资档案文件的

9、程序结构图 :(3)列出完成结构图中各处理框功能的所有操作、分支及循环条件,并把它们放到程序结构图上的适当位置。在导出程序结构图的过程中,当顺序结构中混杂有循环或选择结构时,应通过增加中间层次对其进行改进,保证结构的清晰性。例子中所涉及的基本操作和条件如下:A.打开输入文件;B.新建工资档案文件;C.读取输入文件中的一条记录;D.关闭文件;E.合并生成工资档案记录;F.将工资档案记录写入文件;G.终止;I(1).输入文件未结束。将这些操作及条件分配到程序结构图的适当位置之后,结果如图5.26(a)所示。可以看到,在图5.26(a)中的产生工资档案文件顺序结构中,混有产生工资档案记录这个循环结构

10、。为了防止混淆,应将其改进为图5.26(b)所示的程序结构图。:图3 加入基本操作和条件后的程序结构图(a) 改进前的程序结构图;(b) 改进后的程序结构图:(4)用Jackson伪代码写出程序的处理过程。Jackson方法中使用的伪代码和Jackson图完全对应,以下是与图5.23所示的Jackson图中三种基本结构对应的伪代码表示。:详细设计详细设计 详细设计的任务详细设计的任务详细设计的任务详细设计的任务 (1) (1) 确定每个模块的具体算法。选择某种表达工具将算确定每个模块的具体算法。选择某种表达工具将算确定每个模块的具体算法。选择某种表达工具将算确定每个模块的具体算法。选择某种表达

11、工具将算法的详细处理过程描述出来。法的详细处理过程描述出来。法的详细处理过程描述出来。法的详细处理过程描述出来。 (2) (2) 确定每个模块的内部数据结构及数据库的物理结构。确定每个模块的内部数据结构及数据库的物理结构。确定每个模块的内部数据结构及数据库的物理结构。确定每个模块的内部数据结构及数据库的物理结构。 (3) (3) 确定模块接口的具体细节。包括模块之间的接口信确定模块接口的具体细节。包括模块之间的接口信确定模块接口的具体细节。包括模块之间的接口信确定模块接口的具体细节。包括模块之间的接口信息、模块与系统外部的接口信息及用户界面等。息、模块与系统外部的接口信息及用户界面等。息、模块

12、与系统外部的接口信息及用户界面等。息、模块与系统外部的接口信息及用户界面等。(4) (4) 为每个模块设计一组测试用例。为每个模块设计一组测试用例。为每个模块设计一组测试用例。为每个模块设计一组测试用例。 (5) (5) 编写文档,参加复审。编写文档,参加复审。编写文档,参加复审。编写文档,参加复审。 详细设计阶段的成果主要以详细设计说明书的形式保详细设计阶段的成果主要以详细设计说明书的形式保详细设计阶段的成果主要以详细设计说明书的形式保详细设计阶段的成果主要以详细设计说明书的形式保留下来,在通过复审对其进行改进和完善后作为编码留下来,在通过复审对其进行改进和完善后作为编码留下来,在通过复审对

13、其进行改进和完善后作为编码留下来,在通过复审对其进行改进和完善后作为编码阶段进行程序设计的主要依据。阶段进行程序设计的主要依据。阶段进行程序设计的主要依据。阶段进行程序设计的主要依据。:详细设计的原则详细设计的原则为了能够使模块的逻辑描述清晰准确,在详细设计阶段应遵循下列原则。(1)将保证程序的清晰度放在首位。(2)设计过程中应采用逐步细化的实现方法。(3)选择适当的表达工具。:详细设计可采用的工具详细设计可采用的工具n n1. 1. 程序流程图程序流程图程序流程图程序流程图n n程序流程图是最早出现且使用较为广泛的算法程序流程图是最早出现且使用较为广泛的算法程序流程图是最早出现且使用较为广泛

14、的算法程序流程图是最早出现且使用较为广泛的算法表达工具之一,能够有效地描述问题求解过程中表达工具之一,能够有效地描述问题求解过程中表达工具之一,能够有效地描述问题求解过程中表达工具之一,能够有效地描述问题求解过程中的程序逻辑结构。程序流程图中经常使用的基本的程序逻辑结构。程序流程图中经常使用的基本的程序逻辑结构。程序流程图中经常使用的基本的程序逻辑结构。程序流程图中经常使用的基本符号如图所示:符号如图所示:符号如图所示:符号如图所示:程序流程图中的基本符号(a) 一般处理框;(b) 输入/输出框;(c) 判断框;(d) 流程线;(e) 起止框:三种基本控制结构的流程图(a) 顺序结构;(b)

15、选择结构;(c) DO-WHILE循环结构:两种补充结构的流程图(a) DO-UNTIL循环结构;(b) 多分支选择结构:NS图中基本控制结构的表示符号顺序结构;(b) 分支结构;(c) 多分支CASE结构;(d) while-do结构;(e) do-until结构;(f) 调用模块A:PAD中基本符号顺序结构;(b) 分支结构;(c) 多分支CASE结构;(d) 当型循环;(e);直到型循环;(f) 对s的细化:图6.1 几种基本结构的程序图(a) 顺序结构;(b) 分支结构;(c) 循环结构(当型和直到型):图6.2 程序流程图及导出的程序图(a) 程序流程图;(b) 程序图:软件测试技术

16、软件测试技术n n 软件测试基础软件测试基础 n n 白盒测试技术白盒测试技术 n n 黑盒测试技术黑盒测试技术 n n 软件测试计划和测试分析报告软件测试计划和测试分析报告n n软件测试策略软件测试策略:1. 软件测试的概念软件测试的概念 软件测试是在软件投入运行前对软件需求分析、软件测试是在软件投入运行前对软件需求分析、软件设计规格说明和软件编码进行查错和纠错软件设计规格说明和软件编码进行查错和纠错(包括代码执行活动与人工活动包括代码执行活动与人工活动)。 找错的活动称测试,找错的活动称测试, 纠错的活动称调试。纠错的活动称调试。 软件测试是为了发现错误而执行程序的过程。软件测试是为了发现

17、错误而执行程序的过程。软件测试是根据软件开发各阶段的规格说明和程序软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例的内部结构而精心设计一批测试用例(即输入数即输入数据及其预期的输出结果据及其预期的输出结果),并利用这些测试用例,并利用这些测试用例去运行程序,以发现程序错误的过程。去运行程序,以发现程序错误的过程。:2. 软件测试的目的软件测试的目的 (1) 测试是一个为了寻找错误而运行程序的过程。测试是一个为了寻找错误而运行程序的过程。(2) 一个好的测试用例是指很可能找到迄今为止一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。尚未发现的错误的用例。(3

18、) 一个成功的测试是指揭示了迄今为止尚未发一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。现的错误的测试。:软件测试的过程软件测试的过程:软件测试的方法软件测试的方法1.静态分析技术静态分析技术不执行被测试软件,可对需求分析说明书、软件设计说明书、源程序做结构检查、流程图分析、符号执行等来找出软件错误。可以人工进行分析,也可以用测试工具静态分析程序来进行,被测试程序的正文作为输入,经静态分析程序分析得出分析结果。(1)结构检查是手工分析技术,由一组人员对程序设计、需求分析、编码测试工作进行评议,虚拟执行程序,并在评议中作错误检验。此方法能找出典型程序30%70%有关逻辑设计与编码的错误。

19、:(2)流程图分析是通过分析程序流程图的代码结构,来检查程序的语法错误信息、语句中标识符引用状况、子程序和函数调用状况及无法执行到的代码段。此方法便于分析编码实现与测试结果分析。(3)符号执行是一种符号化定义数据,并为程序每条路径给出符号表达式,对特定路径输入符号,经处理输出符号,从而判断程序行为是否错误,达到分析错误目的的方法。这种方法比数值计算复杂得多,易出错,又不适于非数值计算,故使用较少。:2. 动态测试技术动态测试技术动态分析是执行被测程序,由执行结果分析程序可能出现的错误。可以人工设计程序测试用例,也可以由测试工具动态分析程序来做检查与分析。动态测试包括功能测试和结构测试。它把程序

20、看作为一个函数,输入的全体称为函数的定义域,输出的全体称为函数的值域,函数则描述了输入的定义域与输出值域的关系。这样动态测试的算法可归纳为::n n函数n nn n输入的全体输出的全体函函数数的的定定义义域域函函数数的的值值域域:动态测试的算法动态测试的算法(1) 选取定义域中的有效值,或定义域外无效值。(2) 对已选取值决定预期的结果。(3) 用选取值执行程序。(4) 观察程序行为,记录执行结果。(5) 将(4)的结果与(2)的结果相比较,不吻合则程序有错。 动态测试既可以采用白盒法对模块进行逻辑结构的测试,又可以用黑盒法做功能结构的测试和接口的测试,都是以执行程序并分析执行结果来查错。:白

21、盒测试技术白盒测试技术白盒测试概念白盒测试概念如果已知产品的内部活动方式,就可以如果已知产品的内部活动方式,就可以测试它的内部活动是否都符合设计要求。测试它的内部活动是否都符合设计要求。这种方法称白盒测试这种方法称白盒测试(White-boxTesting)(White-boxTesting),它是对软件的过程性细节做细致的检查。,它是对软件的过程性细节做细致的检查。白盒测试又称为结构测试或逻辑驱动测试,白盒测试又称为结构测试或逻辑驱动测试,此方法是将测试对象比作一个打开的盒子,此方法是将测试对象比作一个打开的盒子,它允许测试人员利用程序内部的逻辑结构它允许测试人员利用程序内部的逻辑结构和相关

22、信息来设计或选择测试用例,对穿和相关信息来设计或选择测试用例,对穿过软件的逻辑路径进行测试,可以在不同过软件的逻辑路径进行测试,可以在不同点检查程序的状态,以确定实际状态与预点检查程序的状态,以确定实际状态与预期状态是否一致。期状态是否一致。:软件人员使用白盒方法测试程序模块的检查点主要包括:对程序模块的所有独立的执行路径应至少测试一次;对所有的逻辑判定,取“真与取“假两种情况都能至少测试一次;在循环的边界和运行界限内执行循环体;测试内部数据结构的有效性等。表面看来,白盒测试是可以进行完全的测试的,从理论上讲也应该如此。只要能确定测试模块的所有逻辑路径,并为每一条逻辑路径设计测试用例,并评价所

23、得到的结果,就可得到100%正确的程序。但实际测试中,这种穷举法是无法实现的,因为即使是很小的程序,也可能会出现数目惊人的逻辑路径。如图所示是一个小程序的流程图。:图中,一个圆圈代表一行源程序代码图中,一个圆圈代表一行源程序代码( (或一个语句块或一个语句块) )。其中有五条通路,左边曲线箭头表示执行次数不超过其中有五条通路,左边曲线箭头表示执行次数不超过2020次循环。这样的执行路径就有次循环。这样的执行路径就有520520个,近似为个,近似为10141014个可个可能的路径。如果能的路径。如果1ms1ms完成一个测试,由此测试程序需完成一个测试,由此测试程序需31703170年。年。由此看

24、出,即使精确地实现了白盒测试,也不能断言由此看出,即使精确地实现了白盒测试,也不能断言测试过的程序全正确,因为实行穷举测试,由于工作量测试过的程序全正确,因为实行穷举测试,由于工作量过大,需用时间过长,实施起来是不现实的。这就是程过大,需用时间过长,实施起来是不现实的。这就是程序测试的经济学问题。既然在测试阶段穷举法测试是不序测试的经济学问题。既然在测试阶段穷举法测试是不可行的,那么为了节省时间和资源,提高测试效率,就可行的,那么为了节省时间和资源,提高测试效率,就必须精心设计测试用例。需从大量的可用测试用例中精必须精心设计测试用例。需从大量的可用测试用例中精选出少量的测试数据,使得采用这些测

25、试数据能够达到选出少量的测试数据,使得采用这些测试数据能够达到最佳的测试效果,即能高效地、尽可能多地发现隐藏的最佳的测试效果,即能高效地、尽可能多地发现隐藏的错误。测试只能发现错误,并不能保证程序没有错误。错误。测试只能发现错误,并不能保证程序没有错误。:白盒测试中的穷举测试:黑盒测试技术黑盒测试技术黑盒测试概念黑盒测试概念黑盒测试方法是在已知产品应该具有的功能的黑盒测试方法是在已知产品应该具有的功能的情况下,通过测试来检验是否每个功能都能正常情况下,通过测试来检验是否每个功能都能正常使用的测试方法。对于软件测试而言,黑盒测试使用的测试方法。对于软件测试而言,黑盒测试法把程序看成一个黑盒子,完

26、全不考虑程序的内法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。黑盒测试是在程序接口进行部结构和处理过程。黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息数据产生正确的输出信息,并且保持外部信息( (如数据库或文件如数据库或文件) )的完整性。的完整性。:黑盒测试又称功能测试。使用黑盒测试法,为了做到穷举测试,至少必须对所有输入数据的各种可能值的排列组合都进行测试。与白盒法相似,由此得到的应测试的情况

27、数往往大到实际上根本无法测试的程度,即黑盒测试使用所有有效和无效的输入数据来测试程序是不现实的。所以,黑盒测试同样不能做到穷尽测试,只能选取少量最有代表性的输入数据,以期用较少的代价暴露出较多的程序错误。黑盒测试技术黑盒测试技术:其他测试方法其他测试方法n n条件测试:是检查程序模块中所包含逻条件测试:是检查程序模块中所包含逻辑条件的测试用例设计方法。辑条件的测试用例设计方法。n n数据流测试:按照程序中的变量定义和数据流测试:按照程序中的变量定义和使用的位置来选择程序的测试路径。使用的位置来选择程序的测试路径。n n循环测试:是一种白盒测试技术包括循环测试:是一种白盒测试技术包括简单循环、串

28、接循环、嵌套循环、不规简单循环、串接循环、嵌套循环、不规则循环。则循环。:与项目管理与项目管理n nCMMCapability Maturity Model)软件软件过程能力成熟度模型。过程能力成熟度模型。n n五个等级:五个等级:n n 初始级初始级可重复级可重复级已定义级已定义级已定量管已定量管理级理级优先级优先级:项目管理项目管理n n项目管理:项目管理:n n项目资源项目资源n n项目目标项目目标n n项目需求项目需求n n项目管理的原则和方法:项目管理的原则和方法:n n全目标管理全目标管理n n过程管理:启动、方案、执行、控制、完毕过程管理:启动、方案、执行、控制、完毕n n整合管

29、理:目标整合、方案整合、过程整合整合管理:目标整合、方案整合、过程整合:ASP由微软创建的由微软创建的Web应用开发标准,应用开发标准,ASP服务器已经包含在服务器已经包含在IIS服务器中,服务器中,ASP服务器服务器将将Web请求转入解释器中,在解释器中将所请求转入解释器中,在解释器中将所有有ASP的的Script进行分析,然后执行,同时进行分析,然后执行,同时可以创建可以创建COM对象以完成更多的功能。对象以完成更多的功能。ASP所设计出的是动态主页,可接收用户提交的所设计出的是动态主页,可接收用户提交的信息并作出反应,其中的数据可随实际情况信息并作出反应,其中的数据可随实际情况而改变,无须人工对网页文件进行更新即可而改变,无须人工对网页文件进行更新即可满足应用需要。满足应用需要。:在在ASPASP中通过中通过ADOADO访问数据库,一般要通过以下四个访问数据库,一般要通过以下四个步骤:步骤:a.a.创建一个到数据库的连接,即创建一个到数据库的连接,即ADO.ConnectionADO.Connection;b.b.查询一个数据集合,即执行查询一个数据集合,即执行SQLSQL,产生一个,产生一个RecordsetRecordset;c.c.对数据集合进行需要的操作;对数据集合进行需要的操作;d.d.关闭数据连接。关闭数据连接。:

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

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

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