软件工程—需求的实践(3)
作者:林星 本文选自:IBM DW中国 2003年05月13日
文三 UML介绍—Customer Oriented而不是Program Oriented
内容:
·1. UML
·2. UML起源
·3. UML是什么
·4. 用例图和用例
·5. 用例和需求,用例和过程
·6. 使用用例的误区
·7. 用例的观点
·8. 用例的不足
·9. 迭代式的需求分析
·10. 小结
软件开发人员总是在困惑为什么软件分明是按照需求做出来的,可是客户为什么仍然不满意。客户总是在困惑为什么软件和自己想要的差距会那么大。这究竟是怎么回事?如何才能把开发人员和客户之间的沟壑填平?本文作为这个关于需求的软件工程专栏的第三篇,将向您介绍这个把客户和开发人员联系在一起的工具――UML(统一建模语言,Unified Modeling Language)。
一个软件系统的开发过程说到底就是由客户提出需求,再由开发人员将之翻译成机器能够理解的语言,构建成系统,交付给客户使用。在客户看到软件的时候,客户通常会说一句话:"哦,那正是我所说的,但那不是我想要的。"
即使是开发人员异常的尽责,花费大量的时间了解客户需求,依然避免不了出现上述的客户抱怨。更何况开发人员通常都想当然的认为自己已经了解了需求,并喜欢按照自己的想法给软件加入一些新特性(feature)。在这样的情况下,用户的"真正"的需求就更加得不到保障了。
出现了什么问题?因为大部分的软件开发工作都是Program Oriented,而不是Customer Oriented。开发人员认为自己已经了解了客户的需求;客户表达不出或是表达不全自己的需求;开发人员抱怨客户经常修改需求;客户不明白软件开发为什么有如此多的限制…。所有这些,都是Program Oriented的软件开发模式避免不了的弊病。
归根结底,这些问题都是由于客户和开发人员的立场不同而导致的。
所以呢,在客户和开发人员之间,缺少一种东西来把他们联系在一起。因此,众多的方法学,都把这个问题视为重中之重。