zoukankan      html  css  js  c++  java
  • 《需求工程——软件建模与分析》第一篇

       第一部分  需求工程导论

         软件的发展经历了一“机器”为中心、以应用为中心、一“企业”为中心的3个阶段。但是随着以“应用”为中心软件的发展,原有个体化“软件作坊式”的软件开发方法带来了很多的问题,形成了“软件危机”。20世纪90年代的软件评估,将软件项目分成成功项目、问题项目、失败项目。而“未能很好的理解和掌握应用型软件的模拟特性一起由此而产生的一系列影响和要求”成为导致需求问题的重要原因。软件又可以分为面向专业用户的纯工具型软件、面向普通用户的纯工具性软件和应用型软件。对于需求工程就是利用工程化的手段进行需求处理,保证需求处理的正确进行。需求工程活动包括需求开发和需求管理两个方面,其中需求开发是因为需求工程的“需求特性”而存在的,专门用来处理需求的软件技术,包括需求获取、需求分析、需求规格说明和需求验证4个具体活动。需求工程处于系统工程的起始阶段,包括系统需求开发和软件需求来发两个活动。同时需求工程的复杂性又体现在处理范围广泛、涉及诸多参与方、处理内容多样、处理活动相互交织、处理结果要求苛刻等几个方面。对于需求工程师来说,他们都需要具备专业技能、分析技能、交流技能、观察技能、建模技能、写作技能、创新技能、协调技能等。

      第二部分   需求基础

         对于不同背景的人会有不同的看法,因此需求是需求工程中一个非常难以定义和解释的概念。软件开发的任务是构造软件系统,并将它们部署到现实世界中,通过软件系统与其周围环境的交互,解决人们在现实世界中遇到的问题。软件系统通过影响问题域能够帮助人们解决问题,称为解系统。通过对需求与规格说明中可以知道需求是用户对问题域中的实体状态或事件的期望描述。规格说明是解系统为满足用户需求而提供的解决方案,规定了解系统的行为特征。规格说明包括对共享现象的描述、系统对共享现象所施加的操作的描述。而在问题域特性中,有间接特性、约束和假设两类特性需要特别关注。[IEEE1998]将需求分为功能需求、性能需求、质量属性、对外接口、约束这几种类型。根据对本章节的阅读,我了解到需求对系统的成败影响甚大,所以对需求的描述应该尽可能的理想,优秀的需求应该具备完整性、正确性、精确性、可行性、必要性、无歧义、可验证。

    第三部分  需求工程过程

         在需求获取中,需求工程师通常需要执行的任务包括:手机背景资料、定义项目前景和范围、选择信息的来源、选择获取方法执行获取、记录获取结果。而在需求分析阶段,需求工程师主要的任务包括背景分析、确定系统边界、需求建模、需求细化、确定优先级、需求协商。获取的需求要被编写为文档,编写文档的主要目的是为了在系统涉众之间交流信息,因此编写的文档应该具有一定的质量。在编写文档阶段,需求工程师主要工作为定制文档模板、编写文档。接下来要进行需求验证,需求规格说明书至少要满足:文档内每条需求都正确、准确的反应了用户的意图;文档记录的需求集中体现在整体上具有完整性和一致性;文档的组织方式和需求的书写方式具有可读性和可修改性。需求验证阶段的主要任务有执行验证和问题修正。下边需求管理阶段主要任务有建立和维护需求基线集、建立需求跟踪信息、进行变更控制等。

  • 相关阅读:
    Adobe Flash Player因过期而遭到阻止”的内幕起因和解决办法
    SQL中isnull,nullif,coalesce的用法
    sql server全局变量
    关于分组后字段拼接的问题
    查询某个分组中多行字段值的拼接字串的方法--access
    分组统计(平均值计算)
    excel,sql server,access数据之间相互导入导出
    数据查询和管理
    我为什么学习Windows编程
    zStack学习笔记(原创,绝对不是抄的……)
  • 原文地址:https://www.cnblogs.com/1305yyf/p/4881346.html
Copyright © 2011-2022 走看看