




已阅读5页,还剩73页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程,安徽职业技术学院信息工程系孙街亭,2020/5/1,SoftwareEngineering,2020/5/12,结束,返回,第5讲详细设计,5.1详细设计的任务与原则5.2结构化程序设计5.3过程设计工具5.4用户界面设计5.5数据库设计5.6接口设计5.7详细设计说明书,第5章详细设计,5.1详细设计的任务与原则,详细设计以概要设计阶段的工作为基础的,但又不同于概要设计,主要表现为以下两个方面:(1)在概要设计阶段,数据项和数据结构以比较抽象的方式描述,而详细设计阶段则应在此基础上给出足够详细的描述。(2)详细设计要提供关于算法的更多的细节。例如:概要设计可以声明一个模块的作用是对一个表进行排序,详细设计则要确定使用哪种排序算法。在详细设计阶段为每个模块增加了足够的细节后,程序员才能够以相当直接的方式进行下一阶段的编程工作。,5.1.1详细设计的任务(1)为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述。(2)确定每一模块使用的数据结构。(3)确定模块接口的细节。(4)为每一个模块设计出一组测试用例。(5)编写详细设计说明书。,第5章详细设计,5.1详细设计的任务与原则,2020/5/14,5.1.2详细设计的原则(1)模块的逻辑描述正确可靠、清晰易读。(2)选择适当的描述工具来对各模块的算法进行描述。(3)采用结构化程序设计方法,改善控制结构,降低程序复杂度,提高程序的可读性、可测试性和可维护性。,第5章详细设计,5.1详细设计的任务与原则,2020/5/16,结束,返回,5.2结构化程序设计,第5章详细设计,1.结构化程序设计的概念,结构化程序设计(SP,StructuredProgramming)方法是由Dijkstra等人于1972年提出的,用于指导人们用良好的思维方式开发出正确又易于理解的程序。,EdsgerWybeDijkstra,结构化程序设计是一种良好的程序设计技术和方法,它采用自顶向下、逐步细化的设计方法和单入口、单出口的控制结构。Bohm和Jacopini在1966年就证明了结构化程序定理:任何程序结构都可以用顺序、选择和循环这3种基本结构及其组合来实现。,5.2结构化程序设计,第5章详细设计,2.结构化程序设计的原则(1)使用语言中的顺序、选择、重复等有限的基本控制结构表示程序。(2)选用的控制结构只准许有一个入口和一个出口。(3)复杂结构应该用基本控制结构进行组合嵌套来实现。(4)严格控制GOTO语句的使用。,5.2结构化程序设计,第5章详细设计,5.2结构化程序设计,第5章详细设计,例,打印A、B、C3个数中最小值的程序。,5.2结构化程序设计,第5章详细设计,5.2结构化程序设计,第5章详细设计,3.结构化程序设计的优点(1)自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律,可以显著提高软件开发的成功率和生产率。(2)先全局后局部、先整体后细节、先抽象后具体的逐步求精过程开发出的程序有清晰的层次结构。(3)使用单入口单出口的控制结构而不使用GOTO语句,使得程序的静态结构和它的动态执行情况比较一致。,5.2结构化程序设计,第5章详细设计,(4)控制结构有确定的逻辑模式,编写程序代码只限于使用很少几种直截了当的方式。(5)程序清晰和模块化使得在修改和重新设计一个软件时可以重用的代码量最大。(6)程序的逻辑结构清晰,有利于程序正确性验证。,5.2结构化程序设计,第5章详细设计,2020/5/114,结束,返回,5.3过程设计工具,第5章详细设计,描述程序模块处理过程的工具称为过程设计工具,主要有图形、表格和语言三大类。,1.程序流程图程序流程图(ProgramFlowChart)又称为程序框图,是一种描述程序的控制结构流程和指令执行情况的有向图。它是历史最悠久,使用最广泛的过程描述方法。,第5章详细设计,5.3过程设计工具,2020/5/116,结束,返回,程序流程图中的符号,第5章详细设计,5.3过程设计工具,2020/5/117,结束,返回,第5章详细设计,5.3过程设计工具,2020/5/118,结束,返回,第5章详细设计,5.3过程设计工具,2020/5/119,结束,返回,第5章详细设计,5.3过程设计工具,第5章详细设计,2020/5/121,结束,返回,程序流程图示例,程序流程图示例:,2.盒图(N-S图)Nassi和Shneiderman出于要有一种不允许违背结构化程序设计精神的图形工具考虑,提出了盒图,又称为N-S图。盒图没有箭头,因此不允许随意转移控制。使用盒图作为详细设计的工具,可以使程序员逐步养成用结构化的方式思考问题和解决问题的习惯。,第5章详细设计,5.3过程设计工具,2020/5/123,结束,返回,第5章详细设计,5.3过程设计工具,第5章详细设计,盒图示例:,3.PAD图问题分析图(PAD,ProblemAnalysisDiagram),1973年由日本日立公司发明,已得到一定程度的应用。它用二维树形结构图来表示程序的控制流,将这种图翻译成程序代码比较容易。,第5章详细设计,5.3过程设计工具,2020/5/126,结束,返回,第5章详细设计,5.3过程设计工具,第5章详细设计,PAD图示例:,2020/5/128,结束,返回,PAD图表达的软件过程呈树形结构,它即克服了传统的流程图不能清晰表现程序结构的缺点,又不像N-S图那样受到把全部程序约束在一个方框内的限制,这就是它的优势所在。,第5章详细设计,5.3过程设计工具,4.判定表在数据处理中,有时数据流的加工需要依赖于多个逻辑条件的取值,就是说完成这一加工的一组动作是由一组条件取值的组合而引发的。这时使用判定表来描述比较合适。判定表通常由四部分组成:左上部分列出所有的条件,左下部分为所有可能的操作,右上部分表示各种条件组合的一个矩阵,右下部分是对应每种条件组合应有的操作。,第5章详细设计,5.3过程设计工具,第5章详细设计,例,商店业务处理系统中“检查发货单”判定表,5.3过程设计工具,5.判定树判定树是判定表的变种,它能清晰地表达复杂的条件组合与所对应的操作之间的关系。判定树的优点在于它无须任何说明,一眼就能看出其含义,易于理解和使用。,第5章详细设计,5.3过程设计工具,第5章详细设计,商店业务处理系统中“检查发货单”判定树,5.3过程设计工具,2020/5/133,结束,返回,PDL是一种用于描述功能模块的算法设计和加工细节语言,称为过程设计语言。它是一种伪代码(PseudoCode)。,PDL-关键词+自然语言,第5章详细设计,6.PDL(ProcessDesignLanguage)语言,5.3过程设计工具,PDL具有严格的关键字外部语法,用于定义控制结构和数据结构;另一方面,PDL表示实际操作和条件的内部语法通常又是灵活自由的,以便可以适应各种工程项目的需要。因此,一般说来PDL是一种“混杂”语言,它使用一种语言(通常是某种自然语言)的词汇,同时却使用另一种语言(某种结构化的程序设计语言)的语法。,第5章详细设计,5.3过程设计工具,2020/5/135,结束,返回,IFTHEN;ELSE;ENDIF,选择型结构,第5章详细设计,5.3过程设计工具,2020/5/136,结束,返回,DOWHILE;ENDDO,REPEATUNTIL;ENDREP,重复型结构,第5章详细设计,5.3过程设计工具,2020/5/137,结束,返回,步长重复型结构,DOFOR;ENDFOR,第5章详细设计,5.3过程设计工具,2020/5/138,结束,返回,多分支选择结构,CASEOF;WHENSELECT;WHENSELECT;DEFAULT:缺省或错误case:;ENDCASE,第5章详细设计,5.3过程设计工具,例,商店业务处理系统中“检查发货单”的伪代码。if发货单金额超过$500thenif欠款超过了60天then在偿还欠款前不予批准else(欠款未超期)发批准书,发货单endifelse(发货单金额未超过$500)if欠款超过60天then发批准书,发货单及赊欠报告else(欠款未超期)发批准书,发货单endifendif,第5章详细设计,5.3过程设计工具,IFtheinvoiceexceeds$500THENIFtheaccounthasanyinvoicemorethan60daysoverdueTHENtheconfirmationpendingresolutionofthedebtELSEissueconfirmationandinvoiceENDIFELSEIFtheaccounthasanyinvoicemorethan60daysoverdueTHENissueconfirmation,invoiceandwritemessageoncreditactionreportELSEissueconfirmationandinvoiceENDIFENDIF,第5章详细设计,5.3过程设计工具,2020/5/141,结束,返回,PDL的特点:提供全部结构化控制结构和模块特征。能对PDL正文进行结构分割,使之变得易于理解。有数据说明机制,包括简单的(如变量和数组)与复杂的(如链表和层次结构)数据结构。有子程序定义与调用机制,用以表达各种方式的接口说明。为了区别关键字,规定关键字一律大写,其它单词一律小写。或者规定关键字加下划线,或者规定它们为黑体字。内语法使用自然语言来描述处理特性。内语法比较灵活,只要写清楚就可以,以利于人们可把主要精力放在描述算法的逻辑上。,第5章详细设计,5.3过程设计工具,加工逻辑描述工具的选择:a.对于不太复杂的判断逻辑,使用判定树比较好;b.对于复杂的判断逻辑,使用判定表比较好;c.若一个处理逻辑既包含了一般的顺序执行动作,又包含了判断或循环逻辑,则使用PDL语言比较好。,第5章详细设计,5.3过程设计工具,用户界面是用户和计算机交互的重要途径,用户可以通过屏幕窗口与计算机进行对话,向计算机输入有关数据,控制计算机的处理过程并将处理结果反馈给用户。因此,界面设计必须从用户操作方便的角度来考虑,与用户共同协商界面的内容和形式。5.4.1用户界面设计的“黄金规则”TheoMandel在1997年提出了界面设计的3条“黄金规则”:1.界面应置于用户控制之下。2.减少用户的记忆负担。3.保持界面风格的一致性。这些规则实际上构成了指导用户界面设计活动的基本原则。,第5章详细设计,5.4用户界面设计,5.4.2用户界面设计过程用户界面设计是一个不断的迭代过程,可以用类似软件生命周期中的螺旋模型来表示。用户界面设计过程包括4个活动过程:1.用户、任务和环境分析。2.界面设计。3.界面构造(实现)。4.界面确认。,第5章详细设计,5.4用户界面设计,第5章详细设计,5.4用户界面设计,5.4.3用户界面的主要形式1.菜单式。通过屏幕显示可选择的功能代码,由用户根据需要进行选择,可将菜单设计成层次结构,通过层层调用可以引导用户使用系统的每一个功能。随着软件技术的发展,菜单设计也更加趋于美观、方便和实用。目前,系统设计中常用的菜单设计方法主要如下:,第5章详细设计,5.4用户界面设计,(1)一般菜单:在屏幕上显示出各个选项,每个选项指定一个代码(数字或字母),然后根据用户输入的代码或单击鼠标,即可决定何种后续操作。,第5章详细设计,5.4用户界面设计,(2)下拉式菜单:它是一种二级菜单,第一级是选择栏,第二级是选择项,选择栏横排在屏幕的上方,用户可以利用光标控制键选定当前菜单栏,在当前菜单栏下立即显示出该栏的各项功能,以供用户进行选择。,Word菜单栏,格式菜单项,第5章详细设计,5.4用户界面设计,(3)快捷菜单:选中对象后单击鼠标右键所出现的弹出式菜单,将鼠标移到所需的功能项目上,然后单击左键即执行相应的操作。,第5章详细设计,5.4用户界面设计,2.填表式。填表式一般用于通过终端向软件系统输入数据,软件系统将要输入的项目显示在屏幕上,然后由用户逐项填入有关数据。填表式界面设计常用于软件系统的输出。在查询软件系统中的数据时,可以将数据的名称按一定的方式排列在屏幕上,然后由计算机将数据的内容自动填写在相应的位置上。由于这种方法简便易读,并且不容易出错,所以它是通过屏幕进行输入输出的主要形式。,第5章详细设计,5.4用户界面设计,第5章详细设计,5.4用户界面设计,126邮箱注册表,3.选择问答式。当软件系统运行到某一阶段时,可以通过屏幕向用户提问,软件系统根据用户选择的结果决定下一步执行什么操作。这种方法通常可以用在提示操作人员确认输入数据的正确性或者询问用户是否继续某项处理等方面。例如,当用户进行某种操作后,可通过屏幕询问“是否继续(Y/N)”,计算机根据用户的回答来决定是继续进行还是退出。,第5章详细设计,5.4用户界面设计,保存对话框,第5章详细设计,5.4用户界面设计,4.表单式。用户界面是一个表单(工作窗口),表单上有各种控件,如标签、文本框、组合框、命令按钮等。,用户登录界面,2020/5/154,结束,返回,5.4.4界面设计应考虑的因素在选用界面形式的时侯,应当考虑每种类型的优点和限制:使用的难易程度:对于没有经验的用户,该界面使用的难度有多大。学习的难易程度:学习该界面的命令和功能的难度有多大。,第5章详细设计,5.4用户界面设计,2020/5/155,结束,返回,操作速度:在完成一个指定操作时,该界面在操作步骤、击键和反应时间等方面效率有多高。复杂程度:该界面提供了什么功能、能否用新的方式组合这些功能以增强界面的功能。开发的难易程度:该界面设计是否有难度、开发工作量有多大。,第5章详细设计,5.4用户界面设计,5.4.5用户界面设计分析界面设计分析应与软件系统的需求分析同步进行。它主要包括:用户特性分析外行型初学型熟练型专家型用户工作分析记录有关系统的概念和术语确定界面类型,第5章详细设计,5.4用户界面设计,2020/5/157,结束,返回,5.4.6用户界面的质量要求可使用性:使用简单;保持界面术语标准化和一致性;拥有Help帮助功能;具有快速的系统响应和低的系统成本;具有容错能力。灵活性:用户可以根据需要制定和修改界面方式;能够按照用户需要,提供不同详细程度的系统响应信息。,第5章详细设计,5.4用户界面设计,2020/5/158,结束,返回,复杂性和可靠性:用户界面的规模和组织的复杂程度就是界面的复杂性。在完成预定功能的前提下,用户界面越简单越好。用户界面的可靠性是指无故障使用的间隔时间。用户界面应能保证用户正确、可靠地使用系统,保证有关程序和数据的安全性。,第5章详细设计,5.4用户界面设计,5.5数据库设计,数据库设计是建立一个应用系统重要的任务之一,数据库设计应该和应用系统设计相结合,整个软件系统的设计过程要把数据(结构)设计和行为(处理)设计密切结合起来。数据库设计过程一般包括6个阶段:数据需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行与维护。1.数据需求分析进行数据库设计首先必须准确了解用户数据需求。需求分析是整个软件设计的基础,也是数据库设计的基础。需求分析做得是否充分、准确,决定了在其基础上构建的数据库的质量与效率。,第5章详细设计,2.概念结构设计将需求分析得到的用户需求进行综合、归纳与抽象,形成信息结构即为概念模型,这一过程就是概念结构设计。描述概念模型的有力工具是ER图,其反映的是数据库中的实体概念、属性及联系。(1)设计概念结构的要求:a.能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求。b.易于理解。c.易于修改。d.易于向关系型、网状型、层次型等各种数据模型转换。,5.5数据库设计,第5章详细设计,(2)概念结构设计的方法:a.自顶向下法。即首先定义全局概念结构的框架,然后逐渐向下逐步细化。b.自底向上法。即首先定义各局部的概念结构,然后将它们集合起来,得到全局概念结构。c.逐步扩张法。首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至形成总体概念结构。d.混合策略。即将自顶向下和自底向上相结合,用自顶向下设计一个全局概念结构的框架,以它为骨架集成自底向上设计的各局部概念结构。,5.5数据库设计,第5章详细设计,3.逻辑结构设计概念结构是独立于任何一种数据模型的信息结构。逻辑结构设计的任务就是把由概念结构设计好的ER图转换为与选用的DBMS产品支持的数据模型相符合的逻辑结构。这里的转换就是把表示概念结构的ER图转换成关系模型的逻辑结构。例如,概念结构中的实体之间的关系有一一关系、一多关系、多一关系、多多关系。而DBMS支持的逻辑结构中的关系有一多关系和多一关系,则可以将一一关系看作是一多关系或多一关系的特例来处理。将多多关系分解或合并为一多关系或多一关系,以适应DBMS的要求。,5.5数据库设计,第5章详细设计,4.物理结构设计物理设计的目的是根据具体的DBMS特征,确定数据库的物理结构(存储结构与存取方式)。关系数据库的物理设计任务包括三个方面:一是确定所有数据库文件的名称及其所含字段的名称、类型和宽度;二是确定各数据库文件需要建立的索引及在什么字段上建立索引;三是对物理结构进行优化和评价,重点是物理存取的时间和空间效率。,5.5数据库设计,第5章详细设计,5.数据库的实施完成数据库的物理设计后,设计人员就要用DBMS提供的数据定义语言(如SQLServer,Oracle,VF,Access等)和其他程序设计语言(如C,C+,JAVA,VB等)将数据库的逻辑设计和物理设计结果描述出来,成为DBMS可以接受的数据库和源代码,这就是数据库的实施。,5.5数据库设计,第5章详细设计,数据库的实施工作有:(1)建立数据库结构。(2)数据载入。(3)应用程序的编写和调试。(4)数据库系统的试运行。,5.5数据库设计,第5章详细设计,1.软件接口设计的依据接口设计的主要依据是数据流图中的系统边界。系统边界将数据流图中的处理划分为手工处理部分和系统处理部分,在系统边界之外的是手工处理部分,系统边界之内的是系统处理部分。数据可以在系统内部、系统外部或穿越系统流动。穿过系统边界的数据流代表了系统的输入和输出。系统的接口(包括用户界面及与其他系统的接口)是由穿越系统边界的数据流定义的。在最终的系统中,数据流将成为用户界面中的表单、报表或与其他系统进行交互的文件或消息。,5.6接口设计,第5章详细设计,2.软件接口的类型软件接口主要包括3个方面:系统内模块之间的接口(内部接口);目标系统与其他软硬件之间的接口(外部接口);系统与用户之间的接口(人机交互界面)。用户接口设计描述用户操作和反馈结果等;外部接口设计描述软硬件输入输出、网络传输协议等;内部接口设计描述模块间数据传递等。,5.6接口设计,第5章详细设计,3.应用程序编程接口应用程序编程接口,简称API(ApplicationProgrammingInterface),就是软件系统不同组成部分衔接的约定。随着软件规模的日益庞大,需要把复杂系统划分成小的组成部分。在程序设计的实践中,编程接口的设计首先要使系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。,5.6接口设计,第5章详细设计,API的表现形式是源代码。API的应用大大促进了计算机产业的进步,同时API几乎决定着日常运算的各个方面。大多数程序员秉承为软件用户设计优秀的用户界面思想,这一点早已深入人心。另一方面,如何实现合理的软件API却只为少数人所重视。历史证明,所有在应用上获得成功的软件或者Web应用无一不是首先在API的设计上满足了用户的需求!,5.6接口设计,第5章详细设计,API的主要目的是提供应用程序与开发人员访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。提供API所定义功能的软件称作API的实现。一组API通常是一套软件开发工具包(SDK)的一部分。API有许多不同设计,用于快速执行的接口通常包括函数、常量、变量与数据结构。典型情况下,API由一个或多个提供某种特殊功能的动态连接文件DLL组成。,5.6接口设计,第5章详细设计,2020/5/171,结束,返回,5.7详细设计说明书,详细设计的结果是产生详细设计说明书,以下为一个典型的详细设计说明书的基本模型。1.引言1.1编写的目的说明编写该详细设计说明书的目的,并指明其预
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 竞争优势演变分析-洞察及研究
- 2025-2030工业厂房节能窗选型标准与BIM技术应用前景报告
- 2025-2030工业元宇宙数字孪生体精度分级与应用规范
- 电机生产过程智能控制算法-洞察及研究
- 2025-2030工业传感器技术演进与物联网应用场景分析报告
- 2025-2030工业互联网平台架构演进趋势与价值链重构战略研究报告
- 2025-2030工业互联网平台建设现状及发展趋势研究报告
- 2025-2030工业互联网平台商业模式与标杆案例解析报告
- 2025-2030工业互联网发展现状及技术应用前景报告
- 2025-2030工业AR远程维护系统在装备制造业推广障碍分析
- 23G409先张法预应力混凝土管桩
- BA系统原理培训课件
- 上海交通大学学生生存手册
- 民航安全检查员(四级)理论考试题库(浓缩500题)
- 热力管网监理实施细则
- FMEA-潜在失效模式分析
- 统编版高中语文选择性必修上册第一单元测试卷【含答案】
- 保健食品注册与备案管理办法课件
- 钢筋锈蚀原理及应对措施案例分析(54页图文丰富)
- 第二讲水轮机结构
- K2FastWave中文操作手册
评论
0/150
提交评论