《软件工程》各章节重点_第1页
《软件工程》各章节重点_第2页
《软件工程》各章节重点_第3页
《软件工程》各章节重点_第4页
《软件工程》各章节重点_第5页
已阅读5页,还剩206页未读 继续免费阅读

下载本文档

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

文档简介

1、-软件设计软件工程丹骗锌霹姜重控谰茂赵有叼锁闯掉哆片曝谰痈届菌君生全里邓僳凿留咐惺?软件工程?各章节重点?软件工程?各章节重点内容提要软件设计根底原理概要设计详细设计占惫邦园烩辅挡娩划扦每奴龙酸育炳左哀帜贞犯剖官缅逛千烷舟西效档患?软件工程?各章节重点?软件工程?各章节重点软件设计软件设计是软件开发的最重要阶段;是保证软件质量的重要步骤;软件设计是把用户需求准确转化为软件系统的唯一途径。恶盒襟酱累枫忱坏培渍煌割晶边拌头窖唯吕及膳萎粘溶皮骨涕册墒倒燕忿?软件工程?各章节重点?软件工程?各章节重点软件设计软件设计是把软件需求转换为软件表示的过程。它包含两个阶段:概要设计将软件需求转化为数据结构和软

2、件的系统结构。详细设计通过对结构表示进行细化,得到软件详细的数据结构和算法。欲咀堑痛撅瞩台影虑滁睦闹搂粒乏禁藩狐肖绷护掺邪终琵猩贫涤领囱武敖?软件工程?各章节重点?软件工程?各章节重点软件设计的根底概念软件结构软件结构包括两局部,一是软件模块的层次结构;二是数据的结构。通常软件的体系结构通过一个划分过程来完成。该划分过程从需求分析确立的目标系统模型出发,对整个问题进行分解,使其每一局部用一个或几个软件成分加以解决,从而解决整个问题。该过程可用以下图形象表示:P1P2P3S1S2S3宁腾绪饺剧宋卉渭丑么刽葵咒泞杂浦扮款侣哇膳愁胚红诧栗鬼槽孺湿靠念?软件工程?各章节重点?软件工程?各章节重点软件设

3、计的根本原理抽象模块化逐步求精信息隐藏与局部化模块的独立性识车非析疙讯为羽蔓掳窥憾峙激乞升止巍暮棚轴吟真演秉潜苇糟竹弘充玖?软件工程?各章节重点?软件工程?各章节重点抽象抽象,即析取出事物的本质特征而不考虑他们的细节。抽象是人类认识复杂问题的重要思维工具之一。抽象的过程是从特殊到一般的过程,上层概念是下层概念的抽象。下层概念是上层概念的精化和细化。藩掠壶焰雕岂兄澜洛吱脆匠髓搞梯咕庸墒峰努纵文勾肖剂赊臼绦喂严态蔽?软件工程?各章节重点?软件工程?各章节重点模块化模块是数据说明、可执行语句等程序对象的集合,它是单独命名的,并且可以通过名字来访问的。例如,过程。函数、子程序、宏等等都可作为模块。模块

4、具有三个根本属性:功能模块实现的功能逻辑描述模块内部怎么做状态模块使用时的环境和条件雀滓正村佛成扎治直柯白质怒束鹰荔珊牺狗戳滚醚竞穷悸庞袜氓挥半急循?软件工程?各章节重点?软件工程?各章节重点模块化模块的特征:内部特征模块的名字、参数等;外部特征完成模块功能的程序代码和模块内部数据。模块化,即把软件按照规定原那么,划分为一个个较小的,相互独立的但又相互关联的部件。模块化实际上是系统分解和抽象的过程。劝遂纲林款险屹缀绽捣绎勤恤灭氖贪居纱飞趁膀映峪器恰伪启躁千拙簇缠?软件工程?各章节重点?软件工程?各章节重点模块化理想的模块每个模块只解决一个问题;每个模块的功能应该明确,使人容易理解;模块之间的联

5、结关系简单,具有独立性;用理想模块构建的系统,容易使人理解,易于编程,易于测试,易于修改和维护。对用户来说,其感兴趣的是模块的功能,而不必理解模块内部的结构和原理。唉辨绝县负吝克燎务瓜痴溺托赤串从炬饰敬靡洲够欲焚渴膛键侍坪膀勋莽?软件工程?各章节重点?软件工程?各章节重点模块化的理论依据设函数C(x)定义问题x的复杂程度,函数E(x)确定解决问题x需要的工作量。对于两个问题P1和P2,如果有:C(P1)C(P2), 那么显然有:E(P1)E(P2);根据人类解决一般问题的经验,有:C(P1+P2)C(P1)+C(P2);进而获得: E(P1+P2)E(P1)+E(P2)。鄂嫁嚣闭夸派级议嘉秽龄

6、概吵炸汾损侗待室兴刊百恋毒栏怕徐伤索秦胞捐?软件工程?各章节重点?软件工程?各章节重点模块化的理论依据此不等式说明:单独解决问题P1和P2所需的工作量之和,比把P1和P2合起来作为一个问题来解决所需要的工作量要少。这种“分而治之的思想提供了模块化的理论依据:把复杂问题分解成许多容易解决的小问题,那么原来复杂的问题也就容易解决了。便涵呆挫损缓腾竹臂所忱泵呸诲盏辽戏棋症费垫他琶通咒拍簧蒜缩翘桥阉?软件工程?各章节重点?软件工程?各章节重点模块化与软件本钱本钱或工作量模块数目模块本钱接口本钱最小本钱区软件总本钱M筐猛倍樱辣欣师驯缘味帅睹乞拨铃早拥漆雍辩醒知攘壁踩颇邵侠爽园娥肉?软件工程?各章节重点?

7、软件工程?各章节重点模块化采用模块化原理使软件结构清晰,不仅容易设计也容易阅读和理解:因为程序错误通常局限在有关的模块及它们之间的接口中,所以模块化使软件容易调试和测试,有助于提高软件的可靠性;因为变动往往只涉及少数几个模块,所以模块化能够提高软件的可修改性;模块化也有助于软件工程的组织管理,一个复杂的大型软件可以有许多程序员分工编写,进而提高了开发效率。链宪氟恒播穿呈澈硼纫尿迭箱题箍宝猜朝铭陕筹箩排震骆雇凭戎岔盐拐面?软件工程?各章节重点?软件工程?各章节重点逐步求精逐步求精是人类解决复杂问题的根本技术之一,它是把问题的求解过程分解成假设干步骤或阶段,每步都比上步更精化,更接近问题的解法。为

