YMH 211 - Yazılım Gereksinimleri ve Analizi
Eğitmen Bilgileri:
- Dr. Fatih Özkaynak
- ozkaynak@firat.edu.tr
- Ofis saati:
Duyurular
- Proje Talep Formu (pdf)
- Proje grupları (link)
- Bu proje dökümanı her bir proje ekibi tarafından doldurularak en geç 08.03.2018 23:59'a kadar yazilimgereksinimanaliz@gmail.com adresine gönderilmelidir (link)
- Not/Açıklama: Mümkün olduğunca proaktif davranarak tüm başlıkları doldurmaya çalışınız. Bu çalışma sadece ön değerlendirme için kullanılacak bir çalışmadır. Yazılım mühendisliği temelleri dersi çıktılarına ne kadar hakim olduğunuzu ölçmek ve ilerideki çalışmalara temel teşkil etmek için kullanılacaktır. Bu yüzden mümkün olduğunca detaylı bir çalışma yapmanız sizin faydanıza olacaktır.
- Bağlantıdaki döküman her bir grup tarafından okunup bir sayfa rapor hazırlanarak en geç 11.03.2018 23:59'a kadar yazilimgereksinimanaliz@gmail.com adresine gönderilmelidir (link).
- CMMI dökümanı okunması tavsiye olunur (link)
- Java ve UML - Lab çalışmaları kapsamında ihtiyacımız olacak okumaya başlamanız tavsiye edilir (link)
- Python arayüz modülleri (link)
- Lab dersinde yapılan çalışma sonrasında her proje grubu Trello sayfasını oluşturacak ve dersin eposta adresinide ekleyecektir. son tarih her grup için bu haftaki lab dersine kadardır. (Trello ödevi son teslim tarihi 18.03.2018 - Bu hafta labda tekrar yapılacaktır lütfen aklınıza takılan her türlü soruyu tartışınız). Aşağıdaki videoları seyredin lütfen. Not ingilizce diye bana küfretmeyin proaktif olmayı hatırlayın
- https://www.youtube.com/watch?feature=player_embedded&v=aaDf1RqeLfo
- https://www.youtube.com/watch?v=fe5ei52usQ8
- https://www.youtube.com/watch?v=7najSDZcn-U
- https://www.youtube.com/watch?v=OUwhjnooyF8
- Lab Çalışması (pdf)
- Rol hareket, süreç ve sınıf diyagramlarını çiziniz
- Proje Teslim Klasörü (indir)
- Teşekkür: Agent software ekibi sundukları başarılı proje ile beklentilerimi gerçekten yukarıya çıkardılar. Diğer ekiplerden agent software ekibini geçebilecek yeni başarı hikayeleri bekliyorum. Teşekkürler agent software (link)
Kaynaklar:
- Hatasız Kodlama - Steve Maguire
- Yazılım Mühendisliği Temelleri - Erhan Sarıdoğan
- Yazılım Test Mühendisliği - Ali GÜRBÜZ
- Ahmet Yesevi Üniversitesi Ali Arifoğlu Yazılım Mühendisliği Ders Notları
- Ahmet Yesevi Üniversitesi Oya Kalıpsız Yazılım Mühendisliği Ders Notları
- Hacettepe Üniversitesi Yazılım Mühendisliği Ders Notları
Konular:
- Hafta 1:
- Hafta 2:
- Amaç: Başarılı yazılım projeleri geliştirmek için mühendislik yaklaşımı Süreç modellerinin önemi Yazılım yaşam döngüsü çekirdek süreçleri Yazılım yaşam döngüsü modelleri Klasik yazılım geliştirme yaşam döngüsü modelleri Çevik yazılım geliştirme yaşam döngüsü modelleri
- Video
- Sunum
- Ödevler
- CMMI belgesini hazırlayıp :göndermeniz gerekmektedir. (iptal edildi)
- Hafta 3:
- Hafta 4
- Amaç: Yazılım yaşam döngüsünün çekirdek süreçlerinden biri gereksinimlerin belirlenmesidir. Yazılım mühendisinin amacı en basit ifade ile belirlenen süre ve maliyetler içerisinde müşteri gereksinimlerini karşılayabilmektir. Dolayısıyla müşteri gereksinimlerinin en uygun şekilde belirlenmesi toplam başarı için en önemli faktörlerden biridir. Bu ders kapsamında gereksinimlerin tanımı ve neden bu konuya yönlendiğimiz açıklanmaktadır.. Derste ayrıca müşteri, analist, tasarımcı ve test uzmanı bakış açısı ile gereksinimlerin neler olduğu açıklanmıştır. Gereksinim toplamak için kullanılabilecek temel yöntemler tanıtılmıştır.
- Video 1 (izle)
- Video 2:(izle)
- Sunum
- Ödevler
- Hafta 5
- Amaç:: Mantıksal Modelleme (Nesne İlişki Şemaları ve VAD): Gereksinimlerin belirlenmesi sürecinde önemli bir adım önerilen sistemin mantıksal modellenmesidir. Her mühendislik disiplininde olduğu gibi yazılım mühendisliğinde de birinci amaç problemi matematiksel mantık ile ifade edebilmektir. Bu ders matematiksel mantık çerçevesinde gereksinimlerin nasıl ifade edilmesi gerektiğini tartışmaktadır. doğal dil ile gereksinimleri ifade etmenin zorluğu yüzünden Nesne - İlişki Şemaları ve Veri Akış Diyagramları mantıksal modelleme için CASE araçları olarak kullanılmıştır.
- Video (izle)
- Amaç: Gerekesinim mühendisliğinide kulanıcıdan sistem gereksinimlerini tam olarak alındığının doğrulanabilmesi ve kullanıcının olası şüphelerini ortadan kaldırabilmek için kullanıcı arayüz prototipleme önemli bir araçtır. Bu ders hem arayüzlerin oluşturulması hem de kullanıcı arayüz prototipleme için dikkat edilmesi gerekli adımları tartışmaktadır. Dersin son kısmında yazılım yaşam döngüsü süreçlerinden gerekesinimlerin belirlenmesi veya başka bir ifade ile çözümleme aşaması özetlenmektedir.
- Video (izle)
- Amaç:: Mantıksal Modelleme (Nesne İlişki Şemaları ve VAD): Gereksinimlerin belirlenmesi sürecinde önemli bir adım önerilen sistemin mantıksal modellenmesidir. Her mühendislik disiplininde olduğu gibi yazılım mühendisliğinde de birinci amaç problemi matematiksel mantık ile ifade edebilmektir. Bu ders matematiksel mantık çerçevesinde gereksinimlerin nasıl ifade edilmesi gerektiğini tartışmaktadır. doğal dil ile gereksinimleri ifade etmenin zorluğu yüzünden Nesne - İlişki Şemaları ve Veri Akış Diyagramları mantıksal modelleme için CASE araçları olarak kullanılmıştır.
- Hafta 6
- Amaç: Gereksinimlerin belirlenmesinde önemli aşamalardan birinin mevcut sistemin modellenmesi olduğu bilinmektedir. Gereksinimlerin belirlenmesindeki zorlukları en aza indirgeyebilmek için soyut sistematik bir yaklaşıma ihtiyaç bulunmaktadır. Bu derste bağlam, süreç, veri akış ve nesne modelleri ile bu problemin nasıl en aza indirgenebileceği gösterilmiştir.
- Örnek UML - Asansör Kontrol Sistemi
- Video (izle)
- Hafta 7
- Sunumlar (indir)
- Amaç: Unified Modeling Language (UML) nedir? Birleşik Modelleme Dili Yazılım Mühendisliğinde gereksinimlerin belirlenmesinde yaşanan zorlukları ortadan kaldırabilmek için basit, kolay kullanılabilir ve anlaşılması kolay standart yaklaşımlara ihtiyaç duyulmaktadır. Bu derste UML diyagramları tanıtılarak bu ihtiyaçların nasıl karşılanabileceği tartışılmıştır.
- Video (izle)
- Amaç: Gereksinimler belirlenirken süreci kolaylaştırmak için rol-hareket, veri-akış ve iş-akış şemaları kullanılabilir. Bu yaklaşımla bu derste UML diyagramlarından use-case, aktivite diyagramlarının detayları tanıtılmıştır.
- Video (izle)
- Amaç:
- Hafta 8