基于Hadoop平台的电信客服数据的处理与分析②项目分析与设计---需求分析-项目场景引入

任务描述

需求分析是软件生命周期中一个非常重要的过程,它决定着整个软件项目的质量,也是整个软件开发的成败所在。本环节任务是完成软件需求规格说明书。

知识点 :软件需求规格说明书的编写

重   点 :软件需求规格说明书内容的学习

难   点 :软件需求规格说明书的理解与编写

内   容 :软件需求规格说明书的编写

任务指导

一. 软件需求规格说明书的定义

      参考需求分析定义:需求分析(软件工程学术语)_百度百科

二. 软件需求规格说明书内容分析

    1. 项目概述

         1.1 产品介绍
             提示:
           (1)说明产品是什么,什么用途。
           (2)介绍产品的开发背景。提供关于发起这个软件开发的业务组织的概要,包括业务组织的使命及业务目标
        1.2 产品范围
             提示:描述待开发软件产品的范围。在描述中应该包括:
           (1)描述软件产品的特征
           (2)介绍软件的功能,并进行简要说明
           (3)描述软件产品“适用的领域”和“不适用的领域”,本产品“应当包含的内容”和“不包含的内容”。(做什么,不做什么)
           (4)说明软件应用
           (5)描述软件的相关的收益、目的和目标等
             此处的描述应与之前的项目文档的类似描述保持一致。说清楚产品范围的好处是:

           (1)有助于判断什么是需求,什么不是需求;

           (2)可以将开发精力集中在产品范围之内,少干吃力不讨好的事情;

           (3)有助于控制需求的变更。

        1.3 用户群体及角色
              提示:
           (1)描述本产品面向的用户(客户、最终用户)的特征。
           (2)说明本产品将给他们带来什么好处?他们选择本产品的可能性有多大?
           (3)根据用户的特征,按照功能、位置和设备类型等识别每一类用户。明确每一类型的用户的数量,以及他们使用软件的特点。根据这些特点划分产品中定义的角色及其工作职责,填写在下表中,各种角色的具体行为将在功能性需求中描述。软件产品用户的特征会影响特定的需求。许多人在软件生命周期的运行和维护阶段使用软件。这些人是用户、操作员、系统维护人员。这些人的某些特点,如教育水平,经验和技术专长,可能成为软件的运行环境的重要制约因素。

表1 用户群体及角色示例

角色名称

职责描述

        1.4 运行环境
              提示:描述软硬件运行环境。包括硬件平台、操作系统和版本,以及用户、服务器和数据库的地理位置。列出系统必须和平共存的其他软件组件或应用程序,前景和范围文档中可能包含这样的高层信息。

表2  运行环境要求示例

需求名称

详细要求

        1.5 假设、依赖和约束
              提示:列举软件产品的假设、依赖和约束。但不是每个产品都同时具备这三个条件。
              假设 描述那些影响在软件需求说明书描述的需求的假设。假设是那些在项目的生命周期中被认为是真的因素,如果这种假设改变,会对项目产生负面的影响,包括但不限于最终用户的特点,已知的技术基础设施,资源可用性和资金可用性等。
依赖 描述那些影响在软件需求说明书中描述的需求的依赖。依赖是指在项目的范围和控制之外,并且为了项目取得成功而必须为真的情况。举例来说,一个依赖可能是一个应用程序依赖于一个不同的应用提供具体的数据或者是一个与第三方应用程序的接口需要购买一个应用程序编程接口(API)。
约束 提供各种限制软件的范围和功能的因素的描述,包括但不限于行业标准与规范,业务规则,监管政策,基础设施的限制,资源和许可。约束是通过环境、权利或强制规定施加到解决方案上的限制。约束通过无法改变的边界及限制,制约了解决方案的设计师可供选择的方案。
 

   2. 产品的功能性需求

       2.1 整体业务流程图/用例图
             提示:以结构化或面向对象的方法绘制出产品整体业务的流程图或用例图。
       2.2 功能性需求分类
             提示:将功能性需求先粗分再细分,下表中的 功能 A, 功能 A.1等符号应当被替换成有含义的名称。

