1、,软件工程Software Engineering 李玉蓉 08/09/28,教材购销系统,主要功能 根据学校的教学计划,向选课的学生及时供应所需教材审查学生购书单有效性,对有效书单发售教材对属于计划供应但暂时缺货的教材进行登记 根据缺书登记补充采购所缺的教材,通知学生补购将缺书登记表汇总为待购教材计划待购教材到货后,及时通知学生补购,“教材购销系统”数据流图,顶层DFD,二层DFD销售子系统,二层DFD采购子系统,“教材购销系统”的基本加工(1),“教材购销系统”数据流图中共有八个基本加工: 1.1 审查有效性 (1)查询“学生用书表”和“售书登记表”; (2)将不合要求的购书单(无效书单)
2、退回学生; (3)将“有效购书单”送下一步“开发票”处理。 1.2 开发票 (1)根据“有效购书单”和“补售书单”,查询“教材存量表”; (2)若教材存量中有“有效购书单”上的书,开出“发票”,送下一步 “登记并开领书单”处理;若教材存量中无“有效购书单”上的书 开出“暂缺书单”,送下一步“登记缺书”处理; 1.3 登记并开领书单 (1)根据“发票”开出“领书单”交给学生; (2)同时修改“售书登记表”。,“教材购销系统”的基本加工(1),1.4 登记缺书根据“暂缺书单”修改“缺书登记表”。 1.5 补售教材(1)根据“缺书登记表”开出“缺书记录”送“采购子系统”。(2)根据“进书通知书”开出
3、补售书单送下一步“开发票”处理。 2.1 按书号汇总缺书根据“缺书记录”查询“教材存量表”,按书号排序汇总缺书,生成“待购教材表”文件。 2.2 按出版社统计缺书根据“待购教材表”和“教材一览表”按出版社汇总生成“汇总缺书单”送书库保管员。 2.3 修改教材存量和待购量(1)输入“进书通知单” ;(2)根据“进书通知单”修改“教材存量表”和“待购教材表”;(3)同时将“进书通知单”送下一步“销售教材”处理。,1.数据项:是数据元素的最小单位,是不能再分的基本数据元素。如“姓名”、“学号”等。数据项是对数据静态特性的定义,内容包括:数据项的名称、别名、类型、简述、取值范围和长度等。 例如:“教材
4、存量表”中的数据项“库存量”,.数据字典中各项内容的定义,2.数据流 (1)数据流表示:利用特定的符号,列出组成数据流中的各数据项。 (2)在数据字典中,数据流除包括名称和组成它的数据项外,还 应指明它的来源、去向和流通量等。例如:发票。,.数据字典中各项内容的定义,3.数据存储 (1)数据存储是数据停留或保存的场所,在数据字典中,数据存储只描述数据的逻辑存储结构,而不涉及它的物理组织。 (2)数据存储的组成:编号、名称、简述、关键字和相关联的处理等。例如,.数据字典中各项内容的定义,4.外部项(实体):它是软件之外的实体(人、物或其它软件系统).例如:学生。,.数据字典中各项内容的定义,“教
5、材购销系统”IPO图,课堂习题,1、 假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得的的结果应该精确到小数点后4位。一旦实现并测试完之后,改产品将被抛弃。你打算选用哪种软件生命周期模型?请说明你作出选择的理由。,题目解答,1、对这个软件的需求很明确,实现开方功能的算法也很成熟,因此,既无须通过原型来分析需求也无须用原型来验证设计方案。此外,一旦实现并测试完之后,该产品将被抛弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。综上所述,为了开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以了。,课堂习题,2、假设你被任命为一家软件公司的项目负责人,你的
6、工作是管理该公司已被广泛应用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布。你打算采用哪种软件生命周期模型?为什么?,答:对这个项目的一个重要要求是,严格按照已对外公布了的日期完成产品开发工作,因此,选择生命周期模型时应该着重考虑哪种模型有助于加快产品开发的进度。使用增量模型开发软件时可以并行完成开发工作,因此能够加快开发进度。这个项目是开发该公司已被广泛使用的字处理软件的新版本,从上述事实至少可以得出3点结论:第一,旧版本相当于一个原型,通过收集用户对旧版本的反映,较容易确定对新版本的需求,没必要再专门建立一个原型系统来分析用户的需求;第二,该公司的软件工
7、程师对字处理软件很熟悉,有开发字处理软件的丰富经验,具有采用增量模型开发新版字处理软件所需要的技术水平;第三,该软件受到广大用户的喜爱,今后很可能还要开发更新的版本,因此,应该把该软件的体系结构设计成开放式的,以利于今后的改进和扩充。综上所述,采用增量模型来完成这个项目比较恰当。,P54页第5题:,电话号码=【校内电话号码|校外电话号码】 校内电话号码=非零数字+3位数字 校外电话号码=【本市号码|外地号码】 本市号码=数字零+8位数字 外地号码=数字零+3位数字+8位数字 非零数字=【1|2|3|4|5|6|7|8|9】 数字零=0 3位数字=3数字3 8位数字=非零数字+7位数字 7位数字
8、=7数字7 数字=0|1|2|3|4|5|6|7|8|9,P73页第3题E-R图:,计算机储蓄系统的实体联系图,P73页第3题数据流图:,P73页第5题数据流图:,病人,生理 信号,警告信息,护士,D2患者日记,定时的 生理信号,要求报告,病情报告,生理 信号,危急病 人信息,D1患者安全范围,日期 时间,时钟,生 理 信 号,录入统计计算某班学生成绩,画出数据流图(DFD)。学生成绩表数据结构如下:学号| 高数| 物理| 英语| 计算机| 法律常识| 总分| 平均分| 不及格门数| 升留补|需求功能如下:1. 录入全班学生各课的考分,生成成绩表;2. 检查各课成绩,修改错误,补充未录入成绩,
9、删除非法成绩 ;3. 计算总分,平均分;4 .统计不及格门数,然后再写入升级、补考、留级;5. 打印成绩通知单,交家长。,课堂练习:,课堂练习:,开始,Y,取下一部门,打开职工工资表,取下一职工,性别,年龄,职务?,处,科,员,+50,+45,+35,写入工资表,55,=55,女,N=年龄,-55,工资*1.05,N=0?,N-1,年龄,职务?,处,科,员,+50,+40,+30,写入工资表,65,=65,N=年龄,-65,工资*1.04,N=0?,N-1,下一职工?,下一部门?,结束,N,N,Y,附注:女退休后每年工资加 5%,男退休后每年工资加 4%,例 普调工资,男,例题解答,打开部门工
10、资表,性别,女,男,年龄,年龄,55,=55,65,=65,职务,N=年龄-65,处 科 员,+50 +45 +35,处 科 员,+50 +40 +30,工资=工资+增资,写入工资表,写入工资表,工资=工资+增资,职务,N=年龄-55,工资*1.05,工资*1.04,N=N-1,N=N-1,写入工资表,写入工资表,下一部门?,下一职工?,普调工资的 N-S图,例题解答,UNTIL 没有下一部门?,P1,P1,def,打开部门工资表,UNTIL 没有下一职工?,P2,def,P2,性别,女,年龄,男,=55,55,职务,处,科,员,+50,工资=工资+增资,+45,写入工资表,+35,N=年龄-
11、55,UNTIL N=0 ?,P3,写入工资表,P3,def,N=N-1,工资*1.05,普调工资的 PAD图,P174页4题(3),(1)语句覆盖的测试用例因为每个判定表达式为真为假时均有赋值语句,为了使每个语句都至少执行一次,总共需要两组测试数据,以便使得每个判定表达式取值为真或为假各一次。下面是实现语句覆盖的典型测试用例: 1、使3个判定表达式之值全为假输入:A=1,B=1,C=1预期的输出:X=1,Y=2,Z=32、使3个判定表达式之值全为真输入:A=20,B=40,C=60预期的输出:X=1,Y=2,Z=3,P174页4题(3),(2)路径测试的测试用例本程序共有8条可能的执行通路,
12、为做到路径覆盖总共需要8组测试数据。下面是实现路径覆盖的典型测试用例: 1、3个判定表达式之值全为假输入:A=1,B=1,C=1预期的输出:X=1,Y=2,Z=32、3个判定表达式之值依次为假、假、真输入:A=1,B=1,C=60预期的输出:X=1,Y=2,Z=30,P174页4题(3),3、3个判定表达式之值依次为假、真、假输入:A=1,B=40,C=1预期的输出:X=1,Y=20,Z=3 4、3个判定表达式之值依次为假、真、真输入:A=1,B=40,C=60预期的输出:X=1,Y=20,Z=30 5、3个判定表达式之值依次为真、假、假输入:A=20,B=1,C=1预期的输出:X=10,Y=
13、2,Z=3,P174页4题(3),6、3个判定表达式之值依次为真、假、真输入:A=20,B=1,C=60预期的输出:X=1,Y=20,Z=30 7、3个判定表达式之值依次为真、真、假输入:A=20,B=40,C=1预期的输出:X=10,Y=20,Z=3 8、3个判定表达式之值全为真输入:A=20,B=40,C=60预期的输出:X=10,Y=20,Z=30,按黑盒法分析合理与不合理等价类,设计测试用例。某涉外五星宾馆招聘服务员,条件为(1) 男,年龄 18-28,身高 1.65-1.85米,高中以上文化程度;(2) 女,年龄 18-25,身高 1.6-1.75米,高中以上文化程度;(3) 外语:
14、英语通过4级;(4) 身体健康,无疾病;(5) 五官端正,无残疾;,按黑盒法设计测试用例的解答:,测试用例设计结果:1. 合理测试用例1:男,21岁,1.75米,本科,过四级,健康。覆盖了合理等价类 1、7、13、15、17;2. 合理测试用例2: 女,20岁,1.7米,本科,过四级,健康。覆盖了合理等价类4、10、13、15、17;3. 不合理测试用例:男,15岁,1.75米,本科,过四级,健康。覆盖了 2;4. 不合理测试用例:男,30岁,1.75米,本科,过四级,健康。覆盖了 4;5.不合理测试用例:男,21岁,身高 1.5米,本科,过四级,健康,覆盖了9;6.不合理测试用例:男,21岁
15、,身高 2.2米,本科,过四级,健康,覆盖了10;7. 不合理测试用例:女,15岁,1.7米,本科,过四级,健康,覆盖了5;8. 不合理测试用例:女,29岁,1.7米,本科,过四级,健康,覆盖了6;9. 不合理测试用例: 女、身高1.5 覆盖了11,其它数据略;,10.不合理测试用例: 女、身高2.0 覆 盖了121,其它数据略; 11.不合理测试用例:男、 文化:小学,覆盖了14,其它数据略; 12.不合理测试用例:男、英语四级以下覆盖了16,其它数据略; 13.不合理测试用例:男、健康有肺病,覆盖了18,其它数据略; 14.不合理测试用例:女、文化:小学,覆盖了14,其它数据略; 15.不合理测试用例:女、英语四级以下覆盖了16,其它数据略; 16.不合理测试用例:女、健康有肺病,覆盖了18,其它数据略;,