Yazılım Mühendisliğinin Temelleri

2016-2017 BAHAR YARIYILI:

YMH114 proje şablonu (İNDİRMEK İÇİN TIKLAYINIZ)

YMH114 Ödev ve Proje Değerlendirme Ölçütleri (İNDİRMEK İÇİN TIKLAYINIZ)

YMH114 1. HAFTA DERS DÖKÜMANI

(Ödevler: 5651, 6698, SQAP, SVVP)

Yazılım Mühendisliği Temelleri Dersi için proje belirleme işlemleri 20.02.2017‘ye kadar tamamlanmalıdır. Öğrencilerimiz projeleri için İLETİŞİM menüsünden danışıp fikir alabilirler. Proje belirleme aşaması, yazılım yaşam döngüsü aşamasına benzer biçimde değerlendirilip özellikle ciddi analizler sonucunda titizlikle yapılmalıdır.

YMH114 YAZILIM MÜHENDİSLİĞİNİN TEMELLERİ DERSİ PROJE/ÖDEV DEĞERLENDİRME KRİTERLERİ

Projeler, YMH114 dersinde anlatılan kriterlere göre yapılmalı ve rapor düzenine uyulmalıdır.-Proje ödevinde sayfa sınırı yoktur. İçeriğe bağlı olarak değerlendirilecektir.-Teslim edilen Proje dosyası içerisine, yapılan tüm çalışma dosyalarının
 Edit’lenebilecek formatları dahil (.doc, .vsd, .psd, gibi formatları ayrıca tamamı .pdf olarak) DVD/CD ile teslim edilecektir.
-Proje uygulamalarını yapanlar, geliştirdikleri yazılımları ve yazılımlarını geliştirdikleri ortam yazılımlarını da DVD’ye yükleyerek teslim edecektir.
– YMH114 dersini ilk kez alanlar için yazılım geliştirme zorunlu değildir, ancak uygulama geliştirenler extra puan ile değerlendirilecektir.
– Proje içerisindeki bölümlerde olması gereken zorunlu çizelgeler, şekiller, diyagramlar aşağıda belirtilmiştir.
Genel olarak metinde Times New Roman, 12 punto, 1.5 satır aralığı, iki yana yaslı metin kullanılmalıdır.

PROJE DÖKÜMANTASYONUNDA BULUNMASI GEREKEN BÖLÜMLER VE AÇIKLAMALARI

1. Bölüm – Tanıtım :
Bu kısımda projenin amacı, kapsamı ve genel tanıtımı yapılmalıdır.

2. Bölüm – Planlama:
– Gant diyagramı çizilmelidir (Maliyet kestirim dökümanı doğrultusunda
oluşturulacaktır).
– Ekip yapısı şematik olarak verilmeli ayrıca bunların zaman iş planları
gösterilmelidir.
– Proje planı içerisindeki alt planlama başlıkları (Şablondaki 2.8 ve 2.13 arası her bir planlama aşaması) için gant diyagramları verilmeli ve bu planlama aşamaları için yer alacak ekiplerin yapısı, zaman/iş planları ve her bir planlama aşamasında kullanılacak kaynaklar yazılmalıdır.

3. Bölüm – Çözümleme:
– Bu kısımda konu ile alakalı örnek bir mevcut sistemin use case diyagramı ve sistemin işleyiş senaryosu verilmelidir.
– Mevcut sistemin eksik yönleri belirlenerek önerdiğiniz sistemin bu eksikliklerden hangilerine nasıl çözüm getirdiği açıklanmalıdır.
– Önerilen sistemin İşlevsel Model başlığı altında Use case diyagramları çizilmeli ve her bir senaryo için Text formatında senaryolar yazılmalıdır.
– Bilgi sistemleri/Nesneler başlığı altında önerilen sistemin Sınıf diyagramları çizilecek her bir sınıfın kullanım amacı kısaca açıklanacak senaryolarla ilişkisi verilecektir.
– Sınıfların nasıl kullanılacağı veri modelinde açıklanacak gerekirse veri tabanı yapısı ile ilişkisi verilecektir.
– Önerilen sistemin arayüzleri kısaca tanıtılacaktır. Verilen arayüzlerin maliyet kestirim dokümanında kullanılıp kullanılmadığı incelenecektir. Kodlama yapılsa da yapılmasa da sistemde ne tür arayüzler kullanılacağı belirtilmelidir. Hiç kodlama yapılmayan projelerde ilgili arayüzler herhangi bir IDE (kodlar bağlanmaksızın) ile veya görsel bir başka tasarım aracıyla çizilebilir.

4. Bölüm – Tasarım:
Sistemin tasarım mimarisi akış diyagramı olarak verilmelidir. Ancak diyagramın dışında verdiğiniz mimarinin açıklaması seçim nedenleri ile birlikte detaylı verilmelidir.
– Tasarım aşamasında her bir arabirim için kullanım amacı, üzerinde çalışacağı veri modeli, hangi testlerin uygulanacağı ve performans kriterlerinin ne olacağı verilmelidir.
– Arabirim tasarımların yapılmasının ardından fonksiyonel gereksinimleri sağlayacak modüllerin neler olacağı verilmelidir. Her bir modül için tasarımı, kullanıcı profilleri, entegrasyon ve test işlemlerinin nasıl yapılacağı akış diyagramı şeklinde verilmelidir.
– Varsa ortak alt sistemler açıklanmalı, modüller arası ortak veriler belirtilmelidir.

