资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第三讲 结构化设计,主讲人:杨兵,结构化设计,结构程序设计,人机界面设计,过程设计的工具,面向数据结构的设计方法,程序的质量与程序中所包含的,GO TO,语句的数量成反比,Bohm,和,Jacopini,证明了,:3,种基本的控制结构,(,顺序,选择,循环,),就能实现任何单入口单出口的程序,“,结构程序设计是尽可能少用,GO TO,语句的程序设计方法。最好仅在检测出错误时才使用,GO TO,语句,而且应该总是使用前向,GO TO,语句。,”,结构程序设计,:,易读性,人机界面设计,设计问题,1.,响应时间,:,长度和易变性,2.,用户帮助,:,集成和附加,上下文,3.,出错信息,:,如何办,用户心理,4.,命令交互,:,多媒体,(,图,文,声,光,),自定义宏指令,CTRL,设计过程,:,精化,迭代,原型,人机界面设计指南,一般交互指南,(,一致,确认,UNDO,易记,多媒体,),信息显示指南,数据输入指南,1,、可使用性,使用简单,用户界面中所用术语的标准化和一致性,具有,HELP,功能,快速的系统响应和低的系统成本,具有容错能力,2,、灵活性,考虑用户的特点、能力、知识水平。,提供不同的系统响应信息。,提供根据用户需求制定和修改,界面。,3,、界面的复杂性与可靠性,复杂性,界面规模及组织的复杂程度。应该愈简单愈好。,可靠性,指无故障使用的时间间隔。用户界面应该能够保,证用户正确、可靠地使用系统,及程序、数据的安全。,用户界面应具有的特性,1,、用户特性分析,用户模型,了解所有用户的技能和经验,针对用户能力设计或更改界面。从以下方面分析:,用户类型,通常分为:外行型、初学型、熟练型、专家型。,用户特性度量,与用户使用模式和用户群体能力有关。,包括:用户使用频度、用户用机能力、用户的知识、思维能力等。,用户界面设计的任务,2,、用户界面的任务分析,任务模型(,DFD,图),是对系统内部活动的分解,不仅要进行功能分解(用,DFD,图描述),还要包括与人相关的活动。每个加工即一个功能或任务。,3,、确定用户界面类型,1,、菜单(,menu,),按照显示方式,正文菜单、图标菜单、正文和图标混合菜单,如:开始菜单。,用户界面的基本类型,从用户角度出发,用户界面设计的类型主要有问题描述语言,数据表格、图形与图标、菜单、对话框及窗口等。每一种类型都有不同的特点和性能。讨论以下类型:,菜单、图象、对话框和窗口。,按屏幕位置和操作风格,固定位置、浮动位置(弹出)、下拉式、嵌入式,图,混合菜单,图,固定及下拉菜单,固定菜单,下拉菜单,2,、图 象,在用户界面中,加入丰富多彩的画面,将能够更加行象地为用户提供有用的信息,以达到可视化的目的。主要的处理操作有:图象的隐蔽和再现、屏幕滚动和图案显示、动画等。,3,、对话框,对话框是在需要时,显示在屏幕上一个矩形区域内的图形和正文信息。通过对话,实现系统和用户之间的通信。,对话框显示的方式与弹出式菜单类似,即瞬时弹出。同时,系统还应将对话框所覆盖的原图象进行保存,以便在对话结束后能立即恢复。,有三种对话形式:,必须回答式,无需回答式,警告式,图,必须回答,式对话框,图,无需,回答,式对话框,图,警告式对话框,4,、窗口(,window,),图形学中称为视图区(Viewport),视为虚拟屏幕。一个实用窗口,可包含部件:,菜单区(menu bar)图标区(icon bar),标题区(title bar)移动区(move bar),大小区(size bar)退出区(quit bar),用户工作区(user,s work bar),横向滚动区(horizontal scroll bar),纵向滚动区(vertical scroll bar),图,窗口,数据输入界面,是系统的重要组成部分。主要从,输入速度,和,减少出错率,考虑。,1,、尽量减少输入工作量,对相同内容输入设置默认值,自动填入,列表选择或点击选择,2,、输入屏幕与输入格式匹配,即屏幕显示按照数据使用频率、重要性、次序等组织。,3,、数据输入的一般规则,确定输入交互动作,确定删除提供反馈,数据输入界面设计,过程设计的工具,1,、流程图,2,、结构化流程图(,N-S,图),3,、,PAD,图,问题分析图,4,、,PDL,5,、,判定表,/,判定树,IPO,a,b,X1,X2,X7,X6,X4,X3,X5,h,i,g,f,e,d,c,j,F,T,F,F,F,T,T,T,多分支选择结构,先判定型循环结构,选择结构,后判定型循环结构,程序流程图,图流程图,N-S,图由而且仅由顺序、选择、循环三种基本结构组成。,基本图例如下:,顺序结构,块,1,块,2,块,3,块,4,条件,T F,块,1,块,2,选择结构,Case I=1,2,3,T,块,1,块,2,多分支选择结构,F,块,3,块,当条件成立时,当型循环,块,直到条件成立时,直到型循环,N,S,图,图,N,S,图,a,b,条 件,1,T,F,Case,Xi,i=2,3,4,X2,X3,X4,当条件,3,成立,条 件,2,直到条件,4,成立,直 到 条 件 成立,c,d,e,f,g,h,i,j,顺序结构,选择结构,多分支选择结构,先判定型循环结构,后判定型循环结构,F,T,T,F,N-S,图举例,N,S,图,N,S,图举例,3,、,PAD,图,问题分析图(,problem Analysis Diagram,),其基本控制结构如下:,任务,1,任务,2,任务,3,顺序结构,WHILE,型条件,循环体,先判定型循环结构,条件,then,部分,else,部分,选择结构,T,F,UNTIL,型条件,循环体,后判定型循环结构,控,制,变,量,任务,1,任务,2,任务,n,多分支选择结构,值,1,值,2,值,n,PAD,图,PAD,图基本结构,BEGIN,FIRST:=K1;,SECOND:=0;,FIRST=KI,SECOND=0,I,:,=2 to N,KI,SECOND,KIFIRST,SECOND,=FIRST,FIRST=KI,SECOND,=KI,ELSE SECOND:=KI,END,END,END.,PASCAL,源程序段,对应,PAD,图,FOR I:=2 TO N DO,BEGIN IF KISECOND THEN,BEGIN IF KIFIRST,THEN BEGIN SECOND:=FIRST;,FIRST:=KI,END,PAD,图应用举例,PAD,图应用举例,PDL,(,Program Design Language,)程序设计语言,这是一种结构化的语言。是非形式化比较灵活的语言,用于描述模块内部过程的具体算法,以便在开发人员之间比较精确的进行交流。,PDL,的语法是开放式的,其外层语法是确定的,而内层语法则不确定。外层语法描述控制结构它用类似于一般程序设计语言控制结构的关键字:,如:,IF-THEN-ELSE WHILE-DO REPEAT-UNTIL,DO CASE DO WHILE,等表示。,有时还用关键字反排,表示控制结构结束:,DO-OD IF-FI,PDL,语言,示例,:,拼词检查程序,PROCEDURE,spellcheck,BEGIN,-*split document into single words,LOOP get next word add word to word list in,sortorder,EXIT WHEN all words processed END LOOP,-*look up words in dictionary,LOOP get word from word list,IF word not in dictionary THEN,-*display words not in dictionary,display word prompt on user terminal IF user response says word OK THEN add word to good word list ELSE add word to bad word list ENDIF,ENDIF,EXIT WHEN all words processedEND LOOP,-*create a new words dictionary,dictionary,:,merge dictionary and good word list,END,spellcheck,为了区别关键字,规定关键字一律大写,其它单词一律小写。,内语法使用自然语言来描述处理特性。内语法比较灵活,只要写清楚就可以,不必考虑语法错,以利于人们可把主要精力放在描述算法的逻辑上。,面向数据结构的设计方法,(JACKSON,方法,),结构化开发方法是一种面向数据流的开发方法,而,JACKSON,系统开发方法则是面向数据结构的开发方法。其基本思想实现建立输入输出的数据结构,再将其转换为软件结构。,JACKSON,方法由英国的,M.Jackson,提出,该方法特别适合于数据处理类问题。如企事业管理一类的软件系统。,JSD,系统方法简介,Jackson,系统开发(,JSD,)方法是一种典型的面向数据结构的分析与设计方法。其分析的重点放在构造与系统相关的现实世界,并建立现实世界的信息域的模型上。其最终目标是生产软件的过程性描述。,JSD,方法的步骤如下:,1,、实体动作分析,2,、实体结构分析,3,、定义初始模型,4,、功能描述:详细说明与已定义的动作相对应的功能。,5,、绝对系统时间特性:对进程调度特性进行评价和说明。,6,、实现:设计组成系统的硬件和软件。,JSD,方法的前三步属于需求分析阶段,后三步属于软件设计阶段。,JACKSON,方法的设计过程,1,、建立数据结构,JACKSON,方法中数据结构表示为树型结构,有顺序、选择和循环三种基本结构。,2,、以数据结构为基础,建立相应的程序结构图,也称为,JACKSON,图。当没有结构冲突时,转换过程是简单的。,例:合并文件(考虑输入和输出之间的对应关系),输入、输出数据结构在内容、数量、次序上是对应的。,1,、数据结构,2,、设计程序图,HIPO,法,HIPO,法,(Hierarchy plus Input-Process-Output),即按功能层次的结构分析法,是,1976,年由,IBM,公司推出的软件分析及设计方法,又称,HIPO,图。,基本思想,结构化方法是以数据流,数据封闭性准则来分解的,,HIPO,法则是以功能、功能完备性准则逐层分解的。,层次图,(H,图,),表明各个功能的隶属关系。它是自顶向下逐层分解得到的。,最高一层是整个系统的名称和系统的概括功能说明;,第二层把系统功能展开,分成几个框;,第二层功能进一步分解,就得到了第三层、第四层,,,直到最后一层。,每个框内都应有一个名字,用以标识它的功能。还应有一个编号,以记录它所在的层次及在该层次的位置。,层次图,(H,图,),IPO,图,IPO,图为层次图中每一功能框详细地指明输入,(I),、处理,(P),及输出,(O),。,通常,,IPO,图有固定格式,处理操作部分总是列在中间,输入和输出部分分别在其左边和右边。,由于某些细节很难在一张,IPO,图中表达清楚,常常把,IPO,图又分为两部分:,概括的称为,概要图,(,overview diagram,),具体的称为,详细图,(,detail diagram,)。,软件工程,概要,IPO,图,用于表达对一个系统,或对其中某一子系统功能的概略表达,指明完成某一功能框规定的功能时需要,哪些输入,,,哪些操作,和,哪些输出,。,详细,IPO,图,详细表明输入、处理、输出三者之间的关系。,输入和输出应是确定的文件和记录,或是文件和记录中的字段,以及具体介质和设备类型,处理框中的操作也应是具体的而不是含糊的,调用子程序时应标明子程序名。,层次图,(H,图,),表明各个功能的隶属关系。它是自顶向下逐层分解得到的。,最高一层是整个系统的名称和系统的概括功能说明;,第二层把系统功能展开,分成几个框;,第二层功能进一步分解,就得到了第三层、第四层,,,直到最后一层。,每个框内都应有一个名字,用以标识它的功能。还应有一个编号,以记录它所在的层次及在该层次的位置。,层次图,(H,图,),盘存,/,销售系统,1.0.0,销售处理,1.1.0,盘存处理,1.2.0,计算,销售,记录,1.1.1,产生,销售,报表,1.1.2,核对顾,客赊欠,的金额,1.1.3,检查,库存,数量,1.2.1,产生发,货单、,装运单,1.2.2,顾客,付款,收据,1.2.3,产生,盘存,报表,1.2.3,盘存,/,销售系统的层次图,例:盘存,/,销售系统,根据需求分析,系统应具备有以下功能:,1,)计算买主订单,2,)准备销售报表,3,)产生买主文件和应收帐发票,4,)运行更新的盘存文件,5,)产生托运单和包装单,6,)保证库存及时订货,软件工程,编号,说 明,1.0.0,销售,/,盘存处理框图,1.1.0,顾客订单检查,核对顾客赊欠金额,产生销售报表,1.1.1,用工作文件的盘存项目号,对顾客订单进行核对和排序,1.1.2,以地区和人员为单位,编制销售报表,计算销售佣金,1.1.3,检验顾客赊欠金额,计算折扣,确定支付项目,1.2.0,处理顾客盘存管理报表,顾客付款收帐,处理发货、包装、托运,对应,H,图上,1.1.0,框的概要,IPO,图,销售事务记录,顾客赊欠,金额文件,退回订单文件,后备订单文件,退回订单,无效订单,特殊处理订单,工作文件,销售报表,计算销售事务记录,产生排序的工作文,件,1.1.1,按地区及销售人员,产生销售报表,计算,销售手续费,1.1.2,核对顾客赊欠金额,计算应付款项,1.1.3,1.1.0,输入,Input,输出,Output,处理,Process,1.1.2,销售报表,1.,以销售地区和销售,人员的销售额排序,2.,准备销售报表,地区销售总计,人员销售总计,计算佣金,交易,文件,SORT,系统提供,的子例程,销售数,据排序,文件,对应于,H,图,1.1.2,框的详细,IPO,图,从,1.1.1,框来,到,1.1.3,框去,HIPO,法的特点:,优点,:简单易行,资料易于查找,不仅适于信息软件的开发,也可用于逻辑关系较复杂的应用软件,缺点,:无验证功能,功能完备性很难验证。未能反映系统性能要求。资料量大,不宜规模大的系统。,谢 谢,
展开阅读全文