第1关:结构化分析的基本概念
任务描述
本关任务:了解结构化分析的定义、发展,所具有的方法和优缺点
相关知识
为了完成本关任务,你需要掌握:
- 结构化分析的定义
- 结构化分析的要点
- 结构化分析的方法
- 结构化分析的优缺点
结构化分析的定义
结构化分析(Structured Analysis,SA)是指20世纪70年代末,由Demarco等人提出的,是面向数据流进行需求分析(Requirements Analysis,RA)的方法,旨在减少分析活动中的错误,建立满足用户需求的系统逻辑模型。
结构化分析的要点
根据软件内部数据传递、变换的关系,采用自顶向下,逐层分解的方法,经过一系列分解和抽象,建立系统的逻辑模型。结构化体现在将软件系统抽象为一系列的逻辑加工单元,各单元之间以数据流发生关联。
结构化分析的方法
结构化分析方法给出了一系列帮助系统分析人员产生功能规约的原理与技术。它一般利用图形表达用户需求,使用数据流图、数据字典及描述加工逻辑的结构化语言、判定表和判定树等工具来建立一种结构化的目标文档和需求规约说明书。
- 数据流图(Data Flow Diagram,DFD):描述系统由哪几部分组成,各部分之间有什么联系。
- 数据字典(Data Dictionary):定义了数据流图中每一个图形元素。
- 结构化语言、判定表、判定树:详细描述数据流图中不能被再分解的每一个加工。
结构化分析的优缺点
结构化分析方法是通过对用户的调查,以软件的需求为线索,获取当前系统的具体模型;去掉具体模型中非本质因素,抽象出当前系统的逻辑模型;并将分析的结果用图形表示,方法简单,易于掌握和使用,是一种行之有效的方法。但它也具有一定的局限性,主要表现在:
- 结构化分析方法要求对系统有完整确切的需求定义,这是非常困难的。
- 结构化分析方法需要书写大量的文档,随着分析的深入,这些文档需要及时进行更新,即使在工具的辅助下,仍有一定的难度。
- 结构化分析方法描述的模型仅仅是书面的,因此该方法的人机界面表达能力差,很难使从中及时地获得用户的反馈信息。
第2关:结构化分析方法
任务描述
本关任务:掌握结构化分析含义与基本思想,学会使用结构化分析工具。
相关知识
为了完成本关任务,你需要掌握:
- 结构化分析定义
- 结构化分析步骤
- 结构化分析组成
结构化分析定义
结构化分析 (Structured Analysis,SA),70年代末由DeMarco等人提出。结构化分析方法是将待解决的问题看作一个系统,从而用系统科学的思想方法(抽象、分解、模块化)来分析和解决问题。
结构化分析步骤
结构化分析方法一般由建立当前系统的具体模型、抽象出当前系统的逻辑模型、建立目标系统的逻辑模型、完善目标系统的逻辑模型四个步骤组成:
-
建立当前系统的具体模型
系统的具体模型是对现实环境的真实写照,包含了现实环境中用户进行某项业务的具体执行过程,是用户具体的需求的模型化描述,解决了当前系统怎么做的问题。为了便于用户理解通常需要用结构化分析工具数据流图把当前系统的具体模型描述出来。
-
抽象出当前系统的逻辑模型
系统的逻辑模型是对系统的具体模型的抽象,只考虑当前系统中最本质的因素而忽略次要的因素,只反映当前系统必须要满足的属性或性质,解决了当前系统做什么的问题。
-
立目标系统的逻辑模型
目标系统的逻辑模型是对当前系统逻辑模型的进一步抽象,从更深层次上明确目标系统要实现什么功能,执行什么业务,通过对当前系统逻辑模型与当前业务需求的对比,确定当前系统的逻辑模型的改动范围,删去目标系统与当前系统之间不可实现的部分,并对可变动的部分进行修改,最终获得目标系统的逻辑模型。在数据流图中可表示为自顶向下、逐层分解、逐步求精的过程。
-
完善目标系统的逻辑模型
为了对目标系统做出完整的描述,还需要考虑处理细节和约束限制条件等,如用户的交互方式、输入输出格式、系统的错误处理方式、质量性能要求、安全等级等。
结构化分析组成
结构化分析方法主要包括以下4个部分:
- 信息域,数据模型(E-R图)
- 软件功能,功能模型(数据流图)
- 软件行为,行为模型(状态/活动图)
- 分层细化
第3关:数据规范化
任务描述
本关任务:理解数据规范化的概念并完成相关问题
相关知识
为了完成本关任务,你需要掌握:
1.数据规范化的概念
2.第一范式(1NF)第二范式(2NF)第三范式(3NF)
数据规范化的概念
软件系统经常使用各种长期保存的信息,这些信息通常以 一定方式组织并存储在数据库或文件中,为减少数据冗余, 避免出现插入异常或删除异常,简化修改数据的过程,通常需要把数据结构规范化。
第一范式(1NF)第二范式(2NF)第三范式(3NF)
通常用“范式(normal forms)”定义消除数据冗余的程度。
- 第一范式(1NF)每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构。
例如: - 第二范式(2NF)满足第一范式条件,而且每个非关键 字属性都由整个关键字决定(而不是由关键字的一部分来决定)。
- 第三范式(3NF)符合第二范式的条件,每个非关键字 属性都仅由关键字决定,而且一个非关键字属性不能仅仅 是对另一个非关键字属性的进一步描述(即一个非关键字属 性值不依赖于另一个非关键字属性值)。
通常按照属性间的依赖情况区分规范化的程度。属性间依赖情况满足不同程度要求的为不同范式,满足最低要求的是第一范式,在第一范式中再进一步满足一些要求的为第二范式,其余依此类推。
- 范式(1 NF)数据冗余程度最大,第五范式(5 NF)数据 冗余程度最小。但是,范式级别越高,存储同样数据就需 要分解成更多张表,因此,“存储自身”的过程也就越复 杂。
- 随着范式级别的提高,数据的存储结构与基于问题 域的结构间的匹配程度也随之下降,因此,在需求变化时 数据的稳定性较差。
- 范式级别提高则需要访问的表增多,因此性能(速度) 将下降。从实用角度看来,在大多数场合选用第三范式都比较恰当。