Model-güdülü Yazılım Geliştirme
- Giriş
- Model-güdülü Mimari (MDA)
- Model-güdülü Yazılım Geliştirme (MDSD)
- Modelleme
- Dönüşümler (M2M, M2T)
- Durum Çalışması
- Sonuç
2. İçerik
• Giriş
• Model-güdülü Mimari (MDA)
• Model-güdülü Yazılım Geliştirme (MDSD)
– Modelleme
– Dönüşümler (M2M, M2T)
• Durum Çalışması
• Sonuç
…-oriented …-yönelimli
…-driven …-güdülü
…-based …-tabanlı
Tasnif Dışı
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş
2
3. Model-güdülü Mimari (MDA)
• Sistemler arası ortaklanamayan alanlar;
–
–
–
–
Donanım
İşletim Sistemi
Programlama Dili
Ağ Protokolleri
• Ortaklama için çözüm(!); Ara katman yazılımları.
• MDA, ortak bir dilde anlaşma hedefini daha üst
düzeyde (model) gerçekleştirerek çözüm sunar.
• Temel amaç; platform bağımlı kaygıların ayrımı.
Model: Bir sisteme ait işlev, yapı ve davranışların
biçimsel belirtimi.
Tasnif Dışı
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş
3
4. Model-güdülü Mimari (MDA)
• OMG (Object Management Group)’nin önerdiği dört
katmanlı yapıyı temel alır.
MOF
(sınıf, öznitelik, ilişki)
UML, CWM
(sınıf, öznitelik, durum, ...)
Uygulama
(sınıf, Veri t. tablosu, ...)
Uygulama Verisi
(olgu, Veri t. satırı, ...)
M3
M2
M1
M0
• En üst seviye olan dördüncü seviye (M3 / meta3 veri),
ifade yeteneği olarak kendi kendini tanımlayabilir
güçtedir.
“Tüm yazılım mühendisliği tarihi, soyutlama seviyelerinin
artırılması ile ilgilidir.”
Grady Booch
Tasnif Dışı
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş
4
5. Model-güdülü Mimari (MDA)
• MDA, CIM (Computation Independent Model), PIM
(Platform Independent Model), PSM (Platform Specific
Model) modelleri ve bunların arasındaki geçişleri
tanımlar.
Gereksinim
İzdüşümü
CIM
Soyut
Yazılım Geliştirme
İzdüşümü
PIM
eşleme
eşleme
eşleme
Platform
İzdüşümü
OpenDDS
Modeli
Gerçekleştirim
İzdüşümü
Milsoft DDS
Modeli
…
Diğer
Model
OpenDDS
Gerçk.
Milsoft DDS
Gerçk.
…
Diğer
Gerçk.
PSM
Kod
Somut
Tasnif Dışı
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş
5
6. Model-güdülü Mimari (MDA)
• MDA yaklaşımı, uygulamada;
– Geliştirilen yazılımın, karmaşıklık ve maliyetini
azaltır.
– Yazılımın kalitesinin artırır. Model seviyesinde
sınama yapmaya olanak tanır.
– İş modellerinin yeniden kullanımını sağlar.
– Yeni teknolojiler, var olan sistemlere hızlıca
uygulanabilir.
Tasnif Dışı
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş
6
7. Model-güdülü Yazılım Geliştirme
• Yol haritası:
1.Hazır iş mantığı modelini al.
2.Gerekli alt kümeyi oluştur.
3.Hazır gerçekleştirim teknolojisi modelini al.
4.Modeller arası bağlantıları (geçişleri) tanımla.
5.Sistemi türet.
• Hazır modelleme araçları: ArcStyler, iUML,
OptimalJ, Enterprise Architect, …
• Eclipse Modeling Project
(OAW - OpenArcitectureWare)
Tasnif Dışı
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş
7
8. Model-güdülü Yazılım Geliştirme
• MDA kullanımı, mutlak başarı anlamına
gelmemelidir (“gümüş kurşun” yok).
• Tasarımın başarısı tasarım kararlarının etkin
alınmasına doğrudan bağlıdır.
“... UML çizgeleri oluşturmanın da bir maliyeti vardır daha
da önemlisi UML modelleri, müşteriler için anlamsızdır.”
Martin Fowler
Tasnif Dışı
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş
8
16. Soru?
• Bir geliştiricinin, beceri/deneyim seviyesinden
bağımsız olarak, nihai ürüne yaptığı kod katkısı
~10 satır/gün (bkz. Mythical Man Month).
“İyi bir tornacı, ortalama bir tornacıdan bir kaç kat fazla
maaş alabilir ancak iyi bir kod geliştirici, ortalama bir
geliştiricinin 10,000 katına değer”
Bill Gates
• Peki iyi geliştirici neden/nasıl iyi?
Tasnif Dışı
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş
16