Aracılığıyla paylaş


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. Nasıl Yapılır: UML Modellerini ve Diyagramlarını 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.

Müşteri ve restoran için kullanım örnekleri

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:

Sistem ödeme ancak teslime katılı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

UML Kullanım Durumu Diyagramları: Yönergeler

Kullanım örneği diyagramındaki öğeler

UML Kullanım Durumu Diyagramları: Başvuru

Kullanım örneklerinden kod nasıl geliştirilir

Yazılım Sistem Mimarisi Modelleme

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:

Sınıflar menüsü, Düzen, menü öğesi, öğe sipariş.

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

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

Kavramsal sınıf diyagramlarındaki öğeler

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

Kavramsal sınıflardan kod nasıl geliştirilir

Yazılım Sistem Mimarisi Modelleme

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 statik iş kuralları'nı kavramsal sınıf diyagramındaki ilgili sınıflarla ilişkilendirilmiş açıklamalar olarak yazabilirsiniz. Örne?in:

Düzen sınıfına eklenmiş Açıklamadaki kural.

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

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

Kavramsal sınıf diyagramlarındaki öğeler

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

İş kurallarına uygun kod nasıl geliştirilir

Yazılım Sistem Mimarisi Modelleme

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

Guidelines for Defining Quality of Service Requirements

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

Yazılım Sistem Mimarisi Modelleme

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:

Üç eylemli ve bir döngü etkinliği.

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:

Önceki eylemler için kullanım örnekleri

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

UML Etkinlik Diyagramları: Yönergeler

Etkinlik diyagramındaki öğeler

UML Etkinlik Diyagramları: Başvuru

Etkinlik diyagramlarından kod nasıl geliştirilir

Yazılım Sistem Mimarisi Modelleme

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:

Sistem ve aktörler ile sıralı diyagramı.

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

UML Sıralı Diyagramlar: Yönergeler

Sıralı diyagramındaki öğeler

UML Sıralı Diyagramlar: Başvuru

Sıralı diyagramlarından kod nasıl geliştirilir

Yazılım Sistem Mimarisi Modelleme

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

Nasıl Yapılır: UML Modellerini ve Diyagramlarını Düzenleme

Modelden Testler Geliştirme

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

örnek vs uzantısı: uml diyagramı, şekilleri hizalamak

Video: iş etki alanı modelleme