Professional Documents
Culture Documents
Yazılım Mimarisi
Yazılım Mimarisi
Hazırlayanlar:
Mehmet BAĞKUR & EMRE TÜRKİŞ
1) Amaç ve Kapsam
Bu belge, ürünün tanımlanan müsteri gereksinimlerine uygun olarak elde edilmesi
yönünde, gelistiriciler için ön tasarım tanımlamalarının yapılarak, yazılımın tasarımını
gerçeklestiren gelistiricilere müsterinin beklediği, olmasını istediği tasarım hakkında bilgi
vererek yazılımın basarımını arttırmaktır.
Bu dokümanda tasarımın gelistirilmesinde etkili olan ve kurumsal kıstaslar veya
projeye
özgü durumlar nedeniyle alınan tasarım kararları tanımlandı. Mimari tasarım asamasında
tanımlanan tasarım modeli detaylandırıldı. Bilesenleri olusturan sınıflar ile ilgili özellikleri
ve operasyonlar, ayrıntılı olarak tanımlandı. Bilesenler ve sınıflar arasındaki iliskilerin
görünürlüğü, iletisimin yönü ve çokluğu gibi bilgiler tanımlandı. Gereksinim belgesinde
tanımlanan use-case’lere karsılık gelen sıralama veya isbirliği diyagramları ile yazılımın
davranıs modeli olusturuldu. Veri modelini olusturan elemanları ve aralarındaki iliskiler
tanımlandı. Kullanıcı arayüzleri tanımlandı.
2) Paydaşlar
Mimari tanımın paydaşlarını, ilgili bakışlara referans ederek belirtin.
3) Sistem Bağlamı
Gelistirilecek olan yazılım merkezi bir rol oynamaktadır.Asagıdaki cizim-1’deki tüm
elemanlar görüldügü gibi sistemle bir sekilde iletisime gececektir.Cizim- 1 deki sekil verinin
analizi ve yeniden olusturulması icin bir iskelet gorevi gormektedir.
Bu sistemi kullanan kullanıcıları, 3 gruba ayırdık.Bu gruplamayı yaparken kişilerin
sınıflarından cok sistemle etkileşime gecme sekillerini goz onune aldık.Bu nedenle, bir kişi
birden fazla gruba dahil olabilmektedir.
Kullanıcılar:: Sistemi kullanacak olan yani baska bir deyişle musteri tarafındaki kullanıcıları
icermektedir.Personel, sistem yöneticisi bu gruba dahildir.Sistem gereksinimlerinde belirtilen
işlemleri yapmak icin sistemi kullanırlar.
4) Sistem Özellikleri
Evrak takip sistemi web tabanlı bir uygulamadır. Java EE kullanılarak geliştirilecektir.
Ürünü kullanacak olan kişiler system yöneticisi ve kurum(bölüm) personelidir. Ürün(Yazılım)
verileri kalıcı bir veri tabanında tutacaktır. Bu veri tabanı ile ilişki hibernate ile kurulacaktır.
Ürün , Kurum evrak iletişiminin hızlandırılmasını amaçlamaktadır. Sisteme evrak
eklenebilmektedir. Eklenen evraklar, pdf formatında olmak zorundadır. Yeni bir evrak
eklendikten sonra, evrakla ilgili işlemler ekran üzerinde görüntülenebilir. Evrağın eklenip
eklenmediği ile ilgili bilgi ekranda belirtilecektir. Aynı şekilde evraklar silindiği zaman yine
ekranda, evrağın silindiğine dair bir mesaj çıkacaktır. Evrak için geçerli olan bu özellikler,
aynı şekilde personel ve bölümlerin eklenip silinmesi durumunda da geçerlidir. Sistemde,
farklı kullanıcılar farklı yetkilere sahiptirler. Sistemde misafir kullanıcılara birtakım kısıtlar
getirilmektedir, bunlar evrak takip sisteminde online kullanıcıdan farklı haklara sahiptirler.
Kayıtlı kullanıcılar ETS'ye göre belli bir onayı almış oldukları için bunların fazladan hakları
olmalıdır. Örneğin üye kullanıcılar sistem veri tabanı üzerinde fazladan haklara sahip
olabilirler. İki çeşit çalışma kipi vardır. Biri authentication kipi ile çalışmadır. Diğeri ise
“authentication”sız çalışmadır. Personel veya sistem yöneticisi şifre girmeden site üzerinde
dolaşırsa uygulama “authentication”sız kipte çalışır ve kullanıcı ekleme ve çıkarma yapamaz.
Bu yüzden kullanıcı(personel veya system yöneticisi) authentication hakkı istiyorsa mutlaka
login olmalıdır. Burada hedef veri bütünlüğünü ve güvenliğini dolayısıyla firma menfaatlerini
sağlamaktır. Aşağıda bu yetkilerle ilgili bilgilendirme yapılmaktadır.
Personel
Personel istenen evrak adına tıklayarak evrak izleme sayfasına gidebilir. İstenen evrak
sistemden silinebilir. İlgili evrağa ek dosya ekleyebilir. Evrak hakkında yorumda bulunabilir.
Evrak başka bir bölüme gönderilebilir. Evrak onaylanabilir.
Sistem Yöneticisi
Sistem yöneticisi yazılım hakkında temel bir bilgiye sahip olmalıdır. Eğer sistemde bir
sorun,çökme vb. bir durum yaşanırsa yazılımcıları bilgilendirebilmelidir. Personelin teknik bir
bilgiye sahip olması beklenmez; sadece evraklar ve yazılımın nasıl kullanılacağı hakkında
bilgiye sahip olması yeterlidir.
Sistem yöneticisi hesabında sistemde kayıtlı olan bütün bölümleri görebilir. Sistem
yöneticisi buradan bölümleri silebilir, ekleyebilir ve güncelleyebilir. Ayrıca sistem yöneticisi
ilgili bölümde kayıtlı bütün personellerin bilgilerini görebilir, personelleri silebilir ve
güncelleme yetkisine sahiptir. Bunlara ek olarak, sistem yöneticisi, normal personelin tüm
yetkilerine de sahiptir.
Kullanıcıların timeout süresi dolduğunda otomatik olarak inaktif duruma geçmesi de
veri bütünlüğünü koruma ve sağlama adına önemli bir özelliktir. Çünkü sistem firmanın
genelini ilgilendiren ve özellikle firma çalışanlarının dikkatli olması gereken bir sistemdir ve
amaç burada doğabilecek olumsuz sonuçların olabildiğince önüne geçmektir. Sistem
çalışanları belirlenmiş bir veri tabanı yöneticisi haricinde firma ile ilgili kararlar
verme hakkına sahip değildir. Bunun için yetkilendirilmemiştir. Sisteme bölüm veya personel
ekleyebilmek için sistem yöneticisi program içerisinde gömülü olarak bulunmalıdır. Evrak
üzerinde işlem yapabilmek için yani evrakı başka bir bölüme gönderebilmek, evrak üzerinde
yorum yapabilmek, evrak onaylayabilmek, evraka dosya ekleyebilmek, evrak
görüntüleyebilmek için en az bir evrakın sisteme eklenmiş olması gerekmektedir. Yukarıda
belirtilen evrak üzerinde belirtilen işlemlerin yapılabilmesi için en az bir personelin
tanımlanmış olması gerekmektedir. En az bir personelin var olabilmesi için en az bir bölümün
sistem yöneticisi tarafından tanımlanmış olması gerekmektedir.
Sistem web tabanlı bir mimari üzerine geliştirilecektir. Tüm işlemler internet
üzerinden yapılacaktır, bunun için kullanıcıların uygulamayı kullanabilmeleri için internet
erişimlerinin olması şarttırt. Bunun sağlanması için J2EE platformu kullanılacaktır.
Kullanılılacak olan uygulama sunucusu apache tomcat olacaktır. Uygulama, spring
framework çatısı altında, sistemi MVC altyapısını kullanarak kullanıcıya JSP sayfaları olarak
sunacaktır. http üzerinden gönderilen mesajlar, TCP/IP protokolüne uygun olacaktır.
Veritabanı yönetim sistemi olarak postgresql kullanılacaktır.
Bakımı yapılabilirlik: Yazılım, degisen ihtiyaçlara göre degisebilir olmalıdır. Aslında burada
bahsedilmesi gereken özellik daha çok modülerliktir. Çünkü bir yazılımın genel anlamda
bakımının kolay yapılabilmesini sağlayan en büyük etken modülerliktir. Bu sayede yazılımın
anlaşılması ve incelenmesi oldukça kolaylaşacak, hata sınama gibi olanaklar gelişecektir.
Güvenilirlik: Yazılım, güvenilir olmalıdır. Burada yazılımın kendisinden bekleneni tam ve
doğru olarak yapabilmesi anlaşılmaktadır. Çünkü yazılımın etkin olarak kullanılabilmesi onun
güvenilir oluşuyla tam bir ilişki içerisindedir.
Güvenlik:
Sistemde yer alacak temel güvenlik önlemleri şunlar olacaktır:
1. Kullanıcı girişi: Sistemde gerçekleştirilecek bazı özellikler kullanıcının login olması
durumunda gerçekleştirilebilecek, böylece sistem güvenliği sağlanmış olup yetkisiz
kullanımın önüne geçilecektir
2. Yetkilendirme: Sistemin yapısının doğal sonucu olarak her kullanıcı her özelliğe
erişemeyecek, tasarımda belirtildiği üzere yetki seviyesine göre birtakım haklara sahip
olacaktır
5) İşlevsel Bakış
Evrak Takip Sistemi, evrakların hızlı bir şekilde yönetilmesini ve güvenli bir şekilde
saklanmasını sağlamaktadır. İki tür kullanıcı bulunmaktadır. Bunlar sistem yöneticisi ve de
sistemi kullanan personeldir. Sistem yöneticisi sistemde en fazla yetkiye sahip olan aktördür.
Sistemde evraklar, personel bilgileri, ilgili kurumdaki bölümler ile ilgili bilgiler mevcuttur.
Bu bilgilerin yönetimi sistem yöneticisinin yetkisindedir.
Sistemin fonksiyonel özellikleri aşağıda madde madde özetlenmiştir:
Bölüm tanımlama/silme/güncelleme: Sistem yöneticisi bölüm ekleyebilir, silebilir ve
güncelleyebilir.
Personel tanımlama/silme/güncelleme:Sistem yöneticisi personel ekleyebilir, silebilir ve
güncelleyebilir.
Evrak görüntüleme: Personel kendi bölümünde bekleyen evrakı izleyebilir.
Evraka ek dosya ekleme: Personel kendi bölümünde bekleyen evrakın yanına dosya
ekleyebilir.
Evrak üzerine yorumda bulunma: Personel kendi bölümünde bekleyen evrak hakkında
yorum yapabilir.
Evrakı başka bir bölüme iletme: Personel kendi bölümünde bekleyen evrakı başka bir
bölüme iletebilir.
Evrak sil/ekle: Personel kendi bölümünde bulunan evrakı silebilir veya ekleyebilir.
Üstteki sayfa anasayfayı göstermektedir. Sistem yöneticisi kullanıcı adını ve şifresini girerek
Sistem yöneticisi hesabına ulaşabilir.
Sistem yöneticisi hesabında sistemde kayıtlı olan bütün bölümleri görebilir. Sistem yöneticisi
buradan bölümleri silebilir ve güncelleyebilir. Yönetici ilgili bölümün karşısındaki “Git”e
tıklayarak ilgili bölüm sayfasına gidebilir.
Sistem yöneticisi ilgili bölümde kayıtlı bütün personellerin bilgilerini görebilir, personelleri
silebilir ve güncelleyebilir.
Yukarıdaki sayfadan personel istenen evrak adına tıklayarak evrak izleme sayfasına gidebilir.
İstenen evrak sistemden silinebilir. Sisteme evrak ekleme bu sayfadan yapılmaktadır.
Yukarıdaki sayfada personel, ilgili evrağa ek dosya ekleyebilir. Evrak hakkında yorumda
bulabilir.Evrak başka bir bölüme gönderilebilir. Evrak onaylanabilir
Bu model sistemde 3 birim olduğunu göstermektedir. Bunlar;
Web browser
Sistem yöneticisi
Kullanıcı
6) Bilgi bakışı
Sisteme ait üye verileri hariç tüm veri yapısı yönetici kullanıcı tarafından
olusturulur. Üye kullanıcı kendi üyelik bilgileri ve kisisel bilgilerini olusturabilir. Yönetici
kullanıcını
sistemin diğer veri elemanlarını (organizatör/organizasyon/salon) tanımlaması ile bu
veriler ile sistemde etkilesimde bulunarak, kendine ait rezervasyon ve bilet alım verisini
olusturur. Yönetici sisteme ait verilere müdahale edebildiği gibi, üye kullanıcının
olusturduğu (kisisel/kullanıcı bilgileri, rezervasyon bilgileri) müdahale ederek veriyi
sekillendirebilir.
Sistemde bölüm, sistem yöneticisi, personel, evrak, gibi veri varlıkları vardır. Her personelin
adı, soyadı kullanıcı adı ve şifresi vardır. Her bölümün bir adı vardır. Sistem yöneticisinin
kullanıcı adı ve şifre bilgileri yazılımcı grup tarafından sistemde default olarak tanımlanır ve
veri tabanında saklanır. Her evrakın bir adı vardır ve bu ad kütük uzantısı olan .pdf ile
sonlanır. Yani bir bölümde çalışan personeller vardır. Bir bölümde 1 ya da birçok personel
çalışabilir ancak 1 personel yalnız ve yalnız bir bölümde çalışabilir. Bu anlamda bölüm ve
personel arasında “Çalıştığı” ya da “Çalışan” bağıntısı kurulabilir. Personelin sorumlu olduğu
evraklar vardır. Yani evrakların bağlı olduğu personeller vardır. Bir personel birçok evraktan
sorumlu olabilir. Sorumlu olduğu bu evraklar personelin kayıtlı olduğu bölümde bulunan
evraklardır. Bir evrak kendi bölümündeki birçok personele bağlı olabilir. Bu durumda
personel ile evrak arasında “Sorumlu Olduğu” ya da “Bağlı Olduğu” ilişkileri vardır.. Aynı
ilişkiler sistem yöneticisi ile personel arasında da vardır. Zira sistem yöneticisi tüm
personellerden sorumludur ve 1 personel sadece 1 sistem yöneticisine bağlıdır. Fakat burada
görüldüğü üzere bire-bir ve bire-birçok olarak birbirinin tersi sayısal kısıtlamalar vardır.
Evrak- Personel arasındaki “Sorumlu Olduğu” ya da “Bağlı Olduğu” ilişkilerinde ise bire-
birçok ve birçoğa-bir sayısal kısıtlamalar vardır.
Evrak: Sistemde kullanılan evrakları simgeler. 3 adet özelliği bulunmaktadır. Bunlar veri
türleri ile birlikte şu şekilde özetlenebilir:
id: long
ad: string
eklenmeTarihi: Date
Personel: Sistemde kullanılan tüm kullanıcıları, yönetici hariç, simgeler. Bu kullanıcı türünün
kullanıcı adı ve şifre bilgileri de bu sınıfın içinde tutulmaktadır. Bu sınıfın tüm özellikleri
şunlardır:
id: long
ad: string
soyad: string
dogumTarihi: Date
kullanıcıAdı: string
sifre: string
Bölüm: Sistemde varolan bölümlerin veri modellemesini bu sınıf sunmaktadır. Sınıf yapısı
içinde id’si dışında sadece bölümün adı saklanmaktadır. Özellikleri:
id: long
ad: string
SistemYöneticisi: Sistemde kayıtlı olan, yönetici önceliklerine sahip kullanıcı tipini tanımlar.
Veri türleri açısından personelden bir farkı olmamasına rağmen, önceliklerin farklılaştırılması
amacıyla bu sınıfın yaratılmıştır. Alternatif bir tasarım yaklaşımı da, hem personel hem de
sistem yöneticisinin kullanıcı adlı bir ata sınıftan türemeleri olarak tanımlanabilir. Böylece
nesneye yönelik paradigmalar anlamında daha tutarlı bir tasarım ortaya çıkacaktır. Bu sınıfın
özellikleri ise şöyledir:
id: long
ad: string
soyad: string
dogumTarihi: Date
kullanıcıAdı: string
sifre: string
7) Geliştirme Bakışı
User-Interface-Module: Sistemi kullanmaya baslayan her kullanıcı sistem için tanımlanan
(yönetici, operatör, üye, misafir) kullanıcı ile eslestirilir ve bu kullanıcı için sistemde
tanımlanan haklar, sisteme giris yapan kullanıcıya verilir. Sisteme yapılan her girisi User-
Interface Modülü karsılamaktadır. Sisteme giris yapan her kullanıcıyı, kullanıcı için
tanımlanan hakları vererek Web-Modüle iletir. Kullanıcıya ait bilgiler kurabiyelerde
güvenlik nedeni ile tutulmayacaktır. Bu nedenle sisteme giren her kullanıcı, misafir
kullanıcı hakları ile Web-Modüle yönlendirilir.
Core-Module: Tüm islemler core module tarafından yapılabilir. Modul sadece kendisinden
istenen islemi yapar, islemin yapılmasını isteyenin bu islemi yapmaya yetkisi olup
olmadığını sorgulamaz. İşlemin gereği veri tabanına bağlanması gerektiğinde Connection-
Module bağlanma isteği yapar. Veri tabanından gereken bilgiyi veya veri tabanına
eklenmesi gereken bilgiyi connection modülü ile gerçeklestirir.
Kullanıcı basına bellekte 100kb’lık bir veri kumesi gereksinimi oldugundan dolayı
sisteme ayni anda en fazla 50 kullanıcı baglanabilmektedir.Bu buyuklukte bir veri transferi
gereksinimi de minumum 8 mbit’lik bir baglantısı gerektirmektedir.