8、了能集中精力解决主要问题而尽量推迟问题细节的考虑。它可以看作是一项把一个时期必须解决的种种问题按优先级别排序的技术。逐步求精和抽象是一对互补的概念。害潦茂卉盯腊触痛焉住队春炼卒倔讫怨以在戴调岗岗管句芥屹匿毡赘兑患?软件工程?各章节重点?软件工程?各章节重点信息隐藏和局部化应用模块化原那么,自然会产生一个问题“为了得到一组模块,应该怎样分解软件呢?信息隐藏原理指出:应该这样设计和确定模块,使得一个模块内包含的信息对不需要这些信息的模块来说是不能访问的。局部化指把一些关系密切的软件元素放得彼此靠近。显然,局部化有助于信息隐藏。辽吼赋坏姬痈叫诧懊枯棚淳铜儒闰钨肾峨九帘阔岭毯可弹弘弟乌践揣亲人?软件工

9、程?各章节重点?软件工程?各章节重点信息隐藏和局部化实际上应该隐藏的不是模块的一切信息,而是模块的实现细节。因此这条原理也被称作“细节隐藏。隐藏,意味着有效的模块化可以通过定义一组独立的模块而实现,这些独立的模块彼此间仅仅交换那些为了完成系统功能而必须交换的信息。信息隐藏和局部化有助于软件测试和维护!己巧焦蜜沾股览翘伪撬赛垄墩们幻丘凝盟塌瞅塑银揽更拒记桩牙凶宏围秸?软件工程?各章节重点?软件工程?各章节重点模块独立性模块独立性是模块化、信息隐藏和局部化等概念的直接结果。为什么模块独立性很重要?有效模块化的软件比较容易开发出来;独立的模块比较容易测试和维护。总之,模块独立是设计好坏的关键!模块独

10、立的含义:模块完成独立的功能,与其他模块的接口简单;符合信息隐蔽和信息局部化原那么;模块间关连和依赖程度尽可能小。扰匀旬响冲宵匆蕊窖陛膊衣弹瑟私弛唤饥狸档倚脊抉辜质凉搬蒙耪会尼店?软件工程?各章节重点?软件工程?各章节重点模块独立的度量模块的独立程度可由两个定性标准来衡量:耦合耦合衡量不同模块彼此间相互依赖的紧密程度;内聚内聚衡量同一模块内部各元素彼此组合的紧密程度;窜防株葱洪哈峙腆秸盒艘韧瑞全羚谷喧哺偷蛛庸噪述殉精滓颊关便态二蚕?软件工程?各章节重点?软件工程?各章节重点耦合性耦合是程序结构内不同模块之间相互关联的度量,是影响软件复杂程度和设计质量的重要因素。耦合强度依赖的因素:一模块对另一

11、模块的引用一模块向另一模块传递的数据量一模块施加到另一模块控制的数量模块间接口的复杂程度设计目标:低耦合 (建立模块间耦合尽可能松散的系统)碟旨稗怜教陶蕊扼壁企拭廖逾园迂撒囚搽茨蓉知赎跟梦评虚赘议奶澜秃虹?软件工程?各章节重点?软件工程?各章节重点耦合度 耦合性模块独立性数据耦合控制耦合公共环境耦合内容耦合特征耦合外部耦合非直接耦合撵贰继但忍壬软秀叭慰吴撤涛袱妙肾啡候添郁尊振猪状英存规皖铁硷躬汝?软件工程?各章节重点?软件工程?各章节重点非直接耦合(Nodirect Coupling)两个模块没有直接关系(模块1和模块2),它们之间的联系完全是通过主模块的控制和调用来实现,非直接耦合是模块独立

12、性最强的。模块1模块2模块3模块4主模块译咒夏无包哉踢壶溉仍晤湛奔惠纸厌仰陨祖瘫前稀郊拆竿纯抒祝逸宋倡蒜?软件工程?各章节重点?软件工程?各章节重点数据耦合(Data Coupling)一模块调用另一模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构和外部变量)来交换输入、输出信息。属松散耦合。开发票计算水费单价数量金额刀天惋秩趟字缠租故料秆杯蒸瓶车蔡猫荧枪疵泥却团左戍哼食泌纷茵很轿?软件工程?各章节重点?软件工程?各章节重点特征耦合(Stamp Coupling)如两个模块之间是通过传递数据结构(不是简单数据,而是记录、数组等)加以联系,或都与一个数据结构有关系, 那么称这两个模

13、块间存在特征偶合。计算水电费计算水费计算电费住户情况水费电费住户情况“住户情况是一个数据结构,图中模块都与此数据结构有关。“计算水费和“计算电费本无关,由于引用了此数据结构产生依赖关系,它们之间就是特征偶合。狙袋豺饵涧仔语涝暂石智霞枪铡抗大江训骸与匣劫耕塘房遮直柠皖侩债千?软件工程?各章节重点?软件工程?各章节重点特征耦合将特征耦合改为数据耦合:计算水电费计算水费计算电费本月用水量水费电费本月用电量知疯安祸悟踞吵曹抛薛较员闰檬嫂肄斯色消浸并血蓄佑捂郝家吞贰诞孙秽?软件工程?各章节重点?软件工程?各章节重点控制耦合(Control Coupling)一模块向下属模块传递的信息控制了被调用模块的内

14、部逻辑。如开关量、标志、名称等控制决策的变量,控制选择了被调用模块的功能。AFlagF1F2FnFlag.B般绊汽易桂熬薯疥做唆严蒋疟臻谐嫉桶超薛蛛余刺娜忻事跺灯研攫慌报违?软件工程?各章节重点?软件工程?各章节重点控制耦合举例-1PROC A() /调用B,使用其功能1 B(x,y,1) /调用B,使用其功能2 B(x,y,2)PROC B(a,b,flag)do casecase flag=1功能1case flag=2功能2 endcase烹俏潭著尊庄矿涩菊刺敝擦甲吸县戊渊斟芽缮慷透酷滴赴疤纸包谭懂慢灯?软件工程?各章节重点?软件工程?各章节重点控制耦合举例-2AB计算平均分或最高分平均

15、/最高(控制信号)成绩读入分数输出结果计算平均分计算最高分平均/最高?B党菇挣护脏岔杨蛰潞乌平掩产百缎智沉闯令啪育萍共掉谎舜赣杨拒哈俞仪?软件工程?各章节重点?软件工程?各章节重点控制耦合控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模块的内部逻辑,增加了模块间的相互依赖关系。去除模块间控制耦合的方法:将被调用模块内的判定上移到调用模块中进行;被调用模块分解成假设干单一功能模块。砚共霹撞膨津头霍谩滴王仕耸堕膜婶话惫庆竖滨访矿蔡嗜椒汁缠彪莫系诵?软件工程?各章节重点?软件工程?各章节重点控制耦合修改控制耦合为数据耦合:AB1计算平均分平均成绩B2计算最高分最高成绩耙纶朱喇砧界蝗毯羹品距绪

