Aracılığıyla paylaş


Nasıl Yapılır: UML Sınıf Diyagramlarından Kod Üretme

İçinde Visual Studio Ultimate kullanarak kod uml sınıf diyagramlar oluşturabilirsiniz Kod Üret komutu. Varsayılan olarak, komut, bir C# türü için seçtiğiniz her uml türü oluşturur.Değiştirebilir ve bu davranış değiştirme veya kod üreten metin şablonları kopyalama genişletir.Modelinizi farklı paketlerde bulunan türleri için farklı davranışını belirtebilirsiniz.

Kod Üret komutu kullanıcının öğeleri seçimden kod oluşturma ve her uml sınıf veya diğer öğe için bir dosya oluşturmak için özellikle uygun.Örneğin, ekran görüntüsü iki uml sınıflardan oluşturulmuş olan iki C# dosyalarını gösterir.

Kod içinde oluşturulan dosyalar gerekmez uml öğeler ile 1: 1 ilişki oluşturmak istiyorsanız, alternatif olarak, metin şablonları ile çağırılan yazma düşünebilirsiniz Tüm Şablonları Dönüştür komutu.Bu yöntem hakkında daha fazla bilgi için bkz: Bir UML Modeli'nden Dosyalar Nasıl Oluşturulur.

UML sınıf diyagramı ve oluşturulan C# sınıf dosyaları.

Sınıf diyagramları uml hakkında daha fazla bilgi için Visual Studio Ultimate, aşağıdaki konulara bakın:

Kod Oluştur komutuyla

Aşağıdaki yordam varsayılan davranışını açıklar Kod Üret komut:

Her öğe için ayrı bir dosya oluşturmak için

  1. Sınıfları içeren bir uml modeli oluşturun.Stereotipler model öğelerine uygulamak isteyebilirsiniz.

    Daha fazla bilgi için bkz: Varsayılan kod üretimi dönüştüren.

  2. Sınıf diyagramında veya uml Model Gezgini'nde, kod oluşturmak istediğiniz öğeleri seçin.Aşağıdakilerden birini seçebilirsiniz:

    • Öğeleri belirli bir kümesi.

    • Bir paketin veya onun içeriğini kod oluşturmak için model.

    • Diyagram üzerindeki öğeleri seçmek için diyagramı.

  3. Seçili öğe için kısayol menüsünü açın ve sonra seçin Kod Üret.

    Kullandığınız ilk kez Kod Üret belirli bir modelde, bir iletişim kutusu görüntülenir.Bu iletişim kutusu kod üretme parametreleri modelinin düzenlemenizi sağlar.

    Seçim Tamam bu parametreleri değiştirmek istediğinizi bilmiyorsanız.

    Daha sonra bu iletişim kutusuna dönmek için Diyagram için kısayol menüsünü açın ve sonra seçin Varsayılan kod oluşturma ayarları yapılandırmak.Daha fazla bilgi için bkz: Kod Oluştur komutunu özelleştirme.

C# kodu içeren dosyaları oluşturulur.Varsayılan durumda, her tür için bir dosya oluşturulur ve dosyaları bir C# sınıf kitaplığı projesi oluşturulur.Ancak, bu davranışı özelleştirebilirsiniz.Daha fazla bilgi için bkz: Kod Oluştur komutunu özelleştirme.

Bazı doğrulama sınamaları, C# çevrilebilir olduğunu emin olmak için modeli uygulanır.Bu testler başarısız olursa bir hata iletisi görüntülenir ve kod oluşturma gerçekleştirilemiyor.Doğrulama menü komutu oluşturduysanız, kod doğrulama komutu başarısız olduğu için herhangi bir öğe için oluşturulmaz.Daha fazla bilgi için bkz. UML Modelleri için Doğrulama Kısıtlamaları Nasıl Tanımlanır.

Varsayılan kod üretimi dönüşümler

