Ana içeriğe geç

Sistem Tasarım Dokümanı

ISO/IEC 15504 SPICE | ENG.5 Tasarım gereksinimlerinin karşılanması beklenmektedir.

İlgili Jira Task: PCR-11

1. Sistem Mimarisi Tasarımı

1.1. Genel Sistem Mimarisi

Sistem Mimarisi

  • Mimari Modeli: Client-Server Architecture

  • Ana Bileşenler:

  • Mobil Cihaz: Kullanıcı arayüzü ve telefon arama işlevselliği
  • Mobil Uygulama: Flutter tabanlı cross-platform mobil uygulama
  • Web Servis (Backend): .NET tabanlı REST API servisleri
  • MSSQL Veri Tabanı: Merkezi veri depolama ve yönetimi

1.2. Teknoloji Stack'i

Katman Teknoloji Açıklama
Frontend Flutter Cross-platform mobil uygulama geliştirme framework'ü
Backend .NET REST API servisleri için .NET Core framework
Database MSSQL Microsoft SQL Server veritabanı yönetim sistemi
Cache Redis Performans optimizasyonu için in-memory cache

1.3. Deployment Mimarisi

Deployment diagramı buraya eklenecek

  • Environment'lar:
  • Development: Geliştirici ortamı - yerel geliştirme ve test
  • Test: Test ortamı - entegrasyon ve kullanıcı kabul testleri
  • Staging: Canlı öncesi ortam - son testler ve doğrulama
  • Production: Canlı ortam - kullanıcı erişimine açık sistem

2. Bileşen Tasarımları

2.1. Mobil Uygulama (Flutter)

  • Amaç: Kullanıcı arayüzü sağlamak ve telefon arama işlevselliğini yönetmek
  • Sorumluluklar:
  • Kullanıcı kimlik doğrulama ve yetkilendirme
  • Telefon arama kayıtlarını görüntüleme ve yönetme
  • Arama kayıtlarını backend'e gönderme
  • Kullanıcı arayüzü ve etkileşim yönetimi
  • Arayüzler:
  • Giriş: Kullanıcı girişi, arama parametreleri
  • Çıkış: Arama sonuçları, kullanıcı bildirimleri
  • Bağımlılıklar: Backend Web Servisleri, Mobil Cihaz API'leri

2.2. Web Servis (Backend - .NET)

  • Amaç: İş mantığı işlemleri ve veri yönetimi
  • Sorumluluklar:
  • REST API endpoint'leri sağlama
  • Veri doğrulama ve işleme
  • Veritabanı işlemleri
  • Güvenlik ve kimlik doğrulama
  • Arayüzler:
  • Giriş: HTTP istekleri, API parametreleri
  • Çıkış: JSON/XML yanıtları, hata mesajları
  • Bağımlılıklar: MSSQL Veritabanı, Redis Cache

2.3. MSSQL Veritabanı

  • Amaç: Merkezi veri depolama ve yönetimi
  • Sorumluluklar:
  • Kullanıcı verilerini saklama
  • Arama kayıtlarını depolama
  • Veri bütünlüğü ve tutarlılık sağlama
  • Yedekleme ve kurtarma
  • Arayüzler:
  • Giriş: SQL sorguları, veri ekleme/güncelleme
  • Çıkış: Sorgu sonuçları, veri setleri
  • Bağımlılıklar: Backend Web Servisleri

2.4. Mobil Cihaz

  • Amaç: Donanım seviyesinde telefon arama işlevselliği
  • Sorumluluklar:
  • Telefon arama API'lerine erişim
  • Arama kayıtlarını toplama
  • Donanım seviyesi güvenlik
  • Arayüzler:
  • Giriş: Sistem arama kayıtları
  • Çıkış: Arama verileri, cihaz durumu
  • Bağımlılıklar: Mobil Uygulama

3. Güvenlik Tasarımı

3.1. Kimlik Doğrulama

  • Method: JWT (JSON Web Token)
  • Token Yaşam Süresi: 60 dakika
  • Refresh Token: Var (7 gün geçerli)

3.2. Yetkilendirme

  • Role-Based Access Control (RBAC): Evet
  • Roller:
  • Admin: Tam sistem yönetimi, kullanıcı yönetimi, raporlama
  • User: Kendi arama kayıtlarını görüntüleme ve yönetme
  • Guest: Sadece okuma yetkisi (sınırlı erişim)

