Component’e Dayalı Yazılım Mühendisliğinde Çözümleme Süreci “Component-Based Software Engineering Analysis” Yusuf Altunel İstanbul Kültür Üniversitesi, Bilgisayar Müh. Bölümü, İSTANBUL. y.altunel@iku.edu.tr http://web.iku.edu.tr/~yaltunel Prof. Dr. Mehmet R. Tolun Doğu Akdeniz Üniversitesi, Bilgisayar Müh. Bölümü, KKTC. mehmet.tolun@emu.edu.tr http://www.eng.emu.edu.tr/tolun/ 01-04.05.2003 Bilgi Teknolojileri Kongresi II / Pamukkale Üniversitesi - Denizli
Bilgi Teknolojileri Kongresi II / Pamukkale Üniversitesi - Denizli Özet Yazılım mühendisliği: Diğer mühendisliklerden farklı olarak genel kabul görmüş yöntem ve araçlara sahip değildir Sağlıklı ölçme ve değerlendirme yöntemleri uygulanamamaktadır Ortaya çıkan ürünler kalite ve gereksinimlerin karşılanmasında yetersiz kalmaktadır Component’e Dayalı Yazılım Mühendisliği: Yazılım mühendisliğini klasik mühendisliğe benzeştirme çabasındadır Yazılımın her parçasının tekrar tekrar üretilmesi yerine Yazılım component’larının tanımlanıp üretilmesini ve yeniden kullanılmasını önermektedir. Component yazılım parçaları: Tekrar kullanılabilir, yüksek kaliteli, standartlaştırılmış, kolayca entegre edilebilir, kendi başına kullanılabilir 01-04.05.2003 Bilgi Teknolojileri Kongresi II / Pamukkale Üniversitesi - Denizli
Component’e Dayalı Yazılım Mühendisliği Klasik yazılım geliştirme süreçleri: Yapısal yaklaşımlar Nesneye yönelik yaklaşımlar Tanımlı yazılım geliştirme aşamaları Gereksinimlerin belirlenmesinden Yazılım ürünlerinin kullanıma hazır hale getirilmesine kadarki süreçleri kapsar Component’e dayalı geliştirme Kendine özgü gereksinimleri vardır. Klasik yaklaşımlardan farklılıklar göstermektedir. Diğer yöntemlerden ayrılan ve benzeşen taraflar belirlenmelidir. Süreçler net olarak tanımlanmalıdır. 01-04.05.2003 Bilgi Teknolojileri Kongresi II / Pamukkale Üniversitesi - Denizli
Bilgi Teknolojileri Kongresi II / Pamukkale Üniversitesi - Denizli Amaçlar Component üretimi ve bunları kullanarak sistem geliştirmede çözümleme sürecini tanımlamak Component’e dayalı yazılım geliştimede çözümleme sürecini incelemek alt süreçleri belirlemek Çözümleme sürecinin net bir fotoğrafını çekmek 01-04.05.2003 Bilgi Teknolojileri Kongresi II / Pamukkale Üniversitesi - Denizli
Çözümlemenin Diğer Süreçlere Etkisi Sonraki süreçler çözümleme sürecine sıkı sıkıya bağlıdır. Çözümlemenin etkilediği alanlar Sistem tasarımı Sistemin mimari yapısı Üretimde teknik sınırlamaların belirlenmesi Yeniden kullanılabilir component’ların tespit edilmesi Test dökümanlarının hazırlanması Kalite gereksinimlerinin belirlenmesi Yazılımda bakım süreçlerinin iyileştirilmesi 01-04.05.2003 Bilgi Teknolojileri Kongresi II / Pamukkale Üniversitesi - Denizli
Bilgi Teknolojileri Kongresi II / Pamukkale Üniversitesi - Denizli Temel Amaçlar Yazılımda kalite Güvenilebilir, bakımı kolay, Kalite seviyesi ölçülebilir yazılım geliştimek Yeniden kullanılabilirlik: Aynı programların, değişik projelerde yeniden üretilmesinin önüne geçmek Çözümleme sürecinde, kalite ve yeniden kullanılabilirlik konusunda alt süreçler tanımlanmalıdır 01-04.05.2003 Bilgi Teknolojileri Kongresi II / Pamukkale Üniversitesi - Denizli
Çözümlemede Alt Süreçler Alan çalışması Gereksinimlerin çözümlenmesi İşlevsel çözümleme Modelleme Tarifleme Değerlendirme Pazar çalışması Sonuca bağlama Tarifleme: Specification Sonuca bağlama: Decision 01-04.05.2003 Bilgi Teknolojileri Kongresi II / Pamukkale Üniversitesi - Denizli
Çözümlemede Alt Süreçler Alan çalışması Alana özgü gereksinimler Alandaki ortak noktalar Alana ait componentler Benzer uygulamalarda uyulacak ortak kurallar Alan standartları Ürün tesbiti Projede alan uzmanları görevlendirilmelidir Gereksinimlerin çözümlenmesi İş ve kullanıcı gereksinimleri Yazılımdan umulan beklentiler Kalite ve diğer işlev-dışı gereksinmeler Yöntem ve Aktiviteler Veri toplama Formal yöntemler Olası kullanıcılarla doğrudan etkileşim metodları 01-04.05.2003 Bilgi Teknolojileri Kongresi II / Pamukkale Üniversitesi - Denizli
Çözümlemede Alt Süreçler İşlevsel çözümleme Yazılım işlevlerinin belirlenmesi Ana component’ler ve alt component’lerin tanımlanması Yapısal özellikler Temel veriyapıları İşlevler Olaylar Arayüzler Component bağlantıları İşbirlikçi component’ler Davranışsal özellikler Durum (state) Etki-tepki davranışları Kullanıcılarla iletişim Alt birimlerin içsel davranışları Modelleme Geliştirmeciler ve diğerleri arasında iletişim aracıdır Tasarıma geçirilecek ürünlerdendir Görsel unsurların kullanılması Sistemi oluşturacak yapıların modellenmesi İşlevsel özellikler İşlev-dışı özellikler Modeller Component-Responsibility-Collaborator-Event Use-case diyagramlar Aktivite diyagramları 01-04.05.2003 Bilgi Teknolojileri Kongresi II / Pamukkale Üniversitesi - Denizli
Çözümlemede Alt Süreçler Tarifleme Component’ların temel özelliklerinin belirlenmesi Bulanık tanımların netleştirilmesi Aramada kolayca bulunacak nitelikleri ile tarif edilmeleri Tarif edilecek özellikler İşlevsel tanımlama Davranışsal nitelikler İçsel özellikler İşlev-dışı özellikler Performans Zamanla ilgili nitelikler Gerçek zamanlı kısıtlar Güvenlik özellikleri Değerlendirme Component ve system özellikleri hakkında karar alma süreçleri Alternatiflerin değerlendirilerek uygun tercihlerin yapılması Hazır ürünlerin uygunluğunun değerlendirilmesi İşlevsel ve işlev-dışı gereksinmelerin karşılanabilirliği Tarif edilen component’a uygunluk testi Satın al-veya- üret Yeniden üretim maliyetleri Hazır ürünlerde risk değerlendirmesi Test maliyetleri Üretici desteği Lisanslama maliyetleri Yeni sürümlerin edinilmesi Tarifleme: Specification 01-04.05.2003 Bilgi Teknolojileri Kongresi II / Pamukkale Üniversitesi - Denizli
Çözümlemede Alt Süreçler Pazar çalışması Üçüncü parti ürünlerin satın alınması Uygun adayların belirlenmesi Fiyat-kalite-performans hesaplamaları Aracıların seçimi Ürünlerin pazarlanması Rakip ürünlerin özellikleri Müşteri portföyü ve gereksinimlerinin çözümlenmesi Fiyat tespiti Olası gelir ve giderlerin belirlenmesi Ürün stratejisi çalışmaları Sonuçlar geliştirmenin niteliğini değiştirebilir Sonuca bağlama Üretimle ilgili karar alma süreci Ürünlerin satın alınması Maliyet ve strateji hesapları Satıcı ile kapsamlı sözleşme Ürünlerin sisteme entegrasyonu Ürünlerin yerel ortamda geliştirilmeleri Üretim yöntemlerinin belirlenmesi Üretim süreçlerinin yönetimi Yeterli testlerin uygulanması Kalite yönetimi Yeniden kullanıma uygun tasarım Ürünün tek kullanımlık ya da yeniden kullanılabilir olması Ek maliyetlerin belirlenmesi Ek süreçlerin planlanması Yeniden kullanılabilir ürünlerin pazarlanabilirlikleri Sonuca bağlama: Decision 01-04.05.2003 Bilgi Teknolojileri Kongresi II / Pamukkale Üniversitesi - Denizli
Çözümlemede Özyineleme Yaklaşımı İki farklı component’a dayalı üretim tarzı: Component üretimi Component kullanarak sistem üretimi Tek bir tarz olarak birleştirilebilir: Özyinelemeye dayalı üretim süreçleri Her component yerel gerekleri olan karmaşık bir sistem olarak kabul edilebilir Bu durumda sistem üretimine çevrimlenmiş olur Böylece sistem özyineleme yöntemi ile baştan aşağı ve aynı süreçlerin tekrar uygulanması ile geliştirilebilir İlk component’ler karmaşık ana modüller Son component’ler kolay programlanabilir ürünlerdir Çözümlemede tanımlanan tüm alt süreçler her component için tekrar tekrar uygulanmalıdır Özyineleme: Recursion 01-04.05.2003 Bilgi Teknolojileri Kongresi II / Pamukkale Üniversitesi - Denizli
Bilgi Teknolojileri Kongresi II / Pamukkale Üniversitesi - Denizli Sonuçlar Component’e dayalı yazılım geliştirme Yeni bir yöntemdir Yazılım geliştirmeye farklı bir yaklaşım getirmektedir Kendine özgü sorunları vardır Yazılım mühendisliğinin temel sorunlarını çözme iddiasındadır Component’e dayalı çözümleme Üretim süreçlerinin en önemlilerinden biridir Sonraki aşamaları doğrudan ilgilendirmektedir Klasik yaklaşımlarda tanımlanmamış yeni işlevler gerektirmektedir Özyineleme Yaklaşımı Component’a dayalı, farklı üretim tarzlarını birleştirmektedir Yeni ve bağımsız satılabilir yan ürünlerin üretilmesini sağlamaktadır 01-04.05.2003 Bilgi Teknolojileri Kongresi II / Pamukkale Üniversitesi - Denizli