面试需求分析师的一些准备

软件工程学概述

软件工程是将系统化的、规范化的,可度量的途径应用于软件的开发、运行和维护的过程,将工程化应用于软件的方法的研究

软件工程的基本原理
1.用分阶段的生存周期计划严格管理开发过程
2.坚持进行阶段评审
3.实行严格的产品控制
4.采用现代程序设计技术
5.明确地规定开发小组的责任和产品标准
6.开发小组的人员应少而精
7.承认不断改进软件工程实践的必要性

软件开发过程模型
快速原型模型
增量模型
把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件
螺旋模型
不断的进行风险分析和原型迭代

软件危机
是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。

软件生命周期

软件的生命周期包括计划,开发,运行三个时期,详细分为软件系统的可行性研究,需求分析,软件设计(概要设计和详细设计),编码,软件测试,运行与维护。

可行性研究阶段:是指软件开发方与需求方共同讨论,确定软件的开发目标及其可行性。

需求分析:是在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。

软件设计:根据需求分析的结果,对整个软件系统进行设计,包括但不限于系统框架设计,数据库设计等。

程序编码:此阶段将软件设计的结果转换为计算机可运行的程序代码,编码中要制定同意,符合标准的编写规范。
软件测试:
运行维护:

可行性研究的任务
从以下三方面研究可行性
1.技术可行性:技术小组调研
2.经济可行性:是否获得利润
3.操作可行性:人力资源、物力资源等各种资源

可行性研究的过程
1.复查系统规模和目标
2.研究正在使用的系统
3.导出新系统的高层逻辑模型
4.重新定义问题
5.导出和评价供选择的解法
6.推荐行动方针
7.草拟开发计划
8.书写文档提交审查

需求工程

需求工程是指以用工程化的方法、技术、和规格来开发或管理软件的需求。目标是获取高质量的软件需求。
需求工程是软件工程的一个分支,它关注于软件系统所应实现的现实世界目标、软件系统功能和软件系统应遵守的约束,同时它也关注以上因素和准确的软件行为规格说明书之间的联系,关注以上因素与其随时间或跨产品族而演化之后的相关因素之间的联系。
1.需求获取
2.需求分析与协商
3.系统建模
4.需求规约
5.需求验证
6.需求管理

需求的三个层次
1.业务需求:描述组织或客户的高层次目标,为什么要开发系统,要达到的目标,前进和范围。
2.用户需求:描述用户使用产品必须要完成什么任务
3.功能需求:描述开发人员在产品中实现的软件功能,记录在需求规格说明书。包括系统需求,业务规则,质量属性,约束。

需求跟踪技术
1.需求跟踪表
表面需求和系统元素之间的联系、需求之间的相互依赖
2.可跟踪性表
对每一个需求,只列出该需求相关的需求

需求描述最佳实践
用自然语言,形式化语言,图形化模型进行描述。

需求分析

需求分析是软件生存周期的一个重要阶段,它最根本的任务是为了满足用户的需要,系统必须做什么。所以要注意与用户的交流与沟通,对用户提出的要求需要进一步明确,最后达到开发人员和用户取得完全一致的意见,从而得出更详细、更准确的系统逻辑模型。
需求分析的内容是针对开发软件提供完整、清晰、具体的要求,确定软件必须实现的哪些任务,具体分为功能性需求,非功能性需求,设计约束三个方面。

需求分析的任务
1.系统功能要求
2.系统性能要求
3.运行要求
4.未来可能的扩充要求
5.分析系统的数据要求
6.导出系统的逻辑模型
7.修正系统开发计划
8.开发系统原型

与用户沟通获取需求的方法(需求捕获)
1.问卷调查法
2.会议讨论法
3.界面原型法

验证软件需求
1.一致性:需求不能相互矛盾
2.完整性:需求必须是完整的,需求规格说明书应该包括用户需要的每一个功能或性能
3.现实性:需求应该是用现有的硬件技术和软件技术基本上可以实现的
4.有效性:必须证明需求是正确有效的,确实能解决用户面对的问题

需求的定义
1.用户为了解决问题或达到某些目标所需要的条件或能力。
2.系统或系统部件为了满足合同、标准、规范或其他正式文档所归定的要求而需要具备的条件或能力。

