Yazılım Analizi ve Tasarım Araçları

Yazılım analizi ve tasarımı, gereksinim spesifikasyonunun uygulamaya dönüştürülmesine yardımcı olan tüm faaliyetleri içerir. Gereksinim özellikleri, yazılımdan tüm işlevsel ve işlevsel olmayan beklentileri belirtir. Bu gereksinim spesifikasyonları, bilgisayarın hiçbir ilgisi olmayan, insan tarafından okunabilir ve anlaşılabilir belgeler şeklinde gelir.

Yazılım analizi ve tasarımı, insan tarafından okunabilir gereksinimlerin gerçek koda dönüştürülmesine yardımcı olan ara aşamadır.

Yazılım tasarımcıları tarafından kullanılan birkaç analiz ve tasarım aracını görelim:

Veri Akış Şeması

Veri akış diyagramı, bir bilgi sistemindeki veri akışının grafiksel temsilidir. Gelen veri akışını, giden veri akışını ve depolanan verileri tasvir edebilir. DFD, verilerin sistemden nasıl geçtiğinden bahsetmez.

DFD ve Akış Şeması arasında belirgin bir fark vardır. Akış şeması, program modüllerindeki kontrol akışını gösterir. DFD'ler, sistemdeki çeşitli düzeylerdeki veri akışını gösterir. DFD herhangi bir kontrol veya dal öğesi içermez.

DFD Türleri

Veri Akış Şemaları Mantıksal veya Fizikseldir.

  • Logical DFD - Bu tür DFD, sistem sürecine ve sistemdeki veri akışına odaklanır.Örneğin bir Bankacılık yazılım sisteminde, verilerin farklı varlıklar arasında nasıl taşındığı.
  • Physical DFD- Bu tür DFD, veri akışının sistemde gerçekte nasıl uygulandığını gösterir. Daha spesifik ve uygulamaya yakındır.

DFD Bileşenleri

DFD, aşağıdaki bileşen setini kullanarak veri kaynağını, hedefi, depolamayı ve akışını temsil edebilir -

  • Entities- Varlıklar, bilgi verilerinin kaynağı ve hedefidir. Varlıklar, kendi adlarıyla birlikte bir dikdörtgenle temsil edilir.
  • Process - Veriler üzerinde gerçekleştirilen faaliyetler ve eylemler, Daire veya Yuvarlak kenarlı dikdörtgenlerle temsil edilir.
  • Data Storage - Veri depolamanın iki çeşidi vardır - ya iki küçük kenarı olmayan bir dikdörtgen olarak ya da sadece bir kenarı eksik olan açık kenarlı bir dikdörtgen olarak gösterilebilir.
  • Data Flow- Verilerin hareketi sivri oklarla gösterilmiştir. Veri hareketi, kaynak olarak ok tabanından hedef olarak okun başına doğru gösterilir.

DFD Seviyeleri

  • Level 0- En yüksek soyutlama seviyesi DFD, tüm bilgi sistemini tüm temel detayları gizleyen tek bir diyagram olarak gösteren Seviye 0 DFD olarak bilinir. Düzey 0 DFD'ler, bağlam düzeyi DFD'ler olarak da bilinir.
  • Level 1- Düzey 0 DFD, daha özel Düzey 1 DFD'ye bölünmüştür. Seviye 1 DFD, sistemdeki temel modülleri ve çeşitli modüller arasındaki veri akışını gösterir. Seviye 1 DFD ayrıca temel süreçlerden ve bilgi kaynaklarından bahseder.
  • Level 2 - Bu seviyede DFD, Seviye 1'de belirtilen modüllerin içinde verilerin nasıl aktığını gösterir.

    Daha yüksek seviyeli DFD'ler, istenen spesifikasyon seviyesine ulaşılmadıkça daha derin bir anlayış seviyesine sahip daha spesifik daha düşük seviyeli DFD'lere dönüştürülebilir.

Yapı Grafikleri

Yapı şeması, Veri Akış Şemasından türetilen bir grafiktir. Sistemi DFD'den daha detaylı temsil eder. Tüm sistemi en düşük işlevsel modüllere ayırır, sistemin her modülünün işlevlerini ve alt işlevlerini DFD'den daha ayrıntılı olarak açıklar.

