软件开发,能否获得成功,最重要的是需求分析的工作。因此,软件需求分析师的能力和水平,对软件项目至关重要。
多年以来,我接触过非常多软件从业人员,很多人说自己参加过多个项目,在项目组中做过需求分析,仔细聊起来却发现他们根本没有接受过软件需求分析的培训,对软件需求根本没有清晰的概念,甚至很多人认为把业务流程图画出来,把数据表做出来,就叫需求分析完成了。
我是做软件实践的,侧重基本概念。因此,本文中,我给大家讲解一下软件需求分析的基本概念。
软件需求,只有三个要素:Actor、系统边界、输入输出。
Actor:软件需求分析整个阶段,要构建的系统作为一个黑盒子。Actor 与这个软件系统有直接交互关系。Actor 可以是人,也可以是其他软件系统。
系统边界:要构建的软件系统是个黑盒子,看不见这个黑盒子里面的任何子系统、模块,只能看到系统的边界。Actor 与系统的交互,都发生在系统边界上。
输入输出:Actor 与软件系统在边界上进行的所有交互。这些交互,无非是Actor给系统怎样的输入,然后系统给Actor怎样的输出,或者反之,系统给Actor怎样的输入,Actor给系统怎样的输出。用户在键盘的输入,鼠标的输入,对接系统向要构建系统发起的连接,发送的消息,接口的调用……,都是输入;用户看到的软件界面,系统的错误提示,系统回应的消息、接口调用的返回值、错误码等等,都是输出。
所有软件的需求分析,都是由这三个要素构成。首先要确定是系统边界和Actor,然后才是仔细分析Actor和系统边界之间的各种输出输出。