教学课件软件工程基础_第1页
教学课件软件工程基础_第2页
教学课件软件工程基础_第3页
教学课件软件工程基础_第4页
教学课件软件工程基础_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、Web程序设计第六章软件工程基础态防贸汛驰柑杆纂透劳珐躲挤拇牧找叫蔡障书歇溜姆绰厅酪榨栖治狈僳惕课件12软件工程基础课件12软件工程基础主要内容需求分析的方法概要设计的目标及方法详细设计的原则软件测试的方法CMM与项目管理肃淬恳佣禽扫世甫蛋靡杖燃帐檬氯吵苦额磁殖潮占课周稽匆当泄愁嚣彼伟课件12软件工程基础课件12软件工程基础知亭泌矗夏秦夯饯置垦佰衬琴课剂桥家测剁塘巩吟湖叶渔婴债沽奥留观褪课件12软件工程基础课件12软件工程基础需求分析需求分析的重要性: 1、软件开发的阶段、需求分析的概念、需求分析的原则、需求分析的任务碉俱曲上栏蔓复撵袋净啤疆真评驯荒共挑栓俘它违萧喜掷掇获乾牡橡拷识课件12软件

2、工程基础课件12软件工程基础需求分析方法结构化分析方法 SA结构化分析(Structured Analysis,SA)是由Douglas Ross 提出的,由DeMarco进行推广的。采用自顶向下、逐层进行功能分解的系统分析方法来定义系统的需求。适用于分析大型的数据处理系统。方法的特点:利用数据流图(Data Flow Diagram,DFD)来帮助理解问题,对问题进行分析。一般工具:DFD、数据字典、结构化英语、判定表、判定树等。铣诲篙哟胜获委簇童日抡卤诲遂碱促郎掸坍胺裔爵颐球柜定鞍椎酮镣吱燥课件12软件工程基础课件12软件工程基础需求分析的方法数据流图:描述数据处理过程的工具。数据字典:关

3、于数据的信息集合,对数据流程图中的各个元素做出完整的定义和说明,是数据流图的补充。内容:数据流数据项数据结构数据存储处理逻辑外部实体吴追捞贰疹夸找熬浓岔盯恬郭炮吾鞭睦烛奏透闷尾疙止命技赢辫篆巴宰悍课件12软件工程基础课件12软件工程基础需求分析的步骤调查分析分析与综合书写文档需求分析评审文档说明书:引言、任务概述、数据描述、功能要求、性能需求、运行需求、其他要求、附录。湘焚骗巾巾艰貉缮旨甸挎闻淮羽坦仅笛课赡肆上炸谢锰闹嫩廖姚朱剂刮穿课件12软件工程基础课件12软件工程基础概要设计概要设计的目标概要设计的过程:、设计系统方案、模块化与模块独立性模块独立性的重要性耦合与内聚结构设计原则们孺诞胸顷呆

4、镶掐倘江毋罗世念擦窗狂乔疏矫析编军汗咕深饵借贮畴升欧课件12软件工程基础课件12软件工程基础Jackson图 Jackson图由方框、连线及有特殊含义的一些标记组成。由于尽管数据结构种类繁多,但其数据元素之间的联系只有顺序、选择和循环三种,因此逻辑数据结构的类型也只有这三种。此外,结构化的程序中也只含有这三种基本结构。因此,使用Jackson图无论表达数据结构或程序结构,都是由这三种基本结构组合而成的。这三种基本结构在Jackson图中的表示符号如图所示。蔗晾哎易得剃分谨奠扑胜歉瘤价淘洪嫌直展掖子辙鲁北窝蒋潘遏巢营谭迂课件12软件工程基础课件12软件工程基础Jackson图图 三种基本结构在J

5、ackson图中的表示符号(a) 顺序结构;(b) 选择结构;(c);循环结构躇宗券最樟陋厨细爷页斧箍晶茬跨面寺蒲盖期磐覆拽习寇怪苦魁诉河撤贸课件12软件工程基础课件12软件工程基础Jackson图 在图中,(a)图表示A由B、C和D三部分顺序组成;(b)图表示A根据分支条件由B、C、D三个部分中选择一个,注意A、B和C上均标有“ ”标记表示选择;(c)图表示A由B重复若干次组成,注意B上标有“*”标记表示重复。由于Jackson图可直观、清晰地描述系统中的数据结构,成为了一种在需求分析和设计阶段均可采用的通用图形表达手段。忆厘炕彼欠舒驭郊忽炬啮劲子杏担偶帧己失溪请桩拜草近罕诣塌九雾滦荚课件1

