已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第3章软件需求分析 软件需求需求分析过程传统方法的分析建模举例 2 3 1软件需求 1 需求的概念需求 requirements Jones定义为用户所需要的软件必须达到的目标和能力 Lethbridge定义为需求是关于系统将要完成什么工作的一段描述 他们必须经过所有相关人员的认可 其目的是彻底的解决用户的问题 需求是一段描述 意思是每个需求是相对短小简明的一段信息 表现为一个事实 它可以是一段话或用各种图表示 一组需求的集合成为需求文档 关于系统将要完成什么工作 需求描述了系统应当完成的任务 不描述系统将如何实现 必须经过所有相关人员的认可 意指需求必须经过评审 才能成为正式的需求 其目的是彻底的解决用户的问题 有助于解决用户的问题 该需求才有存在的价值 3 2 需求的类型 1 功能性需求 描述系统应该做什么 即为用户和其它系统完成的功能 提供的服务 2 非功能性需求 必须遵循的标准 外部界面的细节 实现的约束条件 质量属性等等 非功能需求限定了选择解决问题方案的范围 如运行平台 实现技术 编程语言和工具等 例 将飞机订票系统中的以下方面做如下的划分 F代表 功能性 NF代表 非功能性 X代表 不应当是需求 简要的说明功能性或非功能性需求的种类 对于不应当是需求的方面 说明其原因 4 如何输入有关航班 乘客及订票信息 F 输入 什么信息要出现在机票和报告中 F 输出 如何计算乘机费用 F 计算 什么信息必须存储在旅行社和其他人访问的数据库中 F 数据存储 这个系统应该设计成可以处理旅行常客计划 NF 增强的容限 这个系统在任何时候都必须是可用的 一周中只允许有2分钟宕机时间 NF 有效性 必须使用排序算法根据离开时间对航班排序 X 这是一个设计问题 5 3 需求的描述 1 结构化语言 2 图形化表示 3 数学描述 形式化描述 4 软件需求文档 需求规格化说明 是需求分析阶段的产品 是所有其他开发和管理活动的基础 对系统开发过程中其他活动的影响 项目经理根据它制定或修改开发计划 设计人员根据它进行系统设计 测试人员根据它编写测试计划 设计测试用例 产品发布人员根据它编写产品介绍和用户文档 培训人员根据它编写培训教程 6 IEEE标准为需求文档提出了以下结构 组织机构内部可以基于此标准扩展 1 引言a 需求文档的目的b 文档约定c 预期的读者和阅读建议d 产品范围e 参考文献 2 综合描述a 产品前景b 产品功能与优先级c 用户特征d 运行环境e 设计与实现上的限制f 假设和依赖性 7 3 需求描述a 功能需求b 数据需求 与功能有关的数据定义和数据关系c 性能需求 响应时间 容量要求 用户数等d 外部接口 用户界面 软硬件接口 通信接口e 设计约束 软件支持环境 报表 数据命名等f 软件质量属性 可维护性 可靠性 可移植性 可用性 安全性等等 g 其他需求这一节是文档中最实质性的部分 由于在机构组织的实践中存在极大的变数 对这一节定义的标准结构可以进行增删 4 附录 词汇表 分析模型 待定问题列表 5 索引 8 3 2需求分析过程 需求分析是指开发人员通过对应用问题及其环境的调查分析 准确的理解用户的需求 将不规范的需求陈述转化为完整的需求定义 再将需求定义编写成需求规格化说明的过程 对于一些新的复杂的系统 如果没有专门进行可行性研究 需求分析过程前应集中回答以下几个问题 1 系统是否符合组织机构的总题目标 业务需求 2 系统是否可能在现在的技术条件 预算和时间限制内完成 经济 技术上的可行性 3 系统能否与已经存在的其他系统集成 当收集到信息并评估后 需要对系统是否要开发给出意见和建议 书写可行性报告 该过程可能提出对系统功能范围的修正 对预算和时间安排的调整意见或者是对系统高层需求的建议 9 1 需求获取 1 个别访谈和召集会议 2 观察用户工作流程 3 利用原型 4 使用实例 用例 用例把系统分成一组逻辑的 互相联系很少的部分 每一部分都描述了系统运行的某种方式 因此容易理解每个用例达到的功能 问题分析 问题描述 原型化 文件管理与确认 需求获取和分析 需求定义和说明 是否已经记录了用户需要的所有部分 是否使用了正确的技术 功能是否可行 是否记录了用户期望的部分 确定需求的过程 10 例 列出图书馆系统中以下参与者的最小用例集 借阅者 借书员 图书管理员 会计系统 借阅者 按题目查询书籍 按作者查询书籍 按主题查询书籍 预定已被其他人借出的书籍 查询借阅者的个人信息并列出借阅的书籍 11 借书员 所有借阅者的用例 再加上 为借阅者查找某一书籍 登记已归还的书籍 续借一本书 登记缴纳的罚款 添加新的借阅者 更新借阅者的个人信息 地址 电话号码等 图书管理员 所有借阅者和借书员的用例 再加上 添加藏书 删除藏书 改变系统中对已有书籍的记录信息会计系统 独立运行 获得借阅者支付的超期罚款 12 3 分析与综合用文字和图形描述不同视图以揭示更深的 易混淆的问题 确保与所有风险承担者达成共识 1 分析需求的可行性 允许的成本 性能 与其他需求的冲突 外界因素的依赖和技术障碍等 2 对于渐增式开发要确定需求的优先级别 以便确立产品版本 3 建模 图形化的表示分析模型可以增强对软件需求的理解 也为软件设计奠定了基础 模型包括 13 数据流图 DFD 功能模型 实体关系图 ERD 信息模型 状态转换图 STD 行为模型 类图 信息模型 顺序图 行为模型 合作图 行为模型 等等 4 使用原型法 减少项目风险 5 建立数据字典 4 编写需求文档 14 5 需求验证需求验证的重要性 如果在后续的开发或当系统投入使用时才发现需求文档中的错误 就会导致更大代价的返工 由需求问题而对系统做变更的成本比修改设计或代码错误的成本要大的多 假设需求阶段引入1个错误的需求 设计时对这个需求需要5 10条设计实现 1条设计需要5 10条程序 1条程序需要3 5种测试组合测试 原始需求 正确的规格说明错误的规格说明 正确的设计错误的设计对错误需求的设计 正确的编码错误的编码对错误设计的编码对错误需求的编码 正确功能测试到的错误没有测试到的错误 一个错误的需求 纠正成本100元 10纠正成本1000元 10 5 15 对需求文档需执行以下类型的检查 1 有效性检查检查不同用户使用不同功能的有效性 2 一致性检查在文档中 需求不应该冲突 3 完备性检查需求文档应该包括所有用户想要的功能和约束 4 现实性检查检查保证能利用现有技术实现需求 16 验证技术 1 需求评审 由分析员 设计员 测试员 用户参与的正式或非正式的会议评审 正式会议要有严格的评审程序 要有会议记录 开发组根据缺陷建议修改需求说明并重审 2 利用原型检验系统是否符合用户的真正需要 3 对每个需求编写概念性的测试用例 4 编写用户手册 用浅显易懂的语言描述用户可见的功能 5 自动的一致性分析 可用CASE工具检验需求模型的一致性 17 3 3传统方法的分析建模 分析建模是使用文本和图表形式的组合 以相对容易理解和能直接评审正确性 完整性和一致性的方式来描述数据 功能和行为的需求 在过去的数年中 人们提出了许多种分析建模的方法 其中两种在分析建模领域占有主导地位 第一种是结构化分析 StructuredAnalysis SA 70年代末由DeMarco等人提出 这是传统的建模方法 另一种方法是面向对象的分析 将在后面介绍 结构化分析方法不是被所有的使用者一致地使用的单一方法 众多科学家对其进行了扩充 因此它是发展了超过30年的一个混合物 18 1 分析模型分析模型必须达到三个主要目标 1 描述用户的需要 使用户和开发人员更好理解 2 建立创建软件设计的基础 3 定义在软件完成后可以被确认的一组需求 为了达到这些目标 在结构化分析中导出的分析模型如图所示 图3 1分析模型 19 数据字典 包含了软件生产或使用的所有数据对象描述的中心存储库 实体 关系图 ERD 描述数据对象间的关系 每个对象的属性由 数据对象描述 来描述 数据流图 DFD 用于两个目的 指明数据在系统中移动时如何被变换 反映对数据流进行变换的功能 和子功能 在DFD中出现的每个功能的描述包含在 加工规约 中 状态转换图 STD 指明作为外部事件的结果系统将如何动作 有哪些行为 软件控制方面的附加信息包含在 控制规约 中 20 2 数据建模在数据密集型应用问题中 对复杂数据或数据间复杂关系的分析和建模是需求分析的重要任务之一 有助于数据库的设计 数据建模回答与任何数据处理应用相关的一组特定问题 系统处理哪些主要的数据对象 或实体 每个数据对象的组成如何 哪些属性描述了这些对象 每个对象与其他对象有哪些关系 这些对象当前位于何处 对象和变换它们的处理之间有哪些关系 21 分析人员经常使用实体 联系 EntityRelationship ER 图来描述数据对象及相互之间的关系 ER模型包含了3种相互关联的信息 数据对象 数据对象的属性 数据对象相互连接的关系 1 1 1 N M N 下图是一个教学管理的ER图 22 教师 学生 课程 教 学 M N M N 教师号 姓名 性别 职称 系别 学号 姓名 性别 系别 班级 时间 成绩 课程号 课名 学时 学分 其中 表示实体 表示属性 表示联系 为了降低图的复杂性 有时属性不画在ER图中 单独造表 23 3 功能建模 1 数据流图 DataFlowDiagram DFD DFD用来描述数据在处理序列中的流动 由箭头给出流动的数据 泡泡表示对数据的变换 加工或处理 两条平行横线表示数据存储 数据库 矩形表示外部实体 数据源或数据池 图3 2描述了一个反映 看病 功能的DFD DFD可以自顶向下 逐层分解 第0层DFD将整个系统表示为一个具有输入和输出数据的泡泡 反映了系统的语境 以下各层分别是上一层泡泡的分解 分解到可理解为止 表示在第1层的每个加工是表示在语境模型中的整个系统的子功能 见图3 3 24 图3 2 看病 的数据流图 25 图3 3数据流图的分解 26 分解时注意保持每次精化的输入输出数据流一致 称为分层数据流图的平衡 图形并不能充分反映软件的需求 需要用数据字典和 加工规约 对分析模型进行补充 数据字典对DFD中的元素进行严格的定义与解释 加工规约说明DFD中的 泡泡 隐含的处理细节并指出加工的约束与限制 DFD符号简单 适用于数据处理系统的分析建模 关注的重点是数据流而不是控制流 不易于实时系统的分析 27 2 IDEF0图美国国防部使用的图形化建模技术 一个基本活动图如图3 4所示 每个活动包括4类要素 输入 控制 机制和输出 控制是限制所描述活动的类型或活动所受约束 机制是活图3 4一个基本的IDEF0图 A 0图 动的外部支持 如工具 技术 数据库等 该图如同DFD一样 通过逐层分解展示系统的功能与子功能 每一层分解的活动为3 6个 图3 5为第1层的IDEF0图 28 图3 5 看病 的IDEF0图 A0图 29 4 行为建模SA的扩展版本才使用STD进行行为建模 STD通过描述状态以及导致系统改变状态的事件来表示系统的行为 STD一般用圆角矩形 以下例图中用矩形 表示状态 每个状态代表系统的一种行为模式 状态之间用箭头连接 表示当发生某个事件或满足某条件时 激发某个动作 引起对象或系统状态间的转移 图3 6和图3 7分别是复印机软件的DFD和STD 行为模型有助于理解系统的预期行为 便于检验 需求规格说明 是否包含了与状态变化相关的功能需求 有利于对实时系统进行分析 30 图3 6复印机软件的DFD 31 图3 7复印机软件的STD 32 5 数据字典 DataDictionary DD DD是对所有与系统相关的数据元素的一个有组织的列表和精确的 严格的定义 使得用户和开发人员对于这些数据元素有共同的理解 它可以管理各种模型中的各种信息 尽管各工具中字典的形式各不相同 但都包含以下信息 名称 别名 何处使用 如何使用 内容描述 描述符号记号意义例1 西安交大电话号码 由 构成 82668 82669 82660 后缀号码 和例2 学生名表 1 姓名 成绩 30 或1 n1 n次重复 补充信息 可选数据类型 限制 约束等 33 5 加工规约和控制规约说明基本加工的处理逻辑以及一些附加信息 描述工具 结构化语言 半形式化语言 表格 如判定表 加工激活表 下图是某大学 录取新生 满足一组条件规则的判定表 规则1规则2规则3规则4规则5标准考试得分高TFFFF平时成绩好 TFFF参加课外活动 TFF好的推荐材料 TF发送拒绝信 发送录取通知 34 条件和动作 或结果 列在表格的左边 每列代表一组条件下系统要做的动作 或取得的结果 也说明了当系统处于列中所描述的状态时 将要遵守的规则 T 表示本行的条件为 真 F 为 假 为 无所谓 表示在本列组合条件下采取的动作 判定表用于反映系统在多个条件组合下 将要采取的行动 如果有n个条件 就有2n个可能的条件组合 这样表的结构就会很大 注意规则3 4和5 是重复的 可以取消4和5 去掉表中冗余的规则 以减少表的规模并更容易理解 通过制作 分析判定表 可进一步检查需求说明的完整性 一致性 35 3 4例1 机票预订系统 其功能为 旅行社把预订机票的旅客信息 姓名 性别 身份证号码 旅行时间 目的地等 输入系统 系统为旅客安排航班 打印出取票通知单 旅客在飞机起飞的前一天凭取票通知单交款取票 系统检验无误 输出机票给旅客 建立该系统DFD 机票预订系统 旅行社 旅客 订票单 取票单 取票单 机票 机票预订系统顶层图 36 预订机票1 旅客取票2 订票单 取票单 取票单 机票 机票文件 机票预订系统0层图 检验有效性1 1 查询航班1 2 登记机票1 3 打印取票单1 4 机票文件 航班目录 订票单 有效 有航班 已登记 取票单 预订机票 子图 1层图 图1 37 图2 这样逐步求精分解下去 直到每个加工相对简单 整个图的功能可理解为止 查询机票文件检验取票单2 1 记帐2 2 修改机票文件并打印机票2 3 机票文件 账目文件 取票单 有效取票单 已交款 机票 旅客取票 子图 1层图 38 例2 家庭安全系统 SafeHome 是一个基于微处理器的系统 能识别异常事件并采取相应防护措施 异常事件包括 非法侵入 火灾等 一旦异常事件被传感器识别出来 系统自动启动电话向监控中心报警 具体功能为 1 在安装时允许用户进行系统配置 配置的信息有 每一个传感器的类型和编号 报警电话号码 启动和关闭系统的密码 警报延迟和电话
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025山东省德发政务服务外包有限公司(蓬莱工作区)招聘50人笔试历年典型考点题库附带答案详解试卷3套
- 2025安徽科技大市场建设运营有限责任公司人才招聘(第二批)人员及笔试历年备考题库附带答案详解试卷3套
- 2025天津荣程钢铁集团招聘3人笔试历年典型考点题库附带答案详解试卷3套
- 2025四川自贡市东投建设开发有限公司招聘2人笔试历年常考点试题专练附带答案详解试卷3套
- 福清市公务员考试试题及答案
- 2025中国建科校园招聘笔试历年典型考点题库附带答案详解试卷3套
- 塑料薄膜制品技术改造项目施工方案
- 方城县籍在外公务员考试试题及答案
- 德宏公务员考试行测试题及答案
- 2025年及未来5年市场数据中国磁鼓分离器行业市场运行现状及未来发展预测报告
- 2024-2025学年湖北省武汉市武昌区武珞路中学八年级(上)期中数学试卷
- DB52T 1336-2018 贵州岩溶场地岩土工程勘察技术规程
- 突发公共卫生事件应急预案演练脚本
- 2024年人教部编版语文小学三年级上册期中检测题及答案(一)
- 园艺产品商品化处理:包装
- 职业技能竞赛-人工智能训练师理论知识题库(附参考答案)
- 四年级上册劳动《垃圾分类宣传员》课件
- 大话机器人智慧树知到期末考试答案章节答案2024年青海大学
- 交回原证承诺书
- 消防施工合同电子可打印范文(2024版)
- 撤资还是股权转让?【税收筹划技巧方案实务】
评论
0/150
提交评论