《软件工程讲义》PPT课件.ppt_第1页
《软件工程讲义》PPT课件.ppt_第2页
《软件工程讲义》PPT课件.ppt_第3页
《软件工程讲义》PPT课件.ppt_第4页
《软件工程讲义》PPT课件.ppt_第5页
已阅读5页,还剩130页未读 继续免费阅读

下载本文档

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

文档简介

软件工程 软件工程第二章需求分析 2 1系统分析2 2软件需求分析2 3结构化分析方法2 4快速原型化方法2 5需求定义与评审 软件工程 2 1系统分析 基于计算机的系统的系统元素包括硬件 软件 人 数据库 文档和过程 系统分析的目标识别用户要求评价系统的可行性 进行经济和技术分析把功能分配给硬件 软件 人 数据库和其它系统元素建立成本和进度限制生成系统规格说明 软件工程 识别用户要求 分析员必须考虑以下问题 识别希望的功能和性能范围 确定系统的功能 性能 约束和接口 功能和性能可靠性和质量总的系统目标成本与进度限制 制造需求市场与竞争情况有效的技术将来可能的扩充 软件工程 可行性研究 可行性研究从经济可行性 技术可行性 法律可行性和用户操作可行性等方面评价系统是否值得做 是否能做 可行性研究的步骤1 确定项目的规模和目标2 研究当前正在运行的系统3 建立新系统的高层逻辑模型4 导出和评价各种方案 软件工程 推荐可行的方案编写可行性研究报告成本估算专家估算技术 Delphi技术 成本估算模型 COCOMO 效益估算投资回收期纯收入投资回收率 经济可行性成本 效益分析 软件工程 投资回收期 就是使累计的经济效益等于最初投资所需的时间 纯收入 就是在整个生命周期之内系统的累计经济效益 折合成现在值 与投资之差 资金的现值 以现在货币的价值为准 将其他不同时间的货币的价值都折算成现时货币的价值 即资金的现值设现有P元存入银行 年利率为i 第n年可得本金和利息F元则有 F P 1 i n P F 1 i n式中P元即为第n年的F元的现值 软件工程 投资回收率 假设把数量等于投资额的资金存入银行 每年底从银行取回的钱等于系统每年预期可获得效益 在时间等于系统寿命时 恰好银行的存款全部取光 那么 这个假想的年利率 就是投资回收率 可用以下公式描述 P F1 1 j F2 1 j 2 Fn 1 j n其中 P是现在投资额 F是第i年年底的效益 i 1 2 n n是系统使用寿命 j是投资回收率 软件工程 技术可行性技术风险分析 技术解决方案的实用性使用的技术实用化程度技术解决方案合理程度技术资源的可用性参与人员的工作基础基础硬件 软件的可用性软件工具实用性 软件工程 法律可行性侵权和责任问题 专利法著作权法软件保护条例用户类型 外行型 熟练型 专家型操作习惯使用单位的计算机使用情况使用单位的规章制度 用户操作可行性 软件工程 2 2软件需求分析 需求分析是一项软件工程活动 其目的是 清楚地理解所要解决的问题 完整地获取用户要求 刻划出软件的功能和性能 指明软件与其他系统元素的接口 建立软件必须满足的约束 1 软件需求分析的目的 软件工程 需求分析是一项软件工程活动 它包括 需求获取刻划出软件的功能和性能 指明软件与其他系统元素的接口 建立软件必须满足的约束 需求建模需求分析建立起来的模型为日后软件设计人员提供了可被翻译成数据 体系结构 接口和处理过程设计的模型 2 需求分析的任务 软件工程 需求规格说明需求规格说明为开发人员和用户提供软件开发完成时质量评价的依据 需求评审需求分析研究的对象是用户的要求 必须全面理解用户的各项要求 准确表达被接受的用户要求 只有经过确切描述的软件需求才能成为软件设计的基础 软件工程 软件开发是要实现目标系统的物理模型 需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型 解决目标系统 做什么 的问题 软件工程 3 需求获取 需求获取是在问题及其最终解决方案之间架设桥梁的第一步 需求获取的目的是清楚地理解所要解决的问题 完整地获得用户的需求 获取需求的一个必不可少的结果是对项目中描述的客户需求的普遍理解 一旦理解了需求 分析者 开发者和客户就能探索出描述这些需求的多种解决方案 软件工程 软件需求的层次 业务需求反映了组织或客户对系统 产品高层次的目标要求 它们一般在项目视图和范围文档中给予说明 用户需求描述用户使用软件需要完成哪些任务 它们可通过使用实例图或脚本说明加以阐明 功能 非功能需求定义了开发者必须实现的软件功能 而非功能需求如表所示 软件工程 软件工程 需求获取过程 需求获取包括以下活动 发现和分析问题发现问题症结 并分析问题的原因 结果关系 获取需求根据对问题的理解定义需求 使用调查研究方法收集信息 遵循需求获取框架 按照三个成分观察 即数据 过程和接口 需求归档以草稿形式归档调查结果 形式有用例 决策表 需求表等 软件工程 需求获取技术的基本特征 好的需求获取技术 对于规范需求获取活动 高效准确地获取需求定义 是十分重要的 好的需求获取技术 应具有如下基本特征 提供便于沟通的工具 如易于理解的语言和直观的图表 提供定义系统边界 交互 的方法 提供支持抽象的机制 如 分解 映射 等 软件工程 鼓励分析员使用面向问题的术语思考问题 编写文档 为分析员提供多种可供选择的解决方案 适应需求的变化 适于以上特征的需求获取方法 基于数据流图的结构化分析方法 基于用例 usecase 的建模方法 需求获取技术的关键点在于 深入浅出需求获取要尽可能全面 细致 软件工程 获取的需求是个全集 系统真正实现的是个子集 分析时的调研内容并不都纳入到新系统中 目的在于以后的扩充 以流程为主线在与用户交流的过程中 应该用流程将所有的内容串起来 如信息 组织结构 处理规则等 这样便于交流沟通 流程描述有宏观 也有微观 既要强调总体的业务流程 全生存周期的业务流程 又要对流程细化 有分支的业务流程 软件工程 需求获取应遵循的原则 抽象和分解是在人们认识世界和改造世界的长期实践中总结出来的行之有效的原则 在需求获取的过程中需遵循的三个原则 分解 捕获问题空间的整体 部分关系 如问题 子问题分解 抽象 捕获问题空间的一般化 特殊化关系 如问题的不同变型 投影 捕获问题空间的多维视图 即从不同角度考察 软件工程 需求获取的步骤 软件开发项目和组织文化的不同 对于需求开发没有一个简单的 公式化的途径 下面9个步骤 针对信息系统的需求获取 定义项目的视图和范围包括组织结构图 各部门的岗位 角色列表 确定用户类包括人员 责任矩阵 确定目标系统的业务工作流包括物流 资金流 信息流 建立业务工作流模型 软件工程 运用需求获取技术开发反映主要业务规则的用例 或数据流图 并设置优先级 收集来自用户的质量特性信息和其他非功能需求将性能 安全性 可靠性等需求和其他设计约束结合业务规则 形成功能需求 分类在用例 或数据流图 中涉及的数据包括数据的组成和数据之间的关系 详细拟订用例 或数据流图 的规格说明 建立功能模型 并进行审查 用以澄清需求获取的参与者对需求的理解 软件工程 开发并评估界面原型设想输入设备 输出设备 显示风格 显示方式 输出格式等 建立接口规范和信息流传输规则 从功能描述中开发概念测试用例用测试用例来验证用例 或数据流图 功能需求和原型 软件工程 需求获取可能是软件开发中最困难 最关键 最易出错及最需要交流的方面 表现在 需求的不稳定性 在整个软件生存周期内软件需求会随着时间的推移发生变化 需求的不准确性 用户和开发人员的认识会随着使用系统实现业务流程的实践逐步提高 一开始不可能设想得面面俱到 需求获取只有通过有效的客户 开发者的合作才能成功 软件工程 针对信息系统的需求调研方法 调研用户的组织结构 岗位设置 职责定义 从功能上区分有多少个子系统 划分系统的大致范围 明确系统的目标 调研每个子系统的工作流程 功能与处理规则 收集原始信息资料 用数据流来表示物流 资金流 信息流三者的关系 对调研内容事先准备 针对不同管理层次的用户询问不同的问题 列出问题清单 将操作层 管理层 决策层的需求既联系又区分开来 形成一个需求的层次 软件工程 对与用户沟通的情况及时总结归纳 整理调研结果 初步构成需求基线 若基线符合要求 则需求获取完成 需求调研的主要手段 发调查表 召开调查会 向用户领域的专家个别咨询 实地考察 跟踪现场业务流程 查阅与待开发系统有关的资料 使用各种调查工具等 软件工程 需求整理与表达的方法 采用穷举方法可以避免遗漏 采用归纳方法 通过对各种情况进行综合分类可以使问题条理化 采用抽象方法 可以发现问题的实质 抓住问题的主要矛盾 忽略其次要矛盾 需求整理可以多种手段共用 如组织结构图 业务流程图 多叉树 关系矩阵 文字叙述 表格 图形等 需求描述包括组织结构与岗位定义 业务流程 处理规则 数据项 功能以及上述5个方面的关系 软件工程 4 需求建模 需求建模是为了分析需求 以确定项目的确切需求 需求建模遵循三个原则 划分 描述需求的整体 部分关系 抽象 描述需求的一般化 特殊化关系 投影 描述需求的多维视图 定义系统模型要区分逻辑模型和物理模型 常用模型有数据建模 功能建模和过程建模 软件工程 常用的分析方法 面向数据流的结构化分析方法 SA 面向数据结构的Jackson方法 JSD 面向数据结构的结构化数据系统开发方法 DSSD 面向对象的分析方法 OOA 等 软件工程 结构化分析方法最初只是着眼于数据流 自顶向下 逐层分解 建立系统的处理流程 以数据流图和数据字典为主要工具 建立系统的逻辑模型 扩充后 将建模技术扩展到数据建模 功能建模和行为建模 以实体 关系图 数据流图和控制流图 状态 迁移图为工具 数据字典为核心 从不同视点建立系统的分析模型 2 3结构化分析方法 软件工程 结构化分析的分析模型 软件工程 1 数据建模 数据模型包括三种互相关联的信息 数据对象 描述对象的属性 描述对象间相互连接的关系 在需求分析阶段描述数据对象和它们之间的关系 使用了E R图 例如 在教学管理中 一个教师可以教授零门 一门或多门课程 每位学生也需要学习几门课程 因此 教学管理中涉及的对象有学生 教师和课程 软件工程 教学数据模型 软件工程 实例的关联有三种 一对一 1 1 一对多 1 m 多对多 n m 这种实例的关联称为 基数 基数表明了 重复性 软件工程 软件工程 2 功能建模和数据流 最初 结构化分析方法仅讨论数据流建模 目标系统被表示成如图所示的数据变换流程图 系统的功能体现在核心的数据变换中 软件工程 软件工程 数据流图中的主要图形元素 数据流图是描述数据处理过程的工具 数据流图从数据传递和加工的角度 以图形方式刻画数据流从输入到输出的移动变换过程 软件工程 数据流图中的主要图形元素 1 数据流用箭头表示数据流 箭头方向表示数据流向 数据流名标在数据流线上面 2 加工加工也称为数据处理 或称为变换 是对数据进行处理的单元 软件工程 数据流图中的主要图形元素 3 数据存储数据存储是由若干数据元素组成的 它为数据处理提供数据处理所需要的输入流或为数据处理的输出数据流提供储存 仓库 4 数据源点和终点任何一个系统的边界定义后 就有系统内外之分 一个系统总会与系统外部的实体有联系 这种联系的重要形式就是数据 数据源点和终点是软件系统外部环境中的实体 包括人员 组织或其他软件系统 统称外部实体 软件工程 分层的数据流图 软件工程 在多层数据流图中 顶层流图仅包含一个加工 它代表被开发系统 它的输入流是该系统的输入数据 输出流是系统所输出数据底层流图是指其加工不需再做分解的数据流图 它处在最底层中间层流图则表示对其上层父图的细化 它的每一加工可能继续细化 形成子图 分层的数据流图 软件工程 画数据流图 用数据流图来表示系统中某一个层面的数据处理过程是很方便的 如果将一个复杂问题的全部用一幅数据流图来表示就困难了 为了表达较为复杂问题的数据处理过程 用一张数据流图是不够的 要按照问题的层次结构进行逐步分解 并以一套分层的数据流图反映这种结构关系 软件工程 1 画系统的输入 输出把系统视为一个整体 看这个整体与外界的联系 分析有哪些内容是要通过外界获取的 就是系统的输入 有哪些是要向外界提供服务的 就是系统的输出 画系统的输入 输出即先画顶层数据流图 软件工程 2 画系统内部数据流图主要是用于描述系统内部的处理过程 描述系统内部即画下层数据流图 一般方法是将层号从0开始编号 采用自顶向下 由外向内的原则 软件工程 数据流图绘制的主要步骤 确定所开发的系统的外部项 外部实体 即系统的数据来源和去处 确定整个系统的输出数据流和输入数据流 把系统作为一个加工环节 画出顶层图关联图 确定系统的主要处理功能 按此将整个系统分解成几个加工环节 子系统 确定每个加工的输出与输入数据流以及与这些加工有关的数据存储 将外部项 各加工 数据存储环节用数据流连接起来 命名 编号 这样就形成所开发系统的数据流图 总图 的草图 分解数据流图草图 重复步骤 直到逐层分解结束 软件工程 对草图进行检查和合理布局 对错误与不当之处进行修改 和用户进行交流 在用户完全理解数据图的内容的基础上征求用户的意见 和用户讨论 系统分析人员根据与用户讨论的结果对数据流图的草图进行修订 用计算机或其他制图 编辑工具画出正规的数据流图 将正规的数据流图提交系统分析负责人复审 若有修改之处 则组织人员修改 否则 通过复审 数据流图绘制过程结束 软件工程 例1 学籍管理系统这是某大学里系一级的教学管理系统的一个子系统 此系统功能 结构比较简单 下面只画出该系统的顶层图 软件工程 学籍管理系统顶层分解图 学生 教师 4奖励管理 系机关 1注册 2资格管理 3成绩管理 D1学生名册 D2学生成绩档案 系机关 学生 F1注册申请 F5教学安排 F2 1注册证件 F3 1新生名单 F4 1注册统计 F3 2审理意见 F4 2处理结果统计 F2 2学籍资格变动通知 F5修课名单 F2 3课表与成绩 F6学生修课成绩 F6学生成绩 F3 3课表安排 F4 4奖励统计 F3 4奖励凭证 F4 3修课情况与成绩统计 F2 4奖励通知 软件工程 实例考务处理系统的功能 1 对考生送来的报名单进行检查 2 对合格的报名单编好准考证号后将准考证送给考生 并将汇总后的考生名单送给阅卷站 3 对阅卷站送来的成绩单进行检查 并根据考试中心制定的合格标准审定合格者 4 制作考生通知单 含成绩及合格 不合格标志 送给考生 5 按地区进行成绩分类统计和试题难度分析 产生统计分析表 软件工程 软件工程 根据考务处理业务 画出顶层数据流图 以反映最主要业务处理流程及系统与外界的关系 经过分析 考务业务处理的主要功能应当有登记报名单 统计成绩两个主要数据流 输入的源点和输出终点是考生 考试中心和阅卷站 然后从输入端开始 根据考务业务工作流 画出数据流流经的各加工框 逐步画到输出端 得到第0层数据流图 软件工程 软件工程 软件工程 软件工程 练习1 请根据以下描述画出某简化的工资管理系统的数据流图 该子系统共有三个加工 其数据处理过程是 1 首先是 填制工资档案 根据人事变动单 考勤表两个输入单据 经过处理输出形成工资文件 2 然后是 汇总工资 从工资文件输入数据 按部门汇总后形成工资汇总表文件 3 最后 发放工资 加工单元从工资卡片文件打印出工资条 软件工程 练习2 请根据以下描述画出简化的库存管理子系统的DFD图 1 根据到货通知单 进行收料处理后形成收料单文件 2 根据领料申请单 进行领料处理后形成领料单文件 3 对收 发料情况进行统计 产生库存收支统计表 归入统计文件 软件工程 练习3 学籍管理包括三个处理过程 学生成绩管理 学生奖惩管理 学生异动管理 由 异动管理 处理招生办送来的新生名单 同时在学籍表中记载新生注册信息 并定期输出各种统计报表送教委 也要负责向用人单位提供毕业生信息 成绩管理 处理由教师送来的成绩单 并在学籍表中记载学生成绩 同时每年年底要对学籍表中的学生成绩汇总分析 按照学校的有关规定打印出应该留学退学的学生名单和奖学金候选人名单 分别交 异动管理 和 奖惩管理 处理过程处理 奖惩管理 处理过程根据奖学金候选人名单及其所在系提供的相应思想品德情况报告得出最终获得奖学金人员名单 并在学籍表中记载下来 软件工程 不合格存取单存折 存折存款单 帐号 取款额 练习4 某银行储蓄所存 取 款过程如下 储户将填好的存 取 单及存折送交分类处理处 分类处理处按三种不同情况分别处理 如果存折不符或存 取 单不合格 则将存折及存 取 单直接退还储户重新填写 如果是存款 则将存折及存款单送交存款处处理 存款处理处取出底账登记后 将存折退还给储户 如果是取款 则将存折及取款单送交取款处理处 该服务台取出底账及现金 记账后将存折与现金退给储户 从而完成存 取 款处理过程 试按此画出数据流程图 现金 存取单存折 软件工程 画数据流图注意事项 在软件的系统分析之前 系统的技术负责要制订一个系统的标准 其内容之一就是画数据流图的规范 画数据流图要注意以下几点 1 命名 在画数据流图中 不论数据流 数据存储还是加工的命名要合适 要易于理解其含义 2 在画数据流图时要注意不要画控制流 软件工程 控制流与物质流 软件工程 3 每个加工至少有一个输入数据流和一个输出数据流 反映出此加工数据的来源与加工的结果 数据流必须要么从某个加工流出 要么流入某个加工 而不能直接从外部项流向数据存储等等 软件工程 数据源 数据终点 没有输出 加工 没有输入 加工 每个加工至少有一个输入数据流和一个输出数据流 几种错误 1 软件工程 几种错误 2 软件工程 4 加工点的编号 如果一张数据流图中的某个加工点要分解成另一张数据流图时 则上层图为父图 直接下层图为子图 父 子图上的所有加工都应编号 父项与子项的编号要体现数据流图分解的完整性与一致性的原则 如父项编号为F1或D1 则其子项分别为F1 1 F1 2 或D1 1 D1 2 等 软件工程 父图与子图的编号 软件工程 5 系统分析中要区别物流和数据流 6 在数据流图表示系统的数据流向时 一般都要用到父图与子图来描述不同的层次 要注意父图与子图的平衡 软件工程 父图与子图的平衡 软件工程 父图 子图平衡补充说明 借助数据字典判断 软件工程 父图与子图不平衡 软件工程 7 在分层处理的过程中 当某层数据流图中的数据存储不是父图中相应加工的外部接口 而只是本图中某些加工之间的数据接口 则称这些数据存储为局部数据存储 8 数据流图作为以后设计和与用户交流的基础 其易理解性极为重要 软件工程 局部数据存储的使用 出现在加工之间的界面时 才画出来 软件工程 3 行为建模 行为建模给出需求分析方法的所有操作原则 但只有结构化分析方法的扩充版本才提供这种建模的符号 数据流图不描述时序关系 控制和事件流通过行为模型描述 在描述系统或各个数据对象的行为时 采用状态迁移图 通过描述系统或对象的状态 以及引起系统或对象状态转换的事件来表示系统或对象的行为 软件工程 状态迁移图 例如 有关处理器分配的进程状态迁移 软件工程 状态迁移图是描述系统的状态如何响应外部的事件进行推移的一种图形表示 表示可得到的系统状态 表示从一种状态向另一种状态的迁移 软件工程 Petri网 Petri网已广泛地应用于硬件与软件系统的开发中 它适用于描述相互独立 协同操作的处理系统 也就是并发执行的处理系统 Petri网简称PNG PetriNetGraph 它有两种结点 位置 符号 表示系统状态 转移 符号 表示系统中的事件 有向边 表示向转移的输入 或从转移的输出 软件工程 标记 或称令牌 token 是表明系统当前处于什么状态的标志 Petri网可能的变化有 软件工程 进程得到资源占用资源运行释放资源不用资源运行 例如 处理两个进程PR1和PR2的同步问题 此时两个进程共用一个资源R 软件工程 软件工程 4 数据字典 数据字典是结构化分析方法的核心 与各模型的图形表示配合 能清楚地表达数据处理的要求 所谓数据字典是关于对数据流图中包含的所有元素的定义的集合 其作用是为系统人员在系统分析 系统设计和系统维护过程中提供关于数据的描述信息词条描述 对于在模型中每一个被命名的图形元素 均加以定义 其内容有 名字 别名或编号 分类 描述 定义 位置 其它 等 软件工程 1 数据流词条描述数据流名 说明 简要介绍它产生的原因和结果数据流来源 来自何方数据流去向 去向何处数据流组成 数据结构数据量流通量 数据量 流通量 2 数据元素词条描述类型 数字 离散值 连续值 文字 编码类型 长度 软件工程 取值范围 相关的数据元素及数据结构 3 数据文件词条描述数据文件名 简述 存放的是什么数据输入 输出数据 数据文件组成 数据结构存储方式 顺序 直接 关键码存取频率 4 加工逻辑词条描述 软件工程 加工名 加工编号 反映该加工的层次简要描述 加工逻辑及功能简述输入 输出数据流 加工逻辑 简述加工程序 加工顺序 5 数据源及数据池词条描述名称 外部实体名简要描述 什么外部实体有关数据流 数目 软件工程 符号含义举例 被定义为 与x a b 或 或x a b x a b 或m n重复x a x 3 a 8 可选x a 基本数据元素x a 连结符x 1 9 5 数据结构的描述 软件工程 存折格式 软件工程 存折 户名 所号 帐号 开户日 性质 印密 1 存取行 50户名 2 字母 24所号 001 999帐号 00000001 99999999开户日 年 月 日性质 1 6 注 1 表示普通户 5 表示工资户等印密 0 注 印密在存折上不显示存取行 日期 摘要 支出 存入 余额 操作 复核 软件工程 文件 学生成绩单 由 班级 课程 和30行成绩行组成 成绩行由 姓名 和 成绩 组成 其词典条目的文件组成可表示为 学生成绩单 班级 课程 0 姓名 成绩 30 数据词典示例2 软件工程 数据字典的实现 数据字典除了概念和技术上的问题外 工作量是非常大的 由于是系统的一项基础工作 所以数据字典的实现因环境的不同而采用不同的实现方法 早期人们用手工建立数据字典 现在一般是利用计算机辅助建立并维护数据字典 手工编写 计算机辅助编写是指在计算机辅助绘制数据流图的同时 随着数据流图的逐层分解 计算机系统生成数据词典的某些条目 人工进行修改与补充 软件工程 数据词典可用一叠卡片来构造 其建立方法如下 1 按软件开发规范规定的格式 印制数据流 文件和数据项的词典条目卡片2 为数据流图的所有成分 分别填写相应的卡片 3 条目按图号排序存放 同一图号的所有条目按数据流 数据项 文件和加工的先后次序分别存放 4 同一图号中的同一类卡片 如数据流卡片 则按名称作为关键字顺序存放 5 同一成分在父图与子图中均出现时 则只在父图上定义 6 要建立索引目录 1 手工方式 软件工程 手工方式建立的数据词典难于使用 更不易维护 一致性才完整性和正确性均难以保证 因此一般均倾向于自动或半自动实现数据词典 全自动方式是开发一个 词典管理程序 来自动负责数据词典 包括由每个基本加工的小说明所构成的一组小说明 生成 使用和维护工作 一个词典管理程序应具有以下功能 1 按软件开发规范所规定的数据词典条目的格式 作为其一组语法 2 用上述的格式 编制语法制导的输入编辑程序 以接受词典条目的输入 3 具有对词典条目进行插入 删除和修改的功能 2 全自动方式 软件工程 4 具有一定的一致性 完整性的检查能力5 能产生所需的各类查询报告和清单等 例如 将所有的元素按数据流 文件 数据项和加工的名称 按字母顺序分类列表 列出与某一类项目有关的所有元素 如列出与某加工有关的数据流 数据项等 软件工程 最后利用已有的数据库开发工具 针对数据字典建立一个数据库文件 可将数据流 数据项 数据存储和加工分别以矩阵表的形式来描述各个表项的内容 如数据流的矩阵表为 软件工程 然后使用开发工具建成数据文件 便于修改 查询 并可随时打印出来 另外 有的DBMS本身包含一个数据字典子系统 建库时能自动生成数据字典 目前一些软件开发小组都习惯于用计算机中小的数据库软件作为数据字典的实现工具 最方便的可以用微软的Access和Excel 计算机辅助开发数据字典比手工建立数据字典有更多的优点 能保证数据的一致性和完整性 使用也方便 而半自动方式则是利用正文编辑程序和报表生成程序等已有的软件工具来帮助人工编制数据字典 软件工程 数据词典数据流举例 软件工程 数据词典数据元素举例 软件工程 数据词典数据存储举例 软件工程 数据词典加工举例 软件工程 数据词典外部项举例 软件工程 6 基本加工逻辑说明 对数据流图的每一个基本加工 必须有一个基本加工逻辑说明 基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则 加工逻辑说明必须描述实现加工的策略而不是实现加工的细节 加工逻辑说明中包含的信息应是充足的 完备的 有用的 无冗余的 描述加工逻辑说明的工具 结构化语言 决策表 决策树 软件工程 1 结构化语言 结构化语言是一种伪码 它的词汇表由命令动词数据字典中定义的名字有限的自定义词逻辑关系词IF THEN ELSE SWITCH WHILE DO FOR DO WHILE等组成 它是一种介于自然语言和形式化语言之间的语言 用以消除在语法上的歧义性 软件工程 语言的正文用基本控制结构进行分割 加工中的操作用自然语言短语来表示 其基本控制结构有三种 简单陈述句结构 避免复合语句 重复结构 while do for do或do while结构 判定结构 if then else或switch do结构 用结构化语言描述的规格说明的正文可以在计算机上编辑 不必过多地考虑语言的在语法上的限制 使得分析员可以集中考虑加工的策略或规则 软件工程 商店业务处理系统中 检查发货单 if发货单金额超过 500thenif欠款超过了60天then在偿还欠款前不予批准else 欠款未超期 发批准书 发货单else 发货单金额未超过 500 if欠款超过60天then发批准书 发货单及赊欠报告else 欠款未超期 发批准书 发货单 软件工程 2 决策表 如果数据流图的加工需要依赖于多个逻辑条件的取值 使用决策表来描述比较合适 规则 单个条件 单个动作 软件工程 以 检查发货单 为例 软件工程 3 判定树 判定树也是用来表达加工逻辑的一种工具 有时侯它比判定表更直观 软件工程 这是一种有效驾驭风险的技术 通过原型可以增进软件者和用户对系统服务需求的理解 使比较含糊的具有不确定性的软件需求 主要是功能 明确化 可以容易地确定系统的性能 确认各项主要系统服务的可应用性 确认系统设计的可行性 确认系统作为产品的结果 有的原型可以直接成为产品 有的略加修改就可成为最终系统的一个组成部分 2 4快速原型化方法 软件工程 探索型 目的是要弄清对目标系统的要求 确定所希望的特性 并探讨多种方案的可行性 实验型 这种原型用于大规模开发和实现之前 考核方案是否合适 规格说明是否可靠 进化型 这种原型的目的不在于改进规格说明 而是将系统建造得易于变化 在改进原型的过程中 逐步将原型进化成最终系统 1 原型分类 软件工程 2 原型使用策略 软件原型支持需求工程的两项活动 需求获取需求有效性验证其他用途 用户培训系统测试原型开发主要分类 进化式原型开发抛弃式原型开发 软件工程 1 进化式原型开发 基本思路是 先给出一个系统的最初实现 让用户去使用和评价 不断进行细化和改善 经过多次这样的反复过程后形成最终的完善的系统 软件工程 2 抛弃式原型开发 基本思路是 原型的根本作用是弄清楚需求和为风险评估提供补充信息 通过评估后 原型被抛弃 重新规划和实施系统的开发 软件工程 3 原型开发技术 可执行规格说明基于场景 scenario 的设计自动程序设计专用语言可复用 reusable 的软件简化假设 软件工程 1 可执行规格说明 可执行规格说明是用于需求规格说明的一种自动化技术 使用这种方法 人们可以直接观察他们用语言规定的任何系统性行为 包括代数规格说明有限状态模型可执行的数据流图 软件工程 代数规格说明 使用集合 定义于这些集合上的函数和定义于这些函数上的方程来描述对象 规格说明的操作语义用这些方程表示 举例 定义一个无界的栈及其操作 NEW STACK StackPUSH Stack Element StackPOP Stack Element Undefined POP NEW STACK UndefinedPOP PUSH Stack elem elem 软件工程 有限状态模型 parnas提出的使用最广泛的一种可执行规格说明形式 从一个初始状态开始接收输入 到产生输出 状态在推移变化 施加在状态元素上的约束确定了有效状态的推移 举例 建立用户 程序对话 软件工程 可执行的数据流图 数据流图是基于结构化开发方法的结构化规格说明 用一种可执行的语言程序代替定义处理逻辑的结构化英语 数据流图就成为由可执行语言程序模块组成的网络 在一定环境或工具的支持下就可成为一个可以执行的原型系统 软件工程 2 基于场景的设计 场景是指用户界面的原型 一个场景用以模拟在系统运行期间用户经历的事件 它提供了输入 处理 输出的屏幕格式和有关对话的模型 因此 软件开发人员能够给用户显示系统的逼真的视图 使用户得以判断是否符合他的意图 分析员与用户的沟通往往通过演示场景 可在任一场景中使用一套可复用的软件模块 以表达某一方面的要求 软件工程 可使用一种原型语言来描述原型系统 原型开发过程中用这种语言来定义屏幕数据项相关的操作从系统的外部描述开始 开发与数据库的接口错误处理和恢复过程等系统的与外部视图一致的细节 软件工程 3 自动程序设计 在程序自动生成环境的支持下 利用计算机实现软件的开发 可以自动或半自动地把用户的非过程式问题规格说明转换为某种高级语言程序 演绎综合手段 基于数学推理的构造式证明 程序变换手段 将一程序转换成另一功能等价的程序 并保持其正确性不变 软件工程 实例推广手段 从实例特征出发 将它推广为待编程序的特征 最后得到程序 过程化手段 研究甚高级语言的编译和知识的过程化 专用语言是应用领域的模型化语言 在原型开发中使用专用语言 可方便用户和软件开发者在计划中的系统特性方面的交流 4 专用语言 软件工程 5 软件复用技术 利用可复用的模块 做出适当的组合 就可得到快速构造的原型系统 为了快速地构造原型 这些模块必须有简单而清晰的界面 应当尽量不依赖其它的模块或数据结构 应具有一些通用的功能 软件工程 6 简化假设 在开发过程中为使设计者迅速得到一个简化的系统 可以预设一些使得问题简化的假设 尽管这些假设可能实际上并不能成立 但它们在原型开发过程中可以使开发者的注意力集中在一些主要的方面 软件工程 2 5需求定义与评审 又称需求规格说明或需求规约 需求定义的主要目的是分析需求草稿和模型 解决其中存在的二义性和不一致性 系统地准确地表达系统需求 形成需求规格说明 包括系统应提供的功能和服务 非功能需求 系统开发或运行的限制条件 与系统互连的其他系统的信息 软件工程 软件需求规格说明的基本原则 功能与实现分离 描述要 做什么 而不是 怎样实现 要求使用面向处理的规格说明语言 从而得到 做什么 的规格说明 如果目标软件只是一个大系统中的一个元素 那么整个大系统也包括在规格说明的描述之中 规格说明必须包括系统运行的环境 1 需求规格说明的原则 软件工程 系统规格说明必须是一个认识的模型 而不是设计或实现的模型 规格说明必须是可操作的 规格说明必须容许不完备性并允许扩充 规格说明必须局部化和松散的耦合 当信息被修改时 只要修改某个单个的段落 能够很容易

温馨提示

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

评论

0/150

提交评论