Skip to content

需求分析

需求分析目的是将用户需求转化为清晰、准确、无歧义的需求,作为设计和实现的基础。

需求分析任务: 绘制系统上下文范围关系图 → 创建用户界面原型 → 分析需求可行性 → 确定需求优先级 → 为需求建立模型 → 创建数据字典 → QFD(质量功能部署)

结构化分析方法 ⭐️

结构化分析方法给出一组。它一般利用图形表达用户需求,使用的手段主要有

结构化分析的步骤如下:

  • (1)分析业务情况,做出;
  • (2)推导出;
  • (3)设计新的逻辑系统,生成数据字典和基元描述:
  • (4)建立人机接口,提出可供选择的目标系统物理模型的DFD;
  • (5)确定各种方案的成本和风险等级,据此对各种方案进行分析:
  • (6)
  • (7)

结构化特点:自顶向下、逐步分解、面向数据

三大模型:

三大模型:以及数据字典。

模型工具用途
功能模型数据流图(DFD)表示系统输入、输出和处理过程
行为模型状态转换图(STD)表示系统状态和引起状态转换的事件
数据模型E-R 图(实体-关系图)表示数据元素及其关系
image.png

数据流图 DFD

DFD 基本图形元素:

image.png

    1. 数据流:由一组固定成分的数据组成,用一个箭头。在DFD中,数据流的流向可以有以下几种:从一个加工流向另一个加工;从加工流向数据存储(写);从数据存储流向加工(读):从外部实体流向加工(输入);从加工流向外部实体(输出)。
    1. 加工:,也就是输入数据流经过什么处理后变成了输出数据流。数据流图中常见的三种错误如图所示:
    • 加工3.1.2
    • 加工3.1.3
    • 加工3.1.1中。这有几种可能的原因:。灰洞是最常见的错误,也是最使人为难的错误。一旦数据流图交给了程序员,到一个加工的输入数据流必须足以产生输出数据流。

image.png

  • 3)数据存储:用来存储数据。在软件系统中还常常要把某些信息保存下来以供以后使用。表示用存储的数据。
  • 4)外部实体(外部主体/外部项):也称为数据源或者数据终点,描述,如教师、学生、采购员、某个组织或部门或其他系统。
    • 是指存在于软件系统之外的人员或组织,它指出系统所需数据的发源地(源)和系统所产生的数据的归宿地(宿)。

DFD 常见错误:

  • 黑洞:有输入无输出的加工
  • 奇迹:有输出无输入的加工
  • 灰洞:输入不足以产生输出的加工

数据字典(DD): 为 DFD 中元素提供详细定义,含数据流、数据项、数据存储、基本加工。

需求分析方法: 结构化语言、判定表、判定树。


具体的建模过程及步骤如下:

  • (1)
  • (2)。顶层DFD图表达和描述了将要实现的系统的主要功能,同时也确定了整个模型的内外关系,表达了系统的边界及范围。
  • (3)
  • (4)。分解可采用以下原则:保持均匀的模型深;按困难程度进行选择;如果一个处理难以确切命名,可以考虑对它重新分解。
  • (5)。具体规则包括:;模型图中表达和描述的信息是全面的、完整的、正确的和一致的。

分层数据流图

image.png

数据字典 DD

数据字典DD:。数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。简而言之,数据字典是,是对系统中使用的所有数据元素定义的集合。

数据字典各部分的描述如下。

  • (1):数据流图中数据块的数据结构中的数据项说明。数据项是不可再分的数据单位。
  • (2):数据流图中数据块的数据结构说明。数据结构反映了数据之间的组合关系。
  • (3):数据流图中流线的说明。
  • (4):数据流图中数据块的存储特性说明。
  • (5):数据流图中功能块的说明

数据流图描述了系统的分解,但没有对图中各成分进行说明。

数据字典就是为数据流图中的每个数据流、文件、加工,以及组成数据流或文件的数据项做出说明。

数据字典有以下4类条目:数据流、数据项、数据存储和基本加工

image.png

基于 UML 的需求分析

这部分??

  1. 利用用例及用例图表示需求 → 获取执行者和场景 → 形成用例 → 生成用例图
  2. 利用包图和类图表示总体框架结构 → 提取"关键概念"形成领域概念模型 → 生成类图