Bu bölüm tarafından üretilen sonuçlarını özetler Kod Üret komutunu komut değiştirmedikçe.Daha fazla bilgi için bkz: Kod Oluştur komutunu özelleştirme.

  • Bir C# türü uml model içinde seçtiğiniz her türü için oluşturulur.Her tür altında ayrı kod dosyası yerleştirilir GeneratedCode klasör.

  • uml türü bir paket içinde bulunan, bir ad alanı içinde oluşturulan C# tür yerleştirilir ve dosya bir klasörde oluşturulur, ad alanı ile aynı ada sahiptir.

  • Bir C# özelliği her biri için oluşturulan Attribute bir uml sınıfı.

  • Bir C# yöntemi her biri için oluşturulan Operation uml türü.

  • Bir C# alan gezilebilir her ilişki sınıfı içinde yer aldığı için oluşturulur.

Bir stereotipi her uml türü ekleyerek oluşturulan C# türünün özelliklerini daha fazla kontrol edebilirsiniz.

Bu C# türü oluşturmak için

Bu uml türü çizmek

Bu Klişe Uygula

Sınıf

Sınıf

<none> veya

C# sınıfı

Arabirim

Arabirim

<none> veya

C# arabirimi

Sabit Listesi

Sabit Listesi

<none> veya

C# enum

Temsilci

Sınıf

C# temsilci

Yapı

Sınıf

C# struct

Bir tür veya başka bir öğenin bir stereotip ayarlamak için

  1. Diyagram üzerinde veya öğe için kısayol menüsünü aç uml Model Gezginive sonra özelliklerini.

  2. İçinde özelliklerini penceresinde yer alan aşağı açılan oku seçin Stereotipler özelliğini ve sonra uygulamak istediğiniz stereotip için onay kutusunu seçin.

    İpucuİpucu

    C# stereotip görünmezse, C# profili içinde ilgilendiğiniz model öğeleri içeren bir paket veya model için etkinleştirin.Paket veya model içinde kök seçin uml Model Gezgini'ndeözelliklerini penceresinde seçin Profilve C# profili etkinleştirin.

  3. Genişletme Stereotipler özelliği ayarlayabileceğiniz ek özellikleri görmek için.

Açıklama türleri, öznitelikler, işlemler ve ilişkileri özelliklerini yazılır <summary> oluşturulan kod içinde yorum.Yorum öğeleri türlerine bağlı yazılır <remarks> yorumlar.

Oluşturulan kod değişen

Oluşturulan kod, her tür, özniteliğe veya işleme özelliklerini bağımlı değişir.Örneğin, ayarladığınız Is Abstract özelliği true olarak bir sınıfın sonra abstract anahtar sözcüğünü bir oluşturulmuş sınıf üzerinde görünür.Ayarlarsanız çeşitlilik bir öznitelik için 0... *, sonra oluşturulan özelliğine sahip bir IEnumerable<> türü.

Ayrıca, her stereotip ayarlayabileceğiniz çeşitli ek özellikler sağlar.Bu değerler, C# kodunda uygun anahtar sözcükler için çevrilir.Örneğin özelliğini ayarlarsanız, Is Static bir sınıf üzerinde daha sonra C# sınıfı olacaktır static.

Bu ek özellikleri ayarlamak için diyagramdaki sınıf veya diğer öğe seçin.Özellikler penceresinde genişletin Stereotiplerve C# stereotip, gibi genişletin C# sınıfı.Sınıfları için bu ek özellikler şunlardır:

  • clr öznitelikleri

  • Is Partial

  • Is Static (Statik Mi)

  • Is Unsafe

  • Paket görünürlüğü

Her öznitelik ve işlem ayarlayabileceğiniz stereotip özelliklerine de sahip.Üzerinde yeni bir öznitelik özelliklerini görmüyorsanız, çalıştırma Kod Üret.

Kod Oluştur komutu özelleştirme

Kod Üret works, model öğelere metin şablonları kümesi kullanılarak dönüştürerek komutu.Metin şablonları hakkında daha fazla bilgi için bkz: Kod oluşturma ve T4 metin şablonları.

Şablonlar kümesinde belirtilen metin şablon bağlarını.Metin şablonu bağlama üretilen çıktıyı nereye yerleştirileceğini, hangi şablonun uygulanacağını ve diğer parametreleri belirtir Kod Üret komutu.

İlk kez çalıştırdığınızda Kod Üret komutu belirli bir model üzerinde modelinin kök dizinine yeniden iliştirir şablon bağlarını varsayılan kümesi.Bu bağlamaların modelinde tüm öğelere uygulanır.