表3  功能性需求示例

功能类别

子功能

功能类别 A功能 A.1
功能 A.2
功能类别 B功能 B.1
功能 B.2

       2.3 功能类别 A
             提示:功能类别的名称与分类表中类别名称应保持一致,它是几个子功能总括名称,形如“采购管理”、“私信系统”。
             以下提供了每种描述功能需求的子功能的模板。
                 2.3.1 功能 A.1
                           提示:当采用功能分解的方式描述功能性需求的时候,按照模板描述所有的子功能。需要按照具体的功能标识及命名每一个功能。

                           2.3.3.1 描述和优先级 
                                       提示:描述功能,并指出该功能的优先级。

                           2.3.1.2 输入
                                       提示:描述功能输入。

                           2.3.1.3 操作
                                       提示:描述在功能中执行的操作。

                           2.3.1.4 输出
                                       提示:描述功能的输出

                 2.3.2 功能 A.1用例 Y
                            提示:当采用用例的方式描述功能性需求时,按照模板描述每个用例,按照每一个具体的用例标识以及命名每个用例,其中Y是指定用例的名字。

在每个用例子功能中,指定用例信息,包括角色,前置条件,后置条件,操作流程和替代流程等。
                            在每个用例子功能中,指定用例信息,包括角色,前置条件,后置条件,操作流程和替代流程等。

表4  用例示例

用例名称
用例编号
用例简介
优先级
前置条件
后置条件
操作流程

步骤

触发者

描述

扩展流程
例外流程
包含
假设
约束条件
输入及约束

             2.3.3 功能 A.2

                          ……

             2.3.4 功能 A.2用例Y

                          ……      

            2.4 功能类别 B
                  略

  3. 产品的非功能性需求

        3.1 用户界面需求
              提示:描述软件的用户界面需求。用户界面需求用于捕获应用程序的人机界面的预期行为。例如,如果用户通过显示终端操作,说明所需的屏幕内容,任何报告或菜单的内容,输入和输出的相对时间。用户需求可能包括示例的屏幕或报表格式为原型来进行需求的说明。

表5  非功能性需求示例

需求名称

详细要求

        3.2 性能需求
              提示:描述性能条件以及相关的能力。考虑因素包括:
            (1)发生的动态行为或变化(如比率,速率,运动和噪声水平)
            (2)涵盖设备的承受能力的量化标准,用于在规定的环境和其他条件下满足用户的需求,包括最低总寿命。说明了需要的持续运行时间以及计划的可用率。
            (3)运行的阶段和模式的性能需求
            (4)支持的终端数量
            (5)支持的并发用户数量
            (6)在正常以及峰值负载的条件下,特定时间内可以处理的事务和任务以及数据量
            (7)在非正常的工作压力下可接受的性能
        3.3 产品质量需求
              提示:描述软件的质量特性的需求。需求的描述应该是可度量、可验证的。描述在特性之间(比如安全性和可移植性)之间的权衡关系。质量特性的定义包括正确性、有效性、灵活性、完整性/安全、互操作性、可维护性、可移植性、可靠性、可重用性、可测试性、易用性。

 表6  产品质量需求示例

主要质量属性

详细要求

正确性

健壮性

可靠性

性能,效率

易用性

清晰性

安全性

可扩展性

兼容性