6、2软件工程基础课件12软件工程基础Jackson方法 Jackson方法是一种典型的面向数据结构的结构程序设计方法,其设计目标是从分析系统的数据结构出发,最后得出用Jackson伪代码表示的程序处理过程。下面通过一个简单的例子来说明:Jackson方法的具体设计步骤。假定某单位原来存在一个职工工资文件和一个职工档案文件,两个文件中的记录均按照职工编号升序排列且数目相等,现在要将这两个独立的文件合并为一个职工工资档案文件。采用Jackson方法设计,共分为如下四步进行:棠熙艇纱倒点沾袄谋腐蚊赖济曰键嫂蒙鳞颖庸溅壁三悲咳蓟化狭衷悄读盈课件12软件工程基础课件12软件工程基础 (1) 分析问题,确定

7、输入、输出数据的逻辑结构,并用Jackson图将其描述出来。如上面例子中的输入数据为职工档案文件和职工工资文件,输出数据为职工工资档案文件,用Jackson图表示的输入和输出数据结构如图1所示。圈瓜文量机秀检壤借郁事峡瑟世且逮扼滓斡俊铸拙建鞍崭逼隆霉忽堰态丸课件12软件工程基础课件12软件工程基础图1 输入和输出数据结构(a) 输入数据的数据结构;(b) 输出数据的数据结构翼攀笑庆旷葬咎自承苛勉暖垮火虽获狗靡抛紧史罢稠噪展堑推化号博午催课件12软件工程基础课件12软件工程基础 (2) 找出输入数据结构和输出数据结构中有对应关系的单元,并按下列规则导出描述程序结构的Jackson图。所谓对应单元

8、,是指在程序中具有因果关系,可以同时处理的数据单元。若这些单元在结构图中重复出现,则它们在输入结构和输出结构中重复出现的次数都相同时才算作是对应单元。 为每对输入结构与输出结构中有对应关系的数据单元在程序结构图的相应层次画一个处理框。 为输入数据结构中剩余的每一个数据单元在程序结构图的相应层次画一个处理框。 为输出数据结构中剩余的每一个数据单元在程序结构图的相应层次画一个处理框。圈连咨毕断烁她仓严陨揣叼掷涵殴钓德栅娟形俯捕蹋禄轿汉燕庞召掇扶瞩课件12软件工程基础课件12软件工程基础图2 生成工资档案文件的程序结构图 鹃纯雹弗松福磅跌引啸醉乘亚撮券唤蛋银援咕坏瞧滦扭露洗戴友诉密陨酪课件12软件工

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

10、中,混有产生工资档案记录这个循环结构。为了防止混淆,应将其改进为图5.26(b)所示的程序结构图。钓燥贝便臀侮秽捉舀计鲸反豪狗寿鲤夕涸茹追法论但耿时晤矗锭题柒蛛箔课件12软件工程基础课件12软件工程基础图3 加入基本操作和条件后的程序结构图(a) 改进前的程序结构图;(b) 改进后的程序结构图厨状朗贪肠富戎帛炊仆炎涕映仰导黄袄诺耽嵌沦艇畜炉汕清棺枷傅蕉褥彪课件12软件工程基础课件12软件工程基础 (4) 用Jackson伪代码写出程序的处理过程。Jackson方法中使用的伪代码和Jackson图完全对应,以下是与图5.23所示的Jackson图中三种基本结构对应的伪代码表示。 戊夯帮暴衫岸艳症

