12 Haziran 2008 Perşembe

Proje Yönetim Sistemi Otomasyonu

2007-2008 bahar doneminde Yazılım Mühendisliği Laboratuvari dersi kapsaminda gelistirdigim bu proje hakkindaki temel bilgileri bu yazida vermeye calisacagim.

Projenin
- SRS (System Requierement Specification)
- SDD (Software Design Descriptiom) belgeleri ve
- ER diagrami ile
- Veritabani scriptini incelemek isterseniz bana e-mail yoluyla ulaşabilirsiniz. (fatih_batuk [at] yahoo.com)

Gelistirilme Ortami : Eclipse WTP (web tool platform for JEE)
Dil : jsp, java
kütüphaneler
: Struts2, Hibernate
Veritabani : PostGreSql 8.2

Projenin Kısa Tanımı :

Sistem birden çok projenin yürütüldüğü bi firmanın proje ve kaynak yönetimi ihtiyacını karşılayacak biçimde düşünülmüştür. Sistemde projeler, proje modülleri ve alt modüller tanımlıdır. Her proje birden fazla proje modülünden oluşabilir. Her proje modülü de birden fazla alt modülden oluşabilir.

Sistemde proje yöneticiler, takım liderleri ve calışanlar tanımlıdır. Bir projeye ait kaynaklar, o projedeki proje yöneticisi, takım liderleri ve çalışanları ifade etmektedir. Her proje bir proje yöneticisi tarafından yönetilir. Bir proje yönetici birden fazla projeyi yönetebilir.

Sistemde takımlar tanımlıdır. Her takımın bir lideri vardır ve her takım lideri yalnızca bir takıma liderlik edebilir. Bir takımda istenildiği kadar çalışan olabilir.

Sistemde görevler tanımlıdır. Sistemdeki proje alt modüllerine birden fazla görev atanabilir. Bir görev yalnızca bir proje alt modülü için tanımlıdır. Bir görev yalnızca bir takıma aittir. Ve her takıma bir görev verilebilir. Görevlerin başlangıç ve bitiş süreleri vardır.

Sistemde, sistem kullanıcıları için roller tanımlıdır. Her kişinin bir rolü vardır. Sisteme girdiğinde, ait olduğu role ait izin verilen işlemleri gerçekleştirebilmelidir. Yeni roller eklenebilmelidir. Temel roller süper kullanıcı, proje yöneticisi, takım lideri ve çalışan dır.

Proje’de karşılanan temel İşlevlerden bazıları :

  • Sisteme süper kullanıcı tarafından yeni proje yöneticisi, takım lideri ya da çalışan eklenebilir, var olanlar değiştirilebilirö silinebilir.
  • Sisteme süper kullanıcı tarafından yeni projeler, proje modülleri ve alt modüller eklenebilir ve var olanlar değiştirilebilir, silinebilir.
  • Sisteme süper kullanıcı veya proje yöneticisi tarafından yeni görevler ve takımlar eklenebilir ve var olanlar değiştirilebilir, silinebilir.
  • Bir projedeki tüm kaynaklar(işgücü), projedeki takımların yüklendiği görevler ve o takımdaki çalışanlar tüm roller tarafından listelenebilir.
  • Bir modülün tamamlanma oranı ayrılan iş gücüne göre hesaplanarak süper kullanıcı veya proje yöneticisi tarafından raporlanabilir.

Projenin ER Çizeneği (Entity-Relationship Diagram):




Projenin bazı ekran görüntüleri :

1.

2.



3.



Öğrenci Okul Servisi Otomasyonu

2007-2008 guz doneminde Veritabani Laboratuvari dersi kapsaminda gelistirdigim bu proje hakkindaki temel bilgileri bu yazida vermeye calisacagim

Gelistirilme Ortami : .NET 2005
Veritabani : Oracle 10g
Dil : aspx, C#

Projenin Kısa Tanımı :

Sistem farkli okullara servis hizmeti veren bir servis sirketinin ihtiyacini karsilayacak bicimde duzenlenecektir. Sirketin filosindaki araclarla farkli okullara eszamanli hizmet verebildigi dusunulmustur. Sistemde okullar kayitlidir. Okullarin mudurleri tanimlidir ve servis sirketi okul ile ilgili organizasyon meselerini okul muduru ille irtibata gecerek yapmaktadir.

Sistemde soforler ve araclar tanimlidir. Okullara servis atamalari yapilmaktadir. Bir okula atanan servisler ogretim yilinin sonuna kadar sabittir. Bir servis araci birden fazla okulun servis aginda eszamanli olmamak kaydiyla bulunabilir. Bir servis bir okul icin sadece bir guzergaha atanabilir. Bir servis araci birden cok servis soforu tarafindan kullanilabilir ve bir servis soforu birden fazla araca atanabilir.

Sistemde rehberler tanimlidir. Rehber ilkogretim okuluna hizmet verildiginde servis sirketi tarafindan soforle birlikte araca atanmaktadir. Rehber ilkogretim ogrencilerini aractan indirip guvenli bir yere birakmak ile gorevlidir. Rehber tasiyan araclarin kapasitesine rehberin oturma yeri dahildir. Rehber de bir yolcu olarak algilanip kapasite dolduracaktir. Ilkogretim ustu duzeyindeki okullar icin servislerde rehber bulunmayacaktir.

