软件需求:业务需求、用户需求、功能需求(含非功能需求)

  • 业务需求:反映了组织机构或客户对系统、产品高层次的目标要求,他们在项目收视图与规范文档中予以说明。
  • 用户需求:描述了用户使用产品必须完成的任务
  • 功能需求:定义了开发人员必须实现的软件功能,是用户能完成他们的任务,从而满足了业务需求。

    需求分析

    1)需求的层次:业务需求、用户需求和系统需求。这三个不同层次从目标到具体,从整体到局部,从概念到细节
    2)质量功能部署:质量功能部署(Quality Function Deployment, QFD)是一种将用户要求转化成软件需求的技术,其目的是最大限度地提升软件工程过程中用户的满意度。
    3)需求获取:常见的需求获取方法包括用户访谈、问卷调查、釆样、情节串联板、联合需求计划等。
    4)需求分析 :使用SA方法进行需求分析,其建立的模型的核心是数据字典,围绕这个核心,有三个层次的模型,分别是数据模型、功能模型和行为模型(也称为状态模型)。在实际工作中,一般使用实体联系图(E-R图)表示数据模型,用数据流图(Data Flow Diagram, DFD)表示功能模型,用状态转换图(State Transform Diagram, STD)表示行为模型。
    5)软件需求规格说明:在国家标准GB/T 8567-2006中,提供了一个SRS的文档模板和编写指南。
    6)需求验证:需求验证也称为需求确认,其活动是为了确定以下几个方面的内容:

  • —SRS正确地描述了预期的、满足项目干系人需求的系统行为和特征。

  • —SRS中的软件需求是从系统需求、业务规格和其他来源中正确推导而来的。
  • —需求是完整的和高质量的。
  • —需求的表示在所有地方都是一致的。
  • —需求为继续进行系统设计、实现和测试提供了足够的基础。

在实际工作中,一般通过需求评审和需求测试工作来对需求进行验证。需求评审就是对SRS进行技术评审。

软件设计

软件设计是把许多事物和问题抽象起来,并且抽象他们不同的层次和角度。软件设计的基本 原则是信息屏蔽线和模块独立性

高可用性和高可靠性的规划与设计

  • 高可用性和高可靠性的规划与设计可用性(availability)是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。
  • 可靠性(reliability)是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。

    常见的可用性战术如下:

    1)错误检测:用于错误检测的战术包括命令/响应、心跳和异常。
    2)错误恢复:用于错误恢复的战术包括表决、主动冗余、被动冗余。
    3)错误预防:用于错误预防的战术包括把可能出错的组件从服务中删除、引入进程监视器。

软件开发模型

瀑布模型适用于需求比较稳定、很少需要变更的项目
螺旋模型:强调风险分析,特别适合大型复杂的系统

系统开发的生命周期(也被成为“瀑布模型”)分为5个过程阶段:总体规划阶段、系统分析阶段、系统设计阶段、系统实施阶段、系统运行和评价阶段。每个阶段都有明确的任务,任务完成后都交付给下一阶段一定规格的文档,作为下一个阶段开发的依据。总体规划向系统分析阶段提交可行性分析报告;系统分析阶段提交系统方案说明书。一般来说总体规划工作量占9%,系统分析占15%,系统设计占20%,系统实施占50%,运行和评价占6%。