实际问题,请协助分析。oo新手请教

功能描述:用户输入凭证号区间,从业务系统数据中查询符合条件的凭证。程序验证每个凭证的合法性(借贷平衡,客户名称是否在用友数据库中),对不合法项目进行提示。然后,用户可以选择是否将正确的凭证存储到文本文件中供用友系统导入
注意:
每个凭证是由多个条目组成的。
一次处理多个凭证。
业务系统与用友系统分别存储于不同数据库中。

请问应该设计几个class,每个class的职责如何?

我自己的的想法,请各位高手帮助分析。两个data provider类,提供两个系统的数据库访问。业务层VoucherItem和Voucher两个class分别代表凭证和凭证中的一个条目。Voucher负责校验工作。VoucherManager负责打印和查询

这个问题可大了,首先分析出Domain Object有几个,然后写出顺序图。