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¶

-
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¶

- 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.