练习题

分析一下这道题目:以下( )不属于需求分析的工作

  • A.分析整理需求
  • B.逻辑建模
  • C.可靠性建模
  • D.需求优先级排序
📝答案与解析

这道题的正确选项是 C. 可靠性建模

需求分析的主要任务是理解用户需求,并将其转化为清晰、完整、一致的软件需求规格说明。典型工作包括:

  • A. 分析整理需求:属于需求分析的核心活动,对收集到的原始需求进行归类、检查冲突、明确边界等。
  • B. 逻辑建模,是需求分析的常见手段。
  • D. 需求优先级排序:在有限资源下确定需求实现的先后顺序,属于需求分析及管理的重要内容。

C. 可靠性建模:通常不在需求分析阶段完成。,而不是获取和定义需求。需求分析阶段可能提出可靠性目标(如“MTBF ≥ 2000小时”),但具体建模工作是后续设计或测试阶段的任务。

因此,不属于需求分析工作的选项是 C

结构化设计 ⭐️

  • 结构化设计是一种,它以SRS和SA阶段所产生的数据流图和数据字典等文档为基础,是一个的过程。SD方法的基本思想是将软件设计成,分为两个阶段。
  • 其中概要设计的主要任务是(输出模块结构图);
  • 详细设计的主要任务是(包括等设计)。

设计原则:

  • (1):采用封装技术,将程序模块的实现细节隐藏起来,对外仅暴露接口。
  • (2):模块是实现功能的基本单位,它一般具有功能、逻辑和状态3个基本属性。模块的外部特性是指模块的模块名、参数表和给程序乃至整个系统造成的影响,而模块的内部特性则是指完成其功能的程序代码和仅供该模块内部使用的数据。
  • (3)

结构化设计工具

工具适用范围
盒图、HIPO 图、程序流程图结构化设计
顺序图(Sequence Diagram)面向对象设计(UML),不属于结构化设计工具

?? 这部分哪里的内容

软件系统文档分类:

  • 用户文档:描述系统功能和使用方法,不涉及实现细节
  • 系统文档:描述系统设计、实现和测试等详细内容


系统设计

系统设计主要目的:为系统制定蓝图,在各种技术和实施方法中权衡利弊,精心设计,合理地使用各种资源,最终勾画出新系统的详细设计方法。

系统设计方法:结构化设计方法,面向对象设计方法。

系统设计的主要内容:概要设计、详细设计。

概要设计基本任务:又称为系统总体结构设计,是将系统的功能需求分配给软件模块,确定每个模块的功能和调用关系,形成软件的模块结构图,即系统结构图。

详细设计的基本任务:模块内详细算法设计、模块内数据结构设计、数据库的物理设计、其他设计(代码、输入/输出格式、用户界面)、编写详细设计说明书、评审。


系统设计目的:为系统制定蓝图,勾画新系统的详细设计方案。

主要内容:

  • 概要设计(系统总体结构设计):功能需求分配给模块,确定模块功能和调用关系 → 模块结构图(系统结构图)
  • 详细设计:模块内算法设计、数据结构设计、数据库物理设计、代码/输入输出/界面设计、编写详细设计说明书、评审

基本原理:

原理说明
抽象化忽略细节,关注本质
自顶向下,逐步求精从高层到低层逐步细化
信息隐蔽模块内部信息对外不可见
模块独立高内聚、低耦合

设计原则: 模块大小适中、减少调用深度、多扇入少扇出、单入口单出口、模块作用域在模块内、功能可预测。

内聚性(从低→高)

级别说明
偶然内聚模块内各成分无实质关系
逻辑内聚逻辑上相似但功能不同
时间内聚同一时间执行(如初始化)
过程内聚按特定次序执行
通信内聚操作同一数据
顺序内聚一个成分的输出是另一个的输入
功能内聚所有成分共同完成单一功能,最强

耦合性(从低→高)

级别说明
无直接耦合模块间无直接关系,最弱
数据耦合通过简单数据参数交换
标记耦合通过数据结构传递
控制耦合传递控制信息影响执行路径
外部耦合与外部环境绑定
公共耦合共享全局数据
内容耦合直接访问另一模块内部数据,最强