Yapı şeması, modüllerin hiyerarşik yapısını temsil eder. Her katmanda belirli bir görev gerçekleştirilir.

Yapı çizelgelerinin yapımında kullanılan semboller şunlardır:

  • Module- Süreci veya alt rutini veya görevi temsil eder. Bir kontrol modülü, birden fazla alt modüle dallanır. Kitaplık Modülleri yeniden kullanılabilir ve herhangi bir modülden çağrılabilir.
  • Condition- Modülün tabanında küçük bir elmas ile temsil edilir. Kontrol modülünün bazı koşullara göre alt rutinden herhangi birini seçebileceğini gösterir.
  • Jump - Kontrolün alt modülün ortasına atlayacağını göstermek için modülün içini gösteren bir ok gösterilir.
  • Loop- Eğri bir ok, modüldeki döngüyü temsil eder. Tüm alt modüller, modülün döngü tekrarlı yürütmesi kapsamındadır.
  • Data flow - Sonunda boş daire bulunan yönlendirilmiş bir ok, veri akışını temsil eder.
  • Control flow - Sonunda içi dolu daire bulunan yönlendirilmiş bir ok, kontrol akışını temsil eder.

HIPO Diyagramı

HIPO (Hiyerarşik Girdi İşlem Çıkışı) diyagramı, sistemi analiz etmek ve dokümantasyon araçlarını sağlamak için iki organize yöntemin birleşimidir. HIPO modeli, 1970 yılında IBM tarafından geliştirilmiştir.

HIPO diyagramı, yazılım sistemindeki modüllerin hiyerarşisini temsil eder. Analist, sistem işlevlerinin üst düzey görünümünü elde etmek için HIPO diyagramını kullanır. İşlevleri hiyerarşik bir şekilde alt işlevlere ayırır. Sistem tarafından gerçekleştirilen işlevleri gösterir.

HIPO diyagramları dokümantasyon amaçlı iyidir. Grafik gösterimleri, tasarımcıların ve yöneticilerin sistem yapısı hakkında resimli fikir edinmesini kolaylaştırır.

Bir modüldeki kontrol ve veri akışını gösteren IPO (Giriş İşlem Çıkışı) diyagramının aksine, HIPO veri akışı veya kontrol akışı hakkında herhangi bir bilgi sağlamaz.

Misal

HIPO diyagramının her iki bölümü, Hiyerarşik sunum ve IPO Şeması, yazılım programının yapı tasarımı ve bunların dokümantasyonu için kullanılır.

Yapılandırılmış İngilizce

Çoğu programcı, yazılımın büyük resminin farkında değildir, bu nedenle yalnızca yöneticilerinin onlara yapmalarını söylediklerine güvenirler. Doğru ancak hızlı kod geliştirmek için programcılara doğru bilgi sağlamak yüksek yazılım yönetiminin sorumluluğundadır.

Grafikler veya diyagramlar kullanan diğer yöntem biçimleri bazen farklı kişiler tarafından farklı yorumlanabilir.

Bu nedenle, yazılımın analistleri ve tasarımcıları Yapılandırılmış İngilizce gibi araçlar ortaya çıkarırlar. Kodlamak için neyin gerekli olduğu ve nasıl kodlanacağının açıklamasından başka bir şey değildir. Yapılandırılmış İngilizce, programcının hatasız kod yazmasına yardımcı olur.

Grafikler veya diyagramlar kullanan diğer yöntem biçimleri bazen farklı kişiler tarafından farklı yorumlanabilir. Burada, hem Yapılandırılmış İngilizce hem de Sözde Kod, bu anlayış açığını azaltmaya çalışır.

Yapılandırılmış İngilizce, yapılandırılmış programlama paradigmasında düz İngilizce kelimeler kullanır. Nihai kod değil, kodlamak için neyin gerekli olduğu ve nasıl kodlanacağı bir tür tanımlamadır. Aşağıdakiler, yapısal programlamanın bazı simgeleridir.

IF-THEN-ELSE,  
DO-WHILE-UNTIL

