图中,方块表示一个对象,方块中的文字中冒号之前的部分是对象的名字,冒号之后的是对象所属的类的名字。方块下面的竖直虚线是对象的生命线,表示对象按照从上到下的时间轴的在某段时间内存在。对象间的箭头表示对象之间的消息通讯。而那些狭长的长方块表示某个操作方法执行的时间和调用关系。
顺序图有一个孪生兄弟——协作图,AddTask的协作图是这样的。
这两种图描述的其实是同一种东西,即实现某种系统功能的一组对象和它们之间的消息传递。不过在顺序图中,时间是作为一个显式的因素出现的,这是的顺序图在构造实时系统时特别有用。而在协作图中,没有显式的时间因素,但是对象之间的关联是一目了然的,这对我们在一组相互关联的对象的语境中考察它们的消息传递是很有帮助的。顺序图和协作图是对同一事物的不同角度的考察。
我们从Use Case自然语言的描述得到了它的顺序图,从顺序图中我们可以发现许多类。你瞧,我们有一个窗口,所以需要有一个对应的窗口类;我们有一个Task对象,相应的就得有一个Task类,类似的,Tasks这个用来管理和组织Task的集合对象也是必须的。Great!现在你看到Use Case和顺序图对识别和发现类的作用了吧!在传统的面向对象分析中,类的识别是靠分析人员的经验和灵感来进行的,这太难以把握了。现在有了Use Case的概念,就可以为对象和类的识别提供一个有力的线索和支点。通过分析Use Case,构造它的顺序图描述,再加上传统的对问题域中的对象和类的考察,可以发现大多数和系统相关的类。面向对象分析中最重要也是最困难的识别和分析类的工作再也不是一种神秘的法术了(你凌空一指,变出了类),现在人人都可以胜任这个活儿了。
经过识别和分析Use Case,我们的需求分析工作可以告一段落了。现在我们着手分析系统的静态结构——就是类的分析和设计。
静态结构分析
通过分析Use Case和问题域,我们得到了类。现在我们要分析这些类的属性、操作和它们之间的关系,即系统的静态结构。
关于类的属性和操作的识别和分析,众多的面向对象分析的书籍中已经有较多的论述,我不多说了。属性就是对象必须要存贮的信息,而类的操作,则可以通过顺序图中向对象发送的消息来识别。我们重点看一看类之间的关联。
系统的静态结构主要用类图来表示。在类图中,类用一个方框来表示,这个方框用横线分为三个部分,第一部分是类的名字,第二部分是类的属性,第三部分是类的操作。类之间的关联用一条连接类方框的横线来表示。一端有箭头的的横线表示单向关联,没有箭头的表示双向关联。对类之间关联的良好分析对以后的实现和扩充都有非常大的帮助。
逻辑上相关的类可以被封装成包,这为我们组织和管理所开发的系统以及开发过程提供了一个很好的手段。大家在我们这个例子的类图上可以看到几个包。
文章来源于领测软件测试网 https://www.ltesting.net/