系统分析
系统分析阶段是应用系统思想和方法,把复杂的对象分解为简单的组成部分,找出这些部分的基本属性和彼此之间的关系的过程,其基本任务是系统分析师和用户在充分了解用户需求的基础上,把双方对新系统的理解表达为系统需求规格说明书。
分析方法
- 结构化分析
- 面向对象分析
系统设计
- 系统设计阶段又称为物理设计阶段,其任务是根据系统规格说明书中规定的功能要求,设计新系统的物理模型,为下一阶段的系统实施工作奠定基础。
- 系统设计的目标是根据系统分析的结果,完成系统的构建过程。其主要目的是绘制系统的蓝图,权衡和比较各种技术和实施方法的利弊,合理分配各种资源,构建新系统的详细设计方案和相关模型,指导系统实施工作的顺利开展。系统设计的主要内容包括概要设计和详细设计。
概要设计
又称为系统总体结构设计,主要任务是将系统的功能需求分配给软件模块,确定每个模块的功能和调用关系,形成软件的模块结构图,即系统结构图。软件概要设计将软件需求转化为数据结构和软件的系统结构。
- 概要设计过程中主要使用模块结构图、层次图和HIPO图。
系统结构图(SC)
系统结构图又称为模块结构图,它是软件概要设计阶段的工具,反映系统的功能实现和模块之间的联系与通信,包括各模块之间的层次结构,既反映了系统的总体结构。在系统分析阶段,系统分析师可以采用SA 方法获取由DFD 、数据字典和加工说明等组成的系统的逻辑模型;在系统设计阶段,系统设计师可根据一些规则,从DFD 中到处系统初始的SC。
层次结构图
层次图是一种图形表示方法,用于展示元素或组件之间的层次结构关系。这种图表通常用于组织结构、系统分解、任务分配、数据分类等领域。
特征
-
层次结构:层次图按照层次来组织元素,每个元素都处于特定的层级。
-
父子关系:较高层次的元素可以是较低层次元素的父元素,较低层次的元素则是子元素。
-
自上而下:通常从最高层开始,向下逐级展开,直到最低层。
组成部分
-
根节点:层次图的顶端节点,表示最高层级或起始点。
-
分支节点:表示中间层级的节点,可以有多个子节点。
-
叶节点:位于层次图最底层的节点,没有子节点。
-
连接线:用于连接父子节点,表示它们之间的层次关系。
常见类型
-
组织结构图:展示公司或组织的职位和职责层次。
-
系统分解图:将系统分解为更小的子系统或组件。
-
任务层次图:展示任务的分解和分配。
-
分类图:展示数据或对象的分类层次。
HIPO 图
- HIPO图 是IBM 公司于20世纪70年代中期在层次结构图的基础上推出的一种描述系统结构和模块内部处理功能的工具。
- IPO图用来描述每个模块的输入、输出和数据加工。IPO图的主体是处理过程说明,可以采用流程图、判定树/表等来进行描述。
-
详细设计
详细设计也成为底层设计,即对结构图进行细化,得到详细的数据结构与算法。详细设计主要包括:网络设计、代码设计、输入输出设计、处理流程设计、数据存储设计、用户界面设计、安全性和可靠性设计等。
- 详细设计的主要任务是设计每个模块的实现算法、所需的局部数据结构。
- 详细设计的更改,不影响到概要设计方案;如果需要更改概要设计,必须经过项目经理的同意。
- 详细设计,应该完成详细设计文档,主要是模块的详细设计方案说明
- 详细设计的目标有两个:
- 实现模块功能的算法要逻辑上正确和算法描述要简明易懂。
- 详细设计必须遵循概要设计来进行。
详细设计的步骤
- 分析并确定输入/输出数据的逻辑结构
- 找出输入数据结构和输出数据结构中有对应关系的数据单元
- 按一定的规则由输入、输出的数据结构导出程序结构
- 列出基本操作与条件,并把它们分配到程序结构图的适当位置
- 用伪码写出程序。
- 详细设计的表示工具有图形工具、表格工具和语言工具。
图形工具
- 利用图形工具可以把过程的细节用图形描述出来。
- 具体的图形有业务流图、程序流程图、PAD图、NS流程图等。
程序流程图
PFD (Program FLow Diagram)用一些图框表示各种操作,它独立于任何一种程序设计语言,比较直观、清晰,易于学习掌握。流程图中包括5种基本控制结构。
- 顺序型
- 选择型
- WHILE 循环型
- UNTIL 循环型
- 多分枝选择型
-
- 优点是:结构清晰,易于理解,易于修改
- 缺点是:只能描述执行过程而不能描述有关的数据
NS图
NS 流程图,也成为盒图,是一种强制使用结构化构造的图示工具,也成为方框图。其具有以下特点:功能域明确、不可能任意转移控制、很容易确定局部和全局数据的作用域、很容易表示嵌套关系及模板的层次关系。
- N-S图避免了流程图在描述程序逻辑时的随意性与灵活性。
- 盒图也包括五种控制结构
- 顺序型
- 选择型
- WHILE 循环型
- UNTIL 循环型
- 多分枝选择型
PAD 图
PAD 图是一种改进的图形描述方式,可以用来取代程序流程图,相比程序流程图更直观,结构更清晰。最大的优点是能够反映和描述自顶向下的历史和过程。PAD 提供了5中基本控制结构的图示,并允许递归使用。
- PAD 的特点
- 使用PAD 符号设计出的程序代码是结构化程序代码
- PAD所描绘的程序结构十分清晰
- 用PAD 图表现程序的逻辑易读、易懂易记。
- 容易将PAD图转换成高级语言源程序自动完成
- 既可以表示逻辑,也可用来描绘数据结构
- 支持自顶向下方法的使用
PAD 图基本符号
- 顺序
- 选择
- CASE 多分支
- WHILE 型循环
- UNTIL 型循环
- 语句标号
- 定义
PAD 图示例
判定树
判定树也是用来表示逻辑判断问题的一种常用的图形工具,它用树来表达不同条件下的不同处理流程,比语言、表格的方式更为直观。判定树的左侧为加工名,中间是各种条件,所有的行动都列于最右侧。
表格工具
可以用一张表来描述过程的细节,在这张表中列出了各种可能的操作和相应的条件。
判定表
对于具有多个互相联系的条件和可能产生多种结果的问题,用结构化语言描述则显得不够直观和紧凑,这时可以用以清楚、简明为特征的判定表来描述
语言工具
用某种高级语言来描述过程的细节,例如伪码和 PDL 等。
过程设计语言 PDL
- PDL 也可称为伪码或结构化语言,它用于描述模块内部的具体算法,以便开发人员之间比较精确的进行交流。语法是开放式的,其外层语法是确定的,而内层语法则不确定。
- 外层语法描述控制结构,它用类似于一般编程语言控制结构的关键字表示,所以是确定的。
- 内层语法描述具体操作,考虑到不同软件系统的实际操作种类繁多,内层语法因而不确定,它可以按系统的具体情况和不同的设计层次灵活选用
- 优点:
- 可以作为注释直接插在源程序中;
- 可以使用普通的文本编辑工具或文字处理工具产生和管理;
- 已经有自动处理程序存在,而且可以自动由PDL 生成程序代码
- 缺点:
- 不如图形工具形象直观,描述复杂的条件组合与动作间对应关系时,不如判定树清晰简单