Alex_McAvoy

想要成为渔夫的猎手

软件可行性研究与需求分析

【可行性研究】

引入

项目立项包括项目发起、项目论证、项目审核、项目立项四个阶段,其中,项目论证就属于可行性研究,项目论证的目的不是解决问题,而是确定问题是否值得去解决

进行可行性研究,不能依靠主观猜测,而是要根据客观情况进行分析,因此,可行性研究可以看做是一个压缩简化的分析设计的过程

评估方向

可行性研究需要从多个方面进行评估:

  • 战略可行性:从战略的角度来看,从整体考虑项目是否可行
  • 操作可行性:新系统安装后,是否有人抵触系统、是否足够的人力资源来运行系统
  • 计划可行性:项目能否按计划来完成
  • 技术可行性:考虑技术的成熟程度、现有技术的发展趋势与前景等
  • 社会可行性:是否满足项目涉及者的利益、是否满足法律要求
  • 市场可行性:分析市场的发展趋势、同类产品的价格对比、所占份额等
  • 经济可行性:对系统成本与效益进行分析
  • 风险可行性:考虑项目过程中的各种风险因素出现的几率与造成的影响

可行性研究步骤

进行可行性研究的步骤不是固化的,而是根据项目的性质、特点、开发团队的能力有所区别

一个典型的可行性研究的步骤可归为以下几步:

  • 明确系统目标
  • 分析研究现行系统
  • 设计新系统的高层逻辑模型
  • 获得并比较可行的方案
  • 撰写可行性研究报告

经过可行性研究后,对于值得开发的项目,就要制定软件开发计划,写出软件开发计划书

【需求分析】

引入

如果说可行性分析是关于 “做不做”、”是否值得做” 的问题,那么需求分析,就是关于 “做什么” 的问题

需求分析是一个迭代的过程,其应该贯穿于系统的整个生命周期,随着项目的深入而不断变化,而非仅属于软件生命周期早期的一项工作

为方便评审与后续设计,需求的表述应该具体、清晰,并且是可测量、可实现的,最好能对需求进行适当的量化

需求分析可以具体地分为以下三个方面的需求:

首先,要确定系统的运行环境需求,其包括系统运行时的硬件需求、软件环境需求

之后,确定系统的功能性需求与非功能性需求。功能性需求是指为用户和系统要完成的功能、提供的服务;非功能性需求是指必须遵循的标准、外部界面的细节、实现的约束条件等

最后,要与用户进行有效的需求分析。需要注意的是,由于用户通常对需求的陈述不完备、不准确、不全面,并且可能在不断变化,因此要与用户及时、有效地沟通

阶段

需求分析可分为以下两个阶段:

  • 建模阶段:在充分了解需求的基础上,建立起系统的分析模型
  • 描述阶段:把需求文档化,用软件需求规格说明书的方式将需求表达出来

要注意的是,软件需求规格说明书,是需求分析阶段的输出,其全面、清晰地描述了用户需求,是开发人员进行后续软件设计的重要依据,其具有清晰性、一致性、准确性等特点,是通过严格的需求验证、反复修改的过程后确定的

步骤

需求分析可分为以下四个步骤:

  • 需求获取:收集并明确用户需求的过程,常用方法有调查研究、实地操作、开发原型等
  • 分析建模:对开发系统建立各种角度的模型,来使开发人员更好地理解需求
  • 需求描述:系统定义文档(用户需求报告)、系统需求文档(系统需求规格说明书)、软件需求文档(软件需求规格说明书)
  • 需求验证:后续软件开发的基础,对需求文档进行审查,保证需求的一致性、完整性、现实性、有效性。

需求管理

为更好的进行需求分析并记录需求结果,需要对需求进行管理

需求管理是一种用于查找、记录、组织、跟踪系统需求变更的系统化方法,可用于获取、组织、记录系统需求,使客户与项目团队在系统变更需求上达成并保持一致

需求分析的方法有很多,常见的有:功能分解方法、结构化分析方法、信息建模方法、面向对象的分析方法等等

感谢您对我的支持,让我继续努力分享有用的技术与知识点!