Analist, Veri Sözlüğünde depolanan aynı değişkeni ve veri adını kullanır, bu da kodu yazmayı ve anlamayı çok daha basit hale getirir.

Misal

Çevrimiçi alışveriş ortamında aynı Müşteri Kimlik Doğrulaması örneğini alıyoruz. Müşterinin kimliğini doğrulamaya yönelik bu prosedür, Yapılandırılmış İngilizce olarak şu şekilde yazılabilir:

Enter Customer_Name
SEEK Customer_Name in Customer_Name_DB file
IF Customer_Name found THEN
   Call procedure USER_PASSWORD_AUTHENTICATE()
ELSE
   PRINT error message
   Call procedure NEW_CUSTOMER_REQUEST()
ENDIF

Yapılandırılmış İngilizce ile yazılan kod, daha çok günlük konuşulan İngilizceye benzer. Doğrudan bir yazılım kodu olarak uygulanamaz. Yapılandırılmış İngilizce, programlama dilinden bağımsızdır.

Sözde Kod

Sözde kod, programlama diline daha yakın yazılır. Yorum ve açıklamalarla dolu artırılmış programlama dili olarak düşünülebilir.

Sözde kod değişken bildiriminden kaçınır ancak C, Fortran, Pascal vb. Gibi bazı gerçek programlama dillerinin yapıları kullanılarak yazılırlar.

Sözde kod, Yapılandırılmış İngilizce'den daha fazla programlama detayı içerir. Sanki bir bilgisayar kodu çalıştırıyormuş gibi görevi gerçekleştirmek için bir yöntem sağlar.

Misal

Fibonacci'yi n sayıya kadar yazdırmak için program.

void function Fibonacci
Get value of n;
Set value of a to 1;
Set value of b to 1;
Initialize I to 0
for (i=0; i< n; i++)
{
   if a greater than b 
   {
      Increase b by a;
      Print b;
   } 
   else if b greater than a
   {
      increase a by b;
      print a;
   }
}

Karar Tabloları

Karar tablosu, yapılandırılmış bir tablo formatında koşulları ve bunları ele almak için alınacak ilgili eylemleri temsil eder.

Hataları ayıklamak ve hataları önlemek için güçlü bir araçtır. Benzer bilgileri tek bir tabloda gruplandırmaya yardımcı olur ve ardından tabloları birleştirerek kolay ve rahat karar verme sağlar.

Karar Tablosu Oluşturma

Karar tablosunu oluşturmak için geliştiricinin temel dört adımı uygulaması gerekir:

  • Ele alınacak tüm olası koşulları tanımlayın
  • Tanımlanan tüm koşullar için eylemleri belirleyin
  • Olası maksimum kuralları oluşturun
  • Her kural için eylem tanımlayın

Karar Tabloları son kullanıcılar tarafından doğrulanmalıdır ve son zamanlarda yinelenen kurallar ve eylemler ortadan kaldırılarak basitleştirilebilir.

Misal

İnternet bağlantımızla ilgili günlük soruna basit bir örnek verelim. İnterneti başlatırken ortaya çıkabilecek tüm sorunları ve bunların olası çözümlerini belirleyerek başlıyoruz.

Tüm olası sorunları sütun koşulları altında ve olası eylemleri Eylemler sütununda listeliyoruz.

Koşullar / İşlemler Kurallar
Koşullar Bağlı Şovlar N N N N Y Y Y Y
Ping Çalışıyor N N Y Y N N Y Y
Web sitesini açar Y N Y N Y N Y N
Hareketler Ağ kablosunu kontrol edin X
İnternet yönlendiricisini kontrol edin X X X X
Web Tarayıcısını Yeniden Başlatın X
Servis sağlayıcısıyla iletişime geçin X X X X X X
Eylem yapma
Tablo: Karar Tablosu - Şirket İçi İnternet Sorunlarını Giderme

Varlık-İlişki Modeli

Varlık-İlişki modeli, gerçek dünya varlıkları kavramına ve aralarındaki ilişkiye dayanan bir veritabanı modeli türüdür. Gerçek dünya senaryosunu ER veritabanı modeliyle eşleştirebiliriz. ER Modeli, nitelikleri, bir dizi kısıtlama ve aralarındaki ilişki ile bir dizi varlık oluşturur.

