1 Giriş Tasarım Kavramları Modülerlik Sistem ve modülleri İşlevsel

advertisement
Bölüm – 6 Tasarım
Yansı - 2
Giriş
Yazılım Mühendisliği
Hafta - 6
Tasarım
 Tasarım, Sistem Analizi çalışması sonucunda üretilen
Mantıksal Modelin Fiziksel Modele dönüştürülme
çalışmasıdır.
 Fiziksel Model geliştirilecek yazılımın;




hangi parçalardan oluşacağını,
bu parçalar arasındaki ilişkilerin neler olacağını,
parçaların iç yapısının ayrıntılarını,
gerekecek veri yapısının fiziksel biçimini (dosya, veri
tabanı, hash tablosu, vektör, vs)
tasarımını içerir.
Yazılım Mühendisliği
23.03.2013
1
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 3
Bölüm – 6 Tasarım
Yansı - 4
Tasarım Kavramları
Modülerlik
 Soyutlama (abstraction): Detayları gizleyerek
 Bütün karmaşıklığın tek bir modülde toplanması
yukarıdan bakabilme imkanı sağlanır.
yerine, anlaşılabilir ve dolayısıyla projenin zihinsel
kontrol altında tutulması için sistem bir çok modüle
ayrılır.
 İyileştirme (enhancement): Soyutlama düzeyinde
irdeleme bittikten sonra, daha alt seviyelere inilerek
tanımlamalarda ayrıntı, bazen de düzeltme yapılarak
tasarımın daha kesinlik kazanması sağlanır.
 Modüller, isimleri olan tanımlanmış işlevleri bulunan
ve hedef sistemi gerçekleştirmek üzere tümleştirilen
birimlerdir.
 Modülerlik (modularity): Sistemi istenen kalite
faktörleri ışığında parçalara ayrıştırma sonucu elde
edilir.
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 5
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Sistem ve modülleri
Yansı - 6
İşlevsel Bağımsızlık
 Modüllere parametre ile veri gönderilir ve sonuç
Sistem
değer alınır.
Çıkış yelpazesi=3
 Bu modülü çağıran program parçası sadece bu
A
B
sonucu kullanabilir.
C
 Çağrılan modülün işlevsel olarak yaptıkları ile ilgili
derinlik
değildir.
A
A
A
A
Giriş
yelpazesi
A
A
A
A
genişlik
23.03.2013
Yazılım Mühendisliği
23.03.2013
Yazılım Mühendisliği
1
Bölüm – 6 Tasarım
Yansı - 7
Bölüm – 6 Tasarım
Veri Tasarımı
Yansı - 8
Verilerin Düzenlenmesi
 Değişik tekniklerle veri toplama işlemi gerçekleştikten
sonra bu verilerin düzenlenmesi gerekir.
 Yapı Tasarımı, arayüz tasarımı ve süreç tasarımından
önce yapılması gereken ilk tasarım veri tasarımıdır.
 Her alınan bilgi incelenmeli ve sistem tasarımcılarının
anlayabileceği şekilde sunulmalıdır.
 Bilgi saklama ve soyutlama bu işlem için önemli
kavramlardır.
 Bu eylemi gerçekleştirmek için en bilinen ve
kullanılan bazı yöntemler; veri akış şemaları, varlık
ilişkili şemalar, karar tabloları ve karar ağaçlarıdır.
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 9
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 10
Veri Akış Şemaları
Veri tasarımında dikkat edilecek konular
 Değişik veri yapıları değerlendirilmelidir.
 Veri akış şemaları (Data Flow Diagram - DFD) ile
 Bütün veri yapıları ve bunlar üzerinde yapılacak
verinin sisteme girişini, sistemde işlenişini, işleniş
esnasında sistem içindeki hareketleri, işlendikten
sonra sistem içinde saklanması veya sistem dışına
gönderilmesi gibi aşamalarda izledigi yol görsel
olarak ifade edilir.
 Verinin işleyiş sırasında kimler tarafından ve ne
şekilde işlendiği de gözler önüne seriliyor.
işlemler tanımlanmalıdır.
 Alt düzeyde tasarım kararları tasarım süreci
içerisinde geciktirilmelidir.
 Bazı çok kullanılan veri yapıları için bir kütüphane
oluşturulmalıdır.
 Kullanılacak programlama dili soyut veri tiplerini
desteklemelidir.
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 11
Veri Akış Şemaları
Yazılım Mühendisliği
23.03.2013
Veri Akış Şeması Elemanları
Bölüm – 6 Tasarım
Veri Akış Şeması
Elemanları
Özellikler
ayrılırlar.



