需求分析、ER图、状态转换图

一、软件需求分析

基本任务:
系统必须做什么?

确定系统必须完成哪些工作,也就是对目标系统尽可能提出完整、准确、清晰、具体的要求。

软件需求规格说明书,以书面形式准确地描述软件需求。

为什么要进行需求分析?通常对软件系统有哪些需求?
1.需求分析是软件开发的基础和前提;
2.需求分析是最终目标软件系统验收的标准;
3.需求分析能避免或者尽早剔除早期的错误。

(1)功能需求:系统必须完成的功能
(2)性能需求:系统的响应能力
(3)可靠性和可用性需求:系统的可靠性以及用户可以使用系统的程度。
(4)出错处理需求:说明系统对环境错误应该怎样响应。
(5)接口需求:描述应用系统与它的环境通信的格式。如:用户接口需求,硬件接口需求,软件接口需求,通信接口需求。
(6)约束:描述设计或实现应用系统时应遵守的限制条件。
(7)逆向需求:说明软件系统不应该做什么。
(8)将来可能提出的要求:列出根据分析得到的将来可能会提出的要求,易于后期进行扩充和修改。

需求分析阶段的任务有哪四个?
①确定系统的综合要求
②分析系统的数据要求
③导出系统的逻辑模型
④修正系统开发计划

二、与用户沟通的方法

获取用户需求的主要方法有哪些?
①现场观察、“窥探”
②访问/访谈、“包打听”
③问卷调查、“套取”
④会议研讨、“头脑风暴”
⑤原型评估、“界面(样品)迭代”
⑥场景分析、“模仿”
⑦其它、“文献考古”、“用例分析”

在这里插入图片描述

三、实体-联系图

数据对象:是对软件必须理解的复合信息的表示。在ER图中用矩形框代表实体。

联系:数据对象彼此之间相互连接的方式称为联系,也称为关系。联系可分为以下三类:
(1)一对一联系(1∶1)
(2)一对多联系(1∶N)
(3)多对多联系(M∶N)

属性:属性定义了数据对象的性质。 在ER图中用椭圆形或圆角矩形表示实体(或联系)的属性。

练习题:
设某汽车运输公司数据库中有三个实体集。一是“车队”实体集,属性有车队号、车队名等;二是“车辆”实体集,属性有牌照号、厂家、出厂日期等;三是“司机”实体集,属性有司机编号、姓名、电话等。
设车队与司机之间存在“聘用”联系,每个车队可聘用若干司机,但每个司机只能应聘于一个车队,车队聘用司机有个聘期;车队与车辆之间存在“拥有”联系,每个车队可拥有若干车辆,但每辆车只能属于一个车队;司机与车辆之间存在着“使用”联系,司机使用车辆有使用日期和公里数两个属性,每个司机可使用多辆汽车,每辆汽车可被多个司机使用。
在这里插入图片描述

四、状态转换图

  • 状态
    在一张状态图中只能有一个初态,而终态则可以有0至多个。

  • 事件
    事件就是引起系统状态转换的控制信息。

  • 符号
    在状态图中,初态用实心圆表示,终态用一对同心圆(内圆为实心圆)表示。中间状态用圆角矩形表示,可以用两条水平横线把它分成上、中、下3个部分。

以做薯条为例,画出土豆变化的状态转换图。
在这里插入图片描述

五、验证软件需求

(1) 一致性 所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。
(2) 完整性 需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。
(3) 现实性 指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。
(4) 有效性 必须证明需求是正确有效的,确实能解决用户面对的问题。

六、总结

需求分析是软件工程中最重要的一个环节。

需求分析的主要工作是做调查研究,详细、准确的解决系统做什么的问题。

需求分析的结果要产生一份详尽的需求规格说明书,包括系统详细的数据流图和数据字典。

猜你喜欢

转载自blog.csdn.net/weixin_44366125/article/details/105888547