단일 스레드 응용 프로그램의 경우 클래스 다이어그램을 사용하여 해당 응용 프로그램의 아키텍처 개요를 얻고 싶습니다. 그러나이 유형의 다이어그램은 예를 들어 다른 스레드에서 "라이브"클래스의 다른 인스턴스 (인스턴스 액세스가 하나의 인스턴스에서만 저장 됨)로 인해 다중 스레드 / 동시 응용 프로그램을 이해하려고 할 때 크게 도움이되지 않았습니다. 그것이 사는 스레드). 따라서 클래스 간의 연결이 반드시 해당 객체에서 메서드를 호출 할 수있는 것은 아니지만 대신 대상 객체의 스레드에서 해당 호출을 수행해야합니다.
Hassan Gomaa의 UML을 사용 하여 동시, 분산 및 실시간 응용 프로그램 설계 와 같은 주제에 대해 찾은 대부분의 문헌에는 스레드 경계를 객체 다이어그램에 그리는 것과 같은 멋진 아이디어가 있었지만 전반적으로 너무 학문적이고 장황한 것처럼 보였습니다. 정말 유용합니다.
이 다이어그램을 문제 영역에 대한 높은 수준의 관점으로 사용하고 싶지 않고 클래스 / 객체에 대한 자세한 설명, 상호 작용 및 위에서 언급 한 스레드 경계로 인한 제한 사항으로 사용하고 싶습니다.
그러므로 알고 싶습니다 :
- 멀티 스레드 응용 프로그램을 이해하는 데 가장 도움이되는 다이어그램 유형은 무엇입니까?
- 멀티 스레드 응용 프로그램의 특성을 고려하여 클래식 UML에 대한 확장 기능이 있습니까 (예 :
- 어떤 개체는 특정 스레드에있을 수 있지만 다른 개체에는 스레드 선호도가 없습니다.
- 객체의 일부 필드는 모든 스레드에서 읽을 수 있지만 하나의 스레드에서만 쓸 수 있습니다.
- 일부 메소드는 동기식이며 결과를 리턴하는 반면, 다른 메소드는 비동기식으로 요청을 대기시키고 예를 들어 다른 스레드의 콜백을 통해 결과를 리턴하는 비동기식입니다.