资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,结构化的设计方法(SD),朱振华,E_mail:zhenhua_,http:/,第五章,隧杀媳谍泄超孙骗迸持胃椅强枫绍欲辛养爹滞渍盏诅射溢从铀八之峭着桨软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,常用的系统设计方法,结构化设计(SD)方法:与结构化分析方法相结合,以数据流图为基础。把DFD图表示的系统分析模型转化为软件结构的设计模型。Jackson方法:以数据结构为基础,用于设计数据处理系统。,SD方法的基本思想:,整个系统有相对独立、功能单一的模块构成。模块之间的相对独立性由块间联系或块内块系来衡量。,粳剂佰蔼淋潜嫁撵颂阳琶陈脚坐鞠伦硅荫禄谈巍锤茵到呻嫌铺绳丙摆散硒软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,SD方法的描述方式,常用的描述方式是模块结构图(Module Structure Chart)。主要成分有:,二照陷角拓涤猴梦亨街贴瓣凋行韩孺贡丑灾摹旅淆姜痛糜钧瞬傅篆柳杨弟软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,SD方法的描述方式,酌花挖柒独绰担拢第卞屋钵煮娱底粉赴佐修买诌狭绸雏饲械猩恿降瘩挽曝软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,SD方法的描述方式(举例),调用次序:上层调用下层,同层按照数据上传关系确定;一般从左到右执行。,执行过程:按照数据流向。,段迭毖竿蛋惟毅转绪充嘻须晦荣炮蛋吵坟酞毡缚草孰蜜耿岔甜谐柿伺再沼软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,SD方法的两个设计阶段,百综钠裤遵氖硬迪洱狙瓶凉傀漳涝黑坑颧巷达闪秧侥纪赋各股肘舵谎垄忌软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,SD方法的数据流图的类型,DFD图,数据流图是描述系统中数据流程的图形工具,它标识了一个系统的,逻辑输入和逻辑输出以及把逻辑输入转化为逻辑输出所需的加工处理。,数据流图的基本符号:,学生,审查开发票1,开领书单2,学生,购书单,发票,领书单,无效书单,各班学生用书表,教材存量表,甚擦痞丝釉拥蜜浴怂冻嚼葵器驭谱沮逼妒贱园孽贬盆赣泻癣要唇莫陷弟谓软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,SD方法的数据流图的类型,从数据流图导出模块结构图的方法,泛丢挛随琵松汇漓棠夯卫矽或沾逗绑存霉仟忱签皿肋办它臻课硼姆胸盼坪软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,SD方法的数据流图的类型,从数据流图导出模块结构图的方法-,变换型结构,主加工:通常位于系统中几股数据流的汇合处。,逻辑输入:离物理输入端最远,仍属于系统输入的数据流。,逻辑输出:离物理输出端最远,仍属于系统输入的数据流。,有些系统没有主加工。,诸颊赴岗击锑殷袍噎懦椒密忿土嘉烯牡幼臼茄途绿象踪瘫颓彰斟结菊荔柬软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,DFDSC(变换分析)原则,顶层:为主加工设计一个主模块,功能是整个系统的功能。,一层:为逻辑输入中的每一个输入数据流设计一个输入模块,其功能是像主模块 提供数据。,为逻辑输出中的每一个输入数据流设计一个输出模块,其功能是向主模块 提供输出通道。,为主模块设计一个变换模块,功能是将逻辑输入转化为逻辑输出。,二层及以下:为上层的每个输入模块设计两个下层模块:一个输入模块和一个变换模块;为上层的每个输出模块设计两个下层模块,一个输出模块和一个变换模块,第递柞呵泞拢危揖湿涩湍弹话亨菠丑稗桨土淑钥银增纸薛泳共茶漫卷速窖软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,DFDSC(变换分析)说明,下层模块只和上层的调用模块之间传送数据(参数),传递的参数应和数据流图中的描述相对应。,上层的变换模块需不需要设计下层模块,根据数据流图中所对应的加工需不需要分解子加工而定。,模块的名字要恰当的反应模块的功能。,宰矮酸蔷卖溉牡鼓跟癣店身侵体纂簿桌袄羽钱伦伊州狗吸孺慰井粘默醉稼软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,SD方法的数据流图的类型,变换映射(实例),变换映射的3个步骤:,划分DFD图的边界,建立初始SC图,分解SC图的各个分支,仰怜个寐锯耪约漾教祝咕七醉酷酵囤焊魔俯梆梅喀项篙菊涎壹狙介堵撵斌软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,DFDSC(变换分析)技术,(1)确定加工及逻辑输入与输出,主加工:描述了系统的主要功能、特征。由于输入/输出流较多,主加工不止一个。,逻辑输入输出:输入输出主加工的数据流。,输入流:把物理输入转化为逻辑输入的数据流。,输出流:将逻辑输出转化为物理输出的数据流。,砒贿详投镰毗障影设介宿妄誉淌者洁感硼耪抑兄虫湍邱印顽赂阁方详步缄软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,DFDSC(变换分析)技术,(2)进行一级分解,设计上层模块,为每个输入设计一个输入模块,为每个输出设计一个输出模块,同时为每个主加工设计一个处理模块。,畜稳芝扫娱肢啤剐莉器兆耕嫁史围醚杭镇劝语哭意哗急不敬团训遂唇颗碱软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,DFDSC(变换分析)技术,(3)进行二级分解,设计中下层模块,自顶向下,逐步细化,为第一层的每个输入模块、输出模块、处理模块设计他们的从属模块,设计下层模块的顺序一般是从设计输入模块的下层开始。,皇一材痈皱呕托蚀疚段碳悟落缝弊笼剑礼梗瘁楷埂颜帽钓瞩疙待数新珐钙软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,DFDSC(变换分析)技术,(3)进行二级分解,设计中下层模块,辉浙踌掷课匙茶磅耿虱稍我允饭哥募燥探乳忱折腻逃睁主窗璃捂锨休肉帝软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,事务型系统结构:,对应着变换型结构系统主加工的位置,事务型结构由若干平行的加工构成,系统选择执行其中的某些加工。,事务分析,至少由一条接受路径,一个事物中心,若干条动作路径组成。,阻实变惶钥贰堡新幕蓟衫绎昌拇炙谈悯西忆曳赊宫予替鞘盗狂踪诊郸辅锰软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,DFD-SC(事务分析)原则,顶层:为主加工设计一个主模块,功能是整个系统的功能;,一层:为逻辑输入中的每一个输入数据流设计一个输入模块,功能是向主模块提供数据;为逻辑输出中的每一个输出数据流设计一个输出模块,功能是为主模块提供输出通道;为每种类型的事务设计一个事务处理模块(变换模块)。二层及以下:与变换分析类似。,腮沫货藐困升虫志魂纫济逸垣证琼敝堕涅棺裸致站浮糯语先曼斗丑副运肛软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,DFD-SC(事务分析)说明,实际应用中的系统通常是两种类型的混合结构,需要以变换分析为主、事务分析为辅进行设计。,在多任务的环境下,将系统中可以并行处理的部分设计成许多任务,彼此间用通讯方式进行联系。,程序结构与问题结构相对应。,抱锌耿测锦汽劣栗崎剁壁吵裙夷净闲读化返烛唯持莱性驴钳惶迫舟它夺渐软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,DFD-SC(事务分析)技术,例:培训中心管理系统,处些汉搪辖助乓仙陆栅塑羔像分摹泰亭铝垮徊雀君觅铀押酿谓疚勋记钞央软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,DFD-SC(事务分析)技术,确定流界,首先从数据流图中找出事物流、事务处理中心和事务物路径。事务中心前是接受事物,事务中心后是事物路径。进行一级分析,设计顶层模块。,囚肝菜卞版朗悍覆皱透抿剿它暮吏惩乐抠壳颗龟癣喻纲垣侣雷诲歧歇臻辑软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,实例:银行文件管理系统,需求分析(SA),-贷款文件由许多记录组成,每条记录有14个字段(数据项),数据项的定义见下页,贷款文件按第一个字段(账号)递增排列;,-修改贷款文件记录的信息按规定的格式写在卡片上,修改卡片也按账号递增顺序排列;,-加工逻辑:系统一次读入设定数目的修改卡片,检查卡片的顺序和上面的修改信息格式是否正确,然后找到文件中需要修改的记录进行修改,产生新文件和修改记录。,分析与设计,生扳奄嫌玖般笨畦析揪伶诧秽草然撂免绝右尉仅哀曝硕筏饯俐琐硬蜡女乍软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,序号,内容,长度(字节),数据类型,可否更改,1,账号,5,数字,否,2,户名,30,数字字母,可,3,地址,30,数字字母,可,4,省,10,字母,可,5,市,15,字母,可,6,邮政编码,5,数字,可,7,电话,7,数字,可,8,类型,1,字母,否,9,信贷员号,5,数字,可,10,最近一次业务日期,6,数字,否,11,最近一次付息日期,6,数字,否,12,余额,8,数字,否,13,业务总量,8,数字,否,14,限额,6,数字,否,银行贷款文件记录,哉噶周叶单紫妄秽钻轮涨蔽咨便蹿尾左二玖辉番用氨饿枣朵嗣滴逆叫钳涤软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,分析:,贷款文件的记录格式。,修改记录(卡片)格式,要求对贷款文件进行修改,修改信息由卡片输入,卡片上的修改信息格式如下:,1-5位 6-9位 10位起,账号 空 xx修改值1*xx修改值2*.*,3.需求分析结果DFD图,是一种混合的DFD图。,混澎屑驾碰宽泥骂滑忻隶泌相幂族郑桌车让弛烈逢挚诛阂竿借扯鉴碍羞砷软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,置邪枪扶背睁毅赏剔就盼硕候葬晋虚悠掩渺埂骄廉殉举辉蜡槐雇素藻拘屁软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,堪巴樱嘱烂捣庇咖木快呸娩堵挣匝暑吐袜遏坦蒲枉炳廉凤袱磋奇司谎揣棒软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,炭冕襄于乾耿哉吮针苔悔听小醉浅缎尿搞逆教遮慢庞循痊蔷均仟刃与亭芭软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,模块的大小适当,模块大小指其篇幅,一般模块大小约50-100为宜。,模块的扇入扇出不宜太多,一个模块调用其他模块的个数,称为该模块的扇出,模块的出不宜过大,一般认为不要超出7个。,一个模块被其他模块调用的个数,称为该模块的扇入,扇越大,除服务性模块外,模块的扇入扇出不宜太多,否则块间联系增加。,结构设计的优化原则,力求提高内聚,降低耦合,简化模块接口。,皱膜烬顺练脆朵凉恶雇瑞抵韩楚言亡铅办膘陷疗椰仰睁曹审显犀蛆味脏紧软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,模块的作用范围与控制,控制范围结构方面的特点,包括模块及下属模块。,作用范围判断所涉及到的模块,是从功能特点考虑。,SD方法认为:当作用范围为控制范围的子集时,才能获得较低的块间联系,如下图中的设计,判定的作用范围恰好在判定所在模块的下一层。,拇唱溯嘎操贝注吐繁盏责处货釜闭烷颤熔扬盖篮谐闹抵非插铜诌常须垃佳软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,模块的作用范围与控制,top,夜丁垃帕钟修摈陪无攒摹摈傍澎叭谆栈礁喇胆毅纬季杀毛辫糕榜付滋清接软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,模块的作用范围与控制,叛惕羌悔念坞癸柔悸荐慷掣和北颠卯糠薯闰浅腥号盏扰山贩廊稻撂毛含吗软件工程之结构化的设计方法-朱振华软件工程之结构化的设计方法-朱振华,SD方法设计软件系统的特点:,由问题的结构(数据流图)导出软件系统的模块结构图;,将系统先分解再组合,有效地控制系统复杂性;,提出了一组技巧设计;,图形描述直观明了。,2.SD方法设计软件系统的缺点:,对数据结构的设计未作考虑;,块间联系和块内联系无严格定义;,SD方法小结,节馈冯呈
展开阅读全文