浅谈软件项目需求分析

article/2025/9/21 6:59:40

       这里不是写标准化的理论知识,而是想写写对软件需求工作的感受。
        理论上的需求管理是要解决系统需求做什么的问题,以此界定系统功能和非功能性的内容。需求指的是由项目接受的或项目产生的产品和产品构件需要,包括由组织征集的对项目的需求,说通俗了,就是使用者真心想要的。
        需求管理的目的是确保各方对需求的一致理解;管理和控制需求变更;从需求到最终产品的双向跟踪。
从工程的角度理解需求,包括如下内容。

        需求获取本身不纯粹是一个技术的话题,按本人的理解它更涉及于市场和人际关系的内容,需求来源于其他的人、机、系统等。我们一般通过对客户单位进行调研获得,也可以通过第三方机构获得,也可以通过有经验的人获得。需求获取是要讲究策略的,如果您需要找他人了解需求,那么首先是能取得他人的同意取得他人的信任,让对方愿意给您介绍,然后是了解的方法,在有限的时间内尽可能多的了解到需求。

 

        需求调研是要讲究方法的,你需要在很短的时间内尽可能多的了解到用户的需要,有时我们要对一个大规模的企业业务进行调研了解,业务涉及方方面面的,而调研的时间只有一两天,那么我们一般是从一个企业的组织机构入手,了解企业的组织架构,各岗位的职责,所需要的数据表单等。第二部分是了解具体的业务流程,各环节的使用者操作者,如需要的数据是什么,以此逐步行成业务模型。调研的方式有访谈、参与现场工作等。
        资料搜集是通过各种渠道搜集与系统需求相关联的资料,当我们没有调研的机会,只没有与客户交流的机会时,我们就需要从其它各方去搜集资料,包括标准规范、管理制度等。
        不管是调研也好,搜集资料了罢,若要寻求到最佳答案,掌握到关键需求细节,已不仅仅是一事技术的问题,也不仅仅是一个管理的问题,而是包括了营销的问题,处理人员关系的问题综合管理体系。
        如果以上我们直接取得需求是困难的,那也可以寻求第三方的帮助,可以是咨询单位,可以是顾问团队,或是有类似系统经验的企业,通过他们在没有与客户或使用方接触的基础上掌握到需求。
        需求总是存在的,需要我们不断地挖掘。客户不会直接告诉你的需求细节,也许他只知道自己目标,有些想法,但并不与系统相关,或者阐述不是清楚到底是要个什么。那么就要我们的一套理论来甄别来深入挖掘出需求。
       需求分析与评估
        当我们获到足够的需求后,那仅仅还是用户的一些想法,以及业务上的一些业务信息。我们还不能拿来指导后面的系统设计,甚至还不知道哪些要进入系统的范围。需求分析的目的是要把系统需要的鉴定清晰,我们用需求分析报告或用户需求说明书来描述,然后系统化化的分析方法方法转化为可以指导设计和开发的软件需求规格。这一部分的内容是系统分析师要考虑的。系统分析是比较专业的岗位,那么我们来看看系统分析师要所要具备的技能和所做的工作吧。
        系统分析师职责:告诉我们系统应该做什么。

  • 管理到技术的桥梁  各领域业务到信息化技术的通知翻译者。
  • 对软件项目进行整体规划。
  • 业务分析,理清业务的各个环节,并形成分析报告,形成业务模型。
  • 需求分析,抽象出软件所要实现的目标,功能,形成软件规格说明。
  • 描述软件的核心思想,设计最顶层的架构。
  • 指导和领导项目开发小组进行软件开发和软件实现,
  •  对整个项目需求的实现进行全面管控。
  • 项目成本、工作量、经济分析。

      系统分析师技能

  • 沟通协调能力强;
  •  领导才能;:能够导引后续工作走向正确的路。
  • 熟悉应用领域业务知识:应用软件分析必将是应用领域的专家。
  • 文档编写能力;
  • 开发方法和工具选择决策水平;要有战略意识、战略眼光;
  • 项目管理技能;
  •  熟练应用各类分析工具;
  •  项目风险评估水平
  •  项目运维知识;
  • 随时把握IT时代脉搏,掌握IT最后动态,了解新技术。
  • 网络知识;
  • 计算机软、硬件知识;
  •  数据库知识;
  • 质量保证;
  • 经济分析水平;
  • 相关法律知识。

        需求管理: 
        需求明确下来之后,我们需要管理一个实现需求的过程,这是一个完整的软件开发过程。包括设计、开发、测试、部署安装、上线。在需求的完成过程中我们需要对过程进行跟踪,实时掌握状态,过程监控采用需求跟踪矩阵来完成,通过它可以了解到每一功能需求点的设计、开发、测试节点进程。
