Elektrik Dağıtım Merkezleri Otomasyonu
(EDMO)
Tasarım Belgesi
Ya
zılım Geliştirme ProjesiBilgi Teknolojileri Sertifika Programı
İDEA : ODTÜ Sanal Kampüsü
08 Mayıs 2000
Öz
Bu tasarım belgesinde, bir elektrik dağıtım şirketinin, Elektrik Dağıtım Merkezleri Otomasyonu için kurulacak yazılımın (bundan böyle kısaca EDMO olarak anılacaktır) tasarım detayları verilecektir. Belgenin amacı, proje müşterimize projenin tasarım detaylarını ayrıntılı olarak göstermek ve dolayısıyla proje isterlerinde gerekli bir değişiklik olup olmadığını belirlemek ve aynı zamanda proje geliştiricileri için gerekli detaylı tasarımı sunmaktır.
Kapsam
Belge boyunca, EDMO yazılımının mimari, veri, arayüz ve prosedürel tasarımı detaylı olarak tanımlanacaktır.
Proje için analiz belgesinde belirtilen C++ yazılım dilinin kullanılması yerine, Java programlama dilinin kullanılmasının daha uygun olacağına karar verilmiştir. Bu nedenle, Java programlama dilini bir gereği olarak, yine analiz belgesinde detaylandırılan yapısal tasarımın yerine nesne yönelimli tasarım yaklaşımı ile yenilenen yeni mimari tasarım ilk olarak anlatılacaktır. Daha sonra, kullanılacak nesne ve sınıflar veri tasarımı bölümünde detaylandırılacaktır. Arayüz tasarımı, kullanıcıların sisteme erişimde kullanacakları arayüz tasarımlarını detaylı olarak verecektir. Bunun ardından, prosedürel tasarımda tanımlanacak sınıflar içinde bulunacak işlevlerin ve sistemin tüm entegre çalışması prosedürel tasarım bölümünde ele alınacaktır. Son olarak, proje planı ve uygulama takvimindeki değişiklikler ve kaynakça verilmektedir.
Mimari Tasarım
EDMO yazılımının temel sınıfı, bilgileri sistem ile takip edilecek olan elektrik dağıtım merkezleridir. Merkezlerin kalıtım ve içerim şemaları Şekil 1'de gösterilmektedir:
Şekil 1 - Merkez'in Kalıtım ve İçerim Şemaları
Merkez sınıfının bir kalıtımı olan normal merkezler, merkezlere ait olan tüm bilgileri taşımaktadır. İndirici merkezlerin tek farkı Besleyen Merkez bilgisinin indirici merkezlerde içerilmemesidir. Her merkez, çizim ve tarihçe sınıflarını içerir. Çizim, merkezle ilgili teknik altyapı çizimini, tarihçede bir merkezde yapılan kronolojik işlemleri taşımakla yükümlüdür.
Sınıf adı : | Merkez | Çizim | Tarihçe |
Sınıf türü : | Cihaz | Özellik | Özellik |
Sınıf karakteristiği : | Elle tutulur | Gösterim | Tarihçe |
Sorumluluklar : | Ana sınıf | Merkez çizimini gerçekleştirmek ve taşımak | Merkez tarihçesini taşımak |
İşbirliği : | Çizim, Tarihçe | Merkez | Merkez |
Tablo 1 - Sınıf / Sorumluluk / İşbirlikçi Modeli
Veri Tasarımı
class Merkez
public void MerkezGiris ();
public void MerkezArama();
public void MerkezDuzenleme();
public void Yedekleme();
public void GeriYukleme();
int merkezNo;
string Adres;
int merkezTipi;
int merkezYapisi;
double trafoGirisVolt;
double trafoCikisVolt;
double trafoGucu;
double isletmeGucu;
int besleyenMerkez;
class Cizim
public void CizimGiris();
int merkezNo;
int xbasKoord;
int ybasKoord;
int sekilTipi;
int xbitisKoord;
int ybitisKoord;
class Tarihce
public void TarihceGiris();
int merkezNo;
date tarih;
string aciklama;
Arayüz Tasarımı
Merkez girişi, Şekil 2'de gösterilen arayüz kullanılarak yapılacaktır:
Şekil 2 - Merkez Giriş Arayüzü
Merkez giriş ekranından Tamam düğmesine tıklanarak çıkış sırasında yapılması gereken kontroller şunlardır:
Çizim düğmesine tıklandığında Çizim Giriş prosedürü çağrılır.
Merkez çizim girişi, Şekil 3'de gösterilen arayüz kullanılarak yapılacaktır:
Şekil 3 - Merkez Çizim Arayüzü
Bu ekranda, A, B, ... harflerinin yerine çizimi yapılacak yapı birimleri, hat şekilleri ve geri alma işleminin şekilleri yer alacaktır.
Tarihçe girişi, Şekil 4'de gösterilen arayüz kullanılarak yapılacaktır:
Şekil 4 - Tarihçe Giriş Arayüzü
Merkez arama işlemi, Şekil 5'de gösterilen arayüz kullanılarak yapılacaktır:
Şekil 5 - Merkez Arama Arayüzü
Bulunan merkez listelemesi, Şekil 6'da gösterilen arayüz kullanılarak yapılacaktır:
Şekil 6 - Merkez Listeleme Arayüzü
Yedekleme işlemi onayı, Şekil 7'de gösterilen arayüz kullanılarak yapılacaktır:
Şekil 7 - Yedekleme Arayüzü
Geri yükleme işlemi onayı, Şekil 8'de gösterilen arayüz kullanılarak yapılacaktır:
Şekil 8 - Geri Yükleme Arayüzü
Prosedürel Tasarım
MerkezArama()
merkezArama arayüzünü görüntüle
eğer Vazgeç tıklandıysa, hiçbir şey yapmadan modülü sonlandır
eğer Tamam tıklandıysa,
Girilen kriterlere göre arama işlemini gerçekleştir
eğer kayıt bulunamadıysa
"Kayıt bulunamadı" hata mesajını ver
değilse
Bulunan kayıtları merkezListeleme arayüzüyle göster
MerkezGiris()
merkezGiriş arayüzünü görüntüle
eğer Vazgeç tıklandıysa, hiçbir şey yapmadan modülü sonlandır
eğer Tamam tıklandıysa,
Girilen merkez bilgilerini dosyaya kaydet
MerkezDuzenleme()
merkezAramayı çağır
eğer Vazgeç tıklandıysa, hiçbir şey yapmadan modülü sonlandır
eğer bir kayıt seçilerek, Tamam tıklandıysa
kayıt bilgilerini merkezGiriş arayüzüyle görüntüle
eğer Vazgeç tıklandıysa, hiçbir şey yapmadan merkezListeleme arayüzüne geri dön
eğer Rapor tıklandıysa, kayıtları yazıcıya raporla
eğer Tamam tıklandıysa,
Bilgileri dosyada güncelle
Listeleme arayüzüne geri dön
eğer bir kayıt seçilerek Sil tıklandıysa
"Emin misiniz?" mesajını getir
Evet tıklandıysa,
Kayıtı dosyadan sil
Listeleme arayüzüne geri dön
Hayır tıklandıysa,
Listeleme arayüzüne geri dön
CizimGiris()
merkezNo için girilmiş olan tüm çizim kayıtlarını bul
Çizim arayüzünü görüntüle
Bulunmuş olan çizim kayıtlarını çizim ekranına GrafikCizim() altyordamını kullanarak çiz
eğer Vazgeç tıklandıysa, hiçbir şey yapmadan geri dön
eğer Tamam tıklandıysa
merkezNo için çizim kayıtlarını dosyada güncelle
TarihceGiris()
eğer Vazgeç tıklandıysa, hiçbir şey yapmadan geri dön
eğer Tamam tıklandıysa
girilen tarihçe kayıtlarını dosyada güncelle
Yedekleme()
Yedekleme ekranını görüntüle
eğer Vazgeç tıklandıysa, hiçbir şey yapmadan geri dön
eğer Tamam tıklandıysa
Tüm dosyaları bugünkü tarih ile isimlendirilen bir dosyaya yedekle
GeriYukleme()
Geri yükleme ekranını görüntüle
eğer Vazgeç tıklandıysa, hiçbir şey yapmadan geri dön
eğer Tamam tıklandıysa
Girilen tarihin yedekleme dosyasını bul
eğer dosya bulunamazsa
hata mesajı ver, geri dön
değilse
"Emin misiniz?" mesajı görüntüle
eğer Evet tıklandıysa
aktif program dosyalarını yedekle
aktif program dosyalarını sıfırla
belirtilen yedekleme dosyasındaki bilgileri aktif dosyalara geri yükle
GrafikCizim()
(A ve B: merkez yapı birimleri
C ve D: hat şekillerini
E şekli de geri alma işlemini belirtmek üzere)
eğer Event
A şekli tıklandıysa: A şeklini "highligt" ederek seçildiğini belirt
B şekli tıklandıysa: B şeklini "highligt" ederek seçildiğini belirt
C şekli tıklandıysa: C şeklini "highligt" ederek seçildiğini belirt
D şekli tıklandıysa: D şeklini "highligt" ederek seçildiğini belirt
E şekli tıklandıysa: yığıttan son işlemi "pop" et
işlemin çizimini çizim alanından sil
çizim alanına tıklandıysa:
A veya B seçilmişse: seçili şekli tıklanan koordinata çiz;
koordinat bilgilerini ve şekil kodunu yığıta yerleştir
C veya D seçilmişse: eğer ilk tıklama bilgisi yoksa
tıklanan koordinata bir artı işareti koy;
tıklanan koordinatı başlangıç koordinatı olarak sakla
eğer ilk tıklama bilgisi varsa
seçilmiş şekilde bir çizgiyi başlangıç ile şu anda tıklanan nokta arasına çiz
başlangıç, bitiş koordinatlarını ve çizgi (hat) kodunu yığıta yerleştir
Proje Planı ve Uygulama Takvimi
Aşağıdaki kaba proje planı, yukarıdaki kilometre taşlarının gerçekleştirilmesi için gerekli çalışmalara göre, 2000 yılının hafta sayıları kullanılarak hafta bazında verilmiştir. 10ncu hafta, 13 Mart 2000 Pazartesi günü başlayan haftadır. Yeşil ile gösterilen adımlar tamamlanmıştır:
Hafta | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
1 | ||||||||||||||||||
2 | ||||||||||||||||||
3 | ||||||||||||||||||
4 | ||||||||||||||||||
5 | ||||||||||||||||||
6 | ||||||||||||||||||
7 |
Kaynakça
TEDAŞ Sefaköy Dağıtım Merkezi dokümantasyonu, İşletme Şefi ve çalışanları
Yazılım Geliştirme Dersi notları