结构化需求分析方法补充马宁.ppt
需求分析 结构化分析方法,结构化分析模型的组成数据建模功能建模数据词典行为建模软件需求规格说明书,结构化分析模型的组成,数据字典是模型的核心实体关系图(ER图):描述数据对象间的关系,用于数据建模。数据流图(DFD图):描述了数据流在系统中流动的过程,以及对数据流进行变换的功能,用于功能建模。状态迁移图(STD图):描述了对外部事件的响应方式,表示了系统的各种行为模式(称为状态)以及在状态间进行变迁的方式,用于行为建模。,数据建模 ER图,数据模型是为了把用户的数据要求清晰明确地表达出来所建立的一个概念性的模型,也称为信息模型。概念性数据模型是一种面向问题的数据模型,是按照用户的观点来对数据和信息建模。它描述了从用户角度看到的数据,反映了用户的现实环境,但与在软件系统中的实现方法无关。概念模型常用的表示方法是实体-关系图法,也称为实体关系模型。,数据建模的目标,数据建模的目标是为了明确下列与数据处理相关的特定问题:系统处理哪些主要的数据对象?每个数据对象的组成如何?哪些属性描述了这些数据对象?这些数据对象当前位于何处?数据对象之间的关系?数据对象和变换它们的处理之间有哪些关系?,数据对象、属性和关系,数据对象描述包括了数据对象的名称及其所有属性。通常将数据对象简称为“实体”,其具体表现可以是:外部实体:产生或使用消息的任何事物;事物:例如建筑物、汽车等物体;事件:例如警报;角色:例如老师、学生、管理员等;组织单位:例如学校教务处、财务处等;地点:例如仓库、停车场等;结构:例如文件、档案等。,属性,每个数据对象都具有一些区别于其他数据对象的特征和性质,这些特征称为数据对象的属性。它可用于:命名数据对象;描述数据对象实例;建立与其它数据对象的联系;能够唯一标识一个数据对象实例的一个(组)属性,称为该数据对象的“关键字”。例如:汽车实体的属性包括生产厂家、型号、车牌号、车型、颜色、车主、出厂日期、座位数、车长度、发动机型号等。其中关键字为车牌号。,关系,数据对象之间可以存在某种特定的关联,称之为数据对象的关系。关系是由被分析问题的语境定义的。例如:汽车生产厂家与汽车之间存在的“生产”的关系 购车人与汽车之间存在着“购买”的关系汽车与发动机之间存在这“安装”的关系,基数,为了更准确的刻画数据对象之间的关系,数据模型引入基数,表示在一个给定的关系中实体出现的次数。基数通常简单地表达为“一”或“多”。考虑到“一”和“多”的所有组合,两个实体可能的关联如下:一对一:例如汽车与车牌号的关系;一对多:例如生产厂家与汽车的关系;多对多:汽车生产厂家与购车人的关系;,ER图,ER图中的实体与属性用一个带名字的矩形表示。上部表示实体的名称,下面表示实体的属性,用下划线标识实体的关键字属性。ER图中的关系用连接实体的连线表示,连线上标出关系的名称。ER图中的基数用连线的不同端点符号标识。,ER图,例如,教学管理系统中的教师、学生和课程之间的关系:,功能建模数据流图,当数据或信息“流”过计算机系统时将会被系统的功能所处理、加工或变换后再将处理或变换后的数据从系统输出。数据流图是描述信息流和数据从输入移动到输出时被系统的功能变换的图形化技术。是软件需求分析中功能建模的工具。数据流图采用自顶向下的机制表示层级的功能细节和数据变换细节。,分层数据流图的两种表示,数据流图示例,例1:医院就诊管理系统:假设,该系统涉及医院的三个部门:挂号、问诊、交费和取药。挂号:挂号处的挂号人员接受病人的就诊请求,根据门诊科室各医生的病人的排队情况,分配合适科室和医生,记录并打印挂号凭据,收取挂号费完成挂号请求。问诊:医生根据挂号的次序对病人进行病情诊断,根据挂号单据及病历号获取该病人的历史病历,然后将问诊结果记录在病历当中并开具相应的处方(处方中可根据系统提供的药品进行选择),打印处方交给病人完成一次问诊。交费取药:病人在收费处根据挂号单据和处方所列出的药品种类和数量进行交费,取得相应的药品完成一次看病流程。,顶层数据流图,病人,医院就诊管理系统,科室医生排队信息,挂号凭据,查询科室医生信息,写入病人挂号信息,例2:超市经营管理系统该系统负责管理超市经营过程中的各个环节,具体包括销售货物、库存统计、采购商品、财务核算等内容。销售:接受顾客的订单,并根据客户的需要开具收据或发票;库存:随时查询库存商品的数量;采购:向供应商订货,支付货款,并回收发票;财务核算:对经营的财务情况进行核算,计算收益;,顶层数据流图,第二层销售数据流图,例4:教学管理系统,数据词典,数据词典(DD,Data Dictionary):对于数据流图中出现的所有被命名的图形元素加以定义,使得每一个图形元素的名字都有一个确切的解释。其定义应是严密的、精确的,无二义性的,它由以下内容组成:数据流词条数据元素词条数据文件词条加工词条外部实体,数据字典中采用符号,2009 BUPT TSEG 北京邮电大学 通信软件工程中心,2009 BUPT TSEG 北京邮电大学 通信软件工程中心,2009 BUPT TSEG 北京邮电大学 通信软件工程中心,数据词典的使用,在结构化分析的过程中,可以通过数据名称方便地查问数据的定义;可按各种要求,随时列出各种表,以满足分析员的需要。可以按描述内容(或定义)来查询数据的名称。通过检查各个加工的逻辑功能,可以实现和检查在数据与程序之间的一致性和完整性。在设计与实现阶段,以至于到维护阶段都需要参考数据词典进行设计、修改和查询。,状态迁移图可以用来描述系统或对象的状态,以及导致系统或对象的状态改变的事件,从而描述系统的行为。状态迁移图指明系统的状态如何响应外部的事件进行推移。在状态迁移图中,用圆圈“”表示可得到的系统状态,用箭头“”表示从一种状态向另一种状态的迁移。在箭头上要写上导致迁移的信号或事件的名字。状态迁移图指明了作为特定事件的结果(状态)。在状态中包含可能执行的行为(活动或加工)。,行为建模状态迁移图,分层的状态迁移图,在状态迁移图中,由一个状态和一个事件所决定的下一状态可能会有多个。实际会迁移到哪一个是由更详细的内部状态和更详细的事件信息来决定的。,复习题,一、单选题1下面哪句话最准确地概括了结构化方法的核心思想()A、由分解到抽象 B、自顶向下,由细到粗,逐步抽象 C、自下而上,由抽象到具体 D、自顶向下,由粗到细,逐步求精2结构化分析方法使用的描述工具中,用于描述系统由哪几部分组成,各部分之间有什么联系等的是()A、数据流图 B、数据字典 C、判定表 D、判断树,3、系统分析阶段的主要任务是勾画新系统的逻辑模型,以便说明()。A、系统开发的可行性 B、系统是什么 C、系统干什么 D、系统如何实施4、信息系统开发各阶段的顺序是()。A、总体规划、系统设计、系统实施、系统评价、系统分析、运行维护 B、总体规划、系统分析、系统设计、系统实施、运行维护、系统评价 C、系统分析、总体规划、系统设计、系统实施、运行维护、系统评价 D、系统分析、系统设计、系统实施、运行维护、总体规划、系统评价,5、对当前系统进行初步调查工作应重点在哪个阶段进行()。A、总体规划阶段 B、系统分析阶段C、系统设计阶段 D、系统实施阶段6、结构化方法中,数据流程图是()。A、工程流程图的抽象 B、业务流程图的抽象C、系统流程图的抽象D、程序流程图的抽象,二、判断题:1现行系统的逻辑模型应通过数据流程分析构建()。2业务流程分析是总体规划阶段的主要任务()。3数据流图的子图与父图的数据流必须平衡()。4代码设计是系统分析阶段的主要任务之一()。5数据流图的子图与父图的数据流必须平衡()6信息系统的逻辑模型要解决系统“干什么”,同时也要解决系统“如何干”等问题。()7业务流程分析主要是为了描述现行系统的物理模型(),三、应用题:1某仓库管理系统按以下步骤进行信息处理,请绘制其数据流图。(1)保管员根据当日的出库单和入库单通过出入库处理去修改库存台账。(2)根据库存台账,制作各种表格。(3)需要查询时,只要给出查询条件,就可根据库存台账获得查询结果。,2已知某系统的二级数据流图是正确的(如图2所示),请指出其一级数据流图(如图1所示)的错误,并改正。,