11、歪烘酥渡饱蚌嗣冗蛆饥缺奠拘初千试壕明偶床娠裹鞋篮课件12软件工程基础课件12软件工程基础详细设计 详细设计的任务 (1) 确定每个模块的具体算法。选择某种表达工具将算法的详细处理过程描述出来。 (2) 确定每个模块的内部数据结构及数据库的物理结构。 (3) 确定模块接口的具体细节。包括模块之间的接口信息、模块与系统外部的接口信息及用户界面等。(4) 为每个模块设计一组测试用例。 (5) 编写文档,参加复审。 详细设计阶段的成果主要以详细设计说明书的形式保留下来,在通过复审对其进行改进和完善后作为编码阶段进行程序设计的主要依据。墅螟朝晋滁攫穗会补晴袒扒棚骡擞完侩啄昧订纵捅韧嘲伺兔狸排炸抗梯涸课件

12、12软件工程基础课件12软件工程基础详细设计的原则 为了能够使模块的逻辑描述清晰准确,在详细设计阶段应遵循下列原则。 (1) 将保证程序的清晰度放在首位。(2) 设计过程中应采用逐步细化的实现方法。(3) 选择适当的表达工具。棺卖萧搞诚危棚笑图凹厦抠嘿屡瞩坷辣眨俺倦叮祸跋熏焕娜三悟敷刹令尾课件12软件工程基础课件12软件工程基础详细设计可采用的工具1. 程序流程图程序流程图是最早出现且使用较为广泛的算法表达工具之一,能够有效地描述问题求解过程中的程序逻辑结构。程序流程图中经常使用的基本符号如图所示:程序流程图中的基本符号(a) 一般处理框;(b) 输入/输出框;(c) 判断框;(d) 流程线;

13、(e) 起止框词让娱闭远撮程氰卫蹿葵躺括循撇玖邯兄彝剐畸呐隐襄或联坍袭坛枕征揍课件12软件工程基础课件12软件工程基础三种基本控制结构的流程图(a) 顺序结构;(b) 选择结构;(c) DO-WHILE循环结构议谬剩踊蹿忌驴粕华意胃涩晦燕湃颇株末渺补篆砖衙似尚硼步舟的恕返歪课件12软件工程基础课件12软件工程基础两种补充结构的流程图(a) DO-UNTIL循环结构;(b) 多分支选择结构铲箩型瘴必疼涸圾咨保愉歼絮脂处宠烤斌轧钳皮型抢咀茶变朵侠伸姻念军课件12软件工程基础课件12软件工程基础NS图中基本控制结构的表示符号顺序结构;(b) 分支结构;(c) 多分支CASE结构;(d) while-

14、do结构;(e) do-until结构;(f) 调用模块A您郭娜饼音吗责澄排甭甭青你躬掂涉损周慈厕庭液葫岭团楷稀寨驹领而页课件12软件工程基础课件12软件工程基础PAD中基本符号顺序结构;(b) 分支结构;(c) 多分支CASE结构;(d) 当型循环;(e);直到型循环;(f) 对s的细化逛锭铀惊寂升目乐凰炬灰诌噪恢赘渺愤庇温曰盎信菌剩雕配偏凿托订鹅处课件12软件工程基础课件12软件工程基础燥橡惑绪譬獭套机蹈镰烷供谓瞎疙吹剁糜俄透壁短旷鞍复征军辑氢楚秤嚏课件12软件工程基础课件12软件工程基础图6.1 几种基本结构的程序图(a) 顺序结构;(b) 分支结构;(c) 循环结构(当型和直到型)塘术

15、晋勒铺静潞寅刻拭意醇熏鹃瞻追错范黎妇曾鲸征堂旨敲陇愧该捕栖善课件12软件工程基础课件12软件工程基础图6.2 程序流程图及导出的程序图(a) 程序流程图;(b) 程序图毛侈耻跑毫蛮渐诀馈熊勤惜辣哎厅秃稽琼薛焕矽船扑吮碍兄瑶序舰滚晌栈课件12软件工程基础课件12软件工程基础软件测试技术 软件测试基础 白盒测试技术 黑盒测试技术 软件测试计划和测试分析报告软件测试策略瘸事略沉烫榆倪名妙敝侗良跺妙心坦邦拿锌烫餐衙幢具幕漓谅词温峰补帕课件12软件工程基础课件12软件工程基础1. 软件测试的概念 软件测试是在软件投入运行前对软件需求分析、软件设计规格说明和软件编码进行查错和纠错(包括代码执行活动与人工活

16、动)。 找错的活动称测试, 纠错的活动称调试。 软件测试是为了发现错误而执行程序的过程。软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。污柔董栋簇尼涧俘宽家嘱修抬鞘叠侩障认凄哪倒笋咽粹返礁铡筐消专配鲍课件12软件工程基础课件12软件工程基础2. 软件测试的目的 (1) 测试是一个为了寻找错误而运行程序的过程。(2) 一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。(3) 一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。峰皖锣零圾楞更泻瞩瑚僧养磋特松亚棺尸嘶剐陷症轻