Ancak, geçersiz kılmak ve paketler, sınıfları veya diğer öğeler için kendi bağlantıları ekleyerek bu varsayılan bağlamaları ekleyin.Bağlama, bağlı olduğu öğe içinde bulunan tüm öğelere uygulanır.Örneğin, tüm türleri belirli bir paket içinde şablonları farklı bir kümesi dönüştürüleceğini veya farklı bir klasöre çıkış olmasını istiyorsanız, şablon bağlarını pakete ekleyebilirsiniz.

Bir model öğesine iliştirilmiş şablon bağlarını incelemek için üç noktayı seçin [...] , Metin şablon bağlarını özellik Properties penceresinde.

Kod Üret komut şablonları, seçmiş olduğunuz her model öğesine uygulanır.Her öğe için uygulanan şablonları kümesi birleştirilmiş alt kapsayıcılar için en çok ekli şablonlar ve modelinin kök kümesidir.

Bu iki şablon bağlarını aynı ada sahipse, bağlama daha küçük kapta büyük kapsayıcısında bağlamayı geçersiz kılar.Örneğin, bir bağlama adı ile model kökü vardır Class Template.Adı olan kendi şablon bağlama tanımlamak için belirli bir paketin içeriğine uygulanan kendi şablonuna sahip olmak Class Template.

Bir model öğesine birden fazla şablon uygulanabilir.Her model öğesinden birden fazla dosya oluşturabilirsiniz.

[!NOT]

Modeldeki tüm öğeleri için varsayılan ayarları modeli köke bağlı bağlamaları görür.Bu varsayılan bağlamalarını görmek için Diyagram yüzeyine kısayol menüsünü açın ve sonra seçin Varsayılan kod oluşturma ayarları yapılandırmak.Alternatif olarak, modelinin kök uml Model Gezgini'nde seçebilir ve sonra seçin [...] , Metin şablon bağlarını özelliği.Bağları, kullandığınız kadar görünmez Kod Üret komut, en az bir kez.Şablon bağlarını bir diyagramına eklenemez.

Bir paket veya model öğesinin diğer metin şablon bağlarını eklemek için

  1. İçinde uml Model Gezgini'nde, model öğe için kısayol menüsünü açın ve sonra seçin özelliklerini.Genellikle, metin şablon bağlarını bir paket veya model kökü eklemek.

  2. İçinde özelliklerini penceresinde üç nokta düğmesini seçin ([...]), Metin şablon bağlarını özelliği.

    Metin şablon bağlarını iletişim kutusu görüntülenir.

  3. Seçim Ekle yeni bir metin şablon bağlama oluşturmak için.

    - veya -

    Varolan bir bağlama düzenlemek için seçin.

    Her şablon bağlamada belirtilen şablonu seçtiğiniz model öğe ve içerdiği diğer model öğeleri nasıl uygulanması gereken tanımlar.

  4. İletişim kutusunda metin şablonu bağlama özelliklerini ayarlayın.

    Özellik

    Tanımlama

    Ad

    Bu bağlama için bir ad.Bir paket veya model devralınan bir bağlama geçersiz kılmak için geçersiz kılmak istediğiniz bağlama olarak aynı adı kullanın.

    Üzerine yaz

    TRUE ise, varolan herhangi bir kod yazılır.

    Hedef Adı

    Oluşturulan dosyanın adıdır.

    Bu dizeye aşağıdaki gibi ifadeler ekleyebilirsiniz {Name} veya {Owner.Name}.Örneğin, yazabilirsiniz: {Owner.Name}_{Name}.Model öğe üzerinde ifade değerlendirilir.Bu öğeleri, ancak değil yöntemleri özelliklerini kullanabilirsiniz.Hangi özelliklerin kullanılabilir bulmak için türlerin özellikleri bakın Microsoft.VisualStudio.Uml.*.

    Önemli notÖnemli
    {Name} veya {Owner.Name} yalnızca kullanılabilir Hedef adı özelliği.Üretilen sınıfın adını değiştirmek için şablonu değiştirmek zorunda.Daha fazla bilgi için bkz: Metin şablonu yazma.

    Proje yolu

    Yolunu belirtir Visual Studio dosyaları dönüştürme içeren projenin çýktýsýný.Girilen değerleri yeni bir proje oluşturmak için kullanın.Üç nokta düğmesini seçin ([...]) varolan bir proje seçin.

    Yoksa, yeni bir proje oluşturulur.Bu bir C# sınıf kitaplığı projesi olacaktır.

    Bunu yapmak için projeyi doğrudan yazmanız gerekir.% ProgramFiles % veya % LocalAppData % gibi ortam değişken makrolar içerebilir.

    Hedef Dizin

    Hedef dosya oluşturulduğu klasör.Yol göreli olarak proje klasörüdür.

    Kullanabileceğiniz {PackageStructure} adlarını içeren paketler için karşılık gelen bir yol eklemek için ifade.\GeneratedCode\{PackageStructure} varsayılan değerdir.% temp % veya % HomePath % gibi ortam değişkenlerini de ekleyebilirsiniz.

    Önemli notÖnemli
    {PackageStructure} yalnızca kullanılabilir Hedef dizin özelliği.

    Şablon dosyası yolu

    Dönüştürme işlemini gerçekleştirmek kullanılacak şablon.

    Sağlanan şablonları kullanın veya kendinizinkini oluşturabilirsiniz.Sağlanan şablonlar aşağıdaki konumda bulabilirsiniz:

    ...\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Architecture Tools\Extensibility\Templates\Text\

  5. İstediğiniz sayıda bağlamaları bir öğeye ekleyebilirsiniz.

