AKTS - Güvenli Yazılım Geliştirimi
Güvenli Yazılım Geliştirimi (SE457) Ders Detayları
| Ders Adı | Ders Kodu | Dönemi | Saati | Uygulama Saati | Laboratuar Hours | Kredi | AKTS |
|---|---|---|---|---|---|---|---|
| Güvenli Yazılım Geliştirimi | SE457 | Alan Seçmeli | 3 | 0 | 0 | 3 | 5 |
| Ön Koşul Ders(ler)i |
|---|
| N/A |
| Dersin Dili | İngilizce |
|---|---|
| Dersin Türü | Seçmeli Dersler |
| Dersin Seviyesi | Lisans |
| Ders Verilme Şekli | Yüz Yüze |
| Dersin Öğrenme ve Öğretme Teknikleri | Anlatım, Uygulama-Alıştırma. |
| Dersin Öğretmen(ler)i |
|
| Dersin Amacı | Dersin amacı, güvenliğin temel kavramlarını ve yazılım geliştirmedeki rolünü öğretmektir. Risk yönetimi, tehdit modelleri, yaygın zafiyetler ve güvenliğin yazılım geliştirme sürecine entegre edilmesi konuları tanımlanacak, araştırılacak, tartışılacak ve değerlendirilecektir. |
| Dersin Eğitim Çıktıları |
Bu dersi başarıyla tamamlayabilen öğrenciler;
|
| Dersin İçeriği | Güvenliğin Temelleri. Güvenli Yazılım Geliştirim. DevSecOps. Risk yönetimi. Tehdit modelleme. Veri, iletişim ve uygulama güvenliği. Güvenlik kontrolleri. API Güvenliği. Güvenlik senaryoları. Güvenli Kodlama Pratikleri. OWASP Top 10. Mitre Atta@ck. Güvenliğin değerlendirilmesi ve testleri. Güvenlik çatıları ve klavuzları. |
Haftalık Konular ve İlgili Ön Hazırlık Çalışmaları
| Hafta | Konular | Ön Hazırlık |
|---|---|---|
| 1 | Giriş | Ders notları |
| 2 | Güvenliğin Temelleri, DevSecOps | Ders notları |
| 3 | Açıklar için web kaynakları, Mimari açıdan öncelikli gereksinimler | Ders notları |
| 4 | Risk yönetimi | Ders notes |
| 5 | Güvenlik kontrolleri | Ders notları |
| 6 | İletişim ve uygulama güvenliği | Ders notları |
| 7 | Uygulama güvenliği | Ders notları |
| 8 | OWASP Top 10 | Ders notları |
| 9 | MITRE Att@ck | Ders notları |
| 10 | Güvenli Kodlama Pratikleri | Ders notları |
| 11 | API Güvenliği | Ders notları |
| 12 | Güvenliğin değerlendirilmesi ve testleri | Ders notları |
| 13 | Güvenlik çatıları ve klavuzları | Ders notları |
| 14 | Konuşlandırma sonrası ve bakım sırasında güvenliğin sağlanması ile ilgili önemli konular | Ders notları |
| 15 | Genel Sınav | Course notes |
| 16 | Genel sınav | Ders notları |
Kaynaklar
| Ders Kitabı | 1. Course Notes and online resources will be provided. |
|---|---|
| Diğer Kaynaklar | 2. Secure Coding: Principles and Practices, First edition, by Mark G. Graff, Kenneth R. van Wyk, O'Reilly Media, ISBN 978-0596002428, 2003. |
| 3. Secure Software Development: A Security Programmer's Guide, First edition, by Jason Grembi, Cengage Learning, ISBN 978-1418065478, 2008. | |
| 4. Secure and Resilient Software Development, First edition, by Mark S. Merkow, Lakshmikanth Raghavan, ISBN 978-1439826966, Auerbach Publications, 2010. | |
| 5. Designing Secure Software: A Guide for Developers, by Loren Kohnfelder, ISBN 978-1718501928, No Starch Press, 2021. | |
| 6. Software Security: Building Security, , First edition, by Gary McGraw, ISBN 978-0321356703, Addison-Wesley Professional, 2006. | |
| 7. Alice and Bob Learn Application Security, First edition, by Tanya Janca, ISBN 978-1119687351, Wiley, 2020 | |
| 8. Threat Modeling: Designing for Security, First edition, by Adam Shostack, ISBN 978-1118809990, Wiley, 2014 |
Değerlendirme System
| Çalışmalar | Sayı | Katkı Payı |
|---|---|---|
| Devam/Katılım | - | - |
| Laboratuar | - | - |
| Uygulama | 4 | 20 |
| Alan Çalışması | - | - |
| Derse Özgü Staj | - | - |
| Küçük Sınavlar/Stüdyo Kritiği | - | - |
| Ödevler | - | - |
| Sunum | - | - |
| Projeler | 1 | 20 |
| Rapor | - | - |
| Seminer | - | - |
| Ara Sınavlar/Ara Juri | 1 | 20 |
| Genel Sınav/Final Juri | 1 | 40 |
| Toplam | 7 | 100 |
| Yarıyıl İçi Çalışmalarının Başarı Notu Katkısı | 60 |
|---|---|
| Yarıyıl Sonu Çalışmalarının Başarı Notuna Katkısı | 40 |
| Toplam | 100 |
Kurs Kategorisi
| Temel Meslek Dersleri | X |
|---|---|
| Uzmanlık/Alan Dersleri | |
| Destek Dersleri | |
| İletişim ve Yönetim Becerileri Dersleri | |
| Aktarılabilir Beceri Dersleri |
Dersin Öğrenim Çıktılarının Program Yeterlilikleri ile İlişkisi
| # | Program Yeterlilikleri / Çıktıları | Katkı Düzeyi | ||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 1 | Matematik, fen bilimleri ve bilgisayar mühendisliği disiplinine özgü konularda yeterli bilgi birikimine sahip olur; bu alanlardaki kuramsal ve uygulamalı bilgileri, karmaşık mühendislik problemlerinde kullanır. | |||||
| 2 | Karmaşık mühendislik problemlerini saptar, tanımlar, formüle eder ve çözer; bu amaçla uygun analiz ve modelleme yöntemlerini seçer ve uygular. | |||||
| 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 tasarlar; bu amaçla modern tasarım yöntemlerini uygular. | |||||
| 4 | Bilgisayar mühendisliği uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirir, seçer ve kullanır; bilişim teknolojilerini etkin bir şekilde kullanır. | |||||
| 5 | Karmaşık mühendislik problemlerinin veya bilgisayar mühendisliği disiplinine özgü araştırma konularının incelenmesi için deney tasarlar, deney yapar, veri toplar, sonuçları analiz eder ve yorumlar. | |||||
| 6 | Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışır; bireysel çalışma becerisini kazanır. | |||||
| 7 | Türkçe sözlü ve yazılı etkin iletişim kurar; etkin rapor yazar ve yazılı raporları anlar, tasarım ve üretim raporları hazırlar, etkin sunum yapar, açık ve anlaşılır talimat verir ve alır. | |||||
| 8 | En az bir yabancı dil bilir; etkin rapor yazar ve yazılı raporları anlar, tasarım ve üretim raporları hazırlar, etkin sunum yapar, açık ve anlaşılır talimat verir ve alır. | |||||
| 9 | Yaşam boyu öğrenmenin gerekliliği bilincine sahip olur; bilgiye erişir, bilim ve teknolojideki gelişmeleri izler ve kendini sürekli yeniler. | |||||
| 10 | Etik ilkelerine uygun davranır, mesleki ve etik sorumluluk bilincine sahip olur. | |||||
| 11 | Bilgisayar mühendisliği uygulamalarında kullanılan standartlar hakkında bilgiye sahip olur. | |||||
| 12 | Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgiye sahip olur. | |||||
| 13 | Girişimcilik, yenilikçilik hakkında farkındalık kazanır. | |||||
| 14 | Sürdürülebilir kalkınma hakkında bilgiye sahip olur. | |||||
| 15 | Bilgisayar mühendisliği 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 bilgiye sahip olur. | |||||
| 16 | Mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalık kazanır. | |||||
| 17 | Sayısal hesaplama ve sayısal gösterim sistemlerini analiz eder, tasarlar ve ifade eder. | |||||
| 18 | Hesaplama problemlerinin çözülmesinde programlama dillerini ve uygun bilgisayar mühendisliği kavramlarını kullanır. | |||||
ECTS/İş Yükü Tablosu
| Aktiviteler | Sayı | Süresi (Saat) | Toplam İş Yükü |
|---|---|---|---|
| Teorik Ders saati (Sınav haftası dahildir: 16 x teorik ders saati) | 16 | 3 | 48 |
| Laboratuar | |||
| Uygulama | |||
| Derse Özgü Staj | |||
| Alan Çalışması | |||
| Sınıf Dışı Ders Çalışma Süresi | 16 | 2 | 32 |
| Sunum/Seminer Hazırlama | |||
| Projeler | 1 | 20 | 20 |
| Raporlar | |||
| Ödevler | 2 | 5 | 10 |
| Küçük Sınavlar/Stüdyo Kritiği | |||
| Ara Sınavlara/Ara Juriye Hazırlanma Süresi | 1 | 5 | 5 |
| Genel Sınava/Genel Juriye Hazırlanma Süresi | 1 | 10 | 10 |
| Toplam İş Yükü | 125 | ||
