一、需求分析模型
二、结构化分析
1、结构化需求分析建模:实体关系图
3、结构化需求分析建模:数据流图
4、 结构化需求分析建模:状态转换图
三、面向对象分析
1、面向对象需求分析建模:用例图
2、面向对象需求分析建模:类图
3、面向对象需求分析建模:动态模型
4、面向对象需求分析建模:CRC Card
需求分析模型
需求分析的任务
-
建立分析模型,达成开发者和用户对需求信息的共同理解。
-
依据共同的理解,发挥创造性,创建软件系统解决方案。
为什么要建模?
- 失败的成本太高,必须有详尽的计划。
- 任务量庞大,且复杂,需多方合作完成。
每一方只负责完成总任务的一部分。 - 各方必须积极沟通与配合。
建模的目的
- 描述用户想要什么软件系统;
- 建立软件设计的基础;
- 提供一组可用的需求。
需求分析模型分类
- 结构化方法
- 面向对象方法
结构化方法
- 数据流图
Data Flow Diagram,简称DFD
从数据传递和加工的角度,描述了系统从输入到输出的功能处理过程。运用功能分解的方法,用层次结构简化处理复杂的问题。 - 实体关系图
Entity Relationship Diagram,
简称ERD
描述系统中的数据对象及其关系,定义了系统中使用、处理和产生的所有数据。
面向对象方法
-
用例图
Use-Case Diagram
描述用户与系统的交互。从交互的角度说明了系统的边界和功能的范围。 -
类图Class Diagram
描述应用领域中重要的概念以及概念之间的关系。它捕获了系统的静态结构。 -
交互图(顺序图)Interaction (sequence) Diagram
描述系统中一次交互的行为过程,说明了在交互中的对象协作关系。 -
状态图State Diagram
描述系统、用例或者对象在其整个生命期内的状态变化和行为过程。
结构化分析模型
实体关系图
实体关系图( Entity Relationship Diagram,ERD)
用于描述数据的定义、结构和关系特性。
注意:
- 数据对象独立于处理过程;
- 仅关注数据域;
- 在用户抽象级别建立模型;
- 描述数据对象之间是如何进行关联的
基本元素
实体对象:
需要在系统中收集和存储的现实世界中事物的类别的描述。
每个实体对象能够被唯一的标识。
每个实体对象在系统扮演必要的角色。
每个实体对象可以被一组它自己的数据项属性描述。
典型对象:
外部实体(人、打印机、传感器)
事物(报告、信号、显示)
事件或发生(中断、警报)
角色(经理、工程师、销售员)
组织或单位(分公司、团队)
地方(制造车间)
业务方式(员工记录)
属性
可以对实体进行描述的特征(各方面)。
标识符(键)可以唯一确定和标识实体的每个实例的属性或属性集。
关系
存在于一个或多个实体之间的自然业务联系。
表示软件系统必须存储的联系,该联系不能由计算或者推导得到。
实体的数量级:
最大基数(在某关系中,实体对象的最大个数)
最小基数(在某关系中,实体对象的最小个数)
实体的数量级:
一对一(1:1)关联
一对多(1:m)关联
多对多(n:m)关联
在ER图中用圆圈表示所关联的实例是可选的,隐含表示“0”,没有出现圆圈就意味着是必须的。出现在连线上的短竖线可以看成是“1”
2)ERD的标注
方法1:
方法2:
ERD的建立
①分析数据对象(实体),和属性。
②分析实体间的关系,和数量级。
③建立ERD。
ERD示例
银行储蓄系统:
储户填写的存款单或取款单由业务员键入系统;
如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率、密码(可选)等信息,并印出存单给储户;
如果是取款而且开户时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户
山里外卖订餐系统,
每周由餐厅经理发布菜单。菜单以套餐为主。包括凉菜、热菜、主食和例汤,价格为套餐价格。
顾客使用系统可以查看菜单和订餐。订餐时要选择套餐,并生成订单。支付方式为在线支付。订单要记录送餐地址和签收人电话。
顾客订单支付后,若开始备餐(厨师会设置订单为备餐状态)。备餐完成后,设置为待取状态。取餐后修改订单状态为已完成。
顾客可以方便的查看订单状态。在消费完成后,顾客可以对菜品发表评价。
另外顾客可以修改订单或取消订单。但订单状态设置为备餐后,订单不可修改或取消。
数据流图(Data Flow Diagram, DFD)
数据流图将系统看做过程(process)的集合,
过程接收数据输入,转换数据,输出结果。
外部实体:处于系统之外,与系统存在数据交互的人、组织、设备或者其他软件系统。
过程:又称为处理,加工,表示施加于数据的动作或行为。 在建模时考虑将人工处理任务也作为系统行为的一部分描述为过程。
数据流:表示数据的运动,是系统与环境或者系统内部过程之间的通信形式。
数据存储:是软件系统内部收集、保存数据的集合。说明:如果流入/出存储区的数据流包含与存储区相同的信息,则可以不为数据流专门指定名称。如果流入/出存储区的数据流包含存储区信息中的子集,必须为数据流指定名称。
使用数据流图,描述在网络教学平台提交作业的处理过程。
基本元素
外部实体(external entity)
数据信息的产生者或者使用者。
数据必须从某处来,并且到某处去。
过程(process)
数据的转换,从输入转换为输出。
为了完成系统功能,数据必须进行某些处理。
数据流(data flow)
数据流流经系统,以输入数据开始,然后被转换为输出数据。
数据存储(data store)
数据通常被存储下来,以备后续使用。
DFD实例
建立ATM取款的DFD
过程描述如下:
用户输入取款金额,ATM机检查输入是否有效,若有效则检查账户余额是否足够,如果足够,完成取款,并打印凭条;如果不足,则提示用户“账户余额不足”。
外部实体:用户
过 程:检查取款额、检查余额、处理取款、打印凭条。
数据存储:账户、取款信息。
分层结构
语法规则
-
DFD中的 对象 需要有唯一的标识(名称)。
-
过程是对数据的处理,必须有输入,也有输出;且输出与输入数据流存在差异。
-
数据流必须和过程产生关联,要么是过程的数据输入,要么是过程的数据输出。且数据流要有箭头(表示方向)。
-
DFD图通过分层图表示更多的细节。通常要从上下文图(0层图)开始画。
-
在0层图中总是要画出外部实体。
-
DFD不描述处理的逻辑细节。