细谈软件需求分析过程
软件的需求分析必须要有对原业务的一个深入了解、提取、抽象、升华的过程,管理软件需求分析尤其如此。
软件的需求分析是从用户的业务中提取出软件系统能够帮助用户解决的业务问题,通过对用户业务问题的分析,规划出我们的软件产品。这个步骤是对用户业务需求的一个升华,是一个把用户业务管理流程优化,转化为软件产品,从而提升管理而实现的质的飞跃,这一步是否成功,直接关系到开发出来的软件产品能否得到用户认可,顺利交付给客户,客户能否真正运用我们的产品帮助他解决业务或管理问题。
按照软件工程对软件开发过程的描述,需求阶段我们可以细分为需求调研和需求分析两个小阶段,需求调研需要充分细致的了解客户目标,用户业务内容、流程等,这是一个对需求的采集过程,是进行需求分析的基础准备。当我们已经了解、理解了用户的业务,于是可以开始分析需求了。软件系统的需求分析可以由产品工程师或系统分析员或两者分阶段合作完成全部的需求分析工作。
一、 提取出核心、主要、急迫的业务,明晰业务流程
通过需求调研,我们会发现用户各方面的业务很多,从大处着眼,包括用户的各种业务项目、业务流程,再明细到业务过程的每一个单据,每一条记录,如生产过程中每一个环节的记录,办公中的每一个通知,甚至包括文件报刊的收发,计划生育指标统计等等。如此繁杂的各类业务,我们从何下手?这时需要我们回头去查看软件的项目规格说明书,再次温故客户对软件项目或产品的最初提出的需求目标和范围,我们的软件主要是为用户解决什么样的问题。从众多的业务中提取出用户核心的、主要的、急需的业务,这些是我们软件需求主要关心所在。写一篇文章需要重点突出,主次分明,我以为规划一个软件产品也是同理。
从用户繁杂的业务中进行业务、业务流程的提取,把那些分布在各个部门的同一种业务提取出来。比如物资的管理,涉及到生产部门的需用计划,汇总到物资部门的采购计划,计划的审批,采购合同,物资采购,物资部门的收发存业务,生产部门的物资领用消耗等等,我门需要分析用户的这个业务流程中哪些是系统能帮助管理的,哪些是要在系统外处理的,充分分析了用户现有的业务和业务流程,我们进入下一步骤。
二、 运用管理思想,优化业务流程
我们提供的是管理软件产品,要帮助用户解决的是管理问题,那么用户是这样的业务流程,就需要我们分析这样的流程合理吗,还有缺陷吗,怎样做能提高效率、解决问题,可以运用更先进的管理思想吗……。一般情况下,我们需要从两个方面考虑业务流程的优化。一是我们采用了网络计算机这些新的技术手段,较之原先手工、电话等方式在信息的传递、信息的共享、数据的处理等方面将会带来新的方式,必将改变原有的业务流程。另一方面就是我们根据对用户业务的理解,考虑是否可以运用先进的管理思想,比如MRPII、ERP、SCM、CRM、JIT、EIA、E-Business等等管理模型,进行现有业务流程的重组或优化。当然一旦牵涉到业务流程的修改一定要与客户的中高层管理者进行充分的沟通,只有客户认同方可确定,因为这一定会在软件实施时需要相应的管理制度配套执行。
三、 进行业务分类,规划系统蓝图
以上都明确了以后,我们可以描绘系统蓝图了。系统有几个子系统,每个子系统有哪些模块,各个模块处理哪些业务,很重要的一点还有各子系统模块之间的数据接口关系,基础数据从哪里进入,通过哪些处理生成哪些结果等等。这个过程需要整理、抽象用户业务,规划软件实现,规划软件系统模块间的逻辑关系。因为系统的页面实现是按照系统模块的规划,所以应尽量采用用户易理解、熟悉的方式、词语进行模块的描述。
例如ERP系统中的物资管理子系统,首先明确这个子系统是ERP系统中进行物资相关的业务处理系统,同时它为主生产系统、成本管理子系统提供生产物资供应、领用消耗核算等的数据支持。因此在规划子系统模块时,按照业务过程模型,应包含物资需用计划、物资采购计划、出入库管理、库存管理等主要业务模块,再考虑软件运行必须的初始数据设置,增加一个基础信息维护模块(包括物资大类、物资编码等信息维护),还有考虑到不同用户对此系统的不同需求,如更多的生产人员、管理人员的需求,再单独增加一个综合查询和分析模块。另外还有与物资采购相关的业务如采购合同,可以放到合同管理子系统统一考虑,这里只做查询。这样规划出了软件系统对物资管理业务的处理,检查一下是否包含了物资管理中所有核心、主要的业务,这时我们发现还有比如物资采购、验收、盘库等业务还是需要物资管理业务人员来完成,系统可以做到的就是记录结果。软件系统是管理的辅助系统,不能完全代替人的所有工作。管理软件再加上管理制度、业务人员的操作才构成一套完整的管理体系。
四、 详细描述软件功能点
规划出了软件的功能模块,只是软件的功能框架结构,下一步就需要明确描述每个模块的具体内容了。包含什么内容、能做什么操作,每一个功能点的说明、优先级、业务规则、详细功能描述等等。这些也是软件需求规格必须描述的内容。
需求分析的表现方式,我们现在采用需求规格文档,UML语言描述的用例图、类图、活动图,还有实体关系图、界面原型等等,从不同角度、不同需求描述规划出的软件全貌。
五、 需求分析的质量控制
软件需求分析直接关系到软件产品的方向,所以需求分析的质量至关重要。对于这个关键点的质量控制,则可以通过内部评审和同行评审的方式,然后是客户方的评审。项目组内部评审或同行评审主要是根据公司规范和评审人员本身的经验对需求分析中不明确、不合理、不符合逻辑、不符合规范的地方予以指正。而客户的评审主要是对描述的软件实现是否真正符合他们的需求,能否帮助他们解决问题等方面作出评定。
软件的需求分析必须要有对原业务的一个深入了解、提取、抽象、升华的过程,管理软件需求分析尤其如此。
分享到:
相关推荐
细谈软件需求的分析过程:提取、抽象、升华
细谈软件需求分析过程:提取、抽象、升华 软件的需求分析必须要有对原业务的一个深入了解、提取、抽象、升华的过程,管理软件需求分析尤其如此。
平台通过代码托管、统计分析、产品目录管理、应用变更提测流程、代码产出量、代码评审频率、需求排期、迭代发版和发布流程等多方面支持研发活动。 在技术实现上,京东数科的DevOps平台提供了自助创建仓库、代码扫描...
《软件架构纵横谈》是张逸撰写的一部深入探讨软件架构设计原则、模式与方法学的著作,旨在全面解析从宏观架构到微观架构乃至纳米架构的多层次架构设计思路。本书通过对MMN架构(Macro-Micro-Nano Architecture)的...
总的来说,解决计算机软件开发设计的难点需要全面考虑设计流程的各个环节,采用创新方法,强化规范操作,重视测试验证,提升开发环境,并始终关注用户需求和软件的可持续发展。通过这些努力,我国的软件开发设计能力...
### 浅谈计算机应用软件开发中编程语言的选择研究 #### 引言 随着信息技术的快速发展,计算机应用软件在日常生活及各行各业中的作用日益显著。对于软件开发企业而言,提高软件开发的效率与质量不仅能够增强其市场...
本文将从高速加工对CAD/CAM软件的需求入手,探讨数控编程系统应如何与高速机床及刀具系统相匹配,以最大限度地发挥加工效能。 首先,高速加工并不是简单地使用更高的主轴转速和更快的机床进给速度,其核心在于小切...
这些技术的集中运用让数据的价值得以发挥,但同时也带来了挑战,传统的分析软件和工具已经无法满足大数据的处理需求,必须开发和运用新的模式和方法。 接下来,我们来具体分析一下大数据时代的数据特征。大数据时代...
特点:是面向规划设计师和建筑师的三维辅助设计软件,它将虚拟可视化技术融入设计过程,让设计师在三维环境下进行城市的设计、评估、分析和交流。它可以与3ds MAX等建模软件配合使用,支持材质编辑和物体运动编辑...
策划报告应包含硬件和软件的需求,提供相关技术资料,为网站的建设和运营提供全面指导。 总的来说,电子商务网站策划是一项涉及广泛的专业工作,需要综合考虑市场、技术、管理和用户体验等多个因素。只有在明确战略...
医院智能化系统的建设是一项复杂而精细的工作,涉及到硬件设施的配置、软件系统的开发、数据采集与传输等多个环节。在这个过程中,专业设计公司需要深入了解医院的实际需求,由熟悉医院运营的人员提供详细信息,确保...
3. 集控系统软件设计:煤矿机电自动化集控系统软件包含信息判断和处理模块,主要负责数据采集、接收和发送工作;以及系统控制信息处理模块,负责信号逻辑处理、数字滤波等任务。 煤矿机电自动化集控技术的未来发展...
2. **需求分析**:深入分析各部门的具体需求,避免单方面决策,确保系统设计符合实际业务流程,提高工作效率,防止资源浪费和潜在风险。 构建企业电子信息技术管理系统是一项系统工程,不仅需要综合考虑各种原则,...
"浅谈工程设计对工程造价的影响"这一主题揭示了设计过程中的决策如何直接关系到项目的经济成本。以山水小区兴顺商住楼为例,我们可以深入理解这一概念。 首先,项目背景部分提到的山水小区兴顺商住楼是一个具有特定...
此外,利用OA系统及X-RAY硬件设备,建立多层微波印制板加工过程中板材变形数据的采集与分析系统,制定快速响应方案。通过这些措施,可以实现印制板CAM设计过程中的数据模块化、标准化、规范化,从而提高信息处理的...
总的来说,大数据技术正在逐渐成为航天产品质量管理中不可或缺的一部分,它通过数据分析和预测能力的提升,帮助航天产品制造企业提高产品性能、延长寿命,并满足顾客对高质量产品的需求。随着我国经济和数据资产的...
首先,要深入理解并分析工业机器人的工作任务,这是系统集成设计的基础,决定了机器人选型、工艺软件和工作装备的选择。其次,合理选择或设计工作装备至关重要,因为它们是执行工艺操作的关键,需根据具体任务来定制...
CAD技术,即计算机辅助设计技术,是现代工程设计不可或缺的一部分。它结合了计算机图形学、数据库技术、网络...同时,CAD技术的应用也要求设计人员不断学习新的软件功能和更新的设计理念,以适应日益复杂的工程需求。