0%

系统分析与设计方法(一)定义问题与归结模型

软件系统的目的是为了解决问题。
定义问题的过程包括:

1
2
1、理解真实世界中的问题和用户的需要。
2、提出满足这些需要的解决方案的过程。

一、问题分析

1、在问题定义上达成共识

用标准化的格式将问题写出来。

2、理解问题的本质

通常用因果鱼骨图和帕累托图两种方式。

(1)因果鱼骨图

1
2
3
将问题简明扼要的写在右侧方框中。
确定问题潜在原因的主要类别,将他们连在鱼的脊骨上。
用头脑风暴法寻找原因并归类。

(2)帕累托图


采用直方图的形式,将问题的相对频率或大小从高到低排列,聚焦重要的问题。

1
2
3
4
5
6
明确问题。
找到问题的各种可能原因。
选择评价标准和考察期限,最常用的标准是频率和费用。
收集各种原因发生的频率和费用数据。
将原因按发生的频率或费用从大到小排列。
将原因排在横轴,频率或费用排在纵轴。

3、确认项目干系人和用户

1
2
3
4
5
6
系统的用户是谁?
系统的客户是谁?
那些人收到系统输出的影响?
系统完成收入使用后谁对她进行评估?
其他系统内部或外部的客户?
系统将来谁维护?

4、定义系统的边界

解决方案系统和现实世界之间的边界。在系统边界中,信息以输入和输出的形式流入系统,并由系统流向系统外的用户。

(1)上下文范围图

数据流图中的顶层图,它反映领域信息,能够清晰的显示出系统和相邻系统的职责,能够从宏观层面了解系统。

(2)用例模型

以参与者的角度描述“和系统进行交互的事物”。

1
2
3
4
5
6
7
谁会对系统提供信息?
谁会在系统中使用信息?
谁会从系统中删除信息?
谁将操作系统?
系统将会在哪里使用?
系统从那里得到信息?
哪些外部系统要和系统进行交互?

5、确定系统实现的约束

从约束源开始考虑。
进度、投资收益、人员、设备预算、环境、操作系统、数据库、主机和客户机系统、技术问题、行政问题、已有软件、公司总体战略和程序、工具和语言的选择、人员和其他资源限制等。

二、问题定义

1、目标

1
2
3
4
5
优势:目标不仅仅是解决问题,还要提供业务上的优势。
度量:度量优势的标准
合理性:获得的业务优势要大于工作量成本,才是合理的解决方案。
可行性:要探寻能够满足度量标准的解决方案。
可达成性:是否具备需要的技能,建设完成后是否能够操作它。

2、功能需求

系统必须做的事,功能需求源于业务需求。

3、非功能需求

系统必须具备的属性。
功能需求通常以动词为特征,非功能需求以副词为特征。
非功能需求主要包括:

1
2
3
4
5
6
7
8
观感需求
易用性需求
性能需求
可操作性需求
可维护性和可移植性需求
安全性需求
文化和政策需求
法律需求