软件设计的目标和任务软件设计基础模块独立性结构化设计方内容摘要:
部分程序代码重迭 (只可能出现在汇编语言中 )。 (4) 一个模块有多个入口。 c 模块内聚 功能内聚 (Functional Cohesion) 一个模块中各个部分都是 完成某一具体功能 必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。 则称该模块为功能内聚模块。 信息内聚 (Informational Cohesion) 这种模块 完成多个功能 , 各个功能都在同一数据结构上操作 ,每一项功能有一个唯一的入口点。 这个模块将根据不同的要求,确定该执行哪一个功能。 由于这个模块的所有功能都是基于同一个数据结构(符号表),因此,它是一个信息内聚的模块。 信息内聚模块可以看成是多个功能内聚模块的组合,并且达到信息的隐蔽。 即把某个数据结构、资源或设备隐蔽在一个模块内,不为别的模块所知晓。 通信内聚 (Communication Cohesion) 如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。 通常,通信内聚模块是通过数据流图来定义的。 过程内聚 ( Procedural Cohesion) 使用流程图做为工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚模块。 例如,把流程图中的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。 时间内聚 ( Classical Cohesion) 时间内聚又称为经典内聚。 这种模块大多为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。 例如初始化模块和终止模块。 逻辑内聚( Logical Cohesion) 这种模块把几种 相关的功能组合 在一起,每次被 调用时,由传送 给模块的判定参 数来确定该模块 应执行哪一种功 能。 巧合内聚( Coincidental Cohesion) 巧合内聚 (偶然内聚 )。 当模块内各部分之间没有联系,或者即使有联系,这种联 系也很松散, 则称这种模 块为巧合内 聚模块,它 是内聚程度 最低的模块。 结构化设计方法 首先研究、分析和审查数据流图。 从软件的需求规格说明中弄清数据流加工的过程,对于发现的问题及时解决。 然后根据数据流图决定问题的类型。 数据处理问题典型的类型有两种:变换型 和 事务型。 针对两种不同的类型分别进行分析处理。 由数据流图推导出系统的初始结构图。 利用一些启发式原则来改进系统的初始结构图,直到得到符合要求的结构图为止。 修改和补充数据词典。 制定测试计划。 在系统结构图中的模块 传入模块 ─ 从下属模块取得数据,经过某些处理,再将其传送给上级模块。 它传送的数据流叫做逻辑输入数据流。 传出模块 ─ 从上级模块获得数据,进行某些处理,再将其传送给下属模块。 它传送的数据流叫做逻辑输出数据流。 变换模块 ─ 它从上级模块取得数据,进行特定的处理,转换成其它形式,再传送回上级模块。 它加工的数据流叫做变换数据流。 协调模块 ─ 对所有下属模块进行协调和管理的模块。 变换型系统结构图 变换型数据处理问题的工作过程大致分为三步,即取得数据,变换数据和给出数据。 相应于取得数据、变换数据、给出数据,变换型系统结构图由输入、中心变换和输出等三部分组成。 事务型系统结构图 它接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。 在事务型系统结构图中,事务中心模块按所接受的事务的类型,选择某一事务处理模块执行。 各事务处理模块并列。 每个事务处理模块可能要调用若干个操作模块,而操作模块又可能调用若干个细节模块。 变换分析 变换分析方法由以下四步组成: 重画数据流图; 区分有效 (逻辑 )输入、有效 (逻辑 )输出和中心变换部分; 进行一级分解,设计上层模块; 进行二级分解,设计输入、输出和中心变换部分的中、下层模块。 ① 在选择模块设计的 次序 时,必须对一个模块的 全部直接下属模块 都设计完成 之后,才 能转向另 一个模块 的下层模 块的设计。 ② 在设计下层模块时,应考虑模块的耦合 和 内聚 问题,以提高初始结构图的质量。 ③ 使用“黑箱”技术 : 在设计当前模块时, 先把这个模块的所有下层模块定义成 “黑箱”,在设计中利用它们时,暂时不考虑其内部结构和实现。 在这一步定义好的“黑箱”,在下一步就可以对它们进行设计和加工。 这样,又会导致更多的“黑箱”。 最后,全部“黑箱”的内容和结构应完全被确定。 ④ 在模块划分时,一个模块的直接下属模块一般在 5个 左右。 如果直接下属模块超过 10个,可设立中间层次。 ⑤ 如果出现了以下情况,就停止模块的功能分解: 当模块不能再细分为明显的子任务时; 当分解成用户提供的模块或程序库的子程序时; 当模块的界面是输入/输出设备传送的信息时; 当模块不宜再分解得过小时。 事务分析 在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能。 这种数据流就叫做事务。 与变换分析一样,事务分析也是从分析数据流图开始,自顶向下,逐步分解,建立系统到结构图。 事务分析过程 ① 识别事务源 利用数据流图和数据词典,从问题定义和需求分析的结果中,找出各种需要处理的事务。 通常,事务来自物理输入装置。 有时,设计人员还必须区别系统的输入、中心加工和输出中产生的事务。 ② 规定适当的事务型结构 在确定了该数据流图具有事务型特征之后,根据模块划分理论,建立适当的事务型结构。 ③ 识别各种事务和它们定义的操作。 从问题定义和需求分析中找出的事务及其操作所必需的全部信息,对于系统内部产生的事务,必须仔细地定义它们的操作。 ④ 注意利用公用模块 在事务分析的过程中,如果不同事务的一些中间模块可由具有类似的语法和语义的若干个低层模块组成,则可以把这些低层模块构造成公用模块。 ⑤ 对每一事务,或对联系密切的一组事务,建立一个事务处理模块; 如果发现在系统中有类似的事务,可以把它们组成一个事务处理模块。 ⑥ 对事务处。软件设计的目标和任务软件设计基础模块独立性结构化设计方
相关推荐
的部分 ( 见下表 ) , 其它次要部分可以忽略或将来再测试。 Page 13 4. 企业的测试策略 “ 偷工减料 ” 方法的测试优先级: – 哪些功能是软件的特色。 – 哪些功能是用户最常用的。 – 如果系统可以分块卖的话,哪些功能块在销售时最昂贵。 – 哪些功能出错将导致用户不满或索赔。 – 哪些程序是最复杂、最容易出错的。 – 哪些程序是相对独立,应当提前测试的。 –
• 市 场 是 标 准成功采用的最佳 证 明 开放 标 准与知 识产权 政策 标 准 组织 需要 针对为标 准作出 贡 献的技 术 的知 识产权 政策 • 有力的知 识产权 政策会鼓励 业 界以最好的技 术 自愿参与 • 将免 费 作 为 条件将排除 许 多 现 有的非常成功的开放标 准 • 绝 大多数 标 准 组织 提供 RAND(合理非歧 视 )许 可并将 专 利包括在内。 认 可平衡 •
u bB P /M M /S K E RIS A S p e cialistsCR Ca se M a n a g e r sM M /S K E RIS A S p e cialistsCR Case M a n a g e r sI mpo r t d a t a t oASCB P /M M /S K E RIS A S p e cialistsCR Ca se M a n a g e r
高度非过程化 :用户只需提出 “ 做什么 ” ,而不需指明 “ 怎么做 ”。 面向集合的操作方式 :用户查询、修改、的数据不是一条记录,而是记录的集合。 第 45页 下一页 上一页 停止放映 2020年 10月 31日星期四 SQL特点( 2) 以同一语法结构提供两种使用方式 :用户可以从键盘使用 SQL命令,也可以将 SQL语句嵌入其他高级语言中。 (PHP VC示例 )
程中要考虑处理不同的内容数据: 1) 用户数据保存 :包括正文段 ( TEXT) 、 数据段 、 堆栈段( Stack) 和共享内存段; 2) 寄存器数据保存 :包括 PC( 指向下一条要执行的地址 ) 、PSW( 处理机状态 ) 、 SP( 堆栈指针 ) 、 PCBP( 进程控制块指针 ) , FP( 指向堆栈中一个函数的 Local变量的地址 ) 、 AP( 指向堆栈中函数调用的实参位置 )
在构件内部,对外有着精心设计的接口,供外部使用者构造应用时调用。 构件本身可以是对某一函数、过程、子程序、数据类型、算法等可复用软件成份的抽象,利用构件来构造软件系统,有较高的生产率和较短的开发周期。 生成复用:利用可复用的模式( Patterns),通过生成程序产生一个新的应用程序或程序段 32 169。 2020 BUPT TSEG 北京邮电大学 通信软件工程中心 演化模型