【软件工程】第三章

目录

1.需求分析的任务

[1.1 对系统的综合要求](#1.1 对系统的综合要求)

[1.2 对系统数据的分析 p57](#1.2 对系统数据的分析 p57)

[1.3 导出系统的逻辑模型](#1.3 导出系统的逻辑模型)

[1.4 修正系统开发计划](#1.4 修正系统开发计划)

[2.与用户沟通获取需求的方法 p58](#2.与用户沟通获取需求的方法 p58)

[2.1 访谈](#2.1 访谈)

[2.2 面向数据流自顶向下求精](#2.2 面向数据流自顶向下求精)

[2.3 建议的应用规格说明技术](#2.3 建议的应用规格说明技术)

[2.4 快速建立软件原型 p61](#2.4 快速建立软件原型 p61)

3.分析建模与规格说明

[4. 实体联系图](#4. 实体联系图)

[5.数据规范化 (考试会举例说明)](#5.数据规范化 (考试会举例说明))

[6. 状态转换图](#6. 状态转换图)

[7. 其他图形工具](#7. 其他图形工具)

8.验证软件需求


1.需求分析的任务

四项主要任务 (p56小标题)

1.确定对系统的综合要求

2.分析系统的数据要求

3.导出系统的逻辑模型

4.修正系统开发计划

1.1 对系统的综合要求

**①****功能需求。**指定系统必须提供的服务。

**② 性能需求。**指定系统必须满足的定时约束或容量约束等。

**③ 可靠性和可用性需求。**应定量指定。

**④ 出错处理需求。**指环境错误,非系统本身的错误。

**⑤ 接口需求。**常见的接口需求:用户接口需求;硬件接口需求;软件接口需求;通信接口需求。

**⑥****约束。****常见的约束:**精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。

**⑦逆向需求。**指定系统不应该做什么;

⑧将来可能提出的要求。

1.2 对系统数据的分析 p57

Ø 建立数据模型 ( 3. 4 节)
Ø 描绘数据结构( 3. 7 节)
Ø 规范化( 3. 5 节)

1.3 导出系统的逻辑模型

数据流图数据字典实体一联系图状态转换图主要的处理算法描述这个逻辑模型。

1.4 修正系统开发计划

根据在分析过程中获得的对系统的更深入、更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。

2.与用户沟通获取需求的方法 p58

1**、访谈**

2**、面向数据流自顶向下逐步求精**

3**、简易的应用规格说明技术**

4**、快速建立软件原型**

2.1 访谈

分正式和非正式访谈。
Ø 可采用调查表形式
Ø 可使用情景分析技术
所谓情景分析,就是对用户将来使用目标系统 解决某个具体问题的方法和结果进行分析。

2.2 面向数据流自顶向下求精

**结构化分析方法的实质。**进一步细化可行性研究阶段获得到高层数据流图。包括建立:

Ø**详细的数据流图:**描绘数据在软件系统内从输入移动到输出的过程中所经受到变换;

Ø数据字典****:定义数据流图中包含的元素;

Ø实体关系( ER****)图****:从用户角度描述数据

ØIPO:描述数据流图中处理框的功能和算法。

2.3 建议的应用规格说明技术

p59 一种面向团队的需求收集法,提倡用户与开发者密切合作共同标识问题,提出解决方案要素,商讨不同方案并指定基本需求。

典型过程**:**

>>初步访谈,确定待解问题的范围和解决方案

>>开发者和用户分别写**"产品需求"**

>>分发给每位参与者对其认真审阅**,准备开会**

**>>**白板式会议讨论,禁止批评与争论

**>>**创建一张意见一致的列表

>>小组制定小型规格说明,供大家讨论。最后合成

2.4 快速建立软件原型 p61

快速原型****就是快速建立起来的旨在演示目标系统主要功能的可运行的程序。

要点: 实现用户看得见****的功能,省略目标系统"隐含"功能。

3.分析建模与规格说明

1. 分析建模

什么是模型?
(1) 为了理解事物而对事物做出的 一种抽象 ,是对事物的一种 ++无歧义++ 书面描述
(2) 模型通常由 一组图形符号 和组织这些符号的 规则 组成。

2. 结构化分析(Structured Analysis , SA)是面向数据流进行分析的方法,主要建立以下几种
l 实体关系图 来创建 数据模型 ,描述系统中所有重要的数据对象;
l 数据流图 用来创建 功能模型 ,描述了信息流和数据转换。
l 状态转换图 用来创建 行为模型 ,描述系统状态如何响应外部事件,而进行转换。

4. 实体联系图

实体一联系图(ER图)描绘系统的****数据关系。

**实体:**客观世界中存在的、可区分的事物。

数据对象:软件必须理解的复合信息的抽象,是实体在数据模型中的体现,能由一组属性来定义的实体****都可以被认为是数据对象。

**属性:**实体或数据对象所具有的性质。

**联系:**客观事物之间的联系。联系分为三种:
l 一对一联系( 1 : 1 )
l 一对多联系( 1 : N )
l 多对多联系( M : N )

5.数据规范化 (考试会举例说明)

1、第一范式****每个属性值都必须是原子值。(不出现表中表)

2**、第二范式满足第一范式条件,而且每个非关键字属性都由整个关键字决定。(避免部分依赖)**

3**、第三范式符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述。(避免传递关系的依赖)**

范式低,冗余大;

范式高,分解得细,冗余小,但处理过程复杂。

6. 状态转换图

1.状态:初态、终态和中间状态。

Ø**一个状态图中,只能有一个初态,但可以有****0 ~**多个终态。

Ø描绘循环运行过程时,通常并不关心循环是怎样启动的。

2.事件某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事情的抽象。

符号:

(1)实心圆****表示初态,同心圆(内圆为实心圆)表示终态。

(2)中间状态用圆角矩形表示,可以用两条水平横线把它分成上、中、下3个部分。

Ø上面部分为状态的名称(必须有)

Ø中间部分为状态变量的名字和值(可选)

Ø下面部分是活动表(可选)

p67例题

没有人打电话处于闲置状态,有人拿起听筒则进入拨号音状态,到达这个状态后,电话的行为是响起拨号音并计时,如果拿起听筒的人改变主意不想打了,他把听筒放下(挂断),电话重回闲置状态;如果拿起听筒很长时间不拨号(超时)则进入超时状态

7. 其他图形工具

7.1 层次方框图

7.2 Warnier

异或符号表明一类信息或一个数据元素在一定条件下才出现,而且这个符号上下方的两个名字所代表的名字只能出现一个

有p1种操作系统,p2种编译程序等等

7.3 IPO p69

8.验证软件需求

从哪些方面验证软件需求的正确性?p70

1**、一致性****所有需求必须一致,不能互相矛盾**

2**、完整性****必须包含用户所有需求,不能落下**

3**、现实性****用现有技术能实现**

4**、有效性****必须是正确有效的,确实能解决用户的问题**

相关推荐
人才程序员1 天前
QML z轴(z-order)前后层级
c语言·前端·c++·qt·软件工程·用户界面·界面
Theodore_10221 天前
3 需求分析
java·开发语言·算法·java-ee·软件工程·需求分析·需求
做人求其滴2 天前
GDPU软件工程习题(挖空版)
软件工程
MrFlySand_飞沙2 天前
软件工程
软件工程
jokr_2 天前
【软件工程复习】
软件工程
云空2 天前
《软件工程文档攻略:解锁软件开发的“秘籍”》
软件工程
人才程序员2 天前
【无标题】
c语言·前端·c++·qt·软件工程·qml·界面
Aderversa2 天前
关于数据流图绘制和使用上的一些个人经验
软件工程
梁辰兴3 天前
UML 建模实验
软件工程·uml·建模
shinelord明3 天前
【再谈设计模式】外观模式~复杂系统交互的简化大师
开发语言·数据结构·设计模式·软件工程