Fiziksel Veri Akış Şemaları: bu şemalar uygulama bağımlı
şemalardır.
Gerçek sistemde yer alan donanım, değişik bölümlerdeki
değişik insanlar vb. Bu şemalarda yer alır.
Mantıksal Veri Akış Şemaları: sistemdeki eylemlerin nasıl
gerçekleştiğinden çok sistemde nelerin yer aldığı üzerinde
durulur.
İşlem(Process): veri
Numarası, adı, tipi,
üzerinde gerçekleşen tanımlaması,
iş birimidir.
girdilerin ve
çıktıların veri akışı,
notlar
Veri Akışı (Data
Flow):işlemler arası
verinin akışını
gösterir
Numarası, adı, tipi,
tanımlaması, başka
isim, nitelik, notlar
Veri Depolama (Data Numarası, adı, tipi,
Storage):verinin
tanımlaması, başka
mantıksal
isim, nitelik, notlar
depolanması
23.03.2013
Yazılım Mühendisliği
Gösterimi
Yourdon & Coad
 Veri akış şemaları fiziksel ve mantıksal olarak ikiye
Dış Varlık (External
Entity):verinin
kaynağı yada
23.03.2013 yerdir.
gideceği
Etiketi, tipi,
tanımlaması, başka
isim, nitelik, notlar
Yansı - 12
İŞLEM
VERI AKIŞI
Veri Deposu
Dış Varlık
Gane & Sarson
İŞLEM
VERI AKIŞI
Veri
Deposu
Dış Varlık
Yazılım Mühendisliği
2
Bölüm – 6 Tasarım
Yansı - 13
Bölüm – 6 Tasarım
Yansı - 14
Veri Akış Şemaları
Veri Akış Şemaları
 Bu elemanlar kullanılarak bir veri akış şeması
 Veri akış şemalarında genelden özele denebilecek bir
çizilebilir ancak dikkat edilmesi ve uyulması gereken
bazı kurallar bulunmaktadır.





yapıyla ele alınmaktadır.
 Bu yapının daha iyi işleyebilmesi için veri akış
Her işlem için bir giriş bir de çıkış veri akışı olmalıdır
Her işlem kendine gelen veriyi işleyip yeni bir veri
üretmelidir.
Her veri deposu en az bir tane veri akışına katılmalıdır.
Her dış varlık en az bir veri akışına katılmalıdır
Bir veri akışı en az bir işleme eklenmelidir.
şemaları katmanlardan oluşur.
 Bu katmanlarda sistem en üst katmanda en genel
durumuyla en alt katmanda ise istenen en özel
birimiyle ifade edilir
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 15
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 16
Örnek
 Bu kurallar doğrultusunda, bir kumaş fabrikasından kumaş alıp,
aldığı kumaşı işleyip müşterilerine satan bir firmanın veri akış
şeması:
KUMAŞ
FABRIKASI
DİKİŞ
MÜŞTERI
 Şekilde kumaş fabrikası ve müşteri dış varlık, dikiş ise işlemdir. Bu
elemanlar arasında ilişki olduğunu gösteren oklar ise veri akışını
ifade etmektedir.
 İlişki: kumaş fabrikasından gelen kumaşlar dikiş işleminden geçip
müşteriye sunulmakta, aynı zamanda müşterilerden bir karşılık
23.03.2013 alınıp kumaş fabrikasına verilmektedir.
Yazılım Mühendisliği
Bölüm – 6 Tasarım
Yansı - 17
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Varlık İlişkili Şemalar
Yansı - 18
Varlık İlişkili Şemalar
 Varlık ilişkili şemalar (Entity Relationship Diagram –
ERD) sistemin kullanacağı veritabanı tasarımında
kullanılır.
 Bir sistemdeki varlıkların birbirleriyle olan karşılıklı
ilişkileri görsel olarak ifade eden şemalardır.
 Varlık ilişkili şemaları sistemde gerçekleşen bütün
işlemlerin veritabanı eksenli düşünülmesi ile ortaya
çıkan şemalardır. Sistemde yer alan bütün veriler
varlıklara ve bu varlıklar arasındaki ilişkilere aktarılır.
Varlık İlişki Şeması Elemanları
Varlık (Entity): verinin depolanmak
istendiği somut veya mantıksal
nesnelerdir. Varlıklar; görevler, olaylar,
yerler, somut nesneler ve kavram
olarak beş şekilde sınıflandırılır.
İlişki (Relationship): iki varlığın
veritabanı içinde veriyi nasıl
paylaştıklarını ifade eder.
Nitelik (Attribute): varlığın özelliklerini
tanımlar.
23.03.2013
Yazılım Mühendisliği
23.03.2013
Simgeler
VARLIK
İLİŞKİ
NİTELİK
Yazılım Mühendisliği
3
Bölüm – 6 Tasarım
Yansı - 19
Bölüm – 6 Tasarım
Örnek
Örnek
ese
radı
KID
yazar
Yansı - 20
adı
KullID
KİTAPLAR
 Yukarıdaki örnek bir kütüphane sisteminin kitap ödünç
adresi
verme modülü için hazırlanmış basit bir varlık ilişki
şemasıdır.
 Bu şemada “ÖDÜNÇ-VERİLEN-KİTAPLAR”,
