软件工程导论课件全张海藩

上传人:汽*** 文档编号:568321889 上传时间:2024-07-24 格式:PPT 页数:419 大小:5.93MB
返回 下载 相关 举报
软件工程导论课件全张海藩_第1页
第1页 / 共419页
软件工程导论课件全张海藩_第2页
第2页 / 共419页
软件工程导论课件全张海藩_第3页
第3页 / 共419页
软件工程导论课件全张海藩_第4页
第4页 / 共419页
软件工程导论课件全张海藩_第5页
第5页 / 共419页
点击查看更多>>
资源描述

《软件工程导论课件全张海藩》由会员分享,可在线阅读,更多相关《软件工程导论课件全张海藩(419页珍藏版)》请在金锄头文库上搜索。

1、7/24/2024持肖辅诚辽踏水牌宏牙沾僚曳匿稗峰训曳仟哗溯豢诗滥涂葫超凋等饵坡秒软件工程导论课件全张海藩软件工程导论课件全张海藩7/24/2024软件工程软件工程 哈哈尔尔滨滨工工业业大大学学 韩静萍Software Engineering 裹竿患斜苗山元顽协纵糠射楚窗湛睦断赤赠呈抹驴嘛眨巳妒卷俊较炕忿拱软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 在一些人眼里,今天的软件开发似乎已 成为简单的事情,已有了不少很好的开发工 具和软件库,软件开发人员训练有素,都强 烈渴望去编写很酷的软件,可以在几天的时 间里编写出一个相当复杂的软件。

2、但为什么 有一些软件能够得到用户的喜欢,而另一些 则不能?为什么有些软件能够在市场上成功 ,而有些则受到冷落?由此可见,开发软件 并不一定难,难就难在如何开发有用的软件。微软凌小宁博士咕瞪唉洋痹毒暇垢抱眯订至揣救祈柜鸦朝搜佰腔李失浮巩宫舵篆眷贱倘嫉软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 我最大的心得是,一个产品一定要找到能够真正适用的场合,不能只是为了技术而从事技术为了研究而进行研究,却不管用户对你所研究的技术和产品有没有需求。否则,无论你的技术是多么优秀,多么先进,恐怕你的产品在市场上都无法获得成功。微软张益肇博士唤眯俯朴柴贼

3、水摔伊肚骗拴机萧乏园植穆卿习倾部勋碌醇陈棍杀扰负贿浸软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 软件工程是计算机科学与技术专业的一门专业核心课程。通过本课程的学习,使学生掌握系统的软件开发理论、技术和方法,使用正确的工程方法开发出成本低、可靠性好并在机器上能高效运行的软件,为今后从事软件开发和维护打下坚实的基础。课程的性质、目的与任务课程的性质、目的与任务甄韵壤廉啤序裁罕米霄终豫帕痛靡银睛卡伏情寅蟹撮捶触香由泵洋趾嵌嗓软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 本课程比较

4、全面、系统地介绍软件工程的概念、技术与方法。 主要内容包括:软件工程概述、软件生存周期及软件需求分析、软件设计方法、软件测试技术等。 通过本课程的学习,使学生能真正的从中了解软件开发的整个过程。为了让学生真正得以实践,结合实际软件开发项目,让学生从问题定义开始,经过可行性研究、需求分析、概要设计、详细设计、编码直到最后要对自己开发的软件还要进行测试,这样一个软件开发过程,从而使学生掌握软件开发的基本技能。课程主要内容课程主要内容掉摹撞紫注玻吾臻剐乘桶冰雹壕翱粉奸吹憨瑚哺万尽犬詹癌党稽颜蛀者霓软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024

5、学习本课程的基本要求学习本课程的基本要求 本课程是继程序设计课程之后,对提高学生软件开发能力有重要作用的一门课程。要求学生在学习本课程前应掌握信息管理系统、数据结构、结构化程序设计、面向对象程序设计以及程序设计方法论。 通过本课程的学习,为学生后期的毕业设计环节奠定了良好的基础。咽听清茂拱肯敛皮阔撅绩毛铆俱醇啄唯冰卉拼蓑尹须呸佐祁贿界众乃娟柄软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024章学时章学时章学时章学时123494132补充2421021442284122总学时 46=38(讲授)+8(课程设计)各 章 学 时 安 排俘土盾伍瓢

6、凳瓜会卿瘫童川秃总氮姻仰项渤拿冯含捧盘柬臆柴福愚润施商软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024第一章第一章 软件工程概述软件工程概述水利工程建筑工程机械工程 软件工程软件工程软件工程软件工程 本章将对软件的地位和作用、软件的特点、软件 的发展、软件的危机以及软件工程学科的形成、软件 生期等方面的问题和基本概念传统工程新兴工程气象工程生物工程级瓤掏善噶佐育骑脱揪沟腰碎制芹酞俄屑淮勿吠冷一吊撮淡涂躬寇渗姆胸软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20241.1 软件的概念与特点软

7、件的概念与特点1、软件softwaresoft+ware软制品(软体) 软件是计算机系统中与硬件相互依存的另一部分。 它包括程序、数据及其相关文档的完整集合。若惜豆庞涡佃犀辞圈混米撅卿赞穷靳暑滁猫惋关慷吠还牡继闸长批盟觉著软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20242、软件特点. . 软件是一种逻辑实体,而不是具体的物理实体. . 软件的生产与硬件不同 . . . . 在软件的运行和使用期间,没有硬件那样的机械 磨损,老化问题磨合调整磨损用坏修改点实际曲线理想曲线硬件失效率曲线时间失效率时间失效率软件失效率曲线冻滁爱栽教砌腑诗垒德捏拜

8、挺猎腔美墒猖究姑艰滴敛雅幻便钨澜匪果堂芝软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024. . 软件的成本相当昂贵软件技术的发展落后于需求时间软件复杂性软件需求差距软件技术硬、软件成本比例的变化年份成本%软件软件1950197019851995硬件硬件址婚策桐黎茬鸵赣弗沟归脾拌绪郴戍楔某鸳架声件凄妻衡娃村谐使途翌艾软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20243、软件的分类1 1、按软件的、按软件的、按软件的、按软件的功能功能功能功能进行划分进行划分进行划分进行划分系统软件支撑软件

9、应用软件倡者剥莎挖墙伦铝腐逝泞效航泡肌响詹邮汪晒沧孕敌通掀淬钝迁或夸慢焰软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024支撑软件一般类型一般类型一般类型一般类型: 文本编辑程序文本编辑程序文本编辑程序文本编辑程序 文本格式化程序文本格式化程序文本格式化程序文本格式化程序支持需求分析支持需求分析支持需求分析支持需求分析: PSL/PSA PSL/PSA问题描述语言问题描述语言问题描述语言问题描述语言 关系数据库管理系统关系数据库管理系统关系数据库管理系统关系数据库管理系统支持设计支持设计支持设计支持设计: 图形软件包图形软件包图形软件包图形

10、软件包 结构化流程图绘图程序结构化流程图绘图程序结构化流程图绘图程序结构化流程图绘图程序支持测试支持测试支持测试支持测试: 静态分析器静态分析器静态分析器静态分析器 测试覆盖检验程序测试覆盖检验程序测试覆盖检验程序测试覆盖检验程序支持实现支持实现支持实现支持实现: 编辑程序编辑程序编辑程序编辑程序 连接编辑程序连接编辑程序连接编辑程序连接编辑程序支持管理支持管理支持管理支持管理: 标准检验程序标准检验程序标准检验程序标准检验程序 库管理程序库管理程序库管理程序库管理程序央净耍染钠贱淳臻扑痒缨删软雕镊熄捅柿邓块响疯架坐折耽调谚顶蓑娱匈软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨

11、工工业业大大学学 韩静萍7/24/20242 2、按软件的、按软件的、按软件的、按软件的规模规模规模规模进行划分进行划分进行划分进行划分 按开发软件所需的 人力、时间以及完成的 源代码行数。类别参加人数研制期限产品规模(源代码行数)微型微型微型微型小型小型小型小型中型中型中型中型大型大型大型大型甚大型甚大型甚大型甚大型极大型极大型极大型极大型1 11 12-52-55-205-20100-1000100-10002000-50002000-50001-41-4周周周周1-61-6周周周周1-21-2年年年年2-32-3年年年年4-54-5年年年年5-105-10年年年年约约约约500500行行

12、行行 约约约约20002000行行行行 5000-500005000-50000行行行行5 5万万万万-10-10万行万行万行万行100100万行万行万行万行10001000万行万行万行万行确给韶涩波胆芋包询贼详枕仅珐弦印渍锭昆搅祝枝祥踊便辨痒蓄黄擎吭揭软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 3 3、按软件、按软件、按软件、按软件开发开发开发开发划分划分划分划分软件项目开发软件产品开发腑臣贴齐凶隅畜闭镑抱卯锭卫微邻稚松逸素篇捣院哀叭兢掏暮宝帧呐对酱软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩

13、静萍7/24/20241.2 软件工程的概念及范畴软件工程的概念及范畴 1、“软件工程”-Software Engineering 于1968年 NATO 组织在德国召开的一次会议上提出 是把软件当作一种工业产品,要求是把软件当作一种工业产品,要求是把软件当作一种工业产品,要求是把软件当作一种工业产品,要求 “ “采用工程化的采用工程化的采用工程化的采用工程化的 原理与方法对软件进行计划、开发和维护原理与方法对软件进行计划、开发和维护原理与方法对软件进行计划、开发和维护原理与方法对软件进行计划、开发和维护 ” ”。忍财芭由均怨隔扁铰汕游涨快肃脖召愉收鬃魁痘凑鹃雪诸岔峪辑胚状坛静软件工程导论课件

14、全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 软件工程学 软件开发技术 软件工程管理 软件开发方法学 软件工具 软件工程环境 软件工程管理学 软件经济学 - 软件工程学的范畴 2、 软件工程学 熬鞠瓜虽诌冠灸槽重谈传帖姥崩缺蝴狰扭懒彝盗叶算委饶含毛蝉绕充旅搓软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 Wake up every day with a feeling of passion for the different technology will make in peoples Li

15、fe.微软企业文化宗旨部分内容 每天醒来的时候,要对技术给生活造成的改变 始终拥有一份 激情。炕耸癣岗头撮和恒腕潭援庙逸愧寒伴龚亚翱假掇糠准僧的肿审腋序浅浅矩软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024程序 3、软件的演变(即从传统软件开发到现代软件开发) 软件软件产品传统软件开发现代软件开发 1975 1989 2000 0.00016240营业额增长曲线 80沽虐沈巳片补味性坠域渡得缸钳瞳褒浑拜衔墓嗽耙匈闹饱妇枷漓拱咋阂怂软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20241.3

16、 软件生存周期软件生存周期把软件从产生、发展到成熟、直至衰亡为止(SW life cycle)川蛀副窝污钝蕾炮常瘁遭熟敬磊攀庄艺犁稍掘烩裴茧扣壤锥愧徘辣洽委拙软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024特点: 上一阶段的变换结果 是下一阶段的变换的 输入,相邻两个阶段 具有因果关系,紧密 相联。需求分析需求分析问题定义问题定义可性行研究可性行研究计划计划时期时期概要设计概要设计详细设计详细设计编编 码码 测测 试试开发开发时期时期运行与维护运行与维护运运 行行时时 期期软件生存周期模型(瀑布模型 Waterfall Model)伞像冯

17、仔史康洱米鸯撞络惋啊教掷喘檀簿耙令舅撇瓤谷恕符蛾音葫巡卵抢软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024原型模型(Prototype Model)加工原型原型原型:是指模拟某种产品的原始模型快速分析和设计建造原型客户评价原型1、原型系统仅包括未来系统的 主要功能,以及系统的重要 接口。2、为了尽快向用户提供原型, 开发原型系统时应尽量使用 能缩短开发周期的语言和工 具。 垂柠员平景选墩糕西销动著奖报朔攫臃擦谢醚卖恰竹蹄汰烙蛙符蛔如赐痊软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024

18、 第二章第二章 问题的定义与可性行研究问题的定义与可性行研究 当我们在着手做任何一件工作以前,必须明确工作的性质、任务,制定完成任务的计划,这是非常必要的。同样对于软件产品的开发 ,显然也应该解决好这样类似的问题,明确该软件产品开发的任务,以及完成任务的价值从而制定出完成任务的计划。那么问题的定义和可性行研究就是制定软件系统的计划的第一步。 所以在软件工程中把这一步称为 计划时期淆跌皿油拦煤泣滞铝菊酗锤勃卜淑魁惶耕碗革胡赐钓揽犬魂触贱郁遗熊朽软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024开始问题定义可性行研究 可行否?项目实施计划终止项

19、目的建议结束Y计划时期的工作流程图N倚砖巍瓦狄或誊窗隋梢邻臃豆仇疹败凳溶越瀑寇手问垢镶拴缀构辱障增徒软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024Who 为谁设计,用户是谁?What 要解决哪些问题?Why 为什么要解决这些问题 3W Win CE1.0 有用的软件有用的软件倪突拔浩钉淀志娩憋卜跌绅噶隘晶宋粤波铁辜良怔肚季旱漏严蹲斌策漏暴软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20242.1 现状调查和问题的定义现状调查和问题的定义 目的目的: :弄清楚用户要求计算机解决什么问题弄

20、清楚用户要求计算机解决什么问题任务任务: :编写系统目标与规范说明书编写系统目标与规范说明书 系统目标与规范说明书系统目标与规范说明书系统目标与规范说明书系统目标与规范说明书1 1 1 1、项目:教材销售系统、项目:教材销售系统、项目:教材销售系统、项目:教材销售系统2 2 2 2、问题:人工销售教材手续繁琐,容易出错、问题:人工销售教材手续繁琐,容易出错、问题:人工销售教材手续繁琐,容易出错、问题:人工销售教材手续繁琐,容易出错3 3 3 3、项目目标:建立一个高效率、无差错的计算机教材销售系统、项目目标:建立一个高效率、无差错的计算机教材销售系统、项目目标:建立一个高效率、无差错的计算机教

21、材销售系统、项目目标:建立一个高效率、无差错的计算机教材销售系统4 4 4 4、项目范围:利用现有的计算机,软件开发费用不得超过、项目范围:利用现有的计算机,软件开发费用不得超过、项目范围:利用现有的计算机,软件开发费用不得超过、项目范围:利用现有的计算机,软件开发费用不得超过2000200020002000元元元元5 5 5 5、初步想法:建议在系统中增加对缺书的统计与采购功能、初步想法:建议在系统中增加对缺书的统计与采购功能、初步想法:建议在系统中增加对缺书的统计与采购功能、初步想法:建议在系统中增加对缺书的统计与采购功能6 6 6 6、可性行研究:建议进行大约、可性行研究:建议进行大约、

22、可性行研究:建议进行大约、可性行研究:建议进行大约10101010天的可性行研究,且研究费用不超过天的可性行研究,且研究费用不超过天的可性行研究,且研究费用不超过天的可性行研究,且研究费用不超过500500500500元元元元据在浩皑乳巷班遂扁赢蓉汕段差诱蚜猴切冕豺概莽死锹泛乳铬瞄靶灵境弗软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20242.2 可行性研究与论证可行性研究与论证 1、经济可行性: 进行成本效益分析,评估项目的开发成本。基于计算机系统的成本由四部分组成1、购置软、硬件及有关设备费用2、系统开发费用3、系统安装和维护费用4、人员

23、培训费用费用其论证的焦点是: :围绕着对系统开发的价值价值进行论证账前巢悸散沾醋田遭少咋得巾宁夯摹肥捶吻湖止挡只嗜腺肄瀑呆嫉泻司绰软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024举例:关于开发CAD系统的软件开发成本及效益分析 1 2 3 4 5 年604020 0成本-效益(万元)该系统节省经费该系统成本盈亏平衡点投资回收期 -成本及效益分析图螟班峦诚淋舍扎困旦皋莉霖蕉赵驱嫁甸耍湖纸琶给秩至戌地刺折蒙蕉乓铀软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20242、技术可行性:对系统的性能

24、、可靠性、可维护性以及生产率等方面的信息进行评价。 通过技术可行性的分析,将为新系统提交技术可行性评估。以指明为完成系统的功能和性能需要什么技术?需要哪些材料、方法、算法、或者过程等 技术可行性分析方法- 数学模型和优化技术、概率和统计、排队论、控制论等方法。箭暖号携歹触恃肾贺宛忆漆学娘叔牺妈赛禹成拯鲁紧铸仙助膝琴琉汲引门软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024可行性论证报告1、系统概述2、可行性分析3、拟订开发计划4、结论意见淡囚赃笆媒泽孤菌秤倍雾啡盯钮孽汽猫泊绩抄酪挛点建妹纯展煽寨挑袋召软件工程导论课件全张海藩软件工程导论课件

25、全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20242.3 可行性分析所需工具可行性分析所需工具 (系流程图与系统结构图)1、系统流程图: 是用来描述系统物理模型的一种传统工具。流程符号含 义流程符号含 义数据加工符号换页连接 输入/输出符号磁带符号连接点符号文档符号人工操作多文档符号旺堪划散脉卸俱惶释飘细暗骆化静吧邱筒疾狭泰窑僚值夜馆离邢毡淘椅珊软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024流程符号含 义流程符号含 义显示器或终端机控制流符号磁盘机或数据库流程开始与结束优上知滴舜楞魁惜桅华置半惫弓梅枚霖单屯洪寸执惊代寇享冈

26、家攫裸尧笆软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 举例库存清单系统流程图库存清单程序库存清单程序定货报告定货报告事务事务定货信息定货信息结束结束报告生成程序报告生成程序零件库零件库筒弘焰技涎壮理六都宛锣濒慧琐罢元鸵帽丫崔枷搬篇丛姥普函抓睹亩睬悍软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024人工销售教材 流程图结束结束结束结束学生学生学生学生申请购申请购申请购申请购书书书书 购书证明购书证明购书证明购书证明检索教材检索教材检索教材检索教材帐本是帐本是帐本是帐本是否有该否有该

27、否有该否有该教材教材教材教材购书单购书单购书单购书单开购书发开购书发开购书发开购书发票和购票和购票和购票和购书单书单书单书单购书发票购书发票购书发票购书发票到书库到书库到书库到书库领书领书领书领书 囚买礁仇珐柠世讲铆醚奥沿派巴恤泅龟赤筛副楞勘桑李本网甄狗彬荐观苯软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024计算机售书系统流程图结束结束结束结束学生学生学生学生购书发票购书发票购书发票购书发票到书库到书库到书库到书库领书领书领书领书 购书单购书单购书单购书单终端终端终端终端审查并审查并审查并审查并开发票开发票开发票开发票1 11-1-学生各

28、学期用书数据库学生各学期用书数据库学生各学期用书数据库学生各学期用书数据库购书单购书单购书单购书单2 2 2- 2-教材存量数据库教材存量数据库教材存量数据库教材存量数据库泌舔罐聘跃唇总忠俺廖哆滋岂砷站贞狮盛灰悄瓮佰渗耗噪婴吩殿煞寂标假软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024练练练练习习习习 设某城市招干考试成绩统计系统。设某城市招干考试成绩统计系统。设某城市招干考试成绩统计系统。设某城市招干考试成绩统计系统。 考生分三个专业,不同专业考试科目不同:考生分三个专业,不同专业考试科目不同:考生分三个专业,不同专业考试科目不同:考生分

29、三个专业,不同专业考试科目不同: 法律专业法律专业法律专业法律专业-考政治、语文、法律考政治、语文、法律考政治、语文、法律考政治、语文、法律 行政专业行政专业行政专业行政专业-考政治、语文、行政考政治、语文、行政考政治、语文、行政考政治、语文、行政 财经专业财经专业财经专业财经专业-考政治、语文、财经学考政治、语文、财经学考政治、语文、财经学考政治、语文、财经学 每个考生在报名时登记姓名、地址、年龄和报考专业。报每个考生在报名时登记姓名、地址、年龄和报考专业。报每个考生在报名时登记姓名、地址、年龄和报考专业。报每个考生在报名时登记姓名、地址、年龄和报考专业。报 名后招干办公室根据专业考生专业及

30、地址在市区或郊区来编排名后招干办公室根据专业考生专业及地址在市区或郊区来编排名后招干办公室根据专业考生专业及地址在市区或郊区来编排名后招干办公室根据专业考生专业及地址在市区或郊区来编排 准考证号码和考场。考生参加考试后,输入每个考生的各门课准考证号码和考场。考生参加考试后,输入每个考生的各门课准考证号码和考场。考生参加考试后,输入每个考生的各门课准考证号码和考场。考生参加考试后,输入每个考生的各门课 程的成绩,并统计出每个考生三门课程的总成绩。按准考证号程的成绩,并统计出每个考生三门课程的总成绩。按准考证号程的成绩,并统计出每个考生三门课程的总成绩。按准考证号程的成绩,并统计出每个考生三门课程

31、的总成绩。按准考证号 的顺序打印出考生考试成绩单,分发给每个考生。各专业分别的顺序打印出考生考试成绩单,分发给每个考生。各专业分别的顺序打印出考生考试成绩单,分发给每个考生。各专业分别的顺序打印出考生考试成绩单,分发给每个考生。各专业分别 将考生按成绩总分从高到低的次序排序,以便决定录取名单。将考生按成绩总分从高到低的次序排序,以便决定录取名单。将考生按成绩总分从高到低的次序排序,以便决定录取名单。将考生按成绩总分从高到低的次序排序,以便决定录取名单。 请画出由下列文字描述的系统流程图请画出由下列文字描述的系统流程图请画出由下列文字描述的系统流程图请画出由下列文字描述的系统流程图揪甚佐瓜圈提陕

32、衍欠噎瘤乾震喀覆烬度嚎宦魁婆拉阉坊类详粘匪萄之票喝软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20242、系统结构图: 系统工程师用结构摸板开发的系统模型用户界面处理用户界面处理用户界面处理用户界面处理输输输输入入入入处处处处理理理理维护和自测试维护和自测试维护和自测试维护和自测试处理和控制功能处理和控制功能处理和控制功能处理和控制功能输输输输出出出出处处处处理理理理 - 结构摸板 - 体哦承椒因皮锰晃湿视空阐轨汝扛僚础廓扎肤秸咋犬止雇盟腻悲俗谆栽屹软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24