3.3. Veri Güvenliği

  • Şifreleme: AES-256 şifreleme (veri transferi için), SHA-256 (şifre hash'leme)
  • Hassas Veri: Telefon numaraları ve arama kayıtları şifrelenmiş olarak saklanır
  • Audit Log: Tüm kullanıcı işlemleri ve sistem erişimleri loglanır
  • IP Doğrulaması: Frontend yalnızca kurum içi ağdan backend'e erişir

4. Performans Tasarımı

4.1. Performans Hedefleri

Metrik Hedef Ölçüm Yöntemi
Response Time < 500 ms API endpoint yanıt süresi ölçümü
Throughput 1000 req/sec Eş zamanlı kullanıcı işlem kapasitesi
Availability 99.9% Sistem uptime ve erişilebilirlik

4.2. Optimizasyon Stratejileri

  • Caching: Redis ile sık erişilen veriler için in-memory cache
  • Database Optimization: MSSQL index'leri ve sorgu optimizasyonu
  • Load Balancing: API Gateway ile yük dengeleme

5. Hata Yönetimi

5.1. Hata Kodları

Kod Açıklama HTTP Status
ERR001 Kimlik doğrulama hatası 401
ERR002 Yetkilendirme hatası 403
ERR003 Veri bulunamadı 404
ERR004 Geçersiz veri formatı 400
ERR005 Sunucu içi hata 500

5.2. Logging Stratejisi

  • Log Seviyeleri: Debug, Info, Warning, Error, Fatal
  • Log Format: JSON formatında yapılandırılmış loglar
  • Log Storage: Dosya tabanlı loglama ve veritabanı audit log'ları

6. Test Tasarımı

6.1. Unit Test Stratejisi

  • Framework: xUnit (.NET), Flutter Test (Mobil)
  • Coverage Hedefi: %80 kod kapsama oranı
  • Test Kategorileri:
  • Unit Test: Bireysel fonksiyon ve sınıf testleri
  • Integration Test: API endpoint ve veritabanı entegrasyon testleri
  • UI Test: Mobil uygulama kullanıcı arayüzü testleri

6.2. Flutter Test Stratejisi

  • Framework: Flutter Test, Mockito, Integration Test
  • Test Türleri:
  • Widget Test: UI bileşenlerinin doğru render edilmesi
  • Unit Test: Business logic ve utility fonksiyonları
  • Integration Test: Tam uygulama akışı testleri
  • Golden Test: UI görsel tutarlılık testleri
  • Test Kapsamı:
  • State Management: Provider/Bloc state yönetimi testleri
  • API Integration: HTTP istekleri ve response handling
  • Navigation: Sayfa geçişleri ve route testleri
  • Test Araçları:
  • Mockito: API ve servis mock'lama
  • TestWidgetsFlutterBinding: Widget test framework'ü
  • IntegrationTestWidgetsFlutterBinding: End-to-end testler
  • Golden Test: UI screenshot karşılaştırma

6.3. Integration Test Stratejisi

  • Test Senaryoları:
  • Kullanıcı Girişi: Kimlik doğrulama ve yetkilendirme testleri
  • Arama Kayıtları: Veri ekleme, güncelleme, silme ve listeleme testleri
  • API Entegrasyonu: Mobil uygulama-backend iletişim testleri
  • Güvenlik Testleri: IP doğrulama ve veri şifreleme testleri
  • Flutter UI Testleri: Kullanıcı arayüzü etkileşim testleri
  • Flutter Navigation Testleri: Sayfa geçişleri ve route testleri
  • Flutter State Testleri: State management ve veri akışı testleri

7. Kontrol Listesi

7.1. Tasarım Gözden Geçirme Kontrol Listesi

  • Mimari tasarım gereksinimlerle uyumlu mu?
  • Performans hedefleri karşılanabilir mi?
  • Güvenlik gereksinimleri tanımlandı mı?
  • Test stratejisi yeterli mi?
  • Hata yönetimi kapsamlı mı?
  • Konfigürasyon yönetimi tanımlandı mı?
  • Dokümantasyon eksiksiz mi?

Not: Bu doküman Proje Dökümantasyon Süreci standartlarına uygun olarak hazırlanmış ve ISO/IEC 15504 SPICE | ENG.5 Tasarım gereksinimlerini karşılamaktadır.