需实施过程中,出现在需求变更是很常见的,信息系统是智力型的产品,将人类各种思想和知识封装到软件中,人的思想是活跃的,社会是在发展变化的,所以反映这个世界的信息系统当然也是不断的变化的,或是因为客户考虑不到,或是实施过程中才发现路走不通。我们甚至可以将软件开发之初就进行维护阶段,软件从实施初始到寿终正寝整个过程都是一个变更和维护的过程。变更是客观存在的,只是变更需要控制,尽量避免。我们要对新问题点和需求点进行评估,评估要考虑的因素很多,有费用方面的,有对原系统的影响方面的,有可用性方面的,有兼容性方面的等等。每一次变更达到可用时,就形成一个新的版本,所以我们需求给版本定义迭代的内容。

        以上是需求在软件工程整个过程中各个环节的传递过程,每一个环节都需要进行管理控制,否则用户当初对桌子的需求最后会变成了一张床。
       我参与过的项目正,需求的获取分析工作中遇到各类情形,总节出几类觉的情况。
客户全过程参与:当你在准备建设一个信息系统页有客户人员全程参与时,那是一个非常幸运的系统。你将很轻松的获得系统需求。
  
        有现场调研机会:通过个人或公司 关系,当客户单位允许你进行现场调研时,那你也是非常幸运的,现场有机会了解客户单位的业务,这对系统来说就往前走了一大步。调研也是要有方法的,要能够在最短的时间内最大化的获取需求。
 
       没有需求调研机会:这是一个有关工程建设管理的系统,客户是一个集团公司,也是我们的间接上及单位。他们没有太多的时间给我们介绍他们需求甚至任何想法,他们只需要一个系统来解决这个工程项目过程中的信息化,其它你都是你要做的事,你要四处想法获取需求,你要了解工程管理的业务,还算幸运,我们从客户单位要到了一些管理制度,那个我们就从他们的管理制度开始。梳理业务、过程中不断到网上寻找一些问题条案,四处打听寻解。
        引领时代的系统:这是一种大众化的软件系统,比如公众互联取网平台,没有所谓的客户单位,只有用户个体,这人就要进行市场调研,通过产品经理的敏锐的头脑,抓住问题点,把握用户的需求要点,以期提高系统的可用性。
软件需求理论本就没有一成不变的公理定律,体现的只有在这个岗位之上人的智慧。    

 


http://chatgpt.dhexx.cn/article/vrnRGWFo.shtml

相关文章

软件工程之需求分析

现在人们越来越认识到软件工程在软件开发中的重要作用。目前国内软件在开发中还没有对软件开发的过程进行明确规定,文档不完整,也不规范,软件项目的成功往往归功于软件开发组的一些杰出个人或小组的努力。这种依赖于个别人员上的成功并不能为全组织的软件生产率和质量的提高…

如何写一份好的软件开发的需求分析

什么是需求分析? 通俗的讲,对用户的意图不断揭示和验叛的过程,要对经过系统可行性分析所确定的系统目标做更为详细的描述。 假如你是个建筑工程师,有个客户找你建一个鸡窝,这个时候要需要与客户沟通,来确定…

软件需求的三个层次——业务需求、用户需求和功能需求的区别

我们的软件产品或者项目,其需求都有三个层次,业务需求、用户需求和功能需求,除此之外,每个系统还有各种非功能需求。不是很了解的朋友,今天就和我和我们一起来了解一下吧!   下图是需求层次关系图&#…

运算符重载规则

1) 并不是所有的运算符都可以重载。能够重载的运算符包括&#xff1a; - * / % ^ & | ~ ! < > - * / % ^ & | << >> << >> ! < > && || -- , ->* -> () [] new new[] …

C++ 重载运算符

一、运算符重载 运算符重载是一种形式的C多态。 在C中&#xff0c;编译器有能力把一个由数据、对象和操作符共同组成的表达式&#xff0c;解释为对一个全局或成员函数的调用。该全局或成员函数被称为操作符函数&#xff0c;通过重定义操作符函数&#xff0c;可以实现针对自定…

C++重载决议

目录 前言一些与overload易混淆的概念override运算符重载 为什么需要重载决议&#xff1f;声明函数重载 什么是重载决议&#xff1f;什么不是函数重载&#xff1f; 重载决议之过程函数重载 && 函数模板before 重载决议more detailstype conversion(类型转换)rank&#…

重载

实质&#xff1a;重载的实质就是写一个重载函数语法&#xff1a;函数类型 operator 运算符名称 {对运算符的重载处理}说明&#xff1a;如果要对加号进行重载&#xff0c;则 “operator ” 就是函数名。方法&#xff1a; &#xff08;1&#xff09;成员函数法 定义&#xff1a…

重载运算符

输入带有空格的字符串 cin.getline(a[i]) 运算符重载的语法 定义一个重载的运算符与定义一个函数类似&#xff0c;只是这个函数的名称必须以operator开头。 运算符重载函数的一般形式为&#xff1a;类型 类名::operator 重载的运算符(参数表) {函数体 }参数的个数由以下两个…

