论需求分析对应用软件开发的重要性

2024-05-05 04:47

1. 论需求分析对应用软件开发的重要性

公司的信息化建设和软件开发,应用软件开发是其企业发展的工具,但其目的是帮助客户实现其希望达到的业务目的。在应用软件开发过程中,通常的情况是客户对自身业务流程非常了解,但是对软件运作的特点不够熟悉,特别开始的时候对实施的过程和结果预期不够明确。而一般的应用软件开发公司对因为企业业务流程不够熟悉,在项目的前期规划和需求分析阶段没有充分熟悉和把关,那么即使对软件开发技术掌握得再好,也可能因此导致项目(project)的失败。
                                          
 因此,作为应用软件开发公司,项目成功的最重要的部分应该是在前期的需求分析,首先是向客户学习,充分了解用户的业务流程,和深入理解客户希望项目所达到业务目标。围绕这些前提进行咨询分析,找到正确的切入点和开发方向。同时还有充分考虑用户的现有实际情况、现有应用系统、职工或用户的接受程度、易用性,长远业务目标,长远信息化规划、以及和上级主管部门的保持一致等复杂问题。
  
 应用软件开发流程:
  
 整个应用软件开发流程过程大致可以分成五个大的阶段,分别是:软件需求(Software requirements)、软件设计(software design)、软件编码(software code)、软件测试(software testing)、 软件交付(software delivery)这五个阶段,而这五个阶段又分多少开发步骤。
  
 软件开发需求分析阶段:
  
 a、公司在做一个项目之前,首先会与客户进行交流,和客户交流的目的是什么?就是要了解用户的需要,根据客户的需要做出一个软件要实现的基本功能,这个也称之为客户需求分析。这一步在整个软件开发流程中是非常重要的,如果你连客户最基本的需要都搞不清楚,那么你这个软件是不可能使客户满意的。
  
 b:相关需求分析员向用户初步了解需求,列出软件开发项目的大功能模块,每个大功能模块有哪些小功能模块,对于客户有明确需求的功能,要初步定义好少量的界面。
  
 c:根据自己的经验和需求一份功能需求文档。这次的文档会清楚利用系统大致的大功能模块,大功能模块有哪些小功能模块,并且还列出相关的界面和界面功能。
  
 d:系统分析员向用户再次确认需求。
  
 总结:先明确自己的需求,对开发应用软件的时间、难度、费用等都起到决定性的作用!
  
 【创新梦想:www.szcxmx.com】个性化软件定制开发专家!提供专业的软件开发、手机APP开发、微信开发、小程序定制服务!

论需求分析对应用软件开发的重要性

2. 需求分析在软件开发中的重要性

非常重要
但是需求不是固定不变的,随时可能根据环境的变化而改变
因此,随时掌握大局非常重要
比如开发一款软件,首先要知道谁会用,准备给谁用
严格的来说吧需求和市场研究,项目管理分开来是不科学的
其次,要知道,市场上已经有那些产品,产品的特点和市场份额,以及增长情况,增长趋势
然后,需要了解自己的产品有哪些特点,调查和研究目标市场对于该产品的反应
然后,需要了解消费对象可能有哪些其他的选择来绕开自己的产品,对自己的影响有多少
然后,需要了解技术进步的情况,如果有了更新的技术,是否会对于软件的产生和价值造成影响,是否会影响目标市场,总之就是你的产品是否会变得不重要
总之,这是一整套比较复杂的系统,需要考虑的情况,通常不会单独考虑需求   

3. 软件开发中的需求分析


软件开发中的需求分析

4. 软件需求分析的作用

开发软件系统最为困难的部分就是要准确说明开发什么。最为困难的概念性工作便是要编写出详细的技术需求,这包括所有面向用户、面向机器和其它软件系统的接口。如果做错,这将是会最终给系统带来极大损害的一部分,并且以后再对它进行修改也极为困难。目前,国内产品的庞杂,一家企业可能有几个系统并立运行,它们之间的接口是系统开发人员最头痛的问题。对于商业最终用户应用程序,企业信息系统和软件作为一个大系统的一部分的产品是显而易见的。但是对于我们开发人员来说,并没有编写出客户认可的需求文档,我们如何知道项目于何时结束?而如果我们不知道什么对客户来说是重要的,那我们又如何能使客户感到满意呢?然而,即便并非出于商业目的的软件需求也是必须的。例如库、组件和工具这些供开发小组内部使用的软件。当然你可能偶尔勿需文档说明就能与其他人意见较为一致,但更常见的是出现重复返工这种不可避免的后果,而重新编制代码的代价远远超过重写一份需求文档的代价,这些血的教训正在国内的软件开发者身上发生。