“KİTAPLAR” ve “KULLANICILAR” birer varlık olarak
yer almaktadır.
KULLANICILAR
1:N ifadesi ilişkinin nasıl bir ilişki olduğunu
ifade eder. “KullID”, “Adı” gibi ifadeler de varlığın bazı
değerlerini tutmaya yöneliktir ve varlığın niteliklerini
ifade eder.
 Şemada
1:N
1:N
ÖDÜNÇ-VERİLENKİTAPLAR
KID
KullID
Iade
tarihi
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 21
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 22
Yapısal Tasarım
Ayrıntı Tasarım- Süreç Tasarımı
 Yapısal Tasarımın ana hedefi modüler bir yapı
 Süreç tasarımı; veri, yapı ve arayüz tasarımından
geliştirip modüller arasındaki kontrol ilişkilerini temsil
etmektir.
sonra yapılır.
 İdeal şartlarda bütün algoritmik detayın belirtilmesi
 Ayrıca yapısal tasarım bazen de veri akışlarını
amaçlanır.
gösteren biçime dönüştürülebilir.
 Ayrıca süreç belirtiminin tek anlamı olması gerekir,
 Veri Akışları Üç parçada incelenebilir
 Girdi Akışı
 Çıktı Akışı
 İşlem Akışı
değişik şahıslar tarafından farklı yorumlanmamalıdır.
 Doğal diller kullanılabilir (açıklamalarda, çünkü doğal
dil tek anlamlı değildir)
 Süreç Tanımlama Dili (PDL)
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 23
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 24
Yapısal Program Yapıları
Karar Tabloları
 Yapısal programlamanın temel amacı;
 program karmaşıklığını en aza indirmek,
 program anlaşılabilirliğini artırmaktır.
 Bazen karmaşık koşul değerlendirmeleri yapmak
gerekir. Bunların düzenli bir gösterilimi karar
tablolarında yapılabilir.
 Bu amaçla şu yapıları kullanılır;
 Ardışıl İşlem yapısı


 Öncelikle, bütün işlemler saptanmalı, sonra ön
koşullar belirlenmelidir.
Koşullu işlem yapısı
Döngü yapısı
 Belirli işlemler ile belirli koşulları birleştirerek tablo
 GOTO kullanımı uygun değildir.
oluşturulur.
 Alt tarafta ise işlemler benzer satırlar olarak gösterilir.
23.03.2013
Yazılım Mühendisliği
23.03.2013
Yazılım Mühendisliği
4
Bölüm – 6 Tasarım
Yansı - 25
Bölüm – 6 Tasarım
Yansı - 26
Karar Tabloları
Karar Tabloları
 Sistemde yer alan bütün verileri ve etkinlikleri
 Bir karar tablosunu meydana getiren 4 eleman vardır.
 1. Koşullar: bir karar tablosunda gerekli olan bütün
görülebilmesi hatta olası durumların sezilebilmesi ve
gözden kaçırılmaması için etkili bir şekilde
kullanılabilirler.
sınamaların listelemesi bazı kaynaklarda “şartlar”
şeklinde de kullanılmaktadır.
 2. Eylemler: karar tablosunda yer alan bütün
işlemlerin listelenmesi, bazı kaynaklarda “faaliyetler”
şeklinde de kullanılmaktadır.
 3. Koşul Kuralları: koşulların gerçekleşmesinde
karşılaşılabilecek olası durumları listelemesi
 4. Eylem Kuralları: koşul kurallarına göre karar
verilen eylemin belirtilmesi.
 Karar tabloları, karar verme mantığının tablolar
üzerinde ifade edilmesiyle oluşur. Karar tabloları bir
sistem işlemini anlaşılabilir olması için o işlemin
koşulları ve çalışma biçimini ayırarak sunar.
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 27
Bölüm – 6 Tasarım
Karar Tablosu Örneği-Hesap
1
2
3
4
Hesap Geçerli
Kurallar
X
X
X
X
Şifre Geçerli
X
X
X
Yeterli Nakit Var
X
Yeterli Bakiye Var
X
Para Yatırma İşlemi
Para Gönderme İşlemi
Yansı - 28
Karar Ağaçları
• Karar verme aşamalarının kök dallanmalı bir yapıyla
ortaya çıktığı durumlarda oldukça verimli kullanılan bir
yöntem olan karar ağaçları dallanmaların grafiksel olarak
gösterildiği şemalardır.
 Karar ağaçları kararların, olayların, bir sorunun sonuçları
ile ilgili durumların iki boyutlu grafiklerle sunulmasıdır.
X
Bakiye Bildirme İşlemi
Para Çekme İşlemi
Yazılım Mühendisliği
23.03.2013
X
 Karar ağaçları, sistemle ilgili olası, beklenen, alternatif
durumları belirlemek için kullanırlar. Bununla beraber
birbiri ardına gelen kararlar dizisinin nasıl ilerlediğini
gösteren yolda karar ağaçları ile ifade edilebilir.
X
X
X
 Karar ağaçları kök denebilecek bir tek durumla başlar ve
