G A Z İ Ü N İ V E R S İ T E S İ B İ L İ Ş İ M E N S T İ T Ü S Ü BİLİŞİM SİSTEMLERİ YÜKSEK LİSANS (UZAK) PROGRAMI NESNE YÖNELİMLİ PROGRAMLAMA (NYP) DÖNEM PROJESİ RAPORU ÖĞRETİM ÜYESİ : Yrd.Doç.Dr.Hacer KARACAN ÖĞRENCİ : Murat AZİMLİ ŞUBE – NO : A2 – 108007755
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
G A Z İ Ü N İ V E R S İ T E S İ
B İ L İ Ş İ M E N S T İ T Ü S Ü
BİLİŞİM SİSTEMLERİ YÜKSEK LİSANS (UZAK) PROGRAMI
NESNE YÖNELİMLİ PROGRAMLAMA (NYP)
DÖNEM PROJESİ RAPORU
ÖĞRETİM ÜYESİ : Yrd.Doç.Dr.Hacer KARACAN
ÖĞRENCİ : Murat AZİMLİ
ŞUBE – NO : A2 – 108007755
2
İÇİNDEKİLER
1. GİRİŞ 3
2. AMAÇ 3
3. KAPSAM 3
4. KAVRAMSAL TASARIM
4.1 SİSTEMDEKİ AKTÖRLER 4
4.2 SİSTEMDEKİ BELGELER 5
4.3 USECASE DIAGRAM 6
5. MANTIKSAL TASARIM
5.1 ACTIVITY DIAGRAMS 7
5.2 CLASS DIAGRAM 9
5.3 DATA MODEL DIAGRAM 10
6. GELİŞTİRME
6.1 PROGRAMLAMA DİLİ SEÇİMİ 11
6.2 PROGRAMLAMA ARACI SEÇİMİ (IDE) 11
7. TEST 12
8. DAĞITIM
8.1 GEREKSİNİMLER 13
8.2 KURULUM 13
8.3 ÇALIŞTIRMA 15
9. PROGRAMIN KULLANILMASI 16
10. KAYNAKLAR
10.1 ELEKTRONİK KAYNAKLAR 20
10.2 BASILI KAYNAKLAR 20
11. PROGRAM KAYNAK KODU VE ACIKLAMALAR 21
3
1.GİRİŞ
Çalışanları arasında fonksiyonel ayrım yapılarak kurumsallaşmış veya kurumsallaşma aşamasında olan
orta ölçekli sistemler (işletmeler) için tasarlanmış olan ERP Yazılımı Satınalma Modülü işleyişi tasarım
aşamasında detaylı olarak açıklanmaya çalışılmıştır. Yazılım tasarımında Nesne Yönelimli Programlama
yöntemi kullanılmıştır. Öncelikle, sistemdeki roller, aktörler ve bunların fonksiyonları tespit edilmiştir.
Daha sonra bu fonksiyonlar arasındaki ilişki belirlenmiş ve akış diyagramları oluşturulmuştur. Son
olarak, statik veri yapıları ve veriler arası ilişkiler (dönüşümler) oluşturularak Mantıksal Tasarım süreci
tamamlanmıştır.
2.AMAÇ
Günümüzde orta ve büyük ölçekli işletmeler, işletme içi süreçlerin kurulması, yönetilmesi, verilerin
kayıt altına alınarak raporlanmasının önemini kavramış durumdadır. Bunun için bir çok işletme bir ERP
(Entireprise Resource Planning- Kurumsal Kaynak Planlama) sistemi kurmuştur. Bu sayede işletmeler,
süreçlerini yönetebilir, bilgiye ve objektif sayısal verilere dayanan kararlar alabilirler. Bu kriterlere
dayanarak alınan kararların doğru olma olasılığı çok yüksektir. Bu doğru kararlar ile yapılan faaliyetler
sonucunda da başarı ve büyüme kaçınılmaz olarak gelecektir.
3.KAPSAM
Bu dökümanda, işletmedeki süreçlerden SATINALMA süreci detaylı olarak ve ilişkide olduğu diğer
süreçler ise kaba olarak ele alınmıştır. Satınalma sürecinin öneminin anlaşılması için, ilişkide olduğu
diğer süreçlerin de bilinmesi gerekmektedir.
İşletmeler, mal veya hizmet üretebilmek için öncelikle satınalma yapmak zorundadırlar. Bir motor
parçası üreten işletmeyi düşündüğümüzde; Motor parçasını üretmek için gerekli olan hammadde ve
yardımcı maddeler satın alınmalı, sonra bu hammaddeler çeşitli işlemlere tabi tutularak motor parçası
üretilmelidir. Aynı şekilde bir pizza işletmesini düşündüğümüzde; Pizza üretmek için önce çeşitli
sebzeler, et ürünleri ve un satın alınmalı, undan hamur yapılmalı ve diğer malzemelerde hamurun
üzerine yerleştirilip fırında pişirilmelidir. Hatta üretilmiş olan pizzanın dağıtımını yapabilmek için, daha
önceden bir motorlu araç ve pişirebilmek için bir fırın satın alınmış olmalıdır.
Örneklerden de anlaşılacağı üzere satınalma faaliyeti her türlü işletme içinde önemli bir yere sahiptir.
Satış faaliyeti nasıl işletmeye para girmesini sağlıyor ise satınalma faaliyeti de işletmeden para çıkışını
sağlamaktadır. Bundan dolayı işletme sahipleri, genelde satınalma yapmak istemezler. Üretimin devam
etmesi için zorunlu olan hammadde, yardımcı madde ve enerji dışında satınalmayı istemezler. Ayrıca,
işletme çalışanlarının da aslında işletmeye hizmet sattığını düşünebiliriz. Çünkü, işletme çalışanları
önceden belirlenmiş bir ücret karşılığında bilgi ve becerilerini o işletme için kullanmaktadır. İnsan
üretimin bir unsuru olduğuna göre, çalışanlar da üretimin asli bir unsurudur. Ancak bu temel nokta,
çoğu işletme sahibi tarafından göz ardı edilmekte, çalışanlara gereksiz bir masraf gözüyle
bakılmaktadır.
Çalışanlardan hizmet alımı normal satınalma süreçleri dışında işlemektedir. İşletmelerde bu sürece
genelde Insan Kaynakları (Personel) departmanları bakmaktadır. ERP sistemlerinde ayrı bir modüldür.
Bu modülde sadece, diğer işletmelerden yapılan mal ve hizmet satınalma süreçleri yer almaktadır.
4
4.KAVRAMSAL TASARIM
Bir işletmede kurulmak istenen satınalma sisteminde minumum düzeyde bulunması gereken aktörler,
kullanım durumları ve fonksiyonlar aşağıda açıklandığı gibi olmalıdır. Bu ögelerden bazıları direkt
olarak satınalma sisteminin bir ögesi olmayıp, yan sistemlerin ögesidir. Diğer süreçleri içine alan bir
ERP sistemi mevcut ise bu ögeler diğer sistemler içerisinde yer alabilir. Ancak, sadece tek başına bir
satınalma sistemi kurulmak istenirse, bu ögeler de sistem içerisinde yer almalıdır.
4.1 SİSTEMDEKİ AKTÖRLER
a. Sistem Yöneticisi:
Sistemde yer alan diğer kullanıcıları oluşturur. Sistemde oluşan bilgileri belirli aralıklarla yedekler.
Sistemin güvenliğinden ve kesintisiz olarak çalışmasından sorumludur.
b. Kullanıcı:
Sistemde yer alan tüm kullanıcılardır. Satınalma departmanlarında olabileceği gibi, diğer
departmanlardan da sistemi kullanacak olan kişilerdir. (üretim, planlama, lojistik, satış, muhasebe,
finans vs) Sistemde atanmış olan yetkiler dahilinde işlem yaparlar.
c. Yönetici:
Yönetici sistemde yer alan bir kullanıcıdır. Ancak, kendi departmanındaki diğer bir kullanıcının istemiş
olduğu satınalma taleplerini onaylama veya ret etme yetkisine sahiptir. Bu durum, işletmede her
çalışanın kafasına göre gereksiz satınalma yapmasını önlemektedir. Sistemde kilit bir öneme sahiptir.
İşletmenin verimliliği ve karlılığı açısından çok önemlidir.
d. Satınalma Departmanı:
Kullanıcılar tarafından açılmış ve ilgili yöneticiler tarafından onaylanmış satınalma taleplerini inceler.
Bu talepleri değerlendirir ve en uygun bulunan tedarikçilere satınalma siparişini iletir. İlgili tedarikçi
sistemde tanımlı değilse tanımlar. Belirli dönem aralıklarında, tedarikçilerin performanslarını hesaplar.
e. Depo:
Tedarikçilerden gelen malları teslim alır. Nitelik ve nicelik olarak doğruluklarını kontrol eder. İlgili
satınalma siparişi ile eşleştirme yaptıktan sonra sisteme irsaliye girişini yapar.
f. Muhasebe:
İşletmeye gönderilen faturaların ERP sistemine girişlerini yapar. Bu giriş sırasında, fatura içeriğindeki
mal ve hizmetlerin firmaya gelip gelmediğini kontrol eder. Mal faturası ise, sistemdeki irsaliye ile
faturayı eşleştirir.
g. Finans:
Muhasebe tarafından girişi yapılan faturaları kontrol eder. Faturaların ödeme günlerini tespit eder ve
günü geldiğinde ödemeyi gerçekleştirir.
5
4.2 SİSTEMDEKİ BELGELER
a. Satınalma Talebi:
İşletmedeki her türlü kullanıcı tarafından açılabilir. Kullanıcılar, iş görebilmek ve/veya işletmede
kullanabilmek için gerekli olan her türlü ürün ve hizmet satınalması için bir satınalma talebi açmak
zorundadır. Talep Id, Belge Tarihi, Talep Tarihi, Kullanıcı Id gibi bilgilerden oluşan bir başlık tablosu ile,
satınalınması istenen mal veya hizmetlerin id leri ve miktarlarının bulunduğu bir detay tablosundan
oluşmaktadır. Kullanıcılar farklı tarihlerde istedikleri her türlü satınalma talebi için ayrı bir talep belgesi
açmalıdırlar. Eğer karışık açılırsa, sistemde talep takibi zorlaşır, ilgili tedarikçilerin ve satınalma
departmanın performansı ölçülemez. Tedarikçiden gelen bir malın, hangi talebe istinaden geldiği
bulunamaz. Bu durumda, belgeler arasındaki akış kopacaktır.
b. Satınalma Siparişi:
Sadece satınalma departmanı tarafından açılabilir. Talep belgesindeki gibi başlık tablosu ve ürün
bilgileri olan bir detay tablodan oluşur. 2 şekilde oluşturulabilir. Kullanıcıların oluşturmuş olduğu
satınalma talep belgelerinden direkt olarak oluşturabilir. Yada, herhangi bir talep olmadan, direkt
olarak manuel şekilde oluşturulabilir. Bu durumda, satınalma sipariş belgesi her hangi bir talep
belgesini işaret etmez. Sipariş belgesindeki TalepId değeri 0 (sıfır) olacaktır.
c. İrsaliye:
Tedarikçiler tarafından işletmeye gönderilen ürünler ile gelen bir belgedir. Ticari mal sevkiyatlarında
bulunması zorunludur. Taşınan malların isimleri ve miktarları yazılmaktadır. İşletmeye gelen mallar
depo sorumlusu tarafından kontrol edilir. İrsaliye üzerinde yazan bilgilerin doğruluğu teyid edildikten
sonra sisteme girişi yapılır. İşletmeye gelen mallar, sisteme irsaliyenin girilmesiyle sistemsel olarak da
stoklaşır. Gelen irsaliyenin sipariş belgesi bulunarak eşleştirilir. Böylece, ilgili satınalma siparişi de
kapatılmış olur. (miktar tam ise) Bundan dolayı, irsaliyelerin üzerine ilgili satınalma sipariş numarasının
yazılması operatörlere hız kazandırmakta, boş yere ve hatalı veri girişini engellemektedir. Satınalma
siparişi olmadan işletmeye gelen malların kabulü depocu tarafından yapılmaz. Mutlaka bir üst
yöneticinin onayı alınarak mal kabülü yapılmalıdır. Bu durumda da, mutlaka satınalma siparişi
açılmalıdır. Başlık ve detay tablosu olmak üzere 2 tablodan oluşur.
d. Fatura:
İşletmelerde ticari işlemler fatura ile yapılmaktadır. Bir işletme diğer işletmeden mal ve hizmet
karşılığı para talep ediyorsa, önceden mutlaka fatura kesilmiş olması gerekmektedir. Her türlü ticari
borç ve alacak faturaya dayanmak zorundadır. Fatura üzerinde, kesilen firma ünvanı, adresi, vergi
dairesi, vergi numarası, ilgili mal ve hizmetlerin açıklamaları, brüt tutarları, iskonto tutarları, vergi
tutarları ve ödeme tarihi (vade) gibi bilgileri bulunmaktadır. Fatura içeriğindeki ürünlerin, firmaya
gerçekten gelip gelmediği sorgulanmalıdır. (irsaliye kontrolü) Aynı malların birden fazla kez
faturalanmaması için, fatura üzerlerinde irsaliye numarası mutlaka yazmalıdır. Son yıllarda irsaliyeli
fatura uygulamaları yaygınlaşmıştır. Bu gibi kontrollere gerek kalmamıştır.
e.Odeme:
Muhasebe departmanı tarafından sisteme sorunsuz olarak girilmiş ve ödeme onayı verilmiş olan
faturaların tutarları finans departmanı tarafından tedarikçiye (alacaklı firmaya) çeşitli yöntemler ile
ödenir. (nakit, çek, havale, eft vs)
6
4.3 USECASE DIAGRAMI
7
5.MANTIKSAL TASARIM
5.1 ACTIVITY DIAGRAMS
8
9
5.2 CLASS DIAGRAM
10
5.3 DATA MODEL DIAGRAM
11
6. GELİŞTİRME
6.1 PROGRAMLAMA DİLİ SEÇİMİ
Tasarlanan sistemin geliştirilmesi için nesne yönelimli programlama dilleri araştırılmıştır. Bu
araştırmalar sonucunda Java programlama dilinde geliştirme yapılmasına karar verilmiştir. Bu kararda,
geçmişte yaşanmış olan programlama deneyimleri ve ders kapsamında öğrenilen yeni bilgiler etkili
olmuştur. Bu etken faktörlerden bazıları şunlardır:
a. Ders kapsamında anlatılan Nesne Yönelimli Programlama kavram ve tekniklerinin Java ile
örneklenmesi.
b. Java nesne yönelimli bir programlama dili olduğundan, her şeyin bir nesneden ibaret olması. Daha
tasarım aşamasında nesne tabanlı düşünmeye zorlaması.
c. Java ile geliştirilmiş yazılımların farklı platformlarda (windows, unix, linux vs) ve farklı cihazlarda
(pocked pc, pda, vs) çalışabilmesi.
d. Son yıllarda gelişen bilişim teknolojileri ve yaygınlaşan internet (network) ortamları sayesinde,
yazılımların çok katmanlı ve sunucu taraflı tasarlanması. Java nın istemci tarafında olduğu kadar
sunucu tarafında da çok güçlü yönlerinin bulunması.
e. Sunucu tarafında çalışan yazılımlarda en önemli hususlardan biri de kaynak yönetimi ve
kararlılıktır.(kesintisiz çalışma) İstemcilerden aynı anda gelen istekler çok iyi yönetilmeli ve ortaya
çıkabilecek hatalar kontrol altına alınmalıdır. Java nın bu ihtiyaca çok iyi cevap vermesi.
f. Javanın bir programlama dili olması yanında, bir geliştirme ve teknoloji platformu haline gelerek
bir endüstri standardına dönüşmesi.
g. Geçmişte yaşanan programlama deneyimlerimde Java platformunun bulunmaması. Java
teknojilerinde deneyim kazanılmak istenmesi.
6.2 PROGRAMLAMA ARACI SEÇİMİ (IDE)
Tüm programlama dillerinde, yazım kuralları (syntax) sıkı bir disipline bağlıdır. Yazılım geliştiriler bu
kurallara uymak zorundadırlar. Ayrıca programlama dillerinde binlerce komut bulunmaktadır. Bütün
bu komutların yazılışlarını ve kullanımlarını ezberlemek mümkün değildir. Bu zorluklardan dolayı genel
olarak “tümleşik geliştirme ortamı” adı verilen yazılımlar yapılmıştır. (IDE-Integrated Development
Environment) Son yıllarda bir çok programlama dili için güçlü IDE yazılımları ortaya çıkmıştır. IDE
araçlarında bulunan genel özellikler ve yazılım geliştiricilere sağladığı faydalardan bazıları şunlardır:
a. Kullanıcı arayüzlerinin ve bazı soyut nesne tasarımlarının (veritabanı bağlantıları vs) görsel olarak
kolaylıkla yapılabilmesi. (sürükle-bırak)
b. Görsel olarak yapılan tasarım kodlarının otomatik olarak oluşturulması.
c. Sık kullanılan ve kuralları belli olan kodların otomatik oluşturulması. (re-factor)
d. Sözdizim ve bazı basit mantık hatalarının IDE tarafından yakalanabilmesi.
e. Programa durma noktaları eklenerek olayların ve değişkenlerin izlenebilmesi. (watch-debug)
f. Birden fazla programın yer aldığı büyük yazılım projelerinde, programların bir arada tutulabilmesi,
sürüm denetimlerinin yapılabilmesi.
g. Programların kolaylıkla derlenmesi ve dağıtım dosyalarının hazırlanması. (run time files)
Java programlama dili için çok sayıda tümleşik geliştirme ortamı bulunmaktadır. (NetBeans, Eclipse,
JBuilder, JDeveloper vs) Her IDE nin diğerlerine göre zayıf veya güçlü olduğu yönler bulunmaktadır. Bu
durumun Java için avantajları ve dezavantajları bulunmaktadır. Java ile yazılım geliştiren bir çok firma
farklı IDE ler kullandığı için, bu IDE ortamlarının da çok iyi öğrenilmesi gerekmektedir. Yapılan
incelemeler sonucunda, bu projede NetBeans 6.9 IDE sinin kullanılmasına karar verilmiştir.
12
7. TEST
Geliştirilen program çeşitli Windows işletim sistemlerinde ve OpenSuse Linux işletim sisteminde
çalıştırılmış, tüm görevlerini yerine getirdiği ve hata yakalama fonksiyonlarının sorunsuz çalıştığı
görülmüştür. Bu işletim sistemi sürümleri aşağıdaki gibidir:
Windows:
- Windows XP
- Windows Vista
- Windows 7
- Windows Server 2003
- Windows Server 2008
Linux:
- OpenSuse Linux 11
13
8. DAĞITIM
8.1 GEREKSİNİMLER
Program Java dilinde geliştirilmiştir. Java ile geliştirilen programlar, derlendikten sonra hemen makina
diline çevrilmezler. Bundan dolayı Java platform bağımsız olmaktadır. Çünkü, derleme anında
programın hangi işletim sisteminde çalıştırılacağı bilinmemektedir ve böyle bir ön koşul yoktur.
Derleme (compile) işleminde, program kodu “byte code” adı verilen ara bir koda çevrilmektedir. Byte
code a dönüşmüş olan program, çalışma anında makina diline çevrilir. Bu çevrimi yapacak olan başka
bir programa daha ihtiyac duyulmaktadır. Bu programlara JRE (Java Runtime Environment) adı
verilmektedir. Bundan dolayı programın çalıştığı tüm işletim sistemlerinde JRE 1.6 kurulmuş olmalıdır.
Ayrıca, program bir veritabanı uygulaması olduğundan çalıştığı işletim sisteminde Microsoft Access
Database Driver kurulmuş olmalıdır. (ODBC kaynağı tanımlayabilmek için)