1、软件工程第5讲 结构化需求分析,贾西平Email: ,2,本课程的学习内容,11:50,2,3,需求建模方法结构化,4,内容提纲,数据建模功能建模行为建模数据字典需求验证,5,数据建模E-R图,概念数据模型一种面向问题的数据模型,是按照用户的观点对数据建立的模型。概念数据模型包含的信息数据对象数据对象的属性数据对象彼此间相互连接的关系,6,数据对象实体,定义客观世界存在且可以相互区分的事物可以是人,物,抽象概念图形描述:矩形框举例:计算机,学生,课程,7,属性,定义实体某方面的特征图形描述:椭圆举例学生实体有学号、姓名、班级等属性注意事项属性中的“键”属性不能与其它实体发生联系根据对解决问题的
2、理解来适当确立实体的属性例如:在“机动车管理系统”和“机动车设计系统”中汽车属性的定义侧重点不一样,8,联系,定义实体之间的相互关系图形描述:菱形联系的3种类型:一对一联系(11)一对多联系(1N)多对多联系(MN)举例学生实体与课程实体之间的选课关系注意:联系也可能有属性,9,E-R模型中的基本符号,10,学生和课程之间的E-R模型学生和课程之间的多对多联系E-R模型;(b) 将多对多联系转换为一对多联系E-R模型,11,建立实体模型的步骤,分析系统数据域和功能域,确定实体确定实体之间的联系确定实体及联系的属性举例:工资计算系统系统描述:工资计算系统中,单位对职工的工作情况进行考勤,根据出勤
3、结果、基本工资档案、奖金及扣款计算职工的实发工资实体:职工、出勤、奖金和扣款。关系:考勤、奖励、扣款属性:职工实体有职工号、性别、职称、年龄、部门、基本工资等属性(见下页图),12,工资计算系统的E-R模型,13,层次方框图,用树形结构的一系列多层次的矩形框描述数据的层次结构。,某计算机公司全部产品的数据结构,14,Warnier图,法国计算机科学家Warnier提出了表示信息层次结构的一种图形工具。和层次方框图类似,Warnier图也用树形结构描绘信息,比层次方框图提供了更丰富的描绘手段。,描绘一种软件产品的Warnier图,异或:上下方数据只能出现其一,数据元素在数据结构中出现的次数,15
4、,面向数据流的需求分析方法,面向数据流进行需求分析的方法使用数据流图DFD与数据字典DD来描述需求适合于数据处理类型软件的需求描述核心思想:分解化简问题,将物理与逻辑表示分开,对系统进行数据与逻辑的抽象。,16,数据流图,数据流图:Data Flow Diagram,是描述数据处理过程的工具。1.数据流图的含义 以图形的方式描述数据流从输入到输出的传输变换过程2.数据流图的特点 a.抽象性 b.概括性 c.层次性3.数据流图基本符号(见下页),17,数据流图基本图形符号,数据流图中的基本图形元素有4种:,数据输入的源点和数据输出的汇点。加工:输入数据在此进行变换产生输出数据,也称处理。数据流:
5、被加工的数据与流向。数据存储文件,须加以命名。,或,或,或,18,数据流与加工的关系(1),数据A和B同时输入变换成C数据A变换成B和C数据A或数据B(不能同时)输入变换成C,19,数据流与加工的关系(2),数据A变换成B或C(不能变换成B和C)数据A或B,或A和B同时输入变换成C数据A变换成B或C,或B和C,20,数据流图的用途,用户和开发人员交流信息的工具;“总体设计”中模块结构图形成的基础;作为分析和设计的工具,导出新系统的不同物理解法。,21,数据流图的画法,(1)画数据流图的一般原则 自外向内,自顶向下,逐层细化,完善求精(2)数据流图的分层方法 一套分层的数据流图由顶图、底图和中间
6、层的数据流图所组成。 称上层图为下层图的“父”图,下层图称为上层图的“子”图。,父图,子图,22,数据流图的画法(续),(3)分层法绘制数据流图的几个问题 编号的设置 父图与子图的平衡 局部数据存贮 处理逻辑的分解与分细的程度 由左到右绘制数据流图 绘制数据流图时,可以先忽略枝节(次要)的信息 合理地命名,23,数据流图实例,假如要分析一家公司的营销系统。其采购部门每天须要按销售部门提供的订货单(须订的货物)向供应商采购货物。每种货物的数量都存放在数据存储货物库存中,销售和采购使每种货物数量发生的变化能够在此数据存储中及时被反映出来。而资金的汇总、核对等工作由其会计部门处理。,24,每种货物的
7、数量都存放在数据存储货物库存中,销售和采购使每种货物数量发生的变化能够在此数据存储中及时被反映出来。,数据流图,第一层数据流图,采购部门每天须要按销售部门提供的订货单(须订的货物)向供应商采购货物。,资金的汇总、核对等工作由其会计部门处理。,25,销售系统,数据流图,26,采购系统,数据流图,27,会计系统,数据流图,28,行为建模状态转换图,用途:描述系统状态随外部信号或事件进行转换的情况符号圆圈:表示可得到的系统状态。有向线:状态迁移的方向,事件,29,状态转换表,状态转换图的等价表示方式列:状态行:信号或事件,30,状态转换图的细化(略),状态转换图举例(a) 状态转换图;(b) 细化后
8、的状态转换图;(c) 状态转换图的变形,31,行为建模 Petri网(略),1962年德国人Petri提出用途:描述同步模型;描述并发系统基本符号:,32,描述静态系统的Petri网,33,数据字典(DD),用途:对数据流图中各种成分进行详细定义。软件分析和设计过程中,提供关于数据的描述信息。数据流图和对数据流图中每个元素的精确定义构成系统的规格说明。数据字典是开发数据库的第一步四类条目:数据流条目数据项条目数据文件条目数据加工条目,34,数据字典基本符号,35,数据流条目,例:工资系统中的出勤表数据流在数据字典中的条目描述为数据流名称:出勤表数据流别名:无说明:由人事部门每月月底上报的职工考
9、勤统计数字数据流来源:人事部门数据流流向:加工1.2(计算应发工资)数据流组成:出勤表 = 年份+月份+职工号+出勤时数+病假时数+事假时数+旷工时数数据流量:1份/月,36,数据项条目,例:出勤表中的职工号数据项在数据字典中的条目描述数据项名称:职工号数据项别名:employee_no说明:本单位职工的唯一标识类型:字符串长度:6取值范围及含义:12位(00.99)为部门编号:36位(XX0001.XX9999)为人员编号,37,数据文件条目,例:工资系统中的职工工资档案文件在数据字典中的条目描述为数据文件名称:工资档案说明:单位职工的基本工资、各项津贴及补贴信息数据文件组成:职工号+国家工
10、资+国家津贴+职务津贴+职龄津贴+交通补贴+部门补贴+其他补贴组织方式:按职工号从小到大排列存取方式:顺序存取频率:1次/月,38,数据加工条目,例:工资系统中的计算应发工资这个加工在数据字典中的条目描述为数据加工名称:计算应发工资加工编号:1.2说明:根据职工的工资档案及本月奖金发放表数据计算每个职工的应发工资输入数据流:奖金发放表及工资档案输出数据流:应发工资表加工逻辑:DO WHILE 工资档案文件指针未指向文件尾 从工资档案中取出当前职工工资的各项基本数据进行累加在奖金发放表中按职工号查找到该职工的奖金数对奖金数与工资基本数据的累加和进行求和得到该职工的应发工资数ENDDO,39,加工
11、逻辑的描述,三种常用的描述方法:结构化语言判定表判定树,40,结构化语言,介于自然语言和形式语言之间的一种半形式语言,是自然语言的一个受限制的子集三种基本结构顺序结构:自然语言简单祈使句序列选择结构IFTHEN-ELSE; CASE-OF-ENDCASE;循环结构WHILE-DO; REPEAT-UNTIL,41,顺序结构举例,“打印工资单”处理逻辑 输入职工号 读基本工资文件 读考勤表文件 读扣款文件 计算应付工资 计算代扣工资 计算实发工资,42,选择结构举例,“客户优惠待遇”处理逻辑 IF 每年交易额 = 5万 THEN IF 最近三个月无欠款 THEN 折扣值=15%交易额 ELSE
12、IF 与本公司交易=20年 THEN 折扣率=10%交易额 ELSE 折扣率=5%交易额 ELSE 折扣值0,43,循环结构举例,“学生成绩管理”处理逻辑 Repeat 输入学生学号 输入课程号 在“学生选课”数据存储中查找该生纪录 如果找到 则输出成绩 Until 全部学生的成绩处理完毕,44,判定表,一种二维的表格,常用于较复杂的组合条件通常由四部分组成。条件列表:所有相关条件动作列表:操作的定义。条件组合:各条件的取值组合。对应的动作:在各条件取值组合下所执行的操作。,45,“职务津贴计算”判定表,46,判定树,判定树是判定表的图形表示与判定表的作用大致相同,但比判定表更加直观,易于理解和掌握。,47,例:用判定树 对“基本奖金计算”加工逻辑描述,48,需求验证,一致性 保证需求之间不能相互矛盾完整性 能够描述用户需要的每一个功能或者性能现实性 通过现有软件、硬件技术能够实现所定义的需 求有效性 证明确实能够解决用户面对的问题,49,回顾,数据建模功能建模行为建模数据字典需求验证,50,思考题,结构化分析要创建哪些模型?加工逻辑描述有哪些方法?课后练习:结合具体案例练习结构化分析方法。,51,谢谢!,51,