2015-12-12 54 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>>的。