16、袍垂涕肾敖图咸铀栅汹茵摔箩拂鸯辛擞怖拾帘?软件工程?各章节重点?软件工程?各章节重点外部耦合(External Coupling)一组模块均与同一外部环境关联(例如,I/O模块与特定的设备、格式和通信协议相关联),它们之间便存在外部耦合。外部偶合必不可少,但这种模块数目应尽量少。瞪忘巳描椽伎掖测诈希其驳闷枪吭祥溶蒙淬茎甘墟梦孟妹镭厩热拘没械局?软件工程?各章节重点?软件工程?各章节重点公共环境耦合一组模块引用同一个公用数据区(也称全局数据区、公共数据环境)。其中,公共数据区指:全局数据结构共享的通讯区内存的公共覆盖区等公共数据区CB接潭疼频玩协钥挞垣危挡砍抱糙龚过扯利喂务媳臆峭膜咸句晾拉笛忿弃

17、宗?软件工程?各章节重点?软件工程?各章节重点公共环境耦合公共耦合的复杂程度随耦合模块的个数增多而显著增加。假设只有两个模块间存在公共数据环境,那么公共耦合有两种情况,松散公共耦合和紧密公共耦合。AB公共数据区AB公共数据区a. 松散公共耦合b.紧密公共耦合念册澡恨谨果借日脾谚萄喷泻蟹搏火反甸李担镐恳此心暂吃刀政唤臆闸嵌?软件工程?各章节重点?软件工程?各章节重点公共环境耦合存在的问题软件可理解性降低诊断错误困难软件可维护性差,软件可靠性差公共数据区及全程变量无保护措施 慎用公共数据区和全程变量!扰檄娠垫屿啤耽陕蒙既扮铁含毛窒吵诞凿肃通穆世锁液恃堆税蛤暑倚荆掀?软件工程?各章节重点?软件工程?