her biri bir çıktı (karar) olan birden fazla eylemle son bulur.
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 29
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 30
Program Tanımlama Dili
Karar Ağacı Örneği
 Program Tanımlama Dilleri süreç belirtiminde doğal
dillerin programlama dili ile sentezlenmesi şeklinde
ortaya çıkmıştır.
 Hangi programlama dilinin kullanılacağından
bağımsız özellikler bulunmalıdır.
DO
Hesap Numarasını Oku
IF (hesap numarası geçerli değil) başlangıca dön
işlem türünü iste
IF (para yatırma islemi) { para_yatir(); Başlangıca dön}
IF (yeterli bakiye yok) başlangıca dön
WHILE
23.03.2013
Yazılım Mühendisliği
23.03.2013
Yazılım Mühendisliği
5
Bölüm – 6 Tasarım
Yansı - 31
Tasarlanması Gereken Ortak Alt
Sistemler
Bölüm – 6 Tasarım
Yansı - 32
Yetkilendirme Alt Sistemi
 Özellikle kurumsal uygulamalarda farklı kullanıcıların
kullanabilecekleri ve kullanamayacakları özellikleri
ifade eder.
 Yetkilendirme altsistemi
 Güvenlik altsistemi


 Yedekleme altsistemi

İşlev bazında yetkilendirme
Ekran bazında yetkilendirme
Ekran alanları bazında yetkilendirme
 Veri transferi altsistemi
 Oracle veri tabanına erişim konusunda yetkilendirme
 Arşiv altsistemi
yapmaktadır.
 Dönüştürme altsistemi
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 33
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 34
Güvenlik Alt Sistemi
Yedekleme Alt Sistemi
 Yapılan bir işlemde, işlemi yapan kullanıcının
 Her bilgi sisteminin olağandışı durumlara hazırlıklı
izlerinin saklanması işlemleri.
olmak amacıyla kullandıkları veri tabanı (sistem)
yedekleme ve yedekten geri alma işlemlerinin olması
gerekmektedir.
 LOG files (Sistem günlüğü)
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 35
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Veri İletişim Alt Sistemi
Yansı - 36
Arşiv Alt Sistemi
 Coğrafi olarak dağıtılmış hizmet birimlerinde çalışan
makineler arasında veri akışının sağlanması işlemleri
 Belirli bir süre sonrasında sık olarak kullanılmayacak
olan bilgilerin ayrılması ve gerektiğinde bu bilgilere
erişimi sağlayan alt sistemlerdir.
 Çevirim içi veri iletimi (real-time)
 Aktif veri tabanı.
 Çevirim dışı veri iletimi (disketler, teypler)
23.03.2013
Yazılım Mühendisliği
23.03.2013
Yazılım Mühendisliği
6
Bölüm – 6 Tasarım
Yansı - 37
Bölüm – 6 Tasarım
Dönüştürme Alt Sistemi
Yansı - 38
Kullanıcı Arayüz Tasarımı
 Geliştirilen bilgi sisteminin uygulamaya alınmadan
önce veri dönüştürme (mevcut sistemdeki verilerin
yeni bilgi sistemine aktarılması) işlemlerine ihtiyaç
vardır.
 Kullanıcı ile ilişkisi olmayan arayüzler
 Modüller arası arayüz
 Sistem ile dış nesneler arası arayüz
 Kullanıcı arayüzleri
 Kullanım kolaylığı ve öğrenim zamanı esastır

Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 39
Program=arayüz yaklaşımı vardır
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 40
Genel Prensipler
Bilgi Gösterimi
 Veri giriş formlarının tutarlı olması
 Yalnızca içinde bulunulan konu çerçevesi ile ilgili bilgi
gösterilmeli
 Önemli silmelerde teyit alınmalı
 Veri çokluğu ile kullanıcı bunaltılmamalı, grafik ve
 Yapılan çoğu işlem geri alınabilmeli
resimler kullanılmalı
 Hataların affedilmesi, yanlış girişte kırılmama
 Tutarlı başlık, renkleme ve kısaltma kullanılmalı
 Komut isimlerinin kısa ve basit olması
 Hata mesajları açıklayıcı ve anlaşılır olmalı
 Menülerin ve diğer etkileşimli araçların standart
 Değişik tür bilgiler kendi içinde sınıflandırılmalı
yapıda kullanımı
 Rakamsal ifadelerde analog görüntü verilmeli (%89
değil)
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 41
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 42
Veri Girişi
Kullanıcı Arayüz Prototipi
 Kullanıcı hareketleri en aza indirilmeli
 Tasarım çalışması sonucunda, daha önceden
gereksinim çalışması sırasında hazırlanmış olan
kullanıcı arayüz prototipi, ekran ve rapor tasarımları
biçimine dönüşür. Ekranlar son halini alır, raporlar
kesinleşir. Kullanıcıya gösterilerek onay alınır.
 Gösterim ve girdi sahaları birbirinden ayrılmalı (renk)
 Kullanıcı uyarlamasına izin verilmeli, kullanıcı bazı
