使用 UML 对系统进行建模 面向对象的软件工程,同传统的面向过程的软件工程相比,在需求的获取、系统分析、设计和实现方面都有着很大的区别。UML 是 OOA 和 OOD 的常用工具。使用 UML 来构建软件的面向对象的软件工程的过程,就是一个对系统进行不断精化的建模的过程。这些模型包括用例模型、分析模型、设计模型,然后,我们需要使用具体的计算机语言来建立系统的实现模型。当然,在整个软件工程中,我们还需要建立系统的测试模型,以保证软件产品的质量。 使用面向对象的工具来构建系统,就应该使用面向对象的软件工程方法。然我,我们经常会发现,在实际的开发过程中,很多开发人员虽然能够理解 UML 的所有图形,却仍然不能得心应手的使用 UML 来构建整个项目,其很大的原因,是仍然在使用原有的软件工程方法,而不清楚如何使用 UML 来建立系统的这些模型,不清楚分析和设计的区别,以及他们之间的转化。 应用软件系统,就其本质来说,是使用计算机对现实世界进行的数字化模拟。应用软件的制造过程,按照UML 的方法,就是建立这一些列模型的过程。本文将就一个图书馆系统,说明如何使用 UML 来对系统进行这一系列的建模。 关于这个图书馆系统,基本的需求比较简单,就是允许学生可以在图书馆借阅和归还图书,另外,也可以通过网络或者图书馆的终端来查阅和预订书。当然,图书馆管理员也可以对图书进行管理。为了简化系统,我们没有把图书馆中的人员作细分。 之所以采用这个相对简单案例,是因为很多人都对图书馆系统有很强的感性认识,这样,读者不需要花很多的时间来理解系统包含的业务知识。同时,也因为本文只是对使用 UML的过程做一个探讨,着眼于使用 UML 进行建模的过程,说明各个层次的模型之间的区别和联系,展示系统演进的过程,而不会深入UML 的细节方面。对于更加复杂的系统,其分析和设计的方法是相通的,可以举一反三。 用例模型——系统需求的获取 用例模型定义系统做什么,是用来获取系统需求的有效手段。用例模型由“角色”和“用例”组成。我们在构建一个用例的时候,通常要做的第一件事情是识别角色,或者说,参与者。然后我们我们需要识别系统为参与者提供的服务,或者说,参与者的行为,也就是用例。最后,我们确定角色和用例之间的关系。在这个图书馆系统中,我们可以识别出的角色有学生和图书管理员。整个用例模型包含的用例有:借书、还书、查阅图书、预订图书,以及图书维护。用例模型可以...