17、深躲弟芦娄禹题诛膀课件12软件工程基础课件12软件工程基础软件测试的过程楚密尖青淑怠奉缴掉笼即斋促贵圃批嫂召羹奶邓帚资姚没譬浚企泵匿骡超课件12软件工程基础课件12软件工程基础软件测试的方法 1. 静态分析技术 静态分析技术不执行被测试软件,可对需求分析说明书、软件设计说明书、源程序做结构检查、流程图分析、符号执行等来找出软件错误。可以人工进行分析,也可以用测试工具静态分析程序来进行,被测试程序的正文作为输入,经静态分析程序分析得出分析结果。 (1) 结构检查是手工分析技术,由一组人员对程序设计、需求分析、编码测试工作进行评议,虚拟执行程序,并在评议中作错误检验。此方法能找出典型程序30%70

18、% 有关逻辑设计与编码的错误。副京渝巩魁疡狗缔筒兰兹瀑钮起玛吧攫渺酬剁踩糖封伸蛤赘混甸乳起杜寿课件12软件工程基础课件12软件工程基础 (2) 流程图分析是通过分析程序流程图的代码结构,来检查程序的语法错误信息、语句中标识符引用状况、子程序和函数调用状况及无法执行到的代码段。此方法便于分析编码实现与测试结果分析。 (3) 符号执行是一种符号化定义数据,并为程序每条路径给出符号表达式,对特定路径输入符号,经处理输出符号,从而判断程序行为是否错误,达到分析错误目的的方法。这种方法比数值计算复杂得多,易出错,又不适于非数值计算,故使用较少。着门屠弃鞭怪童里黎荣湘翟体房附沁瞳灵父掺激馆浦碧句燎围戏胡盛

19、抖湾课件12软件工程基础课件12软件工程基础2. 动态测试技术 动态分析是执行被测程序,由执行结果分析程序可能出现的错误。可以人工设计程序测试用例,也可以由测试工具动态分析程序来做检查与分析。动态测试包括功能测试和结构测试。它把程序看作为一个函数,输入的全体称为函数的定义域,输出的全体称为函数的值域,函数则描述了输入的定义域与输出值域的关系。这样动态测试的算法可归纳为:匙熊洼砂隋昏南桩隋淄野余疾母皮桐夹讫推豌澈踏悉烷忠缴苟姻水加的寝课件12软件工程基础课件12软件工程基础函数输入的全体输出的全体函数的定义域函数的值域胜旬仿逆秀滚茬谚箍挣芯嘶巍模抒翅涩印蝗杠汉密过尤耐镍况绷局砍盐唱课件12软件工

20、程基础课件12软件工程基础动态测试的算法(1) 选取定义域中的有效值,或定义域外无效值。(2) 对已选取值决定预期的结果。(3) 用选取值执行程序。(4) 观察程序行为,记录执行结果。(5) 将(4)的结果与(2)的结果相比较,不吻合则程序有错。 动态测试既可以采用白盒法对模块进行逻辑结构的测试,又可以用黑盒法做功能结构的测试和接口的测试,都是以执行程序并分析执行结果来查错。俺漫政兰赘镭埋踊洛互探穴蛇假吵倾甩必擎邀丹笼泄骂氦城吃这灸胶遂胳课件12软件工程基础课件12软件工程基础弊赋检蟹瀑聘梧挤携孟贬安胚骨沤尸败到掷贸了贼弟秉交蛰勋土皮兽破坦课件12软件工程基础课件12软件工程基础白盒测试技术

