Gerçekleştirim evresinde proje, tasarım ve analiz belgelerinde verilmiş olan kriterlere büyük ölçüde bağlı kalınarak kodlanmış ve proje teklifi aşamasından itibaren ortaya konan tüm taahhütler kodlamada eksiksiz olarak yerine getirilmeye çalışılmış ancak projenin büyüklüğü sebebiyle bazı modüllerde halen kodlama çalışmaları sürmektedir. Ayrıca Kullanıcı kılavuzu hazırlanmış ve yazılım bileşenleri açıklanmıştır.
Karşılaşılan Sorunlar ve Uygulanan Çözümler
Projenin amacını ve sonucunu etkileyecek önemli bir problemle karşılaşılmamıştır. Ancak, kodlama esnasında dikkat çeken eksiklikleri gidermek ve kodun okunurluğunu artırmak amacıyla bazı değişiklikler yapılmıştır. Bu değişiklikler şunlardır:
Özellikle tasarım belgesinde tanımlanan veri tablolarında tekrarlanan bilgilerin varlığı tespit edilmiş ve normalizasyonla bu tablolar veri kaybı yaşanmadan sadeleştirilmiştir.
Ayrıca programın çok fazla kullanıcı tarafından kullanılacak olması yetki problemleri çok fazla birim bulunması oldukça karmaşık bir kullanıcı yönetimine ihtitaç duyulduğunu göstermiş ve yazılım gerçekleştirimi esnasında bu konuda oldukça zaman kaybedilmesine neden olmuştur.
Zaman zaman neden kaynaklandığına anlam verilemeyen sorunlarla karşılaşılmış MD5 şifrelemeyle VT de saklanan ve daha sonra değerlendirilmeye çalışılan kodda sıkıntılar yaşanmış bu durum forumda da tartışılmıştır. Ancak henüz çözüme kavuşmamıştır. Hocamızla yapılan görüşmede yazılan kodda hata olmadığı belirtilmiştir. Bu durumun araştırılmasına devam edilmektedir.
Sistemde genel olarak tüm modüllerde veri girişi , son girilen verilerin bir kısmı ve ilgili verilere ait sorgulama menüleri aynı sayfa içerisinde verilmeye çalışılmıştır. İleride sorgulama menüleri çok daha gelişkin ve kullanışlı hale getirilecektir.
Yazılımın büyüklüğü nedeniyle bir takım yazılım araçlarının kullanılmasını zorunlu kılmıştır. Tasarım belgesinde de belirtildiği üzere kod geliştirimi ve arayüz tasarımında Macromedia Dreamweaver programından büyük ölçüde yararlanılmaktadır.
Kodlama Esnasında Fark Edilen Eksiklikler
Kodlama esnasında fark edilen ancak zaman kısıtlılığı ve tasarımda yer almaması nedeniyle sonraya bırakılan bazı eksiklikler şunlardır:
Zaman içinde veritabanının çok büyüyeceği ve sistem performansını olumsuz etkileyeceği düşünülerek, sistem yöneticisine veritabanına bakım yaptıracak bir fonksiyonun yazılması gerektiği görülmüştür.
Zaman zaman birimlerin birbirlerinin bazı bilgilerine ulaşmalarını sağlayacak bir yapının faydalı olacağı görülmüş ancak daha sonraki versiyonlarda bunun uygulanabileceği kararına varılmıştır.
Sistemi kullanmabilmek için admin tarafından tanımlanmış ve şifresi verilmiş olan kullanıcıya şifresini değiştirmesi için henüz bir izin verilmemiştir. Programın kullanılacağı yerin kamu olması böyle bir ihtiyaca gerek olup olmadığınıda şüpheli hale getirmektedir.
İhtiyaç duyulan yazılım elektrik dağıtımı gibi dinamik bir yapıda sürekli olarak değişebilmelidir. Bu yapının dinamik oluşunun sebepleri olacak olan abone davranışları, malzeme değişklikleri, teknolojik gelişimler ve mevzuat değişiklikleri bu yazılımın sürekli güncellenmesi gerektiğini ortaya koymaktadır. Bu dinamik parameterelerin bir kısmının yazılıma formülüze edilerek parametre olarak aktarılmasının mümkün olabileceği ancak bazılarının yazılıma sürekli ilaveler yada güncellemeler yapılarak çözülebileceği görülmüştür.
Yazılımın Bileşenleri ve Görevleri
Veritabanı Yapısı
Tasarım belgesinde verilmiş bulunan veritabanı tasarımına genel hatlarıyla bağlı kalınmış ancak, bazı tablolarda değişiklikler yapılmıştır.
CREATE TABLE birim (
idbirim INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
birimadi VARCHAR(45) NOT NULL,
ilcesi VARCHAR(45) NULL,
ili VARCHAR(45) NULL,
sorumlu VARCHAR(45) NULL,
telefon TINYTEXT NULL,
faks TINYTEXT NULL,
PRIMARY KEY(idbirim, birimadi)
);
CREATE TABLE trafoTesisleri (
idtesis INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
birimi VARCHAR(45) NOT NULL,
trafoAdi VARCHAR(45) NULL,
gucu INTEGER UNSIGNED NULL,
kabulTarihi DATE NULL,
yuklenicisi VARCHAR(45) NULL,
yerleskeAdi VARCHAR(45) NULL,
PRIMARY KEY(idtesis, birimi)
);
CREATE TABLE personel (
sicilNo VARCHAR(20) NOT NULL,
adi VARCHAR(20) NULL,
soyadi VARCHAR(20) NULL,
girisTarihi DATE NULL,
egitimi VARCHAR(20) NULL,
meslek VARCHAR(45) NULL,
tipi VARCHAR(20) NULL,
aciklama VARCHAR(255) NULL,
fotograf VARCHAR NULL,
PRIMARY KEY(sicilNo)
);
CREATE TABLE persoenelHareketleri (
ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
sicilNo VARCHAR(20) NULL,
tarih DATE NULL,
birimi VARCHAR(45) NULL,
durumu VARCHAR(20) NULL,
gorevi VARCHAR(45) NULL,
PRIMARY KEY(ID)
);
CREATE TABLE projeler (
idprojeler INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
tarih DATE NULL,
projeNo VARCHAR(20) NULL,
kesfi INTEGER UNSIGNED NULL,
tanimi VARCHAR(255) NULL,
yeri VARCHAR(45) NULL,
tipi VARCHAR(20) NULL,
durumu VARCHAR(20) NULL,
PRIMARY KEY(idprojeler)
);
CREATE TABLE projeOdenekHarcamalar (
idprojeHarcamalar INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
projeNo VARCHAR(20) NULL,
tarih DATE NULL,
islem VARCHAR(20) NULL,
miktar INTEGER UNSIGNED NULL,
PRIMARY KEY(idprojeHarcamalar)
);
CREATE TABLE projeIhaleler (
idprojeIhaleler INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
projeNo VARCHAR(20) NULL,
ihaleNo VARCHAR(20) NULL,
firma VARCHAR(45) NULL,
sozlesmeTarihi DATE NULL,
sozlesmeBedeli INTEGER UNSIGNED NULL,
PRIMARY KEY(idprojeIhaleler)
);
CREATE TABLE projeIhaleDurumu (
idprojeIhaleDurumu INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
tarih DATE NULL,
ihaleNo VARCHAR(20) NULL,
harcama INTEGER UNSIGNED NULL,
fizikiGerceklesme INTEGER UNSIGNED NULL,
PRIMARY KEY(idprojeIhaleDurumu)
);
CREATE TABLE enerjiMusadesi (
idenerjiMusadesi INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
tarih DATE NULL,
musadeGucu INTEGER UNSIGNED NULL,
talepSahibi VARCHAR(45) NULL,
yeri VARCHAR(45) NULL,
fenniMesul VARCHAR(45) NULL,
PRIMARY KEY(idenerjiMusadesi)
);
CREATE TABLE bimkkSayaclar (
idbimkkSayaclar INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
sayacKodu VARCHAR(20) NULL,
yonu VARCHAR(20) NULL,
kayitTarihi DATE NULL,
ili INTEGER UNSIGNED NULL,
adi VARCHAR(45) NULL,
sayacSeriNo VARCHAR(20) NULL,
PRIMARY KEY(idbimkkSayaclar)
);
Modüller
loginPage.php
Kullanıcının giriş yapacağı ana sayfa
menupage.php
Kullanıcı başarılı olarak sisteme girdiğinde yönlendirileceği sayfa.Bu sayfadan yetkisi doğrultusunda seçim yapar.
admin.php
Yeni kullanıcı ekleme işlemleri yapılır
admin2.php
Birim ekleme işlemleri yapılır
isletmeFaaliyet.php
İlçe işletmelerin günlük faaliyetlerini girdiği modül
isletmeFaaliyet2.php
İlçe işletmelerin trafo ölçüm sonuçlarını girdikleri modül
isletmeFaaliyet3.php
İlçe işletmelerin faaliyetlerinin sorgulandığı modül
isletmeFaaliyet4.php
İlçe işletmelerin sorunlarının çözümüne yönelik olarak yatırım tekliflerini sundukları modül
proje.php
Yeni proje kaydının yapıldığı modül
proje2.php
Proje tesis bünyesinde yapılan harcamaların ve ödeneklerin takip edildiği modül
proje3.php
Proje tesisin yaptığı ihalelerin girildiği ve takip edildiği modül
proje4.php
Enerji müsadelerinin verildiği ve takip edildiği modül
bimkk.php
Dönemsel bilgilerin girildiği ana tablo modülü
bimkk2.php
Satın alınan enerjiye ait ölçüm bilgilerinin giriş modülü
personel.php
Yeni personel kaydının yapıldığı ve izlendiği modül
personel2.php
Personel görevlendirmelerinin takip edildiği ve veri girişi yapılan modül
Yazılımdan Kesitler
Kullanıcı Kılavuzu
Yazılımın Amacı:
Bu yazılım, elektrik dağıtım şirketlerinin faaliyetlerini takip ve kontrol etmek amacıyla gerçekleştirilmiştir.
Çalışma Platformu:
Yazılım web tabanlı olup yaygın tüm browserlarla uygulama çalıştırılabilir.
Sitenin Özellikleri ve Becerileri:
Genel olarak sitenin şık bir tasarıma ve kolay kullanıma sahip olması düşünülmüştür. Herhangi bir kullanıcının login olduktan sonra ilgili içeriğe ulaşması oldukca kısa sürecektir.
Sistem yöneticisi tarafından gerçekleştirilecek işlemler(VT bakımı ve düzenlemeleri hariç) tamamen internet üzerinden yapılmaktadır.
Sistemde genel olarak tüm modüllerde veri girişi , son girilen verilerin bir kısmı ve ilgili verilere ait sorgulama menüleri aynı sayfa içerisinde verilmeye çalışılmıştır. İleride sorgulama menüleri çok daha gelişkin ve kullanışlı hale getirilecektir.
Sistemi kullanmabilmek için admin tarafından kullanıcı tanımlanmış ve şifresi verilmiş olmalıdır.
Kullanıcı şifresini girdikten sonra login olacak ve menulerin bulunduğu sayfaya yönlenecektir. Şifresini yada kullanıcı ismini yanlış giren kullanıcı sistem tarafından reddedilecek ve tekrar login sayfasına dönülecektir.
Menü sayfasına ulaşan kullanıcı yetkisi doğrultusunda kendisini ilgilendiren linke tıklayarak istediği işlemleri yapabilir. Yetkisi olmayan bir sayfaya erişim isteğinde , kullanıcı tekrar menü sayfasına yönlendirilir.
Kullanıcının önüne gelen sayfadaki açıklamalarla gerekli veri girişlerini ve sorgulamaları yapabilecek kadar sistem açık ve basit tasarlanmıştır.
Yazılımın Özellikleri:
Yazılım, internet kullanılabilen herhangi bir makinada sorunsuz olarak kullanılabilir.
Projenin süreçleri yandaki linklerden takip edilebilir.