图104书务系统数据表清单 图10.5“T图书”的数据表结构 图106“T图书类别”的数据表结构 6
图107“T出版社”的数据表结构 由业务对象模型转换为数据库的具体方法可以参考 Rational rose的相关资料。如果利用 其他的工具,需要使用相应的方法生成数据库。信息系统的大量业务操作都要访问数据库, 数据库结构不应轻易变动。数据库结构中的属性名、类型、长度、关联和约束的任何一个发 生变动,都会影响到多个业务功能。所以在数据库变动之前,应该对数据库的变动进行认真 评估。尤其在已经开始编写代码之后,改变数据库结构应慎之又慎。 2)实体类的实现 实体类是组成系统的基本要素。在详细设计阶段,对实体类的属性、操作和关系都做了 详细的设计,确定了属性的全部内容,包括属性名、可视性、范围、类型、初始值等:并明 确了操作的算法、流程和处理的数据。 在使用面向对象语言的开发过程中,实体类的实现,也就是编写类的程序。 Rational rose 2003支持java、C艹+、VB等语言的双向工程,可以将设计完整的实体类直接通过正向工程 转变成为设定语言的代码框架。图10.8中的代码是将图917中的“图书”类生成的ja部 分代码框架。 //Source file: D:\Java\\book java public class book private String bouk\ private String ISB\ private String name private String author private Date publ ishdate private Integer printOrder private Double price public book Type thebook'Type public publ ishing Company thepubl i shingCopany
public book O) s Access method for the book \o property. return the current value of the book No * Sets the value of the book\o property. param aBook No the new va lue of the book \o proper blic void setBouk \o (java. l ang String abook \o book\o= aBook \o /s* Access method for the I SB\ property. ereturn the current value of the ISBN property java. lang String get I SHVO i return ISBV: I Sets the value of the ISB\ property. param al SBV the new value of the ISEN property public void setISH\(java. lang String al SB) Access method for the name property. ereturn the current value of the name propert I ang. S Sets the value of the name property. param aName the new value of the name propert public void set\ae(java. lang String ava iname= a\ame x Access ethod for the author property. Return the current value of the author property tblic java. l ang String getAuthor O I return authur 图10.8图书类的java代码框架
从图10.8的代码框架可以看出,Rose会自动把实体类的属性完全转变成了对应的代码, 并为每一个操作生成了代码框架,程序员只需要根据设计文档,编写实现各操作的程序代码 利用建模工具可以大大减少程序员手工编程的工作量。实体类的编程工作其实仅羢是编写实 体类中各个操作的程序代码。在设计模型和设计文档中,已经明确定义了每一个实体类操作 的输入输出,以及它要完成的功能和程序逻辑,程序员根据设计文档,在代码框架的基础上, 完成实体类操作的程序编写 由建模工具生成了所有实体类和控制类的代码框架,能够保证代码框架与设计模型的 致性和完整性,同时也可以保证在没有编写代码之前就可以根据需求文档、设计文档和代码 框架编写代码的测试用例,提前展开测试工作。 3)控制类的实现 控制类是对一个用例功能进行有效管理的中心控制单元,一个系统的业务逻辑全部由控 制类中的操作来实现。控制类一般没有属性,仅有操作。在详细设计阶段,进行了详绀的功 能逻辑设计,每—个功能逻辑的实现均需要控制类进行集中管理。在建立的功能逻辑模型中, 详细设计了控制类的操作。借用 Rational rose可以生成控制类的代码框架,并在生成的代码 框架中自动引入了相关联的包和类。图109是在售书管理中,生成的控制类“售书管理器” 的java程序代码框架。 //Source file: D: \Java\\sellBookMgr, java /*定义销售图书管理器类: sellbookMgr*/ public class sel lBookMgr /*定义构造函数*/ public sellBookMgrO /*获取图书信息*/ public Void getBook Info(book book return nu /*获取销售数量*/ public Integer getbookNum(int number) return nu /*产生待售图书* public boolean createWaitingSellbookO I return true:
//Source file: D: \\Java\\sel lBookMgr, java /*会员处理* public Void memberDealO i return null /a @roseuid 4544BC7AO1IC public double discount O return /*售出图书* public boolean sellbook( i return true public Void printSellNotes O I return null 图10.9售书管理器的java代码框架 4)界面类的实现 畀面是人机交互的主要途径。其主要功能是接收用户输入,激发界面事件请求,并向用 户展现处理结果。目前界面主要有CS模式的 Windows窗体形式,以及BS模式的Web网 页两种形式。在详细设计阶段,已经对界面结构、布局风格、对话,以及各种类型的界面进 行了详细设计。借用集成开发环境,已经不需要程序员手工编写界面类程序,而是采用集成 开发环境提供的界面生成工具,可以很方便地生成系统所需要的界面类。 界面类不承担任何业务处理工作,系统中所有的业务处理和事务处理完全由控制类或实 体类完成。界面类仅承担接收用户输入的数据,并对接收的数据进行合法性检査,把有效数 据提交给系统中的控制类或实体类来处理。界面类也需要接收用户的操作请求,启动相应的 功能操作,并将操作处理的结果向通过界面展现给用户。信息系统通过界面向用户展现系统 的功能和效用,因此美观、友好,并容易使用的界面对系统至关重要。 5)组件与分包 分包是把多个类以及程序要素归放在一个程序组织单元中的工作。在NET中,可以将 在功能上相关的几个Cass归放在一个命名空间( namespace)中,在java环境中,将不同的 Cas放在相应的包( package)中,命名空间和包就是程序的组织单元。分包得到的程序组 10