【软件工程】第5章 软件需求分析

思考题

  1. 需求分析的目的是什么,有什么作用?
  2. 软件需求有哪些分类?请举例说明。
  3. 需求分析过程有哪些步骤?
  4. 需求获取方法有哪些?
  5. 你所在的项目团队会选择采用哪些需求获取方法?请具体实践获取需求,在博客中展示(问卷调查表或会谈照片、小视频等)。并总结获取的功能需求以及非功能需求。

拙见

1. 需求分析的目的是什么,有什么作用?

  • 首先,我们由定义来看——需求分析是指在开发一个新的或升级一个已有的软件系统时描写新系统的目的、范围、定义和功能时所要做的所有工作。
  • 所以,需求分析的目的即要求开发人员准确地理解用户需要什么,进行细致地调查分析,将用户的需求陈述转化为完整的需求定义,再由需求定义转化为相应的软件需求规格说明。
  • 作用:需求分析虽处于软件开发的初期阶段,但它对于整个软件开发过程以及产品质量至关重要。

2. 软件需求有哪些分类?请举例说明。

  • 业务需求(Business requirement):反映了组织机构或客户对系统、产品高层次的目标要求。

    • 从组织或者客户的角度,实质就是业务的建设方;比如房地产市场的开发商
  • 用户需求(user requirement):用户的目标,或用户要求系统必须能完成的任务。
    • 从使用产品的用户的角度;比如买房的人
  • 功能需求( functional requirement):规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。
    • 从产品本身的角度,即产品要具备怎样的功能,才能满足相应的业务需求和用户需求;比如房子。
  • 非功能需求(non-functional requirements):非功能需求主要与系统的总体特征相关,是一些限制性要求,是对实际使用环境所做的要求。性能,外部接口,设计约束,质量属性举例:股票交易系统必须在一定时间内返回用户查询结果。

3. 需求分析过程有哪些步骤?

  • 需求分析主要是理解客户需要什么、分析要求、评价可行性、协商合理的方案、无歧义地详细说明方案、确认规格说明、管理需求以至将这些需求转化为需求规格说明定义。
  • 过程包括:
    • 沟通
    • 导出需求
    • 与客户和用户协商
    • 可行性研究
    • 精化需求
    • 编写需求规格说明
    • 验证需求
    • 管理需求

4. 需求获取方法有哪些?

  • 会谈技术

    • 非正式会谈:提出一些可自由回答的问题.
    • 正式会谈:提出一些事先准备好的议题.
  • 调查技术
    • 确定调查内容

      • 非正式会谈
      • 制定调查表
      • 组织调查
    • 可靠可信分析
      • 检查问卷指标是否合理
      • 指标之间是否存在关联
      • 结果是否可信
  • 场景分析技术
  • 快速原型法
    • 快速建立软件原型的核心是用交互的、快速建立起来的原型取代了形式的、僵硬的(不易修改的)的规格说明,用户通过在计算机上实际运行和试用原型而向开发者提供真实的反馈意见。

5. 你所在的项目团队会选择采用哪些需求获取方法?请具体实践获取需求,在博客中展示(问卷调查表或会谈照片、小视频等)。并总结获取的功能需求以及非功能需求。

慕课

需求的作用

  1. 判断(2分)判断题:相比硬件而言,软件更容易被修改,而且更容易被正确地进行修改。
    A.√
    B.×
  2. 单选(2分)单选题:与软件工程不同,()是系统工程所追求的目标。
    A.最优化
    B.系统化
    C.一体化
    D.情境化
  3. 判断(2分)判断题:任何软件开发过程必须从软件需求入手。
    A.√
    B.×
  4. 判断(2分)判断题:采用瀑布模型的开发过程是一种自顶向下的开发方法,而软件构件复用的开发过程是一种自底向上的开发方法。
    A.√
    B.×

参考答案

  1. B
  2. A
  3. A
  4. A

需求的定义

  1. 判断(2分)判断题:软件需求是待开发产品或系统的功能描述。
    A.√
    B.×
  2. 单选(2分)单选题:下面不属于需求的基本性质是()
    A.必要性
    B.无歧义性
    C.可测性
    D.可扩展性
  3. 多选(2分)多选题:下列哪些陈述可以作为软件需求()
    A.系统应支持大规模并发用户访问
    B.用户需凭用户名和密码登陆之后才可使用系统
    C.系统界面要美观大方
    D.当用户登录失败时,应弹窗提示失败原因

参考答案

  1. B
  2. D
  3. BD