5. 软件需求分析的作用是什么?

需求的定义包括从用户角度(系统的外部行为),以及从开发者角度(一些内部特性)来阐述需求.
关键的问题是一定要编写需求文档.我曾经目睹过一个项目中途更换了所有的开发者,客户被迫与新的需求分析者坐到一起.系统的分析人员说:"我们想与你谈谈你的需求."客户的第一反应便是:"我已经将我的要求都告诉你们前任了,现在我要的就是给我编一个系统".
百事通
而实际上,UGGs,需求并未编写成文档,因此新的分析人员不得不从头做起.所以如果只有一堆邮件、会谈记录或一些零碎的未整理的对话,你就确信你已明白用户的需求,那完全是自欺欺人.
需求的另外一种定义认为需求是"用户所需要的并能触发一个程序或系统开发工作的说明".有些需求分析专家拓展了这个概念:"从系统外部能发现系统所具有的满足于用户的特点、功能及属性等".这些定义强调的是产品是什么样的,而并非产品是怎样设计、构造的.而下面的定义则从用户需要进一步转移到了系统特性:
需求是指明必须实现什么的规格说明.它描述了系统的行为、特性或属性,是在开发过程中对系统的约束.
从上面这些不同形式的定义不难发现:并没有一个清晰、毫无二义性的"需求"术语存在,真正的"需求"实际上在人们的脑海中,这个人们主要是指客户,但一般情况下,用户并不能描述自己的需要,只就需要系统分析人员根据用户的自己语言的描述整理出相关的需要再进一步和客户核对.系统分析员和客户需要确保所有项目风险承担者在描述需求的那些名词的理解上务必达成共识.
任何文档形式的需求(例如如下将要描述的需求规格说明书)仅是一个模型,一种描述.
2.需求分析的任务
开发软件系统最为困难的部分就是准确说明开发什么.最为困难的概念性工作便是编写出详细技术需求,这包括所有面向用户、面向机器和其它软件系统的接口.同时这也是一旦做错,将最终会给系统带来极大损害的部分,并且以后再对它进行修改也极为困难.
目前,国内产品的庞杂,一家企业可能有几个系统并立运行,它们之间接口是系统开发人员最头痛的问题.
对于商业最终用户应用程序,企业信息系统和软件作为一个大系统的一部分的产品是显而易见的.但是对于我们开发人员来说,并没有编写出客户认可的需求文档,我们如何知道项目于何时结束?而如果我们不知道什么对客户来说是重要的,那我们又如何能使客户感到满意呢?
然而,即便并非出于商业目的的软件需求也是必须的.例如库、组件和工具这些供开发小组内部使用的软件.当然你可能偶尔勿需文档说明就能与其他人意见较为一致,但更常见的是出现重复返工这种不可避免的后果,而重新编制代码的代价远远超过重写一份需求文档的代价,这些血的教训正在国内的软件开发者身上发生.
近来,我遇到一个开发小组开发包括代码编辑器在内的一套内部使用的计算机辅助软件.不幸的是,当他们开发完这个工具后,发现这个工具不能打印出源代码文件,使用者当然希望有这个功能.结果这个小组只好手工抄写源代码文档以供代码检查.这说明那怕需求明确无误并构思准确,如果我们没有编写文档,软件达不到期望目标也只能是咎由自取了.
相反的情况,我曾见一个要集成到"错误跟踪系统"中的简单界面写了一页需求说明.而操作系统系统管理员在为处理脚本时发现简单的一张需求清单竟是如此有用.他们依据需求对系统进行测试时,此系统不仅非常清晰地实现了所有必需功能,而且未发现任何错误.
事实上,需求文档在开发过程中一直起指导作用.

软件需求分析的作用是什么?

6. 软件开发中的需求分析主要包含什么需求

软件开发中的需求分析主要包含什么需求:
1、功能性需求
这是最主要也是最常见的需求。这类需求是要求实现某一项实际功能的,这个功能一般都会通过某种形式展现出来。一个软件最基本的就是功能性需求。在APP开发初期,应尽可能保证功能性需求的优先度,它们是一款APP的灵魂所在。

2、稳定性需求
稳定性需求是次一级的要求,包括可靠性、可维护性、安全性等等,也是APP中很重要的一部分。可靠性是指一定时间或条件下,系统执行所要求功能的无故障执行能力;可维护性是为改进系统或修复bug而修改系统或某功能模块的难易程度;安全性是指阻止对其程序和数据进行未授权访问的能力,等等。
这些需求有些也很重要,是能够关系到APP生死的关键功能,在开发时也必须加以重视。

