Yazılım Mimari&Tasarım Düşünceler

  1. Tasarım hedeflerinin belirlenmesi(Basitlik, Performance, Güvenlik,Hızlı geliştirme)
  2. Denge unsurlarının ve tercihlerin belirlenmesi (TradeOffs) (Geliştirme zamanı <> Okunabilirlik,Sağlamlık;  Sürdürülebilirlik, Kullanılabilirlik <> Fonksiyonellik; Satınalma <> Kendi imkanlarımız ile geliştirme)
  3. Sistemin, küçük alt sistemlerine bölünmesi (Subsystem decomposition)
  4. Sistem sorumluluklarının, alt sistemlere dağıtılması
    • Sonra, sınıflara (Detaylı tasarımda)
    • Sonra, metotlara/fonksiyonlara (Detaylı tasarımda)
    • Sistemler/Sınıflar yüksek yakınlıklı (highly cohesive) ve düşük bağlılıklı (loosely coupled) olması
    • Detaylar için, nesne temelli tasarım ile ilgili bölüme müracaat edilmesi
  5. Yazılım alt yapı bileşenlerinin (application frameworks) gözönünde bulundurulması
    • Yazılım alt yapı bileşenlerinin, tekrar kullanılabilirliğinin düşünülmesi. Sağlanması gereken denge yaklaşımı ise, bileşenlerin hangi derecede kendi kanaklarımız ile geliştirilecek olması veya hazır olanlardan kullanılması (Açık kaynak, Ticari)
    • Yazılım alt yapı bileşenlerinin kullanılması
      • Yüksek seviye tekrar kullanılabilirlik sağlaması
        • Test edilmiş & İspatlanmış bileşenler (Kullanımı yaygın, Bir ekip tarafından sürdürülüyor olması)
        • Proje maliyetlerini düşürmesi
      • İşimize odaklanmamızın kolaylaşması (İlginin ayrıştırılması)
      • Geliştirmeyi basitleştirmesi (Karmaşıkların gizlenmesi)
      • Öğrenme süreci gerektirmesi
        • Dokümanlar ve kullanım örnekleri ile desteklenmelidir.
      • Yazılım alt yapı bileşenleri, çok fazla problemi çözmeye başladığında, bir zaman sonra kullanılması çok zor olur.
      • Yazılım alt yapı bileşenlerine bağımlılığı neticesi olarak, bazı sınırlamalar gelir. Proje gereksinimleri göre (özellikle büyük projelerde), bu sınırlamalar, hareket alanımızı daraltır.
    • Yazılım alt yapı bileşenlerinin geliştirilmesi
      • Yazılım projesinin, bütçe sınırlaması ve zaman baskısı yoksa, geliştirme tercih edilebilir. (Farklı bir proje olarak yönetilmesi de, değerlendirilebilir.)
      • Tasarımı, geliştirmesi ve sürdürülmesi zordur.
      • İş alanınızda benzer projeler varsa, öncelikli değerlendirilmelidir. (Tekrar kullanılabilirlik) Yatırım gibi düşünülmelidir. Başlangıçta ve belirli bir dönemde ödersiniz. Zaman içinde kazanabilirsiniz.
      • Sıfırdan geliştirilebilir veya daha önce geliştirilmiş hzır olan bileşenler üzerine bina edilebilir.
        • Her şeyi sıfırdan geliştirmek zordur. İhtiyaçlar fazladır ve karmaşıktır. Zaman ve kaynak sınırlıdır. (Cliche >> No-Time, No-Money)
        • Bileşenlerin kolay entegre edilebildiği, ana mimari alt yapısının geliştirilmesi
          • Hazır bileşenler, kolaylıkla entegre edilebilmelidir. (PlugIn)
          • Bileşenler, benzer olan diğer bir bileşenle kolaylıkla değiştirilebilmelidir.
          • Bazı bileşenler, sıfırdan geliştirilebilir. (Proje Kaynakları ve Zorunlu ihtiyaçlar)
  6. Mimari ve tasarımının modellenmesi (Model dokümanlarının hazırlanması)
  7. Mimari ve tasarımın, dokümantasyonunun hazırlanması
%d bloggers like this: