2015-12-12 88 views
0

我有一個叫做fileInfo.cpp的類,它包含了私有變量,一個公共構造函數,一個用變量做一些操作的公共方法,以及一些公共的getVariableX(){return variableX;}方法。這裏是.h文件:爲類和主類創建UML類圖? C++

class fileInfo{ 

private: 

    string fileName; 
    string fileType; 
    int sampleRate; 
    int bitRes; 
    int channels; 

public: 

    fileInfo(string s); 
    int pullValues(); 
    std::vector<std::string> readSamples(); 
    int getSampleRate(); 
    int getBitRes(); 
    int getChannels(); 
}; 

我有三個不同的主要類/程序,每個訪問此fileInfo類。例如說我有一些程序叫做runthis.cpp

#include... 

void concatFiles(string,string); 

main(...){ 
    concatFiles("this.txt","this2.txt"); 
} 

void concatFiles(string file1,string file2){ 
    fileInfo f = fileInfo(file1);    //Here I access the fileInfo class 
    int isSuccessful = f.pullValues(); 
    //todo 
} 

我該如何在UML圖中顯示這種關係?我會使用類圖,用例圖嗎?

回答

3

從這個角度來看,這取決於如此多的情況。你可以在這裏區分兩個主要觀點。第一個是純靜態類層次結構視圖,第二個是部署視圖。

類層次結構: 你不會從這裏,而是一個結構看任何文件。包含通常意味着您將使用另一個類來實現某些功能(在具體情況下,h-文件代表類的公共接口)。最弱的代表就是依賴。

enter image description here

但最常見的是使用的關聯,顯示在其他一些實際使用的一類的。這通常伴隨着另一端的角色(即某個實例變量或屬性的名稱)。

enter image description here

還有很多更可以與各協會表示,但未必適合這個答案。

部署視圖:這是一種不太常用的用法,但有時您會因爲某種原因執行此操作。在這裏您可以看到單個文件。但不是類,你會使用工件和(定型)依賴關係。

enter image description here

相反,<<use>>你可能寫<<include>>的。