常常听到许多朋友跟我埋怨,需求分析之难,就在于用户自身就常常弄不清楚自己的需求。起初在需求确认的时候说得好好的,一到软件上线的时候就不是那么回事了,这可没法整。但我们只要坐下来仔细分析就会发现,在需求分析的时候我们跟用户是在空对空地讨论问题。用户不是专业人士,他也搞不清楚软件到底会做成啥样,所以你跟他确认的时候他就点头了。但是,用户不是傻子,当你软件上线时,他拿到了实物了,知道软件做成啥样了,一旦不满意他就开始提变更了。所以,需求分析的症结就在与这个实物。
既然症结在此,毫无疑问,我们就应当在需求分析阶段拿出实物,用实物与用户确认需求,这就是快速原型法的基本思想。快速原型法,简称原型法(Prototyping),是20世纪80年代提出的一种从设计思想、工具、手段都全新的系统开发方法。它摒弃了那种一步步周密细致地调查分析,然后逐步整理出文字档案,设计开发,最后才能让用户看到软件结果的繁琐作法。当我们捕获了一批业务需求以后,就立即使用快速可视化工具开发出一个原型,交给用户去试用、补充和修改。再提出一些新的需求以后,再开发一版新的原型。原型法的关键就是这个快速开发。不用考虑性能、美观、可靠,原型的目的就是模拟客户的需求,与客户进行确认的。整个需求分析的过程就是“捕获需求->原型开发->确认需求->再捕获需求”的过程。
原型开发的快速与模拟到什么程度,是一对矛盾,我们要去把握。要快速开发,必然不可能和最终交付的软件系统一模一样,许多复杂问题被简化,非关键性流程被忽略,这就是所谓的模拟。因此,模拟到什么程度是关键,既能说明问题,又不耽误时间。根据我的经验,一般能拿出界面,并可以走通关键性流程就可以了。一些快速开发平台为快速原型法提供了可能。
当用户拿到原型可以自己操作时,需求研讨的气氛立即变得不太一样了。当用户享受原型给他们带来体验的快感时,需求被源源不断地被提出来。这时候的需求,就不再是枯燥无味的文字游戏,而是生动形象的图形界面。日后,如果项目采用迭代开发,让用户看着软件一点儿一点儿地成长,这又是多么美妙的体验啊。与此同时,你与用户的信任也在一步一步建立起来,软件风险在降低,项目将朝着正确方向前进。
快速原型法是美妙的,它给你与用户带来了从未有过的体验。但美妙的同时,也会带来一些的尴尬,不必要的误会,我们一定要注意。最常见的误会就是让用户将原型误以为最终交付的系统。开发一个系统需要持续数月,但你倒好,几天就搞定了,为什么还要在这个系统上投入大量资金呢?如果对方领导开始有这样的想法时,双方就开发费用进行的谈判就有一些不妙了。所以在给用户看到原型前,一定要跟用户解释清楚。
既然是原型,必要的校验、非正常操作的处理通通都被忽略。因此,当演示原型出错时,用户你可千万不要较真哟!这丑话可得说在前头,否则用户跟你较起真来,你在用户心目中的形象可就要大打折扣了。
总之,根据实际情况灵活运用原型法,可以更加顺畅地与用户确认需求。甚至在最后编写需求规格说明书的时候,都可以将原型的截图放进去。都是与用户确认好的东西,又能提高需求规格说明书的准确与生动,何乐而不为呢?
我们应当怎样做需求分析
我们应当怎样做需求调研:初识
我们应当怎样做需求调研:拜访
我们应当怎样做需求调研:研讨会
我们应当怎样做需求调研:需求研讨
我们应当怎样做需求调研:迭代
我们应当怎样做需求调研:需求捕获(上)
我们应当怎样做需求调研:需求捕获(下)
我们应当怎样做需求分析:功能角色分析与用例图
我们应当怎样做需求分析:业务流程分析(上)
我们应当怎样做需求分析:业务流程分析(下)
我们应当怎样做需求分析:用例说明
我们应当怎样做需求分析:查询报表分析
我们应当怎样做需求分析:子用例与扩展用例
我们应当怎样做需求分析:行动图和状态图
我们应当怎样做需求分析:业务领域分析
我们应当怎样做需求分析:原文分析法
我们应当怎样做需求分析:领域驱动设计
我们应当怎样做需求分析:非功能需求
我们应当怎样做需求确认:需求列表
我们应当怎样做需求确认:一个需求列表的实例
我们应当怎样做需求确认:快速原型法
我们应当怎样做需求确认:需求规格说明书
我们应当怎样做需求确认:评审与签字确认会
(续)
分享到:
相关推荐
我们应当怎样做需求分析 我们应当怎样做需求调研:初识 3 我们应当怎样做需求调研...我们应当怎样做需求确认:快速原型法 49 我们应当怎样做需求确认:需求规格说明书 50 我们应当怎样做需求确认:评审与签字确认会 53
原型法是一种迭代式的设计方法,通过快速构建和测试原型来逐步完善软件功能。此方法适用于需求不完全清晰或者需要频繁调整的情况。 - **参考资料**:文档中列出了所有被引用的参考材料,这对于确保文档的一致性和...
5. **原型设计**:为了更好地理解需求,有时会创建初步的软件原型,让用户直观感受并反馈,从而调整和完善需求。 6. **需求验证**:在分析过程中,应定期与利益相关者进行确认,确保理解的需求符合他们的期望。这...
再者,需求获取技术是收集需求的关键手段,这可能包括访谈、问卷调查、观察法、原型法等,目的是全面、深入地理解用户需求。在这一阶段,分析人员需要协助用户挖掘潜在需求,同时避免盲目接受所有需求,因为并非所有...
- **开发周期:**对于时间紧迫的项目,敏捷开发或原型法可以更快地得到用户反馈。 - **团队技术水平:**经验丰富的团队可以更好地应对敏捷开发带来的挑战。 #### 第2章:软件需求分析 **需求分析概述:** 需求分析...
在分析方法的选择上,功能分解法、原型法和用例法是三种常用的方法。功能分解法虽然直观,但可能会混淆需求与设计的界限,容易导致需求文档过于详细,而忽视了对系统整体行为的描述。而用例法作为更为有效的方法,它...
需求文档的编写应当遵循一定的规范,确保文档的清晰、准确和完整性。良好的需求文档不仅有助于开发团队正确理解需求,还为后续的测试和验收提供了依据。 **软件需求验证与确认** 需求验证与确认是确保需求文档中...
虽然IEEE 830-1998 主要针对传统瀑布式软件开发流程,但其原则也适用于敏捷开发、原型法等多种软件开发方法论。灵活运用这些原则,可以在保持文档规范的同时,适应快速变化的市场需求和技术趋势。 ### 三、总结 ...
- **概念解析**:快速原型技术适用于快速迭代开发场景,尤其对于需求不明确或易变的项目非常有用。 5. **面向数据的设计方法的应用** - **概念解析**:面向数据的设计方法侧重于数据结构的设计,适用于需要大量...
7. **快速原型模型**:这种模型允许快速创建初步的软件版本,以适应用户需求的变化。 8. **软件设计原则**:模块化、信息隐藏、抽象和逐步求精的原则有助于提高软件的可读性、可维护性和可扩展性。 9. **集成测试*...
措施为构建软件提供技术上的处理措施("怎样做")。工具为过程和措施提供自动化或半自动化的支持。 通用过程模型的5种框架活动:沟通、筹划、建模、构建、布署8个经典的普适性活动:软件项目跟踪与控制;风险管理;...
4. **快速原型技术**:适用于很多软件开发。 5. **面向数据设计法**:适用于层次结构明显的信息系统。 6. **软件危机原因**:软件危机的产生有多重原因,不只是缺乏经验。 7. **语言紧致性**:紧致性好不一定意味着...
3. **螺旋模型**:这是一种迭代的开发模型,它结合了瀑布模型和快速原型模型的优点,增加了风险管理环节。每个螺旋周期都包含了项目规划、风险分析、工程实施和客户评估四个部分。 #### 不科学的测试流程 不科学的...
17. 快速原型模型允许快速构建可运行的系统原型,以适应用户需求的变化。 18. 需求规格说明书是软件开发的重要文档,应视为软件配置项。 19. 黑盒测试只关注软件功能,不涉及内部实现。 20. UML(统一建模语言)...
快速原型模型通过快速构建原型来适应用户需求的变化。 11. **软件设计原则**:正确。良好的软件设计原则有助于提高软件的质量。 12. **集成测试**:错误。集成测试通常由开发人员或专门的测试团队完成,而非用户。 ...
4. 快速原型模型允许快速构建和修改原型,适应需求变化。 5. 面向对象的需求分析中,动态模型描述对象的行为,而非最主要任务。 6. 集成测试通常由开发团队或专门的测试团队执行,而非用户。 7. 确认测试计划应在...
- 解析:需求分析阶段的成果通常以需求规格说明书的形式呈现,需要上级审查确认。 12. 业务流程图是描述一个组织内部业务处理活动的内容与工作流程,是进行**系统分析**使用的工具之一。 - 解析:业务流程图是...