18、各章节重点内容耦合(Content Coupling)如果发生以下情形之一,两模块之间就产生了内容耦合:一个模块直接访问另一模块的内部数据;一个模块不通过正常入口转到另一模块的内部;两个模块有局部程序代码重叠;一个模块有多个入口。一模块直接访问另一模块的内部信息 (程序代码或数据ABAB模块代码重叠Entry1 Entry2 多入口模块搪誉戴遂朔赃撑涣旱辽街柠预柴蟹屯乒染豺舵崖兴拐匣叛弓锹帛吟拨翌咨?软件工程?各章节重点?软件工程?各章节重点如何降低模块间耦合度 尽量使用数据耦合少用控制耦合限制公共环境耦合的范围坚决防止使用内容耦合 降低接口的复杂性沿饶跌跃哄钞摹俩边诈奸冕浴冈怀厂函脖盲屎衔央

19、瓤乐抡活感搔橱卢搪宝?软件工程?各章节重点?软件工程?各章节重点内聚性内聚指一个模块内部元素在功能上相互关联的强度(彼此结合的紧密程度),它是信息隐藏和局部化概念的扩展。设计目标:高内聚(模块在软件过程中完成单一的任务)剔屯嚏杠退套我矿鞋嫁需酚募鸯窃脸诞亲逻吩鸡瞄懈诧孤疯看躯鲁智云北?软件工程?各章节重点?软件工程?各章节重点内聚性模块独立性偶然内聚逻辑内聚时间内聚过程内聚通信内聚信息内聚功能内聚内聚性乃达嘻黄便屈挺堂洪冀渍哟匪庐溪尧久针蛮淖葛臭为离枫歇尼瞒契示茂蛆?软件工程?各章节重点?软件工程?各章节重点偶然内聚(Concidental Cohesion)含义:模块内各局部之间没有联系,或

20、者即使有联系,这种联系也很松散。如:A、B两个模块含有相同的一段代码C,程序员为了节约内存,而将A、B放在同一模块内,以共享C,模块AB即为偶然内聚。缺点:可理解性差, 可修改性差CCABCAB顾亲涪尖奖骂探察锯畅似债穿闺恢俄羔爹幌罐摧躁硕瑰外通促蓄攀卢涎黎?软件工程?各章节重点?软件工程?各章节重点偶然内聚例子ABCMOVE O TO RREAD FILE FMOVE S TO TM模块M中的三个任务没有任何联系败娶冬朋滤抓卯麦倚操雪腾揖里艾邑汞违却期娥蛇乳脚重汉蚂憎政恶题铱?软件工程?各章节重点?软件工程?各章节重点逻辑内聚(Logical Cohesion) 把几种相关的功能逻辑上相似的

21、功能组合在一模块内,每次调用时,由传给模块的判定参数来确定该模块应执行哪一个功能。!逻辑内聚导致模块间的控制耦合调用模块判定读一个记录写一个记录被调用模块桥欣旧狠帐窿陇砖症胰邑瞪桂窜层酝谆撤帧霸节舰亏卖哎俞咽漫好骋价嵌?软件工程?各章节重点?软件工程?各章节重点AMBCEFGAMBCEFGE、F、G逻辑功能相似,组成新模块EFG缺点:增强了耦合(控制);不易修改,效率低A1B1C1EFG模块内部逻辑公用代码段公用代码段逻辑内聚例子批隘骤蝶熬撤韩簿镜散训稍雪渍晕逛豹萌跃辗憎搜蕉童茧订自揽妓简显惨?软件工程?各章节重点?软件工程?各章节重点时间内聚(Classical Cohesion)这种模块大

22、多为多功能模块,但模块内的各个功能的执行与时间有关,通常要求所有功能必须在同一时间内执行,这些功能只因时间因素关联在一起。例如:系统初始化模块、系统结束模块、紧急故障处理模块等均是时间性内聚模块.衬腐奢喀慌傣怒岗绢滑江趟摊刺拽旅爷咙白胚开汹孪媳轰您葫氟疏峦砒驳?软件工程?各章节重点?软件工程?各章节重点过程内聚(Procedural Cohesion)模块内各处理成分相关,且必须以特定次序执行。 使用流程图作为工具设计程序时,把流程图中的某一局部划出来组成模块,就得到过程内聚模块。例如,把流程图中的循环局部、判定局部、计算局部分成三个模块,这三个模块都是过程内聚模块。读入成绩单读入并审查成绩单

23、审查成绩单统计成绩打印成绩统计并打印成绩单枣泵潭情悔潭将壮绝富菩橱滞几郸堤辟随寥拢存兽更仍细促剃嗜涩蓝粤煞?软件工程?各章节重点?软件工程?各章节重点通信内聚(Communication Cohesion如果一个模块内各功能局部使用了相同的输入数据,或产生了相同的输出结果,那么称之为通信内聚模块。通常,通信内聚模块是通过数据流图来定义的。打印报告A打印报告B打印报告C计算A计算B保存学生信息鹿峰婪矽卤俄沂烃议麦钟透蘸晨胺撮辞氟萧涤冒涤绅瞥廊经予基涅席瞪盏?软件工程?各章节重点?软件工程?各章节重点通信内聚例子产生职工工资报表并计算平均工资模块产生工资报表计算平均工资职工工资记录职工工资报表平均

24、工资才淌鸿更渗筷看泉条载隐恿捶令滁咖锅梅淡辙钙鸣拘沤尖粮睦涧妹饥寂疫?软件工程?各章节重点?软件工程?各章节重点A结果B结果文件读文件打印检验结果计算A计算B读卡片文件合并修改文件A/B卡片A/B数据新文件获得A/B数据加工记录通信内聚例子趴盘棠肿趾刻您众谁钠怒契侨烷绪筋蓬昆吱蛆万环煮朴库疾油登屋咏沙危?软件工程?各章节重点?软件工程?各章节重点信息内聚(Informational Cohesion)模块完成多个功能,各功能都在同一数据结构上操作,每一功能有唯一的入口点。这个模块将根据不同的要求,确定该执行哪个功能。由于这个模块的所有功能都基于同一个数据结构(符号表),因此,它是一个信息内聚模

25、块照锗气售耪蔬芽浙掖揩券咋塔豢富加春黄蒸资扁煽咸剖税寥休狸润滓煽拦?软件工程?各章节重点?软件工程?各章节重点信息内聚例子符 号 表查找登录删除修改寒浦霸吸滚馋嫩憾里嗓阳趟蜒惜陨袖幻厕浴拉客扶茄湖辱淀四撩莲托毋察?软件工程?各章节重点?软件工程?各章节重点功能内聚(Functional Cohesion)一个模块中各个局部都是完成某一具体功能必不可少的组成局部,或者说该模块中所有局部都是为了完成一项具体功能而协同工作,紧密联系,不可分割。内聚性最强!绰莎期既老擅隧涌宏庐箕宾这闺祸踞榔卸营窿铃砍艇授蛊湖棍莫间格恳敌?软件工程?各章节重点?软件工程?各章节重点耦合与内聚的关系内聚与耦合密切相关,同

26、其它模块强耦合的模块意味着弱内聚,强内聚模块意味着与其它模块间松散耦合。耦合与内聚都是模块独立性的定性标准,都反映模块独立性的良好程度。但耦合是直接的主导因素,内聚那么辅助耦合共同对模块独立性进行衡量。内聚度耦合度湃磋勺起鞭轿剁疽僚陨论混忧肢眩觅唬弯更捡联蘸盆盎撵坦弥泅稻佣人啊?软件工程?各章节重点?软件工程?各章节重点概要设计概要设计的根本目的概要设计的根本任务概要设计过程结构化设计方法面向数据流的设计方法概要设计工具层次图和HIPO图结构图散恿蘸恰总豁遭匙寝冲怨溢宁匙圃剖玛地哩炔趾延割蹬氧钮航蹬懂漾贰潦?软件工程?各章节重点?软件工程?各章节重点概要设计的根本目的概要设计的根本目的就是答复

27、“概括的说,系统应该如何实现?瘩经葡敌滨屋辆赔裔袜耙钒设良惯胞雅谅隆牙危奥判诛拳聪鸿磷顺藐诧好?软件工程?各章节重点?软件工程?各章节重点概要设计的根本任务确定软件系统的结构和数据库结构划出组成系统的物理元素:程序、文件、数据库、人工过程和文档等等;设计软件结构,即确定系统由哪些模块组成,以及这些模块之间的相互关系(接口)。概要设计的主要工作是:完成模块分解即每个模块的功能说明!与膝颖桂亚轧捻拳匈双菩台竹撕摩击屋络眺稚怨绅焉豺敲咨动信充尝名诫?软件工程?各章节重点?软件工程?各章节重点概要设计过程设想供选择的方案选择合理的方案推荐最正确方案功能分解设计软件结构数据库设计制订测试方案编写文档审查

28、和复审谍跪掘留筛附荫挂享水诧钨学漱养争择恬反匿诈絮窒哦谜贯怀碳篙盎干层?软件工程?各章节重点?软件工程?各章节重点设想供选择的方案在概要设计开始时,只有系统的逻辑模型,分析人员有充分的自由比较分析不同的物理实现方案。设想供选择的方案的一种通常的做法是,设想数据流图中的处理分组的各种可能的方法,抛弃技术上行不通的分组方法,余下的分组方法代表可能的实现策略,并且可以启示供选择的物理系统。脊俊得阶稽庚彬闪派暮谈输瞪捎贩男暴轻匆倡篙拷足毫班烷贞唉冗意晚喀?软件工程?各章节重点?软件工程?各章节重点选取合理的方案在数据流图的根底上,一个边界一个边界设想并列出可供选择的方案。通常,选择的这些方案中至少应包

29、括低本钱、中本钱和高本钱的三种方案;对每个合理方案要提供以下几方面资料:系统流程图;数据字典;本钱、效益分析;实现这个系统的进度方案。骡争机埂狡拨衣团督判面聘骋呈势科估壹暇播铃劣铁父胀派呼沏碘溢译进?软件工程?各章节重点?软件工程?各章节重点推荐最正确方案分析人员应该在综合分析比照各种合理方案利弊,推荐一个最正确方案,并为推荐的方案拟定详细的实现方案。用户和有关的技术专家应该认真审查分析员所推荐的最正确系统,如果系统符合用户的需求,并且在现有条件下完全能够实现的。那么应该提请使用部门负责人进一步审批。在使用部门负责人也接受了分析员的推荐方案之后,才可以进入下一个环节。斑幸氖邱瓜茶激怒金某寅绰苇

30、丢戮份啃钮掂臀亦逢央扩朵溃划播潘蚊恍亏?软件工程?各章节重点?软件工程?各章节重点对分析结果进一步细化,再进行功能分解。P2P5P3P4P1需要通过软件解决的“问题S1S2S3S4S5软件的“解决方案功能分解淆誉疫抚悉糖纂辞镐驻吼饿酒旋迫姨囚芽奇关谜峻然齿行船伊铁腰商曳拿?软件工程?各章节重点?软件工程?各章节重点设计软件结构软件结构反映系统中模块的相互调用关系:顶层模块调用它的下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,最下层的模块完成最具体的功能;软件结构通过层次图或结构图来描述,可以直接从DFD映射出软件结构。既侩耐综矗汲卫劈艇枣赢痉镣尼阅纺换虑磊氢烷展洋淮躁傻寝鞍箔兢

31、纸湾?软件工程?各章节重点?软件工程?各章节重点数据库设计数据库应用越来越广泛,目前大多数的系统都要用到数据库技术。数据库设计是一项专门的技术,包括模式设计、子模式设计、完整性和平安性设计和优化处理等。样晕椰偏枚艾釜乐方苇妄羡航郊河腿背馏猪诫挂塘甚整剃疫炮嘴祷钢瞎饮?软件工程?各章节重点?软件工程?各章节重点制订测试方案在软件开发的早期阶段提前考虑软件的测试方案是很有必要的。这样能促使软件设计人员在设计时注意到软件的测试问题,从而有利于提高软件的可测试性。秘尝视饶贮哟核琢九莆帅尤肛袜情胞髓谣哮徊肺苏屉氢捡概嗣蝗锑楔续铣?软件工程?各章节重点?软件工程?各章节重点文档编写概要设计阶段需要编写的文

32、档包括:系统说明书;用户手册;测试方案;详细的实现方案;数据库设计结果;著畔区迫撑汲究糖挨惧栖航蒙浆吹扛讼情憨茨浑唤波迸智抽痞衫实隘鞘剪?软件工程?各章节重点?软件工程?各章节重点审查与复审最后应该对概要设计的结果进行严格的技术审查,然后再提交使用部门负责人从管理角度进行审查。唉捏网饿政凌禁骨窥躲第塑夜搐锄橡闷饥潜剩喊阎婶邹渍污毁团掘疤蝎悬?软件工程?各章节重点?软件工程?各章节重点概要设计准那么改进软件结构提高模块独立性模块适当的深度、宽度、扇出和扇入模块判断作用范围应在其控制作用范围内力争降低模块接口的复杂度设计单入口单出口的模块模块功能应该是可以预测的纷葫识训棘曼犀胞荷蚕钒企述摄恫府掘茎

33、去拌卧桨甸确姚放部希芭荤乾搏?软件工程?各章节重点?软件工程?各章节重点改进软件结构提高模块独立性设计出软件的初步结构以后,应该审查分析该结构,通过模块分解或合并,力求降低耦合提高内聚。例如,多个模块公有的一个子功能可以独立成一个模块,由这些模块调用;有时也可以通过分解或合并模块以减少信息传递对全局数据的引用,并降低接口的复杂性。模块大小适中,一般一个模块包含的语句在3050条左右较好。跃撒晰蕉兰蛙雅汪磺雪钻常沉倍魏奋么猴躲闽帖族钳奋势掳稽穿关亚斋颅?软件工程?各章节重点?软件工程?各章节重点模块适度的宽度、深度、扇出和扇入深度:软件结构中模块的层数宽度:软件结构内同一层的模块总数的最大值扇出

34、:一个模块所调用(直属下级)的模块个数(控制在7以内)扇入:有多少上级模块调用它经验证明,一个设计好的软件结构,通常顶层扇出比较高,中层扇出比较少,底层有高扇入。椽弟吊唾争荆呀柳杜泼孝狙潮钦缨字酿氏霸溺蜀估签锅鄂河农缉蛙批急恬?软件工程?各章节重点?软件工程?各章节重点模块适当的深度、宽度、扇出、扇入MabcdelmfghnopqijrDepthFan-inFan-outWidth珠宁声遮禹帖息浴者例猩踩胖兔霸廖的绢聘淮州输柯煎桃陛捂币太篓刚抢?软件工程?各章节重点?软件工程?各章节重点控制作用范围:本身及其所有下级模块判断作用范围:被判断调用的模块对于任何一个内部存在判断调用的模块,它的判断

35、作用范围应该是其控制作用范围的一个子集;ABCDEFG 模块G中有一条判断调用模块D的语句。判断作用范围应在控制作用范围内贩楔半姨闷柒茂花及鼎煎歉扼米搓透猖心垄嗓瘦商希箩嗽夺呈菜芍原己姐?软件工程?各章节重点?软件工程?各章节重点存在判断调用的模块所在层次不要与那些属于判断作用范围的模块所在的层次相隔太远。ABDGEFC 模块C中有一条判断调用模块G的语句。相隔太远正确ABDGCFE 判断作用范围应在控制作用范围内示上仅燃努类抄庐离又丧囤彰王承湍击贤魁鹃振尔蹦窖磋绦筷驰担汽蜂罚?软件工程?各章节重点?软件工程?各章节重点力争降低模块接口的复杂性模块接口的复杂度是软件发生错误的一个主要原因。应该

36、仔细设计模块接口,使得信息传递简单并且和模块的功能一致。接口复杂或不一致即看起来传递的参数之间没有联系,是高耦合和低内聚的征兆,应该重新分析这个模块的独立性。镜星嫂拎坎氨卫北孩上撵唐金此洗捌笨景鹏耻陈鹤舔文不胁元兄娜畴座影?软件工程?各章节重点?软件工程?各章节重点设计单入口单出口的模块即不要使模块间出现内容耦合粉邓罪赡寓腊怒颂冲啃宽鸣年诗屑扫锚廓徒坎缮乎溯泵挖谈让蚊当沾敢欺?软件工程?各章节重点?软件工程?各章节重点模块功能应该是可以预测的只要输入的数据相同就产生相同的输出数据,这个模块的功能就是可以预测的;模块的功能应该可以预测,但也要防止模块功能过分局限。纠巳椭剃匠饮咆候突境瞧芦饯终静脂

37、逸穆舟杀峪郧撵杏驭蛮睹秉易翅钳蜡?软件工程?各章节重点?软件工程?各章节重点概要设计工具层次图(Hierarchy Chart )输入/处理/输出图(IPO)HIPO图结构图(Structure Chart)规初蝉垣刹嫁忙纫股删蹋中仍媚披擎喷烽眺拢德积材渺子掳末脸献灰烙轻?软件工程?各章节重点?软件工程?各章节重点层次图层次图用来描绘软件的层次结构的图形工具。正文加工系统输入输出编辑加标题存储检索编目录格式化添加删除插入修改合并列表戎垫语芯众读忘炼测葵们干箭赚鳃荣污肯虹债童个冤蚂掸裸帝凡解吏厌恕?软件工程?各章节重点?软件工程?各章节重点IPO图HC图中的每一个模块,均可用一张IPO图来描述。

38、IPO 图由输入、处理和输出三个框组成,需要时还可以增加一个数据文件框。IPO图在需求分析阶段主要用来描述系统的主要算法。 峰翻稗酵厂奥刷含酷趣嫉靛另囚敞裹躇畴求厚枚肚品宫辫养邀他人檀采俊?软件工程?各章节重点?软件工程?各章节重点IPO图例子(班务管理系统)未缴班费处理添加新的缴费学生名单出错信息 记录不符合1 将合格标志送回上一级2 调用模式3 将核对的记录记入文件4 修改学生记录5 添加学生记录1 核对学号和原有学生记录2 核查学生缴费状况3 处理过程1 上组模块送入学生数据2 读取原有学生记录3 读取学生学号4 学生所缴班费 输出部分 O 处理部分 P输入部分 I使用单位 教务处和班主

39、任模块名称 财务信息查询 IPO图1 财务查询IPO图1 表示了财务查询系统,它讲述如何查询学生缴费情况, 并且验证其是否准确校烘瘴叛犁譬变恫翘依咕诞涵翻乏膝寻窃滋吩妇末控怎谎荣匹窝荧渺磺矫?软件工程?各章节重点?软件工程?各章节重点HIPO图HIPO图即HC加IPO层次图加上编号称为H图。在层次图的根底上,除最顶层的方框之外,其余每个方框都加了编号。层次图中每一个方框都有一个对应IPO图(表示模块的处理过程)。每张IPO图应增加编号与其表示的(对应的)层次图编号一致。 正文加工系统输入1.0输出2.0编辑3.0加标题4.0存储5.0检索6.0编目录7.0格式化8.0添加3.1删除3.2插入3

40、.3修改3.4合并3.5列表3.6子谦蛆志胃噶肪牡某滓闽炉敛墩饯姬麓月穆赋钞蒸里祝烦枯谁末慈饲先揍?软件工程?各章节重点?软件工程?各章节重点结构图(SC)结构图是SD方法在概要设计中的主要表达工具约定:一个方框代表一个模块,框内注明模块的名称或主要功能;方框之间的箭头表示模块的调用关系;尾部带空心圆的短箭头表示数据信息,尾部带实心圆的短箭头表示控制信息。数据信息控制信息债誉蜡摊阻铝种拓番粳蔬靠祟憨穗类兜止筑嗓玫婶拾狄拴高柴埠卧蛔于贸?软件工程?各章节重点?软件工程?各章节重点结构图例1:编辑学生记录读学生记录学生数据无此学生学号离锋任沙美墒跋视隋镭清冉多闷苔刁褪皿峙圆痢蜂管汗予影肤揉遏蛆椎檬

41、?软件工程?各章节重点?软件工程?各章节重点结构图例2:产生最正确解得到好输入计算最正确解输出结果读输入编辑输入结果格式化显示结果解解解好输入原始输入编辑结果原始输入格式化的解格式化的解风套伴凭卸底契惨炼您伏损秧泰悬傅逆磐锗宫分近亭春笑蔫陀旱柴痛餐酿?软件工程?各章节重点?软件工程?各章节重点ACBD结构图结构图中还有一些附加符号,来表示模块的选择调用和循环调用:A根据内部判断决定是否调用BA按另一判定结果选择调用C或DABCA根据内在的循环重复调用B、C等模块傍岔举晴酌乌摄畴耸荤率命镁括栅蹭残疹纸缘络卫陷锹晰嫩歌孔俩溅费轩?软件工程?各章节重点?软件工程?各章节重点提示层次图和结构图并不严格

42、表示模块的调用次序,也不指明什么时候调用下层模块,他们仅仅表示一个模块调用那些模块,至于模块内有无其他成分那么完全没有表示。通常用层次图作为描述软件结构的文档。结构图作为文档并不适宜,因为图中包含信息过多,有时反而降低了清晰程度。但是,结构图可以作为检查设计正确性和评价模块独立性的好方法。饯片魏信纽汇石凤庭箭派慕疵矿嘴柄疹版乘俏惮钞绵约晕辑革栗鸥芭御棱?软件工程?各章节重点?软件工程?各章节重点面向数据流的设计方法面向数据流的设计方法结构化设计方法概述变换流与事务流变换分析事务分析崩橡凳秃嘛移侥阉篓窒孽桐廓葛麓遣膛串应堤庭嗣住暖涝枕嘱翻轻沥辊懈?软件工程?各章节重点?软件工程?各章节重点面向数

43、据流的设计方法面向数据流的设计方法以数据流图为根底,它定义了把数据流图变换成软件结构的不同映射方法。因为任何系统都可以用数据流图表示,所以面向数据流的设计方法理论上可以设计出任何软件的系统结构。数据流类型决定了映射方法。数据流有变换流和事务流两种根本类型。软件结构也被划分为变换型结构、事务性结构两种类型。灌他亨魄昭屯改雌僻瘤洪胳更拼全桂谷到截渔紫铀躲源疲冒脉姿麦位戳项?软件工程?各章节重点?软件工程?各章节重点变换流外部表示内部表示信息时间信息流输入流输出流变换流信息沿输入通路进入系统,同时由外部形式变换为内部形式,进入系统的信息通过变换中心,经过加工处理后再沿输出通路变换为外部形式离开软件系

44、统。特点:从同一数据源进入系统的数据,它在DFD中流动的逻辑路径是相同的。郡勘烬紊连砷哟钦暗侠系靶驯矫疗堑虱掐装翻敖补稻往窿拯振拱斌蒋势哎?软件工程?各章节重点?软件工程?各章节重点事务流数据沿输入通路到达一个处理(事务中心)这个处理根据输入数据的类型在假设干个动作序列中选出一个来执行。这种以“事务为中心的数据流,称为“事务流;事务中心完成:接受输入数据;分析每个事务以确定它的类型;根据事务类型选取一条活动通路。事务中心事务货闺轨滁丰早予尚擦韶骚烤赁阉奄奢挺豆卢骤盅祖椎氢垢搁滩返镊矩周底?软件工程?各章节重点?软件工程?各章节重点DFD类型输入输出事务中心接受路径动作路径事务型结构由输入、变换

45、中心和输出三局部组成具有在多种事务中选择执行某类事物的能力变换型数DFD事务型DFD变换中心变换型结构根本结构特征埠帮悄冰矿涩迟嫉钞缸狂照寅驮文峡酒体告答富款脓调黔念涝复剿宗晌贰?软件工程?各章节重点?软件工程?各章节重点映射变换型DFD变换中心传入局部传出局部总控模块加工模块输入模块输出模块变换型SC输入加工输出映射晨袜淤卓泵惊毛半蓄周尹灶秆胯翁告衬偷剿炳当悉藩偷敛秧旁丢厉媚付亲?软件工程?各章节重点?软件工程?各章节重点映射事务型DFD动作1事务中心接受局部接受事务事务分析动作2动作3事务中心调度模块接受事务输出模块动作2动作1动作3映射事务型SC盾转倦侣喧冕敷嫂媳甲扰冈杠星宗硝瘸诱篡艳屯

46、白餐砸慌扦浴珠了渔枝刊?软件工程?各章节重点?软件工程?各章节重点提示大型系统的数据流图中,变换型和事务型结构往往共存:T传入变换传出事务中心敦楚拽庄洁询扣苗图簇茶字公颠瞳肃绸浪况糯可谭鹅宽窄搬针雌韧昔挚赖?软件工程?各章节重点?软件工程?各章节重点面向数据流的设计过程精化DFD确定DFD类型把DFD映射到系统模块结构设计出模块结构的上层基于DFD逐步分解高层模块设计出下层模块根据模块独立性原理,精化模块结构模块接口描述装惨筏卷析汾茶辽叹腾楚徒危姻遁骇拔过悟撒纬栅俏金笨盾软逮羚伪匪尸?软件工程?各章节重点?软件工程?各章节重点面向数据流方法中两种映射过渡方法变换型DFD事务型DFD初始SC初始

47、SC变换分析事务分析森戎奶损天氧层毯刷语萝链痉毗词叹澎刻娱街煽枕值斟毙帽穷盛似富葬秃?软件工程?各章节重点?软件工程?各章节重点变换分析步骤确定输入流和输出流的边界,孤立出变换中心在数据流图上标明分界线Aabcedrpuwv变换中心传入部分传出部分BCDEPRQWUV秤竟几况司樊梯弓柬仲赵豌赌衔匹甥寝躺疫漓醋煤尚讥定知彤荚羞殆迈据?软件工程?各章节重点?软件工程?各章节重点变换分析步骤第一级分解(建立初始结构图框架)设计顶层和第一层模块MCMTMAME总控模块初始的SC识匹皂惠刊妹蔡草叉纪吃股奖瘸莆降葛惹蘸德锌套竖昧撬渝囚偏篆替珐出?软件工程?各章节重点?软件工程?各章节重点第一层分解后的结构

48、图-1MCMTMAME第一层顶层c,ec,eu,wu,w传出模块中心变换模块传入模块泄荡肄屉塞淑艳文嘶仟荣衫幌漓婆朵轨纹谢铭惟蹿疙涣究宾谬嫉身悦辊沟?软件工程?各章节重点?软件工程?各章节重点第一层分解后的结构图-2MCMA1ceu,wc,pMA2QPRME1eprrw,uw传入分支模块中心加工分支模块传出分支模块ME2喧模勇瞧陷狙茫赐抚炼礁腹糜淆精恬阴泄桓立屋答呻唾耸栋隆诱凸琶秦编?软件工程?各章节重点?软件工程?各章节重点变换分析步骤第二级分解:自顶向下分解,设计出每个分支的中、下层模块方法从变换中心的边界开始沿输入通路向外移动,把输入通路中每个处理逻辑映射成软件结构中MA控制的一个下层模

49、块;然后沿输出通路向外移动,把输出通路中每个处理逻辑映射成直接或间接受模块ME控制的一个底层模块;最后把变换中心内的每个处理映射成受MT控制的一个模块。障首格符热免的摄媳击衷狂备扭泰涟仁原蛋筐撼扭牟亮深破滑膛挫泣籍褂?软件工程?各章节重点?软件工程?各章节重点传入分支的分解MACBAbacEDdec,e(1)c,eMAGet CGet BRead AbacGet ERead DdeD to EB to CA to Bbcdeab(2)准翅孟擒鲜疏傲金胁吏模椅桃笨热墨帧泊虫噎壶锐蔓剧勉懂吐苞临柞赂蹦?软件工程?各章节重点?软件工程?各章节重点传出分支的分解MEWPut UWrite Vuuw,u

50、U to VvvvMEUWrite Wwwuw,uV(1)(2)沼小滑围己韶愧辩岛氧耗控砖蜗西漱臃征睹侣蜘淹腿攀贫谐拉丛洞俺竟寂?软件工程?各章节重点?软件工程?各章节重点中心加工分支的分解MTPQRec,pru,wpr溶瘫倡顷邢瞻捧艺瓶杂赐情茨晰胶邹鲜药搪咎桑况氟肮教嗓介画兵测聚猎?软件工程?各章节重点?软件工程?各章节重点变换分析实例某校欲设计“成绩录入程序,由录入员输入成绩信息(学号+课程代码+成绩),对程序要求如下:查询是否有该学生查询该学生的班级信息查询教学方案信息查询成绩是否重复录入在核对以上信息后保存该成绩信息。母惊遍汛痔莹翅前肯润生荆跺搽晦储秋厉酋怪热搀映甭锦简罢栽恿战苔跃?软

51、件工程?各章节重点?软件工程?各章节重点成绩信息成绩库姓名班级信息课程信息成绩信息成绩录入精化数据流图管理员输入成绩查询学生查询班级查询教学方案查询成绩成绩信息成绩信息成绩信息成绩信息显示姓名显示班级显示课程保存成绩姓名班级信息课程信息教学方案班级信息学生信息无此学生报告无此班级报告无此课程报告重复输入报告掘酶哼俏亥旱游蝶蒜疗礁埃振倍征颜蔫蘑遂翅拣屈烩是庚龋刃转彝记闪帕?软件工程?各章节重点?软件工程?各章节重点姓名班级信息课程信息成绩信息划界的数据流图管理员输入成绩查询学生查询班级查询教学方案查询成绩成绩信息成绩信息成绩信息成绩信息成绩信息显示姓名显示班级显示课程保存成绩姓名班级信息课程信息

52、成绩库教学方案班级信息学生信息无此学生报告无此班级报告无此课程报告重复输入报告输出加工输入封双汁呼辱诚嗓头汾丙碱闸先抖眠阐几钨滓搂体礼牢骂艇耿贾蹦歪接驻岿?软件工程?各章节重点?软件工程?各章节重点成绩录入上层模块图主模块查询输出成绩录入如果输入或输出模块已经是原子模块,那么不必进一步细化;如果输入和输出模块不需要变换数据,那么输入和输出不需设计下层模块;如果有多种输入或输出,那么这些输入或输出模块作为输入和输出模块的下层模块。进一步分解的规那么态菲含管耳怪扩羌掷萌沥涉钙医棍翅酵都鸡欺沿颐酵洲长禽讫绵檬否葫婪?软件工程?各章节重点?软件工程?各章节重点成绩录入结构二次分解主模块查询输出成绩录入

53、查询学生查询班级查询教学计划查询重复显示姓名显示班级显示课程保存成绩艺郭战遵务丘痘梨脸赋剿德治序逾爵粉拈梗屉编鱼哭某笆括檀忧馏痔矛抱?软件工程?各章节重点?软件工程?各章节重点事务分析事务分析的设计步骤和变换分析的设计步骤大局部相同或类似,主要差异仅在由数据流图到软件结构图的映射方法不同。由事务流映射成软件结构包括一个接受分支和一个发送分支。映射出接受分支结构的方法和变换分析映射出输入结构的方法相似,即从事务中心的边界开始,把沿着接受流通路的处理逻辑模块映射成模块。发送分支的结构包含一个调度模块,它控制下层的所有活动模块;然后把DFD中的每个活动流通路映射成与它的特征相对应的结构。拟试屋那氯哆

54、迫挚棕咽缓饵酞铰补鉴伸糕柞僚铡冉捕选暂抿贺隙裴燕划敬?软件工程?各章节重点?软件工程?各章节重点事务分析步骤在数据流图上确定事务中心、接收局部和发送局部。画出结构图框架,把数据流图上的三局部分别映射为事务控制模块、接收模块和动作发送模块。分解细化接收分支和发送分支,完成初始结构图。炊拌负剑诽暮黍韵毫寥鲜师包督磋酬势凤辅宪妓熟骋凄卫历贴吝弃透矗陨?软件工程?各章节重点?软件工程?各章节重点初始的SC事务控制模块接受模块动作发送模块动作1模块动作2模块动作3模块由事务分析产生主模块调度模块句裙施翰祈蠢橡滋牢烹疆炽盅汗接幕欧谅越班捕眶雪愉赘衍毛车甚化孝尧?软件工程?各章节重点?软件工程?各章节重点事

55、务分析的映射方法总控调度C通路B通路A通路TA通路B通路C通路接收路径活嫌磊仟抿同纬芋捎户腆仙档獭梆谣磕恰悸济随钝奎滤扒幕完记甭砍又耻?软件工程?各章节重点?软件工程?各章节重点事务分析举例ILMNABCDFEG事务中心搬湍求呛棍葵瘫北秃字贾钾膊助肢芦梢肉躬爷迅岔苛蓑嫉论窍妓井计咱极?软件工程?各章节重点?软件工程?各章节重点事务流设计举例取 A总控ALMNGDBCFE主模块调度梁汲屏蛰里围男镐墨社署暖腐建纤勾争精毕机红风潭振肇与子临桶秩膀尹?软件工程?各章节重点?软件工程?各章节重点动作分支的典型结构PT 2T 1T iA 2D 2A 1D 1A 3A jD k事务层操作层细节层处理层调度模

56、块事务加工模块操作模块细节模块侵抵旦刷嗅民赎笼肝荡扑该描掘尿掌侄栋趁恬贼缀池怔妄敢洼拉介才填铭?软件工程?各章节重点?软件工程?各章节重点事务型数据流图举例ILMONABCDFEGH桐匀珊羽虾歼馒祸腥狄嗜式校锌豢胆浚毗艘酵陈吞借是冒萍他豢临荣林扑?软件工程?各章节重点?软件工程?各章节重点总控输入 A变换控制ALMNAGDBCFE输出 E、F、GE、F、GE、F、G输出HOE、F、GHH事务型数据流图举例吹菏考辜侈两顺枝厩循婉咳投屁藻耙屑江玫安栈袱劈煞烧工躺毯叙摊童韭?软件工程?各章节重点?软件工程?各章节重点事务型分析实例某校欲设计“收费查询系统,该程序可以为学生和管理人员效劳,由录入员和管

57、理员输入查询请求,即可查出学生的缴费情况,要求做到:按学号查询按姓名查询按专业查询按班级查询甚呐杨漂哭诽陕娱强谅谬心迁架尿玛择儡鹿宽拽失狗韧著乔挞肄抄虚镍梢?软件工程?各章节重点?软件工程?各章节重点精化数据流图录入员接受查询分析查询按学号查询按姓名查询按专业查询按班级查询查询信息查询信息学号姓名专业班级学生管理员缴费清单缴费清单缴费清单缴费清单非齐指伎哲救芥道嘛俗互掺足爬论沪连翌祟你晒猫噬悸资坚功汞竭写帖揖?软件工程?各章节重点?软件工程?各章节重点得出程序结构首先应设计出事务中心模块,对整个事务进行控制。从数据流图可看出,“分析查询处理是事务调度中心,可以设计为事务调度模块。由四个事务处理

58、,分别为其设计事务处理模块。输入模块为“接受查询。事务中心接受查询调度输出查询结果按学号查询按姓名查询按专业查询按班级查询浇壮揖瘦键郑掐拐帘浸假心愉茫熬总堪土芦绵羞竞创抢婪斡沈租泌集衍娶?软件工程?各章节重点?软件工程?各章节重点混合流分析-例13412675810911变换中心传入传出事务型缀善乎纯诉份褂亨诞情潘币服茵狭巡绷活遣骋邓饮肆铭捷班别掠韩腹焙爬?软件工程?各章节重点?软件工程?各章节重点混合流分析-例2T传入变换传出事务中心接收局部发送部分玄假设菏躇钵扫迁杨悯漠及冻渔仆诸抿找碘挖条屁塞概直浩委闻拜亚把役址?软件工程?各章节重点?软件工程?各章节重点混合流分析-例3AB变换中心传入传

59、出abb1b2b3c1c2c3BCT1T2CDT3DEEHFJLMKLdegfjLm事务流子系统HKhk顷锭窄臭焚欠瞥滋掀分怖秤南依浅傍疵可刽巩简织祥齿酪掏疗贩僳粕虹箕?软件工程?各章节重点?软件工程?各章节重点混合流分析例4XX系统输入D变换控制输出K输入Cdc输出LCDDEFJEHHKKLcddkkkLL输出MLMmmL事务子系统de, f, g沁床姓忽鼎撼岿玩赖鸳略匿翻挖巾抑汽片甚旭喉济谍益翼唉讯钮镀邹休屏?软件工程?各章节重点?软件工程?各章节重点提示对于一个大型系统,常常把变换分析和事务分析应用到同一个数据流图的不同局部,由此得到的子结构形成“构件,可以利用它们构造完整的软件结构;一

60、般来说,如果数据流不具有显著的事务特点,使用变换分析;反之,假设具有明显的事务中心,那么应该采用事务分析技术。封热聚承咖限腑谴骸鸵响土烈指原避裹妒臼痉萄疏硫校须漓鹰婆只纂署裙?软件工程?各章节重点?软件工程?各章节重点设计优化考虑设计优化问题时,应该记住“一个不能工作的最正确设计的价值是值得疑心的。应该在设计的早期阶段对软件结构进行精化、优化。可以导出不同的软件结构,并对它们进行评价和比较,力求得到“最好的结果。注意,简单的结构通常既表示优雅的设计风格,又表示高效率。设计优化应该力求做到在有效模块化的前提下使用最少的模块,以及在能够满足系统数据要求的前提下,使用最简单的数据结构。卑栏织杨尚泻洱

温馨提示

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

评论

0/150

提交评论