Bilgisayar Mühendisliği Lisans Programı

Yazılım Mühendisliği ve Nesneye Yönelik Tasarım(INF481)

Ders Kodu Dersin Adı Yarıyıl Teori Uygulama Lab Kredisi AKTS
INF481 Yazılım Mühendisliği ve Nesneye Yönelik Tasarım 8 4 0 0 4 5
Ön Koşul
Derse Kabul Koşulları
Dersin Dili Fransızca
Türü Zorunlu
Dersin Düzeyi Lisans
Dersi Veren(ler) Gülfem ALPTEKİN gulfem@gmail.com (Email)
Dersin Yardımcıları
Dersin Amacı Dersin ilk amacı, nesneye yönelik tasarım sürecinde faydalanılabilecek tüm araçlar hakkında bilgi edinmek ve bunları uygulayabilme alışkanlığı kazanmaktır. Bu araçlar hem görsel, hem de metinsel olarak tasarıma yardımcı olurlar.
Bununla beraber, bir yazılım projesinin hayat döngüsü içinde karşılaşılabilecek her türlü süreçte verimliliği arttırabilecek yöntemleri ve araçları tanıma da dersin diğer bir amacını oluşturmaktadır.

Dersin içeriği aşağıdaki şekilde özetlenebilir:
- Öğrencilere yazılım mühendisliğinin, bilgisayar mühendisliği içindeki yerinin anlatılması.
- Öğrencilere yazılım tasarımının ve ardından nesneye yönelik tasarımın gerekliliğinin anlatılması.
- Dünyaca standart olarak kabul edilmiş görsel bir tasarım dili olan UML'in öğretilmesi.
- Farklı yazılım problemlerinin tasarımının UML dili kullanılarak yapılması.
- Öğrencilere yazılım geliştirme süreci ve yaşam döngüsünden ayrıntılarıyla bahsedilmesi.
- Piyasada kullanılan yazılım geliştirme süreçlerinin birbirlerinden farklarının anlatılması.
- Yazılım geliştirme dünyasının hangi yöne doğru gittiğinden bahsedilmesi ve pazarın getirdiği ihtiyaçların anlatılması.
- Yazılım test sürecinin anlatılması.
- Yazılım maliyeti hesaplama yöntemlerinin anlatılması.
İçerik 1. Hafta Yazılım mühendisliğine giriş, yazılım mühendisliğinin bilgisayar mühendisliği içindeki yeri.
2. Hafta Modelleme ve tasarım kavramı. Yazılım tasarımı ve nesneye yönelik modelleme kavramı.
3. Hafta UML modelleme - Aktivite, sınıf ve nesne diyagramları.
4. Hafta Aktivite, sınıf ve nesne diyagramlarının yazılım problemleri üzerinde uygulanması.
5. Hafta UML modelleme - Kullanıcı senaryosu, durum ve dizge diyagramları.
6. Hafta Kullanıcı senaryosu, durum ve dizge diyagramlarının yazılım problemleri üzerinde uygulanması.
7. Hafta Kapsamlı yazılımları altı çeşit UML diyagramı kullanarak tasarlayabilme.
8. Hafta Ara Sınav
9. Hafta Yazılım geliştirme süreci modelleri - Şelale modeli, evrimsel yazılım geliştirme (çevik yöntemler), tekrar kullanabilirlik ve kitle-kaynaklı (yarışma esaslı) yazılım geliştirme.
10. Hafta Çevik yazılım geliştirme yöntemleri.
11. Hafta Yazılım test süreci ve teknikleri.
12. Hafta Yazılım kalitesi ve yazılım kalitesi yönetimi.
13. Hafta Yazılım maliyet analizi.
14. Hafta Dönem projesi sunumları.
Dersin Öğrenme Çıktıları Bu dersi başarıyla tamamlayan öğrenci aşağıdaki konularda yeterliliğe sahip olacaktır:

