SWEBoK

SWEBOK ve Yazılım Mühendisliği Bilgi Alanları

Ayseleynavuz
Kodcular
4 min readAug 1, 2022

--

Yazılım Mühendisliği tanımı olarak “Yazılım geliştirme, işletme ve bakımı için, sistematik, disiplinli, nicel mühendislik yaklaşımlarıdır.” diyebiliriz. Bir konunun “mühendislik” olarak tanınması için o konuda çalışan uzmanların üstünde görüş birliği oluşturduğu bir bilgi topluluğuna ihtiyaç vardır. SWEBOK çalışması bu boşluğu doldurma amacıyla yapılmıştır.

Software Engineering Body of Knowledge (SWEBOK), yazılım mühendisliği alanındaki bilgi birikiminin kapsamını ve içeriğini düzenlemek amacıyla oluşturulmuştur. Uluslararası bir standarttır. ISO / IEC TR 19759: 2005 genel kabul görmüş yazılım mühendisliği için bir rehber oluşturması amaçlanmaktadır. IEEE Computer Society tarafından uluslararası uzman bir grubun işbirliği yaparak oluşturulmasıyla birlikte yayınlanmıştır. 2001’de ilk versiyon (deneme), 2004 yılında ikinci versiyon, 2010 yılında üçüncü ve 2019 son versiyonda 15 temel bilgiye çıkarılmıştır.

SWEBOK için sürüm 3 ve sürüm 4 Karşılaştırmalı Tablosu

Siteye girdiğimizde bizim görüşlerimizi yollamamızın istendiği form linki de bulunmaktadır. Şöyle bir paragraf bulunuyor:

IEEE-CS SWEBOK V4 Genel İncelemesi için IEEE Bilgisayar Topluluğu Mesleki ve Eğitim Faaliyetleri Kurulu (PEAB) SWEBOK Evrim Ekibi, Yazılım Mühendisliği Bilgi Grubu Kılavuzu’nun (SWEBOK) 4. Versiyonu için kamu incelemesi yapmaktadır ve yorumlarınızı istemektedir. Bu Kılavuz, yazılım mühendisliği disiplininin bileşenlerini açıklar ve dünya çapında tutarlı bir yazılım mühendisliği görüşünü destekler.

Yazılım Mühendisliği, SWEBOK’un 2004 baskısıyla 10 temel bilgi alanına (Knowledge Area veya KA) ayrılır:

1. İsterler (Software Requirements)

2. Tasarım (Software Design)

3. İnşa, kodlama, programlama (Software Construction)

4. Sınama (Software Testing)

5. Bakım (Software Maintenance)

6. Konfigürasyon Yönetimi (Software Configuration Management)

7. Mühendislik Yönetimi (Software Engineering Management)

8. Süreçler (Software Process)

9. Araç ve Metotlar (Software Tools and Methods)

10. Kalite (Software Quality)

İlgili Alanlar:

✓ Bilgisayar Mühendisliği ✓ Matematik✓ Sistem Mühendisliği✓ Yazılım Ergonomisi (HCI) ✓ Bilgisayar Bilimleri ✓ Yönetim Bilimi (a. Kalite Yönetimi, b. Proje Yönetimi)

KA 1: Yazılım İsterleri

İster: Yazılımın yerine getirmesi gereken özellik.

• İsterler Mühendisliği Süreci (Requirements Engineering Process),yazılımın yerine getirmesi gereken özellikler tanımlanır. Süreç tanımı, modelleri, aktörleri, süreç geliştirmesiyle alakalı konuları içermektedir.

• İsterlerin Toplanması (Requirements Elicitation) kaynaklarla isterleri toplama teknikleri

• Analiz (Analysis) gereksinimlerin sınıflandırılması, tutarsızlıkların giderilmesi, önceliklerin belirlenmesi

• Belirtim (Specification) gereksinimleri tanımlama

• Sağlama (Validation) gözden geçirme, müşteri onayı, kabul testleri

• İsterlerin Yönetimi (Requirements Management)gereksinim değişikliklerinin izlenmesi ve yönetimi

KA 2: Yazılım Tasarımı

Tasarım: Mimari yapı, modüller, ara yüzler ve diğer özellikleri tanımlama; ortaya çıkan ürün.

• Yazılım Tasarımı Temel Kavramlar (Basic Concepts),

• Yazılım Tasarımında Anahtar Sorunlar (Key Issues),

• Yazılım Yapısı ve Mimarisi,

• Yazılım Kalitesi Değerlendirme,

• Yazılım Tasarım Gösterimleri (Notations),

• Yazılım Tasarım Stratejileri ve Metotları

KA 3: Yazılım İnşası

Çalışan, iş gören anlamlı bir yazılımın yaratılması (program yazma, var olan modülleri birleştirme, başka programları modifiye etme vb.) amaçlanır.

• Karmaşıklığın Azaltılması (Reduction of Complexity),

• Çeşitlilik Beklentisi (Anticipation of Diversity) var olan konfigürasyon üzerinden yeni konfigürasyon üretme

• Sağlama için Yapılandırma (Structuring for Validation),

• Dış Standartların Kullanımı

KA 4: Yazılım Sınama

Programın tanımlanmış kontrollü verilerle istendiği gibi çalıştığının dinamik olarak doğrulanması amaçlanır. Bir sistem veya uygulamanın denetlenebilir koşullar altında işletilebilmesi, çalıştırılması sürecidir.

• Temeller,

• Düzeyler (Levels),

• Teknikler,

• Ölçütler (Measures),

• Pratik Noktalar

KA 5: Yazılım Bakım

Yazılımın işletmede, çalışır durumda tutulması ve yeni durumlara uyarlanmasıdır.

• Temeller,

• Anahtar Konular,

• Süreç,

• Bakım Teknikleri.

Bakım Kategorileri; Düzeltici, Mükemmelleştirici, Uyarlanabilir, Önleyici bakım olarak dörde ayrılır.

KA 6: Konfigürasyon Yönetimi

Yazılım yapısının (konfigürasyon) her durumda tam bilinmesi, değişikliklerin kontrollü yapılması, yazılımın bütünlüğünün daima korunması amaçlanır.

• Sürecin Yönetimi,

• Nesne Belirleme (Item Identification),

• Değişiklik Kontrolü,

• Statü Hesap/Raporlama (Accounting),

• Denetleme (Auditing)

• Sürüm (versiyon) Kontrolü.

KA 7: Mühendislik Yönetimi

İşin mühendislik (proje) yönetimi, ölçümler vb.

• Başlatma ve Kapsam Tanımlama (Initiation & Scope),

• Proje Planlama,

• Proje Yürütme,

• Gözden Geçirme ve Değerlendirme,

• Sonuçlandırma (Closure),

• Ölçütler (Measures)

NOT

Yazılımla bütünleşik ürünler neler olabilir? Kaynak kod, gereksinim dokümanı, yazılım proje yönetim planı, analiz dokümanı, tasarım dokümanları, obje kod, test planları vb.

KA 8: Mühendislik Süreci

Yazılı süreçlerinin tanımlanması, uygulanması, ölçümü, değerlendirmesi, yönetimi ve iyileştirilmesi amaçlanır.

• Süreç Tanımı,

• Süreç Değerlendirmesi,

• Süreç ve Ürün Ölçütleri.

KA 9: Araçlar ve Metotlar

Yazılım mühendisliğinde kullanılan araçlar ve metotlar.

• Araçlar (Her KA için),

• Metotlar; Sezgisel (Heuristic),Biçimsel (Formal), Prototipleme.

KA 10: Kalite

İşin mühendislik (proje) yönetimi, ölçütler vb.

• Temeller,

• Yönetim,

• Pratik noktalar

SWEBOK Sürüm 3 ile Birlikte 15 Alana Çıkarılmıştır ve Aşağıdaki 5 Madde Eklenmiştir:

11.Yazılım mühendisliği profesyonel uygulaması(Mesleki Uygulaması)

12.Yazılım Mühendisliğinin Ekonomik İlkeleri

13.Bilgisayar Temelleri

14.Matematiksel Temeller

15.Mühendislik Temelleri

Daha Detaylı Bilgi İçin Bunları İnceleyebilirsiniz

[1] Swebook ile ilgili daha detaylı bilgiye buradan ulaşabilirsiniz.

[2] Türkiye’deki üniversitelerdeki yazılım mühendisliği öğretim programlarının SWEBOK kılavuzu kullanılarak değerlendirilmesi adlı yazıya buradan ulaşabilirsiniz.

--

--

Ayseleynavuz
Kodcular

Hi, i am software engineer. I write about software development and anything else that comes to mind Full-stack.