流程表示工具 ★

系统结构图(SC)又称为,它是,反映系统的功能实现和模块之间的联系与通信,

详细设计的基本步骤:

  • (1)分析并确定
  • (2)找出输入数据结构和输出数据结构中有
  • (3)按一定的规则
  • (4)列出基本操作与条件,并把它们
  • (5)用伪码写出程序。

详细设计的表示工具有。其中图形工具有

  • ,是使用最广泛然的一种描述程序逻辑结构的工具。它用方框表示一个处理步骤,菱形表示一个逻辑条件,箭头表示控制流向。其优点是:结构清晰,易于理解,易于修改。缺点是:只能描述执行过程而不能描述有关的数据。
  • ,是一种强制使用结构化构造的图示工具,也称为方框图。其具有以下特点:功能域明确、不可能任意转移控制、很容易确定局部和全局数据的作用域、很容易表示嵌套关系及模板的层次关系。
  • ,可以用来取代程序流程图,相比程序流程图更直观,结构更清晰。最大的优点是。PAD提供了5种基本控制结构的图示,并允许递归使用。
工具特点
程序流程图(PFD)图框表示操作,独立于语言,由顺序/选择/循环组成
IPO 图描述每个模块的输入、输出和数据加工
N-S 图(盒图)容易表示嵌套和层次关系,结构化强,不适合复杂程序
问题分析图(PAD)支持结构化程序设计,引导使用结构化方法,逻辑清晰

练习题

在结构化分析中,用数据流图描述( )。当采用数据流图对一个图书馆管理系统进行分析时,( )是一个外部实体。

  • A.数据对象之间的关系,用于对数据建模

  • B.数据在系统中如何被传送或变换,以及如何对数据流进行变换的功能或子功能,用于对功能建模

  • C.系统对外部事件如何响应,如何动作,用于对行为建模

  • D.数据流图中的各个组成部分

  • A.读者

  • B.图书

  • C.借书证

  • D.借阅

📝答案与解析

答案:B A

第一问:B

数据流图(DFD)是结构化分析中用于的工具,它描述数据在系统中的流动、变换以及处理功能,而不是描述

第二问: 系统数据的提供者或者数据的使用者,因此选择 A。


下列选项中,内聚类型排序从高到低的是()

  • A.功能内聚、时间内聚、顺序内聚
  • B.顺序内聚、通信内聚、过程内聚
  • C.过程内聚、顺序内聚、逻辑内聚
  • D.时间内聚、顺序内聚、偶然内聚
📝答案与解析

答案:B

按照“内聚程度由强到弱”理解,从单一功能完全混乱

内聚类型含义简述排序位次
功能内聚一个模块只做一件事1(最好)
顺序内聚模块内操作顺序执行,且前一个输出是后一个输入2
通信内聚操作访问同一数据或数据结构3
过程内聚操作按特定控制顺序执行(但不必有数据流动)4
时间内聚操作在同一时间段内执行(如初始化)5
逻辑内聚操作逻辑相关但功能不同(如通过参数选择)6
偶然内聚操作之间毫无关系,强行拼凑7(最差)

排序逻辑功能 > 顺序 > 通信 > 过程 > 时间 > 逻辑 > 偶然

可以这样联想:功能单一 → 有顺序依赖 → 共享数据 → 有过程顺序 → 同时执行 → 逻辑相关 → 毫无关系。

功能、顺序、通信、过程、时间、逻辑、偶然


处理流程设计

BPR(业务流程重组)vs BPM(业务流程管理):

对比BPRBPM
核心对所有流程进行再造不要求对所有流程再造,根据现有流程规范化设计
层面彻底重构三个层面:规范流程、优化流程、再造流程

image.png


人机界面设计

三大黄金原则:

  1. 置用户于控制之下
  2. 减少用户的记忆负担
  3. 保持界面的一致性

软件设计活动

活动内容
数据设计定义数据结构和数据库模式
架构设计确定系统高层结构和组件
人机界面设计设计用户界面和交互方式
过程设计定义业务逻辑和工作流程