Uml 类图java应用程序
编程语言:java。类图的问题 给定一个名为Bridge的类,以下表示是否正确 我关心的是如何处理声明,例如: 专用信号量 这是属性/方法声明:Uml 类图java应用程序,uml,Uml,编程语言:java。类图的问题 给定一个名为Bridge的类,以下表示是否正确 我关心的是如何处理声明,例如: 专用信号量 这是属性/方法声明: public class Bridge { private Semaphore semaphore; private Lock lock: private Condition waitingCond; private int nNorthCars; ....... public void getIn(int di
public class Bridge {
private Semaphore semaphore;
private Lock lock:
private Condition waitingCond;
private int nNorthCars; .......
public void getIn(int direction) throws InterruptedException{
.....
The same goes for getOut()....
}
UML表示:
---------------------
Bridge
---------------------
- semaphore: Semaphore
- lock: Lock
- waitingCond: Condition
- nNorthCars: int
- nSouthCars: int
---------------------
+ getIn(): void
+ getOut(): void
---------------------
此外,考虑到主函数中的变量应该是局部变量,我认为它们应该被视为私有变量,这对吗?
例如:
public static void main(String[] args) {
...........
int nThreads = Integer.parseInt(args[0]);
long time = 0;
...}
以下是UML实现:
---------------------
Main
---------------------
- nThreads: int
- time: long
---------------------
+ main()
---------------------
符号:-(私人),+(公共)
我们将非常感谢您的帮助
谢谢一般来说,UML是实现/语言不可知的-当阅读UML图时,你不应该知道或关心它是用什么语言实现的。此外,类图是用来表示(或建模)领域问题的类型/类/概念及其关系的。因此,您不应该担心方法中的局部变量,因为这既是一个实现细节,也与其他类或概念的关系无关 似乎您正试图使用UML对Java程序进行建模(或逆向工程),并且希望将程序中的每个变量都作为类图的一部分包含在内。这不是你应该采取的方法
SemaPhore
、lock
和waitingCondition
都是实现细节,并不传递任何有关Bridge
的行为或Bridge
与其他类的关系的有用信息nNorthCars
和nOuthCars
是私有的-在您的模型中,将它们公开为公共属性有意义吗?模型中的其他类/概念需要了解这些吗?如果对这些问题没有回答,那么您也可以从类图中删除这些问题。如果您要在活动图中对某种桥接方法进行建模,可能需要保留它们。Bridge可能希望在UML中看起来像这样:
---------------------
Bridge
---------------------
---------------------
+ getIn(): void
+ getOut(): void
---------------------
如果Bridge与其他东西(可能是一组汽车)有关系,那么您可以对其进行建模,因为这种关系对外在您的模型中的其他概念可见
Main
看起来像是您的程序入口点,同样,可能不需要对其进行建模。如果Main
聚合了所有其他(或大多数其他)类/概念,则继续进行建模,否则它将成为一个实现细节
最后,UML实际上是用来对概念进行建模,然后在代码中实现这些概念。看起来你正在做与此相反的事情。在某种程度上,反向工程和往返是可以的,但要小心,否则您最终会侵入UML并从中生成代码。UML的思想是在剪切代码之前对您的领域建模并验证此模型
希望这有助于