需求分析是一个软件成败的决定因素,对于第一次独立承担这项任务的新人来说,有可能无从下手,临时看书好像又来不及。这里将我的理解和大家分享一下,希望对新人能有所帮助。
无论是什么项目,假设我们已经对客户的大概需求做过一些收集,好的客户可能有一些需求文档,差一点的用嘴零散的说过;收到这些信息后,我们如何分析呢?很多第一次做需求分析的人,会很自然的将分析后的功能变成数据库的CRUD;比如:添加员工、删除员工、修改员工等,但这里客户可能要的是员工入职、员工离职、员工异动。
为了简化分析过程,我们可以考虑分四步,每一步都建立在前一半之上的。
Ø 识别主题对象
这是分析的第一步,简单的方法是将业务方面的相关名词进行收集,从中选出相应的名词作为主题对象;以车购税为例:最后确定为“纳税申报表”、“税票”、“车辆档案”、“最低计税价格”、“免征车”等。
识别后再对主题对象的结构性的需求进行分析,说白了就是确定每个主题对象的内容,以及主题对象间的依赖关系;确定结构最初来源于一些客户提供的表格,依赖关系要根据业务分析才能得出。
Ø 识别主题对象上的业务规则
识别出了主题对象,下一步从规则上描述业务对主题对象的约束,比如:纳税申报时如何确定计税价格,如何确定税率,如何确定免税等。
Ø 识别主题对象上的业务流程和事件
围绕主题对象它有哪些流程,以及可预见的驱动流程的事件。流程可以分为三类:主题对象从无到有的流程、主题对象生命周期内的业务流程、主题对象生命周期结束的流程。
比如一个员工从非员工变成员工,有入职流程;
员工在职内流程就很多:考勤有关的请假、加班、出差,还有很多异动流程;
从员工变成非员工,有离职流程。
对每一个流程来总结事件,事件分为:系统事件和人工事件;系统事件是机器自动执行的比如:超时等,而人工事件是由交互完成的比如:领导批准请假等。
在分析流程的过程中,逐步完善业务规则和主题对象的结构性需求。
Ø 识别主题对象上的数据分析价值
最后,也是新人最容易忽视的一点;以上所有的分析更多的站在基本交互业务分析的;接下来我们应该考虑从管理角度来分析需求,也就是在每一个主题对象上我们能提供哪些有价值的分析报告(一般意义上的报表)。这样就照顾到了客户的管理层。
通过每一步的分析,就能引出很多需要和客户交流的问题;这样就避免了总想客户能讲讲需求,可是又不知道要客户讲哪方面的内容。
需求分析是一个很大的话题,这里仅仅是一些提示性的,希望有心人跟帖完善。
声明:此文章并非本人原创,转自公司的内部论坛,是公司一的位同事也是我的领导所写,觉得不错转出来与大家共勉。