第三章-软件需求分析PPT课件_第1页
第三章-软件需求分析PPT课件_第2页
第三章-软件需求分析PPT课件_第3页
第三章-软件需求分析PPT课件_第4页
第三章-软件需求分析PPT课件_第5页
已阅读5页,还剩161页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本章内容是重点掌握内容 第三章软件需求分析SoftwareRequirementsAnalysis 本章主要内容 3 1需求分析概述3 2结构化分析方法3 3原型化需求分析方法 略 参考第一章 3 4面向对象需求分析方法3 5软件需求规格说明书SRS3 6需求复审 需求分析是做什么的 案例讨论 任务 明确需求 明确该需求 发布各种活动信息 客户小组的任务 作为客户 思考该需求如何具体化项目小组的任务 作为项目小组 思考该需求的问题 以及如何获取需求 案例 开发一个线上学习培训社区网站背景 培训沙龙活动已举办多期 为了拓展沙龙的影响 让更多的人受益 树立良好品牌 将来实现盈利 有必要建立一个线上网站 该网站应有这样的功能 发布各种活动信息 发布业界新闻 能开展线上沙龙活动 包括在线视频沙龙 有社区 可汇聚人气 每位会员有自己的博客 能维护自己的个人页面 支持中文 繁体中文 英文三种语言 支持全文搜索 需求是明确的吗 NO 3 1软件需求分析概述 3 1 1需求分析的步骤3 1 2需求获取的常用方法3 1 3需求说明3 1 4分析建模模型 3 1 1需求分析的步骤 需求分析的步骤 需求获取需求提炼 分析建模需求描述 编写SRS SoftwareRequirementSpecification 需求验证 让用户和开发者共同明确将要开发的是什么样的系统 简单例 学生购书 张秘书开购书证明 学生凭证明到教材科 王会计开购书发票 向李出纳员交纳书款 拿领书单到书库找保管员领书 B 去掉模型中非计算机本质的因素后得到的购书逻辑模型 人工操作 去掉 改进后的学生购买教材的系统模型 3 1 2需求获取的常用方法 收集资料原有系统的数据 帐册 报表 借鉴已有的类似软件产品联合分析小组用户代表 领域专家和系统分析员客户访谈 会议充分准备 寻找共同语言事先准备一些问题交流时循序渐进 逐步逼近每次访谈后及时分析 整理 汇总实地考察 观察用户工作流程快速原型法 3 1 3需求说明 是需求分析应获取的内容 写SRS的依据功能需求分析用户要求实现的全部功能 分析建模DFD DD 性能需求时间特性存储容量及后援存储系统安全性外部接口需求1 用户接口 人机界面 2 硬件接口3 软件接口4 通信接口属性 可靠性 可用性 可维护性 约束 精度 标准 语言 硬件平台 注 性能需求时间特性 响应时间 更新时间 数据转换时间 数据传输时间 存储容量及后援存储系统安全性例1 数据采集的频率为每秒采样100次 例2 应力分析程序必须在一分种内生成任何一个梁的应力报告 返回 注 属性可靠性 机场雷达系统一个月内不能出现2次以上故障 可用性 任何时候 主机或备份机上的银行数据至少有一个可用 可维护性系统出错后可以允许的最大恢复时间系统运行日志是否允许对系统的修改警告出错处理需求 返回 3 1 4分析建模 分析模型包括 信息 或数据 模型功能模型行为模型分为 结构化分析模型面向对象分析模型 3 2结构化分析方法 StructuredAnalysis 思想 自顶向下 逐步细化 Top DownStepwiseRefinement 适于数据处理类型软件的需求分析步骤 自顶向下对系统进行功能分解 画出分层DFD由后向前定义系统的数据编制DD和PSPEC最终写出SRS 3 2 1结构化分析模型 DD数据词典 DataDictionary 系统所涉及各种数据对象的总和 数据流图 DataFlowdiagram 描述系统中数据的流动和变换 DFD图中每个功能的描述写在加工说明中 具有复杂数据结构的数据模型 描述E R中出现的每个数据对象的属性 系统在外部事件的作用下如何动作 各种状态的变迁 DD DataDictionary 数据字典模型的核心 系统所涉及的各种对象的总和 E R图 Entity RelationDiagram 实体关系图描述数据对象的关系DFD图 DataFlowDiagram 数据流图指明系统中数据是如何流动和变换的 描述数据流进行变换的功能 STD图 StatusTransferDiagram状态 变迁图指明系统在外部事件的作用下将会如何动作 表明了系统的各种状态间的变迁 3 2 2结构化分析描述工具 功能模型 DFD和PSPEC行为模型 CFD CSPEC和STD数据模型 DD E R图 1 数据流图DFD 2 数据字典DD 3 加工说明PSPEC 4 CFD和CSPEC 5 E R图 1 数据流图DFD 描述系统逻辑模型 信息在系统中的流动和处理例3 1的DFD图 数据流上的数据名称 单向 只读 双向 读写 备注文件与加工之间用箭头线连接 单向表示只读或只写 双向表示有读有写每一图形符号都必须标上名字加工框还应加上编号同程序流程图的区别程序流程图表示程序的过程设计 怎么干DFD是软件需求分析工具 不表示程序的控制结构 选择 循环 干什么分层从高层到低层分解前后的数据流必须一致 附加 数据流图的基本图元素 附加符号 表示数据流之间是AND关系 同时存在 表示数据流之间是OR关系 表示数据流之间是XOR关系 互斥关系 数据A和B同时输入才能变换成数据C 数据A或B只要有一个输入就能变换成数据C 数据A或B只能输入一个才能变换成数据C 数据A变换产生数据B和C 数据A变换产生数据B或C至少一个 数据A变换产生数据B或C 一 DFD的绘制步骤 找出外部实体 确定系统边界从数据源出发 按系统的逻辑需求 逐步画出加工框 直至数据终点为了控制系统复杂度 DFD分层 自顶向下 逐步求精对DFD进行复审 分层DFD 顶层 0层 父图与子图编号规则顶层无编号0层 1 2 31层 1 11 22 12 小数点数代表层数 1层 分层DFD 顶层流图仅包含一个加工 即整个待开发系统输入流是该系统的输入数据 输出流是系统所输出数据底层流图其加工不需再做分解 处在最底层中间层流图其上层父图的细化 每一加工可能继续细化 形成子图 二 DFD绘制的一般原则 每个加工必须有输入输出流两个加工之间可以有多股数据流每个数据流必须有一个合适的名字DFD描述的是数据流而不是控制流分解中的父子平衡局部文件注意分解速度 最多不要超过7个上层快些 下层慢些当每个加工都已足够简单时 分解就可结束 两个加工之间可以有几股数据流例 日报表和月报表这两个数据流相互间没有任何联系 也不是同时流出的 每个数据流必须有一个合适的名字 除了流向文件或从文件流出的数据流不必命名之外 有文件名足矣 返回 数据流图中描述的是数据流 数据流图中描述的是数据流而不是控制流 例 取下一张卡片 是一个控制流而不是数据流 因为并没有任何数据沿着这个箭头流动 这个箭头应该从图中删去 返回 父子平衡balance 平衡 子图的所有输入 输出 数据流必须是父图中相应加工的输入 输出 例 平衡 父图 子图4 例 特殊平衡 例 不平衡 返回 局部文件 合理运用局部文件进行信息隐蔽 返回 例 子图中的文件ALPHA完全局部于加工4 3 根据 抽象 原则 父图只需画出加工和加工之间的联系 而不必画出各个加工内部的细节 所以父图中不必画文件ALPHA 数据流XXX YYY也不必画出 当文件被用作数据流图中某些加工之间的交界面时 才必须画出来 三 数据流图的改进improvingDFD 应遵循DFD绘制的原则 见前 数据守恒 文件的使用 命名要合适 简化加工间的联系 必要时重新分解DFD a 数据不守恒的情况 现象1 某加工用以产生输出的数据并未输入给这个加工 项目 项目名称 时间运动员名单 队名 姓名 项目项目参加者 项目 姓名 运动员号 原因 某些数据流被遗漏了 a 数据不守恒的情况 现象2 出现没有必要的数据 例 加工 开发票 根据 订货单 和 价目 文件开出 发票 如果这些数据的组成如下 订货单 单位名 货名 货号 数量价目 货名 单价发票 单位名 货名 数量 单价 总计 处理 货号多余 删之 b 局部文件 只有流向文件DELTA的数据流而没有从该文件流出的数据流 即只有写文件的加工而没有读文件的加工 这说明一定是某些加工被遗漏了 C 命名要合适 DFD中各成分的命名要 易理解 例 计算总工作量 好写发票 好存储和打印提货单 可以分解为两个加工处理输入 不具体 太空洞好的命名 动词 宾语 d 重新分解DFD 加工2与其他加工的联系相当复杂 输入输出数据流达九个之多 很难独立理解 检查结果 分解不合适 措施 考虑重新分解 重新分解的方法 把所有子图连接成一张图重新切分图 使各部分之间联系最少重新建立父图 重新建立各张子图为所有加工重新命名和编号 重新分解后的DFD 6 2 数据字典DD 与DFD配合 给出DFD中所有数据的定义和属性DD的用途分析阶段的交流工具数据库设计的基础内容数据项 一个数据元素 数据流 包含多个数据项 数据文件或数据库定义数据的方法 自顶向下分解数据 定义中使用的符号 存折 户名 帐号 性质 印密 存折由户名 帐号 性质和可选印密组成户名 2 字母 20 户名为2 24个字母帐号 00000001 99999999 帐号位于1 99999999的区间性质 普通用户 工资用户 帐户性质为普通用户 工资用户中一种印密 0 默认无印密 数据字典DD例 例3 1的DD 发票 各班学生用书表 发票 学号 姓名 书号 单价 数量 总价 书费合计 返回 数据字典 各班学生用书表 返回 数据字典 年级 返回 数据字典 数据流词条描述 数据字典 数据元素词条描述 数据字典 数据文件词条描述 数据字典 源点及汇 终 点词条描述 数据字典 加工逻辑词条描述 3 加工说明PSPEC 加工说明 说明DFD中的每个加工 加工逻辑描述工具 结构化语言 判定表 判定树 例3 1 加工1的加工说明 数据流图说明 加工 加工逻辑说明结构化语言判定表判定树 1 结构化语言 是一种介于自然语言和形式化语言之间的语言语言的正文用基本控制结构进行分割 加工中的操作用自然语言短语来表示其基本控制结构有三种 简单陈述句结构 避免复合语句 重复结构 while do或repeat until结构判定结构 if then else或case of结构 把学生学号和姓名写到发票上 按购书单上的学生年级和系专业与班号 检索 各班学生用书表 文件 获得该生当年的书单DOFOR购书单上的每一个书号 IF书单中无此书号THEN把书号写到出错通知上 ELSE按书号检索 教材存量表 获得书的单价和库存量IF库存量 购书单 数量THEN把书号写到出错通知上ELSE将书号 单价 数量 总价等写入发票 更新库存 并写回 教材总量表 累计书费合计 ENDIFENDIF把书费合计写到发票上 结构化语言 审查并开发票 商店业务处理系统中 检查发货单 if发货单金额超过 500thenif欠款超过了60天then在偿还欠款前不予批准else 欠款未超期 发批准书 发货单else 发货单金额未超过 500 if欠款超过60天then发批准书 发货单及赊欠报告else 欠款未超期 发批准书 发货单 2 加工逻辑说明 判定表 判定表描述具有复杂的组合条件的处理 旅游时间7 9月 12月1 6月 10月 11月订票量5050折扣量5 15 20 30 一张判定表由4部分组成 左上部列出所有条件 左下部是所有可能的动作 右上部是表示各种条件组合的一个矩阵 右下部是每种条件组合对应的动作 商店业务处理系统中 检查发货单 3 加工逻辑说明 判定树 以 检查发货单 为例 课堂练习 某航空公司规定 乘客可以免费托运重量不超过30KG的行李 当行李重量超过30kg时 对头等舱的国内乘客超重部分每公斤收费4元 对其它舱的国内乘客超重部分每公斤收费6元 对国外乘客超重部分每公斤收费比国内乘客多一倍 对残疾乘客超重部分每公斤收费比正常乘客少一半 用判定表和判定树表示计算行李费的算法 课堂练习 判定表 加工逻辑说明 注意 若加工逻辑中同时存在顺序 选择和循环 应采用结构化语言结合判定树 表 不宜单独使用判定树 表 4 CFD和CSPEC 引子 例显像管生产监测系统当一个显像管在一个流水线上经过光电管时 光电管就会根据其形状判断是哪种规格的显像管 由一个PLC计数器进行累计 累计数据每30秒钟传送给工控机一次 工控机每隔半小时取出一个累计数据保存到数据库 同时将半小时数据供大屏幕显示为了使管理人员及时了解各班生产数据 通过班数据处理将半小时数据汇总成一个班的8小时数据 光电管采集 计数传送 工控机处理 实时数据显示 班数据处理 只有数据流事件发生的条件 事件或者控制信息发生后激活的那些加工 对于由事件驱动而不是数据驱动 产生的是控制信息而不单是数据流必须依赖于时间的应用 只建立DFD是不够的 还需要使用控制流图建模 CFD CSPEC ControlFlowDiagram 适合实时系统的分析类似DFD和PSPEC 和它们配合使用DFD表示数据流和对数据的加工CFD表示控制流和控制加工 系统行为模型 CFD和DFD的关系 数据条件 加工激活信号 控制输出 输入数据 加工模型 控制模型 CSPEC 输出数据 控制输入 PSPEC DFD CFD CFD的符号表示 控制信息或事件 引用控制说明CSPEC DFD和CFD例子 STD 是CSPEC常用的状态描述工具描述软件状态变迁符号表示矩形 系统状态箭头 状态转变方向规则表达式 事件 触发行为 STD例子 采集 PLC计数 传送 工控处理 实时翻屏 5 实体 联系图 E R图 用于对复杂数据分析和建模概念性数据模型按照用户的观点对数据建立的模型 数据模型中包含3种相互关联的信息 数据对象 实体 数据对象的属性数据对象彼此间相互连接的关系 一对一联系 1 1 一对多联系 1 N 多对多联系 M N 实体 属性 实体 联系图 E R图 例 矩形框 实体菱形框 关系椭圆形或圆角矩形 属性 6 其它图形工具 1层次方框图层次方框图用树形结构的一系列多层次的矩形框来描述数据的层次结构 树形结构的顶层是一个单独的矩形框 它代表着完整的数据结构 下面的各层矩形代表这个数据的子集 最低层的各个框代表组成这个数据的实际数据元素 层次方框图例 例如 描绘一家计算机公司全部产品的数据结构 产品 硬件 软件 服务 cpu 存储器 外设 软件服务 培训 硬件服务 系统软件 应用软件 随着对数据的精细化 层次方框图对数据结构的描述也越来越详细 这种模式非常适合需求分析阶段的需要 系统分析员从对顶层的信息分类开始 沿图中每条路径反复细化 直到确定了数据结构的全部细节为止 2Warnier图 法国Warnier提出 表示信息层次结构的一种图形工具 树形结构表示 但描绘手段更丰富 例 3IPO图 IPO图 输入 处理 输出图的简称美国IBM公司发展完善起来的一种图形工具例 更新主文件 IPO图 改进的IPO图的形式 结构化分析总结 要点 采用自顶向下功能分解的方法强调逻辑功能 而不是实现功能的具体方法使用数据流图进行系统分析并表达分析的结果 需求分析实例 实例1 教材购销系统实例2 家庭保安系统 实例1教材购销系统 1 顶层DFD 这个数据流图只是一个高层的系统逻辑模型 它反映了目标系统要实现的功能首先确定系统的输入和输出顶层数据流图 反映最主要业务处理流程 学生 教材购销系统 书库保管员 第0层DFD 1销售 2采购 书库保管员 学生 然后从输入端开始 根据业务工作流程 画出数据流流经的各加工框 逐步画到输出端 得到第一层数据流图经过分析 业务处理的主要功能应当有销售 采购主要数据流输入的源点和输出终点是学生和书库保管员 第一层DFD 1 销售子系统 第一层DFD 2 采购子系统 2 确定数据定义和加工策略 从数据的终点沿DFD向源点逆向回溯来定义数据和加工为DFD的每个数据逐一写定义为DFD的每个加工逐一写加工说明最后都汇编进DD和PSPEC 领书单 学号 姓名 书号 数量 用户调查得知发票 学号 姓名 书号 单价 数量 总价 书费总计售书登记表 领书单有效购书单 学号 姓名 书号 数量 教材存量表 书号 单价 数量 暂缺书单 学号 姓名 书号 数量 补售书单缺书登记表 学号 姓名 书号 数量 3 DFD复审 父子平衡 父图和子图的输入数据和输出数据应该保持一致例局部文件隐蔽与文件是否具有读写加工分解的速度不要太快每次加工分解一次最多 7应遵守加工编号规则顶层无图号第0层 图0 1 2 3 第1层 图1 1 1 1 2 2 1 2 2 数据守恒DFD各个加工之间的数据流应尽可能少 否则重新分解DFD In 购书单 进书通知Out 发票 领书单 实例2 家庭保安系统 背景家庭保安市场正以每年40 的速度增长 我们希望建立一种基于微处理器的家庭保安系统 它能够识别异常事件并采取相应的防护措施 这些异常事件应包括 非法进入 火灾 水淹 等等 一旦异常情形被相应的传感器探测出来 系统应自动用电话向监控中心报警 此外 系统应允许户主对其行为实施程序式控制 家庭保安系统的需求 一 开机后 显示当前工作状态 接收并处理用户指令二 配置操作 软件允许用户在安装时进行系统配置 并通过控制面板与用户进行信息交互 实施对传感器的监控1 指定每一传感器的种类和编号 2 设置开 关机密码 3 指定报警电话号码 4 指定报警延迟和电话重拨延迟时间 单位为秒 三 异常处理 当软件系统接收到传感器发出的数据后 判别是否出现异常事件 有异常 则在指定的延迟时间内拨报警电话号码 拨号操作将按照重拨延迟反复进行 直至电话接通 然后软件系统负责报告时间 地点和异常事件的性质 1 家庭保安系统的顶级DFD 2 家庭保安系统的第1级DFD 3 传感器监测子系统第2级DFD 3 4面向对象需求分析 面向对象分析简介面向对象分析建模面向对象的需求分析 用例图静态结构建模 类 对象图动态结构建模 对象行为图功能模型 活动图 93 面向对象分析 第一节符合认知规律的软件开发过程 3 4 1面向对象分析简介 94 面向对象分析 面向对象分析的目的 3 4 1面向对象分析简介 95 面向对象分析 面向对象分析的任务 3 4 1面向对象分析简介 96 动态行为模型 用户界面需求 需求分析 识别对象候选类 标示属性和行为 确定类间关系 动态行为模型 用户界面需求 需求分析 识别对象候选类 标示属性和行为 确定类间关系 面向对象分析 需求分析 3 4 1面向对象分析简介 软件开发最初阶段 对项目具体需求并不完全清楚 用户提供的系统需求说明往往含糊不清 需多方共同协作 帮助开发人员尽快理解业务领域相关知识 明确用户对未来系统的需求 定义系统职责范围和边界 探讨问题的初步解决方案 进行可行性研究和制订资源 进度预算 为后期开发工作奠定良好基础 97 动态行为模型 用户界面需求 识别对象候选类 标示属性和行为 确定类间关系 动态行为模型 用户界面需求 识别对象候选类 标示属性和行为 确定类间关系 需求分析 面向对象分析 需求分析 3 4 1面向对象分析简介 98 动态行为模型 用户界面需求 识别对象候选类 标示属性和行为 确定类间关系 动态行为模型 用户界面需求 识别对象候选类 标示属性和行为 确定类间关系 需求分析 面向对象分析 识别对象候选类 3 4 1面向对象分析简介 在问题陈述和用例模型基础上来进行对象提取 关注具有以下特征的一些事物 行为和动作的主体相互之间密切联系的一组数据及其操作找到候选类 在深入认知的过程中去粗取精 去伪存真 最终得到所有类 99 动态行为模型 用户界面需求 标示属性和行为 确定类间关系 动态行为模型 用户界面需求 标识属性和行为 确定类间关系 需求分析 识别对象候选类 面向对象分析 标识属性和行为 3 4 1面向对象分析简介 软件的功能被分解为一系列责任分配给各个类 每个类都有一定的职责 体现在类方法上及状态信息上 明确类职责的过程就是寻找类的属性和方法的过程 属性可以从问题陈述和用例描述中抽取 或通过对类性质的理解加以辨认 行为可从对系统的处理叙述中获得 即可将动词标识的动作作为候选行为 确定类职责应该遵循下述的4条原则 均匀分配所有职责到每个类 避免出现某些类的职责过多 而另一些类的职责过少的现象 尽可能地抽象描述类的每个职责 一般性的职责应该放置在较高层次的类中描述 一个客观事物的信息应该放置在一个类中 属性记录的信息与相关的行为应该位于同一个类中 这是面向对象封装性特征的具体体现 在相关类之间共享职责 100 动态行为模型 用户界面需求 确定类间关系 动态行为模型 用户界面需求 确定类间关系 需求分析 识别对象候选类 标示属性和行为 面向对象分析 确定类间关系 3 4 1面向对象分析简介 类间关系给出软件模块间关系 亦即软件结构 与传统的结构相比 这种结构描述方式更适合较高层次的结构 较低层次的结构仍可以使用结构化程序设计的风格 如函数内部 识别类间关系是认知过程中认知视野扩大的过程 为确定一个对象的行为和属性 对于涉及该属性和行为的所有因素都要进行认知 包括其他对象对这些属性和行为的影响 因此就必然会研究和认知这些类之间的关系 这些关系主要分为 继承 聚集 关联三类 101 动态行为模型 用户界面需求 确定类间关系 动态行为模型 用户界面需求 需求分析 识别对象候选类 标示属性和行为 面向对象分析 动态行为模型 3 4 1面向对象分析简介 动态行为功能是需求方所关注的核心 主要包括两个部分 单个对象在各种可能消息作用下的可能变化及对外界的作用与外界以及各种对象之间的相互作用 各种消息作用下单个对象的变化 状态转换图 对象之间的相互作用 序列图 102 动态行为模型 用户界面需求 确定类间关系 用户界面需求 需求分析 识别对象候选类 标示属性和行为 面向对象分析 用户界面需求 3 4 1面向对象分析简介 现代软件一般都有一个用户图形界面 这个界面中的各个菜单和菜单项 工具条 界面子窗口等都是用户对软件的具体要求和系统功能的具体体现 用户界面原型是需求模型的重要组成部分 通过用户界面原型 GUI 来和用户进行沟通是最有效的方式 103 动态行为模型 用户界面需求 确定类间关系 用户界面需求 需求分析 识别对象候选类 标示属性和行为 面向对象分析 图形用户界面 3 4 1面向对象分析简介 现代软件一般都有一个用户图形界面 这个界面中的各个菜单和菜单项 工具条 界面子窗口等都是用户对软件的具体要求和系统功能的具体体现 用户界面原型是需求模型的重要组成部分 通过用户界面原型 GUI 来和用户进行沟通是最有效的方式 软件需求的描述 图简易的面向对象软件开发过程 3 4 1面向对象分析简介 3 4 2面向对象分析建模 面向对象的需求分析 用例图静态结构建模 类 对象图动态结构建模 对象行为图状态图 顺序图功能模型 活动图 106 用例建模 第二节用例建模 面向对象的需求分析 用例图 用例建模 使用用例的方法来描述系统需求的过程 使用用例图给出系统的总体功能需求使用用例描述说明每个用例的业务规则 用户系统交换序列最终成果是完整准确的系统用例图和详细的用例描述文档 用例图 参与者 Actor 用例 UseCase 关系 参与者之间关系 泛化关系 用例与参与者之间关系 关联关系 用例之间关系 包含 扩展 泛化关系 107 确定系统边界 即定义系统的范围 哪些功能是系统应该实现的 哪些不是系统应该做的 明确系统目标范围 例如 对于银联网络的自动取款机网络系统来说 其系统边界范围就是和自动取款机相关的功能 如用户通过自动取款机取款 查询帐户 转账等 以及银联网络中各个银行之间的帐务结算 而对于各个银行内部的各营业部之间的计算机网络 本系统则不涉及 不属于本系统所要考虑的范畴 在用例图中 UML的系统边界用一个矩形框来表示 定义系统边界 定义系统边界 书写用例描述文档 确定参与者 识别用例 确定用例间关系 建立完整用例图 用例建模 定义系统边界 书写用例描述文档 确定参与者 识别用例 确定用例间关系 建立完整用例图 面向对象的需求分析 用例图 108 第三类是一些可运行的进程 例如时间系统 有些系统中 需要在特定的时间周期性地触发系统执行某功能 这时 时间系统就成了系统的参与者 例如 在银行的金融系统中 客户的资料 交易记录等信息至关重要 所以要定期对客户的这些资料信息进行备份 到了设定的时间 系统自动执行资料备份功能 因此 时间系统也是系统的一个参与者 第二类是其他的软 硬件系统 例如 银行金融系统可能与一些商场售货系统建立联系 进行银行卡刷卡消费 显然商场售货系统的刷卡系统就是银行金融系统的一个参与者 另外 参与者也可能是一些硬件设备 例如银行的安全监控系统在下班之后 如果有人进入金库 则进行红外检测而且进行报警 所以对于安全监控系统来说 红外探测设备和报警的硬件设备就是它的参与者 第一类为系统用户 是真实的人 这是最常见的参与者 几乎每个系统都要有人来使用 对于此类参与者 主要根据用户在使用系统时扮演的角色命名 例如 银行的营业部的营业员 通常情况下是银行工作人员 但是他自己要存取款的时候 其身份就变成了客户 所以 在命名参与者时按照业务命名比按照人的职位来命名更稳定 对于一个银行的网络系统来说 其参与者我们就可以看作有营业员 还有客户 确定参与者 确定参与者 定义系统边界 定义系统边界 书写用例描述文档 识别用例 确定用例间关系 建立完整用例图 用例建模 确定参与者 书写用例描述文档 识别用例 确定用例间关系 建立完整用例图 参与者 存在于被定义系统外部 透过系统边界与系统交互的客观实体 如系统的使用者或外部设备 常见三类参与者 面向对象的需求分析 用例图 109 确定参与者 定义系统边界 定义系统边界 书写用例描述文档 识别用例 确定用例间关系 建立完整用例图 用例建模 确定参与者 书写用例描述文档 识别用例 确定用例间关系 建立完整用例图 获取用例之前 首先确定系统所有参与者非常关键 需要软件需求分析人员具有一定的开发经验 识别参与者的一些要点如下 谁使用系统主要功能 谁改变系统数据 谁从系统获取信息 谁需要系统的支持以完成日常工作任务 谁需要维护 管理并保持系统正常运行 需要应付 处理 哪些硬设备 需要和哪些外部系统交互 谁 或什么 对系统运行结果 值 感兴趣 时间 气温等内部外部条件是否会触发系统某些功能执行 参与者代表系统边界之外的真实事物 不是系统的组成部分参与者透过系统边界与系统交互 其确定代表系统边界的确定参与者与系统的交互是要有意义的参与者可为任何事物 包括人 其它软硬件系统和进程等另外 分析人员可以通过回答下面的问题来寻找系统的参与者 面向对象的需求分析 用例图 110 确定参与者 定义系统边界 定义系统边界 书写用例描述文档 识别用例 确定用例间关系 建立完整用例图 用例建模 确定参与者 书写用例描述文档 识别用例 确定用例间关系 建立完整用例图 举例 对于大家都非常熟悉的自动取款机 ATM 系统来说 它的主要参与者有哪些呢 首先银行卡用户要通过ATM取款 查询 转账其次银行营业部金融系统要和ATM系统交互使ATM能够获得有关帐户信息并进行账目数据操作再次银行工作人员需对ATM系统进行维护最后ATM系统需周期性备份 时间系统是一类参与者 面向对象的需求分析 用例图 111 确定参与者 定义系统边界 定义系统边界 书写用例描述文档 识别用例 确定用例间关系 建立完整用例图 用例建模 确定参与者 书写用例描述文档 识别用例 确定用例间关系 建立完整用例图 参与者之间关系 不同类型参与者的行为往往具有共性和特殊性 例如网上电子商店系统的 电话用户 网络用户 普通用户 间具有相同行为 如都采用银行卡支付等特殊化参与者 电话用户 网络用户 具有一般化参与者 普通用户 的所有行为 可认为这些特殊参与者继承了一般化参与者的所有行为 即一般化参与者可用的系统用例 特殊化参与者都默认会使用 特殊化参与者只需要扩充自己特殊用例功能 这点和类之间的继承关系类似 面向对象的需求分析 用例图 112 识别用例 识别用例 用例名须唯一 以别于其他用例 便于和用户自己交流 用例命名应站在参与者角度进行 常以动词命名 例如参与者银行卡用户可通过ATM系统取款 则可命名取款用例 绘制用例图之前 须获取参与者信息和用例信息 它们描述了 谁需要系统做什么 的问题 注意如何确定参与者 用例的识别过程和方法如下 确定参与者 确定参与者 定义系统边界 定义系统边界 书写用例描述文档 确定用例间关系 建立完整用例图 用例建模 识别用例 书写用例描述文档 确定用例间关系 建立完整用例图 用例 UseCase 用于表示系统所提供的服务 定义系统被参与者使用的过程 描述该过程中参与者与系统间发生的交互 在不涉及系统内部实现细节的前提下 给出完整的用户需求说明 面向对象的需求分析 用例图 113 用例建模 识别用例 识别用例 确定参与者 确定参与者 定义系统边界 定义系统边界 书写用例描述文档 确定用例间关系 建立完整用例图 书写用例描述文档 确定用例间关系 建立完整用例图 面向对象的需求分析 用例图 114 识别用例 确定参与者 确定参与者 定义系统边界 定义系统边界 书写用例描述文档 确定用例间关系 建立完整用例图 用例建模 识别用例 书写用例描述文档 确定用例间关系 建立完整用例图 识别用例最佳方法是从分析参与者开始 将每类参与者代表和需求分析人员召集到一块进行讨论 每个参与者考虑自己是如何使用系统的 提出自己的需求 然后大家再一块讨论确定 使用这种头脑风暴的策略 在讨论的过程中还有可能会发现新的参与者 这对完善整个系统的需求建模是有很大帮助的 用例建模的过程是一个不断迭代和逐步完善的过程 系统分析人员首先确定系统的用例图 从整体上对系统的需求进行定义 然后再添加用例的详细描述信息 用于对参与者使用系统用例和系统的具体交互序列的定义 面向对象的需求分析 用例图 115 识别用例 确定参与者 确定参与者 定义系统边界 定义系统边界 书写用例描述文档 确定用例间关系 建立完整用例图 用例建模 识别用例 书写用例描述文档 确定用例间关系 建立完整用例图 识别用例最佳方法是从分析参与者开始 将每类参与者代表和需求分析人员召集到一块进行讨论 每个参与者考虑自己是如何使用系统的 提出自己的需求 然后大家再一块讨论确定 使用这种头脑风暴的策略 在讨论的过程中还有可能会发现新的参与者 这对完善整个系统的需求建模是有很大帮助的 用例建模的过程是一个不断迭代和逐步完善的过程 系统分析人员首先确定系统的用例图 从整体上对系统的需求进行定义 然后再添加用例的详细描述信息 用于对参与者使用系统用例和系统的具体交互序列的定义 面向对象的需求分析 用例图 116 识别用例 确定参与者 确定参与者 定义系统边界 定义系统边界 书写用例描述文档 确定用例间关系 建立完整用例图 用例建模 例 ATM系统用例图 书写用例描述文档 确定用例间关系 建立完整用例图 识别用例的一些要点如下 用例是可观测 止于系统边界 用例是目标导向的 是有执行结果的 用例是由系统执行的 结果值由系统生成 用例以参与者的角度和业务语言描述 而不是计算机专业术语 为了帮助大家能够更好的提取用例 我们可以通过回答下面的几个问题来考虑 每一类参与者希望系统能够提供什么功能 是否存在触发系统的外部事件 当系统改变状态的时候 是否需要通知参与者 系统是否需要定期备份或发送信息 如果是 由哪个参与者触发 面向对象的需求分析 用例图 117 识别用例 确定参与者 确定参与者 定义系统边界 定义系统边界 书写用例描述文档 确定用例间关系 建立完整用例图 用例建模 过渡页 书写用例描述文档 确定用例间关系 建立完整用例图 识别用例的一些要点如下 用例是可观测 止于系统边界 用例是目标导向的 是有执行结果的 用例是由系统执行的 结果值由系统生成 用例以参与者的角度和业务语言描述 而不是计算机专业术语 为了帮助大家能够更好的提取用例 我们可以通过回答下面的几个问题来考虑 每一类参与者希望系统能够提供什么功能 是否存在触发系统的外部事件 当系统改变状态的时候 是否需要通知参与者 系统是否需要定期备份或发送信息 如果是 由哪个参与者触发 面向对象的需求分析 用例图 118 确定用例间关系 确定用例间关系 识别用例 识别用例 确定参与者 确定参与者 定义系统边界 定义系统边界 书写用例描述文档 建立完整用例图 用例建模 确定用例间关系包含 书写用例描述文档 建立完整用例图 用例间及其与参与者间存在着相互联系 将不同部分连接为一体 面向对象的需求分析 用例图 119 确定用例间关系 识别用例 识别用例 确定参与者 确定参与者 定义系统边界 定义系统边界 书写用例描述文档 建立完整用例图 用例建模 包含 书写用例描述文档 建立完整用例图 用例间及其与参与者间存在着相互联系 将不同部分连接为一体 面向对象的需求分析 用例图 120 识别用例 识别用例 确定参与者 确定参与者 定义系统边界 定义系统边界 书写用例描述文档 建立完整用例图 用例建模 扩展 书写用例描述文档 建立完整用例图 用例间及其与参与者间存在着相互联系 将不同部分连接为一体 确定用例间关系 面向对象的需求分析 用例图 121 识别用例 识别用例 确定参与者 确定参与者 定义系统边界 定义系统边界 书写用例描述文档 建立完整用例图 用例建模 泛化 书写用例描述文档 建立完整用例图 用例间及其与参与者间存在着相互联系 将不同部分连接为一体 确定用例间关系 面向对象的需求分析 用例图 122 识别用例 识别用例 确定参与者 确定参与者 定义系统边界 定义系统边界 书写用例描述文档 建立完整用例图 用例建模 用例间关系比较 书写用例描述文档 建立完整用例图 用例间及其与参与者间存在着相互联系 将不同部分连接为一体 确定用例间关系 面向对象的需求分析 用例图 123 识别用例 识别用例 确定参与者 确定参与者 定义系统边界 定义系统边界 书写用例描述文档 建立完整用例图 用例建模 过渡页 书写用例描述文档 建立完整用例图 用例间及其与参与者间存在着相互联系 将不同部分连接为一体 确定用例间关系 面向对象的需求分析 用例图 124 建立完整用例图 建立完整用例图 确定用例间关系 确定用例间关系 识别用例 识别用例 确定参与者 确定参与者 定义系统边界 定义系统边界 书写用例描述文档 用例建模 建立完整用例图 书写用例描述文档 面向对象的需求分析 用例图 125 建立完整用例图 确定用例间关系 确定用例间关系 识别用例 识别用例 确定参与者 确定参与者 定义系统边界 定义系统边界 书写用例描述文档 用例建模 过渡页 书写用例描述文档 面向对象的需求分析 用例图 126 书写用例描述文档 书写用例描述文档 建立完整用例图 建立完整用例图 确定用例间关系 确定用例间关系 识别用例 识别用例 确定参与者 确定参与者 定义系统边界 定义系统边界 用例建模 书写用例描述文档 回目录 面向对象的需求分析 用例图 127 完善模型 添加属性和操作 静态结构建模 第一节静态结构建模 面向对象分析方法 静态结构建模 确定类间关系 提取类 静态结构建模的过程就是指通过分析用例模型和问题域 将要开发的现实世界中的系统通过静态模型来表达 静态模型是系统中的对象类 类的属性 类的操作以及类之间的关系的静态结构 静态模型由类图表达 总之 静态建模的关键是识别中问题域中的对象类 确定类的属性和操作 并分析确定类相互之间的关系的 最终建立问题域的简洁 精确 可理解的静态结构模型 静态模型是面向对象系统分析的最基本 最核心 最重要的模型 128 面向对象分析方法 静态结构建模 对象和类 封装 类图 对象图 129 类间关系 2 类间关系 客观事物内部各对象间往往具有某种关系 这些关系将不同对象组织在一起 形成客观事物的整体 由于关系的存在 这些被 粘结 的对象间形成某种规律性的 形状 结构 对象是某个类的实例 其行为和属性由所属类描述因此对象间关系实际上将被反映为类间关系 因此类间关系描述了客观事物内部结构 当类通过编码实现后 类间关系亦成为不同软件模块之间的关系 亦即软件结构 因此面向对象程序的软件结构在某种程度上对应于客观事物的内部结构 面向对象分析方法 静态结构建模 130 也称为一般 特殊关系 普遍存在于客观世界 比如 动物类 和 人类 人类 的任何一个实例 人 都是 动物类 的实例之一 因此相对而言 动物类具有一般性 人类具有特殊性 这种一般性和特殊性是相对有关的两个类而言两个类间的关系是一种一般性和特殊性关系 定义如类A具有类B的全部属性和操作 并且具有一些自己独特的属性和操作 那么A称作B的特殊类 B称作A的一般类 一般类与特殊类之间的关系称为泛化 两个类及其相互间关系形成了一般 特殊结构 类间关系 泛化 2 1泛化 2 2聚合 2 3关联 2 1泛化 2 2聚合 2 3关联 具有一般类的所有特征 面向对象分析方法 静态结构建模 131 类之间通过带有中空三角形的线段连接 标识类之间存在泛化关系 带有空心三角形的一端 用于标识泛化关系中的一般类 另一端为特殊类 类间关系 中间页 2 1泛化 2 2聚合 2 3关联 2 2聚合 2 3关联 面向对象分析方法 静态结构建模 132 类间关系 聚合 2 1泛化 2 2聚合 2 3关联 2 2聚合 2 3关联 定义对象作为组成部分存在于另一对象中 则称作部分对象 由其所构成的对象称作整体对象 两种对象所属类间关系称作整体 部分关系 人们的习惯是将车这个总体与它的各个组成部分同时罗列出来 这样才使人们感到认知的完整性 这就是一种对象间的整体 部分关系的具体体现我们把类似汽车这样的对象称为整体对象 相对地把类似于车身 轮胎 发动机这样的对象称为部分对象 被这种关系联系到一起的多个类之间形成一种有别于泛化关系的新关系 我们称之为聚合或整体 部分关系 来了1个车身 4个车轮 一个方向盘 呃 还有一个发动机 面向对象分析方法 静态结构建模 133 类间关系 中间页 2 1泛化 2 2聚合 2 3关联 2 3关联 整体和部分这两种名称局限于某个具体的整体 部分结构中 两者是相互对应并在一定程度程度上相互依存的 共享聚集 在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成组合聚集 部分类完全隶属于整体类 部分与整体共存 整体不存在了部分也会随之消失 或失去存在价值了 面向对象分析方法 静态结构建模 134 类间关系 中间页 2 1泛化 2 2聚合 2 3关联 2 3关联 面向对象分析方法 静态结构建模 135 类间关系 中间页 2 1泛化 2 2聚合 2 3关联 2 3关联 面向对象分析方法 静态结构建模 136 类间关系 关联 2 1泛化 2 2聚合 2 3关联 2 3关联 关联是类间最广泛的关系 只要两个类的对象实例之间具有某种 属性上的 依赖关系 称为对象链接 则对象所述类间的关系即为关联 甚至有些书中将聚合也作为关联的一种特例 尤其对共享聚合更是如此 面向对象分析方法 静态结构建模 137 完善模型 添加属性和操作 3 静态结构建模 提取类 确定类间关系 提取类 在问题描述和用例模型中 提取所有名词作为候选类 然后再进一步分析 排除虚假的类 最后确定系统中应该包含的对象类 提取名词 排除虚假的类 问题描述用例模型 试探性的对象类 对象类 面向对象分析方法 静态结构建模 138 完善模型 添加属性和操作 3 静态结构建模 例 确定类间关系 提取类 自动取款机 ATM 系统需求描述 ATM 分行计算机 分行计算机 中央计算机 帐户 帐户 帐户 帐户 ATM ATM 柜员机 面向对象分析方法 静态结构建模 139 完善模型 添加属性和操作 3 静态结构建模 例 确定类间关系 提取类 面向对象分析方法 静态结构建模 140 完善模型 添加属性和操作 3 静态结构建模 例 确定类间关系 提取类 面向对象分析方法 静态结构建模 141 完善模型 添加属性和操作 3 静态结构建模 ATM初始类图 确定类间关系 面向对象分析方法 静态结构建模 142 完善模型 添加属性和操作 3 静态结构建模 添加属性 面向对象分析方法 静态结构建模 143 完善模型 添加属性和操作 3 静态结构建模 添加操作 面向对象分析方法 静态结构建模 144 完善模型 3 静态结构建模 完善模型 面向对象分析方法 静态结构建模 145 动态模型 4 动态模型 复杂对象由相对简单对象组成 复杂对象的动态特征由其内部各对象的动态特征及这些对象之间的相互作用构成 由于相互作用被抽象为消息传递的过程 因此描述一个复杂对象或系统的动态行为特征就包含两个方面的内容 其一各对象对所收到的各种可能消息的反映 其二复杂对象或系统提供一项服务过程中其内部消息传递过程 顺序图 状态图 回目录 面向对象分析方法 动态结构建模 146 初始状态以实心圆表示状态转移的起点 即初始状态 一张状态图只能有一个初始状态 而且该状态只能作为转移的源而不能作为转移的目标 终止状态以内部带实心圆点圆表示 终止状态作为状态图的终止节点 只能使转移的目标 而不可能是转移的源 一张状态图可以有若干个终止状态 也可以没有终止状态 对应无穷循环 判断节点以空心小菱形表示 转移在此处根据监护条件的取值选择具体的分支从而进入不同的新状态 转移节点转移是状态图的边 为有向线段或有向弧 其上标注有引起转移发生的事件 执行该转移所应满足的监护条件 以及引起状态变化所需要执行的计算 动作注意 这里的活动仅仅是为了改变属性值进而进入一个新状态 状态以圆角矩形表示 其中标记有状态名 可将状态节点分为上下两个部分 中间用实线隔开 上半部填写状态名称 下半部填写该状态中对象所做活动 可将活动分为入口动作 标记为entry XXX 出口动作 标记为exit XXX 动作 标记为do XXX 三种类型 也可以将状态节点用虚线隔开若干个部分 每个部分里画上另一张状态图 子状态图 从而构成复杂和更细致的状态转换图 状态图 状态转换图 单个对象状态的变化以及在不同状态上所作的具体操作通常使用状态装换图来表示 状态装换图是一张有向图 常用的状态图节点有四种类型 面向对象分析方法 动态结构建模 147 状态图 中间页 自动取款机开机后如长时间没客户使用 则取款机屏幕进入空闲状态并播放屏幕保护程序或广告 一旦用户点击了触摸屏或按压了键盘 则自动取款机进入工作状态 另外 如果工作中用户长时间

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论