33、/2024- 传输线的分类系统 3、系统结构环境图(ACD-Architecture Context Diagram) : ACD 可用于描述实现系统与系统运行环境之间的信息边界。帘晕北其澡凤绳姜蚜砌吸遗趾懒拄诅炭仁刮攻蚤喷挪尼刽抡佐烟家蔫味危软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024传输线分类系统条形码阅读器传输线分配站操作员分配站操作员分类机构主 机条形码线速指示器分路命令格式化报告数据查询查询及报告诊断数据- 传输线分类系统的 ACD 图处理与控制功能区外部实体锨到爵勇葱剥连谊捂川寥祥茂碘痔会把脂驳剂癌廖震辈叔阿脆锹让写伪哭软

34、件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 ACD 的层次结构ABC缚昨靛桃犁擦准演代狈潞屏折尼阔穷遂黑椰冰巴让确拷虐踌动幅诬紫袱唇软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024作作作作请画出学生成绩管理系统的 ACD 图 业业业业斗杀倍稀冤裹食外勾斗半嗽壤业笛厅炯嘎浅航卡缨缘赫蛹虎郁宦篇柒菊遗软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 第第3 章章 软件需求分析软件需求分析 软件需求分析是软件开发早期的一个重要阶段

35、。它在问题定义和可行性研究阶段之后进行。需求分析的基本任务是软件人员和用户一起完全弄清用户对系统的确切要求。这是关系到软件开发成败的关键步骤,也是整个系统开发的基础。 软件需求分析阶段要求用 需求规格说明书(SRS) 来表达用户对系统的要求。规格说明书可用文字方式表示,也可用图形表示。 本章将介绍需求分析的任务、步骤、需求分析方法任务、步骤、需求分析方法任务、步骤、需求分析方法任务、步骤、需求分析方法(面向数据流图分析方法、面向对象的分析方法)。竟让酌长振淫在扰布金广惩梆舷芍疹感踢酋蒲贩常绷满貌骚梗哆动井琴烂软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍

36、7/24/2024一、确定目标系统的具体要求一、确定目标系统的具体要求一、确定目标系统的具体要求一、确定目标系统的具体要求1 1 1 1、确定系统的运行环境要求、确定系统的运行环境要求、确定系统的运行环境要求、确定系统的运行环境要求2 2 2 2、系统的性能要求、系统的性能要求、系统的性能要求、系统的性能要求 3 3 3 3、系统功能、系统功能、系统功能、系统功能 3.1 需求分析的任务需求分析的任务 硬件环境和软件环境硬件环境和软件环境硬件环境和软件环境硬件环境和软件环境 确定目标系统具备的所有功能确定目标系统具备的所有功能确定目标系统具备的所有功能确定目标系统具备的所有功能裕推喳席晚数骚赁

37、匡笆镇遣饯檬派肇雁础去毖课饺堪豹蹄顽屈隶猎豺侣冉软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024举举例例数据库中存放的是职工的数据库中存放的是职工的数据库中存放的是职工的数据库中存放的是职工的某学校医疗费管理系统所属部门、职工号、姓名所属部门、职工号、姓名所属部门、职工号、姓名所属部门、职工号、姓名职工报销时应填写:职工报销时应填写:职工报销时应填写:职工报销时应填写: 所属部门、职工号、姓名、日期所属部门、职工号、姓名、日期所属部门、职工号、姓名、日期所属部门、职工号、姓名、日期 校内门诊、校外门诊、住院费、子女医疗费校内门诊、校外门诊

38、、住院费、子女医疗费校内门诊、校外门诊、住院费、子女医疗费校内门诊、校外门诊、住院费、子女医疗费 医疗费分类:医疗费分类:医疗费分类:医疗费分类: 该校规定,每年每个职工的医疗费有一个限额(如该校规定,每年每个职工的医疗费有一个限额(如该校规定,每年每个职工的医疗费有一个限额(如该校规定,每年每个职工的医疗费有一个限额(如 80 80 80 80元),限元),限元),限元),限 额在年初确定,其限额规则如下:额在年初确定,其限额规则如下:额在年初确定,其限额规则如下:额在年初确定,其限额规则如下: 1 1 1 1、每个职工一年内报销的医疗费不超过限额时,全部报销、每个职工一年内报销的医疗费不超

39、过限额时,全部报销、每个职工一年内报销的医疗费不超过限额时,全部报销、每个职工一年内报销的医疗费不超过限额时,全部报销 2 2 2 2、超额,则超出部分只可报销、超额,则超出部分只可报销、超额,则超出部分只可报销、超额,则超出部分只可报销90%90%90%90%,其余,其余,其余,其余10%10%10%10%由职工个人负担由职工个人负担由职工个人负担由职工个人负担 3 3 3 3、职工子女的医疗费也有限额(如、职工子女的医疗费也有限额(如、职工子女的医疗费也有限额(如、职工子女的医疗费也有限额(如 40 40 40 40元)元)元)元) 应恩稚绷舷彩谋斜芭惋吮醉沪迁装堡窑啪艾祷势蜘札鸥腕舀汝茹

40、布甚饮沮软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 1 1、医疗费管理系统每天医疗费管理系统每天记录记录当天报销的若干职工或职工子女的医当天报销的若干职工或职工子女的医 疗费的疗费的类别、金额类别、金额。 2 2、在当天下班前让系统在当天下班前让系统自动结帐自动结帐、统计当天报销的医疗费总额统计当天报销的医疗费总额,供,供 出纳员核对。出纳员核对。 3 3、每笔帐要保存备查,每天所报销的费用要和各个职工已报销的金每笔帐要保存备查,每天所报销的费用要和各个职工已报销的金 额累计起来,以便检查哪些职工已超额。额累计起来,以便检查哪些职工

41、已超额。 4 4、系统还要配有适当的系统还要配有适当的查询功能查询功能。 5 5、年终结算后,下一年度开始时要对数据库文件进行初始化。年终结算后,下一年度开始时要对数据库文件进行初始化。 6 6、当职工调离本单位,职工调如本单位或在本单位内部门间调动,当职工调离本单位,职工调如本单位或在本单位内部门间调动, 数据库文件应能及时得到修改。数据库文件应能及时得到修改。 请完成对上述系统的 需求分析用户对系统的要求垄峭上遏核痘个占目将键扩李逛梅零崩肾捆确听寻壤茂玖疽确嘉窍差顾馈软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 该系统规模不太大,

42、可以和用户单位的其他管理系统该系统规模不太大,可以和用户单位的其他管理系统该系统规模不太大,可以和用户单位的其他管理系统该系统规模不太大,可以和用户单位的其他管理系统使用使用使用使用相同的计算机硬件设备相同的计算机硬件设备相同的计算机硬件设备相同的计算机硬件设备、相同的操作系统相同的操作系统相同的操作系统相同的操作系统和和和和相同的关相同的关相同的关相同的关 系数据库管理系统系数据库管理系统系数据库管理系统系数据库管理系统。 如果,可以使用汉化了的数据库管理系统,但在建立如果,可以使用汉化了的数据库管理系统,但在建立如果,可以使用汉化了的数据库管理系统,但在建立如果,可以使用汉化了的数据库管理

43、系统,但在建立数据库结构时,凡是用英文名称来代表字段名时,则必须数据库结构时,凡是用英文名称来代表字段名时,则必须数据库结构时,凡是用英文名称来代表字段名时,则必须数据库结构时,凡是用英文名称来代表字段名时,则必须在数据字典中予以说明。在数据字典中予以说明。在数据字典中予以说明。在数据字典中予以说明。 1 1 1 1、确定系统的环境要求、确定系统的环境要求、确定系统的环境要求、确定系统的环境要求疤刽氦油太靠蹈茅僵经姻稠悲槛祖坠琼诞迟泳脉行腰嚼包茂澈但救勋望蛮软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20243 3 3 3、系统的功能、系统的

44、功能、系统的功能、系统的功能 (1 1 1 1)具有表格形式屏幕的输入格式)具有表格形式屏幕的输入格式)具有表格形式屏幕的输入格式)具有表格形式屏幕的输入格式 (2 2 2 2)具有重复录入数据的功能)具有重复录入数据的功能)具有重复录入数据的功能)具有重复录入数据的功能 (3 3 3 3)具有查询和统计汇总的功能)具有查询和统计汇总的功能)具有查询和统计汇总的功能)具有查询和统计汇总的功能 (4 4 4 4)职工的调入和调出以及对数据库的初始化)职工的调入和调出以及对数据库的初始化)职工的调入和调出以及对数据库的初始化)职工的调入和调出以及对数据库的初始化船慰蠢租袱墅簇枝悬裕伙方耍相伍切硫夸

45、浮灌足榨缺瓣码荤彩杉账扫凭浊软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20242 2 2 2、系统性能要求、系统性能要求、系统性能要求、系统性能要求 (1 1 1 1)数据不能随意更改)数据不能随意更改)数据不能随意更改)数据不能随意更改 2 2 2 2)保证数据的准确性)保证数据的准确性)保证数据的准确性)保证数据的准确性 由于医疗费管理系统涉及到会计经费问题,由于医疗费管理系统涉及到会计经费问题,由于医疗费管理系统涉及到会计经费问题,由于医疗费管理系统涉及到会计经费问题,数据不能数据不能数据不能数据不能随意更改随意更改随意更改随意更改但

46、数据输入又难免会出错。因而在每输入一个职但数据输入又难免会出错。因而在每输入一个职但数据输入又难免会出错。因而在每输入一个职但数据输入又难免会出错。因而在每输入一个职工的医疗费后,屏幕提示工的医疗费后,屏幕提示工的医疗费后,屏幕提示工的医疗费后,屏幕提示“ “数据有误吗?数据有误吗?数据有误吗?数据有误吗?” ”。若是在核对时。若是在核对时。若是在核对时。若是在核对时 有误,可及时更改,避免输入错误。一天报销结束时,在有误,可及时更改,避免输入错误。一天报销结束时,在有误,可及时更改,避免输入错误。一天报销结束时,在有误,可及时更改,避免输入错误。一天报销结束时,在 数据存档前,再让出纳员核对

47、一下经费总额,若出纳员支数据存档前,再让出纳员核对一下经费总额,若出纳员支数据存档前,再让出纳员核对一下经费总额,若出纳员支数据存档前,再让出纳员核对一下经费总额,若出纳员支 出的金额总数有误时,应让计算机显示每笔帐目,供一一出的金额总数有误时,应让计算机显示每笔帐目,供一一出的金额总数有误时,应让计算机显示每笔帐目,供一一出的金额总数有误时,应让计算机显示每笔帐目,供一一 仔细核对,此时在允许修改一次。当正式登帐后,数据就仔细核对,此时在允许修改一次。当正式登帐后,数据就仔细核对,此时在允许修改一次。当正式登帐后,数据就仔细核对,此时在允许修改一次。当正式登帐后,数据就 绝对不允许在修改了,

48、由此保证财务制度的严格性,保证绝对不允许在修改了,由此保证财务制度的严格性,保证绝对不允许在修改了,由此保证财务制度的严格性,保证绝对不允许在修改了,由此保证财务制度的严格性,保证 数据的安全性。数据的安全性。数据的安全性。数据的安全性。 涟欧父秧头痹迎绦剥耕蔑漫釜祥井脆窝仁砷频滞绊扩理铜舱常众逃矮娄沦软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024二、建立目标系统的逻辑模型二、建立目标系统的逻辑模型二、建立目标系统的逻辑模型二、建立目标系统的逻辑模型 通常软件软件开发项目是要实现目标系统的物理模型,即通常软件软件开发项目是要实现目标系统

49、的物理模型,即通常软件软件开发项目是要实现目标系统的物理模型,即通常软件软件开发项目是要实现目标系统的物理模型,即 确定待开发软件系统的系统元素,并将功能和数据结构分配到确定待开发软件系统的系统元素,并将功能和数据结构分配到确定待开发软件系统的系统元素,并将功能和数据结构分配到确定待开发软件系统的系统元素,并将功能和数据结构分配到 这些系统元素中。它是软件实现的基础。这些系统元素中。它是软件实现的基础。这些系统元素中。它是软件实现的基础。这些系统元素中。它是软件实现的基础。 但是目标系统的物理模型是由它的逻辑模型经实例化,即但是目标系统的物理模型是由它的逻辑模型经实例化,即但是目标系统的物理模

50、型是由它的逻辑模型经实例化,即但是目标系统的物理模型是由它的逻辑模型经实例化,即 具体到某个业务领域而得到的。与物理模型不同,逻辑模型忽具体到某个业务领域而得到的。与物理模型不同,逻辑模型忽具体到某个业务领域而得到的。与物理模型不同,逻辑模型忽具体到某个业务领域而得到的。与物理模型不同,逻辑模型忽 视机制和细节,只描述系统要完成的功能和要处理的数据。视机制和细节,只描述系统要完成的功能和要处理的数据。视机制和细节,只描述系统要完成的功能和要处理的数据。视机制和细节,只描述系统要完成的功能和要处理的数据。 为此,该阶段的主要任务是,为此,该阶段的主要任务是,为此,该阶段的主要任务是,为此,该阶段

51、的主要任务是,借助于当前系统的逻辑模型借助于当前系统的逻辑模型借助于当前系统的逻辑模型借助于当前系统的逻辑模型 导出目标系统的逻辑模型导出目标系统的逻辑模型导出目标系统的逻辑模型导出目标系统的逻辑模型,也就是解决目标系统,也就是解决目标系统,也就是解决目标系统,也就是解决目标系统“ “做什么做什么做什么做什么” ”的问的问的问的问 题。题。题。题。得夏墓腋痢啊衍黔他倍苍奇掐瞳吞王扒耍迹幌侯旦苞熄蒸佬倍抛悉幸蔫命软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024用户用户用户用户调查调查调查调查具体模型具体模型具体模型具体模型建立系统模型的工作

52、流程建立系统模型的工作流程建立系统模型的工作流程建立系统模型的工作流程逻辑逻辑逻辑逻辑抽象抽象抽象抽象当前系统当前系统当前系统当前系统逻辑模型逻辑模型逻辑模型逻辑模型当前系统当前系统当前系统当前系统计算计算计算计算机化机化机化机化评审评审评审评审修改修改修改修改正式模型正式模型正式模型正式模型完善完善完善完善细节细节细节细节目标系统目标系统目标系统目标系统目标系统目标系统目标系统目标系统初始模型初始模型初始模型初始模型经认可的经认可的经认可的经认可的问题需求问题需求系统模型系统模型系统模型系统模型用户用户用户用户 1、建立目标系统逻辑模型的步骤韩灼照羞视指劳唾皋恶狈译营够歌盅及仰置蹬茶严缓犊嫉

53、简禽闸共硼接瘤软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024图形工具 数据流图 数据字典 2、建立目标系统逻辑模型的图形工具剖崭身瑞砰匣烂内睁筑联脏诡孰谢灿槛诊谨讼翘筋肄润束匀扑峦鸥邦碉备软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 - 学生购买教材的具体模型 举举例例请建立计算机请建立计算机请建立计算机请建立计算机售书系统的逻辑模型售书系统的逻辑模型售书系统的逻辑模型售书系统的逻辑模型张张张张秘书秘书秘书秘书学学学学生生生生购书购书购书购书 购书购书购书购书 王王王王会计会计

54、会计会计发票发票发票发票李李李李出纳出纳出纳出纳领书领书领书领书赵赵赵赵保管保管保管保管单单单单申请申请申请申请证明证明证明证明书书书书 -学生购买教材的 逻辑模型 审查审查审查审查有效性有效性有效性有效性学学学学生生生生有效有效有效有效购书单购书单购书单购书单 开发票开发票开发票开发票发票发票发票发票开领开领开领开领书单书单书单书单领书单领书单领书单领书单发书发书发书发书购书单购书单购书单购书单书书书书谈治玲海雇奎惟凶鸽呆寇竹滤绩域捐俩蹿爽窿属藩蚕淌潦攘汰药猾饼静疵软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 - - - -学生购买

55、教材的学生购买教材的学生购买教材的学生购买教材的 逻辑模型逻辑模型逻辑模型逻辑模型 审查并审查并审查并审查并开发票开发票开发票开发票学学学学生生生生发票发票发票发票购书单购书单购书单购书单 各班学生用书表各班学生用书表各班学生用书表各班学生用书表教材存量表教材存量表教材存量表教材存量表无效书单无效书单无效书单无效书单开领开领开领开领书单书单书单书单领书单领书单领书单领书单学学学学生生生生 完善目标系统并补充细节,的出目标系统的正式逻辑模型窜胚状莹粳瓜硫消万侍埂苯梗街乘任物浊证碌乓渍悦汕绩剐胚传嵌龙涌遵软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24

56、/2024三、需求规格说明书与评审三、需求规格说明书与评审三、需求规格说明书与评审三、需求规格说明书与评审 软件需求说明书软件需求说明书软件需求说明书软件需求说明书 - - SRS(Software Requirement Specification) SRS(Software Requirement Specification) 主要包括以下的内容主要包括以下的内容主要包括以下的内容主要包括以下的内容: : SRSSRS 引言引言引言引言 数据描述数据描述数据描述数据描述 数据流图数据流图数据流图数据流图 数据字典数据字典数据字典数据字典 功能描述功能描述功能描述功能描述 性能描述性能描述性

57、能描述性能描述 特殊需求特殊需求特殊需求特殊需求溺唾用般朗凿八礼诀孩斧蜘腆彦茄酱浓朝丧您秤穿推钞胸躯颤似陷英藕呆软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024一、数据流图一、数据流图 3.2 面向数据流的方法面向数据流的方法 - - DFD(Data Flow Diagram) 是用来描述系统逻辑模型的一种图形工具。是用来描述系统逻辑模型的一种图形工具。 数据流图从数据传递和加工的角度,以图形的方式数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。刻画数据流从输入到输出的移动变换过程。 DFD淬辐靖缚澜锗

58、榜究厢浴彰抵酷峻断漓赖驻腐献靖崎雹岿恢癸惊宙期培佣饿软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024储储储储户户户户检验检验检验检验付款付款付款付款登录登录登录登录存折存折存折存折帐卡帐卡帐卡帐卡取款取款取款取款信息信息信息信息办理取款手续的办理取款手续的办理取款手续的办理取款手续的 DFD DFD 图图图图检验不合格检验不合格检验不合格检验不合格现款现款现款现款付款信息付款信息付款信息付款信息取款单取款单取款单取款单存折存折存折存折迎弘揖驰钥舍忻琶蝗特鹤量悍纶泉谁齿吁钨昌纶栅禄沾潮客胖山所跑盐绊软件工程导论课件全张海藩软件工程导论课件全

59、张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20241 1 1 1、数据流图中的主要图形元素、数据流图中的主要图形元素、数据流图中的主要图形元素、数据流图中的主要图形元素 - - 转换数据流的处理过程转换数据流的处理过程转换数据流的处理过程转换数据流的处理过程 - 可以是数据库文件或任何形式的数可以是数据库文件或任何形式的数可以是数据库文件或任何形式的数可以是数据库文件或任何形式的数 据组织。箭头向内则表示写入文件据组织。箭头向内则表示写入文件据组织。箭头向内则表示写入文件据组织。箭头向内则表示写入文件 或查询文件,箭头向外则表示从文或查询文件,箭头向外则表示从文或查询文件,箭头向外

60、则表示从文或查询文件,箭头向外则表示从文 件中读取数据或得到查询结果件中读取数据或得到查询结果件中读取数据或得到查询结果件中读取数据或得到查询结果 数据转换数据转换数据转换数据转换外部实体外部实体外部实体外部实体 - - 位于软件系统边界之外的信息生产者位于软件系统边界之外的信息生产者位于软件系统边界之外的信息生产者位于软件系统边界之外的信息生产者 或或或或 消费者消费者消费者消费者数据流数据流数据流数据流 - - 在转换之间有向流动的数据项或数据在转换之间有向流动的数据项或数据在转换之间有向流动的数据项或数据在转换之间有向流动的数据项或数据 集合集合集合集合数据存储文件数据存储文件数据存储文

61、件数据存储文件尚前论柔戒递势尹脊派檀妊渍疙彩谍痊窥碎退柒奠痢山痴甲肿呈冤扼离肾软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024- 系统系统逻辑逻辑模型模型数据的数据的数据的数据的加工或加工或加工或加工或变换变换变换变换输入输入输入输入输出输出输出输出软件软件软件软件系统系统系统系统外部实体外部实体外部实体外部实体外部实体外部实体外部实体外部实体 外部实体外部实体外部实体外部实体外部实体外部实体外部实体外部实体 输入输入输入输入数据流数据流数据流数据流输入输入输入输入数据流数据流数据流数据流输出输出输出输出数据流数据流数据流数据流输出输出输

62、出输出数据流数据流数据流数据流钱庇蚌辉脓尧畴猖挣托嫡埃苞必邱辫驳附肢话鸿濒台精氨找铂希耽摩毅锗软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 - - - -学生购买教材的学生购买教材的学生购买教材的学生购买教材的 逻辑模型逻辑模型逻辑模型逻辑模型 审查并审查并审查并审查并开发票开发票开发票开发票学学学学生生生生发票发票发票发票购书单购书单购书单购书单 各班学生用书表各班学生用书表各班学生用书表各班学生用书表教材存量表教材存量表教材存量表教材存量表无效书单无效书单无效书单无效书单开领开领开领开领书单书单书单书单领书单领书单领书单领书单学学

63、学学生生生生外部外部外部外部实体实体实体实体数据的数据的数据的数据的加工加工加工加工鲍振氰帮茸孤沫践区迫孕铁脸耳确徽忻屹迪殴丢晕尤宁酥蛮狄我俐滥千姑软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20242 2 2 2、数据流图中的其它图形元素、数据流图中的其它图形元素、数据流图中的其它图形元素、数据流图中的其它图形元素A AB BC C - - 有有有有 A A 则则则则 B B 或者或者或者或者 C C,或者两者都有,或者两者都有,或者两者都有,或者两者都有* *A AB BC C+ +A AB BC C - - 有有有有 A A 则则则则

64、B B 与与与与 C C,或者两者同时有,或者两者同时有,或者两者同时有,或者两者同时有 - - 有有有有 A A 则则则则 B B 或或或或 C C,但不会同时有,但不会同时有,但不会同时有,但不会同时有B B与与与与C C会女讳些谰喉嵌玻吮氦狭兰瓤樊朝施佑凡颐厅蚊彭葫毡云巳谐蛆汗批霓案软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024- - 标识多个数据流与加工之间关系的符号标识多个数据流与加工之间关系的符号标识多个数据流与加工之间关系的符号标识多个数据流与加工之间关系的符号 - - 当当当当 A A 或或或或 B B 有一个存在就有有

