Kullanıcı Gereksinimlerini Modelleme
Microsoft Visual Studio Ultimate etkinlikler ve sistemin hedefe ulaşmakta oynadığı bölüm hakkında diyagramlar çizerek kullanıcıların gereksinimlerini anlamanıza, tartışmanıza ve ifade etmenize yardımcı olur.Gereksinimler modeli her biri kullanıcıların ihtiyaçlarına farklı açılardan odaklanan diyagramlar kümesidir.
Video bir örnek için bkz: modelleme iş etki alanı.
Gereksinimler modeli şunlara yardımcı olur:
Sistemin iç tasarımından ayrı olarak dış özelliklerine odaklanır.
Kullanıcıların ve hissedarların gereksinimlerini doğal dilde yapabileceğinizden daha az belirsizlikle tanımlar.
Kullanıcılar, geliştiriciler ve sınayıcılar tarafından kullanılabilecek uyumlu bir terimler sözlüğü tanımlar.
Gereksinimlerdeki boşlukları ve tutarsızlıkları azaltır.
Gereksinim değişikliklerine yanıt vermek için gereken çalışmayı azaltır.
Geliştirilecek özelliklerin sırasını planlar.
Modelleri, testler ve gereksinimler arasında net bir ilişki yaparak sistem sınamaları için temel olarak kullanır.Bu ilişki gereksinimler değiştiğinde sınamaları doğru olarak güncellemenize yardımcı olur.Bu, sistemin yeni gereksinimleri karşıladığından emin olmanızı sağlar.
Gereksinimler modeli, eğer onu kullanıcılarla veya onların temsilcileriyle olan tartışmalara odaklanmak için kullanırsanız ve her yinelemenin başında tekrar ziyaret ederseniz en büyük yararı sağlar.Gereksinimler modelini kod yazmadan önce detaylı olarak tanımlamanız gerekmez.Çok basitleştirilmiş olsa bile kısmen çalışan bir uygulama genellikle kullanıcılarla gereksinimlerin tartışılması için en cazip temeli oluşturur.Model bu tartışmaların sonucunu özetlemek için etkili bir yoldur.Daha fazla bilgi için bkz. Geliştirme Süreci içinde Modelleri Kullanma.
[!NOT]
Bu konular boyunca "sistem", sistem veya geliştirdiğiniz uygulama anlamına gelir.Sistem, birçok yazılım veya donanım bileşenlerinden oluşan geniş bir topluluk, tek bir uygulama veya daha geniş bir sistemde yazılım bileşeni olabilir.Her durumda, gereksinimler modeli kullanıcı arabirimi ya da API ile sistemin dışından görünebilen davranışı açıklar.
Ortak Görevler
Kullanıcıların gereksinimlerini birkaç farklı görünümde oluşturabilirsiniz.Her görünüm belirli türde bilgi sağlar.Bu görüntüleri oluşturduğunuzda sıklıkla birinden diğerine geçmek en iyisidir.Herhangi bir görüntüden başlayabilirsiniz.
Diyagram veya belge |
Gereksinimler modelinde ne açıklar |
Bölüm |
---|---|---|
Kullanım örneği diyagramı |
Sistemi kimin kullandığı ve sistemde ne yaptıkları. |
Sistemin nasıl kullanıldığını açıklama |
Kavramsal sınıf diyagramı |
Gereksinimleri açıklamak için kullanılan türler sözlüğü; sistemin arabiriminde görünen türler. |
Gereksinimleri açıklamak için kullanılan terimleri tanımlama |
Etkinlik diyagramı |
Kullanıcılar ve sistem veya onun bölümleri tarafından gerçekleştirilen etkinlikler arasındaki iş ve bilgi akışı. |
Kullanıcılar ve sistem arasındaki iş akışını gösterme |
Sıralı diyagramı |
Kullanıcılar ve sistem veya onun bölümleri arasındaki etkileşimler dizisi.Etkinlik diyagramına alternatif görünüm. |
Kullanıcılar ve sistem arasındaki etkileşimleri gösterme |
Ek belgeler veya çalışma öğeleri |
Performans, güvenlik, kullanışlılık ve güvenilirlik ölçütleri. |
Hizmet gereksinimlerinin kalitesini açıklama |
Ek belgeler veya çalışma öğeleri |
Belirli bir kullanım örneğine özgü olmayan kısıtlamalar ve kurallar |
İş kurallarını gösterme |
Diyagram türlerinin çoğunun başka amaçlar için kullanıldığına dikkat edin.Diyagram türlerine genel bakış için bkz. Yazılım Tasarımı için Modeller Geliştirme.Diyagram çizme hakkında temel bilgiler için bkz. UML Modellerini ve Diyagramları Düzenleme.
Sistemin nasıl kullanıldığını açıklama
Sistemi kimin ve ne için kullandığını açıklamak için kullanım örneği diyagramı oluşturun.Kullanım örneği, sistem kullanıcısının hedefini ve hedefe ulaşmak için uyguladıkları yordamı gösterir.
Örnek olarak, çevrimiçi yemek satan bir sistem müşterilerinin menüden yemek seçmesine ve bu hizmeti sağlayan restoranların menüyü güncellemesine izin vermelidir.Bunu kullanım örneği diyagramında özetleyebilirsiniz.
Kullanım örneğinin nasıl daha küçük durumlardan oluştuğunu da gösterebilirsiniz.Örneğin, yemek sipariş etme yemek satın almanın ödeme ve teslimat da içeren bir parçasıdır:
Ayrıca, geliştirdiğiniz sistemin kapsamı içinde hangi kullanım örneklerinin olduğunu gösterebilirsiniz.Örneğin, çizimdeki sistem Yemeği Teslim Et kullanım örneğinde yer almaz.Bu, geliştirme çalışması için bağlam ayarlanmasına yardımcı olur.(Kullanım örneği diyagramında, alt sistem kapsayıcıları sistemi veya onun bileşenlerini göstermek için kullanılabilir.)
Ayrıca, birbirini izleyen sürümlerde içerilecek takım tartışmanıza da yardımcı olur.Örneğin, sistemin ilk sürümünde Yemek Ücretini Öde'nin sistem üzerinden gitmek yerine doğrudan restoran ve müşteri arasında düzenlenip düzenlenmemesini tartışabilirsiniz.Bu durumda, ilk sürüm için Yemek Ücretini Öde'yi Şimdi Akşam Yemeği Sistem dikdörtgeninin dışına taşıyabilirsiniz.
Kullanım örneği diyagramı, sadece kullanım örneklerinin özetini sağlar.Daha detaylı açıklamalar sağlamak için, diyagramdaki kullanım örneklerini ayrı belgelere ve diğer diyagramlara bağlayabilirsiniz.Bunun nasıl yapıldığını öğrenmek için bkz. Nasıl yapılır: Kullanım Örneğini Belgelere ve Diyagramlara Bağlama.
Kullanım örneği diyagramı çizme takımınıza yardımcı olur:
Uygulamanın detayları yüzünden dikkatiniz dağılmadan kullanıcıların sistemle ne yapmayı beklediklerine odaklanın.
Sisteminizin kapsamını veya sistemin belirli sürümlerini tartışın.
Aşağıdaki konular şu ek bilgileri sağlar:
Bilgi için |
Okuma |
---|---|
Kullanım örneklerinin nasıl oluşturulduğu hakkında daha detaylı bilgi |
|
Kullanım örneği diyagramındaki öğeler |
|
Kullanım örneklerinden kod nasıl geliştirilir |
Gereksinimleri Açıklamak için Kullanılan Terimleri Tanımlama
UML sınıf diyagramlarını, aşağıdaki amaçlar için kullanılan tutarlı bir iş kavramları sözlüğü geliştirmenize yardımcı olması için kullanabilirsiniz:
Kullanıcılar tarafından sistemin yaptığı işi tartışmak için
Kullanıcıların gereksinimlerini açıklamak için, örneğin kullanım örnekleri, iş kuralları ve kullanıcı hikayelerinin açıklamalarında.
Sistemin API'sınde veya kullanıcı arabirimiyle değiştirilen bilgi türleri.
Sistem açıklamaları veya kabul sınamaları.
Bu amaç için kullanıldıklarında UML sınıf diyagramının içeriğine kavramsal sınıf diyagramı denir.(Bu etki alanı modeli veya sınıf çözümleme modeli olarak da bilinir.)
Kavramsal sınıf diyagramında sistemin iç tasarımının ayrıntılarını göstermeden sadece gereksinimler açıklamasında olması gereken bu sınıfları gösterebilirsiniz.Diyagram sistemin iç tasarımının ayrıntılarını göstermez.Genellikle kavramsal sınıflarda işlemleri veya arabirimleri göstermeniz gerekmez.
Örneğin, Şimdi Akşam Yemeği sistemi için kavramsal sınıfları çizebilirsiniz:
Kavramsal sınıf diyagramı gereksinimler modelinde kullandığınız terimlerin sözlüğünü sağlar.Örneğin, Yemek Sipariş Et kullanım örneğinin detaylı açıklamasında şunları yazabilirsiniz:
Müşteri Sipariş vermek için Menü'yü seçer sonra Menü'den Menü Öğeleri'ni seçerek Sipariş'de Öğeleri Ismarla'yı oluşturur.
Modeldeki sınıfların isimleri olan terimlerin açıklamada nasıl kullanıldığına dikkat edin.Diyagram bu sınıflar arasındaki ilişkilerden belirsizlikleri kaldırır.Örneğin, diyagram açıkça her Siparişin sadece bir Menü ile ilişkilendirildiğini gösterir.
Kullanıcı gereksinimleri hakkındaki yanlış anlamalar sık sık kelimelerin ayrıntılı anlamlarındaki yanlış anlamalara kadar izlenebilir.Örneğin, çoğu restoran Menü ve Sipariş terimlerini aynı şekilde anlar ancak Siparişteki madde ile Menüdeki madde arasındaki fark daha az açıktır.Gereksinimler iş hissedarlarıyla tartışılırken bu farklılıkları ortaya çıkarmak önemlidir.Sınıf diyagramı terimleri ve onların ilişkisini açığa çıkarmanıza yardım edecek yararlı bir araçtır.
Kavramsal sınıf modeli sisteminizin açıklanabilen iş mantığı tarafından temel sözlüğünü oluşturabilir.Ancak yazılımdaki sınıflar genellikle kavramsal modelden daha karmaşık olacaktır çünkü uygulamanız performans, dağıtım, esneklik ve diğer etkenler gibi konuları göz önünde bulundurmalıdır.Bir sistemde kavramsal sınıfın birkaç farklı uygulaması sık olarak bulunur.
Örneğin, Siparişler sistemin farklı bölümlerinde ve bölümler arasındaki farklı arabirimlerde XML, SQL, HTML ve C#'da gösterilebilir.Sipariş ve Menü arasındaki ilişkilendirme C# kodunda başvuru olarak, veritabanında ilişki olarak veya XML'de çapraz başvurulmuş kimlikler olarak birçok farklı şekilde gösterilebilir.Fakat bu çeşitlemelere rağmen, kavramsal model yazılımın her bölümünde doğru olacak önemli bilgiler sağlar.Örnekteki sınıf diyagramı bize her uygulamada her Sipariş ile ilişkilendirilmiş sadece bir Menü olacağını bildirir.
Takımınıza yardımcı olacak gereksinimler sınıf diyagramını çizme:
Kullanıcıların gereksinimleri tartışmalarında kullanılan temel terimleri tanımlayın ve standartlaştırın.
Bu terimler arasındaki ilişkileri açıklığa kavuşturun.
Aşağıdaki konular şu ek bilgileri sağlar:
Bilgi için |
Okuma |
---|---|
Gereksinimler sınıflarını bulma hakkında daha detaylı bilgi |
|
Kavramsal sınıf diyagramlarındaki öğeler |
|
Kavramsal sınıflardan kod nasıl geliştirilir |
Kavramsal sınıf şemada, genellikle navigability göstermek için ilişkilendirmeleri okları yararlı değildir.Bunun nedeni Diyagram uygulaması temsil etmiyor.İlişkileri gerçek nesneleri arasındaki ilişkiyi temsil eder.Aşağıdaki Visual Studio uzantısı varsayılan olmayan yönlü oklar olun: Örnek: etki alanı uml modelleme özellikleri.
İş Kurallarını Gösterme
Bir iş kuralı belirli bir kullanım örneğiyle ilişkilendirilmeyen bir gereksinimdir ve sistemin tamamında gözlenmelidir.
Birçok iş kuralı kavramsal sınıflar arasındaki ilişkilerdeki kısıtlamalardır.Bu statikiş kuralları'nı kavramsal sınıf diyagramındaki ilgili sınıflarla ilişkilendirilmiş açıklamalar olarak yazabilirsiniz.Örne?in:
Dinamik iş kurallarını izin verilen olaylar dizisini kısıtlar.Örneğin, kullanıcının sisteminizdeki diğer işlemleri gerçekleştirmeden önce oturum açması gerektiğini göstermek için dizi veya etkinlik diyagramını kullanırsınız.
Ancak birçok dinamik kural statik kurallarla değiştirilerek daha etkin ve kapsamlı olarak belirtilebilir.Örneğin, kavramsal sınıf modelindeki sınıfa Boole türü "Oturum Açıldı" özniteliği ekleyebilirsiniz.Oturum Açıldı'yı kullanım örneğinde günlüğün sonkoşulu olarak, diğer kullanım örneklerinin çoğunun ise önkoşulu olarak eklersiniz.Bu yaklaşım tüm olası olaylar dizisi birleşimlerini tanımlamaktan kaçınmanıza olanak tanır.Modele yeni kullanım örnekleri eklemeniz gerektiğinde de bu daha esnektir.
Buradaki seçimin gereksinimleri nasıl tanımladığınız hakkında olduğuna ve program kodunda gereksinimleri nasıl uyguladığınızdan bağımsız olduğuna dikkat edin.
Aşağıdaki konular şu ek bilgileri sağlar:
Bilgi için |
Okuma |
---|---|
Statik iş kurallarını bulma ve kaydetme hakkında daha ayrıntılı bilgi için |
|
Kavramsal sınıf diyagramlarındaki öğeler |
|
İş kurallarına uygun kod nasıl geliştirilir |
Hizmet Gereksinimlerinin Kalitesini Tanımlama
Hizmet gereksiniminin kalitesinin birçok kategorisi vardır.Bu kategoriler aşağıdakileri içermektedir:
Başarım
Güvenlik
Kullanılabilirlik
Güvenilirlik
Sağlamlık
Bu gereksinimlerin bazılarını belirli kullanım örneklerinin açıklamalarına ekleyebilirsiniz.Diğer gereksinimler kullanım örneklerine özgü değildir ve en etkin şekilde ayrı bir belgeye yazılmıştır.Yapabildiğinizde gereksinimler modeli tarafından tanımlanmış sözlüğe bağlı kalmak yararlıdır.Aşağıdaki örnekte gereksinimde kullanılan ana sözcüklerin önceki çizimlerdeki aktörlerin, kullanım örneklerinin ve sınıfların başlıkları olduğuna dikkat ediniz:
Eğer Müşteri Öğlen Yemeği Ismarlarken, Restoran bir Menü Öğesini silerse, bu Menü Öğesine denk düşen bütün Sipariş Öğeleri kırmızı ile gösterilir.
Aşağıdaki konular şu ek bilgileri sağlar:
Bilgi için |
Okuma |
---|---|
Hizmet gereksinimlerinin kalitesini kaydetme hakkında daha detaylı bilgi |
|
Kullanım örneklerine ek belgeler iliştirme |
Nasıl yapılır: Kullanım Örneğini Belgelere ve Diyagramlara Bağlama |
Hizmet gereksinimlerinin kalitesine bağlı kalacak kod nasıl geliştirilir |
Kullanıcılar ve sistem arasındaki iş akışını gösterme
Farklı kullanım örnekleri arasındaki iş akışını göstermek için etkinlik diyagramı kullanabilirsiniz.Gereksinimler modeline kullanıcının sistem ile sistem dışı ile gerçekleştirdiği temel görevleri gösteren etkinlik diyagramı çizerek başlamak genellikle yararlıdır.
Örne?in:
Aynı bilgilerin farklı görünümlerini göstermek için kullanım örneği diyagramları ve etkinlik diyagramları çizebilirsiniz.Kullanım örneği diyagramı daha büyük etkinliklerin içinde iç içe geçmiş daha küçük etkinlikleri göstermede etkilidir ancak iş akışını göstermez.Örne?in:
Etkinlik diyagramlarını yazılımınız içindeki algoritmaları göstermek için de kullanabileceğinize ancak diyagramları iş süreci için kullandığınızda sistemin dışında görülebilen etkinliklere odaklandığınıza dikkat edin.
Aşağıdaki konular şu ek bilgileri sağlar:
Bilgi için |
Okuma |
---|---|
İş çalışma akışlarının nasıl tanımlandığı hakkında daha fazla bilgi |
|
Etkinlik diyagramındaki öğeler |
|
Etkinlik diyagramlarından kod nasıl geliştirilir |
Kullanıcılar ve sistem arasındaki etkileşimleri gösterme
Sistem ve dış aktörler arasındaki veya sistemin bölümleri arasındaki ileti değişmelerini göstermek için sıralı diyagramı kullanabilirsiniz.Bu, etkileşimler dizisini açıkça gösteren kullanım örneğinde adımların görünümünü sağlar.Sıralı diyagramları özellikle kullanım örneğinde birkaç etkileşen bölümün olduğu yerde ve sistemin API'si olduğunda da yararlı olur.
Örne?in:
Sıralı diyagramlarının bir avantajı oluşturduğunuz sisteme hangi iletiler geldiğini görmenin kolay olmasıdır.Sistemi tasarlamak için tek Sistem yaşam çizgisini Sistem'in her bileşeninin ayrı yaşam çizgisiyle değiştirebilirsiniz ve sonra her gelen iletiye yanıt olarak onlar arasındaki etkileşimleri gösterebilirsiniz.
Aşağıdaki konular şu ek bilgileri sağlar:
Bilgi için |
Okuma |
---|---|
Etkileşimleri nasıl tanımladığınız hakkında daha fazla bilgi |
|
Sıralı diyagramındaki öğeler |
|
Sıralı diyagramlarından kod nasıl geliştirilir |
Tutarsızlıkları Azaltmak için Model Kullanma
Model oluşturma genellikle kullanıcıların gereksinimlerindeki tutarsızlıklar ve belirsizliklerde önemli ölçüde azalma ile sonuçlanır.Farklı hissedarlar genellikle sistemin çalıştığı iş dünyasını farklı şekillerde anlarlar.Bu nedenle ilk göreviniz istemcileriniz arasındaki bu farklılıkları çözmektir.
Model oluştururken iş etki alanı hakkında doğal olarak oluşan birçok soru bulacaksınız.Bu soruları kullanıcılarınıza sorarak projenin ileri aşamalarında gerekecek değişiklikleri azaltırsınız.İlk başta kendinize ve sonrada eğer cevap belirsizse iş hissedarlarına sorabileceğiniz belirli soruların bazıları şunlardır:
Gereksinimler modelindeki her sınıf için "Hangi kullanım örneği bu sınıfın nesnelerini oluşturur?" sorusunu sorun. Örneğin, çevrimiçi yemek ısmarlama hizmetinde "Hangi kullanım örneği Restoran Menüsü sınıfının nesnelerini oluşturur?" diye sorabilirsiniz. Bu yeni bir restoranın nasıl hizmete açılacağı ve menüsüne nasıl katkıda bulunacağı tartışmasına yol açar.Öznitelikleri ve ilişkilendirmeleri neyin oluşturduğu veya değiştirdiği hakkında benzer sorular sorabilirsiniz.
Gereksinimler modelindeki her kullanım örneği için sınıf diyagramları tarafından sağlanan kelimelerdeki her kullanım örneğinin sonucunu veya sonkoşulunu açıklamayi deneyin.Kullanım örneğinin oluşumundan önce ve sonra sınıfların nesnelerini tasarlayarak kullanım örneğinin etkisini göstermek için çoğunlukla yararlı olur.Örneğin, eğer kullanım örneği sonkoşulu "bir menu öğesi müşterinin siparişine eklendi" diyorsa Sipariş ve Menü Öğeleri sınıflarının nesnelerini tasarlayın.Yeni bir bağlantı veya yeni bir nesne gibi kullanım örneğinin etkilerini farklı renkte veya yeni bir çizimde gösterin.Bu çoğunlukla modelde hangi bilginin gerekli olduğu tartışmalarına yol açar.Gereksinim sınıfları doğrudan uygulamayla ilgli olmamasına rağmen sistemin depolamaya ve aktarmaya gerek duyacağı bilgileri açıklarlar.
Öznitelikler ve ilişkilendirmelerdeki kısıtlamalar özellikle birden çok öznitelik ve ilişkilendirme içeren kısıtlamalar hakkında sorun.
Kullanım örneklerinin, çizim sırasının veya etkinlik diyagramlarının geçerli ve geçersiz dizilerini göstermek için sorun.
Farklı diyagramların sağladığı görünümler arasındaki ilişkileri inceleyerek kullanıcılarınızın hangi kavramlarla çalıştıklarını kolayca anlayabilir ve sistemden neye ihtiyaç duyduklarını anlamalarına yardımcı olabilirsiniz.Ayrıca, hissedarların hangi gereksinimler hakkında emin olmadıklarını daha iyi anlayabilirsiniz.Bu özellikleri geliştirmek için plan yapabilirsiniz, en azından basitleştirilmiş şekilde, projenin ilk aşamalarında kullanıcıların onları denemelerine izin verebilirsiniz.
Ayrıca bkz.
Kavramlar
UML Modellerini ve Diyagramları Düzenleme
Geliştirme Süreci içinde Modelleri Kullanma
Yazılım Sistem Mimarisi Modelleme
Diğer Kaynaklar
Örnek vs uzantısı: Etki alanı uml modelleme özellikleri
örnek vs uzantısı: renk uml öğeleri edinmek tarafından
örnek vs uzantısı: bağlantı uml öğeleri diyagramları, dosyaları ve diğer öğeleri