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.
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
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.
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ı.
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
Diyagram üzerinde veya öğe için kısayol menüsünü aç uml Model Gezginive sonra özelliklerini.
İç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
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.
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
İç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.
İç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.
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.
İ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
{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
{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\
İ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.
Metin şablonu bir prototip elde edilen dosyanın olduğu ve elde edilen metin hem de modeli okuyan program kodunu içerir.Daha fazla bilgi için bkz. Kod oluşturma ve T4 metin şablonları.
Program kodundaki uml Modelde Gezinme için uml API kullanmak zorunda.Daha fazla bilgi için, bkz. UML Modeli Nasıl Gezilir ve UML Genişletilebilirlik Modellemesi için API Başvurusu.
Ş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:
Elementuml = IElement için hangi şablonu uygulanmakta.
Errors: CompilerErrorCollection
ModelBus: ModelBus.Daha fazla bilgi için bkz. UML Modelleri Diğer Modeller ve Araçlarla ile Nasıl Tümleştirilir.
ProfileName"#Profile" c"=
ServiceProvider: IServiceProvider
Session: TextTemplatingSession.
Store: Store.Görselleştirme ve modelleme sdk üzerinde uml ModelStore uygulandığı deposu budur.uml elde etmek için IModelStore, kullanın this.Element.GetModelStore().
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