Upload
orcun-dayibas
View
352
Download
2
Embed Size (px)
DESCRIPTION
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ç
Citation preview
Tasnif Dışı
Model-güdülü Yazılım Geliştirme
(MDSD)
Orçun Dayıbaş
Ocak, 2013
1 Aselsan SST-MD-YMM / DSYS / O.Dayıbaş
Tasnif Dışı
İç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ç
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 2
…-oriented …-yönelimli
…-driven …-güdülü
…-based …-tabanlı
Tasnif Dışı
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ı.
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 3
Model: Bir sisteme ait işlev, yapı ve davranışların
biçimsel belirtimi.
Tasnif Dışı
Model-güdülü Mimari (MDA)
• OMG (Object Management Group)’nin önerdiği dört
katmanlı yapıyı temel alır.
• En üst seviye olan dördüncü seviye (M3 / meta3 veri),
ifade yeteneği olarak kendi kendini tanımlayabilir
güçtedir.
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 4
M2
M1
M0
M3 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ı, ...)
“Tüm yazılım mühendisliği tarihi, soyutlama seviyelerinin
artırılması ile ilgilidir.”
Grady Booch
Tasnif Dışı
Model-güdülü Mimari (MDA)
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 5
• MDA, CIM (Computation Independent Model), PIM
(Platform Independent Model), PSM (Platform Specific
Model) modelleri ve bunların arasındaki geçişleri
tanımlar.
Kod
PSM
PIM
…
eşleme
eşleme
eşleme
…
Soyut
Somut
Milsoft DDS
Modeli Diğer
Model
OpenDDS
Modeli
OpenDDS
Gerçk.
Milsoft DDS
Gerçk.
Diğer
Gerçk.
CIM Gereksinim
İzdüşümü
Yazılım Geliştirme
İzdüşümü
Platform
İzdüşümü
Gerçekleştirim
İzdüşümü
Tasnif Dışı
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.
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 6
Tasnif Dışı
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)
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 7
Tasnif Dışı
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.
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 8
“... 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ışı
Model-güdülü Yazılım Geliştirme
• Mimari yansılarda kalmamalı.
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 9
Tasnif Dışı
Durum Çalışması
• Eclipse Modeling Project
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 10
Tasnif Dışı
Durum Çalışması
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 11
• DDS haberleşmesini izlemek için bir test GKA
uygulaması.
Tasnif Dışı
Durum Çalışması
• GkaTest-ML için dil bilgisi (Xtext)
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 12
Tasnif Dışı
Durum Çalışması
• GkaTest-ML dilinde bir belirtim
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 13
Tasnif Dışı
Durum Çalışması
• GkaTest Uygulaması
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 14
Tasnif Dışı
Durum Çalışması
• GkaUretec
• GkaTestKulac
• GkaGen
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 15
Tasnif Dışı
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).
• Peki iyi geliştirici neden/nasıl iyi?
Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 16
“İ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
Tasnif Dışı Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 17
Teşekkürler…
• Sorularınız?