Elektrik Dağıtım Merkezleri Otomasyonu

(EDMO)

 

Adile Zerrin Kibaroğlu

 

Tasarım Belgesi

 

Yazılım Geliştirme Projesi

Bilgi 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

  1. 13 Mart 2000 - Projenin teklifinin hazırlanıp sunulması (tamamlandı)
  2. 10 Nisan 2000 - Projenin analizinin tamamlanarak sunulması (tamamlandı)
  3. 8 Mayıs 2000 - Projede kullanılacak olan veri yapıları ve arayüzlerin tasarlanması (tamamlandı - bu belge)
  4. 5 Haziran 2000 - Gerçeklestirim
  5. 9 Haziran 2000 - Test
  6. 30 Haziran 2000 - Problemlerin Giderilmesi
  7. 1-2 Temmuz 2000 - Sunum

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ı

Proje Ana Sayfasına Dön