简答题
基于复用的面向对象的需求分析过程主要分为两个阶段:论域分析和应用分析。试讨论它们各自承担什么任务?如何衔接?
正确答案
论域分析是软件开发方法中一个基本组成部分,它给出的一组抽象是论域的知识的高层表示,用来做为特定系统需求开发的参考。由于分析常常是在超出当前应用的范围进行的,所以这个技术仅在扩充当前系统或将来建立其它系统时找寻复用信息时才是实用的。
论域分析是对与应用开发问题有关的范围十分广泛的知识的学习。论域的边界是模糊的,它们很多是凭借经验和实际考虑(如可用资源)定义的。主要思想是想把考虑的领域放宽一些,把相关的概念都标识到,以帮助更好地掌握应用的核心知识。当用户改变他们对系统需求的想法时,范围广泛的分析可以帮助预测这些变化,并不再需要进一步的分析。
论域分析的目的是标识基本概念,识别论域的特征,把这些概念集成到论域的模型中。这个模型必须包含概念之间的关系和关于每个单独概念的完全信息。这个信息起着一种胶合作用,把所有相关概念并入论域综合视图中去。
论域分析是一个持续的活动,它可以在软件开发的任一时刻进行标识,它还是一个可在超出特定应用的开发范围时仍然能够正常继续的处理。当论域变化时,必须更新那些抽象和关系。论域分析的结果使得我们可积累更多的有关论域的经验和细化我们的抽象。
使用论域抽象做为系统开发基础的好处是可适应性,客户可能改变需求,而且问题环境也可能改变。基于论域信息的应用更容易适应论域内知识的改变和用户需求的变化。
论域分析是一个长期的投资。如果在初始开发时需求发生变化,它可能有更直接的效益;在很大的项目上可能更快地得到回报。最大的价值是抽象的开发,这些抽象表示了一个问题论域中的基本概念,它们形成的软件库还可支持许多应用的开发。
应用(或系统)分析细化在论域分析阶段所开发出来的信息,并且把注意力集中于要解决的精确的问题。应当把客户对系统的需求当做限制来使用,它们缩减了论域的信息量,而这种信息将是主动设计过程的一部分。就这一点来说,保留的信息受到论域分析视野的影响。论域分析产生的模型并不需要用任何基于计算机系统的程序设计语言来表示,而应用分析阶段产生影响的条件则伴随着某种基于计算机系统的程序设计语言的表示。响应时间需求、用户界面需求和某些特殊的需求,如数据安全等,在这一层都被分解提取。
许多模型识别的要求是针对不止一个应用的。通常我们着重考虑两个方面:应用视图和类视图。必须对每个类的规格说明和操作详细化,还必须对形成应用结构的类之间的相互作用加以表示。