1. Bir yazılım mühendisinin ne gibi sorumluluklarını olduğunu bilecektir.
2. Karşılaştığı bir yazılım problemini, isterlerini ve gerçekleştirdiği yazılımsal ve donanımsal tasarımı metinsel ve görsel olarak raporlayabilecektir.
3. Bir yazılıma ait fonksiyonel analiz dokümanı, ister dokümanı ve tasarım dokümanı oluşturabilir.
4. Bir yazılımın hangi farklı yöntemlerle gerçeklenebileceğini bilir ve kendisine en uygununu seçebilir.
5. Yazılım sektöründeki gelişmelerden nasıl ve ne kaynaklardan haberi olacağını öğrenir.
6. Bir yazılıma ait maliyet tahmini yapabilir.
7. Bir yazılımı hangi farklı yöntemlerle test edebileceğini bilir ve kendisine en uygun test yöntemini seçebilir.
Öğretim Yöntemleri Anlatım, Tartışma, Gösterip Yaptırma, Problem Çözme, İşbirlikli Öğrenme, Proje, Görüşme, Beyin Fırtınası
Kaynaklar 1. Software Engineering, Ian Sommerville, Addison-Wesley, 8th veya 9th Edition, 2010.
2. Introduction to Software Engineering Design, Processes, Principles, and Patterns with UML2, Christophe Fox, Addison-Wesley, 2006.
Ders İçeriğini Yazdır
Teori Konu Başlıkları
Hafta Konu Başlıkları
1 Yazılım mühendisliğine giriş, yazılım mühendisliğinin bilgisayar mühendisliği içindeki yeri.
2 Modelleme ve tasarım kavramı. Yazılım tasarımı ve nesneye yönelik modelleme kavramı.
3 UML modelleme - Aktivite, sınıf ve nesne diyagramları.
4 Aktivite, sınıf ve nesne diyagramlarının yazılım problemleri üzerinde uygulanması.
5 UML modelleme - Kullanıcı senaryosu, durum ve dizge diyagramları.
6 Kullanıcı senaryosu, durum ve dizge diyagramlarının yazılım problemleri üzerinde uygulanması.
7 Kapsamlı yazılımları altı çeşit UML diyagramı kullanarak tasarlayabilme.
8 Ara Sınav
9 Yazılım geliştirme süreci modelleri - Şelale modeli, evrimsel yazılım geliştirme (çevik yöntemler), tekrar kullanabilirlik ve kitle-kaynaklı (yarışma esaslı) yazılım geliştirme.
10 Çevik yazılım geliştirme yöntemleri.
11 Yazılım test süreci ve teknikleri.
12 Yazılım kalitesi ve yazılım kalitesi yönetimi.
13 Yazılım maliyet analizi.
14 Dönem projesi sunumları
Uygulama Konu Başlıkları
Hafta Konu Başlıkları
Başarı Notuna Etki Oranları
  Sayı Katkı Payı
Yarıyıl içi çalışmaların başarı notuna katkısı 3 60
Yarıyıl sonu çalışmaların başarı notuna katkısı 1 40
Toplam 4 100
Yarıyıl İçi Çalışmaları
  Sayı Katkı Payı
Ödevler 1 10
Sunum 0 0
Arasınavlar (Hazırlık Süresi Dahil) 1 25
Proje 1 25
Laboratuar 0 0
Diğer Uygulamalar 0 0
Kısa Sınavlar 0 0
Dönem Ödevi / Projesi 0 0
Portfolyo Çalışmaları 0 0
Raporlar 0 0
Öğrenme Günlükleri 0 0
Bitirme Tezi/Projesi 0 0
Seminer 0 0
Diğer 0 0
Toplam 3 60
Numara Program Yeterlilikleri Puan
1 2 3 4 5
1 Matematik, fizik ve mühendislik bilimlerine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, mühendislik problemlerinin modellenmesi ve çözümünde kullanabilme becerisi. X
2 Karmaşık bilgisayar mühendisliği problemlerini saptama, tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi. X
3 Yazılımsal veya donanımsal karmaşık bir sistemi, süreci veya donanımı gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi. X
4 Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirme, seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi. X
5 Analitik düşünce ile bir sistemi, sistem bileşenini ya da süreci analiz etme, modelleme, deney tasarlama ve yapma, veri toplama, çözüm algoritmaları üretebilme, uygulamaya alma ve geliştirme becerileri. X
6 Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi. X
7 Türkçe sözlü ve yazılı etkin iletişim kurma becerisi; en az iki yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, yazılım ve donanım tasarımını, gerekirse teknik resim metotları kullanarak raporlayabilme, etkin sunum yapabilme becerisi. X
8 Bilgiye erişebilme ve bu amaçla kaynak araştırması yapabilme, veri tabanları ve diğer bilgi kaynaklarını kullanabilme becerisi X
9 Yaşam boyu öğrenmenin gerekliliği bilinci; kendini sürekli yenileme becerisi. X
10 Mesleki etik ilkelerine uygun davranma, mesleki sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi. X
11 Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi. X
Etkinlikler Sayı Süre Toplam İş Yükü
Ders Süresi 14 4 56
Sınıf Dışı Çalışma Süresi 0 0 0
Ödevler 1 20 20
Sunum 1 4 4
Arasınavlar (Hazırlık Süresi Dahil) 1 15 15
Proje 1 15 15
Laboratuar 0 0 0
Diğer Uygulamalar 0 0 0
Yarıyıl Sonu Sınavı (Hazırlık Süresi Dahil) 1 15 15
Kısa Sınavlar 0 0 0
Dönem Ödevi / Projesi 0 0 0
Portfolyo Çalışmaları 0 0 0
Raporlar 0 0 0
Öğrenme Günlükleri 0 0 0
Bitirme Tezi/Projesi 0 0 0
Seminer 0 0 0
Diğer 0 0 0
Toplam İş Yükü 125
Toplam İş Yükü / 25 5,00
Dersin AKTS Kredisi 5
Scroll to Top