graph LR
    A[结构化方法] --> A1[结构化需求分析]
    A --> A2[结构化设计]

3.1 结构化需求分析

  1. 可以用于描述加工的是:结构化自然语言
  2. 可以用于表示数据的静态结构的是:数据存储
  3. 结构化分析方法用于表达功能模型的工具:DFD图(数据流图、数据流程图)。一般包含数据流数据存储加工数据源数据潭等。
  4. 数据字典中定于数据结构的符号:m…n表示子界{}表示重复
  5. 结构化分析方法建模步骤:建立系统 -> 建立层次 -> 定义字典 -> 加工。
    (1)建立系统环境图,确定系统语境;(1分)
    (2)自顶向下,逐步求精,建立系统的层次数据流图;(2分)
    (3)定义数据字典;(1分)
    (4)描述加工。(1分)
  6. 数据流图中,椭圆表示加工,双横线表示数据存储,方框表示数据源。
  7. 在结构化分析方法中,可采用结构化自然语言判定表判定树描述加工。
  8. 结构化分析方法中,数据的变换单位是加工
  9. 事务流程图中,一个事务可以被另一个事务吸食,称为事务吸收
  10. 数据字典中,所有客体均可用顺序结构选择结构重复结构三种基本结构表示。
  11. 结构化方法中,软件中具有特定标识的独立成分是模块
  12. 结构化方法包括:结构化分析方法结构化设计方法结构化程序设计方法

3.2 结构化设计

  1. 耦合:不同模块间相互依赖程度。
    耦合程度:内容耦合 > 公共耦合 > 控制耦合 > 数据耦合
    数据耦合:通过传递参数调用模块。
    控制耦合:通过传递开关量(只有两种状态的离散信号)调用模块。
    公共耦合:一组模块共同引用一个全局数据项。
    内容耦合:一个模块直接操作另一个模块的数据,或一个模块不通过正常入口转入另一个模块。
  2. 内聚:一个模块内部各成分之间相互关联程度。
    常见内聚类型:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚。
    内聚程度:功能内聚 > 过程内聚 > 逻辑内聚
    通信内聚:一个模块内所有成分都生成或操作同一数据集。
    偶然内聚:一个模块的各成分之间基本不存在任何关系。
  3. 提高模块独立性的原则:高内聚低耦合
  4. 在软件设计中,扇入和扇出的概念是指应用程序模块之间的层次调用情况。

    按照结构化设计方法,一个应用程序是由多个功能相对独立的模块所组成。
    扇入:是指直接调用该模块的上级模块的个数。扇入大表示模块的复用程度高。
    扇出:是指该模块直接调用的下级模块的个数。扇出大表示模块的复杂度高,需要控制和协调过多的下级模块;但扇出过小(例如总是1)也不好。扇出过大一般是因为缺乏中间层次,应该适当增加中间层次的模块。扇出太小时可以把下级模块进一步分解成若干个子功能模块,或者合并到它的上级模块中去。
    设计良好的软件结构,通常顶层扇出比较大,中间扇出小,底层模块则有大扇入。(大小大)(2024-04XZ 2')
  5. 宽度:同一层次上模块总数的最大值。
  6. 深度:粗略标志一个系统的规模和复杂程度。
  7. 作用域:模块内受一个判定所“影响”的所有模块的集合。(背)
  8. 控制域:模块本身或所有直接或间接“从属”于它的模块的集合。(背)
  9. 作用域和控制域的启发式原则:尽力使模块的作用域在其控制域之内。
  10. 逐步求精:每一步是对上一步结果的细化。(使用N-S盒图)
  11. 详细设计工具:PFD图(程序流程图/框图)、N-S图(盒图)、PAD图(问题分析图)、PDL(类程序设计语言)。
    N-S图:盒图,支持自顶向下逐步求精,严格控制一个处理到另一个处理的转移。
    PAD图:问题分析图,用二维树结构表示程序控制流,面向高级语言。
    简述PDL特点:
    (1)PDL也称为伪码,它是一种用正文形式表示数据和处理过程的设计工具。
    (2)PDL借用某种结构化程序设计语言(如Pascal或)的关键字作为语法框架,用于定义控制结构和数据结构。
    (3)PDL通常使用某种自然语言(如汉语或英语)的词汇,灵活自由地表示实际的操作和判定条件。
    (4)PDL可以作为注释工具直接插在源程序中间。
  12. 程序流程图优缺点
    (1)优点:对控制流程描绘很直观,便于初学者掌握。
    (2)缺点:不是一种逐步求精的工具;控制流不受约束,可能破坏好的系统结构;不易表示数据结构。
  13. 结构化程序设计:顺序结构、选择结构、循环结构。
    选择结构的表达式:IF-THEN-ELSE。
  14. 针对具有变换型流图和事务型DFD的总体设计步骤:
    (1)在软件总体设计中,通常以变换设计为主,事务设计为辅进行结构设计;(1分)
    (2)首先利用变换设计,把软件系统分为输入,中心变换和输出3个部分,设计上层模块;(1分)
    (3)然后根据各部分数据流图的结构特点,适当地利用变换设计和事务设计进行细化,得到初始的模块结构图;(1分)
    (4)再按照“高内聚低耦合”的原则,对初始的模块结构图进行精化,得到最终的模块结构图。(2分)
  15. 变换设计的基本步骤:
    (1)设计准备,复审并精化系统模块;(1分)
    (2)确定输入、变换、输出这三部分之间的边界;(1分)
    (3)设计系统模块结构图的顶层和第一层;(1分)
    (4)自顶向下,逐步求精。(2分)
  16. 结构化方法的不同阶段:可行性研究阶段、需求分析阶段、总体设计阶段、详细设计阶段、编码实现阶段、测试阶段、维护阶段。
    总体设计阶段使用HIPO图,由IPO图和H图(层次图)组成。
    层次图:适合自顶向下的软件设计过程。
    总体设计阶段内的三个阶段: (2024-04JD 5')
    (1)第一阶段为初始设计。对给定的数据流图进行复审和精化的基础上,将其转化为初始的模块结构图。(1分)
    (2)第二阶段为精化设计。依据模块“高内聚低耦合”的原则,精化初始的模块结构图,并设计其中的全局数据结构和每一模块的接口。(2分)
    (3)第三阶段为复审阶段。对前两个阶段所得到的高层软件结构进行复审,必要时还可能需要对该软件结构做一些精化工作。(2分)
  17. 概要设计规约的主要内容 (2024-04JD 5')
    (1)系统架构设计:包括系统的物理硬件架构、软件架构、技术平台选择等。(1分)
    (2)功能模块设计:根据需求将功能划分到子系统或模块中,包括主要数据结构。(1分)
    (3)接口设计:定义系统内部模块间或与外部系统的交互接口,以及必要的注释。(1分)
    (4)数据库设计:设计核心数据的逻辑结构。(1分)
    (5)测试需求等。(1分)
  18. 待建系统的数据流图两种类型:变换型数据流图、事务型数据流图。