Python——运算符重载

Python——运算符重载 1.加法运算符重载和减法运算符重载2.__str__()方法重载和__ge__()方法重载3.索引的切片重载 运算符重载指的是将运算符与类方法关联起来&#xff0c;每个运算符对应一个指定的内置方法。 Python通过重写一些内置方法&#xff0c;实现了运算符的重载功能。…

C++ 运算符重载

前言 本文引用于“C语言中文网”&#xff0c;我整理出来放在博客&#xff0c;方便大家共同学习。所有知识点和代码均已亲测可用&#xff0c;如有疑问&#xff0c;可提出&#xff0c;一起讨论学习。 本章内容&#xff1a; 1. C运算符重载的概念和原理 2. C重载&#xff08;C重…

配置使用Navicat或PLSQL可视化工具远程连接Oracle

写在前面 本文讲解的是在没有 Oracle 环境&#xff0c;如何使用可视化工具配置远程连接服务器 Oracle 数据库。 目录 写在前面一、概述二、下载 Oracle Instant Client三、配置环境变量四、配置监听五、可视化工具环境配置5.1、Navicat5.2、PLSQL 一、概述 很多时候&#xff0c…

Windows系统远程连接Linux系统操作

远程连接服务器管理时&#xff0c;系统不同可分为两种&#xff1a;一是Linux系统和Mac系统或者Linux系统之间连接&#xff1b;二是Windows系统连接到Linux系统 第一种情况下&#xff1a;在Linux系统和Mac系统下可以相互用命令"ssh [-p] 22 连接主机名主机IP地址"连…

怎么删除远程桌面连接计算机,win10系统强制删除远程桌面连接软件的方法

大家都知道win10系统中&#xff0c;自带有远程桌面连接软件&#xff0c;能够帮助我们实现远程控制其他计算机进行一系列操作&#xff0c;但是有些用户可能用不到这个软件&#xff0c;就想要强制删除远程桌面连接软件&#xff0c;那该怎么操作呢&#xff0c;小编这就给大家带来w…

被远程连接的windows一定要设置账号的密码吗

背景 我们有个windows系统&#xff08;方便表述叫P)&#xff0c;比如win10的&#xff0c;平时使用的用户名是a&#xff0c;没有登录密码&#xff0c;平时使用P的过程是允许没有密码登录操作系统的。 但是&#xff0c;如果使用另外一台windows远程连接它&#xff0c;就得为a设…

SecureCRT--远程连接工具

SecureCRT简介 Linux一般作为服务器使用&#xff0c;而服务器一般放在机房&#xff0c;你不可能在机房操作你的Linux服务器。这时我们就需要远程登录到Linux服务器来管理维护系统。 Linux系统中是通过SSH服务实现的远程登录功能&#xff0c;默认ssh服务端口号为 22。Window系…

【rdesktop】超实用的ubuntu远程连接windows软件

个人定制命令行 rdesktop 192.168.50.118 -u zhankun -p LPjj1234 -z -a 16 -x lan -r clipboard -g 1920x105000 -r sound:local -r disk:share/home/lyp/zk_share1、ubuntu端 sudo apt install rdesktop2、Windows端 1.计算机—属性—远程设置—远程&#xff0c;勾选&…

Mac远程控制软件有哪些?Macos好用的远程桌面连接软件推荐

Mac功能强大&#xff0c;但是远程协助有点麻烦&#xff0c;此时需要专业的 Mac远程控制软件。远程桌面自带系统连接不太好用&#xff0c;一般不懂计算机的人很难成功。还推荐使用专用的远程控制软件实现&#xff0c;操作简单&#xff0c;不需要很多计算机知识。就下载量和好评率…

远程连接——Win连接远程Linux的软件

SSH客户端主要用来远程访问服务器。 因为像Linux之类的系统要想在Windows上面存在&#xff0c;基本都是通过虚拟机&#xff0c;就好比搭建了一个服务器&#xff0c;你要连接这个系统&#xff0c;自然需要用到一些工具&#xff0c;而SSH客户端就属于这样的工具&#xff0c;或者…

有服务器可以远程连接电脑软件,支持远程控制电脑的工具有哪些?这几款软件值得一试!...

对于普通人来说,如果自己身处于一线工作城市,与异地的家人进行聊天时,他们遇到了电脑上的某种问题时,而我们直接靠说话或文字,并不能直接来解决他们所遇到的问题,他们自己又根本不会操作,此时直接控制他们的电脑就是一个非常棒的方法,既可以解决了问题,不需要多费口舌…

centos 7.6上面安装向日葵远程连接软件

原文&#xff1a;https://www.cnblogs.com/yunjisuan1024/p/11731369.html 下载&#xff1a;https://sunlogin.oray.com/download/ 安装教程&#xff1a;https://service.oray.com/question/11017.html 依赖问题&#xff1a;https://service.oray.com/question/8286.html Cen…