özellikleri tanımlayabilmeli
 Kullanılan konu ile ilgili gereksiz komutlar
 Tüm programın tek elden çıktığının ifade edilebilmesi
deaktifleştirilmeli
açısından tüm ekranların aynı şablon üzerine
oturtulması önerilmektedir.
 Bütün girdiler için yardım kolaylıkları olmalı




23.03.2013
Yazılım Mühendisliği
23.03.2013
Menü Çubuğu
Araç Çubuğu
Gövde (Değişebilir)
Durum Çubuğu
Yazılım Mühendisliği
7
Bölüm – 6 Tasarım
Yansı - 43
Bölüm – 6 Tasarım
Yansı - 44
Başlangıç Tasarım Gözden Geçirme
Ayrıntılı Tasarım Gözden Geçirme
 Yapılan tasarım çalışmasının bir önceki geliştirme
 Başlangıç tasarımı gözden geçirme çalışmasının
aşaması olan analiz aşamasında belirlenen
gereksinimleri karşılayıp karşılamadığının
belirlenmesidir.







başarılı bir biçimde tamamlanmasından sonra,
tasarımın teknik uygunluğunu belirlemek için Ayrıntılı
Tasarım Gözden Geçirme çalışması yapılır. Bu
çalışmada;
Sistem gereksinimlerine yardımcı olan kullanıcılar
Sistem analizini yapan çözümleyiciler
Sistemin kullanıcıları
Tasarımcılar
Yönlendirici
Sekreter
Sistemi geliştirecek programcılar




Çözümleyiciler
Sistem Tasarımcıları
Sistem Geliştiriciler
Sekreter
den oluşan bir ekip kullanılır.
dan oluşan bir grup tarafından yapılır.
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 45
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Tasarım Kalite Ölçütleri
Yansı - 46
Bağlaşım
 Modüller arası bağlılığın ölçülmesi için kullanılan bir
ölçüttür.
 Bağlaşım (Coupling)
Tasarımı oluşturan modüller arası ilişki ile ilgilidir.
 Yüksek kaliteli bir tasarımda bağlaşım ölçümü az
olmalıdır.
 Bağlılık-Yapışıklık (Cohesion)
 Bağlaşımın düşük olması
 Hatanın dalgasal yayılma özelliğinin azaltılması
 Modüllerin bakım kolaylığı
 Modüller arası ilişkilerde karmaşıklığın azaltılması
Modüllerin iç yapısı ile ilgilidir.
nedenleri ile istenmektedir
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 47
Bölüm – 6 Tasarım
Yansı - 48
Yalın Veri Bağlaşımı
Karmaşık Veri Bağlaşımı
 Herhangi iki modül arası iletişim yalın veriler
 Herhangi iki modül arasındaki iletişimde
(tamsayı, karakter, boolean, vs) aracılığı ile
gerçekleştiriliyorsa bu iki modül yalın veri
bağlaşımlıdır şeklinde tanımlanır.
23.03.2013
Yazılım Mühendisliği
23.03.2013
Yazılım Mühendisliği
kullanılan parametrelerin karmaşık veri yapısı
(kayıt, dizi, nesne, vs) olması durumunda
modüller karmaşık veri paylaşımlı olarak
tanımlanır.
23.03.2013
Yazılım Mühendisliği
8
Bölüm – 6 Tasarım
Yansı - 49
Bölüm – 6 Tasarım
Denetim Bağlaşımı
Yansı - 50
Ortak Veri Bağlaşımı
 İki Modül arasında iletişim parametresi olarak
 Eğer iki modül ortak bir alanda tanımlanmış verilere
ulaşabiliyorsa bu iki modül ortak veri bağlaşımlı olarak
tanımlanır.
denetim verisi kullanılıyorsa bu iki modül
denetim bağlaşımlı olarak tanımlanır.
 Verilerin ortak veri bağlaşımlı olmaları şu nedenlerden
dolayı fazla istenmez;
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 51

Ortak veri alanını izlemek zordur.

Ortak veri kullanan modüllerde yapılan değişiklikler diğer
modülleri etkiler.

Ortak veri üzerinde yapılacak değişikliklerde bu veriyi
kullanacak bütün modüller göz önüne alınmalıdır.
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 52
İçerik Bağlaşımı
Bağlılık-Yapışıklık
 Modüllerin iç içe tasarlanması sonucu, bir
 Bir modülün kendi içindeki işlemler arasındaki
ilişkilere ilişkin bir ölçüttür. Modül gücü olarak ta
tanımlanır.
modülün başka bir modül içerisinde
tanımlanmış veri alanına erişebilmesi
olanaklaşır ve bu durum içerik bağlaşımına
yol açar.
 Tasarımda bağlılık-yapışıklık özelliğinin yüksek
