zoukankan      html  css  js  c++  java
  • 需求分析

    对于架构师来说,需求分类、需求折中以及需求变更是日常工作中遇到的最平常的事情。

     

    什么是软件需求?

    需求描述了系统必须满足的情况或提供的能力,它就可以是直接来自客户需要,也可以来自合同、标准、规范或者其他有正规约束力的文档。

     

    需求捕获:获取知识的过程,知识从无到有、从小到多。需求采集者必须理解用户所从事的工作,并且了解用户和客户希望软件系统在哪些方面帮助他们。需求捕获最终会产生一系列的需求采集卡,其中记录了需求类型、需求描述、需求背景、需求提出者以及需求记录者等相关信息。

     

    需求分析:挖掘和整理知识的过程。它在已掌握知识的基础上进行。需求分析最终会产生一份需求规格说明书(SRS),它精确描述了系统必须提供的功能,必须达到的质量属性以及它必须遵守的约束。

     

    系统分析:针对系统所面临的问题,搜集相关资料,以了解产生问题的原因所在,进而提出解决问题的方法与可行的逻辑方案,以满足系统的需求,实现预定的目标。系统分析最终会产生一个系统设计文档。

     

    需求分析关注‘做什么’的问题;系统分析关注‘怎么做’的问题。

     

    架构师必须掌握的需求知识

    软件需求的分类:软件需求可以分为功能性需求和非功能性需求两类;其中非功能性需求分为质量属性和约束两种;质量属性分为开发期质量属性和运行期质量属性。

     

    功能性需求描述了开发的软件系统应该做什么,可以通过‘软件系统应提供什么服务’来进行定义。

     

    约束规定了开发软件系统时必须遵守的限制条件。

     

    McCall1977年对软件的质量属性做以下分类:

    1.       产品操作:正确性、可靠性、效率、完整性、易用性

    2.       产品修改:可维护性、灵活性、可测试性

    3.       产品改型:可移植性、可重用性、互操作性

     

    如果将质量属性分为运行时质量属性和开发期质量属性,可以进行如下分类:

    1.       运行时质量属性:性能、安全性、易用性、持续可用性、可伸缩性、互操作性、可靠性、鲁棒性

    2.       开发期质量属性:易理解性、可扩展性、可重用性、可测试性、可维护性、可移植性

     

    各类需求对软件架构的影响

    功能需求影响架构,但不决定架构。质量属性从根本上影响架构。

     

    面对频繁的需求变更,应该如何面对?

    需求变更的来源

    1.       我们要解决的问题发生了变化

    2.       我们对问题的理解发生了变化

    3.       我们理解问题的过程有错误

     

    对于一个软件系统来说,质量属性需求是最小可能发生变化的;其次是各种约束;最容易发生变化的是各种功能需求。

    参考文献

    《软件架构设计》  温昱

  • 相关阅读:
    汇编语言之第三章寄存器(内存访问)
    汇编语言之第一章基础知识
    汇编语言之实验二
    python爬虫——利用BeautifulSoup4爬取糗事百科的段子
    电子表格拼接助手
    龙龙背作文V1.0——考研英语作文专项训练软件
    龙龙记单词V1.1——更美,更多,更强
    书签小助手V1.0发布了
    龙龙排短文V1.0——考研英语排序题专项训练软件
    保定市公交换乘离线查询系统
  • 原文地址:https://www.cnblogs.com/wing011203/p/1247250.html
Copyright © 2011-2022 走看看