需求的分类

  1. 判断(2分)判断题:非功能需求必须依附于功能需求而存在。
    A.√
    B.×
  2. 单选(2分)单选题:下列需求属于性能需求的是()
    A.并发访问数
    B.网络协议
    C.异常响应
    D.用户友好
  3. 单选(2分)单选题:下列需求属于外部接口需求的是()
    A.第三方插件
    B.安全隐私
    C.编程语言
    D.字体字号
  4. 单选(2分)单选题:下列需求属于设计约束的是()
    A.响应时间
    B.运行平台
    C.错误处理
    D.可维护
  5. 填空(2分)填空题:与其他类型的非功能需求不同,()是必须予以满足的,且对项目规划、所需的附加成本和工作产生直接影响。
  6. 判断(2分)判断题:质量属性必须要给出量化的测量指标。
    A.√
    B.×

参考答案

  1. A
  2. A
  3. A
  4. B
  5. 设计约束
  6. A

需求发现

  1. 单选(2分)单选题:当无法与用户进行直接交流时,可采用()的需求发现方式。
    A.自悟
    B.提炼
    C.小组会
    D.思考
  2. 多选(2分)多选题:下列哪些是观察这一需求发现的方法可能带来的问题。()
    A.无法全面了解需求
    B.被客户抵触
    C.让客户误以为开发者已经熟悉了业务
    D.消耗过多的时间
  3. 判断(2分)判断题:小组会和交流这两种需求发现方式的区别在于参加人员的多少。
    A.√
    B.×
  4. 判断(2分)判断题:需求发现常采用多种方式联合进行,但具体某一项需求常采用某一种具体的方式去捕获。
    A.√
    B.×
  5. 单选(2分)单选题:下述情况分别最适合采取哪种需求发现的方式()
    ① 为解决生活中遇到的麻烦事而开发的软件
    ② 有较多繁琐环节的社区医保系统的开发
    ③ 某小型团体组织开发其内部人员管理系统
    ④ 某大型连锁集团开发集团人员管理系统
    ⑤ 某专业化软件外包公司接手烂尾的软件开发项目
    A.①-自悟;②-观察;③-交流;④-小组会;⑤-提炼
    B.①-观察;②-自悟;③-小组会;④-交流;⑤-提炼
    C.①-自悟;②-交流;③-观察;④-提炼;⑤-小组会
    D.①-提炼;②-自悟;③-交流;④-观察;⑤-小组会

参考答案

  1. A
  2. BC
  3. B
  4. B
  5. A

需求规约的概念和格式

  1. 单选(2分)单选题:需求规约是一个软件产品/系统的()
    A.开发模型
    B.框架模型
    C.概念模型
    D.功能模型
  2. 判断(2分)判断题:需求规约是一个软件产品所有需求陈述的正式文档,它是不能被修改的。
    A.√
    B.×
  3. 多选(2分)多选题:下列哪些是需求规约的性质。()
    A.完整性
    B.一致性
    C.不可修改性
    D.稳定性

参考答案

  1. C
  2. B
  3. ABD

需求规约的作用

  1. 多选(2分)多选题:基于需求规约会产生下述哪两个文档。()
    A.初始测试计划
    B.系统测试计划
    C.用户系统操作描述
    D.软件可行性分析报告
  2. 单选(2分)单选题:在需求分析阶段会形成()的测试计划。
    A.单元测试
    B.集成测试
    C.确认测试
    D.系统测试
  3. 判断(2分)判断题:需求规约是软件开发组织和用户之间的技术合同书,只有当需求规约完成后才能开始产品的设计。
    A.√
    B.×
  4. 判断(2分)判断题:需求规约对于项目的大多数工作是一个管理控制点,因此需求规约中要给出软件项目的进度和规划。
    A.√
    B.×
  5. 判断(2分)判断题:需求规约作为设计的一个正式的、受控的起始点,它事实上给出了一份初步的设计文档。
    A.√
    B.×

参考答案

  1. AC
  2. C
  3. A
  4. B
  5. B