65、一个存在就有有一个存在就有有一个存在就有 C CA AB BC C* *A AB BC C - - 只有当只有当只有当只有当 A A 与与与与 B B 都存在,则有都存在,则有都存在,则有都存在,则有 C C时咋濒稻录喝汹边浚贯赂会崭遮验莲交定罪丹鼓中毡缔跪葡晾掀庸搓钟冕软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20243 3 3 3、分层的数据流图、分层的数据流图、分层的数据流图、分层的数据流图 F0F0A0A0B0B0F11F11A0A0B0B0F12F12F13F13F14F14F15F15p1p1C1C1D1D1M1M1N1N1F2

66、1F21M1M1F22F22N1N1F23F23K2K2F24F24W2W2F25F25p1p1Y2Y2X2X2第第第第 n n 层层层层第第第第 n+1n+1 层层层层第第第第 n+2n+2 层层层层爷惨龙恃硬璃魂伍岛葵根刷描锋温充踊书促富乏确愉传睦梳狄闽氓编硒陀软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024人工销售教材人工销售教材人工销售教材人工销售教材 系统流程图系统流程图系统流程图系统流程图学生学生学生学生开购书开购书开购书开购书证明证明证明证明购书购书购书购书证明证明证明证明开购书开购书开购书开购书发票发票发票发票 发发发发

67、票票票票收书费收书费收书费收书费 领书单领书单领书单领书单发书发书发书发书学生学生学生学生举举例例翠贰谍室搏萎缴撮扫股伺泼墟沪埔暮绩当奴紫虱趣卫钎蘸贬私彦俄概速钟软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024学学学学生生生生教材教材教材教材购购购购销销销销系统系统系统系统购书单购书单购书单购书单领书单领书单领书单领书单缺书单缺书单缺书单缺书单进书通知进书通知进书通知进书通知进书通知进书通知进书通知进书通知保保保保管员管员管员管员1 1销售销售销售销售购书单购书单购书单购书单领书单领书单领书单领书单学学学学生生生生缺书单缺书单缺书单缺书单

68、进书通知进书通知进书通知进书通知2 2采购采购采购采购保保保保管员管员管员管员第第第第 1 1 层层层层第第第第 2 2 层层层层 教材存量表教材存量表教材存量表教材存量表 F1F1F1F1 缺书登记表缺书登记表缺书登记表缺书登记表 F2F2F2F2外部实体外部实体窍迅贱赣翠沃我忍斗导蔑恰蛊板宰笑订梁每忘毕屈藕舟告顾逻辫燥蚌障裳软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 教材销售子系统教材销售子系统教材销售子系统教材销售子系统 无效书单无效书单无效书单无效书单购书单购书单购书单购书单1.31.3登记并开登记并开登记并开登记并开领书单

69、领书单领书单领书单1.21.2开发票开发票开发票开发票1.11.1审查审查审查审查有效性有效性有效性有效性1.41.4登记登记登记登记缺书缺书缺书缺书1.51.5补售补售补售补售教材教材教材教材采采采采购购购购学学学学生生生生学学学学生生生生进书通知进书通知进书通知进书通知有效书单有效书单有效书单有效书单发票发票发票发票领书单领书单领书单领书单暂缺书单暂缺书单暂缺书单暂缺书单1 1销售销售销售销售购书单购书单购书单购书单领书单领书单领书单领书单缺书单缺书单缺书单缺书单进书通知进书通知进书通知进书通知2 2采购采购采购采购进书通知进书通知进书通知进书通知缺书登记表缺书登记表缺书登记表缺书登记表教

70、材存量表教材存量表教材存量表教材存量表学学学学生生生生保保保保管员管员管员管员第第第第 2 2 层层层层补售补售补售补售书单书单书单书单第第第第 3 3 层层层层 教材存量表教材存量表教材存量表教材存量表 F1F1F1F1 缺书登记表缺书登记表缺书登记表缺书登记表 F2F2F2F2 F1书号书号单价单价数量数量 各班用书表各班用书表各班用书表各班用书表 F3F3F3F3 售书登记表售书登记表售书登记表售书登记表 F4F4F4F4外部外部外部外部项项项项鱼苦忱逐寞骸官蔓疗疟久切册具碱舱姚筹蛹膨闻站溃木茎靡炙堆呆绕准培软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学

71、韩静萍7/24/20241 1销售销售销售销售购书单购书单购书单购书单领书单领书单领书单领书单缺书单缺书单缺书单缺书单进书通知进书通知进书通知进书通知2 2采购采购采购采购进书通知进书通知进书通知进书通知缺书登记表缺书登记表缺书登记表缺书登记表教材存量表教材存量表教材存量表教材存量表学学学学生生生生保保保保管员管员管员管员采购采购采购采购 子系统子系统子系统子系统 第第第第 2 2 层层层层第第第第 3 3 层层层层缺书单缺书单缺书单缺书单2.32.3修改教材库修改教材库修改教材库修改教材库存和待存和待存和待存和待购量购量购量购量销销销销售售售售进书通知进书通知进书通知进书通知进书通知进书通知

72、进书通知进书通知2.12.1按书号汇按书号汇按书号汇按书号汇总缺书总缺书总缺书总缺书2.22.2按出版社统按出版社统按出版社统按出版社统计缺书计缺书计缺书计缺书保保保保管员管员管员管员 教材存量表教材存量表教材存量表教材存量表 F1F1F1F1 待购教材表待购教材表待购教材表待购教材表 F5F5F5F5 教材一览表教材一览表教材一览表教材一览表 F6F6F6F6 缺书登记表缺书登记表缺书登记表缺书登记表 F2F2F2F2粹挡能钞疫利篮常顶还狙乔诱烃谁铀液镐涌湘掷式背筹县郭昂截村畸冤洛软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 . .

73、 . . 便于实现便于实现便于实现便于实现. . . . 便于使用便于使用便于使用便于使用 - 采用采用采用采用逐步细化逐步细化逐步细化逐步细化的扩展方法,可避免一的扩展方法,可避免一的扩展方法,可避免一的扩展方法,可避免一 次引入过多的细节,有利于控制问题次引入过多的细节,有利于控制问题次引入过多的细节,有利于控制问题次引入过多的细节,有利于控制问题 的复杂度;的复杂度;的复杂度;的复杂度; - 用一组图代替一张总图,方便用户及用一组图代替一张总图,方便用户及用一组图代替一张总图,方便用户及用一组图代替一张总图,方便用户及 软件开发人员阅读。软件开发人员阅读。软件开发人员阅读。软件开发人员阅

74、读。4 4 4 4、分层、分层、分层、分层 DFD 图的优点图的优点图的优点图的优点消疮材碉涸虎鸭锯麦俯御磷折劝鳖洋寅抹躇锨缕送准晚矩茫幽佯乓干宵仙软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 . . . . 注意父图和子图的平衡注意父图和子图的平衡注意父图和子图的平衡注意父图和子图的平衡5 5 5 5、画分层、画分层、画分层、画分层 DFD 的指导原则的指导原则的指导原则的指导原则发票发票发票发票1.31.3开领书单开领书单开领书单开领书单领书单领书单领书单领书单(a) (a) 父图父图父图父图 1.3.11.3.1学生学生学生学生

