Yazılım Mühendisliği (İngilizce) | |||||
Lisans | TYYÇ: 6. Düzey | QF-EHEA: 1. Düzey | EQF-LLL: 6. Düzey |
Ders Kodu: | SWE002 | ||||
Ders İsmi: | Java'da eşzamanlı ve gerçek zamanlı programlama | ||||
Ders Yarıyılı: | Bahar | ||||
Ders Kredileri: |
|
||||
Öğretim Dili: | İngilizce | ||||
Ders Koşulu: | |||||
Ders İş Deneyimini Gerektiriyor mu?: | Hayır | ||||
Dersin Türü: | Bölüm/Program Seçmeli | ||||
Dersin Seviyesi: |
|
||||
Dersin Veriliş Şekli: | Yüz yüze | ||||
Dersin Koordinatörü: | Dr. Öğr. Üy. MUHAMMED DAVUD | ||||
Dersi Veren(ler): | Dr. Öğr. Üyesi Muhammed Davud | ||||
Dersin Yardımcıları: |
Dersin Amacı: | Bu ders, öğrencilere gerçek zamanlı sistemlerin tasarımı ve analizindeki temel problemleri, kavramları ve yaklaşımları tanıtmaktadır. Gerçek zamanlı uygulamalar genellikle zamanlama garantilerinin sürdürülmesini gerektiren güvenlik veya görev açısından kritik sistemleri içerir. Gerçek zamanlı görev tasarımı, güvenilirlik, iletişim, zamanlama ve gerçek zamanlı kontrol gibi konular ele alınacaktır. Bu ders, gerçek zamanlı sistemlerde Java programlama dilinin kullanımına odaklanarak verilecektir. |
Dersin İçeriği: | Bu ders kapsamında aşağıdaki konular ele alınacaktır: gerçek zamanlı sistemler için programlama dilleri, gerçek zamanlı işletim sistemleri (RTOS), zamanlama, kaynak kullanımı, gerçek zamanlı sistem yazılımının tasarımı ve analizi, gerçek zamanlı sistemlerin modellemesi ve doğrulaması, güvenilirlik ve hata toleransı, kesmeler, hata kurtarma, dağıtılmış gerçek zamanlı sistemler, gerçek zamanlı iletişim ve çoklu işlemci sistemleri için gerçek zamanlı sistemler. |
Bu dersi başarıyla tamamlayabilen öğrenciler;
1) Gerçek zamanlı sistemlerin tasarımı ve analizindeki temel problemleri, kavramları ve yaklaşımları anlamak. 2) Güvenilirlik, iletişim, zamanlama ve gerçek zamanlı kontrol gibi faktörleri dikkate alarak gerçek zamanlı görev tasarım prensiplerini uygulamak. 3) Java programlama dilini kullanarak gerçek zamanlı sistemler geliştirmek ve uygulamada yetkinlik göstermek. 4) Zamanlama kısıtları, kaynak tahsisi ve güvenilirlik gibi faktörleri dikkate alarak gerçek zamanlı sistem yazılımı tasarlamak ve analiz etmek. 5) Kesme işleme, hata kurtarma ve hata tolere etme tekniklerini gerçek zamanlı sistemlerde anlamak ve uygulamak. |
Hafta | Konu | Ön Hazırlık |
1) | Gerçek zamanlı sistemlere giriş. | |
2) | Gerçek Zamanlı Sistemler ve Programlama Dilleri. | |
3) | Güvenilirlik ve Hata Toleransı. | |
4) | Güvenilirlik ve Hata Toleransı. | |
5) | İstisnalar ve İstisna İşleme. | |
6) | Eşzamanlı Programlama. | |
7) | Paylaşılan Değişken Tabanlı Senkronizasyon ve İletişim. | |
8) | Ara Sınav | |
9) | Mesaj tabanlı Senkronizasyon ve iletişim. | |
10) | Atomik Eylemler, Eşzamanlı Görevler ve Güvenilirlik. | |
11) | Gerçek zamanlı sistemlerde zamanlama. | |
12) | Java Swing. | |
13) | Java Swing. | |
14) | Java Swing. |
Ders Notları / Kitaplar: | Concurrent and Real-Time Programming in Java, by Andrew Wellings. |
Diğer Kaynaklar: | Real-Time Systems and Programming Languages: Ada, Real-Time Java and C/Real-Time POSIX (4th Edition), by Alan Burns and Andy Wellings. |
Course Learning Outcomes | 1 |
2 |
3 |
4 |
5 |
||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Program Kazanımları | |||||||||||
1) Matematik, fen bilimleri ve yazılım mühendisliğine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, karmaşık mühendislik problemlerinin çözümünde kullanabilme becerisi. | |||||||||||
2) Karmaşık yazılım mühendisliği problemlerini tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi. | 2 | 3 | 3 | 3 | |||||||
3) Karmaşık bir yazılım sistemini, süreci, cihazı veya ürünü gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama, gerçekleştirme, sınama, doğrulama, ölçme ve bakımını yapma becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi. | 3 | 3 | 3 | ||||||||
4) Yazılım mühendisliği uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi. | 3 | 3 | 3 | ||||||||
5) Karmaşık mühendislik problemlerinin veya yazılım mühendisliği araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisi. | |||||||||||
6) Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi. | |||||||||||
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) Yaşam boyu öğrenmenin gerekliliği konusunda farkındalık; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi. | |||||||||||
9) Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk ve yazılım mühendisliği uygulamalarında kullanılan standartlar hakkında bilgi. | |||||||||||
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. | |||||||||||
11) Yazılım mühendisliği uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın yazılım mühendisliği alanına yansıyan sorunları hakkında bilgi; yazılım mühendisliği çözümlerinin hukuksal sonuçları konusunda farkındalık. |
Etkisi Yok | 1 En Düşük | 2 Orta | 3 En Yüksek |
Dersin Program Kazanımlarına Etkisi | Katkı Payı | |
1) | Matematik, fen bilimleri ve yazılım mühendisliğine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, karmaşık mühendislik problemlerinin çözümünde kullanabilme becerisi. | |
2) | Karmaşık yazılım mühendisliği problemlerini tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi. | 3 |
3) | Karmaşık bir yazılım sistemini, süreci, cihazı veya ürünü gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama, gerçekleştirme, sınama, doğrulama, ölçme ve bakımını yapma becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi. | 3 |
4) | Yazılım mühendisliği uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi. | 3 |
5) | Karmaşık mühendislik problemlerinin veya yazılım mühendisliği araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisi. | |
6) | Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi. | |
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) | Yaşam boyu öğrenmenin gerekliliği konusunda farkındalık; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi. | |
9) | Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk ve yazılım mühendisliği uygulamalarında kullanılan standartlar hakkında bilgi. | |
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. | |
11) | Yazılım mühendisliği uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın yazılım mühendisliği alanına yansıyan sorunları hakkında bilgi; yazılım mühendisliği çözümlerinin hukuksal sonuçları konusunda farkındalık. |
Yarıyıl İçi Çalışmaları | Aktivite Sayısı | Katkı Payı |
Ara Sınavlar | 1 | % 40 |
Final | 1 | % 60 |
Toplam | % 100 | |
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI | % 40 | |
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI | % 60 | |
Toplam | % 100 |
Aktiviteler | Aktivite Sayısı | İş Yükü |
Ders Saati | 13 | 39 |
Sınıf Dışı Ders Çalışması | 15 | 101 |
Ara Sınavlar | 1 | 2 |
Final | 1 | 2 |
Toplam İş Yükü | 144 |