基于任务驱动模式的软件工程与UML建模技术项目四软件设计课件.ppt
-
资源ID:82396379
资源大小:3.04MB
全文页数:92页
- 资源格式: PPT
下载积分:12金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于任务驱动模式的软件工程与UML建模技术项目四软件设计课件.ppt
项目四 软件设计 项目四 软件设计 任务一任务一 总体设计总体设计 任务二任务二 详细设计详细设计 任务三任务三 编写文档编写文档 项目四 软件设计 任务一任务一 总总 体体 设设 计计总体设计又称为概要设计或初步设计,基本目的就是回答“系统应该如何实现”这个问题。这个阶段有两个任务:第一,划分出组成系统的物理元素程序、文件、数据库、人工过程和文档等,但是每个物理元素仍然处于黑盒子级,即具体内容将在以后仔细设计;第二,设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。项目四 软件设计 总体设计过程总地来说有以下三个步骤:第一,分析员根据数据流图寻找实现目标系统的各种不同的方案。第二,分析员从供选择的方案中选取若干个合理的方案,并为每个合理的方案准备系统流程图,列出组成系统的所有物理元素,进行成本/效益分析,制定实现这个方案的进度计划。第三,分析员综合分析上述合理方案,从中选出一个最佳方案向用户推荐。如果用户接受了推荐的方案,分析员应进一步为这个最佳方案设计软件结构。项目四 软件设计 操作一操作一 总体设计概述总体设计概述总体设计也称概要设计,其基本目标是能够针对软件需求分析中提出的一系列软件问题,概要地回答问题如何解决。例如,软件系统将采用什么样的体系构架,需要创建哪些功能模块,模块之间的关系如何,数据结构如何,软件系统需要什么样的网络环境提供支持,需要采用什么类型的后台数据库等。总体设计过程通常由两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构。项目四 软件设计 项目四 软件设计 对每个合理的方案,分析员都应该准备4份资料:(1)系统流程图;(2)组成系统的物理元素清单;(3)成本/效益分析;(4)实现这个系统的进度计划。3.推荐最佳方案推荐最佳方案分析员应该综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划。用户和有关技术专家应认真审查分析员所推荐的最佳系统,如果满足用户的需要,经使用部门审批之后,将进入下一阶段结构设计。项目四 软件设计 4.功能分解功能分解为实现目标系统,必须设计出组成系统的所有功能,以及程序和文件(或数据库)结构。对程序结构的设计,通常分为两个阶段完成:首先进行结构设计,然后进行过程设计。结构设计确定程序由哪些模块组成,以及模块间的关系;过程设计确定每个模块的处理过程。结构设计是总体设计阶段的任务,过程设计是详细设计阶段的任务。为确定软件结构,首先需要把复杂的功能进一步分解。分解的依据是分析数据流图中的每个处理,如果一个处理的功能过于复杂,则把它的功能适当地分解成一系列比较简单的功能。项目四 软件设计 5.设计软件结构设计软件结构软件结构是由模块组成的层次系统,可以用层次图或结构图来描绘。在设计过程中,把系统模块组织成良好的层次系统,顶层模块调用它的下层模块,每个下层模块再调用更下层的模块,最下层的模块完成具体的功能。如果数据流图已经细化到适当的层次,即模块已分解到适当程序,则可以直接从数据流图映射出软件结构。6.设计数据库设计数据库分析员在需求分析阶段所确定的系统数据需求的基础上,进一步设计数据库。在数据库课程中已详细讲述了设计数据库的方法。项目四 软件设计 项目四 软件设计(2)用户手册。根据总体设计阶段的结果,修改更正在需求分析阶段产生的初步的用户手册。(3)测试计划。包括测试策略、测试方案、预期的测试结果、测试进度计划等。(4)详细的实现计划。(5)数据库设计结果。9.审查和复审审查和复审分析员对总体设计的结果进行严格的技术审查,在技术审查通过之后再由用户从管理角度进行复审。项目四 软件设计 操作二操作二 软件设计原理软件设计原理1.模块化模块化模块是数据说明、可执行语句等程序对象的集合,它是构成程序的基本构件。每个模块均有标识符标识,如过程、函数、子程序和宏等,都可作为模块。模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把若干模块构成一个整体,以完成用户需求。模块化的目的是使一个复杂的大型软件简单化。如果一个大型软件仅由一个模块组成,它将很难理解,因此,经过细分(模块化)之后,软件将变得容易理解,这符合人类解决问题的一般规律。项目四 软件设计 项目四 软件设计 由上面的不等式还能得出下述结论:当模块数目增加时每个模块的规模将减小,开发单个模块需要的成本(工作量)确实减少了;但是,随着模块数目增加,设计模块间接口所需要的工作量也将增加。根据这两个因素,得出图4-1中的总成本曲线。每个程序都相应地有一个最适当的模块数目M,使得系统的开发成本最小。虽然目前还不能精确地决定M的数值,但是在考虑模块化的时候总成本曲线确实是有用的指南。项目四 软件设计 项目四 软件设计 2.抽象抽象抽象就是抽出事物的本质特性而暂时不考虑它们的细节,即提取共性、忽略差异。软件工程过程的每一步都是对软件解法的抽象层次的一次精化。对于复杂系统,抽象也是自顶向下,逐渐细化的,即由高层到底层,直至可直接实现。一般地,在可行性研究阶段,软件抽象为系统的一个完整部件;在需求分析期间,软件解法抽象为描述问题的数据流图、数据字典等;在总体设计阶段抽象为功能模块、软件结构等;在详细设计阶段抽象为算法流程、数据的物理结构等;在编码阶段抽象为程序代码。随着抽象的深入,抽象的程度也就随之减少了,最后,当源程序写出来以后,也就达到了抽象的最底层。项目四 软件设计 3.逐步求精逐步求精逐步求精是解决复杂问题时采用的基本方法,也是软件工程技术(如规格说明技术、设计和实现技术)的基础。逐步求精最初是由Niklaus Wirth提出的一种自顶向下的设计策略。按照这种设计策略,程序的体系结构是通过逐步精化处理过程的层次而设计出来的。通过逐步分解对功能的宏观陈述而开发出层次结构,直至最终得出用程序设计语言表达的程序。项目四 软件设计 项目四 软件设计 以模块中的错误为例,假如模块内部信息是隐蔽的,则模块中存在的这个错误将比较难于扩散到其他模块。否则,系统可能因为一个小错误的扩散,而使整个系统崩溃。实际上,信息隐蔽还使软件错误定位更加方便。由于软件出错位置容易发现,因此,整个软件纠错工作的效率、质量都会随之提高。5.模块独立模块独立模块独立性是指每个模块只完成系统要求的独立子功能,并与其他模块的联系最少且接口简单。模块独立是模块化、抽象、信息隐藏和局部化概念的直接结果。模块独立性之所以重要,主要原因有:第一,有效模块化(即具有独立的模块)的软件比较容易开发出来;第二,独立的模块比较容易测试和维护。项目四 软件设计 模块的独立程度可用两个定性标准度量:耦合和内聚。耦合衡量不同模块彼此间互相依赖(连接)的紧密程度。内聚衡量一个模块内部各个元素彼此结合的紧密程度。以下分别详细阐述。耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点,以及通过接口的数据。模块间的耦合程度强烈影响系统的可理解性、可测试性、可靠性和可维护性。模块的耦合有几种类型,按耦合程度由低至高排列分别为:无直接耦合、数据耦合、标记耦合、控制耦合、公共耦合和内容耦合。项目四 软件设计(1)无直接耦合:指两模块之间没有直接关系。(2)数据耦合:指两模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。(3)标记耦合:指两模块之间传递的是数据结构。如高级语言中的数组名、记录名、文件名等即为标记,传递的是这个数据结构的地址。(4)控制耦合:指一个模块调用另一个模块时,传递的是控制变量(如开关、标志)。(5)公共耦合:指通过一个公共数据环境相互作用的模块间的耦合。公共数据环境可以是全程变量或数据结构,共享通信区、内存、文件、物理设备等。项目四 软件设计 如果只有两个模块有公共环境,那么这种耦合有两种可能:一个模块往公共环境送数据,另一个模块从公共环境取数据,是数据耦合的一种形式,是比较松散的耦合。两个模块都既往公共环境送数据,又从公共环境取数据。这种耦合比较紧密,介于数据和控制耦合之间。(6)内容耦合:是最高程度的耦合,当一个模块直接使用另一个模块的内部数据,或通过非正常的入口而转入另一模块内部,或两模块间有一部分程序代码重叠(仅在汇编语言中)时,就是内容耦合。项目四 软件设计 为了降低模块间的耦合度,可采取的措施如下:(1)在耦合方式上降低模块间接口的复杂性,包括接口方式、接口信息的结构和数据。(2)在传递信息类型上尽量使用数据耦合,避免控制耦合,限制公共环境耦合,不使用内容耦合。内聚指模块功能强度的度量,即一个模块内部各个元素彼此结合的紧密程序的度量。一个模块内各元素(语句之间、程序段之间)联系得越紧密,则它的内聚性就越高。内聚性按联系紧密程度由低至高排列有以下几种类型:偶然内聚、逻辑内聚、时间内聚、通信内聚、顺序内聚、功能内聚。项目四 软件设计 项目四 软件设计(5)顺序内聚:指一个模块中各处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。(6)功能内聚:指模块内所有元素共同完成一个功能,缺一不可,因此模块不可再分,如“打印日报表”。耦合和内聚是模块独立性的两个定性标准,在软件系统划分模块时,应尽量做到高内聚低耦合,提高模块的独立性,即尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。项目四 软件设计 6.启发规则启发规则启发规则是在开发软件过程中总结出来的原则,能帮助人们改进软件设计,提高软件质量。规则如下:(1)改进软件结构提高模块独立性。设计出软件初步结构后,通过模块分解和合并,力求降低耦合提高内聚,如多个模块公有的一个子功能可独立成一个模块。(2)模块规模应该适中。一个模块的规模不过大,最好能在一页纸内完成(60行语句左右)。(3)深度、宽度、扇出和扇入都应适当。深度:软件结构中控制的层次。宽度:软件结构中同一层上模块的最大数。项目四 软件设计 扇出:一个模块直接调用(控制)的模块数目。平均扇出数通常是34。扇入:一个模块直接被调用(控制)的模块数目。扇入越大则共享该模块的上级模块数目越多,这是有好处的,但不能违背模块独立性原则。图4-2所示模块示意图中,其深度为5,宽度为7,扇出数最大为3,扇入数最大为3(如模块D扇入数为1)。项目四 软件设计 项目四 软件设计(4)模块的作用域应该在控制域之内。模块作用域和控制域示意图如图4-3所示。图4-3 模块作用域和控制域示意图项目四 软件设计 模块的控制域:是模块本身以及所有直接或间接从属于它的模块的集合。模块A的控制域是A、B、C、D、E、F的集合。模块的作用域:受该模块内一个判断影响的所有模块的集合。模块A内的判定就响模块G,则A的作用域是A、G、B、C、D、E、F集合。当模块的作用域不是控制域的子集时,可修改软件结构使作用域是控制域的子集,方法是:把判定点往上移,如把判定从模块A移到模块M中。把在作用域内但不在控制域内的模块移到控制域内,如把模块G移到模块A的下面,成为其直接的下级模块。项目四 软件设计 项目四 软件设计 操作三操作三 总体设计图形工具总体设计图形工具1.层次图和层次图和HIPO图图层次图用来描绘软件的层次结构。层次图中的一个矩形框代表一个模块,方框间的连线表示调用关系。图4-4是正文加工系统的层次图。注意:层次方框图表示组成数据结构的层次关系,与层次图不同。层次图适于在自顶向下设计软件的过程中使用。HIPO图是“层次图加输入/处理/输出图”。在H图(层次图)里除了最顶层的方框之外,每个方框都加了编号,H图中的每个方框对应着一张IPO图(输入/处理/输出图),用以描绘这个方框代表的模块的处理过程所示。即形成了不同于层次图的HIPO图,如图4-5所示。项目四 软件设计 图4-4 正文加工系统层次结构图项目四 软件设计 图4-5 正文加工系统HIPO图项目四 软件设计 2.结构图结构图结构图和层次图类似,也是描绘软件结构的图形工具,图中一个方框代表一个模块,框内注明模块的名字或主要功能,方框之间的箭头(或直线)表示模块的调用关系。结构图中带注释的箭头表示模块调用过程中来回传递的信息。尾部空心圆表示传递的是数据,实心圆表示传递的是控制信息。图4-6是产生最佳解系统的结构图。通常用层次图而非结构图作为描绘软件结构的文档。结构图作为文档并不很合适,因为图上包含的信息太多,反而降低了清晰程度。项目四 软件设计 图4-6 结构图的例子产生最佳解系统的一般结构项目四 软件设计 操作四操作四 结构化设计技术结构化设计技术在软件工程的需求分析阶段,通常用数据流图描绘信息在系统中加工和流动的情况。面向数据流的设计方法定义了一些不同的“映射”,利用这些映射可以把数据流图变换成软件结构,其目标是给出设计软件结构。通常所说的结构化设计方法(SD方法),也就是基于数据流的设计方法。1.基本概念基本概念结构化设计方法把信息流映射成软件结构,因此信息流的类型决定了映射的方法。信息流有下述两种类型:1)变换流具有明显的输入、变换(或主加工)和输出界面的数据流称为变换流。如图4-7所示。项目四 软件设计 图4-7 变换流项目四 软件设计 2)事务流数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。这类数据流称为事务流,如图4-8所示,它完成下述任务:(1)接收输入数据(输入数据又称为事务);(2)分析每个事务以确定它的类型;(3)根据事务类型选取一条活动通路。项目四 软件设计 图4-8 事务流项目四 软件设计 2设计过程设计过程图4-9说明了使用结构化方法逐步设计的过程。应该注意,任何设计过程都不是机械的、一成不变的,设计需要判断力和创造精神。项目四 软件设计 图4-9 设计过程项目四 软件设计 3.变换分析设计步骤变换分析设计步骤第1步:复查基本系统模型。第2步:复查并精化数据流图。第3步:确定数据流图具有变换特性还是事务特性。第4步:确定输入流和输出流的边界,从而孤立出变换中心。第5步:完成“第一级分解”。第6步:完成“第二级分解”。第7步:使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。项目四 软件设计 4.事务分析设计步骤事务分析设计步骤事务分析设计的步骤和变换分析的设计步骤大部分相同或类似,主要差别在于数据流图到软件结构的映射方法不同。事务流映射成软件结构包括一个接收分支和一个发送分支。映射出接收分支是从事务中心的边界开始,把沿着接收通路的处理映射成模块。发送分支的结构包括一个调度模块,它控制下层的所有活动模块,数据流图中除调度模块外的发送分支的其余部分中每个活动通路映射成与它的流特征相对应的结构,如图4-10所示。项目四 软件设计 图4-10 事务分析的映射方法项目四 软件设计 一般情况下,如果数据不具有显著的事务特点,最好使用变换分析;反之,采用事务分析。5.设计优化设计优化(1)对软件结构进行精化,使用尽可能少的模块。(2)对运行时间优化,可在详细设计阶段、编写程序过程中进行。优化方法遵守了一句格言:“先使它能工作,然后再使它快起来。”项目四 软件设计 操作五操作五 教务管理信息系统总体设计教务管理信息系统总体设计1.软件结构设计软件结构设计在对希望中学教务管理信息系统的分析阶段完成后,为了将系统分析阶段提出的系统的逻辑方案转换成可以实施的基于计算机和网络通信系统的物理方案,概要设计主要考虑的是实现这个系统/子系统应该设计几个功能模块,这些模块由哪些程序组成,它们之间以什么方式链接在一起构成一个最好的系统机内结构。系统设计阶段主要考虑的是计算机知识和应用软件开发经验。本系统的特性决定了在系统设计过程中可以使用“自顶向下”的原则,将系统分为若干个模块之后,可以用结构图来表达这些模块之间的连接关系。项目四 软件设计 结构图中是用一个矩形来表示模块的,模块的名称写在矩形的里面,模块结构图用图形的方法表示一个系统的输入、输出功能,以及系统模块层次。模块结构图主要包括两方面内容:(1)模块分层图:表示自顶向下分解所得系统的模块层次结构。(2)IPO图(输入-处理-输出图):用此图描述一个模块的输入、处理和输出内容。按照结构化设计方法,希望中学教务管理信息系统/子系统从功能上可以划分为教学安排管理、学生档案管理、教师档案管理、学生成绩管理、考核评定管理、系统维护等六大部分。项目四 软件设计 从数据流程图转换为模块结构图采用的是变换中心法。依据数据流程图的顶层图,转化得到系统的总体功能模块结构图如图4-11所示。图4-11 希望中学教务管理信息系统结构图项目四 软件设计 在划分完子系统后,要对相应的子系统的数据流图进行分析,对子系统进行进一步分解,这样不断地分解下去,直到分解成为含义明确、功能单一的单元功能模块,从而得到系统的功能模块结构图,即系统的HIPO图。在分解HIPO图时,应采用自顶向下逐步扩展的方法,先分解综合性强、层次较少的模块结构,然后再根据需要一步一步扩充,因此,需要对第一轮的HIPO图进行分解,直到每个单元功能模块都能明确它的作用,如添加功能、查询功能等,从而得到教务管理系统的HIPO图(见图4-12、图4-13)。项目四 软件设计 图4-12 希望中学教务管理信息系统HIPO图项目四 软件设计 图4-13 希望中学教务管理信息系统HIPO图(顶层)项目四 软件设计 2.数据库的概念设计数据库的概念设计由需求分析阶段的E-R图(即图3-8)得知,系统中涉及的实体有7个,其结构如下:年级组:其属性有年级组名称、年级组组长姓名、年级组电话;教师:其属性有教师工号、教师姓名、性别、出生年月、家庭住址、邮编、政治面貌、学历、职称、任教课程、备注;班级:其属性有级名、班主任姓名、教室编号、班级人数;课程:其属性有课程编号、课程名、学分、学时;项目四 软件设计 学生:其属性有学号、班级编号、姓名、性别、出生年月、家庭住址、邮编、政治面貌、入学时间、备注;奖惩:其属性有奖惩编号、奖惩标志、奖惩名称、奖惩日期、备注;家长:其属性有家长姓名、称谓、单位地址、单位电话。该系统有8个联系,包括7个一对多联系,1个多对多联系。其中1个多对多联系有属性,其属性为:成绩(分数)。项目四 软件设计 任务二任务二 详详 细细 设设 计计详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统。详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”。操作一操作一 详细设计概述详细设计概述详细设计也叫程序算法设计,目标是对目标系统作出精确的设计描述,其内容包括确定模块内部数据结构和确定模块内部程序算法。程序算法设计结果将成为程序编码的依据。需要注意的是,程序算法设计结果不仅要求逻辑上正确,而且还要求对处理过程的设计尽可能简明易懂,以方便在对程序进行测试、维护时,程序具有可读性并容易理解。项目四 软件设计 操作二操作二 详细设计图形工具详细设计图形工具1.程序流程图程序流程图程序流程图又称为程序框图,它是描述过程设计的方法,其使用最广泛,也是使用最混乱的一种方法。从20世纪40年代末到70年代中期,程序流程图一直是软件设计的主要工具。程序流程图的主要优点是:对控制流程的描绘很直观,便于初学者掌握。项目四 软件设计 程序流程图的主要缺点如下:(1)程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。(2)程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。(3)程序流程图不易表示数据结构。项目四 软件设计 2.盒图盒图(N-S图图)由Nassi和Shneiderman提出的盒图,又称为N-S图。它有下述特点:(1)功能域(即控制结构)明确,可以从盒图上一眼就看出来。(2)不能任意转移控制。(3)很容易确定局部和全程数据的作用域。(4)很容易表现嵌套关系,也可以表示模块的层次结构。图4-14给出了结构化控制结构的盒图表示,也给出了调用子程序的盒图表示方法。项目四 软件设计 图4-14 盒图组成项目四 软件设计 3.PAD图图PAD是问题分析图(Problem Analysis Diagram),自1973年由日本日立公司发明以后,已得到一定程度的推广,它用二维树形结构的图来表示程序的控制流,如图4-15所示。图4-15 PAD图的基本符号项目四 软件设计 PAD图的主要优点如下:(1)使用PAD图设计出来的程序必然是结构化程序。(2)PAD图所描绘的程序结构十分清晰。图中最左面的竖线是程序的主线,即第一层结构。随着程序层次的增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线。PAD图中竖线的总条数就是程序的层次数。(3)用PAD图表现的程序逻辑,易读、易懂、易记。PAD图是二维树形结构的图形,程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点。项目四 软件设计(4)容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成,有利于提高软件可靠性和软件生产率。(5)可用于表示程序逻辑,也可用于描绘数据结构。(6)PAD图的符号支持自顶向下、逐步求精方法的使用。开始时设计者可以定义一个抽象的程序,随着设计工作的深入可使用def符号逐步增加细节,直至完成详细设计,如图4-16所示。项目四 软件设计 图4-16 PAD图实例项目四 软件设计 4.判定表判定表当算法中包含多重嵌套的条件选择时,用程序流程图、盒图、PAD图或过程设计语言(PDL)都不易清楚地描述,然而判定表却能够清晰地表示复杂的条件组合与对应的动作之间的对应关系。判定表是算法设计辅助工具,专门用于对复杂的条件组合关系及其对应的动作行为等给出更加清晰的说明,能够简洁而又无歧义地描述涉及条件判断的处理规则,并能够配合程序流程图、N-S图、PAD图或PDL伪码等进行程序算法描述。应该说,判定表并不是一种通用的设计工具,并不能对应到某种具体的程序设计语言上去。但是,当程序算法中出现多重嵌套中的条件选择时,往往需要用到判定表。项目四 软件设计 判定表一般由四个部分组成,其中,表的左上部分列出所有条件,表的左下部分是所有可能出现的动作,表的右上部分用于表示各种可能的条件组合,表的右下部分则是和每种条件组合相对应的动作。这样一来,判定表的右半部分的每一列实质上就构成了一条规则,它规定了与特定的条件组合相对应的动作。下面以航空公司飞机票价计算规则为例说明判定表的使用方法。项目四 软件设计 假设该公司飞机票价计算规则是:国内乘客按规定票价计算,国外乘客按规定票价加倍计算,但中小学生凭学生证按规定票价半价优惠,70 岁以上老年乘客凭老年证或身份证按规定票价 8 折优惠,残疾人可根据残疾人证明按 8 折优惠。以上优惠可按最优折扣率计算,但不能重复计算。另外,身高不足1米的儿童可以免票。该飞机票价计算问题的判定表如表4-1所列。其中,表中右上部分中的“T”表示它左边那个条件成立,“F”表示条件不成立,空白表示这个条件成立与否并不影响对动作的选择。表的右下部分中画“Y”的标记表示做它左边的那项动作,空白表示不做这项动作。项目四 软件设计 表表4-1 用判定表描述计算飞机票价的算法用判定表描述计算飞机票价的算法项目四 软件设计 5.判定树判定树判定树是判定表的变种,能清晰地表示复杂的条件组合与对应的动作之间的对应关系。判定树的优点在于,它的形式简单到不需任何说明,一眼就可以看出其含义。图4-17是用判定树表示的计算航空公司行李费的算法。图4-17 行李费的判定树项目四 软件设计 6.过程设计语言过程设计语言过程设计语言(Process Design Language,PDL)也称伪码,是一种类程序设计语言。一方面,PDL有严格的关键字外部语法,借用某种语言(如使用PASCAL、C语言)的语法控制框架,用于定义控制结构和数据结构;另一方面,使用某一自然语言的词汇,可灵活自由地表示实际操作和判定条件,以适应各种工程项目的需要。PDL具有的特点如下:(1)提供结构化控制结构、数据说明和模块化的特点。(2)自然语言的自由语法。(3)数据说明包括简单和复杂的数据结构。(4)提供模块定义和模块调用的各种接口描述模块。项目四 软件设计 PDL具有的优点如下:(1)可作为注释直接插在程序中间。(2)PDL的编辑和书写可用普遍的正文编辑程序或文字处理系统。(3)PDL可以经自动处理程序,生成程序源代码。例:某系统主控模块详细设计,可用PDL描述如下:项目四 软件设计 项目四 软件设计 操作三操作三 结构化程序设计结构化程序设计结构化程序设计的概念最早由E.W.Dijkstra提出,1965年他在一次会议上指出:“可以从高级语言中取消GO TO语句”。1966年Bohm和Jacopini证明了,只用3种基本的控制结构就能实现任何单入口单出口的程序,即顺序、选择和循环(见图4-18)。项目四 软件设计 图4-18 程序流程图的结构项目四 软件设计 结构化程序设计中通常还允许使用DO-UNTIL和DO-CASE两种控制结构,它们的流程图如图4-19所示。使用结构化程序设计的好处有:(1)开发出的程序结构层次清晰。(2)不使用GO TO语句,程序的静态和动态结构情况比较一致。(3)控制结构有确定的逻辑模式。(4)可重用的代码量大。(5)程序的逻辑结构清晰,有利于程序正确性证明。项目四 软件设计 图4-19 程序流程图的结构项目四 软件设计 操作四操作四 教务管理信息系统详细设计教务管理信息系统详细设计1.程序流程图程序流程图为了简单明了地描述本系统的处理过程,以下采用了比较传统的程序流程图,这是一种早就使用的要领模式,用来描述程序执行的逻辑过程。按照程序流程图的方法,可以把系统的处理过程分为处理、判断、输入、输出、起始和终止等几个过程。系统流程图主要用符号的形式描述了所有的输入输出和处理过程以及数据流向。(1)主界面操作流程图如图4-20所示。项目四 软件设计 图4-20 主界面程序流程图项目四 软件设计(2)教师情况查询程序流程图如图4-21所示。图4-21 教师情况查询流程图项目四 软件设计 2数据库的逻辑设计数据库的逻辑设计E-R模型所表示的全局概念结构,是对用户数据需求的一种抽象表示形式,它独立于任何一种数据模型。为了实现用户的需求,必须将概念结构进一步转化为与我们选用的具体机器上的DBMS产品所支持的数据模型相符合的逻辑结构,这就是数据库逻辑设计的任务。首先要实现的是E-R模型向关系模型的转换。将ER模型转换为关系模型实际上就是要将实体、实体的属性和实体间的联系转换为关系模式。项目四 软件设计 这种转换一般遵循如下规则:(1)对于实体类型的转换:将每个实体类型转换成一个关系模式,实体的属性为关系模式的属性,实体的码即为关系模式的码。(2)对于实体间联系的转换:根据三种不同情况对实体间联系的转换作出不同的处理。若实体间的联系是11,可以在两个实体类型转换成的两个关系模式中的任意一个关系模式的属性中加入另一个关系模式的码和联系的属性。若实体间的联系是1N,则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的码和联系的属性。项目四 软件设计 若实体间的联系是NM,则将联系类型也转换成关系模式,其属性为两端实体类型的码加上联系类型的属性,而关系的码则为两端实体的码的结合。通过以上所述原则,由E-R图转换得到如下的关系模式(带实线的为主码,波浪线的为外部码):年级组(年级组名称、年级组组长工号、年级组组长姓名、年级组电话)教师(教师工号、年级组名称、教师姓名、性别、出生年月、家庭住址、邮编、政治面貌、学历、职称、任教课程、备注)班级(班级名、班主任工号、班主任姓名、教室编号、班级人数)项目四 软件设计 课程(课程编号、课程名、学分、学时、教师工号)学生(学号、班级编号、姓名、性别、出生年月、家庭住址、邮编、政治面貌、入学时间、备注、班级编号、家长姓名)奖惩(奖惩编号、奖惩标志、奖惩名称、奖惩日期、备注、学号)家长(家长姓名、称谓、单位地址、单位电话、学号)成绩(学号、课程编号、分数)项目四 软件设计 3.数据库的物理设计数据库的物理设计教务管理系统中要涉及的关系如上所示,在对数据代码进行设计后,再按照数据字典中的数据元素说明确定每个数据项的类型和长度,从而使得每个关系对应一个数据表。同时在设计表时要注意文件的主码和外码。部分表格设计如表4-2至表4-5所示。项目四 软件设计 表表4-2 年级组对应数据表年级组对应数据表项目四 软件设计 表表4-3 教师对应数据表教师对应数据表项目四 软件设计 表表4-4 班级对应数据表班级对应数据表项目四 软件设计 表表4-5 课程对应数据表课程对应数据表项目四 软件设计 4.人机界面设计人机界面设计所谓用户界面,就是指软件系统与使用者交互的接口,通常包括输入、输出、人机对话的界面与方式等。用户界面设计的好坏将直接影响到整个软件系统的质量,而其中人机界面的好坏涉及用户对软件系统的满意度,甚至影响到一个信息系统能否得到广大用户的认可。由于教务管理信息系统面向的是从事教育方面的人员,他们对计算机系统或者Visual Foxpro 6.0之类的开发软件不是很了解,因此,从实际条件和使用要求出发,本系统采用了比较简单的表单操作,并且在保证记录内容大体不变的前提下,尽量采取和手工表单格式一致的表单形式。界面中的担任步骤也尽量简化和集中,如图4-22所示。项目四 软件设计 图4-22 主界面图项目四 软件设计 在主界面中,通过点击菜单项来实现进入下一级功能模块,退出点击按钮来实现,如图4-23所示。教师基本情况输入界面用于将教师的个人信息资料输入计算机,可以按“添加”按钮连续输入资料,也可以上、下翻动查询已输入的资料,如需退出可以按“退出”按钮来实现。在该界面中还可实现打印功能。图4-23 教师基本情况输入项目四 软件设计 任务三任务三 编写文档编写文档1.总体设计文档总体设计文档总体设计说明书格式如下:项目四 软件设计 项目四 软件设计 2.详细设计文档详细设计文档详细设计说明书格式如下: