结构化设计方法及案例SD(StructuredDesign)法与SA、SP法前后衔接,是结构化开发方法的核心。一、SD法的基本概念1.SD法的两个阶段总体设计任务:解决系统的模块结构,即分解模块,确定模块功能及系统模块的层次结构。文档:模块结构图及其模块功能说明。详细设计对模块图中每个模块的过程进行描述,常用的描述的方式有:伪代码,流程图,N-S图,PAD图等。二、SD法的设计步骤⑴从DFD图导出初始的模块结构图(SC)。中心变换型(transformcenter)_变换分析事务处理型(transaction)_事务分析⑵按照SD法设计总则,改进模块结构图。注意:模块结构图不同于“框图”。软件〈层次性:反映软件整体的性质(结构图)过程性:反映局部的性质(框图)3.3结构化设计方法(续)这类数据流图可看成是对输入数据进行转换而得到输出数据的处理。DFD图可以明显分为“输入—处理—输出”三部分。(物理输入)(逻辑输入)(逻辑输出)输入主加工输出(物理输出)检查顺序检查合理性扩充代码核对记录修改压缩代码格式化修改数据旧文件新文件中心变换型的DFD图这类数据流图有一个数据处理中心,按加工的结果选择一个输出数据流继续执行的处理。如下图所示:分类报名付款注销查询复审采用“事务分析”(transactionAnalysis)技术事务处理型的DFD图实例:银行贷款文件管理(MFUP)序号内容长度(字节)数据类型可否修改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数字否实例:银行贷款文件管理(MFUP)要求对贷款文件进行修改,修改信息由卡片输入,卡片上的修改信息格式如下:1~5位6~9位10位起帐号空××修改值1*××修改值2*…..**(序号)需求分析结果—DFD图,是一种混合的DFD图。实例:银行贷款文件管理(MFUP)修改记录写记录卡片编辑卡片检查顺序检查次序帐号相等错误顺序卡片修改信息旧记录顺序记录要修改的记录不修改的记录已修改的记录新记录修改分类抽出修改顺序卡片修改信息2345679需求分析结果—DFD图编辑卡片加工分解主加工是??报告报告修改信息顺序记录新记录将DFD图转换为模块结构图贷款文件管理系统取顺序记录修改记录打印报告打印记录比较帐号取修改信息读旧记录检查顺序取卡片编辑卡片读卡片检查顺序卡片卡片顺序卡片旧记录旧记录顺序记录顺序记录顺序卡片顺序卡片已修改“编辑卡片”应继续向下分解,是典型的“事务处理”型的DFD图。写记录修改记录写记录卡片编辑卡片检查顺序检查次序帐号相等错误顺序卡片修改信息旧记录顺序记录要修改的记录不修改的记录已修改的记录新记录报告已编辑卡片原始的数据流图IP1P2P3输入流事务中心加工路径事务控制接受事务发送事务P1P2P3对应模块图事务分析技术编辑卡片卡片抽出修改项编辑修改项卡片项项已编辑项编辑项3编辑项2编辑项9…项2项3已编辑项2已编辑项3项14已编辑项9编辑卡片的分解已编辑卡片按照“降低块间联系,提高块内联系”的设计总则进行修改,完善系统的模块图,写出模块的功能说明。三、模块结构图的改进功能模块的组成:执行某项任务的部分出错处理部分返回结束标志具体从以下方面改进:1)尽可能建立功能模块功能模块具有最强的内聚性,应满足信息屏蔽原则:一个模块内所包含的信息(过程和数据)对不需要这些信息的模块是不能访问的(黑盒)。2)消除重复功能若两模块含有重复的部分,应设法将重复的功能消去。(a)XYQ’1Q’2YQ’2QXQ(b)(c)(d)Q重复部分YYXQ1YQ2四、模块结构图的改进XX控制范围—结构方面的特点,包括模块及其所有下属模块。作用范围—判断所涉及到的模块,是从功能特点考虑的。3)模块的作用范围应与控制范围TOPXTBAB1B2SD方法认为:当作用范围为控制范围的子集时,才能获得较低的块间联系,如图中的设计,判定的作用范围恰好在判定所在模块的下一层。4)模块的大小适当模块大小指其篇幅,一般模块大小约50-100行为宜。5)模块的扇入扇出数不宜太多扇出数一个模块调用其他模块的个数。扇入数一个模块被其他模块调用的个数。除服务性模块外,模块的扇入扇出数不宜太多。否则块间联系增加。一、任务详细设计阶段的任务是开发一个可以直接转换为程序的软件表示,即对系统中每个模块的内部过程进行设计和描述。二、常用的描述方法工具1、流程图2、结构化流程图(N-S图)3、PAD图—问题分析图4、PDL语言3.4详细设计结构化流程图(N-S图)由顺序、选择、循环三种基本结构组成。顺序结构块1块2块3块4条件TF块1块2选择结构CaseI=1,2,3T块1块2多分支选择结构F块3块当条件成立时当型循环块直到条件成立时直到型循环结构化流程图(N-S图)ab条件1TFCaseXi,i=2,3,4X2X3X4当条件3成立条件2直到条件4成立直到条件成立cdefghij顺序结构选择结构多分支选择结构先判定型循环结构后判定型循环结构FTTFPAD图—问题分析图(problemAnalysisDiagram)其基本控制结构如下:条件then部分else部分选择结构TF任务1任务2任务3顺序结构WHILE型条件循环体先判定型循环结构UNTIL型条件循环体后判定型循环结构控制变量任务1任务2任务n多分支选择结构值1值2值nPAD图例1:对数组X进行排序。“自顶而下,逐步求精”J:=hk:=h+1,nJ:=kH:=1,n-1排好第h个X[h]W:=X[h]X[h]:=X[j]X[j]:=w1、循环一次,排好一个X[h]排好第H个X[h]找X[J]=MAX(X[h]…X[n])交换X[J]和X[h]2、细化X[k]X[J](a)(b)(b)(a)3、连接各图,构成完整的PAD图H:=1,n-1H:=1,n-1H:=1,n-1H:=1,n-1H:=1,n-13.5面向对象的设计方法OOD(Object-OrientedDesign)是面向对象方法在软件设计阶段应用与扩展的结果。是将OOA所创建的分析模型转换为设计模型,解决如何作的问题。分析模型与设计模型的描述方式具有一致性,只是从不同角度来描述系统。分为静态模型和动态模型两类。OrderLineQuantity:IntegerisSatisfied1*1*1*CustomernameaddressCreditRating()OrderdataReceivedisPrepaidnumber:Stringdispatch()close()PersonalCustomercreditCardCorporateCustomercontactNamecreditRatingcreditLimitremind()billForMonth()EmployeeProduct0..1+LineItem类图:MeetingAdministrtiona:Meeting:MeetingAdministrtionaDefineMeeting(meeting)[IsMeetingExisted=.T.]3:Fail(MeetingExisted)2:{new(meeting)}顺序图电梯的状态表示状态图OnfirstfloorGoup(floor)Movingupdo/movingtofloorGoup(floor)Idletimer=0do/increasetimerarrivedMovingdowndo/movingtofloorGodown(floor)timer=timer-outMovingtofirstfloorarrivedarrived随着各种应用软件的面市,作为人机接口的用户界面具有越来越重要的作用,用户界面是否友好直接影响到软件的寿命与竞争力。因此,对用户界面的设计必须予以足够的重视。3.6用户界面设计用户界面设计中的主要问题进行讨论。用户界面应具有的特性—什么是友好的用户界面。用户界面设计的任务—用户界面设计应该完成的工作。用户界面的基本类型—用户界面的工作模式。总之,用户界面设计要以人为本。用户界面设计迭代过程分析和理解用户活动在纸上设计原型与最终用户一起评价设计原型产生动态设计原型与最终用户一起评价实现最终的用户界面可执行原型用户界面设计原则:1.可视性和可支付性(VisibilityandAffordance)。2.保持命令、菜单,颜色等统一(StriveforConsistency)。3.为频繁使用的用户提供快捷方式(EnableFrequentUserstoUseShortCuts)。4.提供信息反馈(OfferInformationFeedback)。5.提供简单的错误处理(OfferSimpleErrorHandling)。6.方便的操作、回滚(PermitEasyReversalofActions)。7.降低短期记忆回忆(ReduceShort-TermMemoryLoad)。3.6.1用户界面的交互性交互性是用户界面最重要的特性,按照交互形式分为5类:交互类型主要优点主要缺点应用实例直接操纵快速直观,容易学习实现较难,适于对象和任务有视觉隐喻视频游戏CAD系统菜单选择避免用户错误只需很少键盘输入对有经验的用户操作较慢,菜单项多时操纵复杂一般用途的系统表格填写简单的数据人口易学习占较多的屏幕空间库存控制个人贷款处理命令语言强大灵活较难学习错误管理差操作系统,图书馆信息检索系统自然语言适合偶然用户容易控制需要键入的太多,自然语言理解的系统不可靠时刻表系统,、菜单(menu)按照显示方式分:正文菜单、图标菜单、正文和图标混合菜单,如:开始菜单。按屏幕位置和操作风格固定位置、浮动位置(弹出)、下拉式、嵌入式固定及下拉菜单固定菜单下拉菜单开始菜单2、图象在用户界面中,加入丰富多彩的画面,将能够更加形象地为用户提供有用的信息,以达到可视化的目的。主要的处理操作有:图象的隐蔽和再现、屏幕滚动和图案显示、动画等。图形3、对话框对话框是在需要时,显示在屏幕上一个矩形区域内的图形和正文信息。以实现系统和用户之间的通信。其显示方式与弹出式菜单类似,即瞬时弹出。有三种对话形式:必须回答式如图1所示无需回答式如图2所示警告式如图3所示图1必须回答式对话框图2无需回答式对话框图3警告式对话框4、窗口(window)图形学中称为视图区(Viewport),视为虚拟屏幕。一个实用窗口,可包含部件:菜单区(menubar)图标区(iconbar)标题区(titlebar)移动区(movebar)大小区(sizebar)退出区(quitbar)用户工作区(user’sworkbar)横向滚动区(horizontalscrollbar)纵向滚动区(verticalscrollbar)窗口数据I/O界面,是系统的重要组成部分。主要从输入速度和减少出错率考虑。1、尽量减少输入工作量对相同内容输入设置默认值自动填入列表选择或点击选择2、输入屏幕与输入格式匹配即屏幕显示按照数据使用频率、重要性、次序等组织。3、数据输入的一般规则确定输入交互动作确定删除提供反馈3.6.3数据I/O界面设计