Yazılım

Feb 04, 2025

QMOOD Modeli ile Nesneye Dayalı Yazılım Kalitesinin Değerlendirilmesi

QMOOD Modeli ile Nesneye Dayalı Yazılım Kalitesinin Değerlendirilmesi
— aşağı kaydır — daha fazla

QMOOD Modeli ile Nesneye Dayalı Yazılım Kalitesinin Değerlendirilmesi

Nesneye Dayalı Kalite Modeli

ISO/IEC yazılım kalitesi modelleri, belirli yazılım tasarım modeline bağlı kalmadan kaliteyi ele alırlar.

Genel yazılım kalitesi modellerin yanı sıra doğrudan nesneye dayalı yazılımların kalite özelliklerini değerlendirmeye hedefleyen modeller ve metrikler bulunmaktadır. Bunlardan birisi QMOOD modeli.

Yazılım kalitesini ölçmeden genel problemler ortaya çıkmıştır. Çok sayıda metrik tanımlanmıştır ancak hepsi tam anlamıyla fayda sağlamamaktadır. Bazı metrikler ise de gerçek projelerde sınanmamıştır. Buna uygun olarak hedefler belirlenmiştir. Daha yüksek düzeyli özellikleri değerlendirmek ana hedef olduğundan dolayı metrikler bir modelle incelenmelidir. Metriklerin eşik değerlerini belirlemek zordur.

Bu konularda nesneye dayalı tasarım bu konuda fayda sağlar. Çünkü bu tasarımda kodlamadan önce tasarım yapılması gereklidir.

QMOOD Modeli

Hiyerarşik katmanlı kalite modeli benimsenmiştir. Model, dört katmandan ve aralarındaki ilişkilerden oluşmaktadır.

Nesneye Dayalı Kalite Modali

L1 Tasarım Kalitesi Nitelikleri

ISO/IEC 9126’daki işlevsellik, güvenilirlik, verimlilik, kullanışlılık, bakım kolaylığı ve taşınabilirlik ele alınmıştır.

Tasarımdan çok gerçekleme işlemi ile alakalı olan güvenirlirlik ve kullanışlılık listeden çıkarmıştır.

Taşınabilirlik, genişletebilirlik olarak değiştirilmiştir.

Verimlilik, etkinlik olarak değiştirilmiştir.

Bakım kolaylığı, anlaşırlırlık olarak değiştirilmiştir.

Tekrar kullanılabilirlik ve etkinlik eklenmiştir.

İşlevsellik: Tasarımın sınıflarına atanan görevleri, sorumluluğu anlatmaktadır.

Etkinlik: Tasarımın nesneye dayalı tasarım kavramlarını kullanarak işlevselliği ve davranışı ele almayı temsil eder.

Anlaşılırlık: Tasarımın öğrenilmesini kolay anlaşılmasını sağlayan ve tasarımın yapısının karmaşıklığı ile ilgilidir.

Genişletebilirlik: Tasarıma yeni gereksinimi özelliği eklemeyi kolaylaştıran mevcut tasarımdaki özellikleri kullanımı temsil eder.

Tekrar Kullanılabilirlik: Bir tasarımın yeni bir soruna yeniden uygulanmasına izin veren nesneye dayalı tasarımın özelliklerin varlığını yansıtır.

Esneklik: Bir tasarımın işlevsel olarak yeni gereksinimlere göre uyarlanmasının sağlanabilme özelliğidir.

L2 Nesneye Dayalı Tasarım Özellikleri

Yazılımdaki tasarım birimlerinin iç niteliklerini, işlevlerini ve aralarındaki ilişkiyi değerlendirecek somut kavramlardır.

Özellikler QMOOD’da bir veya daha fazla tasarım metriği ile değerlendirebilecek şekilde oluşturulmuştur.

Tasarım Boyutu (Design Size): Tasarımda kullanılan sınıfların ölçüsüdür.

Hiyerarşiler (Hierarchies): Tasarımdaki genel özellikleri temsil etmek için kullanılır. Tasarımdaki alt sınıf olmayın türetilmemiş sınıfların sayısıdır.

Soyutlama (Abstraction): Tasarımdaki bir veya daha fazla nesli olan sınıflar, bu özelliği sergiler.

Kapsülleme (Encapsulation): Öznitelik hareketlerini erişimi özel (private) olarak tanımlamayı engeller ve böyleye nesnelerin iç özelliklerini korur.

Bağlanma (Coupling): Tasarımdaki bir nesnenin diğer nesneye bağımlılığını tanımlar.

Tutarlılık (Cohesion): Sınıftaki metotların özelliklerin uyumunu değerlendirir.

Bileşim (Composition): Tasarımdaki sınıflar arasında sahip olma ilişkisini temsil eder.

Kalıtım (Inheritance): Tasarımdaki sınıflar arasında kalıtsal ilişkileri temsil eder.

Çok Biçimlilik (Polymorphism): Nesnede çalışma zamanında dinamik olarak belirlenen hizmetlerin ölçüsüdür.

