我们团队的项目是“实现多方通讯”(我们打算开发一款简单的通讯软件,其基本功能是实现一对一的网络信息通讯,并努力向一对多和多对多靠近),在这个项目中,我仅对其行为描述环节做一点简短的说明。
行为描述语言主要用于描述待开发软件系统的行为。
基于行为的需求建模方法首先将与复杂系统对应的问题域分解成若干个问题域,然后根据不同的用户视点建立系统的需求模型。最后,根据语义模型并利用行为时序逻辑来检验复杂系统的一些重要特性。在构建基于软件行为和视点的需求模型(行为模型)过程中,主要利用行为描述语言以及行为树(或行为图)建立的行为模型,并使用操作语义建立行为模型的语义模型,以对行为模型进行各种检测等。其中,行为描述语言可以将系统的行为表示为行为表达式,并通过行为表达式的变化来刻画系统的状态变化。此外,行为描述语言也能够反映系统的行为踪迹。(摘自《软件需求工程》P146)
要对软件系统进行行为描述,我们需要经过以下几个步骤:
首先,确定系统的所有行为和主体。
系统行为由如下部分组成:1.场景中的动宾短语;
2.具有相互行为的动作;
3.隐含动作。
这些行为大部分由动宾短语组成,在我们的项目“实现多方通讯”(我们打算开发一款简单的通讯软件,其基本功能是实现一对一的网络信息通讯,并努力向一对多和多对多靠近)中,“注册用户”,“输入密码”,“选择好友”,“发送消息”,“退出登录”……等都是系统软件中的行为,都是软件系统在运行时的踪迹或者说是软件行为;而行为主体就是上述动作的主语,宾语就是客体。
然后,确定有效行为和主体。
在上个步骤中,我们可以列出所有相关的软件行为和主体,而我们需要找出与系统密切相关的行为和主体。比如“输入密码”此类,而不是“用户可以申请一个账号”这样的与软件功能无紧密关联的行为和主体。
然后,建立行为间的关系。
众所周知,所有的软件行为必须联系起来才能构成一个完整的软件系统,所有的系统构件必须连接起来才能正常工作,比如,“选择好友”和“发送消息”是顺序关系,我们确定有效行为和主体之后,需要把他们按照功能关系和结构关系联系起来,其中行为树是描述行为间层次关系的一个好方法。
再而,建立场景。
场景指的是软件系统运行中,行为主体发出行为,或者是行为客体接收行为指令而进行反映的景象。场景通常是由前面步骤所获得的行为和主体所参与构建的,其中,动作的结果能被他们的主体和客体察觉到。比如,“用户发出消息”,这就是一个场景。
最后,使用行为描述语言描述场景。
建立场景之后,接下来就是用行为描述语言描述每个场景,并用行为表达式来表示场景中的内容(行为描述语言正在学习中)。
通过以上步骤,将所有的行为描述成所谓的行为集,这个行为集就是描述某个视点需求的行为描述模型。
在我看来,软件系统的行为描述应该是贯穿整个软件开发过程中的,因为在一开始,我们并不能够把所有的软件行为和主体都确定,而在软件开发过程中,软件功能的增减和各个模块的衔接中,都会涉及到行为的发生,所以,我们需要把行为描述贯穿到整个过程中;再者,我认为行为描述在软件需求分析中是非常重要的一环,从行为描述到场景创建,再到用行为描述语言来描述场景,从而得到软件编程和行为功能的大致流程,这是于需求模型和软件开发本身都有着非比寻常的意义。