您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 软件文档写作10-开发文档2
1、16.4软件概要设计文档概要设计阶段的主要任务是把系统的功能需求分配给软件结构,形成软件的系统结构,并完成表达。目前,整个软件界对软件结构的组成要素和描述还没有形成统一的规范,主要还是依赖于设计者的知识、经验和技巧。此外,由于人们对同一设计方法的理解和表达差别很大,所使用的符号体系、约定和流行的术语概念缺乏严格和一致性、系统性,没有形成对软件结构整体设计的一般性指导。因此,研究和建立形式化、规范化的描述方法s软件界的一项重要课题。我们前面曾经介绍的“软件视图”表达方法及对软件文档风格的影响,就是试图在这个方面有所进展。2回顾其中主要的表达类型有:1.模块视图类型——能为系统主要实现单元编制文档服务;2.组件和连接器(C&C)视图类型——能为系统执行单元编制文档服务;3.分配视图类型——能为系统软件与其开发和执行环境之间的关系编制文档服务。我们已经介绍的类型风格主要有:分解风格、使用风格、泛化风格、分层风格、部署风格、实现风格和工作任务风格等。这3种视图类型代表着系统设计师在设计系统时必须考虑的3种视角:将系统看成实现单元、运行时执行单元、从软件元素到环境结构的映射。而文档就是要记录这。
2、些内容。反映到概要设计具体的表现形式,主要是:结构化设计表达、面向对象设计表达。31.结构化表现形式结构化程序设计在数据类型和结构化控制描述支持下,主程序和子过程按照一定的构造逻辑分层布置,是主要的程序设计思想。在这样的思想下,系统的结构被映射为主程序和一系列具有调用关系的子过程的集合。这在程序设计语言中,直接与主程序和过程/函数的概念相对应。更复杂的系统设计包含了库、包、模块、程序覆盖等概念。常用的概要设计结构化表现方法有:层次图、HIPO图、结构图等。如下图是一个层次图的例。字处理系统输入输出编辑存储检索格式化编目录添加删除插入修改合并列表4简单的层次图缺乏追踪性,而HIPO图可以弥补此一缺点。实际上,HIPO图是由H图和IPO图两部分组成:H图就是层次图;和H图每个方框相对应的,应该有一张IPO图描述该方框代表的模块的处理过程。如下图,是一个带编号的H图的例,具有可追踪性。字处理系统输出2.0输入1.0存储4.0编辑3.0格式化6.0检索5.0编目录7.0删除3.2添加3.1修改3.4插入3.3列表3.6合并3.5IPO图使用的符号既少又简单,能够方便的描述数据输入、处理和输出之。
3、间的关系。如下图是一个主文档更新的IPO例子。5程序名:模块名:编制者:日期:页号:输入处理输出旧的主文件事务文件1.检验主记录2.校验事务记录3.更新主记录有效的主记录有效的事务记录更新后的主记录图中,箭头清楚的指出了数据通信的情况。Yourdon提出的结构图是进行软件结构设计的另一个有力的表达方法。而且,结构图较之层次图有更强的描述力。6下图是结构图的一个例子:产生最佳解得到好输入计算最佳解输出结果读输入编辑输入结果格式化显示结果好输入解好输入解原始输入原始输入编辑结束解解的格式化格式化的解结构图还有一些附加的符号,用以表示模块的选择调用和循环调用。如下图,左图是选择调用,右图是循环调用。MAB判定为真时调用模块A,否则调用模块BMACB模块M循环调用模块A、B、C72.面向对象设计表现形式数据抽象和面向对象设计是在主程序和子过程设计基础上建立和发展起来的重要的软件描述方法。数据抽象是面向对象设计的理论基础。类和对象是该描述方法的基础粒度。与传统软件工程将设计描述基础建立在模块或包上不同,面向对象设计方法的描述将软件的组成建立在类和对象的粒度上,极大的改变了软件描述的特性,并一举带。
4、来软件结构的革命性变化。目前,面向对象方法已经成为软件下图设计的基础和出发点。一些重要的软件设计思想,如消息、组件、控件、部件等,都是在此基础上提出来的,都可以从类和对象中找到踪迹。面向对象设计文档表达根据下图结构的表达,有多种方式,下面逐个介绍。8(1)面向对象设计(OOD)的4个部分这4个部分是问题域、人机交互部分、任务管理部分和数据管理部分。如下图所示。主题层类及对象层结构层属性层问题域部分人机交互部分任务管理部分数据管理部分-问题域部分:OOD根据需求分析中对问题域的描述,针对实现要求进行必要的整补和调整。其重点是:重用类设计、组合问题域专用类、调整继承的支持级别、提供数据管理部分以及增加底层细节。-人机交互部分设计:突出人如何命令系统,及系统如何向用户提交信息。尤其对非计算机专业用户如何提交信息。-任务管理部分设计:设计策略要点是识别并设计任务,加上包含在每个任务中的服务。-设计管理部分设计:该部分主要是为了隔离数据管理方案对系统设计表达的影响。设计既包含数据存放方法的设计,也包含相应服务的设计。9(2)概要设计OOD与OOA的表现形式有相似之处,但OOD需要针对实现的要求进。
5、行必要的整补和调整。面向对象系统的一个典型的系统结构是模型/视图/控制器(MVC)框架结构。其中,模型是指应用中的对象,其操作独立于用户界面;视图则管理用户界面的输出;控制器处理应用的输入。见下图。视图模型控制器系统结构实际上是一些抽象的类的集合,提供了系统的最上层设计。定义这些抽象类的新的子类和把它们实例化,可以实现所要求的特定行为,借此可以构造待开发的系统。概要设计过程编档就是记录这一构造过程和结果。10(3)概要设计技术的常用表示方法有继承机制、聚集关系、对象关联、注册/观察器、虚拟设备和代理结构等多种表示方法。①继承机制的表示通常将父类放在上面,将子类放在下面。如左图AB父类子类派生继承动物家禽类宠物鸡鸭鹅狗猫下图是表示鸡、鸭、猫、狗和动物之间的继承关系。11②聚集关系的表示若类B的定义将类A的对象作为数据成员,则B和A之间是一种聚集关系,其表示方法如右图所示。汽车B轮胎A子午线轮胎③对象关联的表示对象不是独立存在的,总是要以一定形式与其它对象发生关系的。如一对一、一对多的单向关系。主要关联方式分内嵌关联和外嵌关联两种。关联源对象关联指针被关联对象属性Next关联对象指针属性N。
6、ext关联对象指针属性Next关联对象指针被关联对象被关联对象图:内嵌关联结构表示A类对象:A1A类对象:A1A类对象:A2B类对象:B1B类对象:B2B类对象:B3AB关联类B类AB类对象关联表A类对象标识B类对象标识关联对象A1B1AB1A1B2AB2A2B1AB3………图:外嵌关联结构表示12④注册/观察器的表示一种将新的信息一对一的迅速传送或通知给相关对象的对象协作机制。特别在分布式环境中,对象通信代价很高时,这是一种高效的手段,在网络软件设计时常用。见下图例。生产者CollectionClientAttach()Detach()GetData()Generator()Notify()客户生产者*Gen客户()~客户()Update()SetGen()……Notify()……ClientUpdate()…GenAttach()GenDetach()1..n13⑤虚拟设备的表示虚拟设备是操作系统的一个重要概念。使用这种概念,可以为在不同设备上实现相同功能,或以相同操作接口访问不同设备提供可能和方便。如图ApplicationCanvasDraw()Line()Circle(。
7、)Rectangle()TextOut()…DrawSpaceDraw()Line()Circle()Rectangle()TextOut()…PrinterDrawSpaceDraw()Line()Circle()Rectangle()TextOut()…PrinterPrewDrawSpaceDraw()Line()Circle()Rectangle()TextOut()…ScreenWinDrawSpaceDraw()Line()Circle()Rectangle()TextOut()…OtherGDI14⑥代理结构的表示代理是一种在应用和被访问对象之间建立的桥梁或关口。通过代理的虚拟作用,达到控制对象访问的目的。代理具有的作用或特性可以包括间接性、委托性、临时替代性、虚拟性、安全性/保护性、远程性和多源性。下图是代理模式的实现结构表示的例。ApplicationObjectService()…ActualObjectService()…Object*anObjectService()…ProxyanObjectReturnanObjectService()15网络代理连接的表。
8、示例子:应用代理远程对象多源代理连接的例子应用代理问题求解对象1对象n对象2……连接连接连接连接166.5软件详细设计文档详细设计在概要设计之后,其工作重点是考虑实现各个模块的规定功能,表达的是模块内部的逻辑关系、数据结构和模块接口细节等,表达的方法主要有程序流程图、N-S图、PAD图、PDL语言以及判定表、树等。①程序流程图程序流程图也称程序框图,是一种独立于任何程序设计语言的表达工具,因其直观、清晰,易学、易用,而深受欢迎。然而,由于其存在致命的缺点——可以随意转向的箭头,使得设计难以规范、质量难以保证。目前,国际标准化机构已经不再推荐使用。程序流程图主要由5种基本的控制结构构成,图见下页。17(1)顺序结构(sequentialstructure)(2)选择结构(selectivestructure)ABPBAFT(3)先判定型循环结构(while-loopstructure)(4)后判定型循环结构(until-loopstructure)TPSFFSTP(5)多情况选择(casestructure)TA1FP=1TA2FP=2…TAnFP=n程序流程图(ProgramFlowC。
9、hart)的5种基本控制结构:18顺序ABPFTAB选择PFTBDo-WhilePSWhile型循环Do-UntilPSUntil型循环Case型选择P12nA1A2An子过程调用A②N-S图:Nassi&Shneiderman1973年提出,又称为盒图(BoxDiagram)。Chapin1974年作扩充,故也称为Chapincharts。N-S图规定了6种图形构件。19x4TFDo-Untilx5ighfkx1TFbDo-Untilx6ajx21cDo-Whilex323dek:N-S图的例:20AB顺序WhilePSUntilPS循环PABTHENELSE选择P=A1A2Case型选择An12n…陈述索引def定义③PAD图(ProblemAnalysisDiagram):日立公司,1973年提出。为ISO所极力推荐。也有5种基本控制结构。21开始结束ajUntilx5iUntilx6bx1kfx4ghdefkx2de123Whilex3c例:N-S图的例转换到PAD图。22PROCEDUREspell_checkISBEGINSplitdocumentintosingle。
10、wordsLookupwordsindictionaryDisplaywordswhicharenotindictionaryCreateanewdictionaryENDspell_checkExternalstatementsInternalstatements④PDL(ProgramDesignLanguage):是一种非正文形式的过程设计工具。PDL语言的特点:①有固定的关键字外语法,有完整的结构化的控制结构、数据说明和模块特征;②内语法使用自然语言描述处理特征,为使用者提供方便,提高可读性;③有数据说明机制。包括简单的(标量和数组)和复杂的(链表和层次结构)数据结构;④有子程序定义和调用机制,及各种方式的接口说明。例:23国标(GB8567-88)关于概要设计和详细设计的模板主要有:1.概要设计说明书2.数据库设计说明书3.组装测试计划4.详细设计说明书一个“人力资源管理系统详细设计报告”的例。
本文标题:软件文档写作10-开发文档2
链接地址:https://www.777doc.com/doc-3433698 .html