资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Slide Title,Body Text,Second Level,Third Level,Fourth Level,Fifth Level,Slide Title,Body Text,Second Level,Third Level,Fourth Level,Fifth Level,单击以编辑母版标题样式,单击以编辑母版文本样式,第二级,第三级,第四级,第五级,第四章 结构化分析与建模(一),4.1,需求建模概述与结构化建模,4.2,数据模型,与,ER,图,本章结构,4.3,功能模型数据流图,4.4,行为模型状态转换图,4.5,数据字典,4.6 判定表和判定树,“,化学制品跟踪系统,”,的项目开发组正在进行第一次软件需求规格说明的评审。参加者有,Dave,(项目经理),,Lori,(需求分析者),,Helen,(,高级程序员,),,,Ramesh,(,测试专家,),,,Tim,(,化学制品的产品代表者,),,还有,Roxanne,(,化学制品仓库的产品代表者,),。,Tim,开始说:,“,我阅读过整个软件需求规格说明。大部分都符合我的需求,但是有几个部分我很难同意。我不能确信在化学制品请求过程中,我们是否确定了这些,步骤,。,”,Ramesh,又补充说:,“,当一个请求通过系统时,我很难想象用于覆盖该请求状态变化的所有测试用例。我发现许多关于,状态变化,的需求散布在整个软件需求规格说明中,但我无法确定是否有一些需求遗漏了或存在不一致性。,”,引言与要点,Roxanne,有一个类似的问题。,“,当我阅读了如何真正请求一种化学药品时,我感到困惑,”,,她说,,“,单个需求是能感觉到的,但我难以想像我所要完成的,步骤顺序,。,”,在各评审员提出其它相关的问题后,,Lori,做出了总结:,“,看来软件需求规格说明似乎没有完全告诉我们对于理解系统所需的各个方面,也不能确保我们没有错过一个需求或不犯任何错误。我将,画一些图来帮助我们想像这些需求,并看一下能否澄清这些问题域。,谢谢你们的反馈意见。,”,引言与要点,相关基础概念,所谓,模型,,就是为了理解事物而对该事物做出的一种抽象,在软件工程中的模型由一组,图形符号,和组织这些符号的,规则,组成,。,经过对需求获取的资料进行分析,并以此建立起来的模型称之为,需求分析模型,。,引言与要点,需求分析模型主要描述软件目标系统的,数据信息、处理功能、用户界面及运行,的外部行为,它并不涉及软件的具体实现细节。,模型帮助分析员理解系统的,信息、功能和行为,;模型成为评审焦点;模型也是设计基础。,建模充分体现了“分而治之”这一古老而有效的概念。把复杂而困难的问题分解细化后,逐个解决它们。,建模能有效地将需求映射到软件结构中,。,BK,第四章 结构化分析与建模(一),4.1,需求建模概述与结构化建模,4.2,数据模型,与,ER,图,本章结构,4.3,功能模型数据流图,4.4,行为模型状态转换图,4.5,数据字典,4.6 判定表和判定树,需求分析阶段模型的作用,帮助系统分析员理解系统的信息、功能和行为,使得需求分析任务更加容易实现,结果更加系统化。,它是评审焦点,是确定,SRS,完整性、一致性和精确性的重要依据。,它是设计的基础,是软件要素的表示视图。,从客户需求到分析模型,认真听取客户陈述他们的需求之后,分析人员就可以挑选出关键字,将这些关键字转换成特定的模型元素。,表,4.1列出了一些可能的映射,:,单词类型,示 例,分析模型组件,名词,人、组织、软件系统、数据项或存在的对象,数据存储,(DFD),执行者,(,用例图,),实体或实体属性,(ERD),类或类属性,(,类图,),动词,动作、用户可做的事情或可能发生的事件,处理过程,(DFD),用例,(,用例图,),关系,(ERD),状态,(STD),活动,(,活动图,),表,4.1 映射,示例,“,一位,化学家,或,化学品仓库保管人员,可以提出获得一种或多种,化学制品,的,请求,:一是提供一个存在于,化学制品仓库清单,上的化学品,容器,,二是向外界,供应商,提交一份,订购,新的化学品的,订单,。,提出请求的人,在准备其请求时,必须能够通过在线查找,供应商目录表,找到特定的化学品。从准备请求直到执行请求或取消请求期间,系统必须跟踪每一个化学品请求的,状态,。系统还必须跟踪每个化学品的,历史记录,,从,公司,收到化学品直到它完全被用尽或丢弃为止。,”,化学制品跟踪系统示例,结构化分析的模型,结构化分析是一种建立模型的活动,创建,描述,信息内容和信息流,的模型,依据功能和行为对系统进行划分。,建模时,需,要,关注系统最复杂和风险最大的部分,以及最容易产生歧义和不确定性的部分。,结构化分析的模型,结构化分析模型图,4.2,数据模型与,ER,图,数据模型包括三种互相关联的信息:,数据对象,、,描述数据对象的属性,和数据对象相互连接的,关系,。,1.,数据对象是一个外部实体、一个事物(如报告)、一次行为(如电话呼叫)或事件(一个警报)、一个角色(如销售人员)、一个组织单元(如销售部门、人事部门)、一个地点(如仓库)或一个结构(如文件)。,4.2,数据模型与,ER,图,如,人或车可以被认为是数据对象,因为它们可以用一组属性来定义。,“数据对象描述”包括了,数据对象,及其,所有的属性,。数据模型只封装了数据,没有对数据的操作。,2.,属性,属性定义了数据对象的性质,数据对象有许多属性,应选择一组本质的属性。,例如,教师的属性有教工号、姓名、性别、职称、专业、研究方向、担任课程、住址、电话等。如果设计,“教学管理系统”,,关心与教学有关的属性、排除与教学无关的属性。,3.,关系,数据对象是相互关联的,如人可以“,拥有,”车。拥有即它们间的一种关系。,实体和实体之间的关系被抽象为联系。联系分为:,1),一对一(,1:1,)(一个丈夫只能有一个妻子),2),一对多(,1:N,),(,一个母亲有多个孩子,),3),多对多(,M:N,),(,侄子与叔叔,),实体,关系图,概念,最常使用的数据模型是实体,关系图,(Entity-Relationship Diagram,,,ERD),实体用单名词来命名,在实体,-,关系图中用,矩形框,来表示实体。实体,关系图中的,菱形,框代表关系,它确定了一对实体之间在逻辑上和数量上的连接。关系的命名要能描述关系的,本质,。,主键,:,能唯一地标识该实体的属性或属性组。,ERD,的图例,ERD,的实例,图,4-2-1,“,某校课程管理系统,”,的实体联系图,某一学校拟开发一课程管理系统,假设系统主要由老师、课程、学生和教室等实体组成,各实体的属性组成如下:,学生(学号、姓名、性别、系别、专业。),课程(课程编号、课名、学时、学分。),教师(编号、姓名、职称、性别、系别。),教室(代号、名称、楼号、房号、地点。),请将实体,教室,和老师、课程、学生的,属性,补充进上页,ER,图。,课程管理系统,ER,图编制说明,图,4-2-2,“,化学制品跟踪系统,”,的实体联系图,4.3,功能模型数据流图,数据流模型把,功能分解方法,运用到系统分析上,把复杂的问题进一步分解到,更详细的层次,。,数据流模型很适用于事务处理系统和其他功能密集型应用程序。,数据流图四种基本图形符号,数据流图有四种基本图形符号:,画数据流程图的原则,数据流程图上所有图形符号必须是前面所述的四种基本元素。,数据流程图的主图必须含有前面所述的四种基本元素,缺一不可。,数据流程图上的数据流必须封闭在外部实体之间,外部实体可以是一个,也可以是多个。,4.3,功能模型数据流图,画数据流程图的原则,处理过程至少有一个输入数据流和一个输出数据流。,任何一个数据流子图必须与它的父图上的一个处理过程对应,两者的输入数据流和输出数据流必须一致,即所谓“平衡”。,数据流程图上的每个元素都必须有名字。,4.3,功能模型数据流图,为方便储户,某银行拟开发,计算机储蓄系统,,储户携带存折前去银行办理取款手续,他应把存折和填好的取款单一并交给银行工作人员检验。工作人员需核对账目,发现存折有效性问题、取款单填写问题或是存折、账卡与取款单不符等问题时均应报告储户。在检验通过的情形下,银行则应将取款信息登记在存折和账卡上,并通知付款。根据付款通知给储户付款。,飞机机票预订系统,DFD,图,下图是一个飞机机票预订系统的数据流图,它反映的功能是:旅行社把预订机票的旅客信息,(,姓名、年龄、单位、身份证号码、旅行时间、目的地等,),输入机票预订系统。系统为旅客安排航班,打印出取票通知单,(,附有应交的账款,),。旅客在飞机起飞的前一天凭取票通知单交款取票,系统检验无误,输出机票给旅客。,画数据流程图的基本步骤,把一个系统看成一个整体功能,明确信息的输入和输出。,找到系统的外部实体。一旦找到外部实体,则系统与外部世界的界面就可以确定下来,系统的数据流的,源点和终点,也就找到了。,找出外部实体的输入数据流和输出数据流。,在图的边上画出系统的外部实体。,画数据流程图的基本步骤,从外部实体的输入流(源)出发,按照系统的逻辑需要,逐步画出一系列逻辑处理过程,直至找到外部实体处理所需的输出流,形成数据流的封闭。,将系统内部数据处理又分别看做整体功能,其内部又有信息的处理、传递、存储过程。,如此一级一级地剖析,直到所有处理步骤都很具体为止。,数据流图的层次结构,为了表达数据处理过程的数据加工情况,需要采用,层次结构,的数据流图。按照系统的层次结构进行,逐步分解,,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。,分层的数据流图,数据流图的层次结构,在多层数据流图中,,顶层流图,仅包含,一个加工,,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据。,底层流图,是指其,加工不需再做分解,的数据流图,它处在最底层。,中间层流图,则表示,对其上层父图的细化,。它的每一加工可能继续细化,形成子图。,数据流图的层次结构,经过初步的需求分析,得到系统功能要求:,1,、监视病员的病症(血压、体温、脉搏等)。,2,、定时更新病历。,3,、病员出现异常情况时报警。,4,、随机地产生某一病员的病情报告。,医院病房监护系统,产生,病情报告,监视病情,更新病历,系统功能要求:,1,、监视病员的病症(血压、体温、脉搏等),2,、定时更新病历,3,、病员出现异常情况时报警。,4,、随机地产生某一病员的病情报告。,顶层:,病员,护士,护士,病员监,护系统,病员,日志,病症信号,要求报告,病症,报告,报警,医院病房监护系统,病员,日志,医院病房监护系统顶层,DFD,图,第一层:,病员,护士,护士,中央监视,病症信号,要求报告,病症,报告,报警,局部监视,生成报告,病员极限,更新日志,病员数据,格式化,病员数据,生理信号,极限值,1,3,2,4,日志数据,日志数据,第二层:加工“,中央监视”分解,计算超过,极限值否,病员,数,据,超过,极限值,报警,开解信号,产生,报警信息,病员极限,格式化,病员数据,体温,血压、体温脉搏,生理信号,极限值,时间,脉搏,血压,日期,时钟,格式化,病员数据,3.1,3.2,3.3,3.4,医院病房监护系统二层,DFD,图,计算超过,极限值否,病员,数据,超过,极限值,报警,开解信号,产生,报警信息,病员极限,格式化,病员数据,体温,血压、体温、,脉搏,生理信号,极限值,时间,脉搏,血压,日期,时钟,格式化,病员数据,3.1,3.2,3.3,3.4,第二层:加工“,中央监视”分解,医院病房监护系统分层,DFD,图,第一层,格式化,病员数据,生理信号,极限值,病员,护士,护士,中央监视,病员,日志,病症信号,要求报告,病症,报告,报警,局部监视,生成报告,病员极限,更新日志,病员数据,1,3,2,4,日志数据,多层数据流图实例,商店业务处理系统,经过分析,商店业务处理的主要功能应当有,销售、采购、会计,
展开阅读全文