3、开发性能需求
性能需求是指软件的优化程度,例如提升软件启动速度和加载速度,能够保证高并发而不产生数据阻塞等等。这些是属于用户体验方面的优化,一般在软件开发的进程中属于比较靠后的需求。软件的运行效率并不会是软件的决定性方便,一般只有到了软件稳定发展的阶段才会考虑。

7. 软件的功能需求分析要怎么写?

1. 引言

1.1 编写目的:编写此文档的目的是进一步定制软件开发的细节问题,便于用户与开发商协调工作.本文档面向的读者主要是项目委托单位的管理人员.希望能使本软件开发工作更具体.

1.2 项目背景

1.2.1项目委托单位:****公司

1.2.2开发单位:***公司

1.3 定义

1.4  参考资料

2. 任务概述

2.1 目标:

 决策支持:根据公司的要求及时提供所需报表及文件,并在适当时候对各部门领导给予销售及进货等方面的提示

提高效率:利用软件进行管理,避免人工管理的失误以及 延迟性,从而实现高效率的管理.

2.2 运行环境:

 硬件方面:Pentium级处理芯片
  1兆显存的兼容显卡
  256色,800*600的兼容显示器
  标准兼容打印机

软件方面: WIN95操作系统

2.3 条件与限制:

  编程用计算机一台
  完成期限2000/7/1
  无资金供给

3. 数据概述

数据流程图如下: 

3.1 静态数据:包括系统登录密码,各数据库所在位置,系统分析原始数据

3.2  动态数据:包括各数据库内各项显示数据,用户登录信息,系统时间

3.3 数据库描述:

  人事管理数据库:公司内人员的个人详细信息,包括档案信息
  销售管理数据库:当日销售记录及以前的销售统计,用于销售分析
  财务管理数据库:公司内部账目及收支情况详表
  技术管理数据库:公司所需各技术档案的详细记录(包括文档) 

3.4 数据字典:

数据流词条描述:

  1.数据流名:登录信息
  来源:用户的输入
  去向:系统内部检验部分
  组成:用户名,密码
  流通量:每次登录输入一次

  2.数据流名:登录结果
  来源:系统
  去向:用户
  组成:返回信息
  流通量:每次登录返回一次

  3.数据流名:输入修改信息
  来源:用户
  去向:系统判断部分
  组成:根据各数据库内容而不同
  流通量:依用户输入而定 

  4.数据流名:反馈信息
  来源:系统判断部分
  去向:用户
  组成:系统经判断后发回的字符数据
  流通量: 依系统当前信息而定

  5.数据流名:识别信息
  来源:系统内部检验部分
  去向:系统判断部分
  组成:系统各数据库的标识信息
  流通量:用户每次输入流通一次

  6.数据流名:处理信息
  来源:系统判断部分
  去向:各数据库处理部分
  组成:读取/修改标识,读取/修改的变量名称
  流通量:用户每次输入流通一次

  7.数据流名:读取修改
  来源:系统判断部分
  去向:系统各数据库
  组成:读取/修改标识,读取/修改内容
  流通量: 用户每次输入流通一次

数据文件词条描述:

  1.数据文件名:人事数据
  简述:存储人员信息
  数据文件组成:人员的各项信息(以CString类型为主)

  2.数据文件名:销售数据
  简述:存储当日及从前的销售记录
  数据文件组成:销售的各项信息

  3.数据文件名:财务数据
  简述:存储财务管理信息
  数据文件组成:财务管理的各项记录

  4.数据文件名:技术数据
  简述:存储公司内部使用的技术档案信息
  数据文件组成:技术档案名称,内容