可移植性

       

        3.4 其他需求
              提示:描述不适合放在前面需求章节中的任何其他的需求。如有些软件系统比较强调信息管理需求、安全需求,也可以在此扩展。

   4. 接口

    提示:描述应用和其他软件、硬件以及通信协议之间的接口的逻辑特性。每个接口的描述包括:
        ● 该接口的目的
        ● 应用接口对应的系统,包括外部的或内部的
        ● 交换机制


    附录A:需求建模与分析报告
          建议用Rational Rose对产品需求进行建模与分析。
          A.1 需求模型1

          A.n 需求模型N
    附录B:需求跟踪矩阵
          提示:提供指向需求跟踪矩阵的链接,需求跟踪矩阵中说明了在系统需求规格说明中的系统需求、在本软件需求规格说明书中的软件需求以及系统设计中的设计元素之间的对应关系。SRS中的需求跟踪矩阵应该:
          ● 含有用来说明系统需求与系统设计、软件需求、软件设计等元素之间的可追溯性的列
          ● 含有用来说明集成、验收、回归、性能测试等的可追溯性的列
          ● 填入了所有记录在系统需求规格说明中的需求
          ● 填入了所有记录在系统设计中的设计项
          ● 填入了所有记录在需求规格说明书中的需求项
          ● 说明了系统规格说明书中的系统需求与系统设计中的设计项之间的对应关系
          ● 说明了系统设计中的设计项与需求规格说明中的需求的对应关系
          ● 说明了每一个需求的出处及来源


    附录C:需求确认
         提示:主要分两步:(1)需求评审,(2)需求承诺。对需求的评审应当采用“正式技术评审方式”,将产生一份“需求评审报告”。在获取责任人(Stakeholders)对需求的承诺之前,该《产品需求规格说明书》必须先通过需求评审。

表7  需求评审报告摘要示例

需求评审报告摘要

需求文档

输入名称,标识符,版本,作者,完成日期,…

需求评审报告

输入名称,标识符,评审日期,…

评审结论

[  ] 工作成果合格,“无需修改”或者“需要轻微修改但不必再审核”。

[√] 工作成果基本合格,需要作少量的修改,之后通过审核即可。

[  ] 工作成果不合格,需要作比较大的修改,之后必须重新对其评审。

评审意见

评审小组成员

输入评审小组成员

表8 需求承诺示例

需求承诺

需求文档

输入名称,标识符,版本,作者,完成日期

客户承诺

承诺…

签字,日期

项目经理承诺

承诺…

签字,日期

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/39166.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于gcn的半监督分类代码整理2

一、说明 对论文《Semi-Supervised Classification with Graph Convolutional Network》的代码整理。 第一部分主要说明了数据预处理和初始化等工作,这节主要说明gcn和mlp模型建模以及数据训练过程,以下是笔记和代码逻辑的整理。 注:本人是…

Android启动时间分析

在Android启动过程中,“NHLOS” 和 “LK” 是两个与启动时间相关的术语,它们分别指的是: 各阶段时间 I Minidump: Enabled with max number of regions 200 I KPI : Bootloader start count = 59264 I KPI : Bootloader end count = 101746 I KPI : Boo…

【Spring Boot】spring boot环境搭建

1、环境准备 JDK安装:确保安装了Java Development Kit (JDK) 1.8或更高版本。JDK是Java编程的基础,Spring Boot项目需要它来编译和运行。Maven或Gradle安装:选择并安装Maven或Gradle作为项目构建工具。Maven通过pom.xml文件来管理项目的依赖…

Hbase/Hive连接数过多导致阻塞问题处理

HBase库连接数过多造成库堵塞 netstat -aoe(netstat -tunap| grep 50070)查看主机端口运行状态,可以看到有很多的CLOSE_WAIT。 Hiveserver2连接数过多造成库堵塞 netstat -aoe(netstat -tunap| grep 10000)查看主机端口…

如何在Java中使用JSON:解析与生成

如何在Java中使用JSON:解析与生成 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨在Java中如何使用JSON进行解析和生成&#xff…

Centos7网络配置(设置固定ip)

文章目录 1进入虚拟机设置选中【网络适配器】选择【NAT模式】2 进入windows【控制面板\网络和 Internet\网络和共享中心\更改适配器设置】设置网络状态。3 设置VM的【虚拟网络编辑器】4 设置系统网卡5 设置虚拟机固定IP 刚安装完系统,有的人尤其没有勾选自动网络配置…

Qt/C++开发经验小技巧296-300

国内站点:https://gitee.com/feiyangqingyun 国际站点:https://github.com/feiyangqingyun 官方店:https://shop114595942.taobao.com// 公众号:Qt实战,各种开源作品、经验整理、项目实战技巧,专注Qt/C软件…

弹出解锁登陆密钥环对话框提示解决方法

