通过本课程的学习,使学生能真正的从中了解软件开发的整个过程。为了让学生真正得以实践,结合实际软件开发项目,让学生从问题定义开始,经过可行性研究、需求分析、概要设计、详细设计、编码直到最后要对自己开发的软件还要进行测试,这样一个软件开发过程,从而使学生掌握软件开发的基本技能。课程主要内容2023/9/3本课程比较全面、系统地介绍软件工程的概念、技术课程主学习本课程的基本要求本课程是继程序设计课程之后,对提高学生软件开发能力有重要作用的一门课程。要求学生在学习本课程前应掌握信息管理系统、数据结构、结构化程序设计、面向对象程序设计以及程序设计方法论。通过本课程的学习,为学生后期的毕业设计环节奠定了良好的基础。2023/9/3学习本课程的基本要求本课程是继程序设计课程之后,对提章学时章学时章学时章学时12349413222421021442284122总学时48=40(讲授)+8(课程设计)各章学时安排2023/9/3章学时章学时章学时章学时123494132224210214第一章软件工程概述水利工程建筑工程机械工程…
软件是一种逻辑实体,而不是具体的物理实体.
3、按软件开发划分软件项目开发软件产品开发2023/9/33、按软件开发划分软软2023/8/31.2软件工程的概念及范畴1、“软件工程”----SoftwareEngineering于1968年NATO组织在德国召开的一次会议上提出是把软件当作一种工业产品,要求“采用工程化的原理与方法对软件进行计划、开发和维护”。2023/9/31.2软件工程的概念及范畴1、“软件工程”----Sof软件工程学
软件开发技术
软件工程管理软件开发方法学软件工具软件工程环境软件工程管理学软件经济学----软件工程学的范畴2、软件工程学2023/9/3软件工程学软件开发技术软件工程管理软件开发方法学
Wakeupeverydaywithafeelingofpassionforthedifferenttechnologywillmakeinpeople’sLife.微软企业文化宗旨部分内容
每天醒来的时候,要对技术给生活造成的改变始终拥有一份激情。2023/9/3Wakeupeverydaywi程序3、软件的演变(即从传统软件开发到现代软件开发)软件软件产品传统软件开发现代软件开发1975198920000.00016240营业额增长曲线802023/9/3程序3、软件的演变(即从传统软件开发到现代软件开发)软1.3软件生存周期把软件从产生、发展到成熟、直至衰亡为止(SWlifecycle)2023/9/31.3软件生存周期把软件从产生、发展到成熟、直至衰亡为止(特点:上一阶段的变换结果是下一阶段的变换的输入,相邻两个阶段具有因果关系,紧密相联。需求分析问题定义可性行研究计划时期概要设计详细设计编码测试开发时期运行与维护运行时期软件生存周期模型(瀑布模型WaterfallModel)2023/9/3特点:需求分析问题定义可性行研究计划概要设计详细设计编原型模型(PrototypeModel)加工原型原型原型:是指模拟某种产品的原始模型快速分析和设计建造原型客户评价原型1、原型系统仅包括未来系统的主要功能,以及系统的重要接口。2、为了尽快向用户提供原型,开发原型系统时应尽量使用
能缩短开发周期的语言和工具。2023/9/3原型模型(PrototypeModel)加工原型原型:
第二章问题的定义与可性行研究
当我们在着手做任何一件工作以前,必须明确工作的性质、任务,制定完成任务的计划,这是非常必要的。同样对于软件产品的开发,显然也应该解决好这样类似的问题,明确该软件产品开发的任务,以及完成任务的价值从而制定出完成任务的计划。那么问题的定义和可性行研究就是制定软件系统的计划的第一步。所以在软件工程中把这一步称为计划时期2023/9/3第二章问题的定义与可性行研究当我开始问题定义可性行研究可行否?项目实施计划终止项目的建议结束Y计划时期的工作流程图N2023/9/3开始问题定义可性行研究可行否?项目实施计划终止项目的建议YWho为谁设计,用户是谁?What要解决哪些问题?Why为什么要解决这些问题
3W
WinCE1.0
有用的软件2023/9/3Who为谁设计,用户是谁?What要解决哪些问题?Why2.1现状调查和问题的定义目的:弄清楚用户要求计算机解决什么问题任务:编写系统目标与规范说明书系统目标与规范说明书1、项目:教材销售系统2、问题:人工销售教材手续繁琐,容易出错3、项目目标:建立一个高效率、无差错的计算机教材销售系统4、项目范围:利用现有的计算机,软件开发费用不得超过2000元5、初步想法:建议在系统中增加对缺书的统计与采购功能6、可性行研究:建议进行大约10天的可性行研究,且研究费用不超过500元2023/9/32.1现状调查和问题的定义目的:弄清楚用户要求计算机解决2.2可行性研究与论证1、经济可行性:进行成本效益分析,评估项目的开发成本。基于计算机系统的成本由四部分组成1、购置软、硬件及有关设备费用2、系统开发费用3、系统安装和维护费用4、人员培训费用费用其论证的焦点是:围绕着对系统开发的价值进行论证2023/9/32.2可行性研究与论证1、经济可行性:进行成本效益分析,举例:关于开发CAD系统的软件开发成本及效益分析
12345
:ACD
可用于描述实现系统与系统运行环境之间的信息边界。2023/9/3-------传输线的分类系统3、系统结构环境图(ACD传输线分类系统条形码阅读器传输线分配站操作员分配站操作员分类机构主机条形码线速指示器分路命令格式化报告数据查询查询及报告诊断数据-------传输线分类系统的ACD图处理与控制功能区外部实体2023/9/3传输线条形码传输线分配站分配站分类机构主机条形码线速分
ACD的层次结构ABC2023/9/3ACD的层次结构ABC2023/8/3作请画出学生成绩管理系统的ACD图业2023/9/3作请画出学生成绩管理系统的业2023/8/3
第3章软件需求分析软件需求分析是软件开发早期的一个重要阶段。它在问题定义和可行性研究阶段之后进行。需求分析的基本任务是软件人员和用户一起完全弄清用户对系统的确切要求。这是关系到软件开发成败的关键步骤,也是整个系统开发的基础。软件需求分析阶段要求用需求规格说明书(SRS)
来表达用户对系统的要求。规格说明书可用文字方式表示,也可用图形表示。本章将介绍需求分析的任务、步骤、需求分析方法(面向数据流图分析方法、面向对象的分析方法)。2023/9/3第3章软件需求分析软件需求分析是软件开发一、确定目标系统的具体要求1、确定系统的运行环境要求2、系统的性能要求3、系统功能3.1需求分析的任务硬件环境和软件环境确定目标系统具备的所有功能2023/9/3一、确定目标系统的具体要求1、确定系统的运行环境要求2、系统举例数据库中存放的是职工的某学校医疗费管理系统所属部门、职工号、姓名职工报销时应填写:所属部门、职工号、姓名、日期校内门诊、校外门诊、住院费、子女医疗费医疗费分类:该校规定,每年每个职工的医疗费有一个限额(如80元),限额在年初确定,其限额规则如下:1、每个职工一年内报销的医疗费不超过限额时,全部报销2、超额,则超出部分只可报销90%,其余10%由职工个人负担3、职工子女的医疗费也有限额(如40元)2023/9/3举例数据库中存放的是职工的某学校医疗费管理系统所属部门、职工1、医疗费管理系统每天记录当天报销的若干职工或职工子女的医疗费的类别、金额。
2、在当天下班前让系统自动结帐、统计当天报销的医疗费总额,供出纳员核对。
3、每笔帐要保存备查,每天所报销的费用要和各个职工已报销的金额累计起来,以便检查哪些职工已超额。
4、系统还要配有适当的查询功能。
5、年终结算后,下一年度开始时要对数据库文件进行初始化。
6、当职工调离本单位,职工调如本单位或在本单位内部门间调动,数据库文件应能及时得到修改。
请完成对上述系统的需求分析用户对系统的要求2023/9/31、医疗费管理系统每天记录当天报销的若干职工或职工子女的医
该系统规模不太大,可以和用户单位的其他管理系统使用相同的计算机硬件设备、相同的操作系统和相同的关系数据库管理系统。如果,可以使用汉化了的数据库管理系统,但在建立数据库结构时,凡是用英文名称来代表字段名时,则必须在数据字典中予以说明。
1、确定系统的环境要求2023/9/31、确定系统的环境要求2023/8/33、系统的功能(1)具有表格形式屏幕的输入格式(2)具有重复录入数据的功能(3)具有查询和统计汇总的功能(4)职工的调入和调出以及对数据库的初始化2023/9/33、系统的功能(1)具有表格形式屏幕的输入格式2023/2、系统性能要求(1)数据不能随意更改2)保证数据的准确性
由于医疗费管理系统涉及到会计经费问题,数据不能随意更改但数据输入又难免会出错。因而在每输入一个职工的医疗费后,屏幕提示“数据有误吗?”。若是在核对时有误,可及时更改,避免输入错误。一天报销结束时,在数据存档前,再让出纳员核对一下经费总额,若出纳员支出的金额总数有误时,应让计算机显示每笔帐目,供一一仔细核对,此时在允许修改一次。当正式登帐后,数据就绝对不允许在修改了,由此保证财务制度的严格性,保证数据的安全性。
2023/9/32、系统性能要求(1)数据不能随意更改2)保证二、建立目标系统的逻辑模型
通常软件软件开发项目是要实现目标系统的物理模型,即确定待开发软件系统的系统元素,并将功能和数据结构分配到这些系统元素中。它是软件实现的基础。但是目标系统的物理模型是由它的逻辑模型经实例化,即具体到某个业务领域而得到的。与物理模型不同,逻辑模型忽视机制和细节,只描述系统要完成的功能和要处理的数据。为此,该阶段的主要任务是,借助于当前系统的逻辑模型导出目标系统的逻辑模型,也就是解决目标系统“做什么”的问题。2023/9/3二、建立目标系统的逻辑模型通常软件软件开发用户调查具体模型建立系统模型的工作流程逻辑抽象当前系统逻辑模型当前系统计算机化评审修改正式模型完善细节目标系统目标系统初始模型经认可的问题需求系统模型用户1、建立目标系统逻辑模型的步骤2023/9/3用户具体模型建立系统模型的工作流程逻辑当前系统逻辑模型当前系图形工具数据流图数据字典2、建立目标系统逻辑模型的图形工具2023/9/3图形工具数据流图数据字典2、建立目标系统逻辑模型的图形----学生购买教材的具体模型
举例请建立计算机售书系统的逻辑模型张秘书学生购书购书王会计发票李出纳领书赵保管单申请证明书----学生购买教材的逻辑模型
审查有效性学生有效购书单开发票发票开领书单领书单发书购书单书2023/9/3----学生购买教材的具体模型举例请建立计算机张购书----学生购买教材的逻辑模型
审查并开发票学生发票购书单各班学生用书表教材存量表无效书单开领书单领书单学生完善目标系统并补充细节,的出目标系统的正式逻辑模型2023/9/3----学生购买教材的逻辑模型审查并发票购书单各班三、需求规格说明书与评审软件需求说明书----SRS(SoftwareRequirementSpecification)主要包括以下的内容:SRS引言数据描述数据流图数据字典功能描述性能描述特殊需求2023/9/3三、需求规格说明书与评审软件需求说明书----SRS一、数据流图
----
可以是数据库文件或任何形式的数据组织。箭头向内则表示写入文件或查询文件,箭头向外则表示从文件中读取数据或得到查询结果数据转换外部实体------位于软件系统边界之外的信息生产者或消费者数据流------在转换之间有向流动的数据项或数据集合数据存储文件2023/9/31、数据流图中的主要图形元素------转换数据流的处理----
系统逻辑模型数据的加工或变换输入输出软件系统外部实体外部实体……外部实体外部实体……输入数据流输入数据流输出数据流输出数据流2023/9/3----系统逻辑模型数据的输入输出软件外部实体外部实体…----学生购买教材的逻辑模型
审查并开发票学生发票购书单各班学生用书表教材存量表无效书单开领书单领书单学生外部实体数据的加工2023/9/3----学生购买教材的逻辑模型审查并发票购书单各2、数据流图中的其它图形元素ABC------有A则B或者C,或者两者都有*ABC+ABC------有A则B与C,或者两者同时有------有A则B或C,但不会同时有B与C2023/9/32、数据流图中的其它图形元素ABC------有A则-----标识多个数据流与加工之间关系的符号------当A或B有一个存在就有CABC*ABC------只有当A与B都存在,则有C2023/9/3-----标识多个数据流与加工之间关系的符号------3、分层的数据流图F0A0B0F11A0B0F12F13F14F15p1C1D1M1N1F21M1F22N1F23K2F24W2F25p1Y2X2第n
层第n+1
层第n+2
层2023/9/33、分层的数据流图F0A0B0F11A0B0F12F13F人工销售教材系统流程图学生开购书证明购书证明开购书发票发票收书费领书单发书学生举例2023/9/3人工销售教材系统流程图学生开购书购书开购书发票收书费学生教材购销系统购书单领书单缺书单进书通知进书通知保管员1销售购书单领书单学生缺书单进书通知2采购保管员第1
层第2
层教材存量表F1缺书登记表F2外部实体外部实体2023/9/3学教材购书单领书单缺书单进书通知进书通知保1购书单领书单学缺教材销售子系统无效书单购书单1.3登记并开领书单1.2开发票1.1审查有效性1.4登记缺书1.5补售教材采购学生学生进书通知有效书单发票领书单暂缺书单1销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员第2
层补售书单第3层教材存量表F1缺书登记表F2
F1书号单价数量各班用书表F3售书登记表F4外部项2023/9/3教材销售子系统无效书单购书单1.411销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员采购子系统
第2层第3
层缺书单2.3修改教材库存和待购量销售进书通知进书通知2.1按书号汇总缺书2.2按出版社统计缺书保管员教材存量表F1待购教材表F5教材一览表F6缺书登记表F22023/9/31购书单领书单缺书单进书通知2进书通知缺书登记表教材存量表学.便于实现.便于使用---采用逐步细化的扩展方法,可避免一次引入过多的细节,有利于控制问题的复杂度;
---用一组图代替一张总图,方便用户及
软件开发人员阅读。4、分层DFD图的优点2023/9/3.便于实现.便于使用---采用逐步细化的扩展方法,.注意父图和子图的平衡5、画分层DFD的指导原则发票1.3开领书单领书单(a)父图1.3.1学生领书单1.3.21.3.3教材(a)子图2023/9/3.注意父图和子图的平衡5、画分层DFD的指导原则发票.区分局部文件和局部外部项.掌握分解的速度一般来说,每一个加工每次可分为2-4个子加工,最多不得超过7个。.遵守加工编号规则顶层加工不编号。第二层的加工编号为1,2,3,…,n号。第三层编号为1.1,1.2,1.3…n.1,n.2…等号,依此类推。2023/9/3.区分局部文件和局部外部项.掌握分解的速度1销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员采购子系统
层缺书单2.3修改教材库存和待购量销售进书通知进书通知2.1按书号汇总缺书2.2按出版社统计缺书保管员教材存量表F1待购教材表F5教材一览表F6缺书登记表F2局部外部项局部文件2023/9/31购书单领书单缺书单进书通知2进书通知缺书登记表教材存量表学练请画出学生成绩管理系统的DFD
图习2023/9/3练请画出学生成绩管理系统的习2023/8/3二、数据字典
数据元素词条的描述
年=“1900”..“3000”月=“01”..“12”日=“01”..“31”摘要=1{字母}4金额=“00000000.01”..“999999999.99”……2023/9/3数据元素名:(2)数据元素词条的描述年(3)数据文件词条的描述
数据文件名:简述:存放的是什么数据。输入数据:输出数据:数据文件组成:数据结构。存储方式:顺序,直接,关键码。存取频率:
…
…(4)
加工逻辑词条的描述
1.3审查并开发票学生发票购书单各班学生用书表教材存量表2023/9/3加工名:(4)加工逻辑词条的描述1.3名称:外部实体名简要描述:什么外部实体有关数据流:数目:(5)外部实体词条描述
1销售购书单领书单缺书单进书通知2采购进书通知缺书登记表教材存量表学生保管员2023/9/3名称:外部实体名(5)外部实体词条描述2、数据字典定义符号符号含义例子
=被定义为+与[]x=a+b,则表示x
由a和
b
组成x=[a,b],则表示x
由a或由
组成{}或重复x={a},则表示x
由0个或多个a组成()可选
表示在两个*
----(ProcessSpecification)加工说明是:对DFD中每个加工给予说明。它是从系统功能的角度对DFD作出了注解,与DD一样是DFD必不可缺少的辅助资料。PS2023/9/3三、加工说明----(ProcessSpecific加工说明组成输入数据加工逻辑输出数据加工说明描述工具结构化语言判定表判定树描述把输入数据流变换为输出数据流的加工过程,是加工说明的主体。2023/9/3加工说明组成输入加工输出加工说明结构化判定判定----学生购买教材的逻辑模型
审查并开发票学生发票购书单各班学生用书表教材存量表无效书单开领书单领书单学生2023/9/3----学生购买教材的逻辑模型审查并发票购书单各自然语言+结构化形式结构化语言选择结构如果<条件><策略>
If
则<策略1>
否则<策略2>情况1<条件><策略1>……情况n<条件><策略n>If
then
…,<策略>重复以下<策略>直至<条件>Foreach…, Repeatthefollowing;Accessthestaffs-Record. Ifstatusissingle, IfsexismaieandAgeisover30orsexisfemaleandAgeisover26WriteNametoName-List.IncrementList-Count. UntiltherearenomoreStaff-Records.CombineList-CountandName-List.WriteUpLate-Marriage-List.2023/9/3CountLate-MarriageEmploye----学生购买教材的系统逻辑模型 审查并开发票学生发票购书单各班学生用书表教材存量表无效书单开领书单领书单学生例2:请为下列DFD中的“审查并开发票”加工点写加工说明2023/9/3----学生购买教材的系统逻辑模型审查并发票购书单把学生学号和姓名写到发票上按购书单上学生的年级和系、专业与班号 检索“各班学生用书表”文件,获得该生当年的书单 对 购书单上的每一书号 如果 书单上无此书号 则 把书号写到出错通知单上 否则 按书号检索“教材存量表”文件,从而获得该书的单价与库存量 库存量〈购书单的数量 将书号写到出错通知单上 将书号、单价、数量、总价等项写入到发票上;更新存书量,并写回“教材存量表”文件;累计书费合计 把书费合计写到发票上对每张购书单2023/9/3把学生学号和姓名写到发票上对每张购书单2023/8/3分房加工婚龄中级职称晚婚正常分房优先分房不分房分房加工逻辑判断表采用表格的形式来表达具复杂判断的加工逻辑1、一般职工婚后5年可参加分房2、中级以上职称的职工婚后3年可参加分房3、符合正常分房条件的职工,若再符合晚婚条件可优先分房2023/9/3分房婚龄中级职称晚婚正常分房优先分房不分房分房加工逻辑判断表分房加工婚龄中级职称晚婚正常分房优先分房不分房123456说明条件婚龄>5年3-5年<3年(-)表示任意 (Y)条件满足 (N)条件不满足(*)选中的决策中级职称-----------YN-----晚婚YNYN---------决策优先分房**正常分房**不分房**2023/9/3分房婚龄中级职称晚婚正常分房优先分房不分房123456说判断树判断树是判断表的图形形式其适用场合与判断表相同中级职称不分房初婚分房决策>5年3-5年<3年优先分房非中级职称正常分房正常分房晚婚非晚婚晚婚非晚婚优先分房不分房2023/9/3判断树判断树是判断表的图形形式中级不分房初婚>5年“检查发货单”的判断表1234条件发货单金额>$500>$500<=$500<=$500赊欠情况>60天<=60天>60天<=60天决策不发出批准书V发出批准书VVV发出发货单VVV发出赊欠报告V2023/9/3“检查发货单”的判断表1234条发货单金额>$500>$5作业工资管理系统系统流程图系统软件模型部分数据字典一、对工资管理系统进行需求分析二、阅读教课书的P27 页2023/9/3作业工资管理系统系统流程图系统软件模型部分数据字典一、三、把下列用文字叙述的内容请采判断表和判断树描述出来设某旅游票预定系统中,在旅游旺季7-9、12月份,如果订票超过50张,则优惠票价的15%;50张以下,优惠5%。在旅游淡季1-6,10、11月份,若订票超过50张,则优惠30%;50张以下,优惠20%。2023/9/3三、把下列用文字叙述的内容请采判断表和判断树描述出来面向对象继承类3.3面向对象的需求分析一、面向对象的概念 对象消息2023/9/3面向对象继承类3.3面向对象的需求分析一、面向对象的对象对象就是一个包含数据以及与这些数据有关的操作的集合。每个实体都是对象。对象数据操作代码2023/9/3对对象就是一个包含数据以及与这些数据有关对象数类是一组具有相同数据结构和相同操作的对象集合。类的定义包括一组数据属性和在数据上的一组合法操作。类定义可视为一个具有类似特性与共同行为的对象摸板,可用来产生对象。可以说,类是对象的抽象,而对象是类的具体实例。2023/9/3类是一组具有相同数据结构和相同操作的对象2023/8继承是在一个已存有的类的基础上建立一个新的类。并将已存在的类称为--基类或父类;新建立的类称为—派生类或子类。继承基类派生类2023/9/3继承是在一个已存有的类的基础上建立一个新继基对象继承了类所有属性------从类到对象的继承costdimensionweightlocationcolor类:furniturecostdimensionweightlocationcolor对象:chair对象、类、继承 2023/9/3对象继承了类所有属性------从类到对象的继承cost类 对象继承类的所有属性和操作costdimensionweightlocationcolor类:furnitureBuySellWeightmovecostdimensionweightlocationcolor对象:chableBuySellWeightmovecostdimensionweightlocationcolor对象:chairBuySellWeightmove2023/9/3对象继承类的所有属性和操作cost类:furnitur------面向对象类的表示模式 类名: 操作:属性:2023/9/3------面向对象类的表示模式类名:识别对象1、标识潜在对象找出通过分析过程中的所有名词或名词短语并合并同义词。除去有动作含义的名词,使它们将被描述为对象的操作。标识规则如下:(1)、外部实体(2)、事物(3)、位置(7)、聚焦对象(5)、事件(6)、角色(4)、组织机构2023/9/3识别对象1、标识潜在对象找出通过分析过程中的二、面向对象的分析方法(OOA) 第四章软件设计基础 Who为谁设计,用户是谁?What要解决哪些问题?Why为什么要解决这些问题 逻辑功能状态2023/9/3一、模块化设计与信息隐藏-----“模块“又称”构件”一般1、分解(decomposition)E(P1+P2)>E(P1)+E(P2)设:C(x) 为复杂程度函数E(x) C(P1)>C(P2)E(P1)>E(P2)C(P1+P2)>C(P1)+C(P2)MagicalNumberSeven,PlusorMinusTwo,SomeLimitsonOurCapacityforProcessingInformation ThePsychologicalReview,1956 G.A.Miller奇妙的数字7+2,人类信息处理能力的限度2023/9/31、分解(decomposition)E(P1+P2)>EC(P1+P2)>C(P1)+C(P2)E(P1+P2)>E(P1)+E(P2)软件工程基本定理最小成本区M模块成本接口成本总成本软件开发工作量 模块数2023/9/3C(P1+P2)>C(P1)+C(P2)软件工程基本定理最小 每个模块的实现细节对于其他模块来说是隐藏的。也就是说,模块中所包含的信息是不允许其他不需要这些信息的模块使用的。2、信息隐藏(informationhiding)栈stack置空栈 makenull进栈 push退栈 pop2023/9/3每个模块的实现细节对于其他模块来说是隐藏3、模块的独立性(moduleindependence)模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他模块的接口是简单的。耦合 模块之间的相对独立性的度量。内聚 符号表 内聚性模块独立性2023/9/3功能性内聚如果一个模块内所有(2)、耦合耦合性是程序结构中各个模块之间相互关联的度量它取决于各个模块之间接口的复杂程度、调用模块的方式以及那些信息通过接口。低非直接耦合数据耦合标记耦合控制耦合外部耦合公共耦合内容耦合高弱强耦合性模块独立性2023/9/3(2)、耦合耦合性是程序结构中各个模块之间相公共耦合允许一组模块访问同一全局性的数据结构。全局数据区ABCDEFB、C、E 为公共耦合2023/9/3公共耦合允许一组模块访问同一全局控制耦合如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能就是控制耦合。A模块flagf1Bf2fn……2023/9/3控制耦合如果一个模块通过传以上给出了7种耦合类型,这只是从耦合的机制上所做的分类,按耦合的强弱程度的排列只是相对的关系。但它给设计人员在设计程序结构时提供了一决策准则。实际上,开始时两个模块之间的耦合不只是一种类型,而是多种类型的混合。这就要求设计人员按照实际情况进行分析、比较和分析,逐步加以改进,以提高模块的独立性。2023/9/3以上给出了7种耦合类型,这只是从耦合2023/4.5结构化设计方法(SD--StructuredDesign) 结构化设计方法是基于模块化、自顶向下细化、结构化程序设计等程序设计技术基础发展起来的。它所提供的方法和原则,主要是用来指导软件的概要设计。它还提供了一种“结构图”的描述工具,是专门用来描述软件的总体结构的。 2023/9/34.5结构化设计方法(SD--StructuredDe结构化设计属于面向数据流的设计方法。在软件的需求分析阶段,数据流是软件开发人员考虑问题的出发点和基础。数据流从系统的输入端向输出端,则要经历一系列的变换或处理。用来表现这个过程的数据流(DFD),实际上就是软件系统的逻辑模型。面向数据流的设计要解决的任务,就是在上述需求分析的基础上,将DFD图映射(Mapping)---软件系统的结构。换句话说,这类设计方法,允许把用DFD图表示的系统逻辑模型,很方便地转换成对于软件结构的初始设计描述。结构化设计方法中,软件的结构一律用SC图来描述。2023/9/3结构化设计属于面向数据流的设计方法。2023/8/结构化设计的目的使程序的结构尽可能反映要解决的问题的结构结构化设计的任务完成目标系统的—系统结构图(SC)2023/9/3结构化设使程序的结构尽可能反结构化设完成目标系统的—20目标系统的DFDSC图---StructuredChart该图常用来表示系统的软件结构。利用它可以清楚地表达软件结构中模块间的层次调用关系和模块之间的联系。SD目标系统的SC2023/9/3目标系统的DFDSC图---StructuredChASC 图中的主要内容1、模块--在SC图中用矩形框表示,并用名字来标记它--模块调用关系2、模块的调用关系和接口B调用模块调用模块A(查询学生)B(查找学生记录)数据信号控制信号学号查找成功信号--模块间接口的表示2023/9/3ASC图中的主要内容1、模块--在SC图中用矩形框表示,并产生最佳解得到好的输入计算最佳解输出结果读输入编辑输入好输入好输入解解原始输入原始输入编辑结果结果格式化显示结果解格式化的解SC 图上标出逻辑输入、逻辑输出和变换中心的分界AeBaCbDcEdPQRwuvwuvrp变换中心c,e逻辑输入w,u逻辑输出--------具有变换型数据流图2023/9/3(1)在DFD图上标出逻辑输入、逻辑输出和变换中心的分界(2)完成第第一级分解AabcPwuv