开展需求分析前要做哪些准备?
1.各个渠道了解行业信息
2.向有接触的同事了解业务
3.整理出调研问题
4.指定调研计划,时间安排
5.分析系统的干系人,了解他们的期望
6.对干系人的期望进行优先级排序,管理干系人的期望
7.准备好所需的软硬件

如何开展需求分析呢?
首先做好需求调研,组织需求调研会议,针对性对客户提问,整理会议纪要,签字确认,总结调研报告。
按计划有步骤完成。
细心交流,及时记录。
挖掘客户原始需求而非口头需求。
开展需求分析会议,梳理客户需求。
最后会生成需求规格说明书。

需求分析师的一般工作流程

1.需求调研:
包括对需求的初访,前期通过反复的需求研讨收集需求。要做好与客户沟通前的准备,与客户进行交流获取客户的需求。
2.需求分析:
调研完成后,大致明白客户想要的是什么,便可以开展需求分析,分析的需求成果多以需求规格说明书的形式体现,以其作为客户参考、后期开发、测试的生产依据,这也是工作情况的评判依据。
3.需求评审:
需求文档完成后,进行需求评审工作,组织需求评审的会议,对参会人进行需求说明书的讲解与演示,表明如何进行开发,开发的成果物的大概,并把握参会人的意见进行修改。
4.需求确认:
评审工作后,需要将需求规格说明书转化为软件规格说明书,交付给软件开发人员进行开发工作。
5.最后对软件系统的功能进行验证工作。

需求变更
需求变更属于需求管理阶段,是在完成交付之前,客户提出的对项目或者软件的功能性或非功能性的更改要求。

如何应对需求变更?

1.接受需求变更申请:
要求对方提出申请,记录具体的变更内容。接受申请后,初步评估是否符合申请变更的基本要求,如是否属于项目范围。

2.组织变更请求评审:
评估变更对项目带来的影响,确保变更的必要性,得出是否通过评审的决定。

3.按评审结果执行:
不通过时,通知变更人并记录结果。通过,按变更内容执行,修改相关文档,将变更工作内容安排日程。

4.跟踪变更执行
5.验证变更结果

什么是需求规格说明书
需求规格说明书是整个需求工程活动的最终输出,具有完整性、一致性、可追踪性、可修改性。

需求规格说明书是指在研究了用户要求的基础上,完成需求分析之后,编写的说明文档。它详细定义了信息流和界面,功能需求,设计要求限制,测试准则和质量保证要求。

它的作用是作为用户和软件开发人员达成的技术协议书,作为着手设计工作的基础和依据,系统开发完成后为产品的验收提供的依据。
1.需求规格说明书是软件设计和实现的基础。
2.需求规格说明书是测试和用户验收软件系统的重要依据。
3.需求规格说明能为软件维护提供重要的信息。

需求分析师具备的几项能力
1.沟通能力:
与客户交谈,挖掘本质需求
与团队内部:
相关需求人员
开发测试人员
2.演讲能力:
与客户、开发、测试人员达成一致。
从业务场景到具体流程,由大到小讲。
3.逻辑思维能力:
分析客户散乱的需求解决问题。
4.原型设计能力:
原型系统通常被构造为不完整的系统,以在将来改进、补充和替代。
5.写作能力:
文档的编写,设计。

需求分析的具体工作
1.建立系统关联图:
根据需求获取阶段确定的系统范围,用图形表示系统与外部实体间的关联。
2.分析需求的可行性:
外部环境的依赖,技术障碍,风险。
3.构建用户接口原型:
用户模糊需求–>构建接口原型–>用户使用评价
4.确定需求的优先级
5.需求建模:
用文本、图形、符号、规则绘制目标系统的完整性描述。
方法:PSA/PSL、SREM、SADT、结构化分析方法SA、面向对象的需求建模方法
6.建立数据字典

需求规格说明模板
1.引言
2.综合描述
3.外部接口描述
4.系统特性
5.其他非功能性需求
6.其他需求
!–包含语言:自然语言、形式化需求描述语言、结构化语言–!

一些图表

还有很多图表没有画