olması tercih edilir.
 Yapışıklık ile Bağlaşım ters orantılıdır.
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 53
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 54
İşlevsel Yapışıklık
Sırasal Yapışıklık
 İşlevsel Yapışık bir modül, tek bir iş problemine ilişkin
 Bir modülün içindeki işlemler incelendiğinde,
sorunu çözen modül olarak tanımlanır.
bir işlemin çıktısı, diğer bir işlemin girdisi
olarak kullanılıyorsa bu modül sırasal yapışık
bir modül olarak adlandırılır.
 Maas_Hesapla, Alan_Hesapla gibi
Ham_Veri_Kaydını_Düzelt
Duzeltilmis_Ham_Veri_Kaydini_Dogrula
Dogrulanmis_Kaydi_Gonder
23.03.2013
Yazılım Mühendisliği
23.03.2013
Yazılım Mühendisliği
9
Bölüm – 6 Tasarım
Yansı - 55
Bölüm – 6 Tasarım
Yansı - 56
İletişimsel Yapışıklık
Yordamsal Yapışıklık
 Bir modülün içindeki farklı işlemler aynı girdi
 Yordamsal Yapışık modüldeki işlemler
arasında denetim ilişkisi bulunmaktadır.
ya da çıktıyı kullanıyorlarsa bu modül
iletişimsel yapışık bir modül olarak
adlandırılır.
 İşlemlerin birbirleri ile veri ilişkisi yoktur,
ancak işlem sırası önemlidir.
Sicil_No_yu_Al
Adres_Bilgisini_Bul
Telefon_Bilgisini_Bul
Maas_Bilgisini_Bul
Ekran_Goruntusunu_Yaz
Giris_Kaydini_Oku
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 57
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Zamansal Yapışıklık
Yansı - 58
Mantıksal Yapışıklık
 Bir modül içindeki işlemlerin belirli bir zamanda
 Mantıksal olarak aynı türdeki işlemlerin bir
uygulanması gerekiyor ve bu işlemlerin kendi
aralarında herhangi bir ilişkisi yok, yani
işlemlerin sırası önemli değil ise, zamansal
yapışıklık vardır.
araya toplandığı modüller mantıksal yapışık
olarak adlandırılır.
Dizilere değer atama işlemleri
Alarm_Zilini_Ac
Kapiyi_Ac
Kamerayi_Calistir
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yazılım Mühendisliği
23.03.2013
Yansı - 59
Gelişigüzel Yapışıklık
 İşlemler arasında herhangi bir ilişki bulunmaz.
Unified ModelLing
Language (UML)
Ara_Kayit_Oku
B_dizisine_baslangic_deger_ata
Stok_kutugu_oku
Hata_iletisi_yaz
Bütünleşİk Modelleme
DİLİ
23.03.2013
23.03.2013
Yazılım Mühendisliği
60
Yazılım Mühendisliği
10
Bölüm – 6 Tasarım
Yansı - 61
Bölüm – 6 Tasarım
UML NEDİR?
UML NEDİR?
 UML, yazılımın tasarımı ve planlanması için kullanılan

standart bir dildir.
 Bir program ya da yazılım geliştirme dili değildir.

 Modelleme kanıtlanmış ve kabul edilmiş bir mühendislik
tekniğidir.

 Model gerçeğin basitleştirilmiş halidir. Model sayesinde
anlaşılması güç yazılımları basit bir dille ifade edebiliriz. Bu
da
yazılımın
anlaşılmasını
kolaylaştırır,
sistem
gereksinimlerini ve davranışlarını daha iyi anlamamızı ve
hatalarımızı kolaylıkla görüp en düşük seviyeye
indirgememizi sağlar.
Yazılım Mühendisliği
23.03.2013
Yansı - 62
Bölüm – 6 Tasarım
Yansı - 63

UML yazılım mühendisliğinde nesneye yönelik
sistemleri modellemede kullanılan açık standart olmuş
bir görsel modelleme dilidir.
Yazılım geliştirmenin çözümlemeden bakıma kadar tüm
aşamalarında ekipler ve bireyler arasındaki iletişimin
düzgün yürütülmesi için kullanılmaktadır.
Yazılımın yaşam döngüsü içinde farklı görev gruplarının
projeye ve sisteme farklı bakış açıları vardır. Bundan
dolayı UML çeşitli bakış açılarını ifade eden
diyagramlar içermektedir.
Çok zengin bir dil olmasından dolayı, Yazılım
Mühendisliği’nin bir çok yönden ihtiyaçlarını
karşılamaktadır.
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
UML’NİN TARİHİ
Yansı - 64
UML’YE NEDEN GEREK VAR?
 Hataların
kolaylıkla fark edilip en düşük seviyeye
indirgenmesi.( Risk, zaman, maliyet)
 Yazılım üretiminde başarı oranının düşük olması.
 Yazılımda paylaşım önemlidir. Tüm ekibin aynı dili
konuşabilmesi gerekmektedir.
 Sistemin tamamını basit bir dille ve görsellikle görebilmek
