




已阅读5页,还剩163页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第二部分软件需求分析与建模 窦万峰计算机科学与技术学院南京师范大学 2 回答问题 什么是软件需求 软件需求分析有哪些过程 如何启动分析过程 什么是面向数据的建模 什么是面向数据流的建模 什么是非形式化建模 半形式化建模和形式化建模 什么是统一建模语言 UML 什么是用例建模 什么是领域模型 3 第5章软件需求分析过程 什么是软件需求 软件需求分析有哪些过程 如何启动分析过程 需求规格文档有哪些内容 需求分析有哪些技术 4 软件需求 功能需求 描述系统预期提供的功能或服务对系统应提供的服务如何对输入做出反应系统在特定条件下的行为非功能需求 指那些不直接与系统具体功能相关的一类需求产品需求机构需求外部需求领域需求 源于系统的应用领域需求 5 功能需求 软件系统的功能需求描述可以有许多方式 文字描述图表表示功能需求可以以不同的详细程度反复编写和细化功能需求描述应该完整而且一致和准确完整性意味着用户所需的所有的服务应该全部给出描述一致性意味着需求描述不能前后矛盾准确性是指需求不能出现模糊和二义性的地方 6 功能需求描述 出卷系统 教师能够根据自己的要求手动或自动出一份试卷 教师可以修改试卷中不合适的题目 并能自动生成各种样式的试卷 教师可以对试题中的题目进行更新 7 非功能需求 非功能需求主要与系统的总体特征相关 是一些限制性要求 是对实际使用环境所做的要求性能要求可靠性要求安全性要求可用性要求移植性要求非功能需求关心的是系统整体特征而不是个别的系统的特征 比功能需求对系统更关键 非功能需求却很难检验非功能需求与功能需求有时会发生冲突 它们之间存在着相互作用关系 8 非功能需求举例 一个POS系统所需的存储因为成本原因有所限制 而商品的描述和价目表的信息量很大 如果采用远程服务器 提供商品描述和价目表信息 那必然需要网络通信 而这需要网络技术 当POS机数量多时必然引起服务器处理瓶颈问题 9 领域需求 领域需求反映应用领域的基本问题 直接影响到系统的可用性 例如 图书馆系统的功能需求基于标准用户界面将一些文档输出到本地打印机或网络打印机上 但因为版权限制 这些文档打印之后应立即删除 10 领域需求示例 短信系统 如果短信经过终端无线模块发送之前必须经过短消息协议标准编码才能发送出去 要对短信编码 必须要对由ESTI制订的SMS规范有所了解 技术实现 含编码方式 GSM03 38 GSM03 40SMS的DTE DCE接口标准 AT命令集 GSM07 05三种方式来发送和接收SMS信息 BlockModeTextMode 纯文本方式 可使用不同的字符集 也可用于发送中文短消息 主要用于欧美地区 PDUMode PDUMode被所有手机支持 可以使用任何字符集 这也是手机默认的编码方式 11 PDU串 选讲 PDU串表面上是一串ASCII码 由 0 9 A F 这些数字和字母组成 它们是8位字节的十六进制数 或者BCD码十进制数 PDU串不仅包含可显示的消息本身 还包含很多其它信息 如SMS服务中心号码 目标号码 回复号码 编码方式和服务时间等 发送和接收的PDU串 结构是不完全相同的 12 编码举例 例如 发送SMSC号码是 8613800220500 对方号码消息内容是 Hello 从手机发出的PDU串可以是 0891683108200205F011000D91683158812725F800000006C8329BFD0E01 13 发送短信每个编码段的解释 14 需求分析过程 需求分析主要是理解客户需要什么 分析要求 评价可行性 协商合理的方案 无歧义地详细说明方案 确认规格说明 管理需求以至将这些需求转化为可行系统过程包括 初步沟通导出需求分析和精化可行性研究协商与沟通规格说明需求验证变更管理 15 初步沟通 业务领域的共利益者 如业务管理人员 市场营销人员 产品管理人员 定义业务用例确定市场的范围初略地可行性分析确定项目范围的工作说明 16 导出需求 导出需求应理解问题范围问题 系统的边界 是客户和开发者共同关心的部分理解问题 确定业务需求 需求冲突 说明有歧义和不可测试的需求易变问题 分清需求稳定部分和易变部分收集活动 识别真正的客户 用户正确理解客户的需求耐心听取客户意见和思考尽量使用符合客户语言习惯的表达 17 分析和精化 开发一个精确的技术模型 用以说明软件的功能 特征和约束 精化是一个分析建模动作 由一系列建模和求精任务构成定义了问题的信息域 功能域和行为域 18 可行性研究 可行性研究的目的是确定用最小的代价 在尽可能短的时间内确定问题是否能够解决可行性研究的输入是系统的一个框架描述和高层逻辑模型输出是一份需求开发评价报告 对需求工程和系统开发是否值得做的具体建议和意见三个问题 系统是否符合机构的总体要求 系统是否可以在现有的技术条件 预算和时间限制内完成 系统能否把已存在的其他系统集成 19 协商与沟通 调节冲突和问题需求排序识别和分析与每项需求相关的风险 开发工作量 成本和交付时间 20 软件需求规格 一个规格说明可以是一份写好的文档 一套图形化的模型 一个形式化的数学模型 一组使用场景 一个原型或以上各项的任意组合 软件需求规格 SRS SoftwareRequirementSpecification 是需求分析任务的最终 产品 它是客户 管理者 分析工程师 测试工程师 维护工程师交流的标准和依据 软件需求规格描述了系统的数据 功能 行为 性能需求 设计约束 验收标准 以及其他与需求相关的信息 分为 用户需求和系统需求 21 用户需求描述示例 2 1处理销售 完成一次销售过程 2 1 1基本流程 1 顾客携带所购商品或服务到收银台通过POS机付款 2 收银员开始一次新的销售交易 3 收银员输入商品条码 4 系统逐条记录销售的商品 并显示该商品的描述 价格和累计额 重复 3 4 直到输入结束 5 系统显示总额 6 收银员告知顾客总额 并请求付款 7 顾客付款 系统处理支付 8 系统记录完整的销售信息 并将销售金和支持信息发送到外部的帐务系统和库存系统 9 系统打印票据 10 顾客携带商品和票据离开 2 1 2扩展流程 22 系统需求 系统需求是比用户需求更详细的需求描述 是系统实现的基本依据系统需求描述可能包括许多不同的模型 如对象模型和数据流模型 23 需求规格文档标准 1引言1 1编写目的1 2项目背景 单位和与其他系统的关系 1 3定义 专门术语和缩写词 2任务概述2 1目标2 2运行环境2 3条件限制3数据描述3 1静态数据3 2动态数据3 3数据库描述3 4数据字典3 5数据采集4功能需求4 1功能划分4 2功能描述 5性能需求5 1数据精确度5 2时间特性5 3适应性6运行需求5 1用户界面5 2硬件接口5 3软件接口5 4故障处理7其他需求 检测或验收标准 可用性 可维护性可移植性 安全保密性 24 需求验证 需求验证对需求文档和制品进行质量评估 确保需求说明准确 完整包括以下内容 正确性一致性完整性可行性必要性可检验性需求的可跟踪性最后签字 25 需求变更管理 需求变更管理是组织 控制和文档化需求的系统方法建立基线以便在客户和开发人员之间建筑一个约定需求管理从标识开始 建立跟踪表需求跟踪表可以跟踪需求的特征 来源 依赖 子系统和接口等关系 26 通用跟踪表 27 启动分析过程 确定共利益者 直接或间接从正在开发的系统中获益的人 例如 POS机系统中的共利益者有 收银员 售货员 顾客 公司 经理 支付授权服务 帐务系统和库存系统等识别视点 从不同的视角看待该系统 比如 收银员关心准确 快速生成一次销售 且没有支付错误 售货员关注销售提成协同工作 共利益者之间的协作首次提问 集中于客户和其他共利益 整体目标 收益等 28 非形式化需求分析技术 会谈 正式会谈 提出一些可自由回答的问题非正式会谈 提出一些事先准备好的议题情景分析 需求分析从对场景的评论中得到信息 然后再将其以形式化方式表示出来 使用调查表制定调查表分析建立原型界面执行过程 29 场景分析 分析员与项目相关人员共同识别出情景 并捕获这些情景的细节 把细节加入到一个纲要的需求描述中时 情景特别有用情景是对交互实例片断的描述 每个情景可能包含一个或多个交互 它们能在不同的细节层次上提供不同类型的情景信息情景开始于一个框架 在导出过程中 细节被逐渐增加 直到产生交互的一个完整的描述 30 情景 一个情景可能包括如下内容 在情景开始部分有一个系统状态描述 一个关于标准事件流的描述 一个关于哪儿会出错 以及如何处理错误的描述 有关其他可能在同一时间进行的活动的信息 在情景完成后系统状态的描述 31 实例分析 出卷系统 用户 教师 关注如何出一份合理的试卷 并能根据样式打印与输出 学生 关注如何通过生成一些模拟试题 并在线学习和检查学习结果 题库维护人员 关注试题的添加 更新和删除等工作 视点 教师关注自动出卷 手工出卷 试卷编辑和试卷输出 学生关注随时抽卷 联系试卷和评价分析 题库维护人员关注试题管理 32 出卷系统的功能需求 自动出卷 系统根据教师的要求自动生成一份合理的试卷 手动出卷 教师手动从候选的试题中挑选题目 随机抽卷 系统随机抽取试题生产一份试卷 在线练习 学生可以在线做练习和查看答案 在线评价 系统在线评价学生练习的情况 试题管理 管理人员维护题库中的试题 试卷编辑 更新试题 试卷输出 根据某个样式输出试卷 33 实例分析 POS机系统 收银员 能够准确 快速地输入 而且没有支付错误 因为如果少收货款 将从其薪水众扣除 售货员 自动更新销售提成 顾客 希望以最小代价完成购买活动并得到快速服务 便捷 清晰地看到所输入的商品项目和价格 得到购买凭证 以便退货 公司 希望准确地记录交易 满足顾客要求 确保记录了支付授权服务的支付票据 有一定的容错性 能够自动 快速地更新记帐和库存信息 经理 能够快速执行超控操作 并易于更正收银员的不当操作 支持授权服务 依据正确的通信格式进行授权服务 库存系统 正确的方式更新库存信息 记账系统 能够准确地记录每次销售支付信息 34 POS机系统主要功能需求 处理销售 收银员完成一次销售记录 并出具票据和更新库存系统和帐务系统 处理支付 完成一次销售对应的支付 包括现金支付 信用卡支付和支票支付 处理退货 根据顾客请求完成商品退货处理 办理会员卡 注册 注销和更新会员记录 35 实例分析 图书馆系统 图书馆系统的共利益者与视点有 图书流通管理 负责图书借还工作 用户 希望快速得到借书 还书服务 能够续借 预约图书 以及查询个人和图书信息 编目管理员 负责图书的管理 用户管理和处理罚金等 36 图书馆系统的主要功能需求 图书借出 管理员完成一次借书过程 图书归还 管理员完成一次还书过程 图书预约 用户查询要借的图书 若不能借 可预约该图书 图书续借 用户可以将图书的归还日期延长一段时间 图书管理 添加新书 更新图书馆信息 销毁图书 用户管理 注册新用户 更新用户信息 注销用户 处理罚金 用户缴纳罚金吼 系统将罚金数额清零 37 实例分析 短信系统 本系统共利益者和视点有 收发人员 负责发送短信给用户或接受用户的短信 用户管理 添加用户 更新用户信息 删除用户 本系统主要功能需求有 短信发送 填写发送内容 选择发送用户 并指明是否要回执 然后发送短信 通过无线终端或短信网关 短信接收 从无线终端或短信网关读取短信内容 并显示查看 用户管理 添加新用户 更新用户信息 删除用户 38 实例分析 ATM系统 银行客户 接受系统服务 银行的代表 银行间自动柜员机有互惠协议 支行管理者 从该系统中获得管理信息 支行柜台职员 负责系统日常运转和处理客户意见 数据库管理者 负责系统和客户数据库集成 银行信息安全管理者 负责保证系统信息安全 银行市场开发部 将该系统视为银行市场开拓手段 硬件和软件工程师 负责硬件和软件维护及升级 39 ATM系统主要功能需求 存款 从ATM机上存钱到指定账户上 取款 从指定账户上取一定数量的货币 转账 从一个账户取出一定数量的货币 然后转存到另一个账号上 查询余额 察看指定账户的余额 修改密码 修改账户密码 40 小结 需求分析也称为需求工程 是一个非常重要而有很复杂的 需要交替进行 反复迭代的过程 软件需求分为功能需求和非功能需求 功能需求描述系统所预期提供的服务 而非功能需求描述与系统不直接相关的一些需求 领域需求是一种特有的功能需求 反应应用领域的基本问题 软件需求规格说明文档描述了系统的数据 功能 行为 性能需求 设计约束 验收标准以及其他于需求相关的信息 它有可能成为客户与开发商之间的合同 需求分析过程通过执行初步沟通 需求导出 分析与精化 可行性研究 协商和沟通 规格说明 验证和变更管理八个不同的活动来完成 非形式技术主要包括会谈 调查表和场景技术 用于获取用户需求和系统需求 41 第6章结构化分析建模 分析模型元素结构化需求分析面向数据的建模方法案例分析 42 结构化分析建模 需求分析的任务就是准确地指出 软件目标产品必须做什么 需求分析的一个重要过程就是需求建模的过程结构化分析方法是一种传统的系统建模技术 43 分析模型 分析模型的目的是为基于计算机系统提供必须的信息 功能和行为域的说明模型是对系统某个方面的抽象 抛弃了具体细节 对系统中最突出的特征作简化分析模型元素 基于场景的元素基于过程的活动序列的元素基于类的元素行为元素面向信息流的元素基于数据的元素 44 分析模式 分析模式 在软件开发领域 在特定的应用领域内某些事物在所有的项目中重复发生 分析模式可以使用标准的模板来表现 模板采用模式名 目的 动机 外因和环境 解决方案 结论 设计 已知应用和相关模式的格式描述分析模式信息 例如 ERP EnterpriseResourcePlan 软件就是一个高层分析模式 形成一套开发ERP软件的分析模式 45 分析模型的目标与原则 分析模型必须实现三个主要目标 描述客户需要什么 为软件设计奠定基础 定义在软件完成后可以被确认的一组需求 分析模型的所有元素都可以直接映射到设计模型创建分析模型时应遵循的原则 模型应关注在问题或业务域内可见的需求 抽象的级别相对高 分析模型的每个元素都应能增加对软件需求的整体理解 并提供对信息域 功能和系统行为的深入理解 基于基础机构和其他非功能的模型应推延到设计阶段再考虑 最小化整个系统内的关联 确认分析模型为所有共利益者都带来价值 尽可能保持模型简洁 46 结构化需求分析 用户需求一般用自然语言描述系统需求必须用较专业的方式来描述模型是软件设计的基础 也是创建规约的基础需求分析原则 必须表示和理解问题的信息域 必须定义软件将完成的功能 必须表示软件的行为 作为外部事件的结果 必须划分描述信息 功能和行为的模型 从而使得可以以层次的方式揭示细节 分析过程应该从要素信息移向细节实现 47 结构化分析方法 结构化分析 SA StructuredAnalysis 方法是20世纪70年代 由E Yourdon等人倡导的一种适用于大型数据处理系统的 面向数据流的需求分析方法 结构化需求分析方法指导性原则 在开始建立分析模型之前先理解问题 开发模型 使用户能够了解将如何进行人机交互 使用原型技术 记录每个需求的起源和原因 保证需求的可追踪性和可回溯性 使用多个需求分析视图 建立数据 功能和行为模型 给需求赋予优先级 优先开发重要的功能 提高开发生产效率 删除含糊性 48 结构化分析模型 系统模型从以下不同的角度表述系统 从外部来看 它是对系统分析上下文或系统环境建模 从行为上看 它是对系统行为建模 从结构上看 它是对系统的体系结构和系统处理的数据结构建模 结构化的需求分析模型有 系统行为模型 数据流模型 用来描述系统中的数据处理过程状态转换模型 用来描述系统如何对事件做出响应实体 关系模型 关心的是寻找系统中的数据及其之间的关系 却不关心系统中包含的功能 49 结构化分析模型结构 50 结构化分析模型结构 分析模型结构的核心是数据字典 DD DataDictionary 包含了软件使用或生产的所有数据对象描述的中心库 分析模型结构的中间层有三种视图 数据流图 DFD DataFlowDiagram 服务于两个目的 一是指明数据在系统中移动时如何被变换 二是描述对数据流进行变换的功能和子功能 实体 关系图 E RD Entity RelationshipDiagram 描述数据对象间的关系 用来进行数据建模活动的记号 状态转换图 STD StateTransitionDiagram 指明作为外部事件的结果 系统将如何动作 分析模型结构的外层是规约描述 在实体 关系图中每个数据对象的属性可以使用数据对象来描述 在数据流图中出现的每个加工 处理的功能描述包含在加工规约中 软件控制方面的附加信息包含在控制规约中 51 面向数据的建模方法 系统建模的一个重要方面就是要定义系统处理的逻辑结构 最广泛采用的数据建模技术是实体 关系模型 它描述数据实体 关联及实体属性 实体关系模型可用ERD Entity RelationshipsDiagram实体关系图 来表示 实体关联实体属性基数 52 实例分析 出卷系统 53 实例分析 出卷系统 试卷由一组题目组成 而题目来自试卷库中被挑选的题目 试卷根据出卷要求选择项目 这些实体的属性给出如下 试题 编号 科目 题干 题干图 答案 答案图 题型 知识点 难度 抽取时间试卷 编号 科目 出卷人 年级 性质 总分 难度 题目 出卷要求 总分 总难度 总题型 总知识点题目 编号 题干 题干图 答案 答案图 题型 知识点 难度 54 实例分析 图书馆系统 55 实例分析 图书馆系统 实体 图书 借书者 管理员 借书目录 预约记录 书目属性给出如下 借书者 借书者编号 姓名 性别 借书数 最大借书数 罚金金额 有限期图书 图书号 书目号书目 书目号 书名 作者 出版社 丛书名 收藏数 在馆数 预约数借书记录 图书号 借书者编号 借出日期 应还日期 续借次数预约记录 书目号 借书者编号 预约日期 56 实例分析 POS机系统 57 实例分析 POS机系统 实体有销售 支付 商品 商品描述关联 销售包含一组商品 每个商品都有相应的描述信息 每个支付对应一个销售 实体的属性 销售 编号 总价 1 商品 日期支付 编号 支付客户 找零 销售编号商品 编号 数量商品描述 名称 产地 厂家 单价 58 面向数据流的建模 面向数据流的建模是结构化需求分析方法之一采用自顶向下逐层分解 描绘满足用户要求的软件模型表示 数据流图 描述系统处理过程数据字典 模型中的数据信息集合状态转换图 描述系统对内部或外部事件响应的行为模型 59 数据流图符号 60 数据流图举例 设一个工厂采购部每天需要一张定货报表 定货的零件数据有 零件编号 名称 数量 价格 供应者等 零件的入库 出库事务通过计算机终端输入给定货系统 当某零件的库存数少于给定的库存量临界值时 就应该再次定货 数据流分析 数据源点 仓管员 负责入库或出库事务给定货系统 数据终点 采购员 接收每天的定货报表 数据流 事务 定货 数据存储 定货信息 库存清单 处理 处理事务 产生报表 61 数据流图举例 画基本系统模型 62 数据流图举例 第一步求精 63 数据流图举例 第二步求精 64 数据字典 数据字典是分析模型中出现的所有名字的一个集合 并包括有关命名实体的描述数据字典有以下两个作用 它是所有名字信息管理的有效机制作为连接软件分析 设计 实现和进化阶段的开发机构的信息存储数据字典应该由四类元素的定义组成 数据流数据流分量数据存储处理对于处理 可用输入 处理 输出 IPO Input Process Output 视图描述更方便 65 数据字典 应对组成的数据元素定义进行自顶向下的分解 分解的原则是 当包含的元素不需要进一步定义 且每个和工程有关的人都清楚时为止数据字典中应该包括关于数据的信息 一般信息 名字 别名 描述等 定义 数据类型 长度 结构等 使用特点 值的范围 使用频率 使用条件 使用方式 条件值等 控制信息 用户 使用特点 改变数 使用权等 分组信息 文档结构 从属结构 物理位置等 三种类型的任意组合定义数据字典中的任何条目 顺序 顺序连接两个或多个分量元素 一般用加号表示顺序连接关系 选择 从两个或多个可选的分量元素中选取一个 选择运算符用方括号表示 对于多个可供选择的元素 用 符号分隔 例如 A 1 A 2 A 3 表示三个可选数据元素 重复 描述的分量元素重复零次或多次 例如 都表示数据元素A的下限为1 上限为5 66 数据字典卡片方式示例 67 状态转换图 状态模型是一种描述系统对内部或者外部事件响应的行为模型 它描述系统状态和事件 以及事件引发系统在状态间的转换 这种模型适用于描述实时系统状态模型一般采用状态转换图 简称状态图 的标记方法状态图描述了系统中某些复杂对象的状态变化状态是可观察的行为模式 用圆角矩形表示 变迁表示状态的转换 用箭头表示 事件是引发变迁的消息 用箭头上的标记表示 状态图还可以用事件后的方括号表示先决条件 只有当这个条件为真时 才会发生状态变化 用状态自身的弧线箭头表示先决条件不为真时 状态不会改变 68 复印机控制软件状态图 69 加工逻辑的描述 加工逻辑也称为过程说明 用于描述数据流图中加工逻辑的处理算法或过程用以下三种工具 过程描述语言 PDL ProceduralDescriptionLanguage 判定表判定树 70 过程描述语言 介于自然语言和形式语言之间的一种半形式语言 使用有限的词汇和有限的语句来描述加工逻辑 它的结构可分成两层 外层 用来描述控制结构 采用顺序 选择 重复三种基本结构 内层 一般采用祈使语句的自然语言短语 使用数据字典中的名词和有限的自定义词 71 举例 统计空格seq打开文件读入字符串Totalsum 0程序体iteruntil文件结束 程序体end印总数seq印出空格总数印总数end关闭文件停止统计空格end 72 判定表 例如 某数据流图中有一个 确定保险类别 的加工 指的是申请汽车驾驶保险时 要根据申请者的情况确定不同的保险类别 加工逻辑为 如果申请者的年龄在21岁以下 要额外收费 如果申请者是21岁以上并是26岁以上的女性 适用于A类保险 如果申请者是26岁以下的已婚男性 或者26岁以上的男性 适用于B类保险 如果申请者是21岁以下的女性或26岁以下的单身男性适用于C类保险 除此之外的其他申请者都适用于A类保险 73 判定表 提取问题中的条件 年龄 性别 婚姻 标出条件的取值 74 判定表 计算所有条件的组合数N N 3 2 2提取可能争取的动作或措施 适用于A类保险 B类保险 C类保险 额外收费共四种 制作判定表完善判定表缺少判定采取的动作有冗余的列 75 制作判定表 76 合并后的判定表 77 判定树 判定树是判定表的变形 一般情况下它比判定表更直观 且易于理解和使用 78 出卷系统 总体数据流图 79 出卷系统 自动出卷数据流图 80 出卷系统 手动出卷数据流图 81 出卷系统的实体 关系图 82 数据字典举例 名称 试卷别名 无描述 试卷信息定义 试卷 试卷编号 课程名 出卷人 时间 总分 难度 试题 试卷编号 1 字符串 10课程名 1 字符 30出卷人 1 字符 8时间 日期总分 整数 83 数据字典举例 名称 出卷要求别名 要求描述 出卷的卷面要求定义 出卷要求 总分 总难度 总题型 总知识点总分 整数总难度 难分数比例 中分数比例 易分数比例总题型 1 题型分数比例 总知识点 1 知识点分数比例 位置 自动出卷 手动出卷 设置出卷要求 84 数据字典举例 名称 试题别名 题目描述 题库中的题目定义 试题 试题编号 题干 题干图 答案 答案图 题型 难度 知识点 抽取时间试题编号 1 字符 10题干 1 字符 200题干图文件名 30 字符 40答案 1 字符 200答案图文件名 30 字符 40题型 选择 填空 简答 改错 应用 难度 难 中 易 知识点 抽取时间 日期位置 自动出卷 手动出卷 题库系统 85 图书馆系统 86 图书馆系统 87 图书馆系统实体关系图 88 图书馆系统数据字典 89 小结 分析模型帮助用户逐层深入理解问题 为软件设计提供基础 分析建模的元素有基于场景的用例建模 基于过程的活动序列建模 基于类的建模 行为建模 基于信息流的建模和基于数据的建模 结构化分析方法是一种自顶向下 逐步分解的面向数据和数据流的建模方法 面向数据的建模以实体 关系和属性三个基本元素描述系统 涉及数据及其它们之间的关系 用ERD表示 基于数据流的方法用于描述数据如何在系统中流动或被变换 用数据流图 数据字典 加工规程等形式表示 90 第7章面向对象分析 构建需求模型需求元素基于场景的元素 从用户的视角描述系统 基于类的元素 一个参与者与系统交互时所操作的一组对象 即类 具有相似属性和共同行为的事物集合 基于行为元素 系统的行为模式 即状态和时序变化 面向数据流的元素 数据流图 DFD 分析模式抽象分析模型及设计模式 91 第7章面向对象分析 面向对象的建模方法 场景 信息 类分析 场景模型 从参与者视点的需求建模 用例模型 数据模型 描述问题信息域的模型面向类的模型 面向对象类 属性和操作 的模型 其通过类的协作描述系统需求面向流程的模型 描述功能元素及功能元素在系统中的数据变换模型行为模型 描述如何将软件行为看作外部事件后续的模型领域模型 识别 分析和详细说明某个特点的领域的公共需求 92 基于场景的建模 新建初始用例 开始开发用例时 应列出该场景特定参与者执行的功能或活动 参见P110 P112细化初始用例在主场景中的每个步骤进行如下提问 在这一状态点 参与者能进行一些其他动作吗 在这一状态点 参与者有没有可能遇到一些错误的条件 如果有 这些错误会是什么 在这一状态点 参与者有没有可能遇到一些其他行为 如发生事件调用 如果有 这些行为是什么 编写正规的用例 并绘制初步的用例图参见P113 93 面向对象分析 面向对象分析 OOA Object OrientedAnalysis 是一种半形式化的规格说明技术 目前 最流行的技术是OMT和Booch开发技术面向对象的最大特点是面向用例在用例的描述中引入了外部角色的概念OMT是ObjectModelingTechnology的缩写Booch方法的力量在于其丰富的符号体系 包括 类图 类结构 静态视图 对象图 对象结构 静态视图 状态转移图 类结构 动态视图 时态图 对象结构 动态视图 模块图 模块体系结构 进程图 进程体系结构 Booch方法的过程包括以下步骤 在给定的抽象层次上识别类和对象 识别这些对象和类的语义 识别这些类和对象之间的关系 实现类和对象 94 面向对象建模 面向对象模型对象模型 定义了 做什么 的实体动态模型 规定在何种状态下 接受什么事件的触发而 做什么 功能模型 指明了系统应该 做什么 95 对象模型 对象模型可以看成是数据流和语义数据模型的结合对象模型表示静态的 结构化系统的 数据 性质 它是对模拟客观世界实体的对象 以及对象彼此间的关系的映射 描述了系统的静态结构 对象模型是一个类 包括其属性和行为 对象 类的实例 类和 或 对象之间关系的定义集 类名是一类对象的抽象命名 其命名是否恰当对系统的可理解性影响相当大 对象模型还必须表示类 对象之间的结构关系 类 对象之间的关系一般可概括为关联 归纳 泛化 组合 聚集 三类 96 动态模型 动态模型表示瞬间的 行为化的系统 控制 性质 它规定了对象模型中对象的合法变化序列 对象运行周期中的阶段就是对象的状态 对象状态是对对象属性的一种抽象 对象之间相互触发 作用的行为 称为事件 引起了一系列的状态变化 事件是某个特定时刻所发生的一个系统行为 它是对引起对象从一种状态转换到另一个状态的现实世界事件的抽象 对象对事件的响应 取决于接受该触发的对象当时所处的状态 其响应包括改变自己的状态 或者是形成一个新的触发行为 事件 动态模型描绘了对象的状态 触发状态转换的事件 以及对象行为 对事件的响应 97 功能模型 功能模型表示变化的系统的 功能 性质 指明了系统应该 做什么 它更直接地反映了用户对目标系统的需求 面向对象是以用例驱动的 用例站在用户的角度描述用户的交互过程 有助于软件开发人员更深入地理解问题域 改进和完善自己的分析和设计 对象模型 动态模型和功能模型相辅相承 使得对系统的需求分析和设计描述更加直观 全面 对象模型是最基本 最重要的 它为其他两种模型奠定了基础 98 统一建模语言UML 统一建模语言 UML UnifiedModelingLanguage 是一种基于面向对象的可视化建模语言 UML用丰富的图形符号隐含表示了模型元素的语法 而用这些图形符号组成元模型表达语义 组成模型描述系统结构 或称为静态特征 以及行为 或称为动态特征 UML的模型元素 一类模型元素用于表示模型中的某个概念 如类 对象 用例 结点 构件 包 接口等 另一类模型元素用于表示模型元素之间相互连接的关系 主要有关联 泛化 表示一般与特殊的关系 依赖 聚集 表示整体与部分的关系 等 99 UML模型元素 100 UML模型结构 四个抽象层次 元元模型 定义了描述元模型的语言元模型 定义了元类 元属性 元操作等一些概念模型 定义了描述信息领域的语言用户模型 模型的实例 用于表达一个模型的特定情况 101 UML模型视图 UML主要是用来描述模型的 它可以从不同视角为系统建模 形成不同的视图 View 每个视图是系统完整描述中的一个抽象 代表该系统一个特定的方面 每个视图又由一组图 Diagram 构成 图包含了强调系统某一方面的信息 两类图 静态图 包括用例图 类图 对象图 构件图和部署图动态图 包括状态图 时序图 协作图和活动图五种视图 用例视图从用户角度表达系统功能 结构视图主要使用类图和对象图描述系统静态结构 行为视图展示系统动态行为及其并发性 实现视图展示系统实现的结构和行为特征 部署视图展示系统的实现环境和构件是如何在物理结构中部署的 102 用例建模 需求捕获的目标 发现真正的需求以适用于用户 客户和开发人员的方式加以表示系统用户表示为一个参与者参与者在与用例进行交互时使用系统用例向参与者提供某些有价值结果而执行一些动作序列 103 编写用例 用例着眼于为用户增加价值 提供了一种捕获功能需求的系统且直观的方法 可驱动整个开发过程 用例从某个特定参与者的角度用简单易懂的语言说明一个特定的使用场景 要开始开发用例 应列出特定参与者执行的功能或者活动 用例模型帮助客户 用户和开发人员在如何使用系统方面达成共识 用例图描述部分用例模型 显示带有联系的用例和参与者的集合 104 POS机系统部分用例图 105 用例图 用例图包括 参与者 用例 关联和边界四个要素 参与者 用小人形表示用例 用椭圆表示关联 用直线表示说明参与者驱动某个用例边界 用矩形框表示 说明系统关注点 106 开发用例 用例使用非正式的描述性风格编写 也可以使用某个结构化的格式编写 有些格式更强调描述的直观性 107 POS机系统中处理销售的场景 用例名称 处理销售范围 POS机应用级别 用户目标主要参与者 收银员涉众及其关注点 收银员 希望能够准确 快速地输入 而且没有支付错误 因为如果少收货款 将从其薪水众扣除 售货员 希望自动更新销售提成顾客 希望以最小代价完成购买活动并得到快速服务 希望便捷 清晰地看到所输入的商品项目和价格 希望得到购买凭证 以便退货 公司 希望准确地记录交易 满足顾客要求 希望确保记录了支付授权服务的支付票据 希望有一定的容错性 即便在某些服务器构件不可用时 如远程信用卡验证 也能够完成销售 希望能够自动 快速地更新帐户和库存信息 经理 希望能够快速执行超控操作 并易于更正收银员的不当操作 前置条件 收银员必须经过确认和认证 成功保证 或后置条件 存储销售信息 更新帐户和库存信息 记录提成 生成票据 记录支付授权的批准 108 主成功场景 1 顾客携带所购商品或服务到收银台通过POS机付款 2 收银员开始一次新的销售交易 3 收银员输入商品条码 4 系统逐步记录出售的商品 并显示该商品的描述 价格和累计额 价格通过一组价格规则来计算 收银员重复3 4步 直到输入结束 5 系统显示总额和计算折扣 6 收银员告知顾客总额 并请顾客付款 7 顾客付款 系统处理支付 8 系统记录完整的销售信息 并将销售和支付信息发送到外部的账务系统 进行账务处理和提成 和库存系统 更新库存 9 系统打印票据 10 顾客携带商品和票据离开 109 开发活动图 UML活动图通过提供特定的场景内交流的图形化表示来补充用例 活动图符号 两端为半圆形的矩形表示一个特定的系统功能箭头表示通过系统的流判定菱形表示判定分支水平线 分叉点和连接表示并发活动对象节点表示活动对象活动图通常能够既表示控制流又表示数据流 UML活动图代替传统的数据流图 DataFlowDiagram 表示法 110 处理销售用例中的UML活动图 111 泳道图 UML泳道图 swimlane 是活动图的一种有用的变形可以让建模人员表示用例所描述的活动图 同时看哪个参与者或分析类对活动矩形所描述的活动负责 泳道用纵向分割图的并列条形部分表示 就像游泳池中的泳道 也称特定分区 UML泳道图通常对于涉及众多参与者的非常复杂的业务过程建模具有价值 112 泳道图举例 113 建立领域模型 领域模型能捕获语境中最重要的对象模型 领域对象代表系统工作的环境中存在的事情或发生的事件 领域有三种典型的形式 业务对象 表示业务中可操作的东西 例如订单 帐户和合同等 系统需要处理的现实世界中的对象和概念 如导弹 轮船等 将要发生或已经发生的事件 例如飞机起飞或午餐休息等 领域建模的目的是理解和描述在领域语境中最重要的类 114 基于类的建模 基于类建模表示了系统操作的对象 应用于对象间能有效控制的操作 也称方法或服务 这些对象间 某种层级 的关系以及已定义类之间的协作 基于类的分析模型的元素包括类 对象 属性 操作 类的职责协作 CRC 模型 协作图和包 115 1 识别分析类 通过检查需求模型开发的使用场景 对系统开发的用例或处理叙述进行 语法分析 可以开始分析类的识别 其核心就是找名词和名词词组 116 分析类识别方式 外部实体 产生或使用基于计算机系统的信息 例如人员 设备 其他系统 事物 问题信息域的一部分 例如报告 显示 字母 信号 发生或事件 在系统操作环境内发生 例如所有权转移或完成机器人的一组移动动作 角色 由和系统交互的人员扮演 例如经理 工程师 销售人员 组织单元 和某个应用相关 例如部门 组 团队 场地 建立问题的环境和系统的整体功能 例如车间 码头 结构 定义了对象的类或与对象相关的类 例如传感器 四轮汽车 计算机 117 分析类 在分析类时 分析师应考虑每个潜在类是否应该使用如下这些特征 保留信息 只有记录潜在类的信息才能保证系统正常工作 在这种分析过程中的潜在类是有用的所需服务 潜在类必须具有一组可确认的操作 这组操作能用某种方法改变类的某个属性 多个属性 在需求分析过程中 焦点应在于 主 信息 事实上 只有一个属性的类可能在设计中有用 但在分析阶段 最好把它作为某个类的属性 公共属性 可以为潜在类定义一组属性 这些属性适用于类的所有实例 公共操作 可以为潜在类定义一组操作 这些操作适用于类的所有实例 必须需求 在问题空间中出现的外部实体 和任何系统解决方案运行时所必需的生产或消费信息 几乎都被定义为模型中的类 118 分析类 描述属性定义操作 119 分析类 分析类侧重于处理功能性需求通过较高的 非形式化层次的职责类定义某行为分析类三种基本构造型 边界类 边界类用于建立系统与其参与者之间交互的模型 经常代表对窗口 窗体 窗幕 通信接口 打印机接口 传感器 终端以及API等的抽象 每个边界类至少应该与一个参与者有关 反之亦然 控制类 控制类代表协调 排序 事务处理以及其他对象的控制 经常用于封装与某个具体用例有关的控制 控制类还可以用来表示复杂的派生与演算 如业务逻辑 实体类 实体类用于对长效持久的信息建模 大多数情况下 实体类是直接从业务对象模型中相应的业务实体类得到的 120 分析类举例 121 控制类 控制类类似于设计模型中的控制器类 其目的是UI层之上的第一个对象 主要负责接收和处理系统操作消息 把职务分配给能代表以下选择之一的类 代表整个 系统 根对象 运行软件的设备或主要子系统 这些是外观控制器的所有变体 代表用例场景 在该场景中发生系统事件 通常命名为UsecaseName Handler UsecaseName Coordinator或UsecaseName Session 122 控制类举例 123 用例实现分析 用例实现分析是分析模型内部的一种协作 主要描述了如何根据分析类及其交互的分析对象来实现和执行一个具体的用例 用例实现包括事件流的文本描述 反映参与者用例实现的分析的类图以及按照分析对象的交互作用描述特定流实现或用例脚本的交互图 用例实现侧重于功能性需求 124 处理销售类图 125 交互图 当参与者向系统发送某种形式的消息而激活用例时 开始执行该用例中的动作序列 边界类对象将接收来自参与者的消息 边界对象向其他对象发送一个消息 并使有关对象与之交互从而实现该用例 在分析阶段 通常使用协作图类描述用例的实现 协作图又称为通信图 是以图或网络格式描述对象交互 其中对象可以置于图中任何位置 126 127 处理销售协作流的事件 分析流 收银员通过处理销售商品界面发起一次销售 控制类创建一个销售类 收银员逐个输入商品 销售类创建商品 并放入销售列表中 控制类要求计算商品总价 收银员请求顾客付款 控制类委派销售类创建一个支付 128 分析包 分析包描述了对分析模型的制品进行组织的方式 它可以包括分析类 用例实现及其他分析 分析包应是有强内聚性与低耦合性 具有以下特点 分析包可以表示对分析内容的分割 在统一过程中 服务的概念是由服务包支持的 服务包在按照系统提供的服务而组织的分析包层次结构中处于较低层 服务包包含了一组活动相关的类 服务包不可分割 在实现用例时 可能会有一个或多个服务包参与其实现 服务包相对独立 可以复用 UML包图用于描述系统的逻辑架构 层 子系统 包等 UML包用一大一小两个矩形组合而成 如果内部显示了其成员 则包名称标在上面的小矩形内 否则 可以标在包内 129 UML包图 130 逻辑架构 逻辑架构是类的宏观组织结构 它将类组织为包 子系统和层等 层是对类 包或子系统的甚为粗粒度的分组 是有对系统主要方面加以内聚的职责 131 分层逻辑架构 132 关联与依赖 两个分析类以某种方式相互联系 这些联系被称作关联 关联可进一步指出多样性 也称为基数 两个分析类之间存在客户 服务器联系 客户类在某些方面依赖于服务器类并且建立了依赖关系 133 识别属性和操作 属性描述类的性质 可以通过分析该类存在的一些信息类构建 操作定义了某个对象的行为 操作可以分为四种类型 以某种方式操纵数据 例如 添加 删除 选择 更新等 执行计算的操纵 例如 销售中的计算总价 请求某个对象状态的操作 监视某个对象发生某个控制事件的操作 操作的构造需要交互图和场景描述等手段多次反复分析才能获取 在研究语法分析并分离动词作为候选的操作 推荐的一个方法是使用CRC技术 134 CRC技术 CRC Class Responsibility Collaborator 类 职责 协作者 建模提供识别和组织与产品相关的类 一旦系统的基本使用场景 用例 确定后 则要标识侯选类 指明它们的责任和协作 即类 责任 协作者建模 责任是与类相关的属性和操作 即责任是类知道要做的事情 协作者是为某类提供完成责任所需要的信息的类 即协作类 CRC建模方法提供了一种简单标识和组织与系统或产品需求相关的类的手段 CRC模型是一组表示类标准的索引卡 CRC卡的集合 CRC卡的内容分成三个部分 类的名字类的责任协作类 135 销售类CRC卡 136 行为建模 行为模型显示了软件如何对外部事件或激励做出响应 要生成行为模型 分析师必须按如下步骤进行 评估所有的用例 以使得完成理解系统内的交互序列 识别驱动交互序列的事件 并理解这些事件如何和具体的类相互关联 为每个用例生产序列 创建系统状态图 评估行为模型以验证准确性和一致性 137 系统顺序图 系统顺序图 SystemSequenceDiagram SSD 是为了阐述与讨论系统相关的输入和输出事件而快速 简单地创建的制品 它们是操作契约和重要对象设计的输入 用例文本及其所示的系统事件是创建SSD的输入 SSD展示了直接与系统交互的外部参与者 系统以及由参与者发起的系统事件 SSD可以用UML顺序图的形式表示 用以阐述外部参与者到系统的事件 系统事件就是将系统看作黑盒 参与者为完成功能而向系统发出的事件 138 处理销售用例的系统SSD 139 操作契约 操作契约使用前置条件和后置条件的形式 详细和精确描述领域模型中的对象的变化 并作为系统操作的结果 操作契约的主要输入是SSD中确定的系统操作 领域模型和领域专家的见解 操作契约四部分 操作是指操作的名称和参数交叉引用是指会发生此操作的用例前置条件是指执行操作之前对系统领域模型对象状态的假设后置条件是指完成操作后 领域模型对象的状态 140 后置条件 后置条件 PostCondition 描述了领域模型内对象状态的变化 领域模型状态变化包括创建用例 形成或消除关联以及改变属性 后置条件不是在操作过程中执行的活动 相反 它们是对领域模型对象的观察结果 后置条件可以分为三种类型 创建或删除实例属性值的变化形成或消除关联 141 操作enterItem的契约 操作名称 enterItem id quantity 交叉引用 处理销售用例前置条件 正在进行的销售后置条
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国工业单宁酸项目商业计划书
- 中国天然气储罐用防腐涂料项目商业计划书
- 中国橡胶衬里项目商业计划书
- 蛋糕客服考试题目及答案
- 大专药学考试题及答案解析
- 中国动物性蛋白饲料项目投资计划书
- 2024年广西平陆运河集团有限公司招聘真题
- 股权拍卖协议书
- 检验证考试试题及答案
- 美国三方协议书
- 中国马克思主义与当代-第三讲课件
- 边坡巡检记录表
- 《干部履历表》1999版电子版
- 2023年中山市招聘村(社区)书记(主任)助理和市党建指导员考试试卷真题
- 新疆地方史模版2021
- 郜刚分子生物学-13-原核基因表达调控-3-其他操纵子
- GB/T 34022-2017小型游乐设施立体攀网
- GB/T 20304-2006塔式起重机稳定性要求
- 盐酸MSDS安全技术说明书
- 测量血压的正确方法(讲课完整)课件
- 在役隧道结构安全、健康监测与评估
评论
0/150
提交评论