Sistemde iller tanimlidir Bir ilde birden cok okula hizmet verilebilir. Sistemde bolgeler, mahalleler, duraklar ve guzergahlar tanimlidir. Ogrenciler ilgili guzergahin ilgili duragindan servise binerler. Bir bolgede birden fazla mahalle bulunabilir. Bir mahallede birden fazla durak olabilir. Guzergahlar duraklarla tanimlidir. Bir duraktan birden fazla guzergah da gecebilir. Bir okul servis aginda birden fazla guzergah tanimlanabilir.

Sistemde ogrenciler tanimlidir. Ogrenciler okullarina atanan guzergahlardan birini secip kendilerine en yakin duraktan servise binerler. Ihtiyaca gore guzergaha duraklar eklenip cikarilabilir. Ogrenci icin bindigi duraktan ucretlendirme yapilir. Ogrencinin taksitleri bindigi duraga gore tanimlidir.

Sistemde yoneticiler tanimlidir. Yoneticiler servis sirketinin personelidir ve onay islemlerini yuruten sistem yoneticileridir. Yoneticiler bölge-güzergah-servis-sürücü işlemlerini yönetebilir, güzergahlara yerleşmek isteyen öğrencileri onaylayip sisteme kaydedebilirler.

Proje’de karşılanan temel işlevlerden bazıları :

  • Sisteme yeni il, bolge, mahalle, okul, okul turu, arac, sofor, rehber, ogrenci, yönetici ve müdür eklenebilir, var olanlar listelenebilir, duzenlenebilir ve silinebiir
  • Sistem yoneticileri okullara servis atayabilir, guzergahlari ve duraklari tanimlayabilir, soforlerin ve gerekliyse rehberin servise atanmasini gerceklestirebilir.
  • Guzergahlara durak eklenip çıkartılabilir. Yeni guzergahlar tanimlanabilir.
  • Ögrenci taksitleri yonetici duzeyinde kontrol edilip listelenebilir ve odeme girisi yapılıp düzenlenebilir.


Projenin ER Çizeneği (Entity-Relationship Diagram):



Projenin sorgu ekranları için Oracle'da gerçekleştirimi yapılan faydalı olabilecek bazı SQL sorgu örnekleri :

1.
Taksidi ödenmemiş öğrencilere 3 taksit için %10, 4 taksit için %15, 5 taksit için %20, 6 taksit için %25 faiz ekleyerek, öğrencinin TC nosu, adı, soyadı ve toplam borcunu listele

SELECT OGRENCITAKSIT.TCNO, KISI.KISIAD, KISI.KISISOYAD,

CASE COUNT(*)
WHEN 3 THEN SUM(MIKTAR)*1.1
WHEN 4 THEN SUM(MIKTAR)*1.15
WHEN 5 THEN SUM(MIKTAR)*1.2
WHEN 6 THEN SUM(MIKTAR)*1.25
ELSE SUM(MIKTAR)
END AS TOPLAM_BORC

FROM OGRENCITAKSIT

INNER JOIN OGRENCI ON OGRENCI.TCNO = OGRENCITAKSIT.TCNO

INNER JOIN KISI ON OGRENCI.TCNO = KISI.TCNO

WHERE OGRENCITAKSIT.ODENDI = 0

GROUP BY OGRENCITAKSIT.TCNO, KISI.KISIAD, KISI.KISISOYAD


2. Her araçtaki mevcut öğrenci miktarı ile araç kapasitesini listele

SELECT ACIKLAMA, plaka, COUNT(*) AS MEVCUT, KAPASITE FROM OGRENCI

INNER JOIN GUZERGAHDURAK ON
OGRENCI.GUZERGAHDURAK_PK = GUZERGAHDURAK.GUZERGAHDURAK_PK

INNER JOIN GUZERGAH ON GUZERGAHDURAK.GUZERGAHNO = GUZERGAH.GUZERGAHNO

INNER JOIN ARAC ON GUZERGAH.ARACNO = ARAC.ARACNO

GROUP BY ACIKLAMA, plaka, KAPASITE



3. Girilen minimum bolge sayisina 'VE/VEYA' minimum okul sayisina sahip illeri listele

SELECT ILAD FROM IL WHERE ILNO IN

( ( SELECT ILNO FROM BOLGE GROUP BY ILNO HAVING COUNT(*) > :BOLGENO )

INTERSECT ('VEYA' için INTERSECT yerine 'UNION' yazılmalı)

( SELECT ILNO FROM OKUL GROUP BY ILNO HAVING COUNT(*) > :OKULNO ) )


4.

SELECT SOFORARAC.SOFORARAC_PK, SOFORARAC.TCNO, SOFORARAC.ARACNO, SOFORARAC.BASLANGICSAATI, SOFORARAC.BITISSAATI,
SOFORARAC.GUNU, SOFORARAC.BASLANGICTARIHI, SOFORARAC.BITISTARIHI, SOFORARAC.TCNOREHBER,
KISI.KISIAD || ' ' || KISI.KISISOYAD AS SOFORISIM, KISI_1.KISIAD || ' ' || KISI_1.KISISOYAD AS REHBERISIM, ARAC.PLAKA

FROM SOFORARAC

INNER JOIN ARAC ON SOFORARAC.ARACNO = ARAC.ARACNO

LEFT OUTER JOIN KISI ON SOFORARAC.TCNO = KISI.TCNO

LEFT OUTER JOIN KISI KISI_1 ON SOFORARAC.TCNOREHBER = KISI_1.TCNO


Projenin ekran goruntulerine de vaktim olursa burda yer vermeye calisacagim.