5. Bölüm – Gerçekleştirme:
– Önerilen sistem gerçekleştirilirken hangi programlama dilinin ve araçlarının, hangi teknolojilerin neden seçildiği açıklanacaktır.
Veri tabanı yönetim sisteminin mimarisi verilmelidir. Çözümleme aşamasında verilen veri modeliyle ilişkili olmasına dikkat edilecektir. (5.2.2 başlığı altındaki tüm başlıklar detaylı olarak irdelenmelidir.)
– Gerçekleştirme aşamasında kullanılan standartlar verilmelidir.
– Gerçekleştirim aşamasında meydana gelebilecek olağan dışı durumlar belirlenmeli nasıl yönetileceği kısaca açıklanmalıdır.
Kod gözden geçirme işleminin nasıl yapılacağı verilmelidir.

6. Bölüm –Test:
Doğrulama ve geçerleme işlemlerinin nasıl yapılacağına ilişkin iş zaman planı gant diyagramı olarak verilmelidir. (planlama aşamasında verilen test planı ile uyumlu olmasına dikkat edilecektir).
– Test (doğrulama) planı için hangi yöntemlerin neden ve nasıl kullanıldığı detaylı olarak açıklanmalıdır.
Kullanılacak test araçları varsa işleyişi kısaca açıklanmalıdır.
Önerilen sistem gerçekleştirilirken hangi test türü ve araçlarının neden seçildiği açıklanacaktır.

7. Bölüm – Bakım:
– Yazılım kurulum aktiviteleri hakkında bilgiler verilmelidir.
– Kurulum sonrasında yerinde destek organizasyonu tarif edilmelidir.
– Kurulum ve entegrasyon aşamalarında yapılacaklar hakkında bilgiler verilmelidir.

8. Bölüm – Sonuç:
-Bu bölümde gerçekleştirilen uygulamanın detaylı bir biçimde değerlendirilmesi yapılmalıdır.
-Gerçekleştirilen sistemin mevcut sistemlerden farkı net bir biçimde ortaya konulmalıdır.
-Gerçekleştirilen sistemin hangi probleme çözüm ürettiği belirtilmelidir.
– Gerçekleştirilen sistemin mevcut sistemlere göre avantajları ve dezavantajları anlatılmalı, sistem benzer diğer sistemlerle tablolar ile karşılaştırılmalıdır.
-Gerçekleştirilen sistemin dezavantajları değerlendirilerek gelecekte nasıl iyileştirilebileceği detayları ile anlatılmalıdır.

9. Bölüm Kaynaklar:

– Geliştirme süreçlerinin her aşamasında yararlanılan kaynaklar (Kitap, Makale, Ders Notu, İnternet Sitesi vb) numaralandırılarak yazılmalıdır.

– Buradaki kaynaklar sadece yararlanıldığı anlamında olmayıp, doküman içerisinde kaç numaralı kaynaktan nerede yararlanıldığı kaynak göstererek verilmelidir.

 

Yazılım mühendisliği (İngilizcesoftware engineering), yazılım geliştirme ile ilgilenen bilim dalıdır. Yazılım mühendisliği tanımı ilk olarak 1968 yılında gerçekleştirilen NATO toplantısında Almanya‘da gündeme gelmiştir.[1]

Yazılım mühendisliği tanım olarak “karmaşık yazılım sistemlerinin belirli bir hedefe ve sisteme dayalı olarak ve işbölümü yapılarak, belirli prensipler, yöntemler ve araçlar kullanılarak geliştirilmesidir.” Yazılım mühendisliği belirli aşamalardan oluşmaktadır. Yazılım geliştirmenin yanında yazılımı işletmek de yazılım mühendisliğinin en önemli görevlerindendir. Bu alandaki güncel gelişmeler “Software Engineering Body of Knowledge” (SWEBOK) adlı dokümentasyonda tarif edilmektedir.

YTÜ-Yrd. Doç. Dr. Yunus Emre SELÇUK-Yazılım Mühendisliği Dersi Dökümanları

YAZILIM MÜHENDİSLİĞİNE GİRİŞ

Yazılım :

• Herhangi bir boyuttaki herhangi bir tür donanımda çalışan bilgisayar programını VE,
• Basılı veya elektronik ortamdaki her tür dokümanı içeren ürün.
• Dokümanlar yazılım mühendislerine ve son kullanıcıya yönelik olabilir.
• Yazılım hem bir üründür, hem de başka ürünler elde etmeye yarayan bir araçtır.
• Yazılım fiziksel bir ürün olmadığı için aşınmaz, ancak zamanla
yetersizleşebilir.
• Değişim kaçınılmazdır: Yazılım, yaşam döngüsü süresince değişikliklere uğrar.
• Değişiklikler, yazılımda yeni hatalar oluşturabilir.
• Yeni hatalar tam olarak düzeltilmeden yeni değişiklikler gerekebilir.
• Yaşam döngüsü: Yazılımın bir fikir olarak doğmasından, kullanım dışı bırakılmasına kadar geçen süreç.
• Çözüm: Yazılım mühendisliği ilkelerine uyularak daha iyi tasarlanmış yazılım

YAZILIM SINAMA TEKNİKLERİ

Kısım 1: YAZILIM MÜHENDİSLİĞİNE GİRİŞ

Kısım 2: YAZILIM YAŞAM DÖNGÜSÜ VE YAZILIM GELİŞTİRME SÜREÇLERİ

Kısım 3: NESNEYE YÖNELİK ÇÖZÜMLEME SÜRECİ

Kısım 4: NESNEYE YÖNELİK TASARIM SÜRECİ

Kısım 5: YAZILIM ÖLÇÜTLERİ

Kısım 6: YAZILIM SINAMA TEKNİKLERİ