《软件需求十步走》阅读笔记二

软件需求的分析要透过现象看本质,不能只停留在表面。再好的方法也需要有明确的范围和清晰的目标,才能发挥其最大作用。

需求也是不断变化的需求,而需求的变化也无疑加重了软件开发人员的工作量。那么如何控制这种变化,就是我们需要做的。最有效的方法,就是找到需求变化的来源。找到了来源,才能更好的把控这种变化,以及变化带来的各种后果反应。

用户其实并不是需求变化的来源,用户为之服务的人群才是变化的来源。服务对象的各种需求会随着社会环境的变化而变化,那么相对应的,用户的需求也会随之发生变化。本书提出的创新观点,即把客户业务,对象业务和软件系统同时作为研究对象,这样就会更好的把控需求变化。形式逻辑中的假设方法,也是一种很好的控制需求变化的方法。

自然语言总是有歧义的,比如我说一句:“今天的太阳真好。”有的人可能认为重点是今天的太阳,而不是明天的太阳;有的人会认为重点在太阳,是太阳很好而不是月亮很好;还有的人可能觉得好才是重点。只是一个很简单的句子,不同的人看到就会有这么多不同的理解,更何况是需求分析这种复杂逻辑性强的东西了。所以我们要尽可能的消除这种自然语言的二义性,保证大家的理解和认知能尽可能的保持一致。

为了保持这种相对一致,UML描述语言、基于代数的形式化描述、VDM、LOTOS形式化描述语言等等这些逻辑比较严密的描述语言就被运用了。但是事有两面,虽然这些语言在消除自然语言二义性上有很大的成效,但是学习起来就比较困难。所以我们还是选择了相对易懂好理解的自然语言,结合表格、图形、模型等等来描述需求,这样多种形式结合起来,也大致能够达到我们预想中的目标。

需求分析的核心是业务研究,这也是很创新的一个思维。重点是业务研究,其次再到技术研究。将业务研究透彻之后,再去进行技术研究,才能使技术发挥出其最大作用。假如业务研究的不透彻,不具体,那么技术研究的再好,这个软件系统整体还是不完整的。所以在分析过程中,要把业务研究放在首位,业务研究是基础。

软件需求的验证工作,其目的是为了保证需求的完整性和正确性。说的明白点,就是保证我做出来的这个东西正是用户所需要的。不仅需要人工验证,借助于机器验证也是一个很好的办法。机器验证会模拟一个软件系统的运行环境,不仅能够测试系统逻辑的正确性,还能给出系统的相关参数。并且在这个过程中要慎用基于从前的工作经验的验证方法。

原文地址:https://www.cnblogs.com/meimiaozi/p/5003066.html