第六章结构化系统分析本章主要内容系统分析的任务数据流图数据字典表达处理的工具实体关系图系统说明书6.1系统分析的概述分析人员和用户按照系统的观点,对现有系统进行深入调查和需求分析的基础上,深入描述及研究现行系统的活动和各项工作及用户的各种需求,并使用一系列分析工具与技术绘制一组描述系统总体逻辑方案的图表;经与用户反复讨论、分析、修改、完善和优化,构思和设计用户比较满意的新系统逻辑模型的过程。1、系统分析的任务根据系统规划所确定的总体结构方案和项目开发计划,对现行系统进行详细调查,描述业务流程,指出局限性和不足之处,确定新系统基本目标和逻辑功能要求,即逻辑模型。分析的重要任务是理解和表达需求需求有哪些种类?如何寻找需求?如何表述需求?6.2系统分析的主要活动(1)系统初步调查(2)系统可行性研究(3)用户需求分析(4)系统分析报告6.2.1系统初步调查主要目标:要明确系统开发要解决的主要问题和目标,论证系统开发的必要性和可能性(从系统分析人员和管理人员的角度看新系统有无必要和可能)。主要内容:·整个组织的概况:规模、组织目标、组织结构,人员、设备与资金的现状以及目前的管理水平;·本组织领导者、管理部门对新、老系统的看法以及对新系统的需求;·开发系统的人力、资金及开发周期等资源情况;·现行系统的工作情况:功能、人员、技术水平以及管理体制。·组织对外部的关系:物资、资金或信息的往来。调查的方法(1)直接面谈或专门访问(2)发调查表征求意见(3)召开讨论会(4)阅读历史资料(5)参加业务实践开发建议书内容:项目名称;项目目标;项目开发的必要性和可能性;项目内容;项目开发的初步方案。包括对项目的规模、目标和投资的粗略估计、人员配备情况、进度计划等。主要目标与工作内容:进一步明确系统的目标、规模与功能、对系统开发背景、必要性和意义进行调查分析,并根据需要和可能提出拟开发系统的初步方案与计划。(1)技术可行性(2)经济可行性(3)营运可行性6.2.2系统可行性分析步骤:(1)确定系统的规模与目标(2)明确用户主要信息需求(3)提出拟建系统的初步方案(4)审查新系统(5)提出并评价可能的替代方案,并进行三方面可行性分析。(6)给出该项目做还是不做的选择,同时确定方案。(7)制定项目开发计划,包括人、财、物的安排。(8)撰写可行性研究报告。(9)向用户审查小组与指导委员会提交结果。可行性研究报告的主要内容包括:(1)现行系统概况。包括组织结构、主要工作任务和业务流程、人员、设备、费用状况。(2)主要问题和主要信息需求(3)拟建新系统的方案。包括主要目标、规模、初步结构、实施计划与投资方案、人员补充方案等。(4)经济可行性分析(5)技术可行性分析(6)营运可行性分析(7)结论6.2.3用户需求分析1、定义系统需求是新系统必须完成的功能或其局限性。2、需求的种类(功能性需求和技术性需求)3、需求分析的目标:正确理解和表达用户的需求功能需求技术需求系统必须完成的活动或过程,也就是系统将要涉及的商业应用。根据业务过程和业务规则确定的,有些容易获取,有些则是隐含的,需要去发现。技术需求也称非功能性需求,是和公司的环境、硬件和软件有关的所有可操作目标。例如:系统必须能支持100个并发用户;保存订单的时间不能超过0.5秒等等,涉及系统性能、可靠性、安全性等质量特性。通常是一些技术目标4、需求提供者:系统的各种系统相关者,他们是对系统成功感兴趣的所有人。业务用户、信息用户、管理用户、外部用户、客户、技术人员等。5、主要活动包括:1)分析现有系统的组织结构和功能,指出存在的问题,提出改进意见;2)分析现有系统业务流程,明确要改变的问题和要达到的目的;3)分析现有系统的数据处理流程,弄清需要哪些改变,又能达到什么样的改变。6、需求分析工作特点1)画图的方法,直观且容易理解;2)“自顶向下”的工作原则;3)强调逻辑结构而不是物理实现。7、如何表述需求自然语言:既要保证精确无二义性,又要保证叙述不至于晦涩难懂。模型:复杂问题的一种抽象或者对实物的一种简单实现或规划蓝图。即把复杂系统变成小系统,采用“各个击破”的原则逐一解决。例如:飞机模型,建筑模型,数学模型等等。分析人员需要一组模型来充分描述信息系统的需求,不同的需求分别显示了问题和解决方案的不同部分。信息系统建模知识点三种常见模型类型:1、数学模型描述系统技术方面的一系列数学公式2、描述模型描述系统某些方面叙述性的备忘录、报表、列表、文字等3、图形模型描述系统的图表或系统某些方面的示意性表示信息系统的模型信息系统的模型三类常用的图示化模型:1、功能模型利用数据流图分层描述系统的功能和数据的处理流程利用数据字典辅助解释数据流图中的每个元素2、数据模型利用实体关系图描述系统中的数据实体及其关系3、对象模型利用类图描述对象、对象之间的联系。和数据实体不同,对象在数据之外增加了行为特性模块化思想:模块化是好的系统设计的一个基本准则高层模块从整体上把握问题,暂不考虑细节转换复杂问题较小问题分解可减小解题所需的总的工作模块化设计对模块进行分解分解信息系统模型的作用1、建立模型的过程可以帮助分析员更深入地了解和定义信息系统的需求,并发现问题;2、对复杂问题进行简化;3、有助于回忆需求的细节;4、有助于同开发小组的其他成员交流;5、有助于同客户交流;6、为以后的维护升级提供了文档;分析阶段创建的模型结构化方法系统流程图决策树/决策表实体关系图(在数据库设计中讲解)数据流图数据字典事件列表事物列表如何着手建模构建模型首先需要识别用户的需求,识别需求一般可以从两个方面着手:1、识别系统中的事件(Events)建立过程模型(数据流图,DFD)2、识别系统中的事物(Things)建立数据模型(实体关系图,ER)1、事件与系统需求事件:在特定时间、特定地点发生的,能够描述出来并值得保存的事情。系统所有处理过程都是由事件驱动或触发的,定义系统需求时需将事件列表并进行分析。事件类型外部事件临时事件状态事件系统之外发生的事件,通常是由外部实体或系统参与者触发的由于到达某一时刻所发生的事件当系统内部发生了需要处理的情况时所引发的事件事件类型应包括外部事件◊外部实体的需要触发一个事务处理,如读者借书◊外部实体想获得某些信息,如读者查阅书目◊数据发生改变需要更新,如书籍位置改变◊管理过程需要某些信息,如制定新采购计划需要流通统计情况临时事件◊所需的内部输出结果,如定期报表◊所需的外部输出结果,如按月发布逾期催还名单◊突发情况,如系统掉电、内存溢出、读写错误注意命名时必须包含所要完成的处理和规定期限状态事件◊所有外部事件和临时事件都要考虑是否有状态事件发生,如销售系统中库存数一旦低于基数点就提示库存预警。它的发生是不定时的。•区分事件与具体响应过程–事件响应中的一系列交互过程是完整具体的实现,而不是独立的一个事件。例如:拿信用卡交费•跟踪关键业务的整个生命周期来发现事件•暂时忽略技术性依赖事件和系统控制事件–如管理员登录系统,修改口令,每天的备份系统需求建模:事件列表事件列表属于“描述性模型”事件表各段信息的格式如下事件触发器来源活动/用例响应目的地客户要确定可用商品信息商品查询客户查询可用商品可用商品信息客户事件:引起系统执行某种操作所发生的事情来源:对外部事件而言,外部实体或参与者是数据进入系统的来源响应:系统产生了什么样的输出结果(如果有的话)?触发器:系统如何知道事件发生了?对外部事件而言就是进入系统的数据;对临时事件来说就是定义好的、触发系统运行处理过程的时间点活动/用例:当事件发生时,系统做了什么操作?目的地:哪个外部实体获得了输出结果?事件名称触发器来源活动响应目的地借书读者借书读者借书书籍被借图书系统还书读者还书读者还书书籍归还读者查询读者查询读者查询书籍被查读者续借读者续借读者续借书籍续借读者罚款读者违规读者罚款读者被罚读者催还图书到期图书系统催还读者被催读者图书下架图书要求系统规定图书下架图书被下架读者读者变更读者变更读者读者变更读者变更图书系统月报表一个月到期图书系统出月报表打出月报表图书管理员图书管理系统事件表2、事物与系统需求事物:系统需要处理或保存的对象。如客户,订单,产品等。事物类型:•实在有形:书籍、产品、文档•角色身份:医生、读者、顾客•组织单位:小组、部门•设备:打印机、传感器、鼠标•事件:借阅、订货、销售、罚款•场所:零售店、仓库事物之间的关系和关系基数关系:指某些事物间自然发生的联系。例如:学生和图书,学生可以借阅图书;一个客户可以发出订单。对每一个事物分析和它相关的事物,找出关系。关系的基数:指一个事物关联另外一个事物的数量(一对一,一对多,多对多)。如:学生和图书,一个学生可以预约多本图书,每本图书可能被多个学生预约。如:一个客户可以发出多个订单,一个订单只能是一个客户的。事物的属性•属性:有关事物的一条特征信息。如:客户的姓名、年龄、电话等。•标识符:能唯一区分事物的属性。如:发货单号,职工编号。•复合属性:指包含了许多相关属性的属性。如:姓名可能包含姓和名,日期包含年月日。药学部中草药房急诊药房门诊药房住院药房临床药学静脉配液中心门诊药房二级库运输科采购部医院药学部组织结构图药库8、组织结构与功能分析管理功能分析药库采购管理采购计划采购合同采购核算与统计入、出库管理药品数据维护采购资料管理编制采购计划合同登记和变更合同执行情况分析合同有效性审查采购统计分析采购利润核算采购支出核算库存统计出入库管理数据使用情况维护数据基本信息维护9、业务流程分析1)目的就是剖析现行业务流程,经过调整、整合以后重构目标系统的业务流程。2)主要任务是弄清系统中各环节的管理活动,掌握管理业务的内容、作用及信息的输入、输出、数据存储和信息处理方法及过程等,在此基础上用标准的符号描述出来,绘成现行系统的业务流程图(TransitionFlowDiagram,TFD),然后对其分析研究,提出目标系统的业务流程方案。3)业务流程分析步骤(1)分析原有流程(2)业务流程的优化(3)确定新的业务流程(4)确定新系统的人机界面4)业务流程图(1)业务流程图的基本符号及含义(2)业务流程图的绘制业务处理单位业务处理功能描述表格/报表制作数据/文件存档收集/统计数据信息传递过程药房组长药师用药计划领药单未批准领药单审批领药单已批准领药单查阅库存账、登记流水账、缺药通知、生成库存报表等用药流水账库存账缺药通知单入库单订货单(合同)采购员查阅订货通知、催货、申请补充订货、办理入库催货通知补充订货通知供货单位提货通知单库存报表有关部门领药通知填写领药单药库药品管理业务流程图6.2.4数据流图系统分析阶段:•使用数据流图DFD来建立系统需求的过程模型。(结构化系统分析的方法)•系统分析采用ER图来建立系统的数据模型。结构化分析的思想•数据流图DFD采用一系列分层次的数据流图来描述系统。•DFD的每一个层次都代表了系统的一个抽象水平。高层次DFD中的处理可以进一步分解成低层次、更详细的DFD。数据流图设计•1、数据流图基本符号•2、数据流图设计原则•3、数据字典•4、典型例题讲解6.2.4.1数据流图的基本成分记录系统中的数据和数据在特定的过程中的流动。即数据如何被采集、处理、保存和使用(围绕系统功能)外部实体数据处理p1数据存储数据流数据流图的基本图元素附加符号*表示数据流之间是AND关系(同时存在)+表示数据流之间是OR关系⊕表示数据流之间是XOR关系(互斥关系)ABC*ABC+ABC⊕数据A和B同时输入才能变换成数据C数据A或B只要有一个输入就能变换成数据C数据A或B只能输入一个才能变换成数据CABC*ABC+ABC⊕数据A变换产生数据B和C数据A变换产生数据B或C至少一个数据A变换产生数据B或C指系统以外又与系统有联系的人或事物。它表达了该系统数据的外部来源和去处。例如:人、组织、外部系统等等。外部实体是数据的来源外部实体是数据的去处读者图书管理员馆长读者图书管理员1、外部实体处理:指对数据的逻辑处理功能,也就