8章软件维护、软件质量软件文档与软件产权保护 西安电子科技大学 软件工程教学课件_第1页
8章软件维护、软件质量软件文档与软件产权保护 西安电子科技大学 软件工程教学课件_第2页
8章软件维护、软件质量软件文档与软件产权保护 西安电子科技大学 软件工程教学课件_第3页
8章软件维护、软件质量软件文档与软件产权保护 西安电子科技大学 软件工程教学课件_第4页
8章软件维护、软件质量软件文档与软件产权保护 西安电子科技大学 软件工程教学课件_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

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

文档简介

第八章软件维护 软件质量软件文档与软件产权保护 西安电子科技大学课程 第八章软件维护 软件质量 软件文档与软件产权保护 8 1软件维护的定义所谓软件维护是在软件已经交付使用之后 为改正错误或满足新的需要而修改软件的过程 维护活动可分为四种类型1 改正性维护在软件交付使用后 由于测试不彻底 不完全 必然会有一部分隐藏的错误 改正软件性能上的缺陷 排除实施中的误使用 应进行的诊断和改正错误的过程 称为改正性维护 2 适应性维护外部环境 新的硬 软件配置 或数据环境 数据库 数据格式 数据输入 输出方式 数据存贮介质 可能发生变化 为了使软件适应这种变化而修改软件的过程叫做适应性维护 第八章软件维护 软件质量 软件文档与软件产权保护 3 完善性维护完成扩充软件功能 增强软件性能 改进加工效率 提高软件的可维护性能 这种维护活动称为完善性维护 4 预测性维护把今天的方法学用于昨天的系统以满足明天的需要 即采用先进的软件方法对需要维护的软件或一部分 重新 进行设计 编制和测试 第八章软件维护 软件质量 软件文档与软件产权保护 影响维护工作因素1 系统太小 2 程序设计语言 3 系统年龄 4 数据库技术的应用 5 先进的软件开发技术 6 其他 如应用的类型 数学模型 任务难度 第八章软件维护 软件质量 软件文档与软件产权保护 l维护的特点结构化维护和非结构化维护 有完整的软件配置 使用软件工程方法开发 的软件 虽然不能保证维护没有问题 但可以减少维护的工作量 并提高质量 l维护的问题与维护有关的绝大多数问题 都可归因于软件定义和软件开发的方法有缺点 1 深刻理解原开发人员的编程思想通常相当困难 2 软件人员的流动性 使得软件维护时很难与原开发人员沟通 3 没有文档或文档严重不足 4 软件设计时 欠考虑软件的可修改性 可扩展性 5 频繁的软件升级 要追踪软件的演化变得很困难 使软件难以修改 第八章软件维护 软件质量 软件文档与软件产权保护 l软件维护活动软件维护申请报告软件维护组织通常提供维护申请报告MRP maintenancerequestform 或称软件问题报告 由申请维护的用户填写 若遇见一个错误 用户必须完整的说明产生错误的情况 包括输入数据 软件组织内部应相应地做出软件修改报告 错误清单以及其他有关材料 维护申请报告是由软件组织外部提交的文档 它是计划维护工作的基础 软件组织内部应相应地作出软件修改报告SCR softwarechangereport 并指明 1 所需修改变动的性质2 申请修改的优先级3 为满足某个维护申请报告 所需的工作量4 预计修改后的状况 第八章软件维护 软件质量 软件文档与软件产权保护 8 2软件维护工作流程维护的事件流从图描绘的事件流看到 对一项改正性维护要求 图中 错误 通路 的处理 从估量错误的严重程度开始 如果是一个严重的错误 例如 一个关键性的系统不能正常运行 则在系统管理员的指导下分派人员 并且立即开始问题分析过程 如果错误并不严重 那么改正性的维护和其他要求软件开发资源的任务一起统筹安排 第八章软件维护 软件质量 软件文档与软件产权保护 适应性维护和完善性维护的要求沿着相同的事件流通路前进 应该确定每个维护要求的优先次序 并且安排要求的工作时间 好像它是另一个开发任务 从所有意图和目标来看 它都属于开发工作 如果一项维护要求的优先次序非常高 可能立即开始维护工作 不管维护类型如何 都需要进行同样的技术工作 这些工作包括修改软件设计 复查 必要的代码修改 单元测试和集成测试 包括使用以前的测试方案的回归测试 验收测试和复审 不同类型的维护强调的重点不同 但是基本途径是相同的 维护事件流中最后一个事件是复审 它再次检验软件配置的所有成分的有效性 并且保证事实上满足了维护要求表中的要求 第八章软件维护 软件质量 软件文档与软件产权保护 第八章软件维护 软件质量 软件文档与软件产权保护 第八章软件维护 软件质量 软件文档与软件产权保护 保存维护记录对于软件生命周期的所有阶段而言 以前记录保存都是不充分的 而软件维护则根本没有记录保存下来 由于这个原因 往往不能估价维护技术的有效性 不能确定一个产品程序的 优良 程度 而且很难确定维护的实际代价是什么 保存维护记录遇到的第一个问题就是 哪些数据是值得记录的 Swanson提出了下述内容 程序标识 源语句数 机器指令条数 使用的程序设计语言 程序安装的日期 自从安装以来程序运行的次数 自从安装以来程序失效的次数 程序变动的层次和标识 因程序变动而增加的源语句数 因程序变动而删除的源语句数 每个改动耗费的人时数 程序改动的日期 软件工程师的名字 维护要求表的标识 维护类型 维护开始和完成的日期 累计用于维护的人时数 与完成的维护相联系的纯效益 第八章软件维护 软件质量 软件文档与软件产权保护 评价维护活动缺乏有效的数据就无法评价维护活动 如果已经开始保护维护记录了 则可以对维护工作做一些定量度量 1 每次程序运行平均失效的次数 2 用于每一类维护活动的总人时数 3 平均每个程序 每种语言 每种维护类型所做的程序变动数 4 维护过程中增加或删除一个源语句平均花费的人时数 5 维护每种语言平均花费的人时数 6 一张维护要求表的平均周转时间 7 不同维护类型所占的百分比 第八章软件维护 软件质量 软件文档与软件产权保护 维护工作流程许多软件的维护十分困难 原因在于这些软件的文档和源程序难于理解 难于修改 从原则上讲 软件开发工作应严格按照软件工程要求进行 但实际上往往不能真正做到 例如 文档不全 质量差 开发过程不注意结构化方法 忽视程序设计风格等 所以为了使软件易于维护 必须考虑的是软件具有可维护性 8 3软件可维护性定性的定义 维护人员理解 修改 改进该软件的难易程度 提高可维护性是支配软件工程方法论的所有步骤的目标 可维护性 实用性 可靠性是衡量软件质量的特性 可维护性的度量人们一直期望对软件的可维护性作出定量度量 但实属不易 许多研究集中在这个方面 形成了一个引人注目的学科 软件度量学 下面介绍度量一个可维护的程序的七种特性时常用的方法 第八章软件维护 软件质量 软件文档与软件产权保护 1 可理解性可理解性表明人们阅读源代码和相关文档 了解程序功能及其如何进行的容易程度 可理解性 使用一种叫做 90 10测试 方法衡量 一份被测源程序清单给一位有经验的程序员阅读十分钟 让该程序员凭自己的理解和记忆 写出该程序90 若写出来 则该程序具有可理解性 2 可靠性可靠性表明一个程序按照用户的要求和设计目标在给定的时间内正确执行的概率 其度量标准有 l平均失效间隔时间MTTF l平均修复时间MTTRl有效性 A MTBD MTBD MDT 3 可测试性可测性表明验证程序正确性的容易程度 程序越简单 证明其正确性就越容易 对于程序模块 可用程序复杂度来度量可测性 第八章软件维护 软件质量 软件文档与软件产权保护 4 可修改性可修改性表明程序容易的程度 设C是程序中各个模块的平均复杂性 N是必须修改的模块数 A是要修改的模块的平均复杂性 修改难度D为D A C若D 1 则该程序修改困难 A和C可用任何一种度量程序复杂性的方法计算 5 可移植性可移植性表明转移到一个新的计算环境的可能性的大小 一个可移植性的程序具有结构良好 灵活 不依赖于某一具体计算机或操作系统的性能 第八章软件维护 软件质量 软件文档与软件产权保护 6 效率效率表明一个程序能执行预定功能而又不浪费机器资源的程度 机器资源 内存容量 外存容量 执行时间 7 可使用性从用户观点出发 把可使用性定义为程序方便使用及易于使用的程度 用于可使用性度量的检查项目有 1 程序是否具有自描述性 2 程序是否能始终如一按照用户要求运行 3 程序是否让用户对数据速率有一个满意地和适当程度 4 程序是否容易学会使用 5 程序是否具有容错性 6 程序是否灵活 第八章软件维护 软件质量 软件文档与软件产权保护 为了保证软件的可维护性 有四种类型的软件审查1 在检查点进行复查保证软件质量的最佳方法是在软件开发的最初阶段就把质量考虑进去 并在开发过程每一阶段的终点 设置检查点进行检查 可以使用各种质量特性检查表 或度量标准来检查可维护性 各种质量标准应当在管理部门 用户 软件开发人员 软件维护人员当中达成一致意见 第八章软件维护 软件质量与软件文档 第八章软件维护 软件质量 软件文档与软件产权保护 2 验收检查验收检查是一项特殊的检查点的检查 是交付使用前的最后一次检查 是软件运行投入之前保证可维护性的最后机会 下面是验收检查必须遵循的最小验收标准 1 需求和规范标准需求应当以可测试的术语进行书写 排列优先次序并定义 区分必须的 任选的 将来的需求 包括对系统运行时计算机设备的需求 对维护 测试 操作 以及维护人员的需求 对测试工具等的需求 2 设计标准程序应设计成分层的模块结构 每个模块应完成唯一的功能 并达到高内聚 低耦合 通过一些知道预期变化的实例 说明设计的可扩充性 可伸缩性和可适应性 第八章软件维护 软件质量 软件文档与软件产权保护 3 源代码标准尽可能使用最高级的程序设计语言 且只使用语言的标准版本 所有的代码必须具有良好的结构 所有的代码必须文档化在注释说明它的输入 输出 以及便于测试 再测试的一些特点与风格 4 文档标准文档中应说明程序的输入 输出 使用方法 算法 错误恢复方法 所有参数的范围以及缺省条件等3 周期性地维护审查检查点复查和验收检查 可用来保证新软件系统的可维护性 对已有的软件系统 则应当进行周期性地维护审查 第八章软件维护 软件质量 软件文档与软件产权保护 周期性地维护审查实际上是开发阶段检查点复查的继续 并且采用的检查方法 检查内容都是相同的 4 对软件包进行检查软件包是一种标准化了的 可为不同单位 不同用户使用的软件 软件包卖主考虑他的专利权 一般不会提供给用户他的源代码和程序文档 软件包维护的方法如下 使用单位的维护人员首先要仔细分析 研究卖主提供的用户手册 培训手册 新版本说明 计算机环境要求书 未来特性表 以及卖方提供的验收测试报告等 在此基础上 深入了解本单位的希望和要求 编制软件包的检验程序 该检验程序检查软件包所执行的功能是否与用户的要求与条件相一致 第八章软件维护 软件质量 软件文档与软件产权保护 改进程序的文档在软件维护阶段 利用历史文档 可以大大简化维护工作 历史文档有三种 1 系统开发日志 它记录项目的开发原则 开发目标 优先次序 选择某种设计方案的理由决策策略 使用的测试技术和工具 每天出现的问题 计划的成功和失败之处 第八章软件维护 软件质量 软件文档与软件产权保护 2 错误记载它把出错的历史记录下来 对于预测今后可能发生的错误类型及出错频率有很大帮助 此外对出错的统计 跟踪 可以合理的评价软件质量度量标准和软件方法的有效性 3 系统维护日志它记录了在维护阶段有关系统修改目的信息 包括修改的宗旨 修改的策略 存在的问题 问题所在的位置 解决问题的办法 修改要求和说明 注意事项 新版本说明等信息 它有助于人们了解程序修改背后的思维过程 以进一步了解修改的内容和修改带来的影响 第八章软件维护 软件质量 软件文档与软件产权保护 维护的副作用维护的目的是为了延长软件的寿命并让其创造更多的价值 经过一段时间的维护 软件中的错误减少了 功能增强了 但修改软件是危险的 每修改一次 潜伏的错误就可能增加一分 这种因修改软件造成的错误或其他不希望出现的情况称为维护的副作用 维护的副作用有编码副作用 数据副作用 文档副作用三种 1 编码副作用在使用程序设计语言修改源代码时可能引入错误 例如l删除或修改一个子程序 一个标号 一个标识符 l改变程序代码的时序关系 改变占用存储器的大小 改变逻辑运算符 l修改文件的打开或关闭 第八章软件维护 软件质量 软件文档与软件产权保护 l改进程序的执行效率 l把设计上的改变翻译成代码的改变 l为边界条件的逻辑测试做改变 以上这些变动都容易引入错误 要特别小心 仔细的修改 避免引入新的错误 2 数据副作用在修改数据结构时 有可能造成软件设计与数据结构不匹配 因而导致软件错误 数据副作用是修改软件信息结构导致的结果 例如 l重新定义局部或全部的常量 重新定义记录或文件格式 l增加或减少一个数据或高层数据结构的大小 l修改全局或公共数据 l重新初始化控制标志或指针 l重新排列输入 输出或子程序的参数 第八章软件维护 软件质量 软件文档与软件产权保护 以上这些情况都容易导致设计与数据不相容的错误 数据副作用可以通过详细的设计文档加以控制 在此文档中描述了一种交叉对照表 把数据元素 记录 文件和其它结构联系起来 3 文档副作用对数据流 软件结构 模块逻辑或任何其它有关特性进行修改时 必须对相关技术文档进行相应修改 否则会导致文档与程序功能不匹配 缺省条件改变 新错误信息不正确等错误 使文档不能反映软件当前的状态 如果对可执行软件的修改没有反映在文档中 就会产生文档副作用 例如 l修改交互输入的顺序或格式 没有正确的记入文档中 l过时的文档内容 索引和文本可能造成冲突等 第八章软件维护 软件质量 软件文档与软件产权保护 因此 必须在软件交付之前对整个软件配置进行评审 以减少文档副作用 事实上 有些维护请求并不要求改变软件设计和源代码 而是指出在用户文档中不够明确的地方 在这种情况下 维护工作主要集中在文档 为了控制因修改而引起的副作用 要做到 l按模块把修改分组 l自顶向下的安排被修改模块的顺序 l每次修改一个模块 l对每个修改了的模块 在安排修改下一个模块之前要确定这个修改的副作用 可使用交叉引用表 存储映像表 执行流程跟踪等 第八章软件维护 软件质量 软件文档与软件产权保护 反推工程与再生工程反推工程是分析一个程序过程 以最大努力去建立比源代码抽象层次更高的程序表达式 反推工程也是一个设计的恢复过程 反推工程工具集可以从一个现有的软件中提取有关的数据 体系结构 以及过程设计方面的信息 再生工程也叫做更新或改造工程 它不仅只是从现有系统中恢复设计信息 而是利用这些信息去改变或重建现存系统 尽最大努力来提高他们的整体质量 再生工程软件不仅可以再现现有系统的功能 而同时 开发人员为了提高系统的整体性能 还增加了新的功能 第八章软件维护 软件质量 软件文档与软件产权保护 8 4软件质量定义从实际应用角度 软件质量 softwarequality 定义 1 与明确确定的功能和性能需求的一致性 2 与明确成文的开发标准的一致性 3 与所有专业开发的软件所期望的隐含的特性的一致性上述定义突出了三点 1 需求是质量度量的基础 缺少与需求的一致性就无质量可言 2 专门的标准定义了一系列的开发准则 它指导软件工程化的开发方式 3 通常 对许多隐含需求不采用直接提出的方法 如良好的可维护性的要求 而忽视满足软件隐含的需求 那末 这样的软件质量也是不可信的 第八章软件维护 软件质量 软件文档与软件产权保护 8 5软件质量因素影响软件质量的因素分两大类 1 可以直接度量的因素 2 只能间接度量的因素 如可用性或可维护性1976年 Boehm等人提出了定量的评价软件质量的概念 并给出了30个质量度量公式 来确定评价软件质量 首次提出了软件质量度量的层次模型 1978年 Walters和Mccall提出了从软件质量要素准则到度量的三个层次软件质量度量模型 第八章软件维护 软件质量 软件文档与软件产权保护 软件质量因素归纳为11个 并给出了它们之间下例的关系 G murine根据上述等人的工作 提出了软件质量度量 SQM 技术 定量的评价软件 美国波音 日本的NEC在软件开发中都采用了该技术 国际标准组织 ISO 1985年提出了有关SQM的工作报告 Boehm提出的软件质量度量模型 第八章软件维护 软件质量 软件文档与软件产权保护 主要用途中间构造基本构造 软件质量度量模型图 第八章软件维护 软件质量 软件文档与软件产权保护 软件质量主要从三方面来评价 1 软件可使用性 2 软件可维护性 3 软件可移植性从模型可知 把软件质量的概念分解若干层次 对于最底层的软件质量概念引入数量化的概念 则得到软件质量的整体评价 Boehm等人关于软件质量特性完整定义如下 1 可使用性 程序可靠的 高效率的 考虑到人的因素的程度 2 可维护性 当需求改变时 程序修改和完善的难以程度 第八章软件维护 软件质量 软件文档与软件产权保护 3 可移植性 程序在其他计算机配置上运行的难易程度 4 可靠性 在一定的资源情况下 程序完成预定功能的程度 5 效率 程序完成预定功能的程度 6 环境工程 程序在用户一定时间和精力下或不影响用户信心的前提下完成任务的程度 7 可测试性 为程序建立验证准则和性能评价的难易程度 8 可理解性 程序便于用户理解的难易程度 9 可修改性 程序便于修改的难易程度 第八章软件维护 软件质量 软件文档与软件产权保护 10 设备独立性 程序的所有部分在其他硬件配置上运行的难易程度 11 完整性 程序的所有部分被给出和各部分被充分开发的程度 12 准确性 程序的输出满足原定目标的程度 13 一致性 程序中出现的标记 术语和符号前后一致的程度 14 设备效率 程序使用设备资源的程度 15 可存取性 可灵活选择程序构件的难易程度 16 通信性 程序便于用户满足规格说明的输入和产生被用户使用的输出的难易程度 17 结构性 程序中相互依赖部分组织模式的确定程度 第八章软件维护 软件质量 软件文档与软件产权保护 18 自描述性 用户在确定或验证程序目标 假设 限制 输入 输出和修改状态时 程序能提供信息的程度 19 简洁性 多余信息不在程序中出现的程度 20 易读性 通过阅读程序来理解其功能的难易程度 21 可扩充性 程序的计算能力或数据存储要扩充的程度 McCall认为 因素是软件质量的反应 而软件属性可用作评价准则 定量化的度量软件属性从而反映出软件质量的好坏 因素之间存在着有利和不利影响 第八章软件维护 软件质量 软件文档与软件产权保护 第八章软件维护 软件质量 软件文档与软件产权保护 第八章软件维护 软件质量 软件文档与软件产权保护 第八章软件维护 软件质量 软件文档与软件产权保护 由于因素之间存在着逆相关 即没有一种软件的设计能使得软件所有的质量因素都最佳 实际上 应根据不同类型的软件的不同要求做不同的选择 如 航空航天 可靠性是关键 商业系统 可维护性是关键 实时软件 效率是关键 其质量因素定义如下 1 可用性 熟悉 操作 准备输入和解释程序输出所需工作量的程度 2 正确性 程序满足其规格说明和完成任务 用户 目标的程度 3 可靠性 程序在要求的精度下 能够完成其规定功能的期望程度 第八章软件维护 软件质量 软件文档与软件产权保护 4 效率 程序完成其功能所需计算资源和程序代码数量的程度 5 完备性 对非授权人访问软件或数据行为的控制程度 6 可维护性 找到并改正程序中的一个错误所需的代价程度 7 适应性 修改一个运行程序所需工作量的程度 8 可测试性 测试一个程序 以保证其完成它所规定功能多少工作量的程度 9 可移植性 搬动一个程序从一个硬件软件系统环境到另一个应软件系统环境所需的工作量程度 第八章软件维护 软件质量 软件文档与软件产权保护 10 可重用性 程序或程序的一部分能够在另一相关应用程序中可重用的程度 11 互操作性 将一个系统耦合到另一系统所需工作量的程度 对上述质量因素进行直接的度量是困难的 在一定程度上甚至是不可能的 不幸的事 McCall定义的许多度量只能是主观的度量 这些量度可用检查表的形式对软件的专门属性进行 分级 在分级中使用了量度 第八章软件维护 软件质量 软件文档与软件产权保护 8 6软件文档的作用和分类1 什么是文档文档 document 是指某种数据媒体和其中所记录的数据 它具有永久性 并可以由人或机器阅读 通常仅用于描述人工可读的东西 在软件工程中 文档常常用来表示对活动 需求 过程或结果进行描述 定义 规定 报告或认证的任何书面或图示的信息 它们描述和规定了软件设计和实现的细节 说明使用软件的操作命令 第八章软件维护 软件质量 软件文档与软件产权保护 文档也是软件产品的一部分 没有文档的软件就不成其为软件 软件文档的编制 documentation 在软件开发工作中占有突出的地位和相当大的工作量 2 软件文档的作用在软件的生产过程中 总是伴随着大量的信息要记录 要使用 因此 软件文档在产品的开发生产过程中起着重要的作用 第八章软件维护 软件质量 软件文档与软件产权保护 1 提高软件开发过程的能见度 把开发过程中发生的事件以某种可阅读的形式记录在文档中 管理人员可把这些记载下来的材料作为检查软件开发进度和开发质量的依据 实现对软件开发的工程管理 2 提高开发效率 软件文档的编制 使得开发人员对各个阶段的工作都进行周密的思考 全盘权衡 从而减少返工 并且可在开发早期发现错误和不一致性 便于及时加以纠正 1 作为开发人员在一定阶段的工作成果和结束标志 2 记录开发过程中的有关信息 便于协调以后的软件开发 使用和维护 3 提供对软件的运行 维护和培训的有关信息 便于管理人员 开发人员 操作人员 用户之间的协作 交流和了解 使软件开发活动更科学 更有成效 4 便于潜在用户了解软件的功能 性能等各项指标 为他们选购符合自己需要的软件提供依据 文档在各类人员 计算机之间的多种桥梁作用可从图中看出 第八章软件维护 软件质量 软件文档与软件产权保护 第八章软件维护 软件质量 软件文档与软件产权保护 3 文档的分类软件文档从形式上来看 大致可分为两类 一类是开发过程中填写的各种图表 可称之为工作表格 另一类是应编制的技术资料或技术管理资料 可称之为文档或文件 软件文档的编制可以用自然语言 特别设计的形式语言 介于两者之间的半形式语言 结构化语言 各类图形表示 表格编制文档 文档可以书写 也可以在计算机支持系统中产生 但它必须是可阅读的 按照文档产生和使用的范围 软件文档大致可分为三类 第八章软件维护 软件质量 软件文档与软件产权保护 1 开发文档 这类文档是在开发过程中 作为软件开发人员前一阶段工作成果的体现和后一阶段工作依据的文档 包括软件需求说明书 数据要求说明书 概要设计说明书 详细设计说明书 可行性研究报告 项目开发计划 2 管理文档 这类文档是在软件开发过程中 由软件开发人员制定的需提交管理人员的一些工作计划或工作报告 使管理人员能够通过这些文档了解软件开发项目安排 进度 资源使用和成果等 包括项目开发计划 测试计划 测试报告 开发进度月报及项目开发总结 第八章软件维护 软件质量 软件文档与软件产权保护 3 用户文档 这类文档是软件开发人员为用户准备的有关该软件使用 操作 维护的资料 包括用户手册 操作手册 维护修改建议 软件需求说明书 4 软件文档的工作国家标准局在1988年1月发布了 计算机软件开发规范 和 软件产品开发文件编制指南 作为软件开发人员工作的准则和规程 它们基于软件生存期方法 把软件产品从形成概念开始 经过开发 使用和不断增补修订 直到最后被淘汰的整个过程应提交的文档归于以下13种 第八章软件维护 软件质量 软件文档与软件产权保护 1 可行性研究报告 说明该软件项目的实现在技术上 经济上和社会因素上的可行性 详述为合理地达到开发目标可供选择的各种可能的实现方案 说明并论述所选定实施方案的理由 2 项目开发计划 为软件项目实施方案制定出的具体计划 它应包括各部分工作的负责人员 开发的进度 开发经费的概算 所需的硬件和软件资源等 项目开发计划应提供给管理部门 并作为开发阶段评审的基础 第八章软件维护 软件质量 软件文档与软件产权保护 3 软件需求说明书 也称软件规格说明书 其中对所开发软件的功能 性能 用户界面及运行环境等做出详细的说明 它是用户与开发人员双方对软件需求取得共同理解基础上达成的协议 也是实施开发工作的基础 4 数据要求说明书 该说明书应当给出数据逻辑描述和数据采集的各项要求 为生成和维护系统的数据文件作好准备 5 概要设计说明书 该说明书是概要设计工作阶段的成果 它应当说明系统的功能分配 模块划分 程序的总体结构 输入输出及接口设计 运行设计 数据结构设计和出错处理设计等 为详细设计奠定基础 第八章软件维护 软件质量 软件文档与软件产权保护 6 详细设计说明书 着重描述每一个模块是如何实现的 包括实现算法 逻辑流程等 7 用户手册 详细描述软件的功能 性能 和用户界面 使用户了解如何使用该软件 8 操作手册 为操作人员提供该软件各种运行情况的有关知识 特别是操作方法细节 9 测试计划 针对组装测试和确认测试 需要为组织测试制定计划 计划应包括测试的内容 进度 条件 人员 测试用例的选取原则 测试结果允许的偏差范围等 第八章软件维护 软件质量 软件文档与软件产权保护 10 测试分析报告 测试工作完成以后 应当提交测试计划执行情况的说明 对测试结果加以分析 并提出测试的结论性意见 11 开发进度月报 该月报是软件人员按月向管理部门提交的项目进展情况的报告 报告应包括进度计划与实际执行情况的比较 阶段成果 遇到的问题和解决的办法 以及下个月的打算等 第八章软件维护 软件质量 软件文档与软件产权保护 12 项目开发总结报告 软件项目开发完成之后 应当与项目实施计划对照 总结实际执行的情况 如进度 成果 资源利用 成本和投入的人力 此外 还需对开发工作作出评价 总结经验和教训 13 维护修改建议 软件产品投入运行之后 可能有修正 更改等问题 应当对存在的问题 修改的考虑以及修改的影响估计等作详细的描述 写成维护修改建议 提交审批 第八章软件维护 软件质量 软件文档与软件产权保护 8 7对文档编制的质量要求为使软件文档能起到多种桥梁的作用 使它有助于程序员编制程序 有助于管理人员监督和管理软件的开发 有助于用户了解软件的工作和应作的操作 有助于维护人员进行有效的修改和扩充 文档的编制必须保证一定的质量 如果不重视文档编写工作 或是对文档编写工作的安排不当 就不可能得到高质量的文档 质量差的文档不仅使读者难于理解 给使用者造成许多不便 而且会削弱对软件的管理 难以确认和评价开发工作的进展情况 提高软件成本 一些工作可能被迫返工 甚至造成更加有害的后果 如误操作等 第八章软件维护 软件质量 软件文档与软件产权保护 第八章软件维护 软件质量 软件文档与软件产权保护 高质量的文档应当体现在以下几个方面1 针对性 文档编制以前应分请读者对象 按不同的类型 不同层次的读者 决定怎样适应他们的需要 例如 管理文档主要是面向管理人员的 用户文档主要是面向用户的 这两类文档不应像开发文档 面向开发人员 那样过多使用软件的专用术语 2 精确性 文档的行文应当十分确切 不能出现多义性的描述 同一课题几个文档的内容应当是协调一致 没有矛盾的 第八章软件维护 软件质量 软件文档与软件产权保护 3 清晰性 文档编写应力求简明 如有可能 配以适当的图表 以增强其清晰性 4 完整性 任何一个文档都应当是完整的 独立的 它应自成体系 例如 前言部分应作一般性介绍 正文给出中心内容 必要时还有附录 列出参考资料等 同一课题的几个文档之间可能有些部分内容相同 这些重复是必要的 不要在文档中出现转引其它文档内容的情况 例如 一些段落没有具体描述 而用 见 文档 节 的方式 这将给读者带来许多的不便 5 灵活性 各个不同软件项目 其规模和复杂程度有着许多实际区别 不能一律看待 第八章软件维护 软件质量 软件文档与软件产权保护 1 应根据具体的软件开发项目 决定编制的文档种类 软件开发的管理部门应该根据本单位承担的应用软件的专业领域和本单位的管理能力 制定一个对文档编制要求的实施规定 主要是 在不同条件下 应该形成哪些文档 这些文档的详细程度 该开发单位每一个项目负责人都应当认真执行这个实施规定 对于一个具体的应用软件项目 项目负责人应根据上述实施规定 确定一个文档编制计划 其中包括 l应当编制哪几种文档 详细程度如何 l各个文档的编制负责人和进度要求 第八章软件维护 软件质量 软件文档与软件产权保护 l审查 批准的负责人和时间进度安排 l在开发时期内各文档的维护 修改和管理的负责人 以及批准手续 l有关的开发人员必须严格执行这个文档编制计划 2 当所开发的软件系统非常大时 一种文档可以分成几卷编写 例如 l项目开发计划可分写为 质量保证计划 配置管理计划 用户培训计划 安装实施计划等 l系统设计说明书可分写为 系统设计说明书 子系统设计说明书 l程序设计说明书可分写为 程序设计说明书 接口设计说明书 版本说明 l操作手册 安装实施过程 第八章软件维护 软件质量 软件文档与软件产权保护 l测试计划可分写为 测试计划 测试设计说明 测试规程 测试用例 l测试分析报告可分写为 综合测试报告 验收测试报告 l项目开发总结报告也可分写成 项目开发总结报告 资源环境统计 3 应根据任务的规模 复杂性 项目负责人对该软件的开发过程及运行环境所需详细程度的判断 确定文档的详细程度 第八章软件维护 软件质量 软件文档与软件产权保护 4 对国际GB8567 88 计算机软件产品开发文件编制指南 所建议的所有条款都可以扩展 进一步细分 以适应需要 反之 如果条款中有些细节并非必需 也可以根据实际情况压缩合并 5 程序的设计表现形式 可以使用程序流程图 判定表 程序描述语言 PDL 或问题分析图 PAD 等 6 对于文档的表现形式 没有规定或限制 可以使用自然语言 也可以使用形式化的语言 第八章软件维护 软件质量 软件文档与软件产权保护 6 可追溯性 由于各开发阶段编制的文档与各个阶段完成的工作有密切的关系 前后两个阶段生成的文档 随着开发工作的逐步延伸 具有一定的继承关系 在一个项目各开发阶段之间提供的文档必定存在着可追溯的关系 例如 某一项软件需求 必定在设计说明书 测试计划 甚至用户手册中有所体现 必要时应能作到跟踪追查 8 8文档的管理和维护在整个软件生存期中 各种文档作为半成品或是最终成品 会不断生成 修改或扩充 为了最终得到高质量的产品 达到上节提出的质量要求 必须加强对文档的管理 以下几个方面是应当作到的 第八章软件维护 软件质量 软件文档与软件产权保护 1 软件开发小组至少应设一位文档保管员 负责集中保管本项目已有文档的两套主文本 这两套主文本的内容完全一致 其中的一套可按一定手续 办理借阅 2 软件开发小组的成员可根据工作需要在自己手中保存一些个人文档 这些一般都应是主文本的复制件 并注意与主文本保持一致 在作必要的修改时 也应先修改主文本 3 开发人员个人只保存着主文本中与它工作有关的部分文档 第八章软件维护 软件质量 软件文档与软件产权保护 4 在新文档取代旧文档时 管理人员应及时注销旧文档 文档的内容有更动时 管理人员应随时修订主文本 使其及时反映更新了的内容 5 项目开发结束时 文档管理人员应收回开发人员的个人文档 发现个人文档与主文本有差别时 应立即着手解决 这往往是在开发过程中没有及时修订主文本造成的 6 在软件开发的过程中 可能发现需要修改已完成的文档 特别是规模较大的项目 主文本的修改必须特别谨慎 修改以前要充分估计修改可能带来的影响 并且要按照 提议 评议 审核 批准 实施 的步骤加以严格的控制 第八章软件维护 软件质量 软件文档与软件产权保护 第八章软件维护 软件质量 软件文档与软件产权保护 各类人员与软件文档编制的关系项目负责人应该根据上述实施规定 确定一个文档编制计划 其中包括 1 应该编制哪几种文档 详细程度如何 2 各个文档的编制负责人和进度要求3 审查 批准的负责人和时间进度安排4 在开发时期内各文档的维护 修改和管理的负责人以及批准手续5 有关的开发人员必须严格执行这个文档编制计划 第八章软件维护 软件质量 软件文档与软件产权保护 软件文档的国家标准1 计算机软件产品开发文件编制指 GB8567 882 计算机软件配置管理计划规范 GBT12505 903 计算机软件质量保证计划规范 GBT12504 904 需求分析说明书 5 总体设计说明书 6 详细设计说明书 第八章软件维护 软件质量 软件文档与软件产权保护 8 9软件知识产权的法律保护计算机软件是一种人类智力的创作成果 这种成果所享有的经济权利和精神权利 主要是靠知识产权法来保护的 知识产权 又称智力产权或智慧产权 主要包括著作权 专利权和商标权 中华人民共和国著作权法 中明确规定 计算机软件是其受保护课题中的一项 到目前为止 世界上已有30多个国家明文在版权法 即著作权法 中保护这种客体 另外 还又一部分国家通过司法解释将版权法的保护延及软件 这是一种较普遍的趋势 第八章软件维护 软件质量 软件文档与软件产权保护 但不论是在我国 还是在国外 版权法对软件的保护 并没有完全排斥其它知识产权的保护 不同的知识产权法对软件的保护 在有些场合下是可以选择的或并行的 即重叠的 或交叉的 交叉指同时适用两种或多种知识产权法中的各一部分 重叠则指同时适用两种或多种知识产权法 第八章软件维护 软件质量 软件文档与软件产权保护 8 9 1版权法对计算机软件的保护版权保护制度是从保护文字作品开始的 如今在大多数国家 文字作品仍是版权法的主要保护对象 而计算机软件中的文档中的大部分是文字作品 源程序中的注释部分也是文字作品 如果把代码看作是某种特殊的文字 这样程序也可以被看作是文字作品 所以 以版权法保护计算机软件是合适的 第八章软件维护 软件质量 软件文档与软件产权保护 版权法所保护的 并不是文字作品或其他作品中所反映出的作者的构思 方案或思想 而是只是这些构思 方案或思想的表达方式 这也是大多数国家都承认的 一个计算机软件设计完成以后 不论是程序还是文件 都在一定程度上表达了设计者的某种构思 所以 以版权法保护计算机软件也是合适的 版权法中首先要保护的是权利人对其作品享有复制权 计算机软件与其他作品相比较 更难以创作而更易于复制 所以 自然成为他人剽窃和谋取私利的对象 从这个角度看 以复制权法保护计算机软件也是非常合适的 第八章软件维护 软件质量 软件文档与软件产权保护 8 9 2专利法对计算机软件的保护版权法只保护某种构思 设计的表达形式 不保护构思或设计本身 这是版权法对计算机软件保护的局限性 因此 软件开发人员一般也不愿意他人未经许可就把表达在软件中的构思或设计白白拿走 事实是这种构思本身也是软件开发人员的创作性劳动 类似于发明成果 这时 我们就需要使用另一个领域的法律 这个领域中的法律将保护构思或设计本身 即未经创作人许可 为营利目的而利用他人设计构思去制作软件产品 就是侵犯了创作者在这个领域享有的专有权 claimspriority 这种专有权专利权 就是专利法 第八章软件维护 软件质量 软件文档与软件产权保护 版权法只要求软件产品具有独创性 或叫初创性 原创性 既非抄袭或复制他人软件 即可受到保护 而专利法与版权法不同 专利法则要求软件产品 或称软件发明 应具有三性 新颖性 技术先进性和实用性因此 专利法保护的条件是苛刻的 审查是严格的 对于已获专利的软件 它们可享有专利法和版权法所赋予的双重权利 第八章软件维护 软件质量 软件文档与软件产权保护 8 9 3商标法对计算机软件的保护商标法在知识产权法中 从保护生产厂家的市场信誉角度 保护他们的产品不受其他生产同样产品的厂家或个人侵犯 这种侵犯的主要的形式是假冒 由于计算机软件兼有作品和产品的特征 所以也得到商标法的保护 在版权法适用以后 商标法仍不失为一种有力的辅助保护方式 第八章软件维护 软件质量 软件文档与软件产权保护 8 9 4商业秘密法对计算机软件的保护无论采用那一种知识产权法保护软件 对一部分软件的源程序 始终受到商业秘密法的保护 商业秘密法作为单行法律在我国还不存在 但该法的基本原则在我国 中华人民共和国技术合同法 与 中华人民共和国技术引进合同管理条例 中均有体现 一部分软件的原始所有人 主要是开发者 以及一切 用户软件 得原始所有人 在许可他人使用有关软件时 往往不愿把源程序以及有关文件中自己认为可以靠保密享有专有权的内容透露出去 这种要靠在 许可合同 或 第三方保存源程序合同 等合同中订立相应的保护商业秘密的条款了 而这些条款的合法性 则由商业秘密法 或承认有关原则的其他法 予以确认 此外 在一些国家中 可用于对软件知识产权进行保护的法律 还有公平竞争法 工业版权法等 第八章软件维护 软件质量 软件文档与软件产权保护 8 9 5计算机软件是著作权保护的客体8 9 5 1软件著作权保护的基本条件计算机软件作为著作权保护的客体 是著作权所调整的权利和义务借以发生的对象 他理所当然地应该满足著作权法对作品的基本要求 其主要内容是 条例 中规定的 必须是开发者独立开发的 并以固定在某种有形物体上 这两项基本要求 著作权法与专利法不同 他不要求作品具有较高的创作性或新颖性 但要求作品必须具有原创性 对具体计算机软件来说 著作权法并不要求软件达到某个较高的技术水平 只是要求开发者独立地自行开发的软件 即可享有著作权 在实际生活中 第八章软件维护 软件质量 软件文档与软件产权保护 侵犯开发者及软件权利人权益的主要形式和方法就是私自复制 抄袭他人软件 著作权保护的主要形式和内容也就是在一定时间范围内 禁止他人未经软件权力人许可就复制或抄袭软件 因此 任何复制或抄袭他人的 并非自己开发的软件 当然不能获得著作权 一个作品在创作和表现出来之前 仅处于作者构思过程中 是不成为作品的 当然谈不上享有著作权 所以 一个软件必须在其创作出来 并固定在某种有形物体 如纸 磁带 磁盘等 上面 通过这种有形物体 能为他人感知 传播 复制等情况下 才能享有著作权保护 第八章软件维护 软件质量 软件文档与软件产权保护 8 9 5 2软件著作权的特性计算机软件通常包括程序和文件 文件作为人类语言表达的文字资料 当然受到著作权的保护 但是 对计算机程序这种新形式的著作权保护客体 它除了具有类似于传统文字作品性质外 还具有一些特殊性质 因此 在使用传统的著作权法概念来处理计算机程序保护时 有些条款可能会显得不相适应 但是 凡是满足著作权法基本条件 符合 条例 中有关定义的计算机软件 均可享有著作权法保护 如 尽管目标代码形式是以二进制数码形式构成的 程序的目标代码和源代码应视为统一作品 因而享有著作权保护 第八章软件维护 软件质量 软件文档与软件产权保护 操作系统虽然和硬件过程的关系密切 但并不说明操作系统本身就是一个过程 事实上一种计算机 可以开发出若干种不同的操作系统 这说明他仍然是思想 概念和过程的表现 可以享有著作权 固化在只读存储器 ROM 中的计算机程序已构成一种物理结构 但不管采用什么载体 以什么形式固定 对作品的著作权性质是毫无影响的 所以 他也可以享受著作权 第八章软件维护 软件质量 软件文档与软件产权保护 8 9 5 3软件著作权的保护范围著作权法的基本原则是 只保护作品的表现 而不保护作品中所体现的思想 概念 因此 著作权法不是保护软件的一切方面 在软件开发中所用的任何思想 概念 发现 原理 算法 处理过程和行为方法都不受保护 可以被任何人使用以制作功能相似的软件 第八章软件维护 软件质量 软件文档与软件产权保护 软件中那些部分是思想 概念 那些部分是表现 即软件著作权保护客体的范围确定是比较困难的 经过广泛的讨论和司法实践的探索 在某些方面已取得共识 大家认为 软件的功能目标应属于思想 概念 不能受著作权法保护 而软件的程序代码则是表现 应属于著作权保护客体之内 第八章软件维护 软件质量 软件文档与软件产权保护 8 9 5 4软件著作权人享有的专有权利根据我国著作权法的规定 作品著作人 或称版权人 的专有权利包括以下五项 l发表权 即决定作品是否公布于众的权力 l署名权 既表明作者身份 在作品上有署名的权力 l修改权 即修改或授权他人修改作品的权力 l保护作品完整权 即保护作品不受扭曲 篡改的权力 l使用权和获得报酬权 即以复制 表演 播放 展览 发行 摄制电影 电视 录像或改变 翻译 注释 编辑等方式使用作品的权力 以及许可他人以上述方式作为作品 并由此获得报酬的权力 第八章软件维护 软件质量 软件文档与软件产权保护 一般说 版权法授予版权著作权人的专有权利可以分为精神权利和经济权利两个方面 所谓精神权利 又称人身的非财产权利 在一般情况下 一项作品总是从某个方面反映了作者的思想 观点 人品的专有权利 我国著作权法中所提供的发表权 署名权 保护作者的完整权等均属于精神权利 所谓经济权利 又称财产权利 是指作者使用自己的作品已获得经济收益的专有权力 以及作者可以在社会使用其作品是取得报酬的权力 我国著作权法中所提供的修改权 使用权和获得报酬权等均属于经济权利 许多国家的版权法规定 版权著作权人对其作品的经济权利可以转让给他人 第八章软件维护 软件质量 软件文档与软件产权保护 对计算机软件 最重要的经济权利为如下三项 l制作程序复制品的权力 各国版权法都规定 只有版权人或经其授权的人才可以制作其作品的复制品 l制作程序演绎文本的权力 各国版权法都规定 只有版权人或经其授权的人才可以制作原作品的演绎作品 一项计算机软件的演绎文本 通常是指对该软件进行修改 但总体结构并未改变 所形成的文本 第八章软件维护 软件质量 软件文档与软件产权保护 l传播软件的专有权力 各国版权法都规定 只有作品版权人或经其授权的人才有权利以各种方式发行 传播作品 就计算机程序而言 只有程序的版权人或经其授权的人有权通过销售 出租 出售 展示 赠送等方式发行 传播程序及其复制品 基于程序所具有的实用工具的性质 各国软件市场往往采用提供使用许可证的发行方式 在这种方式下 发行者也向用户提供程序的复制品 如载有程序的盘片 但用户除使用之外 无权处理该复制品 这种方式与销售复制品的发行方式不同之处在于 后者允许用户任意处理该复制品 第八章软件维护 软件质量 软件文档与软件产权保护 另外 软件版权人通常还享有向他人转让该软件的全部经济权力 不过 一旦发生这种转让活动之后 该软件的经济权力已经转移到受让者手里 成为新的版权人 原来的版权人就不再享有这种权利了 因此 对于某项软件来说 该版权人只能进行一次转让活动 许多国家的版权法都规定 作者的精神权力是永久的 作者去世后 其精神权力有作者指定的受托人代为行使 或者由作者的继承人代其行使 如果没有受托人或继承人 则由有关的社会组织或国家主管机关行使 我国著作权法亦规定 作者的署名权 修改权 保护作品完整权的保护期不受限制 第八章软件维护 软件质量 软件文档与软件产权保护 至于作品的经济权力则是限制的 这是为平衡作者的个人利益和社会的公共利益所必需的 亦即 在过了限制范围之后 作品就成为社会共有财富 任何人都可以自由使用 我国著作权法规定 公民的作品 其发表权和获得报酬权的保护期为作者终生及其死亡之后50年 截至于作者死亡之后第50年的12月31日 如果是合作作品 截至于最后作者死亡之后第50年的12月31日 法人的作品或法人享有的职务作

温馨提示

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

评论

0/150

提交评论