ER Modeli, veri tabanının kavramsal tasarımı için en iyi şekilde kullanılır. ER Modeli şu şekilde temsil edilebilir:

  • Entity - ER Modelindeki bir varlık, gerçek dünya varlığıdır ve bazı özellikleri vardır. attributes. Her öznitelik, adı verilen karşılık gelen değer kümesiyle tanımlanır.domain.

    Örneğin, bir okul veritabanı düşünün. Burada öğrenci bir varlıktır. Öğrencinin adı, kimliği, yaşı ve sınıfı gibi çeşitli özellikleri vardır.

  • Relationship - Varlıklar arasındaki mantıksal ilişkiye denir relationship. İlişkiler, varlıklar ile çeşitli şekillerde eşleştirilir. Eşleme kardinaliteleri, iki varlık arasındaki ilişkilendirme sayısını tanımlar.

    Değerleri Eşleme:

    • bire bir
    • birden çoğa
    • çoktan bire
    • çoktan çoğa

Bilgi sözlüğü

Veri sözlüğü, verilerle ilgili bilgilerin merkezi olarak toplanmasıdır. Verinin anlamını ve kaynağını, diğer verilerle ilişkisini, kullanım için veri formatı vb. Depolar. Veri sözlüğü, kullanıcı ve yazılım tasarımcılarını kolaylaştırmak için tüm adların titiz tanımlarına sahiptir.

Veri sözlüğüne genellikle meta veri (verilerle ilgili veriler) havuzu olarak atıfta bulunulur. Yazılım programının DFD (Veri Akış Şeması) modeli ile birlikte oluşturulur ve DFD her değiştirildiğinde veya güncellendiğinde güncellenmesi beklenir.

Veri Sözlüğünün Gerekliliği

Veriler, yazılım tasarlanırken ve uygulanırken veri sözlüğü aracılığıyla referans alınır. Veri sözlüğü, belirsizlik olasılığını ortadan kaldırır. Programın her yerinde aynı nesne referansını kullanırken programcıların ve tasarımcıların çalışmalarının senkronize olmasına yardımcı olur.

Veri sözlüğü, tek bir yerde tüm veritabanı sistemi için bir dokümantasyon yolu sağlar. DFD'nin doğrulanması, veri sözlüğü kullanılarak gerçekleştirilir.

İçindekiler

Veri sözlüğü aşağıdakiler hakkında bilgi içermelidir

  • Veri akışı
  • Veri yapısı
  • Veri Öğeleri
  • Veri Depoları
  • Veri işleme

Veri Akışı, daha önce incelenen ve açıklandığı gibi cebirsel biçimde temsil edilen DFD'ler aracılığıyla tanımlanır.

= Oluşan
{} Tekrarlama
() İsteğe bağlı
+ Ve
[/] Veya

Misal

Adres = Ev No + (Cadde / Bölge) + Şehir + Eyalet

Kurs Kimliği = Kurs Numarası + Kurs Adı + Kurs Seviyesi + Kurs Notları

Veri Öğeleri

Veri öğeleri, Veri ve Kontrol Öğelerinin Adından ve açıklamalarından, Dahili veya Harici veri depolarından vb. Aşağıdaki ayrıntılarla oluşur:

  • Birincil Ad
  • İkincil Ad (Takma Ad)
  • Kullanım durumu (Nasıl ve nerede kullanılır)
  • İçerik Açıklaması (Gösterim vb.)
  • Tamamlayıcı Bilgiler (önceden ayarlanmış değerler, kısıtlamalar vb.)

Bilgi deposu

Verilerin sisteme girdiği ve sistem dışında var olduğu yerden bilgileri depolar. Veri Deposu şunları içerebilir:

  • Files
    • Yazılımın içinde.
    • Yazılımın dışında ama aynı makinede.
    • Yazılımın ve sistemin dışında, farklı makinede bulunur.
  • Tables
    • Adlandırma kuralı
    • Mülkiyet indeksleniyor

Veri işleme

İki tür Veri İşleme vardır:

  • Logical: Kullanıcı gördüğü gibi
  • Physical: Yazılımın gördüğü gibi