ve tasarlayabilmek gerekli.
 Modellenmiş ve dokümante edilmiş bir yazılımın
tanıtımının kolay olması.
 Yazılım kalitesini arttırma.
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 65
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
UML’NİN AVANTAJLARI-1
Yansı - 66
UML’NİN AVANTAJLARI-2
 UML diyagramları ile yazılım tamamını görebileceğimiz için
 Kodlama kolaylığı sağlar.
verimli bellek kullanımı sağlanabilir.
 Kullanılan tekrar kod sayısı ayırt edilebilir bu sayede
verim sağlanır.
 Mantıksal hataların minimum seviyeye düşürülmesini
sağlar. Bütün sistem tasarlandığı için oluşabilecek
hataların düzeltilmesi de daha kolaydır.
 Karmaşık sistemlerde değişiklik yapmayı kolaylaştırır.
 UML ile dokümanlaştırılmış kodları düzenlemek daha az
zaman alacaktır.
diyagramlarını kullanan yazılımcılar aynı dili
konuşacaklarından kolay iletişim sağlanır. Ayrıca müşteriler
ve teknik sorumlular diyagramlar üzerinden kolaylıkla iletişim
kurabilirler.
 UML
 Geliştirme maliyetinin düşmesini sağlar.
23.03.2013
Yazılım Mühendisliği
23.03.2013
Yazılım Mühendisliği
11
Bölüm – 6 Tasarım
Bölüm – 6 Tasarım
UML DİYAGRAMLARI
UML Temel Konvensiyonlar
 Bütün UML diyagramları düğüm ve kenarlardan oluşan
bir dil olan UML, modelleme için değişik
diyagramlar kullanır. Diyagramlar, bir sistem modelini
kısmen tarif eden grafiklerdir.
 Grafiksel
graflardan oluşur



Yansı - 68
Nodes are entities and drawn as rectangles or ovals
Dikdörtgenler sınıfları veya durumları gösterir
Oval şekiller fonksiyonları gösterir
 UML 2.0, 3 bölümde incelenen 13 farklı diyagram içerir.
• Sınıfların isimlerinde alt çizgi yoktur

• SimpleWatch
• Firefighter

• Durumların alt çizgisi vardır
• myWatch:SimpleWatch
• Joe:Firefighter

• İki düğüm arasındaki kenar onların arasındaki ilişkiyi belirtir
Yapısal diyagramlarda modellenen sistemde nelerin var
olması gerektiği vurgulanır.
Davranış diyagramlarında modellenen sistemde nelerin
meydana gelmesi gerektiğini belirtir.
Davranış diyagramlarının bir alt kümesi olan Etkileşim
diyagramlarında ise modellenen sistemdeki elemanlar
arasındaki veri ve komut akışı gösterilir.
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 69
Bölüm – 6 Tasarım
Durum Diyagramları
DAVRANIŞ DİYAGRAMLARI
button1&2Pressed
 Davranış Diyagramları:

Kullanım Senaryosu (Use-Case) diyagramı

Durum (Statechart) diyagramı
Initial state
Event
button1&2Pressed
button2Pressed
Increment
Hours
button1Pressed
Transition
State

Blink
Hours
Blink
Minutes
button2Pressed
Increment
Minutes
Faaliyet (Activity) diyagramı
button1Pressed
Blink
Seconds
Stop
Blinking
button2Pressed
Increment
Seconds
Final state
Tek bir objenin dinamik davranışını tarif eder
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 71
YAPISAL DİYAGRAMLAR
Bölüm – 6 Tasarım
Sınıf Diyagramları
Sınıf diyagramları sisteminin yapısını temsil eder
 Yapısal Diyagramlar
Association

Sınıf (Class) diyagramı

Nesne (Object) diyagramı
Class
Multiplicity
1

23.03.2013
2
PushButton
state
push()
release()
Bileşen (Component) diyagramı

Paket (Package) diyagramı

Dağılım (Deployment) diyagramı

Birleşik Yapı (Composite Structure) diyagramı
Attribute
1
LCDDisplay
blinkIdx
blinkSeconds()
blinkMinutes()
blinkHours()
stopBlinking()
referesh()
Watch
1 1
1
2
1
Battery
Load
Time
Now
Operations
Yazılım Mühendisliği
12
Bölüm – 6 Tasarım
Yansı - 73
Bölüm – 6 Tasarım
ETKİLEŞİM DİYAGRAMLARI
Sıralama Diyagramları
Actor
Message
Object
 Etkileşim Diyagramları
Lifeline
:Watch
:WatchUser

Sıralama (Sequence) diyagramı
pressButton1()

İletişim (Communication) diyagramı
pressButton2()

Etkileşime Bakış (Interaction Overview) diyagramı
pressButton1and2()

