第3章结构化需求分析与建模,主要内容,模型及其作用 结构化分析 功能模型:数据流图 数据模型:实体关系图 行为模型:状态转换图 数据字典,分析阶段,分析阶段的活动: 收集信息 定义系统需求 划分需求优先级 构建可用性和发现原形 产生评估各种方案 和管理部门一起复查各种建议,分析阶段需要非常详细的定义:信息系统需要完成什么 来为公司提供所期望的利润 应该提出多种方案,并选择最优的解决方案 在系统设计阶段,再对选中的方案进行详细的设计 在分析阶段,上述6项活动必须全部完成,并且通常是 同时完成3.1 需 求 分 析,需求分析的任务 通过软件开发人员与用户的交流和讨论,准确地获取用户对系统的具体要求 用户对系统的需求 功能性需求 非功能性需求,需求分析的步骤,通过调查研究,获取用户的需求 去除非本质因素,确定系统的真正需求 描述需求,建立系统的逻辑模型 书写需求说明书,进行需求复审,需求分析的原则,能够表达和理解问题的数据域和功能域 能够将复杂问题分解化简 能够给出系统的逻辑表示和物理表示,获取需求的方法,通过需求(详细)调查,获取需求 需求(详细)调查的内容: 组织概况──组织结构图 组织的业务活动、组织的业务状态、业务的详细内容──业务(系统)流程图 输入输出信息(信息流向、信息种类、利用的目的、信息的使用者和制造者、输入和输出地点、输入和输出信息量) 存在问题、约束条件、未来要求等,需求(详细)调查对象,对组织的高层管理者,进行组织管理目标或经营方针等组织战略问题的调查(业务需求) 对中层的管理者,进行全部业务流的调查(用户需求) 对业务工作人员,进行详细业务信息的调查(用户需求),常用调查方法(信息收集技术),访谈:正式和非正式 问卷调查 情景分析 实地考查 构造原型 建立分析小组 领域专家: 主角 系统分析员:导演,准备调研的资料(可能的问题),部门的名称、人员数量和结构 部门发展或变化简单介绍 部门的主要任务 部门各岗位的职责 部门接受哪些部门或外界的信息及信息的内容和格式 部门产生哪些信息 部门产生的信息送到哪些其他部门、格式要求是什么 现有的哪些设备要继续使用?,准备调研的资料(可能的问题),业务处理流程 业务处理过程中涉及哪些专业领域的知识 主要算法描述 哪些业务需要实时处理 哪些业务需要交互操作 业务处理有高峰期吗?高峰期的时间及业务量 对信息的输入和输出方式和设备有何要求 数据要求实时备份吗?备份设备及时间策略 工作需要的审批流程是什么?,准备调研的资料(可能的问题),对产品的运行环境有要求吗 对界面风格和操作方式有要求吗 在系统运行过程中允许停机吗 需要的操作权限有哪些 需要记录系统操作运行日志吗 需要分布式处理吗 需要什么方式的用户操作培训 需要制作联机帮助吗 用户有能力进行系统维护吗?⊙,⊙,二、组织结构图,组织结构图是用来描述组织的总体结构以及组织内部各部分之间的联系。
要建立管理信息系统,就必须知道现行系统的组织机构设置情况和它们之间的隶属关系当然,最为关心的是那些与计算机管理有关的机构和关系 用矩形框表示组织机构,用箭头表示领导关系 在画组织结构图时应注意: 1.不能只画组织中的从属关系、领导和被领导关系因为它们不是全部信息流) 2.应具体调查结构的职能,不能仅按结构名称画图 3.实际情况往往较复杂,很难设计出面面俱到的IS应突出重点、目标),某企业组织结构图⊙,三、业务流程图,业务流程图(Transaction Flow Diagram, TFD)是描绘物理系统的传统工具系统流程图可用图形符号来表示系统中的各个元素例如,人工处理、数据处理、数据库、文件等 业务流程图表示所描述部件的信息流程,而不表示信息加工的控制过程 系统流程图在可行性研究阶段也可以使用 画系统流程图时,要搞清业务处理过程即处理中的各个元素,同时要理解系统的流程图各个符号的含义业务流程图符号──基本符号,当以概括方式描述一个实际系统时,基本符号即可;当需要更具体地描绘一个物理系统时,还需使用系统符号业务处理单位,业务流向,业务处理,某项业务参与的人或事务,业务处理功能,业务数据的流动方向,,业务流程图符号──系统符号,,,,,工资管理系统业务流程图,学生成绩管理流程,每学期课程考核结束后,各任课教师须分班填写学生成绩登记表,经系主任审核签字后交学生所在学院及教务处 教务员使用成绩管理系统登记所有成绩并将成绩单及补考通知书交给学生 学生所在班级根据综合成绩计算综合评分,并将综合评分交给学生科,,四、面谈,面对面交流是理解业务功能和规则的最有效方法 该方法比较耗时和资源 项目组成员与单个用户或用户组举行会议 面谈步骤: 准备面谈内容:问题详尽 进行面谈:用心、得体 面谈的后续工作:整理消化吸收(建模),4 实地观察,观察方法: 对办公室进行快速浏览 安排一定的时间观察用户的工作过程 同用户一道亲身实践体会工作过程 使用工作流图来进行记录 工作流 – 处理商业事务或客户请求的一系列步骤 工作流图:流程图、数据流图、活动图 工作流图在分析与设计阶段都是有效的工具 活动图:一种工作流图,用来描述用户的活动以及 这些活动的顺序,获取需求的方法,,四、问卷调查,调查表在信息收集中的作用是具体而有限的 使用场合:(1)系统相关者较多 (2)地理上分布广 调查表问题类型:(1)封闭问题 (2)定量问题 (3)开放问题,某出版社管理系统问卷调查表,某出版社管理系统问卷调查表,分析员需要一组模型来充分描述信息 系统的需求 不同的模型分别显示了问题和解决方 案的不同部分,模型和建模,模型的作用,建立模型的过程能帮助分析员澄清和改良设计 系统往往很复杂,模型能很好表示各部分之间的关系 模型便于项目组成员之间交流 模型有助于和系统用户之间进行交流并促进理解 建立的模型可以作为以后的维护和升级时的文档,5.1.2 模型的类型,数学模型:描述系统技术方面的一系列数学公式 描述模型:描述系统某些方面的叙述性的备忘录、 报表或列表等 图形模型:描述系统的图表或系统某些方面的示 意性表示,三种常见模型:数学模型、描述模型、图形模型,5.1.3 用于分析和设计的模型,状态图 协作图 时序图 用例图 类图 结构化英语/伪代码 数据元素定义 数据流定义 ERD DFD 事件列表,分析阶段创建的模型,界面设计 报表设计 数据库设计 结构图 系统流程图 网络图 分布图,设计阶段创建的模型,,,,结构化分析方法Structured Analysis,SA的核心:数据流图 数据流图:用来表示信息流程和信息变换过程的图解方法,可以方便地描述用数据流的流动联系的各种功能。
数据字典:数据流图中的各项数据 结构化英语、判定树、判定表用于具体描述数据流图中的基本功能(或过程) 依赖数据流图的自顶向下的建模方法数据实体 系统需要存储的有关信息系统开发方法的信息 传统方法中,数据实体与过程是分离的3.2 数据建模,5.3 事物和系统需求,5.3.5 数据实体和对象,数据实体:在传统的系统开发方法中,事物被称为数据实体 对象:在面向对象的系统开发方法中,将某一个事物称为对象,事物和系统需求,事件和事物的区别与联系: 事件 – 发生在瞬间,有一定的随机性 事物 – 客观存在,不以主观意志为转移 联系 – 事件的发生可以改变事物的状态或产生新的事物,事物:在传统的开发方法中,事物就是构成系统存储 信息的相关数据,在面向对象的开发方法中,事物就是在系统中 相互交互的对象,事物,实实在在 的事物,充当角色,组织部门,设备,突发事件、 事件或交互行为,地点位置,飞机 书 交通工具 文件 工作表,雇员 顾客 医生 病人 最终用户 系统管理员,管区 部门 工段 任务组 工作组,传感器 定时器 打印机 键盘 显示器 鼠标,航班 服务 登录 退出 合同 购买 订单,仓库 办公室 工厂 零售店 桌面,事物和系统需求,属性:有关事物的一项特定信息 关键字:唯一标识事物的一个属性。
复合属性:包括了许多相关属性的属性事物间的关系,关系:某些事物间自然发生的联系,比如客户 发送订单以及雇员在某部门工作等,关系的基数,发生在事物间关联的数目,例如一个顾客发送了多个订单以及一个雇员在一个部门工作等基数可以: 0,1,0n,1n,几类事物之间的关系,两类不同事物:二元关系 两种不同类型事物之间的关系,如顾客和订单关系 一元关系 同一类型的两个事物之间的关系,如一个人和另一个人的婚姻关系 三元关系 三种不同类型事物之间的关系,如学生(自然事物)、课程(自然事物) 、选课(事件)之间的关系 N元关系 N中不同类型事物之间的关系,如权限、用户、用户组、用户组选择权限、用户组选择用户实体关系图(ERD) 用来定义数据存储需求的模型 数据存储需求包括 数据实体 数据实体的属性 它们之间的关系 ERD符号 用矩形代表实体; 连接矩形的直线代表数据实体之间的关系实体关系图(ERD),E-R模型中的基本符号,实体关系图ERD符号,实体-关系图ERD,ERD实例,关联实体 表示两个数据实体之间多对多关系的数据实体,例如学生和课程之间存在选课信息关联实体,,功能建模 数据流图,图形化的系统模型,说明的是信息系统的主要需求,输入、输出、过程和数据存储。
大型系统 分层的数据流图来解决复杂问题 分层作用 实现信息抽象 实现信息隐蔽,数据流图,图形元素少且符号简单易懂 较充分表达系统的主要需求:输入、输出、处理 和数据存储 最终用户、管理人员和系统开发人员只需稍加培 训即可读懂DFD图,方便交流,数据流图:用处理、外部实体、数据流以及数据存储来 (DFD) 表示系统需求的图表,DFD的特点,数据流图:基本元素,外部实体 代表系统之外的人、物、组织 发出或接受系统的数据 提供系统和外界环境之间关系的注释性说明 数据流 表示DFD的过程、数据存储、外部实体间的数据移动 数据流不代表控制流:反映处理对象,不影响过程执行 数据流反映处理的对象 控制流影响过程的执行,,过程 过程是对数据执行某种操作或转换,把输入数据变成输出数据的一种转换 数据存储 不一定是一个完全的文件 表示文件、或文件的一部分 磁盘、磁带、存储器,数据流图元素符号,数据流图的符号说明,数据流图──数据流与加工之间的关系,与:数据A和B同时输入变成C,或:数据A或B,或者A和B同时输入变成C,异或:数据A或B其中之一变成C,数据流图例:,图6-3 显示处理“查询可用条目”的DFD,从外部实体出发的“数据流”可以是: 1. 外部实体发出的“处理请求”,即一个事件 2. 外部实体给出的“输入数据”,指向“外部实体”的“数据流” 一般是“处理”的反馈或处理 结果,DFD和ERD之间的一致性关系,绘制数据流图:自顶向下,逐层细化,,,,抽象层次:把系统分解成一个逐步细化的分层集合的建模技术,DFD图可以描述高层次的具有高度概括的系统处理 也可以描述低层次的具有更详细分解的系统处理,图6-5 课程注册系统的DFD抽象层次,数据流图的层次,顶层DFD 描述整个系统的作用范围 分解高层数据流和数据过程,例:学生注册课程系统,顶层DFD:关联图,整个系统看作是一个过程,起名:学生注册课程系统 此时不出现数据存储,DFD细化: 一个过程符号表示系统响应一个事件的DFD。
更进一步细化,评估DFD质量,高质量的DFD 可读的、内部一致的、能够准确表示系统需求的 不反映处理的顺序 所有元素的命名对客户有意义、且与业务相关 图的编号:过程的编号应该唯一且有层次性 数据通过加工进行流动,避免从一个数据存储流向另一个数据存储复杂性最小化,7+-2(Miller数) 单个DFD不应。