加工逻辑词条描述:

  1.加工名:检验
  简要描述:判断用户的许可性
  输入数据流:登录信息
  输出数据流:登录结果
  加工逻辑:判断是否与系统内部用户信息相符合

  2.加工名:判断
  简要描述:判断用户的操作并进行相应的读取/存储工作 
  输入数据流:输入修改信息
  输出数据流:反馈信息
  加工逻辑:判断用户的操作->调用数据库->读取/修改->反馈

  3.加工名:人事档案管理
  简要描述:对人事数据库进行相应要求的操作,并与判断部分交互
  输入数据流:处理信息,读取修改
  输出数据流: 读取修改, 处理信息
  加工逻辑:判断用户要读取/修改的内容->反馈用户所需信息

  4.加工名:销售统计
  简要描述:对销售数据库进行相应要求的操作,并与判断部分交互
  输入数据流:处理信息,读取修改
  输出数据流: 读取修改, 处理信息
  加工逻辑:判断用户要读取/修改的内容->反馈用户所需信息

  5.加工名:财务统计
  简要描述:对财务数据库进行相应要求的操作,并与判断部分交互
  输入数据流:处理信息,读取修改
  输出数据流: 读取修改, 处理信息
  加工逻辑:判断用户要读取/修改的内容->反馈用户所需信息

  6.加工名:技术管理
  简要描述:对技术统计数据库进行相应要求的操作,并与判断部分交互信息
  输入数据流:处理信息,读取修改
  输出数据流: 读取修改, 处理信息
  加工逻辑:判断用户要读取/修改的内容->反馈用户所需信息

源点及汇点词条描述:

  名称:用户
  简要描述:既是源点又是汇点,发出动作信息给"检验"和"判断"加工,通过交互界面接受反馈信息有关数据流:登录结果,登录信息,输入修改信息,反馈信息
  数目:一个

4. 功能需求

4.1 功能划分

  可细分为四部分:人事管理,销售管理,财务管理,技术档案管理

4.2 功能描述

人事功能:

  (1)能对公司内部的所有人员有关档案详细资料记录并保存。
  (2)能对数据库内人事档案的数据进行查阅和修改。
  (3)能按部门或姓名检索人员。
  (4)当某员工的雇用期限达到整年时,按时提醒。

销售统计功能

  (1)按日对公司的销售情况进行统计,包括销售额\销售数量\各地区销售比例\不同销售方式的销售量比例以及销售毛利润情况
  (2)制定销售情况的月报表\季报表以及年报表对销售情况进行分析,对不同销售人员的业绩进行评定

财务管理功能

  (1)协助财务人员进行计算机管理,对库存情况\进货情况\销货进行登录和输出
  (2) 根据预设的库存情况提醒进货
  (3) 对收款情况进行统计,在应收帐款达到预设值时进行提示

技术管理功能

  (1)对技术资料进行登录
  (2)对维修记录进行登录和统计,按不同型号的机器进行故障整体分析,并作出分析报告
  (3)对维修配件的需求进行管理并及时提示备货

5. 性能需求

5.1 数据精确度:因为此数据为公司内部数据,所以要求不能有误差

5.2 时间特性:当日销售统计要求有即时性,马上能反应出存货的问题;同时财务管理数据计算当前存货情况,并对进货情况进行估算

5.3  适应性:此软件只在公司内部管理人员的机器上使用,因此不考虑适应性

6. 运行需求

6.1 用户界面:

  屏幕格式:

  (1)要求有菜单及工具栏以方便操作
  (2)各数据库信息可在屏幕上直接修改
  (3)各数据统计结果可在屏幕上显示
  (4)进行系统分析后的结果在另一窗口中显示

  报表格式:

  (1)人事管理报表只要求有个人的普通数据
  (2)销售统计报表要求可分别打印当日统计或之前的统计
  (3)财务统计报表要求打印出存货及公司帐务详表
  (4)技术管理报表要求可以分别打印技术档案总表和任一技术档案文档内容菜单格式:要求菜单项大致与WIN95标准相同,另外附加的功能做到新的单项中输入输出时间:年份以4位数字表示

6.2 硬件接口:需要标准打印机接口进行报表打印

6.3  软件接口:Windows标准接口

7. 其他需求

  可使用性:要求容易使用,界面友好

  安全保密性:因本数据属于公司内部管理用关键数据,因此除公司管理人员外,其他人员不得访问.要求设有登录密码检验功能,并且此密码可以在以后进行修改

  可维护性:要求本软件的维护文档齐全,便于维护

软件的功能需求分析要怎么写?

8. 怎样做软件的需求分析?