Metin şablonu yazma

Kendi metin şablonları yazabilirsiniz.Metin şablonları program kodu veya başka türde bir metin dosyası oluşturabilirsiniz.

Standart şablonların kopyalarını değiştirerek başlatmak önerilir.Şablonları aşağıdaki konumlardan kopyalayabilirsiniz:

...\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Architecture Tools\Extensibility\Templates\Text\

Metin şablonları anlamak için aşağıdaki konulara bakın.

Şablonlar ile kullanmak için Kod Üret komutunu modelleme yönergesi dahil etmelisiniz.Örne?in:

<#@ Modeling ElementType="Microsoft.VisualStudio.Uml.Classes.IClass" Processor="ModelingProcessor" #>

ElementType Özniteliği bu şablonu geçerli olduğu bir uml öğesi türünü tanımlar.

Şablonda, this aşağıdaki özelliklere sahip geçici bir sınıfa ait:

Metin şablonu yazarken aşağıdaki hususları yararlı bulabilirsiniz.Bu bilgiler ayrıntılı olarak açıklanan Kod oluşturma ve T4 metin şablonları.

  • Dosya adı uzantısı sonucunun ayarlayabilirsiniz Output yönergesi.Bir Output yönergesi her metin şablonu içinde gerekli.

  • Bazı derlemeleri şablon tarafından otomatik olarak başvurulur.Bu derlemeler, örneğin, System.dll ve Microsoft.VisualStudio.Uml.Interfaces.dll içerir.

    Diğer derlemeler oluşturma program kodunuzu kullanmak için kullanmanız gerekir bir Assembly yönergesi.Örne?in:

    <#@ Assembly Name="%ProgramFiles%\Microsoft Visual Studio 11.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.ArchitectureTools.Extensibility.dll" #>

  • Bazı ad alanları gibi System program kodunu otomatik olarak içe aktarılır.Diğer ad için kullanabileceğiniz Import yönergesini kullandığınız aynı şekilde bir using ifadesi.Örne?in:

    <#@ Import Namespace="Microsoft.VisualStudio.Uml.Classes" #>

    <#@ Import Namespace="Microsoft.VisualStudio.ArchitectureTools.Extensibility.Uml" #>

  • Kullanım Include yönerge metnini başka bir dosyaya başvurmak için.

  • Parantezler içinde şablon parçalarının <# ... #> tarafından yürütülen Kod Üret komutu.Şablon dışında bu köşeli ayraç parçalarını sonuç dosyasına kopyalanır.Şablonunuzda kod oluşturmaya ve oluşturulan metin arasında ayrım yapmak önemlidir.Oluşturulan metin herhangi bir dilde olabilir.

  • <#= Expressions #>değerlendirilen ve dizelere dönüştürülür.

Ayrıca bkz.

Kavramlar

UML Sınıf Diyagramları: Başvuru

UML Sınıf Diyagramları: Yönergeler

Bir UML Modeli'nden Dosyalar Nasıl Oluşturulur