可能原因及角:(重启生效) 原因一:设置自动登录,取消自动登陆后 执行sudo rm -rf ~/.local/share/keyrings/* 命令删除配置文件 原因二:系统缺少依赖文件,执行 sudo apt-get update &&…

MeowBot:ESP32 语音控制宠物猫 DIY 教程——玩转语音识别与 MQTT 智能家居控制 (附代码解析)

摘要: 本文将手把手教你打造一只名为 MeowBot 的智能宠物猫!它不仅可以通过舵机灵动地打招呼,还能听懂你的语音指令,帮你控制智能家居设备。让我们一起开启这段充满乐趣的 DIY 之旅吧! 关键词: ESP32、语音识别、MQTT、智能家居、…

SpringSecurity中文文档(Servlet RememberMe)

Remember-Me Authentication Remember-me 或持久登录身份验证指的是网站能够在会话之间记住主体的标识。这通常是通过向浏览器发送 Cookie 来完成的,Cookie 将在以后的会话中被检测到,并导致自动登录的发生。Spring Security 为这些操作提供了必要的钩子…

RS232、RS485与RS422初步学习

目录 电平 传输方式 共模和差模干扰 ps:双绞线 485总线结构 ps:终端电阻 RS232接口(DB9) 优缺点 RS232优缺点 RS485较RS232的优点 为什么RS232还在使用? 电平 RS232、RS485与RS422的电平 区间逻辑备注RS232…

巧用Fiddler中的Comments提升接口测试效率

有没有同学在使用Fiddler时跟我遇到了同样的问题,就是想给某个抓包的请求进行注释!!!但是奇怪的是,根本没有Comments相关信息呀? 设置Comments 设置Comments非常容易,选中一个请求&#xff0c…

基于ESP32 IDF的WebServer实现以及OTA固件升级实现记录(一)

webserver即运行在esp32上的web服务,相当于esp32作为web服务器,它可以处理web浏览器等客户端的http相关请求(常见的get/post/put等http方法)。 ota即在线固件升级,idf已经提供了丰富的官方ota示例,不过主要…

mybatis多数据源操作

最近项目,一个后端代码被两个前端页面调用,代码数据库都冗余了,写着很难受感觉跟吃狗屎一样。因此决定先把数据库分开,然后之后把项目分成多模块化得。 想把数据库分开其实就只是需要实现多数据源操作,我考虑得不多&a…

DSPy的BootstrapFewShot

这是官方文档 官方文档给示例数据的量划分了10/50/300等档位,对应BootstrapFewShot/BootstrapFewShotWithRandomSearch/MIPRO. 我们以10条示例数据example为例,即选用BootstrapFewShot DSPy认为用原始数据直接做few-shot效果不好的原因是:…

Golang-context理解

golang-context笔记整理 golang为何设计context?代码上理解原理空context类cancelCtx类.withcancelctx方法 timerCtx类valueCtx类 golang为何设计context? 有并发特性的语言中,都会有一种说法:创建异步线程或者携程的时候&#x…

【TS】TypeScript 入门指南:强大的JavaScript超集

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 TypeScript 入门指南:强大的JavaScript超集一、TypeScript 简介1.1 …

Windows页面错误(Page Fault)写几种c++会导致,此问题的例子

在C中,直接导致Windows页面错误(Page Fault)的情景较少直接由编程错误引发,页面错误更多是由操作系统在内存管理和虚拟内存机制中处理的。不过,某些编程错误可能导致访问违规,进而间接引起操作系统报告页面…

SpringBoot实现图片添加水印(完整)

提示:昨天不是写了一个类似与图片添加水印的版本吗,今天来写一个带数据库,并且可以完整访问的版本 文章目录 目录 文章目录 引入库 配置文件 数据库配置 字段配置 索引配置 数据库表语句 启动文件 前端代码 整体代码目录 配置类AppConfig Contro…

通俗大白话理解Docker

什么是Docker Docker本质上是一种容器化技术,用于将应用程序及其所有依赖打包到一个标准化的单元中。这些单元(容器)可以在任何运行Docker的机器上运行。每个容器是相互隔离的,具有自己的文件系统、网络和进程空间。 以下是大白话…