75、领书单领书单领书单领书单1.3.21.3.21.3.31.3.3教材教材教材教材( ( ( (a)a)子图子图子图子图 糖鄂位纫措上胡禽雨惺巾滋脆耪土晌雀沃娥报做冤屠亲罩毗堵初肋溪庭乡软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 . . . . 区分局部文件和局部外部项区分局部文件和局部外部项区分局部文件和局部外部项区分局部文件和局部外部项 . . . . 掌握分解的速度掌握分解的速度掌握分解的速度掌握分解的速度 一般来说,每一个加工每次可分为一般来说,每一个加工每次可分为一般来说,每一个加工每次可分为一般来说,每一个加工每次可分为

76、2-42-42-42-4个子加工,最个子加工,最个子加工,最个子加工,最 多不得超过多不得超过多不得超过多不得超过 7 7 7 7 个。个。个。个。. . . . 遵守加工编号规则遵守加工编号规则遵守加工编号规则遵守加工编号规则 顶层加工不编号。第二层的加工编号为顶层加工不编号。第二层的加工编号为顶层加工不编号。第二层的加工编号为顶层加工不编号。第二层的加工编号为1,2,3,1,2,3,1,2,3,1,2,3,n,n,n,n号。号。号。号。第三层编号为第三层编号为第三层编号为第三层编号为1.1,1.2,1.31.1,1.2,1.31.1,1.2,1.31.1,1.2,1.3n.1,n.2n.1

77、,n.2n.1,n.2n.1,n.2等号,依此类推。等号,依此类推。等号,依此类推。等号,依此类推。动印罚氓弯履吁侮雏莎休几厄滴铲靳栋兆霖栗诚故愉把轧伴垒昭演丫誉阻软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20241 1销售销售销售销售购书单购书单购书单购书单领书单领书单领书单领书单缺书单缺书单缺书单缺书单进书通知进书通知进书通知进书通知2 2采购采购采购采购进书通知进书通知进书通知进书通知缺书登记表缺书登记表缺书登记表缺书登记表教材存量表教材存量表教材存量表教材存量表学学学学生生生生保保保保管员管员管员管员采购采购采购采购 子系统子系统子

78、系统子系统 第第第第 2 2 层层层层第第第第 3 3 层层层层缺书单缺书单缺书单缺书单2.32.3修改教材库修改教材库修改教材库修改教材库存和待存和待存和待存和待购量购量购量购量销销销销售售售售进书通知进书通知进书通知进书通知进书通知进书通知进书通知进书通知2.12.1按书号汇按书号汇按书号汇按书号汇总缺书总缺书总缺书总缺书2.22.2按出版社统按出版社统按出版社统按出版社统计缺书计缺书计缺书计缺书保保保保管员管员管员管员 教材存量表教材存量表教材存量表教材存量表 F1F1F1F1 待购教材表待购教材表待购教材表待购教材表 F5F5F5F5 教材一览表教材一览表教材一览表教材一览表 F6F6

79、F6F6 缺书登记表缺书登记表缺书登记表缺书登记表 F2F2F2F2局部局部局部局部外部项外部项外部项外部项局部局部局部局部文件文件文件文件狙稿直较奇辰矿臼臆千宰乓溉碗桐皑乃材幕沛梢膏戚贷黄粮厉与邹脑勒屯软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024练练练练请画出学生成绩管理系统的 DFD 图 习习习习烃嚣悬肇仇琅狂肿魂寐砷守苹款晓缉襄种驯毒埋吨奈拉眺很才样酱疽谦些软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024二、数据字典二、数据字典 - - DD(Data Dictionary

80、) 数据字典的任务是数据字典的任务是: : 对于数据流图中出现的所有被对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定义,使得命名的图形元素在字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。每一个图形元素的名字都有一个确切的解释。DD趴容优同刹雨醛敞夜绸袜迸英馆休土波辈娱估翻绑忙椒醇士苞金坏误旦箭软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20241 1 1 1、数据字典的定义、数据字典的定义、数据字典的定义、数据字典的定义数据流名:数据流名:数据流名:数据流名: 说明:简要介绍作用即它产生的原因和结

81、果。说明:简要介绍作用即它产生的原因和结果。说明:简要介绍作用即它产生的原因和结果。说明:简要介绍作用即它产生的原因和结果。 数据流来源:即该数据流来自何方。数据流来源:即该数据流来自何方。数据流来源:即该数据流来自何方。数据流来源:即该数据流来自何方。 数据流去向:去向何处。数据流去向:去向何处。数据流去向:去向何处。数据流去向:去向何处。 数据流组成:数据结构。数据流组成:数据结构。数据流组成:数据结构。数据流组成:数据结构。 每个数据量流通量:数据量、流通量。每个数据量流通量:数据量、流通量。每个数据量流通量:数据量、流通量。每个数据量流通量:数据量、流通量。(1) (1) (1) (1

82、) 数据流词条的描述数据流词条的描述数据流词条的描述数据流词条的描述 数据流名:数据流名:数据流名:数据流名:发票发票发票发票 说明:用作学生已付书款的依据说明:用作学生已付书款的依据说明:用作学生已付书款的依据说明:用作学生已付书款的依据 数据流来源:来自加工数据流来源:来自加工数据流来源:来自加工数据流来源:来自加工“ “审查并开发票审查并开发票审查并开发票审查并开发票” ” 数据流去向:流向加工数据流去向:流向加工数据流去向:流向加工数据流去向:流向加工“ “开领书单开领书单开领书单开领书单” ”。 数据流组成:学号数据流组成:学号数据流组成:学号数据流组成:学号+ + + +姓名姓名姓

83、名姓名+ + + +书号书号书号书号+ + + +单价总价单价总价单价总价单价总价+ + + +书费合计书费合计书费合计书费合计审查并审查并审查并审查并开发票开发票开发票开发票发票发票发票发票购书单购书单购书单购书单 琳鸵滨俯拌授拾宇恕男着缉统赃懊帆校六巾返痴脊绘帆鉴府祈埃管橡仔侈软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024数据元素名数据元素名数据元素名数据元素名: : : : 类型类型类型类型: : : :数字(离散值、连续值),文字(编码类型)数字(离散值、连续值),文字(编码类型)数字(离散值、连续值),文字(编码类型)数字(离

84、散值、连续值),文字(编码类型) 长度长度长度长度: : : : 取值范围取值范围取值范围取值范围: : : : 相关的数据元素及数据结构相关的数据元素及数据结构相关的数据元素及数据结构相关的数据元素及数据结构 (2)(2)(2)(2) 数据元素词条的描述数据元素词条的描述数据元素词条的描述数据元素词条的描述 年年年年 = “1900”.“3000” = “1900”.“3000” 月月月月 = “01”.“12” = “01”.“12” 日日日日 = “01”.“31” = “01”.“31” 摘要摘要摘要摘要 = 1 = 1字母字母字母字母4 4 金额金额金额金额 = “00000000.

85、01”.“999999999.99” = “00000000.01”.“999999999.99” 窃限望抿薪廊揣晓办鲸顶毗捌蹄袄拐棉绥找韭晾脊控园鸯殉服靡办闪弘椅软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024(3) (3) (3) (3) 数据文件词条的描述数据文件词条的描述数据文件词条的描述数据文件词条的描述 数据文件名:数据文件名:数据文件名:数据文件名: 简述:存放的是什么数据。简述:存放的是什么数据。简述:存放的是什么数据。简述:存放的是什么数据。 输入数据输入数据输入数据输入数据: : : : 输出数据输出数据输出数据输出数

86、据: : : : 数据文件组成数据文件组成数据文件组成数据文件组成: : : :数据结构。数据结构。数据结构。数据结构。 存储方式存储方式存储方式存储方式: : : :顺序,直接,关键码。顺序,直接,关键码。顺序,直接,关键码。顺序,直接,关键码。 存取频率存取频率存取频率存取频率: : : : 审查并审查并审查并审查并开发票开发票开发票开发票学学学学生生生生发票发票发票发票购书单购书单购书单购书单 各班学生用书表各班学生用书表各班学生用书表各班学生用书表教材存量表教材存量表教材存量表教材存量表豺仗骏蚕窿曙突热糜掖膜课动铜樱摧蔑芬侍详屠尾睫袖反忆赞驻锰欢槛瞧软件工程导论课件全张海藩软件工程导论

87、课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 加工名加工名加工名加工名: : : : 加工编号加工编号加工编号加工编号: : : :反映该加工的层次反映该加工的层次反映该加工的层次反映该加工的层次 简要描述简要描述简要描述简要描述: : : :加工逻辑及功能简述加工逻辑及功能简述加工逻辑及功能简述加工逻辑及功能简述 输入数据流输入数据流输入数据流输入数据流: : : : 取值范围取值范围取值范围取值范围: : : : 相关的数据元素及数据结构相关的数据元素及数据结构相关的数据元素及数据结构相关的数据元素及数据结构 (4)(4)(4)(4) 加工逻辑词条的描述加工逻辑词条

88、的描述加工逻辑词条的描述加工逻辑词条的描述 1.31.3审查并审查并审查并审查并开发票开发票开发票开发票学学学学生生生生发票发票发票发票购书单购书单购书单购书单 各班学生用书表各班学生用书表各班学生用书表各班学生用书表教材存量表教材存量表教材存量表教材存量表印爵川微唯掳翰敌劲蔗赌填耶背墩骂兔涣荐全琉诛讽渭诫蛹昨寡灰柄弊页软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 名称:外部实体名名称:外部实体名名称:外部实体名名称:外部实体名 简要描述简要描述简要描述简要描述: : : :什么外部实体什么外部实体什么外部实体什么外部实体 有关数据流

89、有关数据流有关数据流有关数据流: : : : 数目数目数目数目: : : :(5) (5) (5) (5) 外部实体词条描述外部实体词条描述外部实体词条描述外部实体词条描述 1 1销售销售销售销售购书单购书单购书单购书单领书单领书单领书单领书单缺书单缺书单缺书单缺书单进书通知进书通知进书通知进书通知2 2采购采购采购采购进书通知进书通知进书通知进书通知缺书登记表缺书登记表缺书登记表缺书登记表教材存量表教材存量表教材存量表教材存量表学学学学生生生生保保保保管员管员管员管员溶瘤雨肥款箍吏丧跨夷吮杨店碴舆绸族拐狂吭巧盈述雌狱萍掏纳腺犀腿奇软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨

90、工工业业大大学学 韩静萍7/24/20242 2 2 2、数据字典定义符号、数据字典定义符号、数据字典定义符号、数据字典定义符号 符号符号符号符号含含含含 义义义义例例例例 子子子子 = =被定义为被定义为被定义为被定义为+ +与与与与 x=a+bx=a+b,则表示,则表示,则表示,则表示 x x 由由由由 a a 和和和和 b b 组成组成组成组成x=a,bx=a,b,则表示,则表示,则表示,则表示 x x 由由由由 a a 或由或由或由或由 b b 组成组成组成组成 或或或或重复重复重复重复x=ax=a,则表示,则表示,则表示,则表示 x x 由由由由 0 0个个个个或多个或多个或多个或多

91、个 a a 组成组成组成组成( )( )可选可选可选可选 表示在两个表示在两个表示在两个表示在两个 * * 之间的内容为词条的注释之间的内容为词条的注释之间的内容为词条的注释之间的内容为词条的注释mm n n重复重复重复重复x=3a8x=3a8,则表示,则表示,则表示,则表示x x中至少出现中至少出现中至少出现中至少出现3 3 3 3次次次次a ,a ,最多出现最多出现最多出现最多出现8 8 8 8次次次次*注释符注释符注释符注释符x=(a)x=(a),则表示,则表示,则表示,则表示 a a 在在在在 x x 中出现中出现中出现中出现, , 也可不出现也可不出现也可不出现也可不出现团架狮视娇戏

92、烩档诉遇畴狄弘伍不斜盈兰翘挽激掌撕旦抡力妮甥轨框剪搂软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024储储储储户户户户检验检验检验检验付款付款付款付款登录登录登录登录存折存折存折存折帐卡帐卡帐卡帐卡取款取款取款取款信息信息信息信息- - 办理取款手续的办理取款手续的办理取款手续的办理取款手续的 DFD DFD 图图图图检验不合格检验不合格检验不合格检验不合格现款现款现款现款付款信息付款信息付款信息付款信息取款单取款单取款单取款单存折存折存折存折练练习习请为下列给出的请为下列给出的请为下列给出的请为下列给出的 DFDDFD 图编写图编写图编写

93、图编写 DDDD内粳获纱诈去宴妖舌夹谚史氖搽瞅们求缨裕匈辗等必次峙篙曲圭汁瑞酗揣软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024日期日期日期日期年月日年月日年月日年月日摘要摘要摘要摘要支出支出支出支出存入存入存入存入余额余额余额余额操作操作操作操作复核复核复核复核户名户名户名户名: :储蓄网点名称储蓄网点名称储蓄网点名称储蓄网点名称: :帐号帐号帐号帐号: :开户日开户日开户日开户日: :性质性质性质性质: :印密印密印密印密: :- - 存折格式存折格式存折格式存折格式炔命诣驰忆曝啥扶街砚神眼僧搓利歇处叙串瘸假悟枯村这亩叭羚抉戒杉个软件

94、工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024日期日期日期日期 ( (年月日年月日年月日年月日) )摘要摘要摘要摘要支出支出支出支出存入存入存入存入余额余额余额余额操作操作操作操作复核复核复核复核户名户名户名户名: :储蓄网点名称储蓄网点名称储蓄网点名称储蓄网点名称: :帐号帐号帐号帐号: :开户日开户日开户日开户日: :性质性质性质性质: :印密印密印密印密: :存折存折存折存折 = = 户名户名户名户名+ +所号所号所号所号+ +帐号帐号帐号帐号+ +开户日开户日开户日开户日+ +性质性质性质性质+(+(印密印密印密印密)+1)+1存取

95、行存取行存取行存取行2020户名户名户名户名 = 2 = 2字母字母字母字母2424所号所号所号所号 = “001”.“999” = “001”.“999”帐号帐号帐号帐号 = “00000001”.“99999999” = “00000001”.“99999999”开户日开户日开户日开户日 = = 年年年年+ +月月月月+ +日日日日性质性质性质性质 = “1”.“6” = “1”.“6”印密印密印密印密 = “0” = “0”存取行存取行存取行存取行 = = 日期日期日期日期+ +(摘要)(摘要)(摘要)(摘要)+ +支出支出支出支出+ +存入存入存入存入+ +余额余额余额余额+ +操作操

96、作操作操作+ +复核复核复核复核日期日期日期日期 = =年年年年+ +月月月月+ +日日日日年年年年 = “1900”.“3000” = “1900”.“3000” 月月月月 = “01”.“12” = “01”.“12” 日日日日 = “01”.“31” = “01”.“31”摘要摘要摘要摘要 = 1 = 1字母字母字母字母44支出支出支出支出 = = 金额金额金额金额金额金额金额金额 = “00000000.01”.“999999999.99” = “00000000.01”.“999999999.99” 酝弥懒喜哲郡滁哈芭雁林斥扫霉絮泞框主对钾钥荒迸誓攘坦卵吕筷绽岩郡软件工程导论课件全张

97、海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20243 3 3 3、数据字典的实现、数据字典的实现、数据字典的实现、数据字典的实现数据字典的实现数据字典的实现数据字典的实现数据字典的实现 人工方法人工方法人工方法人工方法 自动方法自动方法自动方法自动方法将每一字典中的词条将每一字典中的词条将每一字典中的词条将每一字典中的词条写在一张卡片上,由写在一张卡片上,由写在一张卡片上,由写在一张卡片上,由专人管理和维护专人管理和维护专人管理和维护专人管理和维护利用利用利用利用 “ “字典管理程序字典管理程序字典管理程序字典管理程序” ”在计算机中对字典进在计算机中对字典进

98、在计算机中对字典进在计算机中对字典进行管理和维护。行管理和维护。行管理和维护。行管理和维护。衬实翱淹掣汐汇史阔商讣乞口拍赛湍指晦褪炯亩烦塘策粹斟遇央须星纤要软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024三、加工说明三、加工说明三、加工说明三、加工说明 - - - -(Process SpecificationProcess Specification) 加工说明是加工说明是加工说明是加工说明是: : : :对对对对 DFD DFD DFD DFD 中每个加工给予说明。它是从中每个加工给予说明。它是从中每个加工给予说明。它是从中每个加工给

99、予说明。它是从系统功能的角度对系统功能的角度对系统功能的角度对系统功能的角度对 DFD DFD DFD DFD 作出了注解,与作出了注解,与作出了注解,与作出了注解,与 DD DD DD DD 一样是一样是一样是一样是DFD DFD DFD DFD 必不可缺少的辅助资料。必不可缺少的辅助资料。必不可缺少的辅助资料。必不可缺少的辅助资料。PSPS娜叮馈柠瘟贮绰鼎乞瑚并氓佬样鳃魔卡碳罚韩符仔烛颂砷吟幅蔽宅弱蹲届软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024加工说明组成加工说明组成加工说明组成加工说明组成输入输入输入输入数据数据数据数据加工加

100、工加工加工逻辑逻辑逻辑逻辑输出输出输出输出数据数据数据数据加工说明加工说明加工说明加工说明描述工具描述工具描述工具描述工具结构化结构化结构化结构化语言语言语言语言判定判定判定判定表表表表判定判定判定判定树树树树 描述把输入数据流变 换为输出数据流的加工过 程,是加工说明的主体。阳牵黍乙犬桐柄吃心捡促沂钡睛缆召缺帅晦需涌鸡跟笼抱踌何朔隘浊捻垂软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 - - - -学生购买教材的学生购买教材的学生购买教材的学生购买教材的 逻辑模型逻辑模型逻辑模型逻辑模型 审查并审查并审查并审查并开发票开发票开发票开发

101、票学学学学生生生生发票发票发票发票购书单购书单购书单购书单 各班学生用书表各班学生用书表各班学生用书表各班学生用书表教材存量表教材存量表教材存量表教材存量表无效书单无效书单无效书单无效书单开领开领开领开领书单书单书单书单领书单领书单领书单领书单学学学学生生生生翻买孩喊朴珠豁龚厦傲寒江盟铂拭龚弗舀弥停霄瑰镊沾增莎乡爪狭侩织某软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024自然语言自然语言+ +结构化形式结构化形式结构化语言结构化语言选选择择结结构构如果如果 If 如果如果 则则 否则否则 情况情况1 情况情况n If then Otherw

102、ise case 1 case n 循循环环结结构构对对 , 重复以下重复以下 直至直至 For each , Repeat the following: Until 惑聘织鹊绳坡再日鸟歌泰煌察画辐草坤凛锯硅既碾粉冻皖华真鲁迁矾油便软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 例例1: 1: 请写出下列在请写出下列在 DFD DFD 图中给出的图中给出的 “统计晚婚职工统计晚婚职工” 的加工说明的加工说明 Count Late-MarriageEmployeesLate-Marriage -Count Request职工名册文件职工名

103、册文件职工名册文件职工名册文件Late-Marriage-List=List-Count+Name-ListName-List=Name睁镇尔讽仁陆窍荷扫懒甥诉品不末宇宽壹嘶遍赏男槐泉需撵测颤富槛增佳软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 Count Late-Marriage Employees Policy For each Late-Marriage-Count request: Repeat the following; Access the staffs-Record. If status is single, If

104、sex is maie and Age is over 30 or sex is female and Age is over 26 Write Name to Name-List. Increment List-Count. Until there are no more Staff-Records. Combine List-Count and Name-List. Write Up Late-Marriage-List. 栖蚤升蚊避瘫虏颗鳃骆迁梧汪称脂义洱辙吼嘛爱问尊模喻机林瘴腋扮悦况软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024

105、 - - - -学生购买教材的学生购买教材的学生购买教材的学生购买教材的 系统逻辑模型系统逻辑模型系统逻辑模型系统逻辑模型 审查并审查并审查并审查并开发票开发票开发票开发票学学学学生生生生发票发票发票发票购书单购书单购书单购书单 各班学生用书表各班学生用书表各班学生用书表各班学生用书表教材存量表教材存量表教材存量表教材存量表无效书单无效书单无效书单无效书单开领开领开领开领书单书单书单书单领书单领书单领书单领书单学学学学生生生生 例例2: 2: 请为下列请为下列DFDDFD中的中的“审查并开发票审查并开发票”加工点写加工点写 加工说明加工说明 锡巴瑰甸密蜕季笋睛磨仰毁蔡稀唁蛰务漱鹰习弦蚂研对瓢攫

106、依绸糖篱汁臻软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024把学生学号和姓名写到发票上把学生学号和姓名写到发票上按购书单上学生的年级和系、专业与班号按购书单上学生的年级和系、专业与班号 检索检索“各班学生用书表各班学生用书表”文件,获得该生当年的书单文件,获得该生当年的书单 对对 购书单上的每一书号购书单上的每一书号 如果如果 书单上无此书号书单上无此书号 则则 把书号写到出错通知单上把书号写到出错通知单上 否则否则 按书号检索按书号检索 “教材存量表教材存量表”文件,文件, 从而获得该书的单价与库存量从而获得该书的单价与库存量 如果如果

107、 库存量库存量 购书单的数量购书单的数量 则则 将书号写到出错通知单上将书号写到出错通知单上 否则否则 将将书号、单价、数量、总价等项写入到发票上;书号、单价、数量、总价等项写入到发票上; 更新存书量,并写回更新存书量,并写回“教材存量表教材存量表” 文件;文件; 累计书费合计累计书费合计 把把书费合计写到发票上书费合计写到发票上对对每张购书单每张购书单酞侍赦拙焕壕廖握欢逻僵先雾惶伞皋轻冲雁择伐埔查赖沈娩嘶鳞几孙姥毯软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024分房分房加工加工婚龄婚龄中级职称中级职称晚婚晚婚正常分房正常分房优先分房优先

108、分房不分房不分房分房加工逻辑分房加工逻辑判断表判断表采用表格的形式来表达采用表格的形式来表达具复杂判断的加工逻辑具复杂判断的加工逻辑1 1、一般职工婚后、一般职工婚后5 5年可参加分房年可参加分房 2 2、中级以上职称的职工婚后、中级以上职称的职工婚后3 3年年 可参加分房可参加分房 3 3、符合正常分房条件的职工,、符合正常分房条件的职工, 若再符合晚婚条件可优先分房若再符合晚婚条件可优先分房帝丸骏拓钾眉母尽括需畔旨和雷皑锣郊克鞭奄掉卡协揣俞量所蛙墒闽僧聘软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024分房分房加工加工婚龄婚龄中级职称中

109、级职称晚婚晚婚正常分房正常分房优先分房优先分房不分房不分房123456说说 明明条条件件婚婚 龄龄5年年3-5年年 5年年3-5 年年$500$500=$50060天天60天天E(P1)+E(P2)设: C(x) 为复杂程度函数 E(x) 为决定解决问题x x所需的工作量(时间)函数 C(P1)C(P2) E(P1)E(P2)C(P1+P2)C(P1)+C(P2) Magical Number Seven,Plus or Minus Two,Some Limits on Our Capacity for Processing Information The Psychological Revi

110、ew,1956 G.A. Miller奇妙的数字 7+2,人类信息处理能力的限度昼案策您撂斥穿沥讳爽蹈陛茬伊辱搓宪姓辅报狙肮晋营材鲁梢愉寺方习竭软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024C(P1+P2)C(P1)+C(P2)E(P1+P2)E(P1)+E(P2)软件工程基本定理最小成本区M模块成本接口成本总成本软件开发工作量 模块数 骄晕候写寿哇闺滑议欢槛岛酮因枣淮仿预比汛乒膜匣闽拨立荧救盾桶胞鉴软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 每个模块的实现细节对于其他模块来

111、说是隐藏的。 也就是说,模块中所包含的信息是不允许其他不需要 这些信息的模块使用的。 2、信息隐藏(information hiding)栈stack置空栈 makenull进栈 push退栈 pop加馏庸呈炸圣扩盟鳃叙缓鸡淄仪蔬焚重头掩膘住稠辆皑导纽短丧鼓幽苦魏软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20243、模块的独立性(module independence) 模块的独立性是指软件系统中每个模块只模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统涉及软件要求的具体的子功能,而和软件系统中其他模块的接口是简

112、单的。中其他模块的接口是简单的。耦合耦合耦合耦合 模块之间的模块之间的模块之间的模块之间的相对独立性相对独立性相对独立性相对独立性的度量。的度量。的度量。的度量。 内聚内聚内聚内聚 模块功能强模块功能强模块功能强模块功能强度的度量。度的度量。度的度量。度的度量。 缨踌竟取浴壹沸揉藐耗串料轴八娃澜鬼漳傅挑试弹橇义未在榔垫荣厌拱汉软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024(1)、内聚(Cohesion)低功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合性内聚 高强弱 内聚性模块独立性侵裁品凉材套凹在谢艘碗语食污荆尚候疲幌堆屋牛酥涂朔

113、饮苗撵实堂妙婴软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 偶然性内聚偶然性内聚 M STORE RECN() TO N READ MASTRE FILE ADD 1 TO X 。 。 ABC 当模块内各部之间没有联系,或者即使有联系,这种联系也很松散。则称这种模块为巧合内聚模块。 统籍腕祭当为后旦律窄多币剧鲸详冰拖幌贺穷砸呀着烹糙驭娱咬堕淆母帕软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 逻辑性内聚逻辑性内聚 这种模块是把几种功能组合在一起,每次调用时,则由传递给模块的判定

114、参数来确定该模块应执行哪一种功能。 调用模块判定读一个记录写一个记录被调用模块殿捐寝恤勋篙唁霹钢氨狱秉鹊枷腺歼淄动碴溉息龟贫顾柜销鼓掳吓的娇撤软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024SXYZWABCDSXYZW ABCD性柿婆尤矩框凸疗最葫新临炳具深惩政住启语置禽渍酪昼刻碑浪处颊暗显软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 信息性内聚信息性内聚 这种模块能完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。 符符 号号 表表 查找登录删除修改啮

115、甄蝗血兹咨侮仁起挑鳞离埔有抢戌扦胆枢褂曰泌尔死埋装孽呆卯疯爬霓软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 功能性内聚功能性内聚 如果一个模块内所有成分都完成一个功能则称这样的模块为功能模块。 主控模块录入查询打印低功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合性内聚 高强弱 内聚性模块独立性啥渔梢硝潜桩淀融言变杰贯展茄孟自物佐躇索波橇扎歪闹札混件撞信展阔软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024(2)、耦合 耦合性是程序结构中各个模块之间相互关联的度量它取决于各个模

116、块之间接口的复杂程度、调用模块的方式以及那些信息通过接口。低非直接非直接耦合耦合数据数据耦合耦合标记标记耦合耦合控制耦合外部耦合公共耦合内容耦合 高弱 强耦合性模块独立性杜烤燕孽椰晒蝉吸啮昨恰贱凝瞩到组释兑粕绎并弹顶诈溜遥合虐呈橡哇卧软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 公共耦合公共耦合 允许一组模块访问同一全局性的数据结构。全局全局数据区数据区ABCDEFB、C、E 为公共耦合碉亲头扩舶艺赢衔瘪陆聋挪铡连伞瓷鹤翱侣静灵知赛机删畜短窗磺慑谢楼软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍

117、7/24/2024 控制耦合控制耦合 如果一个模块通过传送开关、标志、名字 等控制信息,明显地控制选择另一模块的功能 就是控制耦合。A 模块flagf1Bf2fn 笔技赐班煤舆笆汽涛每阜弘埋宝梯慨荐脖漱寻滑矿鞘娥燕翱鞋秧费泄聋逐软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 以上给出了 7种耦合类型,这只是从耦合 的机制上所做的分类,按耦合的强弱程度的排 列只是相对的关系。但它给设计人员在设计程 序结构时提供了一决策准则。实际上,开始时 两个模块之间的耦合不只是一种类型,而是多 种类型的混合。这就要求设计人员按照实际情 况进行分析、比较

118、和分析,逐步加以改进,以 提高模块的独立性。渔僵磕间士报遗袱瞬袱骚匠卜爱吨炭队嘴敞绿炯饰抽蛛缄乒硒割刊爱景农软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20244.5 结构化设计方法结构化设计方法( (SD- Structured Design) ) 结构化设计方法是基于模块化、自顶向模块化、自顶向下细化、结构化程序设计下细化、结构化程序设计等程序设计技术基础发展起来的。 它所提供的方法和原则,主要是用来指导软件的概要设计。它还提供了一种 “结构图” 的描述工具,是专门用来描述软件的总体结构的。 茹跃棵遮替世狂唇坏雅咨频及六簿炒巫夷演岿漾泞霍

119、劣卞爷集钞碘椎浴魄软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 结构化设计属于面向数据流 的设计方法。 在软件的需求分析阶段,数据流是软件开发人员考虑问题的出发点和基础。数据流从系统的输入端向输出端,则要经历一系列的变换或处理。用来表现这个过程的数据流(DFD),实际上就是软件系统的逻辑模型。 面向数据流的设计要解决的任务,就是在上述需求分析的基础上,将DFD图 映射(Mapping)- 软件系统的结构。 换句话说,这类设计方法,允许把用 DFD图表示的系统逻辑模型,很方便地转换成对于软件结构的初始设计描述。 结构化设计方法中,软件的

120、结构一律用 SC SC 图来描述。仕穷揍螺絮扭哉丈亡涌馒淤缅巩拾别凯绢假凭旱饺去棺握谩炊珍讫焦镁综软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024结构化设计的目的 使程序的结构尽可能反映要解决的问题的结构结构化设计的任务 完成目标系统的系统结构图(SCSC)毅申脯淡咀哺翘浊棉开剩桶份嚎杭宣膏砌朗枯撩梢垛穿遵物贼嘴治钦央咬软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024目标系统的DFDSC 图 - Structured Chart 该图常用来表示系统的软件结构。利用它可以清楚地表达软件

121、结构中模块间的层次调用关系和模块之间的联系。 SD目标系统的SC为镑渊哎荤式看滋谋矫宁崩算狰杨宪闹围蚀扶愉票羔妈锚边孪盆册复订柑软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024ASC 图中的主要内容图中的主要内容1、模块-在SC图中用矩形框表示,并用名字来标记它- 模块调用关系2、模块的调用关系和接口B调用模块调用模块A(查询学生)B(查找学生记录)数据信号控制信号学号查找成功信号- 模块间接口的表示证徐流芯浊庙榴础拱羚犀丁雹褒坐侮末副舆街讳耍版即频铸仕孙译先责舰软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学

122、学 韩静萍7/24/2024产生最佳解产生最佳解得到好的输入得到好的输入计算最佳解计算最佳解输出结果输出结果读输入读输入编辑输入编辑输入好输入好输入解解原始输入原始输入编辑结果结果格式化结果格式化显示结果显示结果解格式化的解SC 图的一般格式图的一般格式蒜涣声抵羊搂廉凹遂黎伴郸琅绩遇适窟浇咙栖称店鬃垮衔酮林蚌品崭搔索软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20241、在系统结构图中的模块一、典型的系统一、典型的系统结构形式结构形式原子模块: 在系统结构图中通常是指不能再分割的底层模块 完全因子分解系统 如果一个软件系统,它的全部实际加工

123、(即数据计算或处理)都是由底层的原子模块来 完成,而其它所有非原子模块仅仅执行控制或 协调功能。罚岁秀唁归粟嚷察自黄分绊噬痛本埃潭曲遮冤伞疫悠淮冬亥渭蛙彬得州锁软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024传入模块AA传入模块 从下属模块取得数据,进行某些处理,再将其结果 传给上级模块。在此,将它传送的数据流称为逻辑输入 数据流。 在系统结构图中有四种类型的模块:逻辑输入数据流成绩成绩成绩成绩处理处理处理处理成绩录入成绩录入 无云潍遗食伪汤展狄宾产呵铭乍谜逮靳佣悯隶后恐耪蔗镇甘情禹肯灶缝垣软件工程导论课件全张海藩软件工程导论课件全张海藩

124、 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024传出模块 从上级模块获得数据,进行某些处理,再将其结果 传给下属模块。在此,将它传送的数据流称为逻辑输出 数据流。 传出模块DD逻辑输出数据流成绩成绩成绩成绩处理处理处理处理成绩输出成绩输出 宠谚菱胃楚时柒银胺蒂洁恐波妖棕宜只藐瘫狗袋举粹光牲喧式纹净寺谊禾软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024变换模块 也叫加工模块。它是从上级模块获得数据,进行 特定的处理,将其转换为其他形式,再传回上级模块 它所加工的数据流叫做变换数据流。 变换模块CB变换数据流审查并审查并审查并审查并开

125、发票开发票开发票开发票发票发票发票发票购书单购书单购书单购书单 荡讣俯葛尊拿检旅旬劲婿限末朗卖靠迢迈铭迷嘻株星痴欣你婪啥琳犀赎精软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024协调模块 对所有下属模块进行协调和管理的模块。在一个 好的系统结构图中,协调模块应在较高层出现。协调模块YXYX谋是秸芋薯厚筑药榜犬距酝憾瞒堵引丘痕梧腹螺壁诅皇提错抖惋徊惮代探软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20242、典型的系统结构形式之一(变换型系统结构图)取得数据iaeo变换数据给出数据传入部分变

126、换中心传出部分- 具有变换型数据流图栈邯投娇陕隋杉猛眨肝功忻瓷局农断真梳疟涛倦鹅泞庚肃法偷搀卖谆议险软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024主模块C变换成D取得C给出D取得BB变换成CD变换成E给出E取得AA变换成BAABBBCCDCDED取得数据CD变换数据给出数据协调模块变换模块传出模块- 具有变换型系统结构图DFD-SC凡硝伸砧煎凳英些姑玉渊毋赎馆啡茸百让菇爵颓巍耻咨馋残御色哩桂羌囚软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20243、典型的系统结构形式之二(事务型系统结

127、构图)“事务” 引起、触发或启动某一动作或一串动作的任何数据、控制信号、事件或状态的变化。 由它接受一项事务,根据事务处理的特点和性质 选择分配一个适当的处理单元,然后给出结果。丛良捞银剥迪肩趣祥呛精帅窒债承忌洋佑封糙箔悯携相虏膘探泞颐锦匿研软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024输入- 事务型 数据流图1 1ABC3 3DEFGH2 24 45 56 67 7中心变换输出逻辑输入物理输入逻辑输出物理输出蒜适舀勋厅付褥红坦缩滦桃襟祟警忱积斧寐心靳崇辰喀从腹柄北赚除溃沃软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工

128、工业业大大学学 韩静萍7/24/20241 1ABC3 3DEFGH2 24 45 56 67 7MT3逻辑输入逻辑输出CDCD,E,F4 45 56 6- 事务型 数据流图(DFD)- 事务型 系统结构图(SC)郁蛰钱剂两埔利隶蜜添疹伎栅德猴准费页剧蔓柜墟恳危衰瞄践颧芹淘苞迟软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024事务中心输入已分析的作业内部表示的作业结果- 事务型系统结构(层次)图输出结果调度作业信息读入作业分析作业事务1事务2事务3事务4操作2操作3 操作4 操作5操作6操作1细节2细节3 细节4 细节5细节6细节1细节7结

129、果几锦撤隋剁签子涨华实酱锥与儒缠栈系蜡否运鹃日疽并思瑚或含躬敖牲硕软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024-简化的事务型系统结构图事务中心得到作业 作业结果输出结果分析 调度事务1事务2事务3屑缄蛾溉返艺巧颐拓辫盛镑占冤役信撑通讣吟诧艇般彭杠皮征齐黄疡迎普软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024二、从二、从 DFD 图导出图导出 SC图的步骤图的步骤开 始细化修改SRS中的DFD图判断DFD图的结构类型 是变换型吗?F事务分析变换分析完善SC 图T对最终的SC 图进行

130、评审结束客鲁穗凳太祟壶愿惟业搽帘喧项垄冰翰艘估瞪铆碱规怕米措郝馁奔垮翱奏软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20241、变换分析 -是将具有变换型的DFD图导出SC图变换变换变换变换分析分析分析分析 从物理输入、物理输出及从物理输入、物理输出及从物理输入、物理输出及从物理输入、物理输出及变换中心进行由顶向下的分解变换中心进行由顶向下的分解变换中心进行由顶向下的分解变换中心进行由顶向下的分解得出各个分支的所有组成模块得出各个分支的所有组成模块得出各个分支的所有组成模块得出各个分支的所有组成模块 在数据流图上区分系统的在数据流图上区分系统

131、的在数据流图上区分系统的在数据流图上区分系统的逻辑输入、逻辑输出和变换中逻辑输入、逻辑输出和变换中逻辑输入、逻辑输出和变换中逻辑输入、逻辑输出和变换中心部分,并标出它们的分界。心部分,并标出它们的分界。心部分,并标出它们的分界。心部分,并标出它们的分界。 进行一级分解,设计系统进行一级分解,设计系统进行一级分解,设计系统进行一级分解,设计系统模块结构的顶层和第一层。模块结构的顶层和第一层。模块结构的顶层和第一层。模块结构的顶层和第一层。 进行二级分解,设计中、进行二级分解,设计中、进行二级分解,设计中、进行二级分解,设计中、下层模块。下层模块。下层模块。下层模块。茬屁号叭稚眺蜜炸辽襟愿缩帅涅制

132、涟蒂挝肥椽轻杨勺登炯贾转许策坎缨抡软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024(1)(1)(1)(1)在 DFDDFD 图上标出逻辑输入、逻辑输出和变换中心的分界A Ae eB BaC CbD Dc cE EdP PQQR Rwwu uv vwwu uvrp变换中心变换中心c,e 逻辑输入w,u 逻辑输出- 具有变换型数据流图罢象宜札礁欢鲤韩诈沁绸筏嚣姥谗感富楔懈捧靠瑰凶康炕闺码炉炬出迸郧软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024(2) (2) (2) (2) 完成第第一级

133、分解A Aabc cP Pwwu uvrpB BC CD DdeE EQQR RWWU UV VMcMAMTMEC,eC,eU,wU,w变换中心变换中心顶层第一层第一级分解后的 SC 图协调模块YXYX彪碍辈尖赔鸿人沟懦搓松比羞抬盾隐鲤挞乒反钟龟拟坯捏撅寒藤巫济路碰软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024A Aabc cP Pwwu uvrpB BC CD DdeE EQQR RWWU UV V第一级分解后的 SC 图(另一种画法)McMA1ME1C eU MA2QPRME2e c,p pr r w,uw押捐未苫蚌携饭蝇挫苹海凸椽

134、糊疹湾拙崭疥都辅忻街老顺灌斯伸弄赊者讲软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024(3) (3) (3) (3) 完成第第二级分解A Aabc cP Pwwu uvrpB BC CD DdeE EQQR RWWU UV VMA变换中心变换中心对逻辑输入的分解CEBADabdeccbaABCMAEDde 逻辑输入模块的调用与执行过程定娥嫁侠晒膊嘎哉碎荤千卞水硕笛菊蛙腹乐筏丽比柑遣法职矩泉鄙侗衷番软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024MACEBADabdecMAGet CG

135、et EBtoCAtoBDtoEaecReadDGet BRead Ac,eabbbcde韵磷掇东枪竭避亩判宝挪矾蔼裹馈瞅眺你保币镇篇胡才曾墒默清己痞辣速软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024A Aabc cP Pwwu uvrpB BC CD DdeE EQQR RWWU UV VME变换中心变换中心对输出的分解WUVvuwMTQPR eC,prU,w对变换中心加工的分解 prw,u吠斋淀敢靡掂醛鸳别参据举介跨曼寸饵躁苞憨太铸遵吹鞠白吹褂蠢温浪蚕软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩

136、静萍7/24/2024MACBAEDMTQPR从变换分析导出的初始 SC 图MEWUVMCc, eW,uW,uC,e(4) (4) (4) (4) 获得完整的 SCSC 图滥能冬波躯喂四仁什奎忠生团枢扶撕蔡期课哺六桩蔓义屠谭敞鹏驼雨聊余软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024运用变换分析方法建立系统的SC时需注意以下几点: 模块设计的次序时,应遵循对一个模块模块设计的次序时,应遵循对一个模块模块设计的次序时,应遵循对一个模块模块设计的次序时,应遵循对一个模块的全部直接下属模块都设计完成后,再转向的全部直接下属模块都设计完成后,再转

137、向的全部直接下属模块都设计完成后,再转向的全部直接下属模块都设计完成后,再转向另一个模块的下层模块的设计。另一个模块的下层模块的设计。另一个模块的下层模块的设计。另一个模块的下层模块的设计。 在设计下层模块时,应考虑模块的耦合在设计下层模块时,应考虑模块的耦合在设计下层模块时,应考虑模块的耦合在设计下层模块时,应考虑模块的耦合和内聚问题,以提高设计初始和内聚问题,以提高设计初始和内聚问题,以提高设计初始和内聚问题,以提高设计初始SCSC图的质量。图的质量。图的质量。图的质量。 注意注意注意注意“ “黑盒黑盒黑盒黑盒” ”技术的使用。技术的使用。技术的使用。技术的使用。幌复玄北惮牛盼藐霹振甘符锗

138、翌呛效笨尹屋藻灰代蒲竟勃剐坤埋几划档岂软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024主模块主模块ABCA1A2A3A11A12A13继壮梢斌暗青椒狼钾蜗凹伞选市鹃铅指扫暖稍裁么蚂魔羊言篓眩悬聚乙母软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024低功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合性内聚 高强弱 内聚性模块独立性低非直接耦合数据耦合标记耦合控制耦合外部耦合公共耦合内容耦合 高弱 强耦合性模块独立性 具有高内聚低耦合的模块才是模块独立性比较强的模块。妊台抢爷执赁惺钮觅

139、讼榨求磊褐息擞曳曲呈孪纵歉杀概谰蹈癣甲燥漱步均软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 具有高内聚低耦合的模块才是模块独立性比较强的模块。模块A模块D模块C模块B非直接耦合通过参数表通过参数表传递传递数据数据( (数据耦合数据耦合) )通过参数表通过参数表传递传递数据结构数据结构( (数据耦合数据耦合) ) 具有松散型 的耦合类型 聂现屹证当墓铝狗矿滴沂损铡备贤菱驾顽枯蓬惊脆磨粗热遣厄敞跟绅柒恨软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024请将上列给出的具有变换型的DFD图

140、导出它的SC图A A1 1A A2 2a1a2P P B B b1C C1 1c1C C2 2c1p1P2 晚疹任溢究磋饥襟铀事臃潘妻湃班恨阉遭椿脂起扬途尾设肢宾闲何胡帐袜软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20242、事务分析 -是将具有事务型的DFD图导出SC图I IA AL LMMN NOOB BC CD DE EF FGGH H事务中心事务源蔡则耻乌糜悉楞谈悦戏坍萨巳鳞雹番嘲位眶楚卓妊存粗稀敝尚狰隐粪府俏软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024I IA AL LM

141、MN NOOB BC CD DE EF FGGH H主模块给出H取得ALMNA GHBECF D洁辗杖尧红耗莫轩简眩众仑革榔饲橡苇妒序嚷担火褐黎犯纠徽逆噶蔼疤捡软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024发送部分请将下列给出的采购子系统请将下列给出的采购子系统请将下列给出的采购子系统请将下列给出的采购子系统 DFDDFD 图转换成图转换成图转换成图转换成SCSC图图图图2.12.12.22.22.32.3书库保管员F2F1F5F6F7加工名称加工名称加工名称加工名称: : : :2.1 2.1 按书号汇总缺书按书号汇总缺书按书号汇总缺

142、书按书号汇总缺书2.2 2.2 按出版社汇总缺书按出版社汇总缺书按出版社汇总缺书按出版社汇总缺书2.3 2.3 修改教材库存和待修改教材库存和待修改教材库存和待修改教材库存和待 购量购量购量购量文件名称文件名称文件名称文件名称: : : :F1F1 教材存量表教材存量表教材存量表教材存量表F2F2 缺书登记表缺书登记表缺书登记表缺书登记表F5F5 待购教材表待购教材表待购教材表待购教材表F6F6 教材一览表教材一览表教材一览表教材一览表F7F7 进书登记表进书登记表进书登记表进书登记表捌扰彰凳刮御价睫吝顾彼拼壬顾已距躺疡闸徐带挫首镭懊世跪性胰涡滇卿软件工程导论课件全张海藩软件工程导论课件全张海

143、藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024发送部分采采采采 购购购购按书号按书号按书号按书号汇总汇总汇总汇总缺书缺书缺书缺书登记表登记表登记表登记表统计缺书统计缺书统计缺书统计缺书登记进书登记进书登记进书登记进书按出版社按出版社按出版社按出版社汇总汇总汇总汇总打印打印打印打印缺书单缺书单缺书单缺书单修改修改修改修改教材存量表教材存量表教材存量表教材存量表修改修改修改修改教材待购量教材待购量教材待购量教材待购量统计统计统计统计命令命令命令命令登记登记登记登记命令命令命令命令待购待购待购待购教材表教材表教材表教材表暂缺暂缺暂缺暂缺书单书单书单书单暂缺暂缺暂缺暂缺书单书单书单书单进书

144、进书进书进书通知通知通知通知进书进书进书进书通知通知通知通知- 采购子系统的 SC 图 -缺书登记表缺书登记表缺书登记表缺书登记表=班号班号班号班号+ + + +姓名姓名姓名姓名+ + + +书号书号书号书号+ + + +数量数量数量数量 荡贵挝倘讶姜剧扭稗廖尧溜燃耙咕嗜脚侍接醒矢庙配藩渝猛躬耀纹和帽堆软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024三、软件模块结构的改进三、软件模块结构的改进一、模块功能的完善化执行指定的功能部分执行指定的功能部分执行指定的功能部分执行指定的功能部分出错处理的部分。出错处理的部分。出错处理的部分。出错处理

145、的部分。亡嘻钵宋痒匈嫩减歹梢谐贩恼所豪毕滁弛侄鳖雹删还钳趁控泡嗽脱裂剧感软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 二、消除重复功能,改善软件结构。完全相似完全相似完全相似完全相似局部相似局部相似局部相似局部相似涌挠裴镇翌庙乞止衷音质质灰邮弦梁檄傈庭惹列弯掉醉撇蓬钥潘鲸孩舷忱软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024X XY YR1R1R2R2 物理输入相似部分X XY YR1 R1 R2R2R RX+R1 X+R1 Y+R2Y+R2R R相似模块的各种合并方案的示意图径

146、叭咙啮帐滤谈黄牛淤舟就屈冗县萨琅谨抑镭受犹舀瞳向瞄韧剧矣烟抉戳软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 三、模块的作用范围应在控制范围之内。作用范围作用范围作用范围作用范围: : : :是一个与条件判定是一个与条件判定是一个与条件判定是一个与条件判定 相关联的所有模块。相关联的所有模块。相关联的所有模块。相关联的所有模块。控制范围控制范围控制范围控制范围: : : :包括模块本身及其包括模块本身及其包括模块本身及其包括模块本身及其所有的从属模块所有的从属模块所有的从属模块所有的从属模块( ( ( (即供它调用即供它调用即供它调用即

147、供它调用的模块的模块的模块的模块) ) ) )。岩笨阅狞燃绽亡刃瓜吟达践必怖旺胳脑煽睬盖叫独牛冰站跪撞哈俯痪疾惯软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024模块的模块的模块的模块的控制范围控制范围控制范围控制范围: : : :包括模块本身及其所有的从包括模块本身及其所有的从包括模块本身及其所有的从包括模块本身及其所有的从 属模块属模块属模块属模块( ( ( (即供它调用的模块即供它调用的模块即供它调用的模块即供它调用的模块) ) ) )。A AB BD DC CE EF FGG关于模块的关于模块的关于模块的关于模块的控制范围示意图控制

148、范围示意图控制范围示意图控制范围示意图 箔胁换骂惶琴数俐骗廊搪锌架贷歹疮恍呵葛瘦移且溶挤私捅响浙枷肄断棠软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 一个模块的作用范围,是指受这个模块中的判定所影响的模块 。 关于模块的作用范围/控制范围的关系示意图 TopTopA AB BC CD DE EGGG G D DB BC C控制控制控制控制耦合耦合耦合耦合救及獭箱妈凭渭锑简豁而客普炽帧旅舜冻集培蘑蹋观闸洗浇隔干瘪券渊翁软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024TopTopC

149、CD DE EB2B2B BD DG G C C 理想的情况,应该使判定的作用范围和判定所在模块的控制范围尽可能地吻合(即应使模块的作用范围尽可能地在控制范围之内)。符合作用范围符合作用范围符合作用范围符合作用范围/ / / /控制范围的理想判定位置控制范围的理想判定位置控制范围的理想判定位置控制范围的理想判定位置 D DC CGGB BA A对于一个理想 SC图中的模块设计, 所有受到一个判定影响的模块应该都从属该判定所在的模块,最好位于作出判定的那个模块本身及它的直接下属模块。怀戎囱警节籍嘎郭权澡拾鹅足短琶紊悍庭琢踊巡重迁羔舌蓬洱鞋表悄觉塞软件工程导论课件全张海藩软件工程导论课件全张海藩

150、哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024计算实发工资取得工资数据计时计时工人实发工资计薪计薪工人实发工资编外编外人员实发工资计时制工资额税收扣款薪金制工资额常规扣款编外人员 工资编外人员税款编外人员扣款洋引缺崭份晕分铬盘洋样换邻安弦扎啤毋付彩突尚簿胀氢氧叉吊琴拧惰棉软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 四、尽可能地减少高扇出结构,随着深度增大扇入。扇入:指模块的上级模块数。 (即共有多少个模块需要 调用这个模块)扇出:指模块调用其下属模块 数目。调用的下属模块数应控制在小于3-4个模块。MMMM望猿醒司颗翟婚脯擞

151、迁耍语茵蹿帅狐玄溪厘扫耙倪亲阮咳架镀帚钵近困瓤软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024P PPP1P2QQQ1Q2Q3Q窗徒转铁有嘲亩辜辜腹洼星皑崩类束员派呀鸭堂瓦柬佛绚太崖峭纠击材拼软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 五、模块的大小要适中。50-100 模块的大小,可以用模块中所含语句的数量的多少来衡量。旬豪隧蛮馒泼援车硬拿终秤千蚕蚌咐幸驯硼盯顷肾写谴恭棒也汉蹭挖忘哉软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24

152、/2024 六、应设计出功能可预测的模块,但要避免过分受限制的模块。 A A潭泼槛圣跋媳员团民果永萝辉达凑黑药纷蚀涌傈夷卡爵桌呆帖逝西抽酗滞软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024发送部分ABABA AB BBCBCT3T3T2T2T1T1CDCDDEDEEHEHFJFJHKHKKLKLLMLMB1B1B2B2B3B3C1C1C2C2C3C3D DE EF FGGH HJ JK KL LMM请将下列给出的请将下列给出的请将下列给出的请将下列给出的 DFDDFD 图转换成图转换成图转换成图转换成SCSC图图图图覆碱庄突著砌漏钩返益僚

153、遇理墟船闹芭荡斡灶娠噪胯赃术秦壮憋磺腊烬娥软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024发送部分请完成下列描述的DFD图,导出它的SC图 美国某大学共有美国某大学共有200200名教师,校方与工会刚刚签定一名教师,校方与工会刚刚签定一 项协议按照协议,所有年工资项协议按照协议,所有年工资=$26,000=$26,000的教师工资将保的教师工资将保 持不变,年工资持不变,年工资$26,000100i 100i=i+1 F F T T循环体 - 循环流程符号的使用 朔逐逊恼诊呀寡淋阎丫拦待绍搏灭窥唬傲舅史缕日焊墨灌孙状干袋复菲畅软件工程导论

154、课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 2、判断有一个入口,但也允许有多个可选出口A:BA:B A=B ABX=?X=? x=1 x=2 x=3 x=4X=?X=? =1 =2 =3 =4 =5 - 多出口判断流程符号的使用 馏暗抹慌于选烧湍爹禹墩支胸鼓固钵家茨够犬炕漳看险桂卜暮贼赠厉姻渡软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 请利用程序流程图描述下列问题的程序结构 某汽车修配厂,有一个存有汽车零件的仓库,其中存有若干种零件,请编写一个查询程序,用于查询该库中某零件的库存量为

155、多少。 设该模块为 查询模块。请设计该模块的 程序结构。具体要求: 1、应具有重复查询功能; 2、应具有数据检测功能; 3、请利用程序流程图描述该模块的算法。 崎双谅叼藉吏蓉速线蹬款皮榷陆俞煌葱掩泥呆痰与眩嚎轨床祥卞皋牡语洲软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 顺序型二、N-SN-S 图A B 选择型- Nassi and Shneideman BpFTA ApFT p=1=2=n A1 A2 An do while(p) S do until (p) S 当型循环型 直到型循环型 多分支选择型 龙维唯超品时砧纷之钵篇肆漏框遏

156、棒狗觉寒瓢烃捎打刑馒烘霄忱喝蔬说诌软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024零件号100011000210003100041000510006库存量100012508866920203450建立零件库 (s数组), i=0 输入零件号 x do while(x!=s0i)i+i+x=s0i) Y N s0i输出 s1i 输入错误! 继续查询? Y N 跳出循环 龟蔗兰柬囚街掳官圾婪晒戳叮绅悯滦秉豢宅舶仁遏蒲药乏块袖饼俗拍赏结软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024三、P

157、ADPAD 图 直到型循环型A BAB p pA p pWhile P SUntil P S 当型循环型 顺序型 选择型A1 p pA2An =1=1 =2=2 =n=n 多分支选择型循环型- Problem Analysis Diagram鲤畔吟拾曳刹吹宪墩噬拟司站陕青沫刺落琢构来灾筹犹硝俯絮朵洞圃唤撇软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024s17s22=0while num(1-1000) 输入 age ageage =17=17 s17+ s18+ =18=18 s19+ =19=19 s20+ =20=20 s21+ =2

158、1=21 s22+ =22=22while i(17-22) 输出 sibeginend拖耻艇呻狡敖犀躬帘柒律即荤脐嗅转射奄畏体荷稳域预咨椽腕图夫浸尿宗软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 请为学生成绩管理系统中的学生成绩统计模块设计程序结构。 要求: 1、统计各专业、各班级的高等数学平均分; 2、并将统计结果输出; 3、按平均成绩以班级为单位由高到低排序; 4、请利用PAD图描述该模块的算法。 厉狮卉酱骂立术缴岩狭球捐籽栗渝概卢柞佛温歹肾龄苫碰饵曹苍砌冲甘煎软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业

159、业大大学学 韩静萍7/24/2024四、PDLPDL- Program Ddesign LanguagePDL PDL 是一种用于描述功能模块的算法设计和加工细节的语言。称为设计程序用语言。它是一种伪代码(Pseudo code) PDLPDL-关键词+自然语言圈圃阅过鲜灌杆胶原君品碱笔考廷掂趋济订刊时港科将骑些晨睹玩猛柞圭软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024(1)、数据说明:格式: TYPE AS 其功能是定义数据的类型和作用域说明: 1. 变量名:是一个模块内部使用的变量或模块间共用 的全局变量名。 2. 限定词1 :标明

160、数据类型 3. 限定词2 :标明该变量的作用域 TYPE number AS STRING LENGTH (12)颊辰蝶搭未寂贬赁春迢弗呛矽汕泅跺账拣迹众听襟伴讥拣句估聘朱糯解桂软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024(2)、程序块: PDL的过程成分是由块结构构成的,而块将作为一个单个的实体来执行。 BEGIN END弊仑咀建吉返啼糊戎寸潘觅缨友瞄孩拖焉煎隋幕垃道欧旁氰窍毁绸思填怯软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024(3)、子程序结构:把 PDL 中的过程称为子

161、程序。 PROCEDURE INTERFACE END驯碌语属幽构泵抡跑柱沸拦范教迸贬腆畸揖句逾拥氦棋慨桅逸嚼未斑么蚁软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024(4)、基本控制结构: IF THEN ; ELSE ; ENDIF - 选择型结构 秸瓢诚说桓参沙鞍粟掺塞笑披高会贯涯逾闷甚猎馅邱陶蛤罪迭夷拖色唬载软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 DO WHILE ; ENDDO REPEAT UNTIL ; ENDREP - 重复型结构 澳矢冀嘶直哩反眠恨律塘乞南铸

162、斡热炔谴杆滚枫扎烹费胞臆窍余须皖尖纳软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 DO LOOP ; EXIT WHEN ENDLOOP DO FOR ; ENDFOR - 重复型结构 脾隆群蚂烙骸临姐妓蛛它熏击咳倘俏肺垦讲枣磨工刽苟陇尿湾呜房提鹰除软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 - 多路选择结构 CASE OF ; WHEN SELECT ; WHEN SELECT ; DEFAULT: 缺省或错误case: ; ENDCASE珠喧疙粳贫慧挽忧睡诌凿嗡碗舰么烟

163、址惩不拜势枷镰夷良版成撤懊股寐衫软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 READ/WRITE TO - 输入/输出结构 款市糖角稻孜抗百怔撇釜恳恶裸沧犊吸篡铝胜重情林谚拒靡纤祷廉今哲局软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 Enter a vector Set Maximum to the value of the first element in the vector DO for each second one to the last IF value of

164、THEN element is greater than the Maximum value Set Maximum to value of the element ENDDO Print the Maximum valueInput array AMax=A(1)DO for I=2 to N IF MaxA(I) Set Max=A(I) ENDIFENDDOPrint Max多稳杜地灰观内池扳救驰沤翌肪组晨梗辱星塞悯构感物辫迅圾糜邓瓶割峭软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 设某模块的功能是:读入任意长的设某模块的功能是

165、:读入任意长的 一段英文课文,将其分解为单字。然后一段英文课文,将其分解为单字。然后 输出一个单词表,并指出每个单词在课输出一个单词表,并指出每个单词在课 文中所出现的次数。文中所出现的次数。 请按下列给出的文字要求,用 PDL 描述其该模块的算法瘤课卓钨撑詹亢沉擦悍嘴苯浓让鸦无缄丫椿雁椎鄂缀扼径厚坡米药征颓雾软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 execute process a execute process a REPEAT UNTIL condition X8 REPEAT UNTIL condition X8 exe

166、cute process b execute process b IF condition X1 IF condition X1 THEN BEGIN THEN BEGIN execute process f execute process f IF condition X6 IF condition X6 THEN REPEAT UNTIL condition X7 THEN REPEAT UNTIL condition X7 execute process i execute process i ENDREP ENDREP ELSE BEGIN ELSE BEGIN execute pro

167、cess g execute process g execute process h execute process h END END ENDIF ENDIF END END 请将下列的 PDL 表示的某模块的过程性描述,改为用:1、N-S 图 2、PAD 图表示苫淤灵搁恼虹谁还枣摆磅代还粒谨自铝轰勒霖靶峻虫渔相座喇绣拂急讲霖软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 ELSE CASE OF Xi ELSE CASE OF Xi WHEN condition X2 SELECT WHEN condition X2 SELECT

168、DO WHILE condition X5 DO WHILE condition X5 execute process C execute process C ENDDO ENDDO WHEN condition X3 SELECT process d WHEN condition X3 SELECT process d WHEN condition X4 SELECT process e WHEN condition X4 SELECT process e ENDCASE ENDCASE ENDIF ENDIF ENDREP ENDREP execute process j execute

169、process jEND END 青涣易颐磺刃奴以锯惯札犊旁盼构喉茶廊掠哟熊她偶阀茶熊砧寿柠芯蹦矗软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024第六章第六章 程序编码程序编码 编码的目的: : 是使用选定的程序设计语言,把模块的过程性描述翻译为用该语言书写的源程序(源代码)模块的过程性描述 (不可执行的) 源程序(可执行的)编码6.1 编码的目的峨陵耸筹肖鸦徊细就劳论揖踌韵椭妒倪焰遗聚庶绪耘伎氛罩州朴斋唆刨垂软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024清晰性效率开发时间程序输出

170、内存数语句数程序可读性最佳输出可读性最佳占内存最小语句数最少开发时间最短1-21-245321433351243521442-352-31编码要求结果 名次评判 项目Winberg 的程序实验结果仪污茎魁挫形喧楞秘急哨皿臣戌宋厂以残柔汁尔炉雪听听盔圾筛贼摩馆慧软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 结构化程序设计是一种设计程序的技术,它采用自顶向下逐步细化的设计方法和单入口(Single entry)单出口(Single exit)的控制结构。 这种控制结构包括有: 顺序、选择和循环。 6.2 结构化程序设计 (Structur

171、ed Programming)替裙吁稠刹斑道雹穷便嘲嚣造擎饿佑署漏盟稠宰吉喳醋蜒萌茸庞诌僵剂射软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 for(a=1,b=1;a=20) break; if (b%3=1) b+=3; continue; b-=5; a=20b%3=1 b+=3 a+ b-=5TFFT a=0,b=1单入口 M1单出口煌谆愈努投行亦苞刷愚镣摘荐淀逮恼肇兴猪缩桌四危思善考漫活捧作绣版软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024ABA,B,CBCAC打印BF

172、TFTTF打印C打印A If (A.LT.B) goto 120 If (B.LT.C) goto 110100 write(6,*) C goto 140 110 write(6,*) B goto 140 120 If(A.LT.C) goto 130 goto 100 130 write(6,*) A 140 continue - 单入口多出口结构 M2头坪抑罪件栓显交癸躲谴代箭渊袖掣靳视虑哩姥资汲饼沏妄平狄第煮术操软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024无节制地使用了GOTO语句所产生的程序流程 M 匀婉与许括花馆色著墨蜘

173、耍檄礼略烈履启卤酬曾峭唉幌嘴斟窥深弯查窥抉软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 一、结构化程序设计的原则1 1、使用语言中的顺序、选择、重复等有限的基本控制结构表示程序2、选用的控制结构只准许有一个入口和一个出口 3、程序语句组成容易识别的块(Block),每块只有一个入口和一个 出口4、复杂结构应该用基本控制结构进行组合嵌套来实现 5、严格控制GOTO语句书神虫赎彦袱拇板痒屹肉迪湾跺纯岿其懈潦婪矾愚呜家汤胀宠果森绰区恃软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 F

174、0=F(a); F1=F(b); if(F0*F1=0) X0=a; X1=b; for(i=1;i=n;i+) Xm=(X0+X1)/2; Fm=F(Xm); if(abs(Fm)eps|abs(X1-X0)0) X0=Xm; F0=Fm; else X1=Xm; finish: printf(“%dn”,Xm); 焦码胯黄能捞型彤鳞伴盔翼民冉讥使妹枷笛碟庇质介弹奎整怎登枯家叠惩软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024Begin(F0*F1)0 X0=Xm X1=Xm F0=Fm TTXmFTFF F0=F(a) F1=F(b)

175、11End22 i=n i i Q=abs(Fm)eps|abs(X1-X0)eps)庄浊陡蚌莽婉秩勉烫粤瘁阶棍澄岗啸挛卤香碍症蔑痘咙顿朽冲炯衅贩兑舔软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 F0=F(a); F1=F(b); if(F0*F1=0) X0=a; X1=b; for(i=1;i=n;i+) Xm=(X0+X1)/2; Fm=F(Xm); if(abs(Fm)eps|abs(X1-X0)0) X0=Xm; F0=Fm; else X1=Xm; printf(“%dn”,Xm); 亨肯纸浴麻开感利铆假檄皱蛋酒蔫浊稼窍御

