《软件工程原理》讲义-02_第1页
《软件工程原理》讲义-02_第2页
《软件工程原理》讲义-02_第3页
《软件工程原理》讲义-02_第4页
《软件工程原理》讲义-02_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

软件工程 1 软件工程原理第二章需求分析 2 1引言 内涵与步骤2 2系统分析 做不做 2 3需求获取 做什么 2 4需求建模 模型化2 5需求定义与评审 文档化 软件工程 2 2 1引言 需求分析是一项软件工程活动 其目的是 首先 从系统的层面确定该工程能不能做其次 清楚地理解所要解决的问题 完整地获取用户要求 然后 刻划出软件的功能和性能 还需要指明软件与其他系统元素的接口 最后 应建立软件必须满足的约束 1 软件需求分析的目的 软件工程 3 需求分析是一项软件工程活动 它包括 系统分析 从系统角度来看是否可行 需求获取刻划出软件的功能和性能 指明软件与其他系统元素的接口 建立软件必须满足的约束 需求建模需求分析建立起来的模型为日后软件设计人员提供了可被翻译成数据 体系结构 接口和处理过程设计的模型 2 需求分析的步骤 软件工程 4 4 需求规格说明需求规格说明为开发人员和用户提供软件开发完成时质量评价的依据 5 需求评审需求分析研究的对象是用户的要求 必须全面理解用户的各项要求 准确表达被接受的用户要求 只有经过确切描述的软件需求才能成为软件设计的基础 软件工程 5 软件开发是要实现目标系统的物理模型 需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型 解决目标系统 做什么 的问题 软件工程 6 2 2系统分析 基于计算机的系统的系统元素包括硬件 软件 人 数据库 文档和过程 系统分析的目标识别用户要求评价系统的可行性 进行经济和技术分析把功能分配给硬件 软件 人 数据库和其它系统元素建立成本和进度限制生成系统规格说明 软件工程 7 识别用户要求 分析员必须考虑以下问题 识别希望的功能和性能范围 确定系统的功能 性能 约束和接口 功能和性能可靠性和质量总的系统目标成本与进度限制 制造需求市场与竞争情况有效的技术将来可能的扩充 软件工程 8 可行性研究 可行性研究从经济可行性 技术可行性 法律可行性和用户操作可行性等方面评价系统是否值得做 是否能做 可行性研究的步骤1 确定项目的规模和目标2 研究当前正在运行的系统3 建立新系统的高层逻辑模型4 导出和评价各种方案 软件工程 9 推荐可行的方案编写可行性研究报告成本估算专家估算技术 Delphi技术 成本估算模型 COCOMO 效益估算投资回收期纯收入投资回收率 经济可行性成本 效益分析 软件工程 10 技术可行性技术风险分析 技术解决方案的实用性使用的技术实用化程度技术解决方案合理程度技术资源的可用性参与人员的工作基础基础硬件 软件的可用性软件工具实用性 软件工程 11 法律可行性侵权和责任问题 专利法著作权法软件保护条例用户类型 外行型 熟练型 专家型操作习惯使用单位的计算机使用情况使用单位的规章制度 用户操作可行性 软件工程 12 2 3需求获取 需求获取是在问题及其最终解决方案之间架设桥梁的第一步 需求获取的目的是清楚地理解所要解决的问题 完整地获得用户的需求 获取需求的一个必不可少的结果是对项目中描述的客户需求的普遍理解 一旦理解了需求 分析者 开发者和客户就能探索出描述这些需求的多种解决方案 软件工程 13 软件需求的层次 业务需求反映了组织或客户对系统 产品高层次的目标要求 它们一般在项目视图和范围文档中给予说明 用户需求描述用户使用软件需要完成哪些任务 它们可通过使用实例图或脚本说明加以阐明 功能 非功能需求定义了开发者必须实现的软件功能 而非功能需求如表所示 软件工程 14 软件工程 15 需求获取过程 需求获取包括以下活动 发现和分析问题发现问题症结 并分析问题的原因 结果关系 获取需求根据对问题的理解定义需求 使用调查研究方法收集信息 遵循需求获取框架 按照三个成分观察 即数据 过程和接口 需求归档以草稿形式归档调查结果 形式有用例 决策表 需求表等 软件工程 16 需求获取技术的基本特征 好的需求获取技术 对于规范需求获取活动 高效准确地获取需求定义 是十分重要的 好的需求获取技术 应具有如下基本特征 提供便于沟通的工具 如易于理解的语言和直观的图表 提供定义系统边界 交互 的方法 提供支持抽象的机制 如 分解 映射 等 软件工程 17 鼓励分析员使用面向问题的术语思考问题 编写文档 为分析员提供多种可供选择的解决方案 适应需求的变化 适于以上特征的需求分析方法 基于数据流图的结构化分析方法 基于用例 usecase 的建模方法 需求获取技术的关键点在于 深入浅出需求获取要尽可能全面 细致 软件工程 18 获取的需求是个全集 系统真正实现的是个子集 分析时的调研内容并不都纳入到新系统中 目的在于以后的扩充 以流程为主线在与用户交流的过程中 应该用流程将所有的内容串起来 如信息 组织结构 处理规则等 这样便于交流沟通 流程描述有宏观 也有微观 既要强调总体的业务流程 全生存周期的业务流程 又要对流程细化 有分支的业务流程 软件工程 19 需求获取应遵循的原则 抽象和分解是在人们认识世界和改造世界的长期实践中总结出来的行之有效的原则 在需求获取的过程中需遵循的三个原则 分解 捕获问题空间的整体 部分关系 如问题 子问题分解 抽象 捕获问题空间的一般化 特殊化关系 如问题的不同变型 投影 捕获问题空间的多维视图 即从不同角度考察 软件工程 20 针对信息系统的需求调研方法 调研用户的组织结构 岗位设置 职责定义 从功能上区分有多少个子系统 划分系统的大致范围 明确系统的目标 调研每个子系统的工作流程 功能与处理规则 收集原始信息资料 用数据流来表示物流 资金流 信息流三者的关系 对调研内容事先准备 针对不同管理层次的用户询问不同的问题 列出问题清单 将操作层 管理层 决策层的需求既联系又区分开来 形成一个需求的层次 软件工程 21 对与用户沟通的情况及时总结归纳 整理调研结果 初步构成需求基线 若基线符合要求 则需求获取完成 需求调研的主要手段 发调查表 召开调查会 向用户领域的专家个别咨询 实地考察 跟踪现场业务流程 查阅与待开发系统有关的资料 使用各种调查工具等 软件工程 22 需求整理与表达的方法 采用穷举方法可以避免遗漏 采用归纳方法 通过对各种情况进行综合分类可以使问题条理化 采用抽象方法 可以发现问题的实质 抓住问题的主要矛盾 忽略其次要矛盾 需求整理可以多种手段共用 如组织结构图 业务流程图 多叉树 关系矩阵 文字叙述 表格 图形等 需求描述包括组织结构与岗位定义 业务流程 处理规则 数据项 功能以及上述5个方面的关系 软件工程 23 2 4需求建模 需求建模是为了分析需求 以确定项目的确切需求 需求建模遵循三个原则 划分 描述需求的整体 部分关系 抽象 描述需求的一般化 特殊化关系 投影 描述需求的多维视图 定义系统模型要区分逻辑模型和物理模型 常用模型有数据建模 功能建模和过程建模 软件工程 24 常用的分析方法 面向数据流的结构化分析方法 SA 面向数据结构的Jackson方法 JSD 面向数据结构的结构化数据系统开发方法 DSSD 面向对象的分析方法 OOA 等 软件工程 25 结构化分析方法最初只是着眼于数据流 自顶向下 逐层分解 建立系统的处理流程 以数据流图和数据字典为主要工具 建立系统的逻辑模型 扩充后 将建模技术扩展到数据建模 功能建模和行为建模 以实体 关系图 数据流图和控制流图 状态 迁移图为工具 数据字典为核心 从不同视点建立系统的分析模型 结构化分析方法 软件工程 26 结构化分析的分析模型 实体 关系图 状态 迁移图 数据流图 数据对象描述 加工规格说明 数据字典 控制规格说明 软件工程 27 1 数据建模 数据模型包括三种互相关联的信息 数据对象 描述对象的属性 描述对象间相互连接的关系 在需求分析阶段描述数据对象和它们之间的关系 使用了E R图 例如 在教学管理中 一个教师可以教授零门 一门或多门课程 每位学生也需要学习几门课程 因此 教学管理中涉及的对象有学生 教师和课程 软件工程 28 教学数据模型 软件工程 29 实例的关联有三种 一对一 1 1 一对多 1 m 多对多 n m 这种实例的关联称为 基数 基数表明了 重复性 软件工程 30 软件工程 31 2 功能建模和数据流 最初 结构化分析方法仅讨论数据流建模 目标系统被表示成如图所示的数据变换流程图 系统的功能体现在核心的数据变换中 顶层数据流图 上下文环境图 软件工程 32 数据流图中的主要图形元素 软件工程 33 分层的数据流图 软件工程 34 实例 四六级考试系统的功能 1 对考生送来的报名单进行检查 2 对合格的报名单编好准考证号后将准考证送给考生 并将汇总后的考生名单送给阅卷站 3 对阅卷站送来的成绩单进行检查 并根据考试中心制定的合格标准审定合格者 4 制作考生通知单 含成绩及合格 不合格标志 送给考生 5 按地区进行成绩分类统计和试题难度分析 产生统计分析表 软件工程 35 软件工程 36 根据考务处理业务 画出顶层数据流图 以反映最主要业务处理流程及系统与外界的关系 经过分析 考务业务处理的主要功能应当有登记报名单 统计成绩两个主要数据流 输入的源点和输出终点是考生 考试中心和阅卷站 然后从输入端开始 根据考务业务工作流 画出数据流流经的各加工框 逐步画到输出端 得到第0层数据流图 软件工程 37 软件工程 38 软件工程 39 软件工程 40 3 行为建模 行为建模给出需求分析方法的所有操作原则 但只有结构化分析方法的扩充版本才提供这种建模的符号 数据流图不描述时序关系 控制和事件流通过行为模型描述 在描述系统或各个数据对象的行为时 采用状态迁移图 通过描述系统或对象的状态 以及引起系统或对象状态转换的事件来表示系统或对象的行为 软件工程 41 状态迁移图 例如 有关处理器分配的进程状态迁移 软件工程 42 状态迁移图是描述系统的状态如何响应外部的事件进行推移的一种图形表示 表示可得到的系统状态 表示从一种状态向另一种状态的迁移 软件工程 43 4 数据字典 数据字典是结构化分析方法的核心 与各模型的图形表示配合 能清楚地表达数据处理的要求 词条描述 对于在模型中每一个被命名的图形元素 均加以定义 其内容有 名字 别名或编号 分类 描述 定义 位置 其它 等 软件工程 44 1 数据流词条描述数据流名 说明 简要介绍它产生的原因和结果数据流来源 来自何方数据流去向 去向何处数据流组成 数据结构数据量流通量 数据量 流通量 2 数据元素词条描述类型 数字 离散值 连续值 文字 编码类型 长度 软件工程 45 取值范围 相关的数据元素及数据结构 3 数据文件词条描述数据文件名 简述 存放的是什么数据输入 输出数据 数据文件组成 数据结构存储方式 顺序 直接 关键码存取频率 4 加工逻辑词条描述 软件工程 46 加工名 加工编号 反映该加工的层次简要描述 加工逻辑及功能简述输入 输出数据流 加工逻辑 简述加工程序 加工顺序 5 数据源词条描述名称 外部实体名简要描述 什么外部实体有关数据流 数目 软件工程 47 数据结构的描述 符号含义举例 被定义为 与x a b 或 或x a b x a b 或m n重复x a x 3 a 8 可选x a 基本数据元素x a 连结符x 1 9 软件工程 48 存折 户名 所号 帐号 开户日 性质 印密 1 存取行 50户名 2 字母 24所号 001 999帐号 00000001 99999999开户日 年 月 日性质 1 6 注 1 表示普通户 5 表示工资户等印密 0 注 印密在存折上不显示存取行 日期 摘要 支出 存入 余额 操作 复核 软件工程 49 基本加工逻辑说明 对数据流图的每一个基本加工 必须有一个基本加工逻辑说明 基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则 加工逻辑说明必须描述实现加工的策略而不是实现加工的细节 加工逻辑说明中包含的信息应是充足的 完备的 有用的 无冗余的 描述加工逻辑说明的工具 结构化语言 决策表 决策树 软件工程 50 1 结构化语言 结构化语言是一种伪码 它的词汇表由命令动词数据字典中定义的名字有限的自定义词逻辑关系词IF THEN ELSE SWITCH WHILE DO FOR DO WHILE等组成 它是一种介于自然语言和形式化语言之间的语言 用以消除在语法上的歧义性 软件工程 51 语言的正文用基本控制结构进行分割 加工中的操作用自然语言短语来表示 其基本控制结构有三种 简单陈述句结构 避免复合语句 重复结构 while do for do或do while结构 判定结构 if then else或switch do结构 用结构化语言描述的规格说明的正文可以在计算机上编辑 不必过多地考虑语言的在语法上的限制 使得分析员可以集中考虑加工的策略或规则 软件工程 52 商店业务处理系统中 检查发货单 if发货单金额超过 500thenif欠款超过了60天then在偿还欠款前不予批准else 欠款未超期 发批准书 发货单else 发货单金额未超过 500 if欠款超过60天then发批准书 发货单及赊欠报告else 欠款未超期 发批准书 发货单 软件工程 53 2 决策表 如果数据流图的加工需要依赖于多个逻辑条件的取值 使用决策表来描述比较合适 规则 单个条件 单个动作 软件工程 54 以 检查发货单 为例 软件工程 55 3 判定树 判定树也是用来表达加工逻辑的一种工具 有时侯它比判定表更直观 软件工程 56 2 5需求定义与评审 又称需求规格说明或需求规约 需求定义的主要目的是分析需求草稿和模型 解决其中存在的二义性和不一致性 系统地准确地表达系统需求 形成需求规格说明 包括系统应提供的功能和服务 非功能需求 系统开发或运行的限制条件 与系统互连的其他系统的信息 软件工程 57 软件需求规格说明的基本原则 功能与实现分离 描述要 做什么 而不是 怎样实现 要求使用面向处理的规格说明语言 从而得到 做什么 的规格说明 如果目标软件只是一个大系统中的一个元素 那么整个大系统也包括在规格说明的描述之中 规格说明必须包括系统运行的环境 1 需求规格说明的原则 软件工程 58 系统规格说明必须是一个认识的模型 而不是设计或实现的模型 规格说明必须是可操作的 规格说明必须容许不完备性并允许扩充 规格说明必须局部化和松散的耦合 当信息被修改时 只要修改某个单个的段落 能够很容易地加入和删去一些段落 软件工程 59 2

温馨提示

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

评论

0/150

提交评论