需求分析的基础知识点(自己的理解)相关推荐

  1. 深入理解Camera基础知识点

    深入理解Camera基础知识点 一.简介 二.基本硬件结构 三.手机相机简介 一.简介 二.基本硬件结构 三.手机相机简介 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将 ...

  2. Python基础知识点六万字总结,爆肝一周熬夜完成【建议收藏】

    大家好,我是辣条. 今天给大家带来Python基础知识点的总结,不夸张的说我一周才写完,这才是第一弹,如果大家喜欢记得三连呦,我会火速更新下一弹,争取把这个系列做完,希望得到大家的支持. 目录 注释 ...

  3. 自然语言处理算法工程师历史最全资料汇总-基础知识点、面试经验

    2019年秋招已过,零星的招聘任然在继续.本资源适用于NLP算法工程师面试,也适用于算法相关的其他岗位.整理了算法面试需要数学基础知识.编程语言.深度学习.机器学习.计算机理论.统计学习.自然语言处理 ...

  4. java重要基础知识点_必看 | 新人必看的Java基础知识点大梳理

    原标题:必看 | 新人必看的Java基础知识点大梳理 各位正在认真苦学Java的准大神,在这烈日炎炎的夏季里,老九君准备给大家带来一个超级大的"冰镇西瓜,"给大家清凉一下,压压惊. ...

  5. 计算机知识必备,小结||计算机基础知识点十(必备)

    原标题:小结||计算机基础知识点十(必备) 451.数据库管理系统主要功能: (1)数据定义功能 (2)数据操纵功能 (3)数据库的运行管理 (4)数据库的建立和维护功能 452.数据库不仅要反映数据 ...

  6. 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-01-CNN基础知识点

    转载自:http://blog.csdn.net/niuwei22007/article/details/47399913 <CNN基础知识点>From:Convolutional Neu ...

  7. java基础知识大全,java 基础知识点汇总

    java 基础知识点汇总 问题一:我声明了什么! String s = "Hello world!"; 许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个Strin ...

  8. python数据分析知识整理_Python基础知识点总结:数据分析从0到大师必Mark的一篇!(上)...

    原标题:Python基础知识点总结:数据分析从0到大师必Mark的一篇!(上) TK | 作者 LearnKu | 翻译 https://www.freecodecamp.org/news/learn ...

  9. python爬虫知识大全_Python爬虫入门有哪些基础知识点

    1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...

最新文章

  1. ipa解包打包工具_7步!教你轻松搞定ios重签ipa包
  2. 【pytorch】pytorch-backward()的理解
  3. asp.net中使用CKEditor
  4. iOS开发UI基础—手写控件,frame,center和bounds属性
  5. qt creater创建自己的第一个小程序
  6. 阿里新晋CNCF TOC委员张磊:“云原生”为什么对云计算生态充满吸引力?
  7. Spark IDEA 编程环境配置
  8. 【网络】tcp三次握手协议
  9. 【编辑器】VSCode的Web前端(html,css,JavaScript)开发环境打造
  10. RestFul 风格规范
  11. Android 应用程序之间数据共享—ContentProvider
  12. R语言:Error in file(out, “wt“) : cannot open the connection
  13. java调用vba代码合成Excel
  14. 寒门再难出贵子(好好看一下,有很大收货的)
  15. python获取他人的ip_python - 获取访问者的IP地址
  16. Jetson nano 使用ROS 实现串口通信,并且解析通信协议(C++)
  17. 智科某课小论文:当今世界计算机硬件与软件发展现状
  18. 【人工智能 AI 2.0】阿里VP贾扬清被曝将离职创业:建大模型基础设施 已火速锁定首轮融资
  19. mysql单精度双精度相加_单精度与双精度
  20. LeetCode - 263 - Ugly Number

热门文章

  1. JavaScript对象 1
  2. 自定义桌面开始按钮(winxp、7、8、8.1、10)
  3. java界面添加按钮_java界面添加按钮
  4. 第四十天 阿乐在其中—Android小游戏的飞机(四)加入敌人
  5. 【课程】07 河口水循环
  6. 我们为什么这么拼?(转载自微信)
  7. Data.gov.uk电子政务云,牛津大学NIE金融大数据实验室王宁:数据治理的现状和实践...
  8. “低代码”革了谁的命?
  9. Visustin(自动生成流程图)使用说明
  10. VS 制作自定义安装程序