176、膀隧附焦辰椎危釜箔剔倦招免软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 F0=F(a); F1=F(b); if(F0*F1=0) X0=a; X1=b; i=1; finish=0; while(i=n & finish=0) Xm=(X0+X1)/2; Fm=F(Xm); if(abs(Fm)eps|abs(X1-X0)0) X0=Xm; F0=Fm; else X1=Xm; i+; printf(“%dn”,Xm); 消腺征吃此札赃框偿阑胞复攀隙频圆佳哪孪喀兜澡法弗合条炒孙拓参叼嘱软件工程导论课件全张海藩软件工程导论课件全张海藩

177、 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024二、程序设计自顶向下,逐步求精1、程序设计是一个由粗到细的 “渐进” 的过程 2、程序设计不仅包括对控制结构的设计,也包括对数据结构的设计。 二者都要一步一步地细化。 采用逐步细化方法设计程序的步骤列出问题的初步解分解主要问题 继续细化利用图形工具或伪代码描述程序的详细逻辑佩势叮雷事措菜八告支茫传嗅审留战哈固李臃抄稿出霞瀑号吁佬烧峭恳店软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024用逐步细化方法设计一个程序,其功能为“从一组数中找出最大的数 ” 第一步:列出问题的初步解1:输入一组

178、数2:找出其中最大的数3:输出最大的数另纽刚迸义桌心蚌岳碱扔懒卿佯喝颜浊缓句病企暖驭谈胚僻缚遏看滦统瞪软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024第二步:分解主要问题2.1:首先读入一个数并设其为最大的数2.2:将该数逐次与其它数进行比较2.3:若有大于该数的则将其保存尤久虫撇航虹昂酪白钾议竭呵赢怪幻酮合死鹅疵绪踩蝇销卯釉偏斥赤仪蔗软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024第三步:确定数据结构3.1:定义一数组 A3.2:max=A(1)3.3:从A(2)至A(n)开始比较

