| Ders Adı | Kodu | Yarıyıl | T+U Saat | Kredi | AKTS |
|---|---|---|---|---|---|
| Yazılım Geliştirme Süreçleri (Devops) | SWE 304 | 6 | 3 + 0 | 3 | 5 |
| Ön Koşul Dersleri | |
| Önerilen Seçmeli Dersler | |
| Dersin Dili | İngilizce |
| Dersin Seviyesi | Lisans |
| Dersin Türü | Zorunlu |
| Dersin Koordinatörü | Prof.Dr. AHMET ÖZMEN |
| Dersi Verenler | Prof.Dr. AHMET ÖZMEN, |
| Dersin Yardımcıları | |
| Dersin Kategorisi | Diğer |
| Dersin Amacı | Bu derste yazılım geliştirme süreçleri, revizyon kontrolu, kolobratif çalışma ve modern yazılım yayınlanma süreçleri öğretilmektedir. Ders öğretiminde bulut sistemlerden yararlanılmaktadır. Yazılım konteyner teknolojileri (Docker) ve konteyner yönetimi dersin önemli bir kısmını oluşturmakatdır. Sürekli geliştirme ve sürekli dağıtım metodları ile ilgili son teknolojiler ve sağladıkları faydaar detayları ile öğretilemketdir. Ders kapsamında öğretilen bazı teknolojiler şunlardır: Docker, Docker-Compose, Git Flow Control, Jenkins, Kubernetes. |
| Dersin İçeriği | Ders kapsamında aşağıdaki konular uygulamalı olarak öğretilir: Yazılım oluşturma araçları: Make, Ant, Maven, Gradle, MS-Build. Yazılım yaşam döngüsü: Geliştirme ve Operasyonlar, Sürekli Entegrasyon ve Sürekli Teslimat (CI/CD). Yazılım konteynerları: Docker, Docker copose, Kubernetes. GitHub ve akış kontrolü. Otomasyon sunucusu Jenkins. |
| # | Ders Öğrenme Çıktıları | Öğretim Yöntemleri | Ölçme Yöntemleri |
|---|---|---|---|
| 1 | Bulut bilişim araçlarını kullanır. | Anlatım, Grupla Çalışma, | Doğru Yanlış Testleri, Yazılı Sınavlar (Kısa ve Uzun Yanıtlı), |
| 2 | Yazılım geliştirme araçlarını kurar ve ayarlar. | Anlatım, Beyin Fırtınası, Grupla Çalışma, | Doğru Yanlış Testleri, Eşleştirme Testler, |
| 3 | Sanallaştırma ve konteynır teknolojilerini kullanır. | Anlatım, Grupla Çalışma, | Doğru Yanlış Testleri, Eşleştirme Testler, |
| 4 | Sürekli entegrasyon altyapısı oluşturur. | Anlatım, Beyin Fırtınası, Grupla Çalışma, | Doğru Yanlış Testleri, Kısa Cevaplı Testler, Eşleştirme Testler, |
| 5 | Grup halinde yazılım geliştirme işlemleri için hat (pipeline yapı) oluşturur. | Anlatım, Beyin Fırtınası, Tartışma, | Doğru Yanlış Testleri, Eşleştirme Testler, |
| Hafta | Ders Konuları | Ön Hazırlık |
|---|---|---|
| 1 | Yazılım yaşam döngüsü. Yazılım build araçları: Make, Ant, Maven, Gradle, Msbuild vs. | |
| 2 | Şelale ve çevik yazılım geliştirme modelleri. DevOps fazları: Plan, code, build, test, integrate, deploy, operate ve monitor. | |
| 3 | Versiyon kontrol sistemleri (Git) ve grup halinde yazılım geliştirme. | |
| 4 | Bulut sistem ile yazılımların yayınlanması (publish). Basit dosya transferi (FTP) ile yazılım yayınlama. Web sunucusu (Nginx) konfigürasyonu. | |
| 5 | Sanallaştırma ve konteyner teknolojileri (Docker). Dockerfile ile yazılımların konteynera konulması. | |
| 6 | Konteyner hub kullanımı (Docker-Hub). Konteyner hub (Docker-Hub) üzerinden yazılım dağıtımı. Bulut üzerinde yayınlama. | |
| 7 | Docker compose ile çok sayıda konteynerin organizasyonu ve koordinasyonu. | |
| 8 | GitHub ile yazılım oluşturma (build) ve akış kontrolu (flow). | |
| 9 | Sürekli teslimat (Continuous Delivery). | |
| 10 | Sürekli dağıtım (Continuous Deployment). | |
| 11 | Jenkins sunucusu ile yazılım yayınlama süreçlerinin otomatikleştirilmesi. Sürekli entegrasyon (Continuous Integration with Jenkins). | |
| 12 | Lokal bilgisayarda veya bulut üzerinde Kubernetes küme bilgisayar oluşturma ve konteyner yayınlama. | |
| 13 | Bulut üzerinde Kubernetes ile sürekli performans izleme. | |
| 14 | Proje çalışmalarının değerlendirilmesi ve tartışma. |
| Kaynaklar | |
|---|---|
| Ders Notu | Her hafta yapılan sunumlar ve uygulamalara ilişkin dokümanlar sistem üzerinden sağlanacaktır. |
| Ders Kaynakları | Mikael Krief, Learning DevOps, Pact publishing, 2019. |
| Sıra | Program Çıktıları | Katkı Düzeyi | |||||
|---|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | |||
| 1 | Mühendislik Bilgisi: Matematik, fen bilimleri, temel mühendislik, bilgisayarla hesaplama ve ilgili mühendislik disiplinine özgü konularda bilgi; bu bilgileri, karmaşık mühendislik problemlerinin çözümünde kullanabilme becerisi. | X | |||||
| 2 | Problem Analizi: Karmaşık mühendislik problemlerini, temel bilim, matematik ve mühendislik bilgilerini kullanarak ve ele alınan problemle ilgili BM Sürdürülebilir Kalkınma Amaçlarını gözeterek tanımlama, formüle etme ve analiz becerisi. | X | |||||
| 3 | Mühendislik Tasarımı: Karmaşık mühendislik problemlerine yaratıcı çözümler tasarlama becerisi; karmaşık sistemleri, süreçleri, cihazları veya ürünleri gerçekçi kısıtları ve koşulları gözeterek, mevcut ve gelecekteki gereksinimleri karşılayacak biçimde tasarlama becerisi. | X | |||||
| 4 | Teknik ve Araçların Kullanımı: Karmaşık mühendislik problemlerinin analizi ve çözümüne yönelik, tahmin ve modelleme de dahil olmak üzere, uygun teknikleri, kaynakları ve modern mühendislik ve bilişim araçlarını, sınırlamalarının da farkında olarak seçme ve kullanma becerisi. | X | |||||
| 5 | Araştırma ve İnceleme: Karmaşık mühendislik problemlerinin incelenmesi için literatür araştırması, deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama dahil, araştırma yöntemlerini kullanma becerisi. | X | |||||
| 6 | Mühendislik Uygulamalarının Küresel Etkisi: Mühendislik uygulamalarının BM Sürdürülebilir Kalkınma Amaçları* kapsamında, topluma, sağlık ve güvenliğe, ekonomiye, sürdürülebilirlik ve çevreye etkileri hakkında bilgi; mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalık. | ||||||
| 7 | Mühendislik Etiği: Mühendislik meslek ilkelerine* uygun davranma, etik sorumluluk hakkında bilgi; hiçbir konuda ayrımcılık yapmadan, tarafsız davranma ve çeşitliliği kapsayıcı olma konularında farkındalık. | ||||||
| 8 | Bireysel ve Takım Çalışması: Bireysel olarak ve disiplin içi ve çok disiplinli takımlarda (yüz yüze, uzaktan veya karma) takım üyesi veya lideri olarak etkin biçimde çalışabilme becerisi. | X | |||||
| 9 | Sözlü ve Yazılı İletişim: Hedef kitlenin çeşitli farklılıklarını (eğitim, dil, meslek gibi) dikkate alarak, teknik konularda sözlü, yazılı etkin iletişim kurma becerisi. | ||||||
| 10 | Proje Yönetimi: Proje yönetimi ve ekonomik yapılabilirlik analizi gibi iş hayatındaki uygulamalar hakkında bilgi; girişimcilik ve yenilikçilik hakkında farkındalık. | ||||||
| 11 | Yaşam Boyu Öğrenme: Bağımsız ve sürekli öğrenebilme, yeni ve gelişmekte olan teknolojilere uyum sağlayabilme ve teknolojik değişimlerle ilgili sorgulayıcı düşünebilmeyi kapsayan yaşam boyu öğrenme becerisi. | ||||||
| # | Ders Öğrenme Çıktılarının Program Çıktılarına Katkısı | PÇ 1 | PÇ 2 | PÇ 3 | PÇ 4 | PÇ 5 | PÇ 6 | PÇ 7 | PÇ 8 | PÇ 9 | PÇ 10 | PÇ 11 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Bulut bilişim araçlarını kullanır. | 5 | ||||||||||
| 2 | Yazılım geliştirme araçlarını kurar ve ayarlar. | 5 | ||||||||||
| 3 | Sanallaştırma ve konteynır teknolojilerini kullanır. | 5 | ||||||||||
| 4 | Sürekli entegrasyon altyapısı oluşturur. | 5 | ||||||||||
| 5 | Grup halinde yazılım geliştirme işlemleri için hat (pipeline yapı) oluşturur. | 5 |
| Değerlendirme Sistemi | |
|---|---|
| Yarıyıl Çalışmaları | Katkı Oranı |
| Toplam | 0 |
| Toplam | 0 |
| AKTS - İş Yükü Etkinlik | Sayı | Süre (Saat) | Toplam İş Yükü (Saat) |
|---|---|---|---|
| Ders Süresi (Sınav haftası dahildir: 16x toplam ders saati) | 14 | 3 | 42 |
| Ara Sınav | 1 | 10 | 10 |
| Proje / Tasarım | 4 | 10 | 40 |
| Final | 1 | 15 | 15 |
| Sınıf Dışı Ders Çalışma Süresi(Ön çalışma, pekiştirme) | 14 | 2 | 28 |
| Toplam İş Yükü | 135 | ||
| Toplam İş Yükü / 25 (Saat) | 5,4 | ||
| dersAKTSKredisi | 5 | ||