软件文档编写技巧_第1页
软件文档编写技巧_第2页
软件文档编写技巧_第3页
软件文档编写技巧_第4页
软件文档编写技巧_第5页
已阅读5页,还剩246页未读 继续免费阅读

下载本文档

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

文档简介

软件文档编写 引言 编写目的项目背景符号 缩略语和定义参考资料 编写目的 用户公司名称前期已做工作将要涉及项目的开发目的 可行性研究的前提 项目基本要求项目基本目标项目开发条件 假定和限制 项目基本要求 主要功能性能要求系统的输入输出安全和保密要求项目与其它软件系统的关系完成期限要求 所建议系统概况 所建议系统概述所建议系统的处理流程和数据流程所建议系统对现有系统的改进 影响和局限性 可行性分析 技术可行性经济可行性可行性分析结论 思考 涉及的几个问题 如何定义系统需求 如何识别 获取需求 你能够采取何种手段与用户进行交流沟通 何为需求建模 你如何理解模型与建模 需求分析 软件需求分析的几个阶段 问题分析问题评估和方案综合建模规约复审系统分析员的主要焦点是 做什么 what 不是 怎样做 how 需求获取 需求获取的目的清楚地理解所要解决的问题完整地获取用户需求 需求获取面临的挑战 1 问题空间理解 2 人与人之间的通信 3 需求的不断变化 某出版社系统调查表 某出版社系统调查表 需求获取的内容 1 用户需求分类 1 功能性需求 定义了系统做什么 描述系统必须支持的功能和过程 2 非功能性需求 技术需求 定义了系统工作时的特性 描述操作环境和性能目标 2 两类需求包括的内容 1 功能 2 性能 3 环境 4 界面 5 用户或人的因素 6 文档 7 数据 8 资源 9 安全保密 10 软件成本消耗与开发进度 11 质量保证 1 功能需求 系统做什么 系统何时做什么 系统何时及如何修改或升级 2 性能需求 软件开发的技术性指标例如 存储容量限制执行速度 相应时间吞吐量 3 环境需求 硬件设备 机型 外设 接口 地点 分布 温度 湿度 磁场干扰等软件 操作系统网络数据库 4 界面需求 有来自其它系统的输入吗 到自其它系统的输出吗 对数据格式有规定吗 对数据存储介质有规定吗 5 用户或人的因素 用户类型 各种用户熟练程度 需受何种训练 用户理解 使用系统的难度 用户错误操作系统的可能性 6 文档需求 需哪些文档 文档针对哪些读者 7 数据需求 输入 输出数据的格式 接收 发送数据的频率 数据的准确性和精度 数据流量 数据需保持的时间 8 资源需求 软件运行时所需的数据 软件 内存空间等资源 软件开发 维护所需的人力 支撑软件 开发设备等 9 安全保密要求 需对访问系统或系统信息加以控制吗 如何隔离用户之间的数据 用户程序如何与其它程序和操作系统隔离 系统备份要求 10 软件成本消耗与开发进度需求 开发有规定的时间表吗 软硬件投资有无限制 11 质量保证 系统的可靠性要求 系统必须监测和隔离错误吗 规定系统平均出错时间 出错后 重启系统允许的时间 系统变化如何反映到设计中 维护是否包括对系统的改进 系统的可移植性 需求建模 计算机学科的发展 计算机科学 CS 计算机科学 CS 计算机工程 CE 软件工程 SE 信息系统 IS 计算学科 computingdiscipline 计算学科是研究通过在计算机上建立模型并模拟物理过程来进行科学调查和研究的学科 计算机科学与技术学科的方法论 学科的3个形态理论抽象 模型化 设计重复出现的概念绑定 binding 概念与形式模型一致性和完备性抽象层次重用 典型的学科方法 数学方法系统科学方法 计算中抽象的本质和使用 在处理复杂事务 构造系统 隐藏细节和获取重复模式方面使用抽象 通过具有不同层次的细节和指标的抽象 能够表达一个实体和系统 抽象 模型化 源于实验科学 主要要素为数据采集方法和假设的形式说明 模型的构造与预测实验分析结果分析 在为可能的算法数据结构和系统结构等构造模型时使用此过程 抽象的结果是概念符号模型 模型 model 模型 现实世界某些重要方面的表示 有时我们使用术语 抽象 来表示模型 因为我们从现实世界中抽象出对我们特别有用的东西 需求分析的步骤 当前系统 目标系统 物理模型 逻辑模型 逻辑模型 物理模型 模型化 抽象化 具体化 实例化 怎么做 做什么 当前系统 目标系统 需求定义 逻辑模型和物理模型模型是对对象系统的形式化的特征抽象 概括性或近似地表示 构造模型的过程是一个抽象 分析的过程 对象系统 模型系统 抽象 映射 模型应用 模型构造的过程 逻辑模型物理模型 本质模型 概念模型 实施模型 技术模型 现行系统 目标系统 描述重要的业务功能 无论系统是如何实施的 描述现实系统是如何在物理上实现的 描述新系统的主要业务功能和用户新的需求 无论系统应如何实施 描述新系统是如何实施的 包括技术 需求建模 模型的作用 建模的原因 在建模过程中了解系统通过抽象降低复杂性有助于回忆所有的细节有助于开发小组间的交流有助于与用户的交流为系统的维护提供文档 模型化或模型方法是通过抽象 概括和一般化 把研究的对象或问题转化为本质 关系或结构 相同的另一对象或问题 从而加以解决的方法 模型化方法要求所建立的模型能真实反映所研究对象的整体结构 关系或某一过程 某一局部 某一侧面的本质特征和变化规律 模型的类型 数学模型描述模型图形模型 需求分析的步骤 当前系统 目标系统 物理模型 逻辑模型 逻辑模型 物理模型 模型化 抽象化 具体化 实例化 怎么做 做什么 当前系统 目标系统 需求定义 逻辑模型和物理模型模型是对对象系统的形式化的特征抽象 概括性或近似地表示 构造模型的过程是一个抽象 分析的过程 对象系统 模型系统 抽象 映射 模型应用 模型构造的过程 逻辑模型物理模型 本质模型 概念模型 实施模型 技术模型 现行系统 目标系统 描述重要的业务功能 无论系统是如何实施的 描述现实系统是如何在物理上实现的 描述新系统的主要业务功能和用户新的需求 无论系统应如何实施 描述新系统是如何实施的 包括技术 需求分析过程示意 学生 1 通过对现实环境的调查 获得当前系统的物理模型 学生 购书申请 购书单 发票 领书单 书 107张 教务科 206王 会计室 206李 出纳员 303赵 教材科 学生购买教材的物理模型 需求分析过程示意 2 去掉具体模型中的非本质因素 抽象出当前系统的逻辑模型 学生购买教材的逻辑模型 学生 学生 购书申请 购书单 发票 领书单 书 审查有效性 开发票 开领书单 发书 需求分析过程示意 3 分析当前系统与目标系统的差别 建立目标系统的逻辑模型 计算机售书系统的逻辑模型 学生 学生 购书单 发票 领书单 审查并开发票 开领 书单 无效书单 分析阶段中常用的模型 逻辑模型 数据流图 DFD 实体 联系图 ERD 类图实例图时序图状态图协作图事件列表数据流定义数据元素定义 某系统的第1层DFD 控制面板 与用户交互 控制面板显示 密码 电话号码拨音 传感器状态 显示信息 配置请求 用户命令和数据 配置系统 警铃 电话线 传感器 配置信息 显示信息和状态 监控传感器 激活 不激活系统 传感器信息 密码处理 警告类型 检验id信息 开始停止 状态信息 客户 保险销售人员 签订一份保险单 销售统计 客户统计 使用用例图举例 状态图例 状态1 Do 活动1 状态2 事件1 条件1 动作1 结束事件 初始事件 空闲 可视菜单 左边按钮按下 显示弹出菜单 左边按钮弹起 擦除弹出菜单 光标移动 高亮菜单项 弹出菜单动作 接电话的顺序图 受话者 交换机 远程交换机 受话者 拿起话筒 听通话声 拨号码 铃响信号 铃响 铃响停止信号 拿起话筒 铃响停止 10 d e a b c b a 1 e d 5 c b 10 路径 合作图举例 打印机忙保存打印文件 队列 计算机 打印机空闲 打印文件 打印机 打印服务器 打印文件 电梯状态图举例 在一楼 上升 停滞 下降 回到一楼 回一楼 想要到达楼层 想要到达楼层 电梯行程 开始 向上 向上 向下 F1 航班信息文件 航空公司名称 航班号 起点 终点 日期 起飞时间 降落时间 航空公司名称 2 字母 4航班号 3 十进制数字 3字母 A Z 十进制数字 0 9 起点 终点 1 汉字 10起飞时间 降落时间 时 分时 00 23 分 00 59 日期 年 月 日年 2000 2001 2002 2004 月 01 12 日 01 31 分析建摸方法 结构化分析 传统建模方法 面向对象分析 结构化分析方法 StructuredAnalisys SA 基于数据流技术的分析方法需求获取应遵循的三条基本原则 分解抽象投影 分析模型的主要目标 描述用户需要建立创建软件设计的基础定义软件完成后可被确认的一组需求 分析模型的结构 数据字典 数据流图 E R图 状态变迁图 加 工 规 约 控制规约 数 据 对象 描述 分析模型的元素 数据字典 DD 模型核心 中心库 E R图 ERD 数据流图 DFD 指明数据在系统中移动时如何被变换 描述对数据流进行变换的功能 DFD中每个功能的描述包含在加工规约 小说明 状态变迁图 STD 指明作为外部事件的结果 系统将如何动作 数据建模 E R图是数据建模的基础 将分析模型转换为软件设计 数据字典 数据流图 E R图 状态变迁图 加 工 规 约 控制规约 数 据 对 描述 象 数据设计 体系结构设计 接口设计 过程设计 分析模型 设计模型 讨论要点 SA方法建立功能模型的描述方法DFDDD其他描述方法 功能建模和信息流 基于计算机的系统 输入信息 信息流模型 输出信息 外部实体 外部实体 外部实体 输入信息 外部实体 外部实体 输出信息 输出信息 一 数据流图 DFD DataFlowDiagram 描述逻辑模型的图形工具 表示数据在系统内的变化 实例考务处理系统功能 1 对考生送来的报名单进行检查 2 对合格的报名单编好准考证号后将准考证送给考生 并将汇总后的考生名单送给阅卷站 3 对阅卷站送来的成绩单进行检查 并根据考试中心制定的合格标准审定合格者 4 制作考生通知单 含成绩及合格 不合格标志 送给考生 5 按地区进行成绩分类统计和试题难度分析 产生统计分析表 考务处理系统的分层DFD 顶层数据流图 考生 考务处理系统 考试中心 阅卷站 不合格报名单 报名单 准考证 考生通知单 成绩清单 合格标准 错误成绩清单 考生名单 统计分析表 登记报名单 报名单 准考证 1 统计成绩 2 不合格报名单 考生通知单 成 统计分析表 0层数据流图 考生名册 绩 清 单 合格标准 考生名单 成 绩 清 单 错 误 一层数据流图 a 检查报名单 报名单 准考证 1 1 编准考证号 1 2 不合格报名单 考生名册 考生名单 合格报名单 登记考生 1 3 一层数据流图 b 检查成绩清单 2 1 审定合格者 2 2 考生名册 正确成绩清单 制作通知单 2 3 分析统计成绩 2 4 分析试题难度 2 5 试题得分清单 考生通知单 难度分析表 合格标准 分类统计表 成绩清单 错误成绩清单 经审定的成绩清单 DFD可以用来表示一个系统或软件在任何层次上的抽象 较大型软件系统DFD分成多层 子图 父图概念 可以表示数据流和功能的进一步的细节 S 2 1 3 2 2 2 1 2 3 3 1 3 2 顶层 不编号 0层 1层 数据流和控制流举例 使用Ward和mellor符号 监控固件和操作接口 每个固件状态 动作警告 机器人初始化控制 操作命令 部件状态缓冲器 位置命令 开始 停止 处理机器人命令 机器人命令文件 操作设置 处理活动 记录机器人动作 位串 数据和控制模型的关系 DFD 加工规约 加工模型 DFD 控制规约 控制模型 数据输出 数据条件 数据输入 控制输入 控制输出 加工激活者 SafeHome控制面板 与用户交互 SAFEHOME ARMEDPOWER 01 1 2 3 4 5 6 7 8 9 0 OFFARAYSTAY MAXTESTBYPASS INSTANTCODECHIME READY panic alarmcheckfire awaystayinstantbypassnotready SafeHome的顶层 SafeHome软件系统 用户命令和数据 显示信息 控制面板 传感器 传感器状态 警铃 电话线 警告类型 电话号码拨音 控制面板显示 SafeHome的第0层 控制面板 与用户交互 控制面板显示 密码 电话号码拨音 传感器状态 显示信息 配置请求 用户命令和数据 配置系统 警铃 电话线 传感器 配置信息 显示信息和状态 监控传感器 激活 不激活系统 传感器信息 密码处理 警告类型 检验id信息 开始停止 状态信息 监控传感器的第1层 电话号码拨音 传感器状态 配置数据 显示格式 配置信息 产生警告信息 拨号 评估设置 传感器信息 读传感器 警告类型 传感器id类型 传感器id类型定位 SafeHome的第一层 控制面板 与用户交互 控制面板显示 显示活动状态 完成 在处理中 配置系统 警铃 电话线 传感器 配置信息 显示信息和状态 监控传感器 激活 不激活系统 警告信号 密码处理 传感器事件 警告状态 超时 闪烁标志 开 关切换 SafeHome的状态变迁图 读用户输入 超时 监视系统状态 传感器事件行为 显示用户反馈 与 用户交互 有关 开关 切换 与 监视 控制系统 有关 显示活动状态 与 用户交互 有关 传感器事件 与 显示信息 状态 有关 与 监视 控制系统 有关 传感器事件 传感器事件 与 监视 控制系统 有关 传感器事件 与 显示信息 状态 有关 闪烁 与 显示信息 状态 有关 二 数据字典 DD DataDictionary DD是对所有与系统相关的数据元素的一个有组织的列表 以及精确的 严格的定义 使得用户和系统分析员对于输入 输出 存储成分和中间计算有共同的理解 数据字典的作用 DFD中的数据流 数据存储表示某个有组织的数据集合 它们要由SA的其他描述工具 需求字典 数据字典 来描述 包括 词条描述数据结构描述加工逻辑说明 DD中数据结构的描述方式定义式Warnier图巴科斯范式 BNF F1 航班信息文件 航空公司名称 航班号 起点 终点 日期 起飞时间 降落时间 航空公司名称 2 字母 4航班号 3 十进制数字 3字母 A Z 十进制数字 0 9 起点 终点 1 汉字 10起飞时间 降落时间 时 分时 00 23 分 00 59 日期 年 月 日年 2000 2001 2002 2004 月 01 12 日 01 31 重复项 起点 终点 1 汉字 10航空公司名称 2 字母 4航班号 3 十进制数字 3组合项 日期 年 月 日起飞时间 降落时间 时 分选择项 年 2000 2001 2002 2004 原数据项 字母 A Z 十进制数字 0 9 时 00 23 分 00 59 月 01 12 日 01 31 定义式中使用的符 操作符含义描述 定义为 与 顺序结构 重复 循环结构 或 选择结构 任选m n界域 注释符 限制重复次数举例 3 5或 5 3 表示允许重复3 5次 3 3或 3 3 表示恰好重复3次 1 表示至少出现1次 表示允许重复0至任意次 数据流条目 给出DFD中某个数据流的定义 通常包括 数据流标识数据流来源数据流去向数据流的数据组成流动属性描述 频率 数据量 购书单 发票 领书单 审查并开发票 开领书单 无效书单 学生 1 2 各班学生用书表 举例 学生 教材存量表 数据流条目说明举例 数据流名 发票别名 无简述 学生购书时填写的项目来源 学生去向 加工1 审查并开发票 组成 学号 姓名 书号 数量 数据流量 1000次 周高峰值 开学期间1000次 天 数据存储条目 数据文件词条 对某个文件的定义 包括 文件名描述数据结构数据存储方式关键码存取频率和数据量安全性要求 数据存储条目说明举例 文件名 库存记录别名 无简述 存放库存所有可供货物的信息组成 货物名称 编号 生产厂家 单价 库存量组织方式 索引文件 以货物编号为关键字查询要求 要求能够立即查询 数据项条目 数据元素词条 不可再分解的数据单位 包括 名称描述数据类型长度 精度 取值范围及缺省值计量单位相关数据元素及数据结构 数据项条目说明举例 数据项名 货物编号别名 G No G num简述 本公司的所有货物的编号类型 字符串长度 10取值范围及含义 第1位 J G 进口 国产 第2 4位 LB01 LB29 类别 第5 7位 A00 A99 规格 第8 10位 001 999 品名编号 F1 航班信息文件 航空公司名称 航班号 起点 终点 日期 起飞时间 降落时间 航空公司名称 2 字母 4航班号 3 十进制数字 3字母 A Z 十进制数字 0 9 起点 终点 1 汉字 10起飞时间 降落时间 时 分时 00 23 分 00 59 日期 年 月 日年 00 99 月 01 12 日 01 31 存折 户名 所号 帐号 开户日期 性质 印密 1 存取行 50户名 2 字母 24所号 001 999 注 储蓄所编码 规定三位数字 帐号 00000001 99999999 注 帐号规定由八位数字组成 开户日期 年 月 日性质 1 6 注 1 表示普通户 5 表示工资户等 印密 0 注 印密在存折上不显示 存取行 日期 摘要 指出 存入 余额 操作 复核 年 2001 2002 2003 2004 月 01 12 日 01 31 摘要 1 字母 4 注 表明该存取是存 是取 还是换 支出 金额 注 金额规定不超过9999999 99元 存入 金额余额 金额金额 0000000 01 9999999 99 操作 00001 99999 复核 00001 99999 字母 a z A Z 购书单 缺书单 销售 采购 1 2 第二层DFD 层 教材购销系统 教材存量表 学生 F1 缺书登记表 F2 书库保管员 进书通知 教材入库信息 领书单 DF01 10 DF20 02 销售 采购 1 0 2 0 第二层DFD 层 教材购销系统 教材存量表 学生 F1 缺书登记表 F2 书库保管员 DF02 20 DF20 10 DF10 01 1 2 XSMD CGMD DD数据流条目说明举例 图号 DF01 10 有效购书单 DF01 10 学号 姓名 书号 数量 加工条目 加工逻辑说明 加工类条目即数据处理描述 也称为小说明 描述实现加工的策略而不是实现加工的细节 小说明可认为是DD的组成部分 也可在DD中定义只说明每个加工的组成 每个处理分解成多少小处理 而在小说明中详细描述它的处理逻辑 加工条目 加工逻辑说明 加工逻辑名 登记报名单编号 1 0激活条件 收到报名单加工逻辑 1 1检查报名单 1 2编准考证号 1 3登记考生 执行频率 2000次 日 定义方法 找出所有数据元素 数据流 数据存储 数据项 加工 对数据项分类作结构定义排序DD的分类DD中的命名 遵守系统开发规范规定 DD的实现 1 人工方法 2 自动方法 利用字典管理程序 DD应具特点 1 通过名字可方便查阅数据定义 2 无冗余 3 易更新修改 3 小说明 加工逻辑说明的另一种形式 描述的内容 1 处理逻辑描述基本加工如何把输入数据流变化为输出数据流的加工原则 不涉及具体处理方法 2 执行条件 3 输入 4 输出 3 优先级 4 执行频率 5 出错处理对策 小说明举例 加工名 分类采购 CG111MD 编号 1 1 1加工激活条件 受到图书采购员分类采购操作命令加工逻辑 1 1 1 1 1预定图书 2 1 1 1 2外采图书 3 1 1 1 3赠送图书执行频率 随时 小说明举例 处理名 月票额统计 MHCW713MD 编号 7 1 3激活条件 收到每日售票额信息处理逻辑 1统计月保险金总合月保险金信息 每日日保险金信息之和2统计月合计月合计信息 每日日合计信息之和执行频率 1次 月 描述加工逻辑的工具 结构化语言判定表判定树 结构化语言 介于自然语言和形式语言之间的语言结构化语言的特点 无确定语法可分层 嵌套 处理名 核实订票处理 MHGP3200MD 编号 3 2激活条件 收到取订票信息处理逻辑 1读订票旅客信息文件2搜索此文件中是否有与输入信息中姓名及身份证号相符的项IF有THEN判断余项是否与文件中信息相符IF是THEN输出已订票信息ELSE输出未订票信息ELSE输出未订票信息执行频率 实时 判定表 决策表 描述多条件 多目标动作的形式化工具 判定表举例 计算机票折扣率 旅游时间 订票量 折扣量 7 9 12月 20 20 20 20 15 5 20 30 条件类别 四种条件组合 操作 条件组合下操作的执行 1 6 10 11月 处理名 计算折扣率 MHGP534MD 编号 5 3 4激活条件 收到预订票信息处理逻辑 计算折扣率执行频率 实时 旅游时间 订票量 折扣量 7 9 12月 1 6 10 11月 20 20 20 20 15 5 20 30 判定树 Decision决策树 条件1条件2结果计7 9 订票量 20 15 算12月订票量 20 5 折扣1 6 订票量 20 30 量10 11月订票量 20 5 二 结构化分析实施步骤 1 确定系统边界 画出系统环境图2 自顶向下 画出各层数据流图3 定义数据字典4 定义小说明 三 需求规格说明书 SRS SoftwareRequirementSpecification 需求分析阶段要完成的文档 SRS的作用 开发者与用户间事实上的技术合同书开发者下一步设计和编码的基础测试验收目标系统的依据 SRS大纲 模板 引言任务概述 项目概述 数据描述 DFD DD 功能描述接口性能需求属性其它需求 三 需求验证 1 正确性 2 无二义性 3 完整性 4 可验证性 5 一致性 6 可理解性 7 可修改性 8 可被跟踪性 9 可跟踪性 10 设计无关性 11 注释 需求文档的陈述与改进举例 1 产品必须在固定的时间间隔内提供状态消息 并且每次时间间隔不得小于60秒 后台任务管理器 BTM 应该在用户界面的指定区域显示状态消息 a 在后台任务进程启动之后 消息必须每隔60 10 秒更新一次 并且保持连续的可见性 b 如果正在正常处理后台任务进程 那么后台任务管理器 BTM 必须显示后台任务进程已完成的百分比 c 当完成后台任务时 后台任务管理器 BTM 必须显示一个 已完成 的消息 d 如果后台任务中止执行 那么后台任务管理器 BTM 必须显示一个出错信息 需求不完整 导致需求不可验证 改进 需求文档的陈述与改进举例 2 产品必须在显示和隐藏非打印字符之间进行瞬间切换 用户在编辑文档时 通过激活特定的机制 可以在显示和隐藏所有HTML标记之间进行切换 需求不可行 不完整 不确定性 导致需求不可验证 改进 3 4分析建摸方法 结构化分析 传统建模方法 面向对象分析 计算机世界 现实世界 映射 计算机世界 现实世界 结构化开发方法 结构化分析 结构化设计 结构化编程 OOA OOD OOP 面向对象开发方法 3 4 2面向对象分析方法 思考题软件开发中为什么要使用面向对象方法 面向对象分析方法与结构化分析方法有哪些相似之处 有何区别 面向对象方法是对过去的一个完全突破 还是 换汤不换药 对象 object 现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现 对象具有的含义 在现实世界中 是客观世界中的一个实体在面向对象程序中 表达成计算机可理解 可操纵 具有一定属性和行为的对象在计算机世界中 是一个可标识的存储区域 面向对象方法是一种运用对象 类 继承 封装 聚合 消息传递 多态性等概念来构造系统的软件开发方法 面向对象 对象 类 继承 消息通信 面向对象的主要特征 封闭性 Encapsulation 继承性 Inheritance 多态性 Polymorphism 类 class 具有共同属性和行为的对象的抽象类与对象的关系类是对象的抽象对象是类的实例 类 对象 对象 实体与类 对象 实体 类 抽象数据类 计算机世界 现实世界 计算机逻辑的实现 影射 抽象 实例化 抽象 概念世界 封装 封装是软件开发方法的重要原则 有两个涵义 把对象的全部属性和全部服务结合在一起 形成一个不可分割的独立单位 对象 尽可能隐蔽对象的内部细节 信息隐蔽 传统方法数据与过程是分离的 过程1 输入 输出 过程2 过程3 数据实体 属于该对象的数据 对象 处理数据的方法 消息 消息 对象把数据和处理数据的方法封状成一个单元 传统方法和面向对象方法的比较 传统方法系统是过程的集合过程与数据实体交互过程接受输入并产生输出 面向对象方法系统是交互对象的集合对象与人或其它对象交互对象发送与响应消息 继承 继承性inheritance 继承性是父类和子类之间共享数据和方法的机制继承性具有传递性继承性包括单继承和多重继承 子类 继承部分 增加部分 父类 共性部分 继承性作用 使软件系统具有开放性更好地进行抽象与分类增强代码的重用率 多态 多态性polymorphism 不同的对象收到同一消息可产生完全不同的结果 这一现象叫做多态多态的效果 用户发送一个通用的消息 而实现的细节则由接收对象自行决定 多态性的作用 增强了操作的透明性 可理解性和可扩展性增强了软件的灵活性和重用性 消息 message 消息 对象之间相互请求或相互协作的途径 是要求某个对象执行某个功能操作的规格说明消息内容 通常包含接收方及请求接收方完成的功能信息发送方 发出消息 请求接收方响应接收方 收到消息后 经过解释 激活方法 予以响应 为什么对面向对象方法感兴趣 面向对象方法的主要优点 自然性追求软件系统对现实系统的直接模拟 尽量实现将现实世界中的事物直接映射到软件系统的解空间中 软件复用可复用性 可重用性 reusebility可扩展性可管理性 可复用性 可重用性 面向对象技术允许复用的不仅仅是代码 通过面向对象技术 我们可以复用需求 分析 设计 测试计划 用户界面以及体系结构等等 事实上 软件工程生存期中的每个部分都可以复用 传统系统分析 面向功能 把系统看成一组功能OOA 把问题当作一组相互作用的实体 并确定实体间关系 面向对象技术是一个有全新概念的开发模式 其特点是 1 方法是对软件开发过程所有阶段进行综合考虑而得到的 2 从生存期的一个阶段到下一个阶段所使用的方法与技术具有高度的连续性 3 将OOA OOD OOP集成到生存期的相应阶段 开发方法的组合 OO方法的开发过程 OO方法改进了在生存期各个阶段间的界面 因为生存期各个阶段开发出来的 部件 都是类 在面向对象生存期的各个阶段对各个类的信息进行细化 类成为分析 设计和实现的基本单元 类的生存期模型 类的规格说明 从废弃型开发 既存类的复用 渐增式的实现 渐增式的测试 求精和维护 测试用例和测试的开发 实现 从既存类演变 类的设计与实现 类的规格说明指导对存放现存类的软件库进行查找现存类提供当前应用所需功能三种可能利用现存类的方向 现存类的复用 从现存类进行演变 从废弃类进行开发 对象之间的联系与对象模型 面向对象方法开发软件通常建立的三种形式的模型描述系统数据结构的对象模型描述系统控制结构的动态模型描述系统功能的功能模型三种模型从三个不同但由密切相关的角度模拟目标系统 对象模型是最重要 最基本 最核心的 对象模型对象模型表示静态的 结构的系统数据的性质 对模拟客观世界实体的对象以及对象彼此之间的关系的映射 描述了系统的静态结构 OO方法强调围绕对象而不是功能来构造系统 类及对象间常见的联系分类关系 归纳关系 一般与特殊的关系 组成关系 组合关系 整体 部分的关系 对象属性之间的静态的联系对象行为的动态联系 分类关系 一般与特殊的关系 示例 学生 本科生 研究生 组成关系 整体与部分的关系 示例 学科部 办公室 学院 实验室 对象模型中表现上述联系的结构和连接 1 分类结构 一般 特殊结构 分类是对象抽象的基础分类结构表现的是事物的一般与特殊的关系 即 is a 关系 面向对象术语中常把一般与特殊的关系称为泛化 Generalization 与特化 Specialization 联系 存户 一般 特殊结构举例 一般类 父类 基类 超类 特殊类 子类 具体类 继承 一个特殊类中的所有对象可继承一般类中的属性 服务 关系 账号姓名余额 存款取款 支票存户 储蓄存户 利息率 2 组装结构 整体 部分结构 组装结构表示对象类之间的组成关系 即整体与部分的关系 整体对于部分是 has a 关系 部分对于整体是 a part of 关系 组装结构体现了面向对象方法的聚合 也叫聚集Aggregation 原则 整体 部分结构表示法举例 微机 1 电源 主机箱 键盘 监视器 鼠标 内存 CPU 硬盘 o 3 实例连接 InstanceConnection 实例连接表现了对象之间的静态联系 通过对象的属性来表现对象之间的依赖关系 面向对象术语中把对象之间的实例连接称为链接 Link 把类之间的实例连接称为关联 Association 实例连接示例及表示 教师 指导论文0 m1 学生 教师为学生指导论文 教师 教学0 m0 n 学生 教师为学生授课 关联关系 链属性 的表示允许实例连接带有一组属性 这些属性通过关联来描述 类1 连接名称mn 类1 连接属性 关联关系 链属性 为之工作 工资职务 雇主 雇员 个人名字身份证号 公司名字地址 题目答辩时间成绩 教师 学生 指导论文0 m1 4 消息连接 MessageConnection 对象之间的通信联系 一需要另一个对象的服务 便向它发出个对象请求服务的消息 接收消息的对象响应消息 触发所要求的服务操作 消息连接体现了对象行为的动态联系 一家公司的对象模型 OMT 示例 为之工作 管理0 1 姓名身份证号码地址 员工 名字电话号码主要产品地址 公司 职务 雇用解雇 项目名预算优先级 项目 产品名成本重量 产品 工人 经理 部门 部门名 主持 参加 1 1 1 1 1 生产 网上商店对象模型 部分 示例 UML 销售代表0 1 定货 nameaddress 顾客 creditRating String 产品 雇员 1 dataReceivedisPrepaidnumber Stringprice Money 协作顾客 contactNamecreditRatingcreditLimit creditCard 个人顾客 creditRating poor 定货作业线 dispatch close remind billForMonth Quantity Integerprice MoneyisSatisfied Boolean 1 1 物品 面向对象的方法论方法论是如何对复杂系统进行 抽象 的工作 以及如何建立抽象模型 二 面向对象分析建模 OOA 面向对象分析方法确实不同于结构化分析方法吗 Fichman R GandC F Kemerer 在 Object orientedConventionalAnalysisandDesignMethodologies 中阐述 我们的结论是面向对象分析方法表现了相对面向过程的方法学 如结构化分析 的根本性变化 而且相对面向数据的方法学仅仅是增量性的变化 面向过程的方法学在建模过程中的关注点不是对象的内在性质 从而导致了和面向对象的三个基本原理相正交的问题域模型 面向对象分析方法使得软件工程师能够通过对象 属性和操作 作为主要的建模成分 的表示来对问题建模 建立分析模型5个基本原则 1 建模信息域 2 描述模块功能 3 表示模型行为 4 分解以模型显示更多细节 5 早期模型表示问题的本质 而后期模型提供实现细节 OOA的意图是定义所有和被求解的问题相关的类 及同类关联的关系和行为 为了达到这个目标 必须完成以下任务 1 必须在客户和软件工程师之间沟通了解基本的用户需求 2 必须标识类 定义属性和方法 3 必须刻划类层次 4 表示对象对象关系 对象连接 5 必须建模对象行为 6 任务 1 到 5 递进地反复使用 直至完成建模 流行的几种面向对象方法 Booch方法Coad Yourdon方法Rumbaugh方法 简称OMT ObjectModelingTechnology Jacobson方法 简称OOSE 由Rumbaugh Booch Jacobson提出的统一建模语言 UnifyModeingLanguage简称UML 目前流行的OOA方法概述Coad Yourdon方法Coad Yourdon的OOA过程概述 使用 寻找什么 标准来标识对象定义一般 特殊结构定义整体 部分结构标识主题 子系统构件的表示 定义属性定义服务 目前流行的OOA方法概述Booch方法Booch的OOA宏观开发过程概述 标识类和对象标识类和对象的语义标识类和对象间的关系进行精化 目前流行的OOA方法概述Rumbaugh方法 简称OMT Rumbaugh的OOA过程概述 开发对问题的范围陈述建造对象模型开发动态模型构造系统的功能模型 不同面向对象分析方法的相似步骤 1 使用基本需求作为指南选择类和对象 2 为对象标识属性和操作 3 定义组织类的结构和层次 4 建造对象 关系模型的 5 建造对象 行为模型 统一的OOA方法由Rumbaugh Booch Jacobson提出的统一建模语言 UnifyModeingLanguage简称UML UML是一种定义良好 易于表达 功能强大且普遍实用的建模语言 UML的开发历程 Booch 91 其它方法 OMT 1 OOSE Booch 93 OMT 2 UML0 8 UML0 9 0 91 UML1 0 UML1 1 UML同行专家意见 OMG认证 10 95 10 96 9 96 OMG审核 1 97 OMG修正 9 97 OMG采用 11 97 UML1 3 对象模型技术 OMT ObjectModelTech 对象模型 动态模型 功能模型 基本模型 三个模型分别从不同角度分析系统 分析模型对象模型 描述静态结构 定义做事情的实体功能模型 描述处理 数据变换 指明系统应 做什么 动态模型 描述交互过程 规定什么时候做 OMT模型系统分析和设计过程概观图 产生需求 结构及对象设计 建立模型 问题描述 对象模型 动态模型 功能模型 详细的对象模型详细的动态模型详细的功能模型 分析阶段 设计阶段 实例 饮料自动售货机系统设置一个饮料自动售货机可以放置五种不同或部分相同的饮料 可由厂商根据销售状况自动调配 并可随时重新设置售价 但售货机最多仅能放置50罐饮料 其按钮设计在各种饮料样本的下方 若经金额计算器累计金额足够 则选择键灯会亮 若某一种饮料已销售完毕 则售完灯会亮 销售顾客将硬币投入售货机 经累加金额足额的饮料选择键灯亮 等顾客按键选择 顾客按键后饮料由取物楼掉出 并自动结算及找钱 取消交易顾客可在按下选择键前任何一个时刻 拉动退币杆取消交易收回硬币 步骤 1 找出对象及其关联 2 赋予类及关联的属性数据 3 组织类的结构 OMT的对象图 找出饮料自动售货机系统中的对象设置一个饮料自动售货机可以放置五种不同或部分相同的饮料 可由厂商根据销售状况自动调配 并可随时重新设置售价 但售货机最多仅能放置50罐饮料 其按钮设计在各种饮料样本的下方 若经金额计算器累计金额足够 则选择键灯会亮 若某一种饮料已销售完毕 则售完灯会亮 销售顾客将硬币投入售货机 经累加金额足额的饮料选择键灯亮 等顾客按键选择 顾客按键后饮料由取物楼掉出 并自动结算及找钱 取消交易顾客可在按下选择键前任何一个时刻 拉动退币杆取消交易收回硬币 对象模型描述系统内部对象结构 包括对象本身的定义 对象的属性 操作 以及对象与其它对象之间的关系 对象模型是OMT方法论中最重要的部分 动态模型 功能模型都将依次而建立对象模型以对象图形式呈现 对象图由类构成 饮料自动售货机系统对象图 贩卖机 饮料号码价格 投币 接受饮料掉出金额显示按纽退币杆售完显示 存量计算器 饮料号码存量 递减售完显示重置 选择钮 选择钮状态 灯亮灯熄售完灯亮按钮 顾客 姓名硬币 投币 置入拿取饮料 退币杆 退币杆状态 拉动 金额计算器 金额 累加找零重置 购买 选取 被拉动 属于 属于 属于 属于 建立数据字典为所有模型实体准备一个数据字典 精确描述每一个对象类 包括 成员约束关联 属性 操作 动态模型用来描述系统与时间相关的动态行为即系统的控制逻辑 表现对象彼此间经过相互作用后 随时间改变的不同运算顺序 动态模型以 事件 Events 和 状态 States 为其模型的主要概念 动态模型以状态图形式呈现 事件 瞬时发生的行为 引起对象状态转换的控制信息 事件类和属性举例 飞机起飞 航线 航班号 城市 按动鼠标按钮 按钮 位置 脚本和事件踪迹脚本是系统某一次特定运行时期内发生的事件序列 脚本也叫场景 事件追踪图侧重说明发生于系统执行过程中的一个特定 场景 scenarios 通话脚本 只包括影响电话线的事件 17 打电话者挂断电话 16 电话切断 15 接电话者挂断电话 14 通电话 12 接电话者电话停止振铃 13 铃声在打电话者电话中消失 11 接电话者回答 10 铃声在打电话者电话传出 9 接电话者的电话开始振铃 8 打电话者拨数字 3 7 打电话者拨数字 7 6 打电话者拨数字 3 5 打电话者拨数字 2 4 电话忙音结束 3 打电话者拨数字 8 2 电话忙音开始 1 打电话者拿起听筒 状态 对象属性和对象关联的抽象形式状态的特征表示方法举例 状态 闹铃响描述 闹铃响表示预定时间到产生本状态的事件序列 设置闹钟 预定时间 不包括清除闹铃的任何后续操作当前时间 预定时间表征本状态的条件 闹铃 开 从预定时间起没有按键的情况下 目标时间 当前时间 目标时间 20秒本状态接受的各种时间 事件动作下一个状态当前时间 目标时间 20重新设置闹钟正常按下按钮 任意按钮 重新设置闹钟正常 动态模型表示方法 状态图状态和事件的网络 侧重描述每一类对象的动态行为 状态图例 状态1 Do 活动1 状态2 事件1 条件1 动作1 结束事件 初始事件 空闲 可视菜单 左边按钮按下 显示弹出菜单 左边按钮弹起 擦除弹出菜单 光标移动 高亮菜单项 弹出菜单动作 举例 饮料自动售货机系统的状态图 投入硬币 有效的 按下选择饮料键 Do 显示售货机在备用所有灯都关闭 Do 显示金额总数 Do 显示金额已够饮料选择灯亮 取出饮料结算找零扣减存量完成交易 饮料 售完 灯亮 投入硬币金额 1元 5元 10元 金额不足再投币 存量为零 无效的硬币 取消 取消 回到备用状态 回到备用状态 事件追踪图举例 打电话的事件追踪图 挂断电话 电话切断 挂断电话 通话 通话 停止振铃 停止振铃 响应电话 电话振铃 铃声 拨号 3 拨号 7 拨号 3 拨号 2 电话忙音结束 拨号 8 电话忙音开始 拿起听筒 电话线 接电话者 打电话者 存量为零 找零 扣减存量 灯亮 余额 饮料 结算 选择键 选择按纽 灯亮 金额总够 显示总额 总额 累加 投入硬币 金额计算器 存量计算器 顾客 售货机 选择键 举例 饮料自动售货机系统的事件追踪图 售完灯 3 功能模型用来描述系统中数据的变换 传统DFD 控制流 对象A 对象B 过程1 过程2 数据存储区 控制流 数据流 基于三个模型的分析步骤需求陈述对象建模动态建模功能建模添加操作反复建模 OMT支持整个软件生命周期 需求分析 系统设计 系统实现 测试与维护 1 分析阶段理解应用问题 建立对象模型 动态模型和功能模型 说明对象关联 控制流及数据变换 2 系统设计阶段确定系统框架 考虑并发任务 通讯机制和数据存储策略 3 对象设计阶段从实现的角度细化分析对象模型 动态模型和功能模型 OMT方法的特点 开发重点在分析阶段强调数据结构而不是功能形式化描述能力强开发步骤的衔接良好重复性的开发过程 Yourdon的OOA方法以类与对象图及对象状态图为辅助工具 建立问题域的五层模型 OOA模型被划分为五个层次 五个视图 OOA的结构 类的边界 Class objectlayer 类及对象层 Attributelayer 属性层 Servicelayer 服务层 Structurelayer 结构层 Subjectlayer 主题层 实例的边界 实例连接 消息连接 主题 服务 属性 分析阶段由五个活动组成 1 标识类及对象 2 标识结构 3 标识主题 4 定义属性及实例连接 5 定义服务及消息连接五个步骤常根据需要交叉进行 步骤1 识别类与对象 1 发现对象主要策略 考虑问题域人员组织物品设备事件表格结构考虑系统边界人员设备外系统考虑系统责任 问题域描述中的名词 往往是候选的及对象 根据问题域结构可提取候选的类及对象 例 银行储蓄管理系统 与系统发生作用的其它系统和必要的设备可作为候选的类及对象 如 打印机等 分析阶段可不把与实现有关的计算机部件作为候选的类及对象 系统必须观测 记忆的与时间有关的事件可作为候选的类及对象 如 建立帐户的日期打开一个帐户等与系统发生交互的人及系统必须保留其信息的人 可作为候选的类及对象 如 柜员 储户等这些人所属的组织单位 可作为候选的类及对象 如 总行 分行等 系统必须记忆 且不在问题域约束中的顺序操作过程 为了指导人机交互 可作为候选的类及对象 如 柜员事务 远程事务等 其中属性是操作过程名 操作特权及操作步骤的描述 系统需了解掌握的物理位置 办公地点等可作为候选的类及对象 如 ATM机器 帐户等 2 审查和筛选 舍弃无用的类对象的精简只有一个属性的对象只有一个服务的对象推迟到OOD考虑的对象 帐册 上级系统接口 供货员 销售事件 商品 特价商品 计量商品 收款机 商品一览表 超市销售管理系统 对象层 步骤2 定义属性与服务定义属性定义服务对象的状态与状态转换图例 栈的状态 服务对照表 例 栈状态转换图 空 半满 满 创建 压入 未满 弹出 未空 压入 报错 弹出 报错 弹出 已空 压入 弹出 压入 已满 定义服务对象行为分类发现服务的策略审查与调整识别对象的主动行为服务的详细说明 服务解释 消息协议 消息发送 约束条件 服务流程图 帐册 前班节余销售事件表收入累计上交款本班节余 接班计帐报帐交班 上级系统接口 帐目目册 消息发送查帐报帐价格更新种类增删 供货员 缺货登记表 缺货登记供货 销售事件 收款人购物清单应收款 销售计划入帐 商品 编号名称单价架上数量下限 售出补充价格更新 特价商品 开始日期结束日期 计量商品 单价计量单位计价方式 售出 补充 价格更新 收款机 本班收款员开始时间结束时间 登录售货结帐 商品一览表 商品目录 检索种类增删 超市销售管理系统 特征层 建立数据字典为所有模型实体准备一个数据字典 精确描述每一个对象类 包括 成员约束关联 属性 操作 对象字典举例 类名父类提供的服务需要的服务帐户 ATM 银行 出纳员 步骤3 定义结构与连接初步确定关联对应于描述性动词或动词短语需求陈述中隐含根据问题域知识得出筛选完善分析标识对象之间的关系对象之间的分类关系 一般 特殊结构对象之间的组成关系 整体 部分结构对象之间的静态联系 实例连接对象之间的动态关系 消息连接 从一般类发现特殊类 公司职员 股东 姓名身分证号码 股份 职员 工资 公司职员 姓名身分证号码股份工资 从特殊类发现一般类 公司职

温馨提示

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

评论

0/150

提交评论