【软件工程】第5章 软件需求分析相关推荐

  1. 软件工程-第2章 软件生存周期与软件过程

    文章目录 软件工程 第二章 软件生存周期与软件过程 ==2.1 软件生存周期== 2.2 传统软件过程 1.瀑布模型 2.快速原型模型 3.软件演化模型 4.形式化方法模型 5.净室模型 2.3 面向 ...

  2. 软件工程——第1章软件工程学概述知识点整理

    本专栏是博主个人笔记,主要目的是利用碎片化的时间来记忆软工知识点,特此声明! 文章目录 1.为什么要有软件工程这门学科? 2.软件分为哪些阶段? 3.软件危机的定义? 4.软件危机包含的问题有哪些? ...

  3. 第三章 软件需求分析

    软件需求分析是软件开发期的第一个阶段,基本任务是准确地回答"系统必须做什么?"这个问题.软件需求分 析是整个系统开发的基础.在此阶段结束前,系统分析员应该写出软件需求规格说明书( ...

  4. 软件工程导论 01章软件工程学概述

    1.软件是程序.数据以及各种相关文档的集合. 程序是对计算任务的处理规则的描述,数据是对计算任务的处理对象的描述,文档则是有关计算机程序功能.设计.编制与使用的文字图形资料. 软件等于程序加数据加相关 ...

  5. 软件工程之软件需求分析

    软件工程之软件需求分析 一.需求分析任务 1.用户需求 2.系统需求 (1)功能需求 (2) 数据需求 (3) 其他需求 二.需求分析过程 三.用户需求获取 1.研究用户 2. 从调查中获取用户需求 ...

  6. 软件工程导论第六版 第一章 软件工程学概述知识点总结(上)

    目录 关于20世纪60年代 (选择题考点) 软件危机 软件危机的概念 (填空题考点) 软件危机的表现 (简答题考点) 软件危机产生的原因 (简答题考点) 软件工程的概念 软件工程的七条基本原理 软件生 ...

  7. 第一章软件危机与软件工程

    第一章 软件危机与软件工程 1.1 软件的定义是什么 计算机软件是与计算机系统操作有关的程序.规程.规则及任何与之有关的文档和数据. 软件的含义 (软件是程序.数据以及文档的完整组合) 研制了软件设计 ...

  8. 软件工程学习笔记——第六章 软件设计方法

    目录 第一章 概述 第二章 过程和活动 第三章 软件过程模型 第四章 问题定义和可行性研究方法 第五章 需求分析方法-1 第五章 需求分析方法-2 第六章 软件设计方法 第七章 软件实施与测试方法 第 ...

  9. 《软件需求分析(第二版)》第 17 章——需求管理工具 重点部分总结

    文章目录 前言 一.单选题 二.多选题 三.判断题 四.简答题 总结 前言 软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素.需求分析是软件定义 ...

最新文章

  1. Android开发群
  2. 思科配置计算机ip地址子网掩码,计算机系统与网络技术IP地址 子网掩码 主机号等计算复习...
  3. 用Notepad++来编写第一个HTML网页程序,你也可以!!!
  4. idea一直在 downloading plugins for ... 失败
  5. VUE Error:if there's nested data,rowKey is required错误
  6. Java 正则表达式的用法和实例
  7. 深度学习与计算机视觉教程(18) | 深度强化学习 (梯度策略,Actor-Critic,DDPG,A3C)(CV通关指南·完结)
  8. 九章云极DataCanvas公司荣获机器之心三大奖项,助力产业数智化升级
  9. 找工作必做事项-剑指offer
  10. 计算机网络——Cisco Packet Tracer 实验
  11. laravel+redis通过api简单实现微博登陆注册关注取消关注发布信息等
  12. 微信公众号抢票系统开发笔记
  13. PyTorch深度学习——PyCharm中使用matplotlib画3D曲面图
  14. 河南python培训班
  15. 三星正在完成android更新,三星发布Android 10更新计划表!又三款机型被选中,有你的吗?...
  16. online learning
  17. 在线教育项目02_前端知识(es6、vue)
  18. [计算机网络][内容梳理]一、计算机网络概述
  19. self-redemption
  20. Docker容器启动参数大全与详细说明

热门文章

  1. 基于微信小程序电动车智能充电系统(微信小程序毕业设计)
  2. 定义一个基本的银行账户类。在基本账户类的基础上派生出1年期定期账户、2年期定期账户、3年期定期账户和5年期定期账户。定义一个n个基类指针组成的数组,随机生成n个各类派生类的对象。让每个指针指向一个派生
  3. QT学习笔记(TCP 通信)
  4. wps演示怎么提高列表级别_2013版word 多级列表如何设置编号段落要在库中显示的级别?...
  5. 乐优商城源码/数据库及笔记总结
  6. pytorch自动编码_用pytorch第2部分从头开始编码ppo 4
  7. 是淘宝“秒杀”了淘客?是嗨淘。。。
  8. hive 如何判断 增量表和全量表
  9. 树莓派基于Linux内核驱动开发详解
  10. [附源码]java毕业设计高校创新创业项目管理系统