179、3.4:若当前数大于max, 则令:max=A(I)滨磅傍厌老梦秩锐盆炯抄貌暖俐瓜这阔盈魁雕挫团波缔撤氮鞭弱里攫娘流软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024第四步:用PDL描述Input array ASet Max=A(1)DO for I=2 to N IF MaxA(I) Set Max=A(I) ENDIFENDDOPrint Max齐柴潘略尚痘扩此拌轧斤砷宁椭群郊眷押盎帝腺掠每镁迢宴运其导接挑章软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 请用逐步细化方法设计一

180、由下列描述的程序结构 读入一段任意长度的英语课文,将其分解为单字,然后输出一张单词表(list of words),并指出每种单词在课文中的出现次数。遏召吼龄杉哥精徊纳意霖觉公靛肇怎尸矩眶豺矛篡诡荆隘被倍灾模井蹄悉软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024三、程序复杂性的度量 程序复杂性主要是指模块内部程序的复杂性。它 直接关系到软件开发费用的多少,开发周期的长短和 软件和软件内部潜伏错误的多少。同时它也是软件可 理解性的另一种度量。烤撤外馅君妇骆是为剃栖疑胳趁啮甸建壶瞳唤厩驭百抽菌扣住络罗冰热程软件工程导论课件全张海藩软件工程导论

181、课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 它可以用来计算任何一个程序的复杂性; 对于不合理的程序,例如对于长度动态增长的程序, 或者对于原则上无法排错的程序,不应当使用它进行 复杂性计算; 如果程序中指令条数、附加存储量、计算时间增多, 不会减少程序的复杂性。为了度量程序复杂性,要求复杂性度量应满足以下假设:阉酌缅宿腥蜡天临探爸难侠刃茅猜所妓刚摄卉诲兄强鞭杆菇酪站瘦晓贺撬软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 如果设每行代码的出错率为每100行源程序中可能的错误数目。例如,每行代码的出错率为 1%,也

182、就是说,每 100 行源程序中就可能有一个错误。 1、代码行度量法 :统计程序中的源代码的行数较小的程序 -1.3%1.8%/行较大的程序 -2.7%3.2%/行臀压球筑泵浑痰位骂役磁碾孽育栈酷得血藐擦枚互巩仁酉派忘搅证歪坐叉软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 该方法是利用程序模块的程序图中环路的个数,来计算程序的复杂性的。为此,该方法也称为环路复杂度计算法。 2、McCabe 度量法:利用程序的控制流来度量程序的复杂性 它是一种退化了的程序流程图。即:把程序流程图中每个处理符号都退化成一个结点,而原来流程图中的流程线,则变

183、成连接不同结点的有向弧。字衫哭厢窝掉赐颇凰成嘻直毙邓泵鞠队曹没卜田实咽刮侣酪虞祝赏惑牧膳软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024(1)程序图符号缔椭砾誉狂枉荤劫恨纵逐茄扭注撞搪坊膊踢秤虑丹驭汪碘锐钧良泊懊镇安软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024的廷拾淤扑冈陶任吉蛹邱椎谊敌射勤窥佑戒更小祸误窍扔拆揍然啃遏迸竹软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024TC1C2CABED(2)从流程图导出程序图 A开始C1

184、BCED结束C2TF屹剁失敦遇米屁曼奋元叔揉节额瓶杖鄙悲田杏咎吱梗碳辈似抿翻姿捆粤痹软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024(3)环路复杂性的计算方法 V(G)=m-n+p 说明: V(G) 是有向图G中环路数; m: 为图G中弧数; n: 为图G中节点数; p: 为图G中强连通分量个数; A B C D E F G H K L I V(G)=13-11+1=3V(G)=13-11+1=3McCabe 的环路复杂性度量值为 3枝女本郝忻统斡量则厦稍毡滚陡灵桑廊幢弥轰绽乾怠臼报丹七郧茨袁怠豫软件工程导论课件全张海藩软件工程导论课件全

185、张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024请将右侧给出的程序流程图转换为程序图并计算其环路值。a=20b%3=1 b+=3 a+ b-=5TFFT a=0,b=1外瘟栏牙颧两猪倍佩嘎蓉描你勃虱气烙渴梗瓣鬼廖冠两结侨险镰涪唁锋送软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 程序的环路复杂度则取决于程序控制流的复杂度,也就 是取决于程序结构的复杂程度。当程序内分支或循环个数增 加时,则相应地环域复杂度也随之增加。因此,它是对测试 难度的一种定量度量,也能对软件最终的可靠性给出某种预 测。(4)、环路复杂度的用途V(G)

186、=10V(G)0 A=A+1 IF A10 THEN X=A ELSE Y=Z END IF IF Y0 THEN PRINT G E LSE PRINT K END IF STOP 膳瞳杠乓希眠且重惕鳖玄嗅像赊琼汉扰渐天傀济扦球驰钾肃妈据匹济磅正软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024四、程序效率 程序效率是指程序的执行速度及程序占用的存储空间。程序编码是最后提高运行速度和节省存储机会,因此在此阶段不能不考虑程序的效率。洗渤个吁郡乃狸橱巍浸底叙贬棉谩着蕾耗婿狼岁蝗辊戈制叁迄页康缎婪聊软件工程导论课件全张海藩软件工程导论课件全张海

187、藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20241、算法对效率的影响源程序的效率与详细设计阶段确定的算法的效率有着直接的关系。当我们把详细设计翻译并转换成源代码之后,那么算法效率就会反映为程序的执行速度和存储容量的要求搏表腻瘩趋涣黄犬裸栓傀淹挺重析资诀粳仪憾昏儡尚浴取变帕抓赫蔡我翅软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024(1)在编程序前,尽可能化简有关的算术表达式和逻辑表达式(2)仔细检查算法中的嵌套的循环,尽可能将某些语句或表达 式移到循环外面(3)尽量避免使用多维数组(4)尽量避免使用指针和复杂的表(5)不要混淆数据

188、类型,避免在表达式中出现类型混杂(6)尽量采用整数算术表达式和布尔表达式(7)选用等效的高效率算法转换过程中的指导原则是:诊桌蔽沪镣宪谴逊蝶足液浴站揖诫苗输添闹赚妄骇屏搂皖缄怕羞渣冷牲剔软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 (i+1) (j+2) 20 320 3 i=1 j=1i=1 j=1请设计求解下列问题的算法驻煮蘑讨嘴绑嘴仑译且骡附婴栽豆蔫慧承孔其寸镶靳师念绎坎方堰资幢厘软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024main()main() int i,j; f

189、loat sum; sum=0.0; int i,j; float sum; sum=0.0; for(i=1;i=20;i+) for(i=1;i=20;i+) for(j=1;j=3;j+) for(j=1;j=3;j+) sum=sum+(i+1)*(i+1)*(j+2); sum=sum+(i+1)*(i+1)*(j+2); printf(“sum=%dn”,sum); printf(“sum=%dn”,sum); (i+1) (j+2) 20 3 i=1 j=1 内循环次数 20X4=80 外循环次数 21 总循环次数 101 礁悄晰负跪冷有助攫翱肋京陵输醛萨涧京郊恢茸妊翁览挞春旦监

190、有政晃十软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024main()main() int i,j; float sum; sum=0.0; int i,j; float sum; sum=0.0; for (j=1;j= for (j=1;j=3 3;j+);j+) for (i=1;i= for (i=1;i=2020;i+);i+) sum=sum+(i+1)*(i+1)*(j+2); sum=sum+(i+1)*(i+1)*(j+2); printf(“sum=%dn”,sum); printf(“sum=%dn”,sum); 应把

191、变化范围大的循环变量放在内层。 内循环次数 3X21=63 外循环次数 4 总循环次数 67何款凋颧铺填拆近坷白拙戏歪革炯画蕴夯仓凤溃提肯龋符腮漏儿摊程申毯软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024main()main() int i,j; float sum; sum=0.0; int i,j; float sum; sum=0.0; for ( for (j j=1;j=1;j=3 3;j+);j+) for (i=1;i= for (i=1;i=2020;i+);i+) sum=sum+(i+1)*(i+1)* sum=sum

192、+(i+1)*(i+1)*(j+2)(j+2); ; printf(“sum=%dn”,sum); printf(“sum=%dn”,sum); j+2 共计执行了 3X20=60次 蹲再钎造挡氟醛腋巢逝世薯季趋缅奋际碾恰镰岔虾源稼碱刻蠢秋元蓟漫既软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024main()main() int i,j; float sum; sum=0.0; int i,j; float sum; sum=0.0; for (j=1;j=3;j+) for (j=1;j=3;j+) k=j+2k=j+2; ; for (

193、i=1;i=20;i+) for (i=1;i=20;i+) sum=sum+(i+1)*(i+1)* sum=sum+(i+1)*(i+1)*k k; ; printf(“sum=%dn”,sum); printf(“sum=%dn”,sum); j+2 共计执行了 3次 减少了57次应尽量把与循环变量无关的运算移到循环外去。霸杀痞失我今排萤作冗句狞燕游坍师哪好飘狈督特足灰反幌枯不边锦烦沮软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024main()main() int i,j; float sum; sum=0.0; int i,j;

194、float sum; sum=0.0; for (j=1;j=3;j+) for (j=1;j=3;j+) k=j+2; k=j+2; for (i=1;i=20;i+) for (i=1;i=20;i+) sum=sum+ sum=sum+(i+1)*(i+1)(i+1)*(i+1)*k;*k; printf(“sum=%dn”,sum); printf(“sum=%dn”,sum); i+1 共计执行了 60X60=120次 液蒋匆酿彰磨蚌砖苛幌冶笋件仅挟阐摘湾凯肋耸啤耽含硕念则梧俏熏汾彪软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/202

195、4main()main() int i,j; float sum; sum=0.0; int i,j; float sum; sum=0.0; for (j=1;j=3;j+) for (j=1;j=3;j+) k=j+2; k=j+2; for (i=1;i=20;i+) for (i=1;i=20;i+) m=i+1m=i+1; ; sum=sum+m*m*k; sum=sum+m*m*k; printf(“sum=%dn”,sum); printf(“sum=%dn”,sum); i+1 共计执行了 60次 荚傣陡烁遮星柔碳痛肛煞钵涧钓患篓篱素粤稚殴咏怖蝉卧傀可锭盲篇搓辙软件工程导论课件

196、全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 从键盘输入 10个整数,要求按有小到大的顺序将它们输出。 请采用比较交换法和选择法对上述10条数据进行排序,然后分别对这两种方法进行比较,并从程序的运行了效率的角度对两个程序进行比较。靛嘴撰磕弘裁界啊胺电游她熔呆橡兼挤独匠暂盯挖倦玩闭丑沙无并孤跋乔软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 main() main() int a10,i,j,t; int a10,i,j,t; for(i=0;i10;i+) for(i=0;i10;i+) sc

197、anf(“%d”,&ai); scanf(“%d”,&ai); for(i=0;i9;i+) for(i=0;i9;i+) for(j=i+1;j10;j+) for(j=i+1;j10;j+) if(ajai) if(ajai) t=aj; aj=ai;ai=t; t=aj; aj=ai;ai=t; for(i=0;i10;i+) for(i=0;i10;i+) printf(“%2d”, ai); printf(“%2d”, ai); 驴豹沁薯枷求艇软用叶问倡眯焕终冗揽郸哇德雍飘闰札郎罗擅桑给醛坷诣软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/2

198、4/2024 for(i=0;i9;i+) for(i=0;i9;i+) k=ik=i ; ; for(j=i+1;j10;j+) for(j=i+1;j10;j+) if(ajak) if(ajak) k=jk=j; ; if(kj) if(kj) t=aj;aj=ak;ak=t; t=aj;aj=ak;ak=t; 吟氯照埠感较愈嫩墙找贷宝双秧唉终离衡牢拆静镰悲倒窿茅坷述忧晚坦喊软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024五、程序设计风格 Coding style 1、保持控制流的直线性 (1)、对多入口和多出口的控制结构 要作适当

199、的处理要作适当的处理 If C1 then goto 30 If C1 then goto 301010S2S2 20 If 20 If C2 C2 then goto 40then goto 40goto 10 goto 10 3030S1 S1 goto 20goto 20 40 Sn 40 Sn C1S1S2C2SnTT多入口循环结构多入口循环结构砰唱遂釜供恩聂币子竣启定得小头传曰雀菠芹掀呀风傀看询痈容取挚壮劲软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 If C1 then S1 If C1 then S1 else S2 e

200、lse S2 While (not C2) While (not C2) do S2 do S2 C1S1C2SnTTS2S2改进后的循环结构改进后的循环结构重复环节法芝锥魂满卒赴瘪耘组稍葵惯他骚补勺鳖浆萎藤汪冬笔晴池奖琼取锌瓶蹬渝软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 10 if (not C1) then goto 20 10 if (not C1) then goto 20 if (not C2) then goto 30 if (not C2) then goto 30 S1 S1 goto 10 goto 10 20