Mesajlaşma (Messaging): Sınıftan başka bir sınıfa hizmet sağlayan açık (public) servislerin bir ölçüsüdür.

Karmaşıklık (Complexity): Sınıfların iç ve dış yapısının anlama zorluğu.

L3 Nesneye Dayalı Tasarım Metrikleri

Tasarım metrikleri yazılım tasarımında elde edilebilir. Tasarımın özelliklerin değerlendirilmesinde doğrudan metrikler kullanılabilir.

QMOOD’taki Tasarım Metrikleri

  • DSC (Design Size in Class): Tasarımda bulunan toplam sınıf sayısıdır.
  • NOH (Number of Hierarchies): Tasarımdaki toplam sınıf hiyerarşini belirtir.
  • ANA (Average Number of Ancestors): Sınıfın bilgi aldığı ortalama sınıf sayısıdır.
  • DAM (Data Access Metric): Private ve Protected özellik belirteçlerinin tüm belirteçlerine oranıdır. 0 ile 1 arasında değerler alır yüksek olması beklenmektedir.
  • DCC (Direct Class Couling): Bir sınıfın ilişkili olduğu sınıf sayısıdır.
  • CAM (Cohesion Among Methods of Class): Bir sınıfın metotlar arasındaki ilişkileri hesaplar.
  • MOA (Measure of Aggregation): Sınıfta bulunan kullanıcı tanımlı sınıf sayısıdır.
  • MFA (Measure of Functional Abstraction): Sınıf tarafından miras alınan metotların sayısının, sınıfın metotları tarafından erişilen toplam metot sayısına oranıdır.
  • NOP(Number of Polymorphic Methods): Polimorfik davranış sergileyen metotların sayısıdır.
  • CIS (Class Interface Size): Bir sınıftaki public metot sayısıdır.
  • NOM (Number of Methods): Bir sınıftaki metot sayısıdır.

L4 Nesneye Dayalı Tasarım Bileşenleri

Nesneye dayalı tasarımın yapısını belirleyen bileşenler; nesneler, sınıflar ve arasındaki ilişkilerdir. Buna göre nesneye dayalı tasarımın değerlendirilmesinde sınıflar, nitelikler, metotlar,ilişkiler, sınıf hiyerarşilerine bakılabilir.

Bileşenlerin kaliteyi etkileyen özellikleri:

  • Nitelikler: İsim, public,private,protected,static,constant, başlangıç değeri atanmış mı, boyut tipi, değer,işaretçi.
  • Metotlar: İsim, public,private,protected, parametre sayısı ve tipleri, static, dynamic, virtual, non-virtual, constructor, inline.
  • Sınıflar: İsim, erişim tipi, türetim tipi, taban sınıf mı, şablon mu, türetilmiş sınıf mı, alt sınıf sayısı,nitelikleri, diğer sınıflarla ilişkisi.

Toplam Kalite Indeksi - Total Quality Index (TQI)

Altı kalite niteliğinin değerleri toplanarak o programın toplam kalite indeksi hesaplanır. Projenin toplam kalitesini gösterir.

Modelin Geçerliliğin Sınanması

Modelin geçerliliği iki aşamadan sınanmıştır.

  • Kalite Niteliklerinin Sınanması
  • Toplam Kalite Değerinin Geçerliliği

Kalite Niteliklerin Sınanması

Sınama için iki yazılm grubu kullanılmıştır. Bunlardan biri Microsoft Foundation Classes (MFC) ve bir diğeri de Borland Object Windows Library (OWL) dir.

Yazılımın yeni sürümünü yayınlanmasının iki nedeni vardır. Yazılıma yeni işlevler kazandırmak ve diğeri de belirlenen hataları düzeltmek.

Yazılımın erken sürümleri yazılım yeni özellik kazandırmak için yayımlanır.

Erken sürümde kullanıcı dostu, kullanıcı deneyimi artıracak özellikler eklenir. Bu nedenle erken sürümlerde yapısal değişik büyük olur ve kalitedeki iyileşmede büyük olur.

Yazılım olgunlaştıktan sonra sürümler genellikle hata giderilmesi ve güvenirliğinin artırılması ile yayımlanır.

Modelin geçerli olabilmesi için tekrar kullanılabilirlik, esneklik, işlevsellik, genişletebilirlik her yeni bir sürümde artırılmalıdır.

Özellikle işlevsellik ve etkinlik ilk sürümlerde daha fazla artmış olmalıdır. Yazılım olgunlaştıkça anlaşırlık artmalıdır.

Toplam Kalite Değerinin Geçerliliği

Farklı konularda, farklı amaçlarla yapılan tasarımların karakteristikleri de farklı olacaktır. Aralarında karşılaştırma yapılacak olan tasarımların aynı karakterde olması gereklidir.

Her değerlendiricinin tasarımlardaki 6 kalite niteliğini ölçen kendilerine özgü sezgisel yöntemlerin gerçekleştirilmesi beklenir.


Bu gönderİyİ paylaş