软件需求的定义:
(1)用户解决问题或达到目标所需的条件或能力。
(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。
(3)一种反映上面(1)或(2)所描述的条件或权能的文档说明。 实通俗的讲,“需求”就是用户的需要,它包括用户要解决的问题、达到的目标、以及实现这些目标所需要的条件,它是一个程序或系统开发工作的说明,表现形式一般为文档形式。
需求工程的定义:
需求分析的过程,也叫做需求工程和需求阶段,它包括了需求开发和需求管理两个部分。需求开发是指从情况收集、分析和评价到编写文档、评审等一系列产生需求的活动,分为四个阶段:情况获取、分析、制订规格说明和评审。这四个阶段不一定是遵循线性顺序的,他们的活动是相互独立和反复的。需求管理是软件项目开发过程中控制和维持需求约定的活动,它包括:变更控制、版本控制、需求跟踪、需求状态跟踪等工作。
需求开发与管理的一些方法:
(1)绘制关联图:绘制系统关联图是用于定义系统与系统外部实体间的界限和接口的简单模型。
(2)可行性分析:在允许的成本、性能要求下,分析每项需求实施的可行性,提出需求实现相关风险,包括与其它需求的冲突,对外界因素的依赖和技术障碍。
(4)系统原型:当用户自身对有的需求不十分清楚时,我们可以建立一个系统原型,用户通过评价原型更好地理解所要解决的问题。。
(5)图形分析模型:绘制图形分析模型是编制软件需求规格说明重要手段。它们能帮助分析人员理清数据、业务模式、工作流程以及他们之间的关系,找出遗漏、冗余和不一致的需求。这样的模型包括数据流图、实体关系图、状态变换图、对话框图、对象类及交互作用图。
(6)数据字典:数据字典是对系统用到的所有数据项和结构的定义,以确保开发人员使用统一的数据定义。在需求阶段,数据字典至少应定义客户数据项,确保客户与开发小组是使用一致的定义和术语。
需求管理的方法主要包括以下一些方面:
1)确定需求变更控制过程。制定一个选择、分析和决策需求变更的过程,所有的需求变更都需遵循此过程。
2)进行需求变更影响分析。评估每项需求变更,以确定它对项目计划安排和其它需求的影响,明确与变更相关的任务并评估完成这些任务需要的工作量。通过这些分析将有助于需求变更控制部门做出更好的决策。
3)建立需求基准版本和需求控制版本文档。确定需求基准,这是项目各方对需求达成一致认识时刻的一个快照,之后的需求变更遵循变更控制过程即可。每个版本的需求规格说明都必须是独立说明,以避免将底稿和基准或新旧版本相混淆。
4)维护需求变更的历史记录。将需求变更情况写成文档,记录变更日期、原因、负责人、版本号等内容,及时通知到项目开发所涉及的人员。为了尽量减少困惑、冲突、误传,应指定专人来负责更新需求。
5)跟踪每项需求的状态。可以把每一项需求的状态属性(如已推荐的,已通过的,已实施的,或已验证的)保存在数据库中,这样可以在任何时候得到每个状态类的需求数量。
6)衡量需求稳定性。可以定期把需求数量和需求变更(添加、修改、删除)数量进行比较。过多的需求变更"是一个报警信号",意味着问题并未真正弄清楚。
4.需求分析评价标准
(1)清晰:目前大多数的需求分析采用的仍然是自然语言,自然语言对需求分析最大的弊病就是它的二义性,所以开发人员需要对需求分析中采用的语言做某些限制。例如尽量采用主语+动作的简单表达方式。需求分析中的描述一定要简单,千万不要采用疑问句、修饰这些复杂的表达方式。 除了语言的二义性之外,注意不要使用行话,就是计算机术语。需求分析最重要的是和用户沟通,可是用户多半不是计算机的专业人士,如果在需求分析中使用了行话,就会造成用户理解上的困难。
(2)完整:需求的完整性是非常重要的,如果有遗漏需求,则不得不返工,在软件开发过程中,最糟糕的事情莫过于在软件开发接近完成时发现遗漏了一项需求。但实际情况是,需求的遗漏是常发生的事情,这不仅仅是开发人员的问题,更多发生在用户那里。要做到需求的完整性是很艰难的一件事情,它涉及到需求分析过程的各个方面,贯穿整个过程,从最初的需求计划制定到最后的需求评审。
(3)一致:一致性是指用户需求必须和业务需求一致,功能需求必须和用户需求一致。在需求过程中,开发人员需要把一致性关系进行细化,比如用户需求不能超出预前指定的范围。严格的遵守不同层次间的一致性关系,就可以保证最后开发出来的软件系统不会偏离最初的实现目标。
(4)可测试:一个项目的测试从什么时候开始呢?有人说是从编码完成后开始,有人说是编码的时候同时进行单元测试,编码完成后进行系统测试,这些结论都不完全正确。实际上,测试是从需求分析过程就开始了,因为需求是测试计划的输入和参照。这就要求需求分析是可测试的,只有系统的所有需求都是可以被测试的,才能够保证软件始终围绕着用户的需要,保证软件系统是成功的。
最新文章
热门文章
推荐阅读