Ders Detayı
Ders Tanımı
Ders | Kodu | Yarıyıl | T+U Saat | Kredi | AKTS |
---|---|---|---|---|---|
İLERİ YAZILIM TEKNİKLERİ | COE4213193 | Bahar Dönemi | 3+0 | 3 | 6 |
Ders Programı |
Ön Koşul Dersleri | |
Önerilen Seçmeli Dersler |
Dersin Dili | İngilizce |
Dersin Seviyesi | Lisans |
Dersin Türü | Programa Bağlı Seçmeli |
Dersin Koordinatörü | Prof.Dr. Selim AKYOKUŞ |
Dersi Verenler | Prof.Dr. Selim AKYOKUŞ |
Dersin Yardımcıları | |
Dersin Amacı | Bu dersin amacı, modern yazılım geliştirme, yöntemleri, ilkeleri ve uygulamalarını öğrenmek, anlamak ve analiz etmektir. Konular arasında gereksinim analizi ve spesifikasyonu, büyük yazılım sistemlerinin tasarımı, uygulanması, doğrulanması ve bakımı; gelişmiş yazılım geliştirme teknikleri ve büyük proje yönetimi yaklaşımları; proje planlama, zamanlama, kaynak yönetimi, riskler, yapılandırma kontrolü ve dokümantasyon yer almaktadır. Bu ders sırasında öğrenciler Scrum metodolojisini kullanarak takımlar halinde büyük bir yazılım sistemini hayata geçirirler. |
Dersin İçeriği | Bu ders; Yazılım Metodolojileri ve Mühendisliğine Giriş,UML ile Modelleme,Yazılım yapımı, Yazılım Süreci ve Plan Odaklı Yöntemler,Çevik Yöntemler,Gereksinim Mühendisliği, Elicitation ve Spesifikasyon,Yazılım Mimarisi, Tasarım Paternleri ve Mimari Kalıplar ,Ara sınav,Model / View / Controller ve Web Uygulama Mimarileri,REST ve Web Hizmetleri,Yazılım Modülerliği ve Sistem Ayrıştırma,Yazılım Kullanılabilirliği, Personalar, Wireframe'ler,Yazılım Doğrulama ve Geçerleme, ,Yazılım Test Stratejileri, Sürekli Entegrasyon,Yazılım Güvenliği ve Bakımı; konularını içermektedir. |
Dersin Öğrenme Kazanımları | Öğretim Yöntemleri | Ölçme Yöntemleri |
Modern yazılım mühendisliğinin çeşitli yönlerini içeren karmaşık bir yazılım sisteminin nasıl planlanacağını, tasarlanacağını ve inşa edileceğini öğrenmek. | ||
Modern araçları kullanma ve zorlu teknik alanların üstesinden gelme konusunda yetkinlik kazanma. | ||
Bir ekibin parçası olarak diğer ekipler ve müşteri temsilcileri ile işbirliği yapan büyük bir yazılım projesi üzerinde çalışma deneyimi edinmek. |
Öğretim Yöntemleri: | |
Ölçme Yöntemleri: |
Ders Akışı
Sıra | Konular | Ön Hazırlık |
---|---|---|
1 | Yazılım Metodolojileri ve Mühendisliğine Giriş | |
2 | UML ile Modelleme | |
3 | Yazılım yapımı, Yazılım Süreci ve Plan Odaklı Yöntemler | |
4 | Çevik Yöntemler | |
5 | Gereksinim Mühendisliği, Elicitation ve Spesifikasyon | |
6 | Yazılım Mimarisi, Tasarım Paternleri ve Mimari Kalıplar | |
7 | Ara sınav | |
8 | Model / View / Controller ve Web Uygulama Mimarileri | |
9 | REST ve Web Hizmetleri | |
10 | Yazılım Modülerliği ve Sistem Ayrıştırma | |
11 | Yazılım Kullanılabilirliği, Personalar, Wireframe'ler | |
12 | Yazılım Doğrulama ve Geçerleme, | |
13 | Yazılım Test Stratejileri, Sürekli Entegrasyon | |
14 | Yazılım Güvenliği ve Bakımı |
Kaynak |
- Clean Code, Robert C. Martin, PHI - Design Patterns, Erich Gamma, Addison Wesley - Patterns of Enterprise Application Architecture, Martin Fowler, 1st edition, Addison-Wesley - Enterprise Integration Patterns, Gregor Hohpe, Pearson Addison-Wesley Professional - Code Complete, Steve Mcconnell, Microsoft Press US |
Derste dağıtılacaktır. |
Dersin Program Yeterliliklerine Katkısı
Dersin Program Yeterliliklerine Katkısı | |||||||
No | Program Yeterliliği | Katkı Düzeyi | |||||
1 | 2 | 3 | 4 | 5 | |||
1 | 1. Matematik, fen bilimleri ve ilgili mühendislik disiplinine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, karmaşık mühendislik problemlerinde kullanabilme becerisi | X | |||||
2 | 2. Karmaşık mühendislik 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 | 3. Karmaşık bir sistemi, süreci, cihazı veya ürünü 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 | 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 | 5. Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisi | X | |||||
6 | 6. Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi | X | |||||
7 | 7. Sözlü ve yazılı etkin iletişim kurma becerisi; en az bir yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, tasarım ve üretim raporları hazırlayabilme, etkin sunum yapabilme, açık ve anlaşılır talimat verme ve alma becerisi | ||||||
8 | 8. Yaşam boyu öğrenmenin gerekliliği bilinci; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi | X | |||||
9 | 9. Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi | ||||||
10 | 10. 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 | |||||
11 | 11. Mühendislik uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın mühendislik alanına yansıyan sorunları hakkında bilgi; mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalık |
Değerlendirme Sistemi
Katkı Düzeyi | Mutlak Değerlendirme | |
Ara Sınavın Başarıya Oranı | 30 | |
Genel Sınavın Başarıya Oranı | 70 | |
Toplam | 100 |
AKTS / İşyükü Tablosu | ||||||
Etkinlik | Sayı | Süresi (Saat) | Toplam İş Yükü (Saat) | |||
Ders Saati | 14 | 3 | 42 | |||
Rehberli Problem Çözme | 0 | 0 | 0 | |||
Problem Çözümü / Ödev / Proje / Rapor Tanzimi | 6 | 10 | 60 | |||
Okul Dışı Diğer Faaliyetler | 0 | 0 | 0 | |||
Proje Sunumu / Seminer | 2 | 15 | 30 | |||
Kısa Sınav (QUİZ) ve Hazırlığı | 0 | 0 | 0 | |||
Ara Sınav ve Hazırlığı | 1 | 15 | 15 | |||
Genel Sınav ve Hazırlığı | 1 | 25 | 25 | |||
Performans Görevi, Bakım Planı | 0 | 0 | 0 | |||
Toplam İş Yükü (Saat) | 172 | |||||
Dersin AKTS Kredisi = Toplam İş Yükü (Saat)/30*=(172/30) | 6 | |||||
Dersin AKTS Kredisi: *30 saatlik çalışma 1 AKTS kredisi sayılmaktadır. |
Dersin Detaylı Bilgileri
Ders Tanımı
Ders | Kodu | Yarıyıl | T+U Saat | Kredi | AKTS |
---|---|---|---|---|---|
İLERİ YAZILIM TEKNİKLERİ | COE4213193 | Bahar Dönemi | 3+0 | 3 | 6 |
Ders Programı |
Ön Koşul Dersleri | |
Önerilen Seçmeli Dersler |
Dersin Dili | İngilizce |
Dersin Seviyesi | Lisans |
Dersin Türü | Programa Bağlı Seçmeli |
Dersin Koordinatörü | Prof.Dr. Selim AKYOKUŞ |
Dersi Verenler | Prof.Dr. Selim AKYOKUŞ |
Dersin Yardımcıları | |
Dersin Amacı | Bu dersin amacı, modern yazılım geliştirme, yöntemleri, ilkeleri ve uygulamalarını öğrenmek, anlamak ve analiz etmektir. Konular arasında gereksinim analizi ve spesifikasyonu, büyük yazılım sistemlerinin tasarımı, uygulanması, doğrulanması ve bakımı; gelişmiş yazılım geliştirme teknikleri ve büyük proje yönetimi yaklaşımları; proje planlama, zamanlama, kaynak yönetimi, riskler, yapılandırma kontrolü ve dokümantasyon yer almaktadır. Bu ders sırasında öğrenciler Scrum metodolojisini kullanarak takımlar halinde büyük bir yazılım sistemini hayata geçirirler. |
Dersin İçeriği | Bu ders; Yazılım Metodolojileri ve Mühendisliğine Giriş,UML ile Modelleme,Yazılım yapımı, Yazılım Süreci ve Plan Odaklı Yöntemler,Çevik Yöntemler,Gereksinim Mühendisliği, Elicitation ve Spesifikasyon,Yazılım Mimarisi, Tasarım Paternleri ve Mimari Kalıplar ,Ara sınav,Model / View / Controller ve Web Uygulama Mimarileri,REST ve Web Hizmetleri,Yazılım Modülerliği ve Sistem Ayrıştırma,Yazılım Kullanılabilirliği, Personalar, Wireframe'ler,Yazılım Doğrulama ve Geçerleme, ,Yazılım Test Stratejileri, Sürekli Entegrasyon,Yazılım Güvenliği ve Bakımı; konularını içermektedir. |
Dersin Öğrenme Kazanımları | Öğretim Yöntemleri | Ölçme Yöntemleri |
Modern yazılım mühendisliğinin çeşitli yönlerini içeren karmaşık bir yazılım sisteminin nasıl planlanacağını, tasarlanacağını ve inşa edileceğini öğrenmek. | ||
Modern araçları kullanma ve zorlu teknik alanların üstesinden gelme konusunda yetkinlik kazanma. | ||
Bir ekibin parçası olarak diğer ekipler ve müşteri temsilcileri ile işbirliği yapan büyük bir yazılım projesi üzerinde çalışma deneyimi edinmek. |
Öğretim Yöntemleri: | |
Ölçme Yöntemleri: |
Ders Akışı
Sıra | Konular | Ön Hazırlık |
---|---|---|
1 | Yazılım Metodolojileri ve Mühendisliğine Giriş | |
2 | UML ile Modelleme | |
3 | Yazılım yapımı, Yazılım Süreci ve Plan Odaklı Yöntemler | |
4 | Çevik Yöntemler | |
5 | Gereksinim Mühendisliği, Elicitation ve Spesifikasyon | |
6 | Yazılım Mimarisi, Tasarım Paternleri ve Mimari Kalıplar | |
7 | Ara sınav | |
8 | Model / View / Controller ve Web Uygulama Mimarileri | |
9 | REST ve Web Hizmetleri | |
10 | Yazılım Modülerliği ve Sistem Ayrıştırma | |
11 | Yazılım Kullanılabilirliği, Personalar, Wireframe'ler | |
12 | Yazılım Doğrulama ve Geçerleme, | |
13 | Yazılım Test Stratejileri, Sürekli Entegrasyon | |
14 | Yazılım Güvenliği ve Bakımı |
Kaynak |
- Clean Code, Robert C. Martin, PHI - Design Patterns, Erich Gamma, Addison Wesley - Patterns of Enterprise Application Architecture, Martin Fowler, 1st edition, Addison-Wesley - Enterprise Integration Patterns, Gregor Hohpe, Pearson Addison-Wesley Professional - Code Complete, Steve Mcconnell, Microsoft Press US |
Derste dağıtılacaktır. |
Dersin Program Yeterliliklerine Katkısı
Dersin Program Yeterliliklerine Katkısı | |||||||
No | Program Yeterliliği | Katkı Düzeyi | |||||
1 | 2 | 3 | 4 | 5 | |||
1 | 1. Matematik, fen bilimleri ve ilgili mühendislik disiplinine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, karmaşık mühendislik problemlerinde kullanabilme becerisi | X | |||||
2 | 2. Karmaşık mühendislik 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 | 3. Karmaşık bir sistemi, süreci, cihazı veya ürünü 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 | 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 | 5. Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisi | X | |||||
6 | 6. Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi | X | |||||
7 | 7. Sözlü ve yazılı etkin iletişim kurma becerisi; en az bir yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, tasarım ve üretim raporları hazırlayabilme, etkin sunum yapabilme, açık ve anlaşılır talimat verme ve alma becerisi | ||||||
8 | 8. Yaşam boyu öğrenmenin gerekliliği bilinci; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi | X | |||||
9 | 9. Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi | ||||||
10 | 10. 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 | |||||
11 | 11. Mühendislik uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın mühendislik alanına yansıyan sorunları hakkında bilgi; mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalık |
Değerlendirme Sistemi
Katkı Düzeyi | Mutlak Değerlendirme | |
Ara Sınavın Başarıya Oranı | 30 | |
Genel Sınavın Başarıya Oranı | 70 | |
Toplam | 100 |