有人可以告诉我我是否尝试过针对这种情况使用用例图正确吗?

Can someone tell me if I tried Use Case Diagram Correct for this scenario?

我有一个场景,我必须为其设计用例图、activity 图和 class 图:

“I run a small computer consultancy firm with a number of employees. Along with the basic information about the employees (name, DoB, contact details, etc.) I need to be able to keep track of what type of role they perform, such as Hardware Technician, Programmer, and Software Installer. A single employee can perform multiple roles, and each role has an associated hourly pay. I need to keep name and contact details of all customers that have a contract with us. A customer can have multiple contracts at the same time, but each contract is only associated with one customer. Each contract has a name, a description, a creation date, and a job type – e.g. System Development, Software Upgrade. No details of job types need to be captured other than their name. Each contract also has a single employee designated as the project leader. One employee may be the project leader of multiple contracts.”

我尝试画了一个用例图,我想知道我是否画对了,是否有错误或需要改进的地方:

让我们分析您的需求,以确定用例:

  • 管理员工

    I run a small computer consultancy firm with a number of employees. Along with the basic information about the employees (name, DoB, contact details, etc.) I need to be able to keep track of what type of role they perform, such as Hardware Technician, Programmer, and Software Installer. A single employee can perform multiple roles, and each role has an associated hourly pay.

  • 管理客户数据(可能包含在合同管理中)

    I need to keep name and contact details of all customers that have a contract with us.

  • 管理合同

    A customer can have multiple contracts at the same time, but each contract is only associated with one customer. Each contract has a name, a description, a creation date, and a job type – e.g. System Development, Software Upgrade. No details of job types need to be captured other than their name.

  • 指派项目负责人(可能包含在合同管理中)

    Each contract also has a single employee designated as the project leader. One employee may be the project leader of multiple contracts.”

现在,这些句子背后可能隐藏着更多的用例,可以推导出来。但是,让我们仔细看看您确定的其他人是否合适。

以下内容乍一看还不错:

  • Make contract(比manage contract更精确。另一方面,合同修改和终止呢?)
  • 提供联系方式管理合同的一部分)
  • 保留客户详细信息(类似于管理客户数据)但谁是所有者?
  • 指派项目负责人(见上文)
  • 分配其他成员(优秀:没有明确提及,但如果员工分配到角色和小时工资,那肯定是因为分配他们到项目是相关的)
  • 将员工分配到项目(参见前面的项目符号)

以下用例有问题:

  • 接受合同:合同的所有者(它是谁:客户?领导?s.O。其他?)真的会在系统中接受它吗?
  • 执行角色:这里是否暗示员工将使用系统来执行他们的角色?或者他们只是为项目注册一些时间?或者他们根本不与系统交互?
  • 按小时计酬(同样的问题)
  • 领导项目:项目负责人会与系统互动来领导项目吗?或者 he/she 只是出于行政责任的目的注册为领导者?

最后,其中一些要求超出了(面向目标的)用例,描述了 class 模型。不要被这个困住:用例应该关注参与者与系统的交互。