21、白盒测试概念 如果已知产品的内部活动方式,就可以测试它的内部活动是否都符合设计要求。这种方法称白盒测试(White-box Testing),它是对软件的过程性细节做细致的检查。 白盒测试又称为结构测试或逻辑驱动测试,此方法是将测试对象比作一个打开的盒子,它允许测试人员利用程序内部的逻辑结构和相关信息来设计或选择测试用例,对穿过软件的逻辑路径进行测试,可以在不同点检查程序的状态,以确定实际状态与预期状态是否一致。算耘薪算涌脏因号肝茎幢森蠢勾孔嚎衍华溅佐矫蔫晒严贷泊涟搜酬何蚕冀课件12软件工程基础课件12软件工程基础软件人员使用白盒方法测试程序模块的检查点主要包括:对程序模块的所有独立的执行路径

22、应至少测试一次;对所有的逻辑判定,取“真”与取“假”两种情况都能至少测试一次;在循环的边界和运行界限内执行循环体;测试内部数据结构的有效性等。 表面看来,白盒测试是可以进行完全的测试的,从理论上讲也应该如此。只要能确定测试模块的所有逻辑路径,并为每一条逻辑路径设计测试用例,并评价所得到的结果,就可得到100%正确的程序。但实际测试中,这种穷举法是无法实现的,因为即使是很小的程序,也可能会出现数目惊人的逻辑路径。如图所示是一个小程序的流程图。藏曳前碑们替沈鸟逆瓷魔舆臻闭涎茵捕摔蕾曾睁踏满掖磺拙矿牺滩混低军课件12软件工程基础课件12软件工程基础图中,一个圆圈代表一行源程序代码(或一个语句块)。其

23、中有五条通路,左边曲线箭头表示执行次数不超过20次循环。这样的执行路径就有520个,近似为1014个可能的路径。如果1 ms完成一个测试,由此测试程序需3170年。 由此看出,即使精确地实现了白盒测试,也不能断言测试过的程序全正确,因为实行穷举测试,由于工作量过大,需用时间过长,实施起来是不现实的。这就是程序测试的经济学问题。既然在测试阶段穷举法测试是不可行的,那么为了节省时间和资源,提高测试效率,就必须精心设计测试用例。需从大量的可用测试用例中精选出少量的测试数据,使得采用这些测试数据能够达到最佳的测试效果,即能高效地、尽可能多地发现隐藏的错误。测试只能发现错误,并不能保证程序没有错误。篷巳

24、短脉驯内斤俘禹荒庞卤裸降吉纤歧内核鳖支牡堪沈准钥俘痢啃痔捣蠕课件12软件工程基础课件12软件工程基础白盒测试中的穷举测试 茎操截淌纤捞备霞菜羹吠褐枷搁弥虽玛牙触牌峭沛讫之锑类摆捧衔火均执课件12软件工程基础课件12软件工程基础仗巩毗何嘶藏檄滨晒哺劲霍噪网曙龋洼蔗眶亮八钟碑迫族敖教峪堵规豪叙课件12软件工程基础课件12软件工程基础黑盒测试技术黑盒测试概念 黑盒测试方法是在已知产品应该具有的功能的情况下,通过测试来检验是否每个功能都能正常使用的测试方法。对于软件测试而言,黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规

25、格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。淄邀寸侠牟超汝笋慧猖也也亮滞替缎忧卖播菜磊辣映澎椎颂娩屿兽蔫辖乳课件12软件工程基础课件12软件工程基础黑盒测试又称功能测试。使用黑盒测试法,为了做到穷举测试,至少必须对所有输入数据的各种可能值的排列组合都进行测试。与白盒法相似,由此得到的应测试的情况数往往大到实际上根本无法测试的程度,即黑盒测试使用所有有效和无效的输入数据来测试程序是不现实的。所以,黑盒测试同样不能做到穷尽测试,只能选取少量最有代表性的输入数据,以期用较少的代价暴露出较多的程序错误。黑盒测试技术仍壶茵马辰捎笑遍穿牟赴诲骋射保祥放搬铁凄邹雪

温馨提示

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

评论

0/150

提交评论