1描述处理逻辑的工具判断树判断表结构语言2例:某公司对于订货,根据不同的条件给予不同的折扣:(1)年交易额在5万或5万以下,则不给予折扣(2)年交易额在5万以上时,如果无欠款,则给予15%的折扣;如果有欠款,而且与本公司的交易关系在20年以上,则折扣为10%;如果有欠款,而且与本公司的关系在20年以下,则折扣为5%.3订货处理优惠待遇年交易额5万以上有欠款无欠款-----------15%交易20年以上判断树处理方案-------10%交易20年以下--------5%年交易额5万或5万以下------------------------0%4不同条件组合条件与行动12345678C1:交易额5万元以上YYYYNNNNC2:无欠款YYNNYYNNC3:与公司交易20年以上YNYNYNYNA1:折扣率15%√√A2:折扣率10%√A3:折扣率5%√A4:折扣率0%√√√√订货处理的判断表判断表是采用表格方式来描述处理逻辑的一种工具5IF交易额在5万元以上IF无欠款THEN折扣率=15%ELSEIF与本公司交易20年以上THEN折扣率=10%ELSE折扣率=5%ELSE折扣率=06某学校对学生成绩的评定办法为:若期末考试成绩大于等于90分,作业情况为好的成绩为优,而作业成绩为差的定为良;否则,若期末考试成绩大于等于75,作业情况为好的成绩定为良,而作业情况为差的定为及格;否则,若期末考试成绩大于等于60分,作业情况为好的成绩定为及格,而作业情况为差的成绩定为不及格,期末考试成绩低于60分,成绩定为不及格。上述功能请用判断树和判断表表示。7期末考试成绩=90——作业情况=75——作业情况=60——作业情况60——不及格好——优差——良好——良差——及格好——及格差——不及格决策树处理方案8期末考试成绩=90YY期末考试成绩=75YY期末考试成绩=60YYN作业情况好YNYNYN优*良**及格**不及格**决策表9请画出某企业库存量监控处理的决策树:若库存量≤0,按缺货处理;若库存量≤库存下限,则按下限报警处理;若库存量>库存下限,而又≤储备定额,则按订货处理;若库存量>库存下限≤库存上限,而又>储备定额,则按正常处理;若库存量≥库存上限,又>储备定额,则按上限报警处理。10>0≤0>储备定额≤储备定额>库存上限≤库存上限>库存下限≤库存下限库存量上限报警正常处理下限报警订货处理缺货处理请画出某企业库存量监控处理的决策树:若库存量≤0,按缺货处理;若库存量≤库存下限,则按下限报警处理;若库存量>库存下限,而又≤储备定额,则按订货处理;若库存量>库存下限≤库存上限,而又>储备定额,则按正常处理;若库存量≥库存上限,又>储备定额,则按上限报警处理。11作业1.招聘考试考核管理学、英语、计算机三门课程,录取规则是:(1)总分240分(含)以上录取;(2)总分180分(不含)以下,或其中两门在60分(不含)以下的不录取;(3)如果全部课程在60分(含)以上,需参加面试再决定是否录取;如果有一门60分(不含)以下需复试该课程再决定是否录取。画出此项处理的决策表。12条件与处理12345C1:总分≥240分YNNNNC2:总分≥180分YYNYC3:两门课≥60分YYNC4:一门课<60分NYA1:录取√A2:不录取√√A3:参加面试再决定是否录取√A4:复试<60分课程再决定是否录取√132.某银行发放贷款原则如下:(1)对于贷款未超过限额的客户,允许立即贷款。(2)对于贷款已超过限额的客户,若过去还款记录好且本次贷款额在2万元以下,可作出贷款安排,否则拒绝贷款。请用结构化英语描述该原则。14IF已超过贷款限额IF客户过去还款记录差THEN拒绝贷款ELSEIF本次贷款额≥2万THEN拒绝贷款ELSE作出贷款安排ELSE允许立即贷款15第7章系统设计16系统设计(SystemDesigns)阶段的主要目的:系统分析提出的逻辑方案--物理方案。数据流图和数据字典--软件系统的模块结构图,解决“系统怎么做”的问题。177.1系统设计概述一.系统设计的原则(1)简单性:(2)系统性:(3)灵活性:(4)可靠性:(5)经济性:系统设计所使用的主要方法是以自顶向下结构化的设计方法,在局部或是某些相对规模较小的系统还可以使用原型法、面向对象的方法。187.1系统设计概述(续)二.系统结构设计根据系统分析的要求和组织的实际情况,对新系统的总体结构进行大致设计,它是一种宏观、总体上的设计和规划。(1)系统结构化方法一个复杂的系统看成由许多相对独立的部分组成。再层层划分,分解为若干个组成部分进行设计。系统结构化的方法:层次结构和模块化结构两种类型。197.1系统设计概述(续)(2)系统的结构设计原则按照结构化系统分析与设计的基本思想,根据数据流图和数据字典,借助一套标准的设计准则和图表工具,自顶向下逐层把系统划分为若干个子系统(大小适当、功能明确,具有相对独立性,并容易实现),把复杂系统的设计简单化。然后再自下而上地逐步设计。207.1系统设计概述(续)子系统划分的一般原则①子系统要具有相对独立性②要使子系统之间数据的依赖性尽量小③子系统划分的结果应使数据冗余较小④子系统的设置应考虑今后管理发展的需要⑤子系统的划分应便于系统分阶段实现⑥子系统的划分应考虑到各类资源的充分利用217.1系统设计概述(续)三.软件系统结构设计(1)模块化设计模块:指一组程序语句或描述,包括输入与输出、逻辑功能描述、内部信息及其运行环境。模块化设计原则:①所划分的模块其内部的凝聚性要好,即模块具有独立性,模块之间的联系要少。②模块之间的联结只能存在上下级之间的调用关系,不能有同级之间的横向联系。③整个系统呈树状结构,不允许有网状结构或交叉调用关系出现。④所有模块都必须严格地分类编码并建立归档文件。22软件设计原理好的模块应符合信息隐蔽和模块独立性原则。模块独立性的两个度量标准:内聚、耦合块间联系块内联系(1)模块的耦合模块之间的耦合有数据耦合、控制偶合、公共耦合、内容耦合、特征耦合五种形式。23模块间耦合程度•无耦合如C与D无联系CDBAAB•数据耦合调用计算水电费计算水费计算电费月用水量月用电量水费电费数据耦合是指两个模块彼此间通过参数交换信息且每一个参数仅仅为数据,它是系统中一种低的耦合,是一种理想的模块连接如B从属于A,A对B的访问是通过变量(参数表)进行的数据传递的。24特征耦合两个模块通过参数表传递的是某一数据结构的子结构,而不是简单变量25控制耦合指两个模块彼此间传递的信息中有控制信息,传递的参数不仅仅有数据还有控制信息。控制耦合可以通过适当的转化,成为数据耦合。存款处理取款处理存款额识别存取业务存(取)款处理控制信息识别存取业务取款额存(取)额适当转化控制耦合转化为数据耦合•控制耦合模块A传递一个标志给B,通过该标志控制B进行某种选择AB标志26公共耦合一组模块都使用同一个公共数据区如BCE都访问全程数据区中的一个数据项,如一个磁盘文件。若B取一数后调用C,C算出的数再送回,E从中取数,若C算错,则E也错全程数据区ABCDFE27•内容耦合当一个模块使用保存在另一个模块中的数据或控制信息时,或转移进入另一模块中如A、D。根据A的结果决定是否执行D,若A中数据修改,则D中数据也得修改。ABCDFE全程数据区28系统模块设计时应尽量使用数据耦合,必要时才使用控制耦合,对公共耦合的模块数进行限制,坚决不用内容耦合。7.1系统设计概述(续)29偶然内聚W中几个语句实际上无任何联系,仅因为XYZ三个模块都含有,才写在一起模块内聚程度-块内联系XYZA=B+CGETCARDPUTOUTPUTIFI=5THENE=0W30•逻辑内聚A、B、C功能相似,为节约内存,将其合并为一个模块ABC。ABC的块内联系即为逻辑内聚•时间内聚:任务在同一时间执行XYZABC•过程内聚:模块内处理成分之间无关且以特定顺序执行通信内聚:是指一个模块内部的各个组成部分所完成的动作都使用了同一个输入数据或产生同一输出数据31顺序聚合是指一个模块内部的各个组成部分,都紧密相关于同一功能,且必须顺序执行,前一部分处理动作的输出是后一部分处理动作的输入。如:求二次方程的根1.输入A,B,C2求解3.输出功能内聚:模块中各处理成分属于一个整体,都为完成同一功能,很难分割如求矩阵的乘积\矩阵的逆\排序是指一个模块内部各个组成部分全部属于一个整体执行同一功能。如客人信息输入模块等。功能聚合模块都具有一个目的、有单一的功能。因而其界面非常清楚,与其他的模块联系低,可读性、可修改性、维护性、可测试性均很好。许多功能聚合模块可集中成为新的系统或子系统。在进行模块设计时,应尽可能追求功能聚合。327.1系统设计概述(续)四.软件结构描述工具(一)系统的结构化描述--控制结构图表示模块表示模块之间的调用关系表示模块间的数据传递关系表示一个模块包含的循环调用功能表示模块之间的控制传递关系表示一个模块内部包含的判定处理逻辑控制结构图常用符号337.1系统设计概述(续)模块间有三种调用关系:顺序调用、选择调用和重复调用ABCD(a)ABCD(b)AB(c)(a)是顺序调用,模块B、C、D是模块A的下层模块,它们由模块A调用,并协同完成模块A的功能。A模块先调用B模块,然后依次是C和D模块。(b)是选择调用,模块A根据情况选择调用B、C、D。(c)是重复调用,模块A对B多次反复调用。347.1系统设计概述(续)(二)由数据流图导出控制结构图控制结构图的依据就是在系统分析阶段产生的数据流程图数据流图的类型:1.变换型的数据流图笔记p55具有较明确的输入、变换(加工)和输出界面的数据流图。即数据流图明显地分为输入、主加工、输出三部分。如汇款系统的数据流图35汇款单物理输入格式检查合格汇款单计算汇费核准后的汇款单打印数据数据物理输出362.事务型的数据流图某个加工将其输入变成一系列发散的数据流,形成许多活动路径,并根据输入值选择其中一条路径,具有这种特征的数据流图称为事务性型的数据流图。这个加工称为事务中心。如:p5637住户要求要求类型输入分房处理调房单调房处理退房处理38(二).设计步骤(笔p57)1复查基本系统模型2复查精化数据流图3确定数据流图的类型通常是混合体,要从整体上确定是那种类型如(笔p57)4把数据流图映射为软件的模块结构,设计出模块结构的上层,即顶层和第一层395基于数据流图,逐步分解高层模块结构,设计下层模块结构。6对软件初始模块结构求精,得到更合理的软件结构7接口描述40(1)变换设计变换型数据流图导出相应的软件模块结构的过程1复查基本系统模型2复查并精化数据流图3确定变换型的,将其划分出输入、主加工、输出.方法:从物理输入端开始,一步步向系统流动,直到某个数据流不能看作是系统的输入为止,则前一个数据流就是逻辑输入。例笔p5841DBA①②③④⑤⑥HGEFC主加工4.根据变换型数据流图,将软件初始模块结构图的上层设计出来.顶层和第一层.SD方法采用自顶向下的策略,关键是找顶.变换型设计一旦确定了系统的主加工,则顶找到.先设计一个主模块,画在与主加工相应的位置.根据变换型的三部分设计出顶层和第一层.42systeminputprocessoutput主模块输出模块输入模块变换模块顶层--主模块,控制协调输入模块\变换\输出模块的工作第一层-为每个逻辑输入设计一个输入模块---向主模块提供数据为每个逻辑输出设计一个输出模块---将主模块提供的数据输出为主加工设计变换模块---将逻辑输入变换成逻辑输出43采购员P1.1输入入库单P1.2处理入库单P1.3打印输出采购员原始入库单入库单合法入库单交库单变换中心输入流输出流控制模块输入处理输出入库单输入入库单审核更新库存数据库存清单交库单变换型DFD转换为CSD图变换型结构的数据流图是一种线性状结构,可以明显的区分输入、处理、输出三部分。变换分析就是从变换型数据流图映射出模块结构图。首先找出主要处理功能,即变换中心,44采购员P1.1