软件设计师学习-第十二章 软件系统分析和设计

wiki

本章以基本概念和理论基础知识为主

1. 结构化分析和设计

  1. 结构化分析的对象包括数据(实体对象的属性和关系)和处理(对信息的加工和处理)。
  2. 数据流图(DFD)是面向数据流建模的工具。
  3. 进行结构化分析的步骤:①确定系统边界,绘制系统环境图;②绘制各层数据流图(自顶向下);③定义数据字典;④定义加工(处理)说明;⑤将图、字典和加工组成分析模型。
  4. 系统总体设计模型反映模块间的调用关系,可以采用层次图、HIPO 图和机构图进行表达。
  5. 数据流图分为变换型数据流图和事务型数据流图。事务型数据流图的处理为条件判断式,根据不同输入数据的类型对应不同的处理动作。
  6. 详细设计可以采用程序流程图、N-S 图、PAS 图和 PDL 语言等工具进行表达。
  7. 结构化分析的最终结果:数据流图、数据字典和加工处理说明。

2. 数据库分析和设计

数据库设计的策略有两种:自顶向下,自底向上。

1. 数据库设计的步骤

数据库应用系统的生命周期分为六个阶段:

  • 数据库规划
  • 需求描述与分析:是以用户的角度进行的
  • 数据库设计与应用程序设计:包括事务设计和用户界面设计
  • 实现:DDL(数据定义语言)用于建立数据库
  • 测试
  • 运行与维护

2. 数据库设计的四个主要阶段

1. 用户需求分析

在需求调研的过程中,需要获得用户对系统的要求包括信息要求(保存哪些数据)、处理要求(实现什么功能)、系统要求(安全要求等)。

需求分析阶段的成果是系统需求说明书,包括数据流图、数据字典、各种说明性表格、统计输入表和系统功能结构图等。

需求分析常用的工具:

  • 数据流图(DFD):数据流分析是对事务处理所需原始数据的收集及经处理后所得数据及流向,用数据流图表示。
  • 数据字典:各类数据描述的集合,描述的是元数据(描述数据的数据),而不是数据本身。

数据字典

2. 概念结构设计

概念设计中概念模型的理想工具是 E-R 图,由实体、属性和实体间的联系三要素组成。

目标:产生反映系统信息需求的数据库概念结构,即概念模型。

策略:自顶向下、自底向上、逐步扩张和混合策略。

E-R 图合并时,各分 E-R 图之间的冲突主要包括:属性冲突、命名冲突、结构冲突。

分 E-R 图的合并优化方式包括:实体类型合并、冗余属性消除、冗余联系消除。

概念结构设计的工作步骤

3. 逻辑结构设计

逻辑结构设计包括:模式初始设计、子模式设计、应用程序设计、模式评价、模式求精。

逻辑结构设计即是在概念结构设计的基础上进行数据模型设计,可以分为层次模型、网状模型、关系模型。

E-R 图的三种联系:一对一、一对多、多对多。

关系模型规范化的步骤:确定依赖关系、确定范式、关系模型分解、关系模型的评价及修正。

逻辑结构设计的工作步骤

4. 物理结构设计

物理设计包括:确定数据分布、存储结构、访问方式。

数据库的物理结构主要由存储记录格式、记录在物理设备上的安排、访问路径(存取方法)等构成。

聚簇功能可以提高按照聚簇码进行查询的效率。建立聚簇(按属性或属性组)索引的原则如下:

  • 聚簇码值相对稳定
  • 表主要用于查询,而且主要用于聚簇码的访问和连接
  • 对应每个聚簇码值的平均元组,既不能太多也不能太少

确定索引的一般顺序①确定关系的存储结构:无序或有序(聚簇)存放;②确定不宜建立索引的属性或表;③确定宜建立索引的属性。

数据库物理设计的工作步骤

3. 数据库的实施与维护

数据库实施阶段的工作步骤

  1. 在 Oracle 系统中,数据库逻辑结果的描述包括表空间、段、范围和数据块。
  2. 数据的完整性是指有效性、正确性和一致性。
  3. 系统可对用户的数据操作进行两方面的控制:用户授权(身份认证)、不同用户不同权限。
  4. 数据加载前,必须对数据进行整理,建立校验规范和程序,排除不合格数据。
  5. 数据库维护工作的主要内容包括对数据库的监测和性能改善、故障恢复、数据库的重组(不改变数据库逻辑和物理结构,类似于碎片整理,清理指针及废弃空间)和重构(谨慎执行)

3. 面向对象分析和设计

1. 面向对象分析与设计的步骤

面向对象分析包括四个活动:

  • 建模系统功能:产生用例的步骤:
    • 确定参与者
    • 确定需求用例
    • 构造用例模型
    • 记录需求用例描述
  • 定义领域模型:定义概念、属性、关联
  • 定义交互、行为和状态
  • 定义设计类图

2. 建模对象状态

建模对象状态表示对象在其生命周期中某一点所处的条件,通过修改对象属性的一个或多个值的事件触发对象状态变化。

状态图则用来描述事件改变对象的状态。其指导原则如下:①状态名称简单但具有描述性;②避免黑洞(有进无出);③避免奇迹(有出无进);④符合状态需对子状态集进行建模;⑤为复杂的实体创建分层的状态图。

一份稿件的状态图

3.建模序列图

系统序列图描述决策和系统在用例场景下的交互。

审稿人序列图

4. 算法分析和设计

1. 算法设计过程

算法设计的主要步骤

2. 算法问题类型

算法问题类型

3. 现代优化计算方法

现代优化计算方法

5. 面向过程的程序设计和实现

  1. 变量的本质是程序中用来存放数据的一段存储空间,通常其对应的存储空间为内存区域。
  2. 变量具有类型、值、地址、作用域和生存期等属性。
  3. 存储变量地址的变量称为指针变量。
  4. 当一个指针变量指向仍为指针变量时,称为多级变量,级数越多,数据访问效率越低。

6. 面向对象的程序设计和实现

当设计与实现面向对象的程序时,需要注意以下四点:

  • 能够根据设计模式的名称画出其对应的类图
  • 理解类图中每一个类的作用与功能
  • 能够将现实问题中所描述的各种职责映射到类图中具体的类
  • 能够使用一种面向对象语言实现设计