Zaman Akış (Timing) diyagramı
pressButton1()
:Time
:LCDDisplay
blinkHours()
blinkMinutes()
incrementMinutes()
refresh()
commitNewTime()
Activation
stopBlinking()
Sistemin objeler arasındaki dinamik davranışını mesaj olarak tarif eder
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 75
Bölüm – 6 Tasarım
Yansı - 76
USE CASE DİYAGRAMLARI
USE CASE DİYAGRAMLARI
 Analiz aşamasında Use Case Diyagramları kullanılır.
 Sistemin çok basit bir şekilde modellenmesini ve
 Tasarım aşamasında ise modellerin 3 tipi ortaya konulur.
1.
2.
3.
işlerin
detayının
(senaryonun)
metin
olarak
anlatılmasını içerir.
 Aktörden gelen bazı isteklere karşı sistemin yaptığı
aktiviteleri gösterir.
 Gelişmenin erken safhalarında yapılandırılır.
 Amaç
Sınıf Diyagramları
Durum Diyagramları
Etkileşim Diyagramları

Sistemin içeriğini belirtmek.
Sistemin gereksinimlerini elde etmek.

Sistemin mimarisini geçerli kılmak.

 Analistler ve uzmanlar tarafından geliştirilir.
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 77
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 78
USE CASE DİYAGRAMLARI
BİLEŞENLERİ
USE CASE DİYAGRAMLARI
 Aktör
23.03.2013
Yazılım Mühendisliği
23.03.2013
•
Sistemin kullanıcılarıdır.
•
Aktörler genelde belirli bir rol ifade ederler.
•
Diğer aktörlerle bağlantılı olabilirler bu bağlantı bir ok ile
gösterilir.
•
Sistem sınırları dışında gösterilir.
Yazılım Mühendisliği
13
Bölüm – 6 Tasarım
Yansı - 79
Bölüm – 6 Tasarım
USE CASE DİYAGRAMLARI BİLEŞENLERİ
Yansı - 80
USE CASE DİYAGRAMLARI BİLEŞENLERİ
 Use case
 Sistem sınırı
Use case
•
Sistemin destekleyeceği işler.
•
Sistem fonksiyonelliğinin büyük bir parçasını gösterir.
•
Diğer bir use case ile genişletilebilir.
•
Diğer bir use case içerebilir.
•
Sistem sınırları içinde gösterilir.
• İçerisinde sistemin ismi yazılıdır.
Sistem
• Sistemin kapsamını gösterir.
 Bağıntı ilişkisi
• Aktör ve use case ler arasındaki
bağıntıyı gösteren çizgidir.
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 81
*
*
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
USE CASE DİYAGRAMLARI
BİLEŞENLERİ
USE CASE DİYAGRAMLARI BİLEŞENLERİ
Yansı - 82
 Extension (eklenti) ilişkisi
 Inclusion (içerme) ilişkisi
Bu metotla bir use case içindeki adımlardan birini başka bir use
case içinde kullanabiliriz.
Bu metodla varolan bir Use Case 'e yeni yeni adımlar
ekleyerek yeni use case 'ler yaratılır.
Inclusion yöntemini kullanmak için <<include>> şeklindeki bir
ifade kullanılır.
Inclusion'da olduğu gibi extension 'ları göstermek için
yine use case 'ler arasına noktalı çizgiler konur ve
üzerine <<extend>> ibaresi yazılır.
Kullanmak istediğimiz use case 'ler arasına çektiğimiz noktalı
çizginin üzerine <<include>> yazısını yazarız.
<<extend>>
<<include>>
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 83
23.03.2013
Bölüm – 6 Tasarım
Yazılım Mühendisliği
Yansı - 84
USE CASE DİYAGRAMLARI BİLEŞENLERİ
 Genelleme ilişkisi:
• Özelleşmiş
use case ile daha genel use case
arasındaki ilişkidir.
• Özelleşmiş use case den temel use case’e doğru bir
ok ile gösterilir.
23.03.2013
Yazılım Mühendisliği
23.03.2013
Yazılım Mühendisliği
14
Bölüm – 6 Tasarım
Yansı - 85
Bölüm – 6 Tasarım
Yansı - 86
Use Case Diyagramı
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 87
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 88
Include & Extend
23.03.2013
Bölüm – 6 Tasarım
Yazılım Mühendisliği
Yansı - 89
Yazılım Mühendisliği
23.03.2013
Bölüm – 6 Tasarım
Yansı - 91
Genelleme
23.03.2013
Yazılım Mühendisliği
23.03.2013
Yazılım Mühendisliği
15
Bölüm – 6 Tasarım
Yansı - 92
 serhatkilicarslan.com( Slides için teşekkürler)
 M. Erhan Saridogan, Yazılım Mühendisliği
 Martin Fowler

UML Distilled: A Brief Guide to the Standard Object
Modeling Language, 3rd ed., Addison-Wesley, 2003
 Grady Booch,James Rumbaugh,Ivar Jacobson

The Unified Modeling Language User Guide, Addison
Wesley, 2nd edition, 2005
 Open Source UML tools

http://java-source.net/open-source/uml-modeling
 Diğer UML slides
23.03.2013
Yazılım Mühendisliği
16
Download