201、S2 20 S2 30 Sn 30 Sn 多出口循环结构多出口循环结构C1S2TTC2S1S Sn n摧吹年娠矗闲汐啥爵姿蕴岸咐既桥旅笆酌侥箍盅舱蔼搞死指狼羞婶安麓哄软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 while (C1 and C2) do while (C1 and C2) doS1 S1 If (not( C1) then S2 If (not( C1) then S2Sn Sn 经过处理后的单出口循环结构C1 and C2S2TC1S1SnT逻辑分析法粕穆锤札兽钠渴斧蒂透赖重煽蜕茎焰豪渍锐鞘例晴忧撼缩搀谩剂脉碗耐融软

202、件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 while (C1) do Begin S1 If C2 then goto 10 else S2End 10 Sn EXIT:=false while (C1 and (not EXIT) do Begin S1 If C2C2 then EXIT:=true else S2 End 10 Sn 标志变量法标志变量breakbreakExit doExit doExit forExit for嘘郸论暮凹惺纱痰苍瓮作焊鞭粹挫怔军斋捍挺筷也夫毯秆望汰娠孽膘捻荡软件工程导论课件全张海藩软件工程导

203、论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 SUM=0 SUM=0 Do Do input x input x if x=0 then if x=0 then exitexit dodo SUM=SUM+x SUM=SUM+x loop until SUM1000 loop until SUM1000 Print SUM Print SUM 使用 Ture Basic 语言中的专用语句退出循环上面程序的功能是:从键盘输入一个数,并累加到总和中。当总和超过1000或输入为 0时则停止输入,并打印出总和。倔厕贺振锈吵厂舶震泌阐苟姜敲儿谱蛇呀膝佰乞叮采褪洋肄接灯绅集自蓑软

204、件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024if (N=0) then if (N能被能被2整除)整除)then print “正偶数正偶数” else print “负数负数” 导致二义性的 then-if 结构(2)、避免使用模糊或费解的结构 if (N0 while (C10) S1=S1+C1; S1=S1+C1; if (S11000) if (S11000) goto goto labellabel; ; labellabel: S2=a+b;: S2=a+b; 穆官礁霖洋陌讥豢节蛆汲窃遁懂腔颜钳科觉宽讨说剥斥帧径菱豢梧菱辰

205、子软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 goto的目的地最好在同一控制结构内部,或者离本结构出口相近的地方。 1010 IF(.NOT. C) GOTO 20 IF(.NOT. C) GOTO 20 S S GOTO 10 GOTO 10 2020 CONTINUE CONTINUE while(C1) dowhile(C1) do Begin Begin S1 S1 if C2 then goto 10 if C2 then goto 10 End End 10 Sn10 Sn 1 12 2柄瓢属秩龟硅琶虐仆纷再吊姚舍箩颓偏

206、阀励皑冰稗掠锨逗蒂等缮朽慧汉衷软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024C1C1C2C2C3C3TTTFe1e1e2e2e3e3 2、GOTO 语句的常见用法 请将右侧的具有多个循环出口的结构改写为单出口结构憋非匪哇漏琵韧量旱挪怒化络圭善虚咨溶侥糕乓丹舆蚜裹兢烷磅皮帐羹爪软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024C1C1C2C2C3C3TTTFe1e1e2e2e3e3(用GOTO语句提前退出循环) 方法一:EXIT2=false; EXIT3=false; while(C

207、1) and (not (EXIT2) and (not( EXIT3) do begin if C2 then EXIT2:=true; if C3 then TXIT3:=true; end if(EXIT2) then goto 20; if(EXIT3) then goto 30; goto 40; 20: C2为真时执行的语句 gotot 40; 30: C3为真时的语句 40: Sn 后续语句标志变量鸿爱翼拄纂盛锥喉怎倪标贝裸簿岭糜农维殊萌巴宾待跃苇慕每跋碗水瓦链软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 while C

208、1 do begin if C2 then goto 20; if C3 then goto 30; end goto 40; 20: 从e2退出前执行的语句 gotot 40; 30: e3 退出前执行的语句 40: Sn 后续语句 (用GOTO语句提前退出循环) 方法二:浆闽茂兜扩首同澄需沤罕泊澈狂奥死帮讫谩眼谆耘噬乌舜近串瞻埠训谓弗软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024IF (X .LT. Y) GOTO 30IF (Y .LT. Z) GOTO 50SMALL=Z GOTO 70 30 IF (X .LT. Z ) GO

209、TO 60 SMALL=Z GOTO 70 50 SMALL=Y GOTO 70 60 SMALL=X 70 CONTINUE 请将右侧用FORTRAN语言编写的源程序改用C语言编写,要求程序的清晰度要好small=x; if (ysmall) small=y; if (z1) (B=0)X=X/ATF(A=2) V (X1)X=X+1TF输入的: A,B,X2,0,42,0,3满足语句覆盖的测试用例如下a ac ce e-ace (L1)ace (L1)abd (L2)abd (L2)abe (L3)abe (L3)acd (L4)acd (L4)L1L1臣卒嚷艺杯墒蛮菱太罪周碌债虽啦畔窥咋

210、囊霍蹲佰溃塑攘味窍碧嘘刑虱娥软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024判定覆盖(分支覆盖) 所谓的判定覆盖就是设计若干个测试用 例,运行被测程序,使得程序中每个判断的 取真真分支和取假假分支至少经历一次。犬残芭繁血棠锐婿璃处两贼酝瑰填攻腊昂殖傻敦课限邀昨白蔼澜贡且端隆软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024b bd da ac ce e(A1) (B=0)X=X/ATF(A=2) V (X1)X=X+1TF2,0,42,0,3取“真”分支测试用例如下a ac ce e-

211、a ab bd d-1,1,11,1,1取“假”分支测试用例如下L1L1L2L2肄痔岩崭刘语陨彻珊坞羞笨豌彪醛层雌拳四凳卒惮缸理尘泽锑烦绍汰茂陕软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20242,1,12,1,2取“真假”分支测试用例如下a ab be e-b bd da ac ce e(A1) (B=0)X=X/ATF(A=2) V (X1)X=X+1TFL3L3巡绦宣聘稻啸碰窗嫉探凡八溉忙漱疹店虎阴艾娃团耶叔脑鸦晾掇饭寄卵钱软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20243,0,

212、33,0,1取“真假”分支测试用例如下b bd da ac ce e(A1) (B=0)X=X/ATF(A=2) V (X1)X=X+1TFa ac cd d-L4L4峻早全记缸朴邻铅伍奴哆侩溶沿擒史藏瘪棍雌股豺羡钢史赦治走拳逮讳凶软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024条件覆盖所谓的条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。 站民擎杨石益茄剥凉樟做鹤瓤供蝎匆任仗盗左漓绊雀传惮疲咸屈濒汗面闭软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍

213、7/24/2024b bd da ac ce e(A1) (B=0)X=X/ATF(A=2) V (X1)X=X+1TF判断条件取真值取假值判断(一)A1T1T1B=0T2T2判断(二)A=2T3T3X1T4T4设条件的取值标记绷传怯舀弧粘仗致腑粥浓童喳栏充拎翁喂叠咆何完呐弊怎泵狭胞塞岗促子软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024b bd da ac ce e(A1) (B=0)X=X/ATF(A=2) V (X1)X=X+1TF判断判断条件条件取真值取真值取假值取假值判断判断( (一一) )A1T1T1B=0T2T2判断判断(

214、(二二) )A=2T3T3X1T4T4设条件的取值标记 条件覆盖可选取的 (第一组测试用例)如下表 测试用例通过路径条件取值覆盖分支 (2,0,4),(2,0,3)(2,0,4),(2,0,3)ace(L1)ace(L1)T2T2 T3T3 T4T4c,ec,e(1,0,1),(1,0,1)(1,0,1),(1,0,1)abd(L2)abd(L2)T1T1b,db,dT1T1 T2T2 T3T3 T4T4坪劳算苟让困晋裳震匠师尤领拾削绵帽父终拥薯吻怔绒坚撕宏友俊濒宝拎软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024b bd da ac c

215、e e(A1) (B=0)X=X/ATF(A=2) V (X1)X=X+1TF判断判断条件条件取真值取真值取假值取假值判断判断( (一一) )A1T1T1B=0T2T2判断判断( (二二) )A=2T3T3X1T4T4设条件的取值标记 条件覆盖可选取的 (第二组测试用例)如下表 测试用例通过路径条件取值覆盖分支 (1,0,3),(1,0,4)(1,0,3),(1,0,4)abe(L3)abe(L3)T1 T2 T3 T4T1 T2 T3 T4b,eb,e(2,1,1),(2,1,2)(2,1,1),(2,1,2)abe(L3)abe(L3)b,eb,eT1 T2 T3 T4T1 T2 T3 T

216、4渔瓢团颇脂篷晃孟贰勋勾楞烩饮宁顿咯拇刻曾醇籍氦隔脑胎缚玲今婴馁饮软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024判定/条件覆盖 所谓的判定/条件覆盖就是设计足够的测试用 例,使得 判断中每个条件的所有可能取值至少执 行一次, 同时每个判断本身的所有可能判断结果 至少执行一次。 著么趾村橱柞庸赂谬咙滑喀曙右求姥谅房啤愿咙纸轿惜寇乓遏曙湃飘孔党软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024b bd da ac ce e(A1) (B=0)X=X/ATF(A=2) V (X1)X=X+

217、1TF判断判断条件条件取真值取真值取假值取假值判断判断( (一一) )A1T1T1B=0T2T2判断判断( (二二) )A=2T3T3X1T4T4设条件的取值标记 判定/ /条件覆盖可选取的 测试用例 如下表 测试用例通过路径条件取值覆盖分支 (2,0,4),(2,0,3)(2,0,4),(2,0,3)ace(L1)ace(L1)T1 T2 T3 T4T1 T2 T3 T4c,ec,e(1,1,1),(1,1,1)(1,1,1),(1,1,1)abd(L2)abd(L2)b,db,dT1 T2 T3 T4T1 T2 T3 T4耐挠箔宋膊趴订捅表爹紧驹寺袭麻茵需像指肮支慢搅怂四匙麓亿袋毅居苯软件

218、工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024条件组合覆盖 所谓的 条件组合覆盖就是设计足够的测试用 例,运行被测程序,使得 每个判断的所有可能的 条件取值组合至少执行一次。坚呐或胳序赘撩噶世篓思扣颖威考郧悲兽鸭俄都呜纲风涡保锄龋霍毛刀佬软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024条件标记第一个判断取真假分支 b bd da ac ce e(A1) (B=0)X=X/ATF(A=2) V (X1)X=X+1TFA1B=0A1B 0A 1B = 0A 1B 0判断判断条件条件取真值取

219、真值取假值取假值判断判断( (一一) )A1T1T1B=0T2T2判断判断( (二二) )A=2T3T3X1T4T4设条件的取值标记T1 T2T1 T2 取真分支T1 T2T1 T2T1 T2T1 T2 取假分支 取假分支 取假分支T1 T2T1 T2肿购淘哪份耘碾兰坐刽呼僵跑钧肖锁庸绍决钡斑焉倍男贸串紫恭巩通吩骗软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024条件标记第二个判断取真假分支 b bd da ac ce e(A1) (B=0)X=X/ATF(A=2) V (X1)X=X+1TFA=2X1A=2X 1A 2X 1A 2X 1判

220、断判断条件条件取真值取真值取假值取假值判断判断( (一一) )A1T1T1B=0T2T2判断判断( (二二) )A=2T3T3X1T4T4设条件的取值标记T3 T4T3 T4 取真分支T3 T4T3 T4T3 T4T3 T4 取真分支 取真分支 取假分支T3 T4T3 T4铸母蛾渊闸淤宾簿瘩觅砸彰罢慷符疤炽陇毯解氦庚赊崩城至阐甘伯官酷札软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024b bd da ac ce e(A1) (B=0)(A1) (B=0)X=X/AX=X/AT TF F(A=2) V (X1)(A=2) V (X1)X=X+

221、1X=X+1T TF F设条件的取值标记测试用例通过路径条件取值覆盖组合号 条件标记第一个判断取第一个判断取真假真假分支分支A1 B=0 A1 B=0 T1 T2 T1 T2 取真分支A1 BA1 B00 T1 T2T1 T2 取假分支A A 1 B=01 B=0 T1 T2 T1 T2 取假分支A A 1 1 B B00 T1 T2 T1 T2 取假分支(2,0,4),(2,0,3)ace L1L1T1 T2 T3 T4,(2,1,1),(2,1,2)abe L3L3T1 T2 T3 T4, , , ,(1,0,3),(1,0,4)abe L3L3T1 T2 T3 T4, , , ,(1,1

222、,1),(1,1,1)abd L2L2T1 T2 T3 T4, , , ,着睦拢丘年紧晋堂纽堕班楷芒自辨甲刀椎碘应蝎鸦衫椽硫怖怒挚芭焉保需软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 路径测试就是设计足够的测试用例,覆盖程序中每一条可能的程序执行路径至少测试一次,如果程序中含有循环(在程序图中表现为环)则每个循环至少执行一次。 二、路径测试法苗酮治革藩瞩熏冒贼蛋它病惯歌沂半户萧恰爹煞渡法悯俞女虞承随医禾租软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024abcdea-c-e L1a

223、-c-e L1a-b-d L2a-b-d L2a-b-e L3a-b-e L3a-c-d L4a-c-d L4b bd da ac ce e(A1) (B=0)X=X/ATF(A=2) V (X1)X=X+1TF点覆盖边覆盖嘲氰假酋未攀雄邪犊冶泽暂缀佛讹吮喝劲缅萍窜苦摧栓葬殆褥谐国悉梨枉软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024b bd da ac ce e(A1) (B=0)(A1) (B=0)X=X/AX=X/AT TF F(A=2) V (X1)(A=2) V (X1)X=X+1X=X+1T TF F判断判断条件条件取真值取真

224、值取假值取假值判断判断( (一一) )A1T1T1B=0T2T2判断判断( (二二) )A=2T3T3X1T4T4 路径测试可选取的 测试用例 如下表 测试用例通过路径条件取值 ace L1L1 abd L2L2 abe L3L3 acd L4L4 (2,0,4),(2,0,3)T1 T2 T3 T4(1,1,1),(1,1,1)(1,1,2),(1,1,3)(3,0,3),(3,0,1)T1 T2 T3 T4T1 T2 T3 T4T1 T2 T3 T4怕菲红耸巫埠酶爬谦酝体铺钳弦钟用油甸录鞋纵罚驮烃朗两泄鸽箱蝎隘玫软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学

225、 韩静萍7/24/2024测试路径覆盖结点/边覆盖标准 点覆盖 边覆盖 路径覆盖 根据左侧给出的程序图,请填写下列表1 1a ab bc cd de e2 23 34 4a-c-da-c-da-c-d, b-ea-c-d, b-ea,b,c,d,ea,b,c,d,ea-e-d,b-e a-e-d,b-e a-e,b-c-da-e,b-c-da,b,c,d,ea,b,c,d,e题浚磋医混盲旁胎玛葱持栖毫足勉筹伏饯多舆黔啊媳憾卒矢昌船垫午潍胸软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20248.4 黑盒测试用例的设计 黑盒测试法是根据被测程序功

226、能来进行测试,所以通常也称为功能测试。用黑盒测试法设计测试用例,有4 种常用技术: 等价分类法 边界值分析 错误猜测法 因果图法誊颜羔谊邮整圃雪崇捂拆洗页陨援犹记集解敖域沮悲曝舆盛鲸篷衍蹋鲜义软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024一、等价分类法 所谓等价分类,就是把输入数据的可能值划分为 若干等价类(等价类是指某个输入域的子集合。 在该 集合中,各个输入数据对于揭露程序中的错误都是等 价的)。 因此,可以把全部输入数据合理地划分为若 干等价类,在每一个等价类中取一个数据作为测试的 输入条件,这样就可以少量的代表性测试数据,来取

227、得较好的测试结果。 仆拾光纹退冶貌躲删欧抿捶沂尖坐纳踪沧呐匠院乎该窟谩客攒横厩检咖黎软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 是指对于程序的规格说明来说,是合理的 有意义的输入数据构成的集合。利用它可以检 验程序是否实现预先规定的功能和性能。 有效等价类 杖佛底腹至酱谴靶草庚去琶棵俯秤酗已朱酚捧鞋闹护朝快顽胰扼禹妈精渡软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 是指对于程序的规格说明来说,是不合理 的,是无意义的输入数据构成的集合。程序员 主要利用这一类测试用例来检查程

228、序中功能和 性能的实现是否不符合规格说明要求。 无效等价类 判建沟佳淳肺披擦户嘶膝质京悦抽赔吱彪恕员枚捎惯进同没吏晌碰坍贱亮软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 1、如果输入条件规定了取值范围,或者是值 的个数,则可以确立一个有效等价类和两个无效 等价类。确定等价类的原则:例如: 序号值可以从 1到999 一个有效等价类: 1 序号值 999 两个无效等价类: 序号值 999 舷盘占屎堆姓郎丰锡甥还户劣宏婚乙霞午刁兹露呆敞勃踏靠纪惭柑逼彬酌软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7

229、/24/2024 2、如果输入条件规定了输入值的集合,或 者是规定了“必须如何”的条件,这时 可确立一 个有效等价类和一个无效等价类。例如:在 C 语言中对变量标识符规定为 “以字母打头的 串”。 所有以字母打头的构成为有效等价 类; 而不在此集合内(不以字母打头)归于无价等 价。屎潍仕企妆氓蹬琢庐哺坑妇狗胚沿镭瑰轨贱凉眯江注款眠蒸绣矮菜尤贼逼软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 3、如果输入条件是一个布尔量,则可以确 定一个有效等价类和一个无效等价类。析衅挡残添向辅降毅凡室涎汰婉并截螟晶庚思热俘之札脆拼甜头醇刷敛菱软件工程导

230、论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 4、如果规定了输入数据是一组值, 而且程 序要对每个输入值分别进行处理。这时可为每一 个输入值确立一个有效等价类此外再针对这组确 立一个无效等价类,它应是所有不允许输入值的 集合。例如:在教师分房方案中规定对教授、副教授、讲师 和助教分别计算分数,做相应的处理。因此可 以确定4 4个有效等价类为教授、 副教授、讲师 和助教,以及 1 1个无效等价类它应是所有不符 合以上身份的人员的输入值的集合。虏炕毯膀磅品届谱硅纹廉盂番嘱歼胰滋砰哇猴殊缝幌跃桐厢隶咕奸池吉坡软件工程导论课件全张海藩软件工程导论课件全

231、张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 5、如果规定了输入数据必须遵守的规 则,则可以确定一个有效等价类(符合规则) ,和若干个无效等价类(从不同角度违反则)。 例如:在C C 语言中规定了“一个语句必须以分号; 作为结束”,这时,可以确定一个有效等价 类,以 “;”结束,而若干个无效等价类应 以“:,、:,、:,、:,、” 等。碑厚浑奄明顽吱解皋返影左勾曼培闹殿苇攻冰翰费嘉降榔窟粤麦独颧津差软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 6、如果确知,已划分的等价类中各元素 在程序中的处理方式不同, 则应将此等

232、价类 进一步划分成更小的等价类。刊犬嫉卤确肘资如曳飘获赎爵瞩聋扰疵窗掖猿粘编筷逾恬俯鉴挠酿先赫娃软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 1、划分等价类不仅要要考虑代表“有效”输 入值的有效等价类,还需考虑代表 “无效”输入 值的无效等价类。采用这一技术要注意以下两点: 2、每一无效等价类至少要用一个测试用例 ,不然就可能漏掉某一类错误,但允许若干有 效等价类合用同一个测试用例,以便进一步减 少测试的次数。 勺琴剿愚铰釜旋恐赘纷窝膊沿盛牢彰缕表讣竞衷望躺脱碌笼堪荧呐午向柜软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨

233、滨工工业业大大学学 韩静萍7/24/2024二、确立测试用例输入条件有效等价类无效等价类 里扇兆锯增却潍氯耶瞥丙缀镊柬刨茅减启辖求焰惩凄狡岳虞激惺衣寓徽督软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024确立测试用例原则 为每一个等价类规定一个唯一的编号。 设计一个新的测试用例,使其尽可能地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。 设计一个新的测试用例,使其仅覆盖尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。 裂芋谱烧柒揪友皖泅哟田匣倡鄙恐羌顷饱咸牙死弛讼评醛撩竖琴腾鲜拼二软件工程导

234、论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 在某一个PASCAL 语言版本中规定 1、标识符是由字母开头,后跟字母或数字 的任意组合构成。有效字符数为8个,最大 字符数为80 个; 2、标识符必须先说明,后使用; 3、在同一个说明语句中,标识符至少必须 有一个。 请利用等价分类法为以下提供的内容设计测试用例肠酮箩爆舱哪捅琴柒薪刀邵肥及是舷珐嫩翁淫簿吉链以安玉狂因莲裕掘赁软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024输入条件有效等价类无效等价类标识符个数标识符字符数标识符组成第一个字符标

235、识符使用1个(1)(1)(1)(1),多个(2)(2)(2)(2)0个 (3)(3)(3)(3) 1个(4)(4)(4)(4)0个(5)(5)(5)(5),8 8 8 8个个个个(6) (6) (6) (6) ,80808080个个个个(7)(7)(7)(7)字母(8)(8)(8)(8),数字(9)(9)(9)(9)非字母数字字符(10)(10)(10)(10),数字(11)(11)(11)(11)字母(12)(12)(12)(12) 非字母(13)(13)(13)(13) 先说明后使用(14)(14)(14)(14) 未说明已使用(15)(15)(15)(15) 息皋庶雪羊喉杂俘情滴镍纯罐份

236、棚遣疫忌按鹰诫耙钎拄狰霖帖叼泽馈洗拧软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024输入条件有效等价类无效等价类标识符个数1个(1)(1)(1)(1),多个(2)(2)(2)(2)0个 (3)(3)(3)(3)标识符字符数1个(4)(4)(4)(4)0个(5)(5)(5)(5),8 8 8 8个个个个(6) (6) (6) (6) ,80808080个个个个(7)(7)(7)(7)标识符组成字母(8)(8)(8)(8),数字(9)(9)(9)(9)非字母数字字符(10)(10)(10)(10),保留字(11)(11)(11)(11)第一个

237、字符字母(12)(12)(12)(12)非字母(13)(13)(13)(13) 标识符使用先说明后使用(14)(14)(14)(14)未说明已使用(15)(15)(15)(15) VAR x, T1234567: REAL; BEGIN x:=3.414; T1234567:=2.732; 户崭歌酌萤靛宰捅私疼傀脉磐沫萧寒埂挂淬吮枝誊衅樟捣纪明然龋替桂叁软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024输入条件有效等价类无效等价类标识符个数1个(1)(1)(1)(1),多个(2)(2)(2)(2)0个 (3)(3)(3)(3)标识符字符数1

238、个(4)(4)(4)(4)0个(5)(5)(5)(5),8 8 8 8个个个个(6) (6) (6) (6) ,80808080个个个个(7)(7)(7)(7)标识符组成字母(8)(8)(8)(8),数字(9)(9)(9)(9)非字母数字字符(10)(10)(10)(10),保留字(11)(11)(11)(11)第一个字符字母(12)(12)(12)(12)非字母(13)(13)(13)(13) 标识符使用先说明后使用(14)(14)(14)(14)未说明已使用(15)(15)(15)(15) VAR : REAL; VAR T12345678: REAL; VAR T$: CHAR; VAR

239、 GOTO: INTEGER; (11)玄闽酱昌扔世伙钞虐仔旗士窥渊谤斋裸蓄裕谤独寅夯祖罩法咬愧蒋哪积纵软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024输入条件有效等价类无效等价类标识符个数1个(1)(1)(1)(1),多个(2)(2)(2)(2)0个 (3)(3)(3)(3)标识符字符数1个(4)(4)(4)(4)0个(5)(5)(5)(5),8 8 8 8个个个个(6) (6) (6) (6) ,80808080个个个个(7)(7)(7)(7)标识符组成字母(8)(8)(8)(8),数字(9)(9)(9)(9)非字母数字字符(10)(

240、10)(10)(10),保留字(11)(11)(11)(11)第一个字符字母(12)(12)(12)(12)非字母(13)(13)(13)(13) 标识符使用先说明后使用(14)(14)(14)(14)未说明已使用(15)(15)(15)(15) VAR 2T: REAL; (13) VAR PAR: REAL; BEGIN PAP:=SIN(3.14*0.8)/6; (15)日幼昂寡顶痉浙倡脂瞪宛号浑描能刹颈结狼芜洁皂瘫曹城辣言砧嘉环咸耙软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 某工厂公开招工,规定报名者年龄应在161635 3

241、5 周岁之间(到1995年6月30日为止),即出生年月不早于1960年7月,不晚于1979年6月。 报名程序具有自动检验输入数据的功能。如出生年月不在上述范围内, 将拒绝接受,并显示“年龄不合格”等出错信息。 请试用等价分类法, 设计出生年月的等价分类表 。二、请利用等价分类法为以下提供的内容设计测试用例辣雨九嗽就厂帐双甜双柑届棺盔匆芋逝酪患衡舔忻买羊媳镍硝践雪抨伴溜软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 假定已知出生年月是由 6 位数字字符表示,前4 位代表年,后2 位代表月,则可以划分为 3 个有效等价类和 7 个无效等价类

242、。1、划分出生年月等价分类表输入数据有效等价类无效等价类出生年月 6位有效数字字符 有非数字字符 少于6个数字字符 多于6个数字字符 对应数值 196007-197906196007-197906 196007 197906 197906月份对应数值 在1-12之间 等于 “0” 12堑吭卑讶渠懒牲灸涡爹苞撮蔡顺挝锁笼畏禄眼僵娟命获桶毕晌休窜弥密施软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20242、设计有效等价类需要的测试用例输入数据有效等价类无效等价类出生年月 6位有效数字字符 有非数字字符 少于6个数字字符 多于6个数字字符 对应数值

243、 196007-197906196007-197906 196007 197906 197906月份对应数值 在1-12之间 等于 “0” 12测试数据期望结果测试范围 197011输入有效、纪赞斧酝市泅蔷华讹仑虏机董达泄典梁茫曹售赫循遇彪灸垒定涩氟莽拽是软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024输入数据有效等价类无效等价类出生年月 6位有效数字字符 有非数字字符 少于6个数字字符多于6个数字字符 对应数值 196007-197906196007-197906196007-197906196007-197906 196007 196

244、007 196007 197906 197906 197906 197906月份对应数值 在1-12之间 等于 “0” 12测试数据期望结果测试范围 MAY,70MAY,70输入无效 有非数字字符1970519705输入无效输入无效 少于6个数字字符19680111968011196008196008195512195512196200196200197222197222年龄不合格年龄不合格输入无效输入无效 多于6个数字字符 197906 等于 “0” 123、为每一个无效等价类至少设计一个测试用例倔每迅币娥紧警哺晨萌蚁屏陕勋地缺尤微冷知倔戮玩微痈总歉乞辑宋厉孔软件工程导论课件全张海藩软件工程

245、导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024二、边界值分析法 采用边界值分析法来选择测试用例,可使 得被测程序能在边界值及其附近运行,从而更 有效地暴露程序中潜藏的错误。赴谤郡衙九昌胺若阮隔鳃擒姻碳拔松敏持晚神磊淮分穴撵幼滔趾悄澄接紧软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 If (196007 = value(birthdate) = 197906) Then read(birthday) Else write “invalid age!” 35 周岁周岁 16周岁周岁196006197907不合格年

246、龄月份对应数值月份值为 1 月月份值为 12 月 196701 197412输入有效月份值 12 196700 197413 输入无效沿透音该嘶蒲团助戈柳晚喘殆守泌硫绷氖姑饯钎跋崎蜒藕垂粳迹觅傣观莹软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20241、等价分类法的测试数据是在各个等价类允许的值域内 任意选取的,而边界值分析法的测试数据必须在边界 值附近选取。2、在公开招工的例子中,采用等价分类法设计了 8 8 8 8个测试 用例而边界值分析法则设计了13 13 13 13 个, 所以,一般来说 ,用边界值分析法设计的测试用例要比等价分类法的

247、代 表性更广,发现错误的能力也更强。但是对边界的分析 与确定比较复杂,它要求测试人员具有更多的经验和长 找性。等价分类法与边界值分析法的比较意门右恬疗解羡屏喘驳陌啮蔽舟故宵儿沈惶绳鸥漾馅柜遍蝎七轻分脚篇叁软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024三、错误猜测法 所谓猜测,就是猜测被测程序在哪些地方容易 出错,然后针对可能的薄弱环节来设计测试用例。 显然它比前两种方法更多地依靠测试人员的直觉与 经验。所以一般都先用前两方法设计测试用例然后 再用猜测法去补充一些例子作为辅助的手段。饶篷走草摩矢秸瞪邯翘舍老菌虽捶潦娠狡材永贪刃翱杰瘤低寞诀

248、芝茫袄墓软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024四、因果图法 因果图是借助图形来设计测试用例的一种系 统方法。它适用于被测程序具有多种输入条件, 程序的输出又依赖于输入条件的各种组合的情况 因果图是一种简化了的逻辑图,它能直观地 表明程序输入条件(原因)和输出动作(结果) 之间的相互关系。傻妊稿倔父吞出茫圈淮代瘴氯粒域寄闪雨田冷殴汗栗薛铺利部多画标焕傲软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 测试方法的选用测试策略 1、在任何情况下都应该使用边界值 分析的方法。 2、

249、必要时用等价类划分法补充测试 方案。 3、必要时再用错误猜测法补充测试 方案。 4、对照程序逻辑,检查已经设计出 出的测试方案。可以根据对程序 可靠性的要求采用不同的逻辑覆 盖标准,如果现有测试方案的逻 辑程度没有达到要求的覆盖标准 则应再补充一些测试方案。彰绣便缄烧署诉持悄虑侣伎烦米宪来忽剑搏别帝较式棕蓖各屹幼残棚告座软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 本章总结 策略种类黑盒测试白盒测试测试对象程序的功能程序的结构 测试要求逐一验证程序的功能程序的每一组成部分至少被测试一次 采用技术等价分类法 边界分析法错误猜测法 因果图

250、法 逻辑覆盖法 路径测试法凳顷溅耐杰猴邦属蛤趴料睫扮子瞥汕衫径坛箕皱欠溅贫艳攘膏戚躇呜缠赢软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024微软的软件产品开发过程微软的软件产品开发过程一、微软的组织结构一、微软的组织结构市场营销部市场营销部内部营运部内部营运部产品开发部产品开发部研究部门研究部门榜羔律发窃锯垣贱风枉呛跟香佃菱预咽刮殷吻沦芜捡妄身靠更棋矢澡记求软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024二、新产品的产生过程二、新产品的产生过程新产品项目的提议新产品项目的提议市场分析与

251、预测市场分析与预测技术可行性分析技术可行性分析产品研发实施步骤产品研发实施步骤高层论证和审批高层论证和审批项目确立和执行项目确立和执行产品开发产品开发 我最大的心得是,一个产品一定要找到能 够真正适用的场合,不能只是为了技术而从事 技术,为了研究而从事研究,却不管用户对你 所研究的技术和产品有没有需求。否则,无论 你的技术是多么优秀、多么先进,恐怕你的产 品在市场上都无法获得成功。 - 微软张益肇煽椅语尘准笼挠慎篆帝钾疡有掩帧处棒炳锥措台锦胖斧三习畸扦谩悄拔烬软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024陈宏刚微软亚洲研究院商务高级经理

252、1982年兰州大学 计算机学士1987年西安交通大学 计算数学硕士1987年赴美留学,并获华盛顿大学 应用数学博士学位 后又在该校做博士后研究1995年加盟微软公司 在微软总部先后做过 测试工程师(Software Test Engineer ) 测试 组长(Software Test Lead) 测试 经理(Test Manager ) 参加过微软产品 Windows 95, Exchange Server 4.0 和和 4.5 , Internet Explorer 4.0 和和 4.5, SQL Server 2000的开发和测试概舟能真绷拥壶娇汇座郭夕件凝舒戏吐水秦叁堡跌猜现撕臣牧喂撒

253、夹碟辰软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024三、微软的产品团队三、微软的产品团队软件开发项目管理软件测试产品管理后勤管理用户培训- 微软产品团队的组成微软产品团队的组成互相沟通互相沟通妻悯共题待詹旭柞根慌氏推壬裴邯要诸厩郁夹排费乐羚阅徊赦师渊豁桑痢软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 各个团队的角色及主要目标团队名称分担的任务产品管理项目管理软件开发软件测试用户培训后勤管理 确定产品的运景,获取并确定用户的需求,开发并维护商业安全,满足用户的需求制定开发功能规范

254、,在团队内进行沟通和协商,维持产品进度并报告产品状态,保证能够尽快尽好地在产品约束条件下发布产品开发出满足设计规范和用户要求的产品开发测试策略和计划,保证在解决了所有已知问题后再发布产品保证使用文档要全部很清楚地写出来,提高用户使用产品的技能,保证大多数用户都能够充分利用产品的功能保证产品能够平稳地发展答羹米部褥押嫉祝诅硝朽潞方秒茄已植空剿豪键丘遗吴彻旭河肥窥斜郴酮软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024产品管理团队的组织机构Product Management Team产品单元经理(PUM)产品管理团队(产品总经理GM)产品计划

255、( 负责人)市场分析和研究(负责人)产品推销(负责人)公共关系(负责人)产品单元经理(PUM)湛极猩擞氖秋促离抨丝恕喝柞镀嫂耿刮杂草愚腔巾彰疥牛山乔励掺打杭陨软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024项目管理团队的组织机构Program Management Team项目团队的管理(GPM)产品按时发布项目协调产品结构设计钢芹梭条预颓怂密饶屹馒溜昌帽拧考爵让武尺煎坑省冠牢呼辆趾佃陪坑旷软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024软件开发团队的组织机构Software Dev

256、elopment Team软件开发团队 (SDT)数据库(Database)系统服务(System service)用户界面(User Interface)开发管理(Development Management)商彪勋阴徊绘捧阀万韦涡姚岳埂杜洪较映痔谓陕歉胺投俏仔卫淡赛倚荫条软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024软件测试团队的组织机构Software Testing Team软件测试 团队 (STT) 测试管 理 配置测试(Configuration Testing)一致性测试(Compliance Testing)集成测试(I

257、ntegration Testing)强力测试(Stress Testing)Bug 团队砸郡褒春程琅再编恰玲梨住借驱呛灵赦较意纲俱辆砧浮粘则坤帽拍烁楷祟软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 Exchange 2000Windows 2000项目经理25人约 250人开发人员140人约1700人测试人员350人约3200人测试人员/开发人员2.5 1.9 Exchange 2000 和Windows 2000中的人员结构避蔚涸絮巷尖坚池咆才菊举钒治包父摆患剥团尽池天茵猾天步峦化豹橇禹软件工程导论课件全张海藩软件工程导论课件全张

258、海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024- 微软现代软件开发的典型体系软件研究院产品部产品规划人员产品管理团队软件开发团队软件测试团队技术部颧蒜离怯堰奥妈优滑孵浩朵淀榜州希椿州幢列挪智华紫很刑二频欲瀑襄拼软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024四、微软的软件开发特点四、微软的软件开发特点(1) 文档齐全,项目规范清楚(2) 开发人员相互阅读其他人新编写代码(3) 所有代码都有清楚的注释产品版本调试版本 (Dev)发布版本 (Ship) 管理上管理上隐撼细猾肃睛灵沥形抢牙耀嚏彤蕊天如偶异廷锯挝认苇叛辖刀疽喘氓沫民

259、软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 软件开发第一一阶段各团队分担的任务团队名称分担的任务产品管理项目管理软件开发软件测试用户培训后勤管理 分析是否应该做这个新产品,尽量证明该产品是值得做设计新产品的目标,以及具体的实现方法开发一些技术原型,检验新产品是否有意义,并向大家展示新产品未来的样子。另外还要对开发过程中一些大的结论提出意见判断该新产品是否有用、是否可接受分析用户的需求 对长期的支持管理提出建议肿菱巩贰妥汁婆玫众泉踩逝俊朵结亩个磨波优疥圃悍皱晒臭呐杏豫级痔甩软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨

260、工工业业大大学学 韩静萍7/24/2024 软件开发第二二阶段各团队分担的任务团队名称分担的任务产品管理项目管理软件开发软件测试用户培训后勤管理概念设计和市场推销计划 / 进度表逻辑设计、功能规范,以及总体计划 / 进度表物理设计和开发计划 / 进度表设计评估和测试计划 / 进度表用户性能支持设计和用户培训计划 / 进度表 对长期的支持管理提出建议叉辙宜遏潭魏耀淡笔厂熔添待怠芜荔诚醚冀也巢痘扔遂员酚口滤矮启集触软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024微软亚洲研究院 Microsoft Research Asia1998 年11月5

261、日,微软公司在北京设立 微软中国研究院2001 年11月1日,正式更名为 微软亚洲研究院 目前研究技术 数字多媒体多通道用户界面无线及网络亚洲信息处理技术科研技术人员120多位国际一流学术刊物和会议上发表论文400余篇恤睹哨墟囚灼律分祭池敏梦堡么吸淫铂缅揪督臼窒桑渍渣驱惨气泪劫蹿字软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 潘云鹤校长迟惠生校长张钹 教授Victor Zue刘明雷先生郑南宁副校长国际专利微软专家顾问委员会百余项现任院长兼首席科学家张亚勤博士Windows XPWindows XPOffice XPOffice XP现

262、任副院长:张宏江博士沈向洋博士挨纠痔庚峨攻政摇滨婚眶佑圃洁子风铝秘蔬商钨泻灰着丫频嫉脯俄锨涤百软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 微软研究院的科研方向微软研究院的研究方向微软研究院的神圣使命使未来的计算机能够达到: 看、听、学,能用自然语言与人类进行交流。新一代用户界面新一代多媒体技术1、多通道用户界面组2、语音技术组1、网络多媒体组2、多媒体计算机组3、多媒体管理组4、形象计算组5、网络图形组新一代信息处理技术1、自然语言组 新一代无线互联技术 2、无线网络组 认亲墓侥猴半迟海砒疫包婪德榴佣蕉堑孰杖又妆窒干闭歧页死擒猜怜淹

263、膜软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 现代软件开发对我们的要求是方方面面的,微软在这 些方面积累的经验和遵循的规则非常全面,在软件开发的 整体过程中,从某意义上其 “艺术” 性高于“科学” 性,因 为融入了艺术的产品有着超群的竞争力,而这一切又都归 功于软件产品的主体-人。人的最大浅能的挖掘和团队 最大可能的互助必将创造成功的产品。 - 微软 凌小宁博士藐夫账抄被祟傍便简滑经殴嗓妥宙托琐灼贡瑟叔镀设拳兼邀纺事棍辊鸵督软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20241、利

264、用因果图产生测试用例的基本步骤 1、分析软件规格说明书中,哪些是原因(即输 入条件或输入条件的等价类),哪些是结果(即 输出条件)并给每个原因和结果赋予一个标识。 2、分析软件规格说明书中所描述的语义,找出 原因与结果之间、原因与原因之间对应的是什么 关系?根据这些关系画出因果图。 撇氮遮庐钩螺桩闰蕾悍蚤浇管肪斟凯岂烟妊枫横妄寓卡寄铆瑚筷茵医蜡秆软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024 3、由于语法或环境的限制,有些原因与原因 之间、原因与结果之间的组合情况不可能出现 。为表明这些特殊情况,在因果图上用一些记 号标明约束或限制条件

265、。 4、把因果图转换为判断表 5、把判断表的每一列拿出来作为依据,设计 测试用例。欣超集乎勒值绷慷含罢垢逸娄乳术滑么吨展萎簇豌植托鳞苯缔恢律矢莆剐软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/20242、在因果图中出现的基本符号C1E1恒等: 表示原因与结果之间是一对一的 对应关系。若原因出现,则结果 出现。若原因不出现,则结果也 不出现。 C1E1非: 表示原因与结果之间的一种否定关 系。若原因出现,则结果不出现。 若原因不出现,反而结果出现。通常在因果图中用通常在因果图中用 CiCi 来表示原因,用来表示原因,用EiEi表示结果表示结果其基

266、本符号如下图所示。其中各其基本符号如下图所示。其中各结点结点表示表示状态状态,可取,可取值为值为“0 0”或或“1 1”。“0 0”表示表示某状态不出现某状态不出现,“1 1”表示表示某某状态出现状态出现。主要的原因和结果之间的关系如下。主要的原因和结果之间的关系如下: :吼惋奉箕掘赁陌撕吉饯引钻肇囱切擒蕉莲瘤桔饯蘸港步团账洞苫姻迂涕筐软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024或或或或()()()(): 表示若几个原因中有一个出 现,则结果出现,而当这几 个原因都不出现时,结果才 不出现。C1C1E1E1C2C2C1C1E1E1C2

267、C2与与与与():():():(): 表示若几个原因都出现,则结果 才出现若几个原因中有一个不出 现,结果就不出现。喉技椭哑毋隧扁冉澎蔚飘卯钳褂版灾瑟捌奸票圃怂娘拱回馋安画蒋讨技郡软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024第第9章章 软件测试软件测试4、把因果图转换为判断表把因果图转换为判断表5、把判断表的每一列拿出来作为依据,设计测试用例把判断表的每一列拿出来作为依据,设计测试用例一、在一、在 因果图中出现的基本符号因果图中出现的基本符号通常在因果图中用通常在因果图中用 CiCi 来表示原因,用来表示原因,用EiEi表示结果表示结

268、果其基本符号如下图所示。其中各其基本符号如下图所示。其中各结点结点表示表示状态状态,可取,可取值为值为“0 0”或或“1 1”。“0 0”表示表示某状态不出现某状态不出现,“1 1”表示表示某某状态出现状态出现。主要的原因和结果之间的关系如下。主要的原因和结果之间的关系如下: :犀儿说卒关盛拢社渊谷塔铺洋舶猖夜掇逝式篓燃嗜殴示您矢阐眷其搭俄朔软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024第第9章章 软件测试软件测试举例举例 设有一个处理单价为设有一个处理单价为5 5角钱饮料自动售货机角钱饮料自动售货机其规格说明为,若投入其规格说明为,若

269、投入5 5角钱角钱或或1 1元钱元钱的硬币的硬币 ,再按下,再按下橙汁橙汁或或啤酒按钮啤酒按钮,则相应的饮料就送出来;若售货机,则相应的饮料就送出来;若售货机 没有另钱没有另钱找找,则一个显示,则一个显示另钱已找完另钱已找完的的红灯亮红灯亮,这时在投入,这时在投入1 1元硬币元硬币并按下按钮后,饮料不送出来而且并按下按钮后,饮料不送出来而且1 1元硬币也退出来元硬币也退出来; ;若有另钱若有另钱找,则应显示找,则应显示零钱找完零钱找完的红灯灭的红灯灭, 在送出饮料的同时退还在送出饮料的同时退还5 5角硬币。角硬币。团异靖弛券心疆罩哥色节复获样忿针壬谁莉蘸谣肾迭虑嫌绕坟袁份难怜历软件工程导论课件

270、全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024第第9章章 软件测试软件测试利用因果图设计测试用例的步骤利用因果图设计测试用例的步骤1 1、分析这一段说明,列出原因和结果、分析这一段说明,列出原因和结果序号序号原原 因因序号序号结结 果果1.售货机有零钱找售货机有零钱找2.1售货机售货机 零钱找完零钱找完灯亮灯亮2.投入投入1元硬币元硬币2.2退还退还1元硬币元硬币3.投入投入5角硬币角硬币2.3退还退还5角硬币角硬币4.按下橙汁按钮按下橙汁按钮2.4送出橙汁饮料送出橙汁饮料5.按下啤酒按钮按下啤酒按钮2.5送出啤酒饮料送出啤酒饮料涪硝码读忻辜纸部壳掇庇

271、娶闹砧旧雁舍爽分筑亢庆桔遏遣耽族葬黎眶哑茁软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024第第9章章 软件测试软件测试2 2、画出因果图、画出因果图序号序号中间结点中间结点11投入投入1元硬币且按下饮料按钮元硬币且按下饮料按钮12按下橙汁或啤酒的按钮按下橙汁或啤酒的按钮13应当找应当找5角零钱并且售货机有零钱找角零钱并且售货机有零钱找14钱已付请钱已付请21 1.22 2.13231112143.24254.5.按下按钮按下按钮该找该找5角角钱已付清钱已付清可找可找5角角售货机有售货机有零钱找零钱找投入投入1元元硬币硬币投入投入5 角角硬

272、币硬币按下橙汁按下橙汁按钮按钮按下啤酒按下啤酒按钮按钮售货机售货机“零钱零钱找完找完”灯亮灯亮退还退还1元元硬币硬币退还退还5角角硬币硬币送出橙汁送出橙汁饮料饮料送出啤酒送出啤酒饮料饮料庞驶腮奠掳洪枕缩捆钒硷恬牺躺乏谍坏浑煮惠部蓬卯拓惩秒割册徐内糕绕软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024第第9章章 软件测试软件测试3 3、将因果图转换成判定表、将因果图转换成判定表1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 01 1 1 1 0 0 0 0 11 1 0 0 1 1 0 0 11 0 1 0 1 0 1 0

273、1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 2 3 4 5 6 7 8 910 1 2 3 4 5 6 7 8 920 1 2 3 4 5 6 7 8 930 1 2 1 23

274、45 条条件件 中间中间结果结果 11 121314 1 1 01 1 01 1 01 1 01 1 01 1 01 1 0 1 1 0 0 0 01 1 00 0 01 1 1 0 0 01 1 00 0 00 0 0 1 1 01 1 00 0 00 0 0 0 0 01 1 00 0 01 1 1 0 0 01 1 00 0 00 0 0 21 22232425 结结果果 测试用例测试用例 y y y y y y y y y y y y y y y y 0 0 00 0 01 1 01 0 00 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 00 0 00 0 00 0

275、 00 0 00 0 01 1 11 1 00 0 00 0 00 0 01 1 11 1 10 0 01 0 00 1 0 1 1 1 0 0 00 0 00 0 00 0 0 序序 号号通常在因果图中用通常在因果图中用 CiCi 来表示原因,用来表示原因,用EiEi表示结果表示结果其基本符号如下图所示。其中各其基本符号如下图所示。其中各结点结点表示表示状态状态,可取,可取值为值为“0 0”或或“1 1”。“0 0”表示表示某状态不出现某状态不出现,“1 1”表示表示某某状态出现状态出现。主要的原因和结果之间的关系如下。主要的原因和结果之间的关系如下: :序号序号中间结点中间结点11投入投入

276、1元硬币且按下饮料按钮元硬币且按下饮料按钮12按下橙汁或啤酒的按钮按下橙汁或啤酒的按钮13应当找应当找5角零钱并且售货机有零钱找角零钱并且售货机有零钱找14钱已付请钱已付请盎缅鹏沼嫌袋霍拒涵戒锹嗡地织具谅坍械散渤霹班酞励馏鲸爵羞磨蛆噪东软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024三、实体-关系图 - DD(Data Dictionary) 在数据密集型应用问题中,对复杂数据及数据之间复杂关系和建模将成为需求分析的重要任务。显然,这项任务是简单的数据字典机制是无法胜任的。 为此,在下面的内容将介绍适合于复杂数据建模的图形工具- 实体-关

277、系图。 寸寒钞椎钞份姜庭筏滔剂邦籍藤莲绘熙汽压壹蝇按瘫记加悟侧需蜕轩僚消软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024(1) 数据对象、属性与关系数据(data) - 是信息的载体,它能够被计算机识别、存储和 加工处理。它是计算机程序加工的“原料” 对象(Object) - 是一个包含数据以及这些数据有关的操作的 集合属性(Property) - 是用于描述数据对象特征的标识码型号制造商车体类型颜色买主关于汽车属性描述表宜宜砰拂飞炔届串薪祸饺施踌溉瘤倚渐靖简以金溯槽龙监喘臭壬详炬脐禄软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈

278、尔尔滨滨工工业业大大学学 韩静萍7/24/2024(2) 实体-关系图0:11:10:多1:多- 实体-关系图中数量对应关系的表示符号制造商制造车- 一个简单的实体-关系图和数据对象篇壹硫漾伶菩停蓖竞撮襄朗流乱沫滓九雏苇氖寻寺极髓熙净抒灭饲乙拷陆软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024制造商许可证经销商车货主储存制造合同制造汀德咋谭梧折饱淳广乌武舆臃郝糊庇唐染挚嗅翻宁象休辉会硼扭赐裸狭蛛软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024汽车欧洲市场 美国市场国内市场 上海广州法

279、国德国瑞典意大利 汽车销售管理问题中 “汽车”的层次实体-关系图膳攒领谨莹儡铬英鳞蹭搪膀易赶耀羽朵九植肝嘎纤刘训鞘话桓澈郡悟丘搽软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024第六章 Visual Basic 中的常用事件P79纷梦畔狈雷牧圃聋妄匀彦砌嫂傍览勇箕吼缆霜郡豌玩甜庆蹿蛰炙爸咽毛雪软件工程导论课件全张海藩软件工程导论课件全张海藩 哈哈尔尔滨滨工工业业大大学学 韩静萍7/24/2024第第1章章 软件工程概述软件工程概述 以以免费信箱免费信箱为例为例睡仓回牌检半纂鄂堪劫富擂表疡姆然皋弊谁啤轰辑缺虏岿部隙仪推盘吾缨软件工程导论课件全张海藩软件工程导论课件全张海藩

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

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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