软件项目如何进行需求分析

简介:

软件项目如何进行需求分析?我们要围绕两个核心问题开展需求分析:(1)应该了解什么?(2)通过什么方式去了解?

1 应该了解什么

那怕是天下最无能的市长或书记,都知道在作报告时要先从宏观上讲一、二、三、四、五,再从细节上讲A、B、C、D、E。需求分析不象侦探推理那样从蛛丝马迹着手。应该先了解宏观的问题,再了解细节的问题,如图4.1所示。

一个软件系统(记为 S)的涉及面可能很广,可以按不同的问题域(记为D)分类,每个问题域对应于一个软件子系统。

S = { D1,D2,D3,… Dn }

问题域Di 由若干个问题(记为P)组成,每个问题对应于子系统中的一个软构件。

Di = { P1,P2,P3,… Pm }

问题Pj有若干个行为(或功能,记为F),每个行为对应于软构件中的接口。

Pj = { F1,F2,F3,… Fk }

按图4.1结构写成的需求说明书,对于那些只想了解宏观需求的领导,和需要了解细节的技术员都合适。在写需求说明书时还应该注意两个问题:

(1)最好为每个需求注释“为什么”,这样可让程序员了解需求的本质,以便选用最合适的技术来实现此需求。

(2)需求说明不可有二义性,更不能前后相矛盾。如果有二义性或前后相矛盾,则要重新分析此需求。

2 通过什么方式去了解

了解需求的方式有好几种:

(1)直接与客户交谈。如果分析人员生有足球评论员的那张“大嘴”,就非常容易侃出需求。

(2)有些需求客户讲不清楚,分析人员又猜不透,这时就要请教行家。有些高手真的很厉害,你还没有开始问,他就能讲出前因后果。让你感到“听君一席言,胜读十年书。”

(3)有很多需求可能客户与分析人员想都没有想过,或者想得太幼稚。要经常分析优秀的和蹩脚的同类软件,看到了优点就尽量吸取,看到了缺点就引以为戒。前人既然付了学费,后人就不要拒绝坐享其成。

本文转自BlogJava 新浪blog的博客,原文链接:软件项目如何进行需求分析,如需转载请自行联系原博主。

相关文章
|
2月前
|
领域建模 持续交付 项目管理
项目管理问题之什么是软件方法
项目管理问题之什么是软件方法
|
11月前
|
测试技术
软件需求分析
一、软件需求分析 软件需求分析是软件工程中的一个关键过程,它旨在理解和明确用户对软件系统的需求,为后续的设计和开发提供基础。软件需求分析包括以下几个主要步骤: 1. 需求收集:需求收集是指通过与用户和利益相关者的沟通和交流,获取软件系统的需求信息。这可以通过面谈、访谈、问卷调查、观察等方式进行。需求收集的目标是获得用户的需求和期望,以及软件系统所需的功能和性能要求。 2. 需求分析和建模:需求分析是对收集到的需求进行分析和整理,以理解其背后的意图和目标。需求建模则是将需求信息以图形或文本形式进行描述和表达,以便于理解和沟通。常用的需求建模技术包括用例图、活动图、状态图等。 3. 需求验证和确认
387 1
|
4月前
|
监控 项目管理 调度
深入探究ERP系统的项目管理模块
深入探究ERP系统的项目管理模块
112 3
|
4月前
|
设计模式 监控 架构师
如何在项目中考虑非功能需求
软件非功能需求包括性能、可靠性、安全性、易用性、可维护性、可移植性、兼容性、可重用性、可扩展性和可观察性。质量属性分为开发期和运行期,如易理解性、可扩展性、可测试性等是开发期质量,性能、安全性、易用性等是运行期质量。评估方法有ATAM(架构评估技术)、ADMEMS矩阵方法、SAAM(软件架构分析法)和CBAM(成本效益分析法)。ATAM包括建立评估小组、获取架构信息、风险承担者观点和形成最终报告四个阶段。
226 0
|
4月前
|
运维 测试技术 API
产品服务的详细设计与开发阶段
产品服务的详细设计与开发阶段
75 2
|
存储 NoSQL 定位技术
软件需求分析报告
软件需求分析报告
软件需求分析报告
|
监控 测试技术 程序员
|
项目管理 uml
11、需求分析师指南 - 软件项目角色指南系列文章
第10章      需求分析师   需求分析师做为项目管理过程中的一个重要角色被项目经理所认知。需求分析师是配合项目经理的实际工作进行的,在项目需求管理中对需求做分析整理,形成需求功能书或者解决方案书,让项目组成员能够更好的理解需求,更好的做项目的下一步设计。
2215 0