How do I formally document a C# Attribute in UML?

2019-07-21 09:44发布

What is the proper way to document a C# Attribute on a class in a UML class diagram?

2条回答
男人必须洒脱
2楼-- · 2019-07-21 10:21

I don't know if this is "standard", except that it uses a standard feature from UML:

Sparx Enterprise Architect, when reverse-engineering, for instance, a unit test class, uses tagged values for the attributes. A tagged value "Attribute" on the class, has the name of the attribute as a value, for instance, "[TestClass]". Similarly, "Attribute = [TestMethod]" is placed on the methods. An example would be:

[TestClass]
public class MyTests
{
    [TestMethod]
    public void DoSomeTest()
    {
    }
}

In this example, [TestClass] and [TestMethod] are .NET attributes (not UML attributes). They are short for [TestClassAttribute] and [TestMethodAttribute]. Both are classes deriving from the System.Attribute class.

An attribute simply adds metadata to the assembly. By itself, it has no runtime behavior.

查看更多
爷的心禁止访问
3楼-- · 2019-07-21 10:38

I haven't decided if this is my answer, but I figured I'd throw it out there for sake of discussion. Does this look acceptable?

alt text

Its an instance of the attribute type with the metadata values put into tagged values below. I just figured out how to add custom stereo types. The arrow is just a dependency arrow that is labeled as "applies".

查看更多
登录 后发表回答