1、2022-12-28 第第3 章章 软件需求分析软件需求分析 软件需求分析是软件开发早期的一个重要阶段。它在问题定义和可行性研究阶段之后进行。需求分析的基本任务是软件人员和用户一起完全弄清用户对系统的确切要求。这是关系到软件开发成败的关键步骤,也是整个系统开发的基础。软件需求分析阶段要求用 需求规格说明书(SRS)来表达用户对系统的要求。规格说明书可用文字方式表示,也可用图形表示。本章将介绍需求分析的(面向数据流图分析方法、面向对象的分析方法)。2022-12-283.1 需求分析的任务需求分析的任务2022-12-28某学校医疗费管理系统2022-12-28 1 1、医疗费管理系统每天医疗费
2、管理系统每天记录记录当天报销的若干职工或职工子女的医当天报销的若干职工或职工子女的医 疗费的疗费的类别、金额类别、金额。2 2、在当天下班前让系统在当天下班前让系统自动结帐自动结帐、统计当天报销的医疗费总额统计当天报销的医疗费总额,供,供 出纳员核对。出纳员核对。3 3、每笔帐要保存备查,每天所报销的费用要和各个职工已报销的金每笔帐要保存备查,每天所报销的费用要和各个职工已报销的金 额累计起来,以便检查哪些职工已超额。额累计起来,以便检查哪些职工已超额。4 4、系统还要配有适当的系统还要配有适当的查询功能查询功能。5 5、年终结算后,下一年度开始时要对数据库文件进行初始化。年终结算后,下一年度
3、开始时要对数据库文件进行初始化。6 6、当职工调离本单位,职工调如本单位或在本单位内部门间调动,当职工调离本单位,职工调如本单位或在本单位内部门间调动,数据库文件应能及时得到修改。数据库文件应能及时得到修改。请完成对上述系统的 需求分析用户对系统的要求2022-12-282022-12-282022-12-282022-12-282022-12-28问题需求问题需求 1、建立目标系统逻辑模型的步骤2022-12-28图形工具 数据流图 数据字典 2、建立目标系统逻辑模型的图形工具2022-12-28 -学生购买教材的具体模型 -学生购买教材的 逻辑模型 2022-12-28 完善目标系统并补充
4、细节,的出目标系统的正式逻辑模型2022-12-282022-12-28一、数据流图一、数据流图 3.2 面向数据流的方法面向数据流的方法 -DFD(Data Flow Diagram)是用来描述系统逻辑模型的一种图形工具。是用来描述系统逻辑模型的一种图形工具。数据流图从数据传递和加工的角度,以图形的方式数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。刻画数据流从输入到输出的移动变换过程。DFD2022-12-282022-12-282022-12-28-系统系统逻辑逻辑模型模型2022-12-282022-12-282022-12-282022-12-282
5、022-12-282022-12-28外部实体外部实体2022-12-28 F1书号书号单价单价数量数量2022-12-282022-12-28-DFD 2022-12-28DFD 2022-12-282022-12-282022-12-28请画出学生成绩管理系统的 DFD 图 2022-12-28二、数据字典二、数据字典 -DD(Data Dictionary)数据字典的任务是数据字典的任务是:对于数据流图中出现的所有被对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定义,使得命名的图形元素在字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。每一个图形元
6、素的名字都有一个确切的解释。DD2022-12-282022-12-282022-12-282022-12-282022-12-282022-12-282022-12-282022-12-282022-12-282022-12-282022-12-282022-12-28 描述把输入数据流变 换为输出数据流的加工过 程,是加工说明的主体。2022-12-282022-12-28自然语言自然语言+结构化形式结构化形式结构化语言结构化语言选选择择结结构构如果如果 If 如果如果 则则 否则否则 情况情况1 情况情况n If then Otherwise case 1 case n 循循环环结结构构
7、对对 ,重复以下重复以下 直至直至 For each ,Repeat the following:Until 2022-12-28 例例1:1:请写出下列在请写出下列在 DFD DFD 图中给出的图中给出的 “统计晚婚职工统计晚婚职工”的加工说明的加工说明 Count Late-MarriageEmployeesLate-Marriage-Count RequestLate-Marriage-List=List-Count+Name-ListName-List=Name2022-12-28 Count Late-Marriage Employees Policy For each Late-M
8、arriage-Count request:Repeat the following;Access the staffs-Record.If status is single,If sex is maie and Age is over 30 or sex is female and Age is over 26 Write Name to Name-List.Increment List-Count.Until there are no more Staff-Records.Combine List-Count and Name-List.Write Up Late-Marriage-Lis
9、t.2022-12-28 例例2:2:请为下列请为下列DFDDFD中的中的“审查并开发票审查并开发票”加工点写加工点写 加工说明加工说明 2022-12-28把学生学号和姓名写到发票上把学生学号和姓名写到发票上按购书单上学生的年级和系、专业与班号按购书单上学生的年级和系、专业与班号 检索检索“各班学生用书表各班学生用书表”文件,获得该生当年的书单文件,获得该生当年的书单 对对 购书单上的每一书号购书单上的每一书号 如果如果 书单上无此书号书单上无此书号 则则 把书号写到出错通知单上把书号写到出错通知单上 否则否则 按书号检索按书号检索 “教材存量表教材存量表”文件,文件,从而获得该书的单价与库
10、存量从而获得该书的单价与库存量 如果如果 库存量库存量 购书单的数量购书单的数量 则则 将书号写到出错通知单上将书号写到出错通知单上 否则否则 将将书号、单价、数量、总价等项写入到发票上;书号、单价、数量、总价等项写入到发票上;更新存书量,并写回更新存书量,并写回“教材存量表教材存量表”文件;文件;累计书费合计累计书费合计 把把书费合计写到发票上书费合计写到发票上对对每张购书单每张购书单2022-12-28分房分房加工加工婚龄婚龄中级职称中级职称晚婚晚婚正常分房正常分房优先分房优先分房不分房不分房分房加工逻辑分房加工逻辑判断表判断表采用表格的形式来表达采用表格的形式来表达具复杂判断的加工逻辑具
11、复杂判断的加工逻辑1 1、一般职工婚后、一般职工婚后5 5年可参加分房年可参加分房 2 2、中级以上职称的职工婚后、中级以上职称的职工婚后3 3年年 可参加分房可参加分房 3 3、符合正常分房条件的职工,、符合正常分房条件的职工,若再符合晚婚条件可优先分房若再符合晚婚条件可优先分房2022-12-28分房分房加工加工婚龄婚龄中级职称中级职称晚婚晚婚正常分房正常分房优先分房优先分房不分房不分房123456说说 明明条条件件婚婚 龄龄5年年3-5年年 5年年3-5 年年$500$500=$50060天天60天天=60天天决策不发出批准书V发出批准书VVV发出发货单VVV发出赊欠报告V2022-12
12、-28工资管理系统 系统流程图 系统软件模型 部分数据字典一、对工资管理系统进行需求分析二、阅读教课书的 P27 页 2022-12-28三、把下列用文字叙述的内容请采判断表和判断树描述出来 设某旅游票预定系统中,在旅游旺季 7-9、12月份,如果订票超过 50张,则优惠票价的 15%;50张以下,优惠5%。在旅游淡季1-6,10、11月份,若订票超过 50张,则优惠30%;50张以下,优惠 20%。2022-12-28面向对象 继承类3.3 面向对象的需求分析面向对象的需求分析一、面向对象的概念 对象 消息2022-12-28对象 对象就是一个包含数据以及与这些数据有关的操作的集合。每个实体
13、都是对象。对象数 据操作代码2022-12-28类 是一组具有相同数据结构和相同操作的对象集合。类的定义包括一组数据属性和在数据上的一组合法操作。类定义可视为一个具有类似特性与共同行为的对象摸板,可用来产生对象。可以说,类是对象的抽象,而对象是类的具体实例。2022-12-28继承 是在一个已存有的类的基础上建立一个新的类。并将已存在的类称为-基类或父类;新建立的类称为派生类或子类。继承基 类派 生 类2022-12-28对象继承了类所有属性-从类到对象的继承costdimensionweightlocationcolor类:furniturecostdimensionweightlocati
14、oncolor对象:chair 对象、类、继承 2022-12-28 对象 继承类的所有属性和操作costdimensionweightlocationcolor类:furnitureBuySellWeightmovecostdimensionweightlocationcolor对象:chableBuySellWeightmovecostdimensionweightlocationcolor对象:chairBuySellWeightmove2022-12-28-面向对象类的表示模式 类名:操作:属性:2022-12-28识别对象1、标识潜在对象 找出通过分析过程中的所有名词或名词短语并合并
15、同义词。除去有动作含义的名词,使它们将被描述为对象的操作。标识规则如下:(1)、外部实体(2)、事物(3)、位置(7)、聚焦对象(5)、事件(6)、角色(4)、组织机构2022-12-28二、面向对象的分析方法(OOA)Object Oriented Analysis OOA 的核心思想是利用OO的概念和方法对软件需求建造模型,以使用户需求逐步精确化、一致化、完全化。为此,OOA的方法步骤为:识别对象属性及外部服务识别类及其结构定义对象之间的消息传递2022-12-28潜在对象理由用户传感器控制面板系统(SafeHome System)传感器编号密码电话号码传感器事件警报器角色或外部实体外部实体外部实体聚焦对象概念实体概念实体概念实体事件外部实体例如:2022-12-282、筛选对象 筛选对象规则如下:(1)、具有记忆自身状态的能力(2)、有意义的操作(3)、多个属性(5)、公共操作(6)、必须的需求(4)、公共属性潜在对象理由用户传感器控制面板系统)传感器编号密码电话号码传感器事件警报器角色或外部实体外部实体外部实体聚焦对象概念实体概念实体概念实体事件外部实体