17
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ş

Model-güdülü Yazılım Geliştirme

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

Page 1: Model-güdülü Yazılım Geliştirme

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ş

Page 2: Model-güdülü Yazılım Geliştirme

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ı

Page 3: Model-güdülü Yazılım Geliştirme

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.

Page 4: Model-güdülü Yazılım Geliştirme

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

Page 5: Model-güdülü Yazılım Geliştirme

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ü

Page 6: Model-güdülü Yazılım Geliştirme

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

Page 7: Model-güdülü Yazılım Geliştirme

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

Page 8: Model-güdülü Yazılım Geliştirme

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

Page 9: Model-güdülü Yazılım Geliştirme

Tasnif Dışı

Model-güdülü Yazılım Geliştirme

• Mimari yansılarda kalmamalı.

Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 9

Page 10: Model-güdülü Yazılım Geliştirme

Tasnif Dışı

Durum Çalışması

• Eclipse Modeling Project

Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 10

Page 11: Model-güdülü Yazılım Geliştirme

Tasnif Dışı

Durum Çalışması

Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 11

• DDS haberleşmesini izlemek için bir test GKA

uygulaması.

Page 12: Model-güdülü Yazılım Geliştirme

Tasnif Dışı

Durum Çalışması

• GkaTest-ML için dil bilgisi (Xtext)

Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 12

Page 13: Model-güdülü Yazılım Geliştirme

Tasnif Dışı

Durum Çalışması

• GkaTest-ML dilinde bir belirtim

Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 13

Page 14: Model-güdülü Yazılım Geliştirme

Tasnif Dışı

Durum Çalışması

• GkaTest Uygulaması

Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 14

Page 15: Model-güdülü Yazılım Geliştirme

Tasnif Dışı

Durum Çalışması

• GkaUretec

• GkaTestKulac

• GkaGen

Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 15

Page 16: Model-güdülü Yazılım Geliştirme

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

Page 17: Model-güdülü Yazılım Geliştirme

Tasnif Dışı Aselsan SST-MD-YMM / DSYS / O.Dayıbaş 17

Teşekkürler…

• Sorularınız?