Yazılım
- Anasayfa
- Yazılım
Özel Yazılımın Tanımı ve Hazır İçerik Yönetim Sistemiyle Farkı
Ümraniye web yazılım çalışması, bir firmanın kendi kural ve iş akışlarına göre kodlanan, internet tarayıcısından kullanılan bir uygulamanın planlanmasını, geliştirilmesini ve yayına alınmasını kapsar. Ürün dört bileşenden kurulur: kullanıcı ekranları, iş mantığını yürüten sunucu kodu, kayıtların tutulduğu veritabanı ve diğer sistemlerle veri alışverişi yapan arayüzler. Bilgisayara kurulum dosyası yüklenmez; erişim kişisel hesap ve parola ile sağlanır. Uygulama, kurum içi ağdan ya da internet üzerinden aynı adresle açılır. Üretim emri takibi, sevkiyat planı, saha servis formu, müşteri portalı, teklif onay ekranı ve vardiya planlaması bu modelle sık hazırlanan örneklerdir. Kayıtlar tek merkezde bulunduğundan ofis, depo ve saha ekipleri aynı veri setiyle çalışır, raporlar ayrıca birleştirilmeden alınır.
İçerik yönetim sistemi (CMS), sayfa, haber ve ürün tanıtımı gibi içerikleri kod bilgisi olmadan yayınlamaya yarayan genel amaçlı bir platformdur. WordPress, Drupal ve benzeri ürünlerin güçlü olduğu alan metin ve görsel yönetimidir; tema ve eklenti mimarisi sayesinde hızlı kurulur, başlangıç maliyeti düşüktür. Sipariş onayı, depo hareketi veya müşteriye özel fiyat gibi kurallar ise çekirdeğin parçası değildir. Bu işlevler için ya eklenti eklenir ya da çekirdek dosyalar değiştirilir; ikinci yol, sonraki sürüm yükseltmelerini zorlaştırır. Özel uygulamada tablolar ve ekranlar doğrudan işin gerektirdiği nesnelere göre tasarlanır, gereksiz modül taşınmaz. Hazır sistemde hız ve düşük maliyet, özel geliştirmede ise iş kurallarına tam uyum ve genişletme esnekliği öne çıkar.
Karar aşamasında mevcut iş akışı adım adım yazılır ve her adımın hazır bir pakette nasıl karşılandığına bakılır. Tanıtım sayfası, blog ve iletişim formu ihtiyacı için CMS yeterlidir. Buna karşılık aynı verinin birden çok programa elle girildiği, onay yetkisinin tutara veya departmana göre değiştiği, muhasebe ve kargo bağlantılarının tek ekrandan yönetilmek istendiği durumlarda özel yazılım daha uygun hâle gelir. Kullanıcı başına ücretlendirilen bulut paketlerinde beş yıllık toplam gider de hesaba katılır. Ümraniye’deki firmalar için bu karşılaştırma ilk toplantıda tablo hâlinde yapılır; sonuç özel geliştirmeyi gösterirse gereksinim analizine geçilir. Bu sırada mevcut verinin hangi biçimde tutulduğu ve ne kadar temizlik gerektirdiği de not edilir. Çok depolu ya da sahada ekip çalıştıran yapılarda paketle karşılanamayan adım sayısı genellikle yüksektir.
Sunucu, Veritabanı, API ve Dış Servis Bağlantıları Nasıl Yapılandırılır
Ümraniye yazılım projelerinde kod, sorumlulukları birbirinden ayrılmış katmanlarla düzenlenir. Sunucu tarafında Symfony, Spring Boot, Express veya .NET gibi bir çatı kullanılır; tercih mevcut ekip bilgisine, kütüphane desteğine ve sürüm destek süresine göre yapılır. İş kuralları denetleyici (controller) dosyalarına dağılmaz, servis sınıflarında toplanır; bu düzen test yazmayı ve değişiklik yapmayı kolaylaştırır. Veritabanı olarak PostgreSQL, MySQL veya MS SQL Server gibi ilişkisel bir motor seçilir. Tablolar ORM (nesne-ilişkisel eşleme) aracılığıyla kod tarafında modellenir, şema değişiklikleri sürüm numaralı göç dosyalarıyla uygulanır. Tekil kısıtlar ve yabancı anahtarlar, hatalı ya da yetim kayıt oluşmasını veritabanı düzeyinde engeller. Uzun süren işler için mesaj kuyruğu kurulur. Kod standartları otomatik biçimlendirme ve statik analiz araçlarıyla denetlenir.
Katmanlar arasındaki veri trafiği bir API üzerinden akar. API, başka bir programın sisteme hangi adresle ve hangi biçimde istek gönderebileceğini belirleyen kurallar bütünüdür. Mobil uygulama, iş ortağı ekranı veya raporlama aracı aynı uç noktaları kullanabilir. Uç noktaların açıklaması, istek ve yanıt örnekleriyle birlikte Swagger arayüzünde yayımlanır. Dış sistemlere olay bildirimi webhook ile yapılır; sipariş durumu değiştiğinde ilgili adrese otomatik çağrı gider. Kimlik doğrulamada OAuth 2.0 standardı esas alınır. Yetkilendirme, izin matrisi denilen bir tabloyla tasarlanır: satırlarda genel müdür, bölge sorumlusu, depo personeli, muhasebe ve bayi gibi roller, sütunlarda modüller yer alır; her hücrede okuma, yazma ve onay hakkı işaretlenir. Tutar sınırına bağlı onay hiyerarşisi de bu matrise eklenir.
Dış sistem bağlantıları ayrı bir iş paketi olarak planlanır. Tahsilatta iyzico, PayTR veya bankaların sanal POS altyapısı kullanılır; kart verisi sağlayıcının ödeme sayfasında işlenir, uygulamada yalnızca işlem numarası ve sonuç kodu saklanır. Kısa mesajlar BTK yetkili SMS firmalarının API’siyle iletilir, ticari ileti izinleri İYS (İleti Yönetim Sistemi) kurallarına göre tutulur. E-fatura ve e-irsaliye, özel entegratör aracılığıyla GİB sistemine gönderilir. Logo, Mikro veya Paraşüt gibi muhasebe programlarıyla cari hesap ve fatura eşleşmesi kurulur. Kargo tarafında gönderi açma, etiket üretimi ve takip numarası sorgusu otomatikleşir. Her bağlantı önce sağlayıcının test ortamında denenir; hatalı çağrılar ayrı bir tabloda yeniden deneme sayacıyla saklanır. Bağlantı anahtarları ortam değişkenlerinde durur, kod deposuna eklenmez.
Proje Analizden Yayına Kadar Hangi Aşamalarla Yürütülür
İlk aşama analizdir ve sonunda gereksinim dokümanı ortaya çıkar. Kullanıcı gruplarıyla yapılan görüşmelerde mevcut iş adımları, kullanılan belgeler ve sık yaşanan hatalar kayda geçirilir. Doküman; kullanım durumlarını, ekran ve rapor listesini, rol-izin matrisini, hesaplama kurallarını, eş zamanlı kullanıcı sayısı gibi teknik hedefleri ve kapsam dışı bırakılan işleri içerir. Onaydan sonra veri modeli hazırlanır: varlıklar, alanlar, veri tipleri ve ilişkiler bir ER diyagramında gösterilir, silinen kayıtların arşivlenme kuralı ve indeksler belirlenir. Bütçe ve takvim bu iki belge üzerinden hesaplanır. Süreyi ve bedeli en çok değiştiren unsurlar rol çeşitliliği, raporlama derinliği ve dış servis bağlantılarıdır. Analiz süresi kapsamın genişliğine göre bir ile dört hafta arasında değişir.
Veri modelinin ardından arayüz taslakları çıkarılır. Önce düşük ayrıntılı tel kafes çizimleri, sonra gezinilebilir bir tasarım prototipi hazırlanır. Kullanıcılar menüleri, form alanlarını ve filtreleri bu taslak üzerinde dener; düzeltmeler kod yazılmadan, düşük maliyetle yapılır. Geliştirme çevik yöntemle yürür, sprint süresi çoğunlukla on iş günüdür. Her sprint bir hedefle açılır, sonunda tamamlanan bölümler test sunucusunda gösterilir. Bu gösterimlere her kullanıcı grubundan en az bir temsilcinin katılması istenir; böylece geri bildirim erken toplanır. Sürüm kontrolünde Git kullanılır; her değişiklik başka bir geliştiricinin incelemesinden geçer, otomatik testler başarısız olursa birleştirme yapılmaz. Sprint raporlarında tamamlanan, devreden ve yeni eklenen işler ayrı listelenir, böylece takvim sapması erken fark edilir.
Test aşaması birkaç türü kapsar. Birim testleri bir fonksiyonun beklenen çıktıyı üretip üretmediğini, entegrasyon testleri modüllerin ve dış servislerin birlikte çalışmasını, uçtan uca testler ise kullanıcı akışlarını tarayıcı otomasyonuyla kontrol eder. Yük testinde JMeter veya k6 ile hedeflenen eş zamanlı istek sayısı üretilir ve yanıt süreleri kaydedilir; rapor, gereksinim belgesindeki hedeflerle karşılaştırılarak yorumlanır. Güvenlik taraması ve regresyon testi her sürümden önce tekrarlanır. Son adımda firmanın belirlediği kişiler kabul testini yapar ve yazılı onay verir. Bu turda bulunan hatalar yayından önce kapatılır. Yayına çıkışta sırasıyla şema göçleri koşturulur, gizli ayarlar ortam dosyasına girilir, SSL ve DNS ayarları doğrulanır, uyarı kuralları açılır. Canlı kullanımın ilk ayında hata bildirimleri günlük gözden geçirilir.
Veri Güvenliği, Yedekleme ve Ölçeklenme İçin Uygulanan Yöntemler Nelerdir
Uygulama güvenliğinde başvuru kaynağı OWASP’tır; kuruluşun yayımladığı Top 10 risk listesi ve ASVS (uygulama güvenliği doğrulama standardı) kontrol maddeleri geliştirme boyunca kullanılır. Enjeksiyon riskine karşı tüm sorgular parametreli yazılır, kullanıcı girdisi sunucuda doğrulanır. Yetki kontrolleri arayüzde değil, sunucu tarafında yapılır. Oturum çerezleri Secure, HttpOnly ve SameSite özellikleriyle tanımlanır; art arda başarısız giriş denemeleri geçici kilitle sınırlanır, yönetici hesaplarında iki adımlı doğrulama zorunlu tutulur. Tarayıcı ile sunucu arasındaki trafik HTTPS ile şifrelenir. Parolalar Argon2 gibi yavaş özet algoritmasıyla saklanır, iletişim ve kimlik bilgileri gibi hassas sütunlar uygulama düzeyinde şifrelenir. Bağımlılıklar otomatik araçlarla bilinen açıklara karşı taranır. Kritik projelerde canlıya çıkıştan önce bağımsız bir sızma testi raporu alınır.
Sistemde üç tür kayıt tutulur: uygulama hataları, sunucu erişim günlükleri ve iş işlemlerinin denetim izi. Denetim izi, bir kaydın kim tarafından, hangi tarihte ve hangi alanda değiştirildiğini gösterir; bu tabloya uygulama üzerinden silme yetkisi verilmez. Günlüklerin saklama süresi, mevzuat ve iş ihtiyacına göre sözleşmede belirlenir. Yedekleme 3-2-1 kuralıyla kurgulanır: verinin üç kopyası, iki farklı depolama türü ve şirket dışı bir konum. Felaket kurtarma belgesinde donanım arızası, bozulmuş veri ve kötü amaçlı kod saldırısı için izlenecek adımlar, sorumlular ve hedef geri dönüş süreleri yazılır. Geri yükleme her çeyrekte bir kez denenir. KVKK uyumu için işlenen kişisel veriler kategorilere ayrılır, her kategoriye hukuki dayanak ve saklama süresi atanır, ilgili kişi başvuruları panelden kaydedilir.
Performans hedefleri gereksinim belgesinde sayıyla ifade edilir; liste ekranları için 500 milisaniyelik üst sınır buna örnektir. İzleme için APM araçları ve yavaş sorgu günlüğü kullanılır. Yavaş sorgular EXPLAIN çıktısıyla incelenir, eksik indeksler eklenir, uzun listeler sayfa sayfa getirilir. Sık okunan ama seyrek değişen veriler önbellekte tutulur; görsel ve betik dosyaları bir CDN’den (içerik dağıtım ağı) dağıtılır. Rapor üretimi ve toplu e-posta gibi uzun işlemler kuyruk işçilerine aktarılır. Ölçeklenme iki yolla yapılır: dikey ölçeklenmede tek makinenin işlemci ve bellek kapasitesi yükseltilir, yatay ölçeklenmede uygulamanın birden fazla kopyası yük dengeleyici arkasında çalışır. Yatay yapı için oturum bilgisi ortak bir depoda tutulur. Ölçüm sonuçları her sürümden sonra bir öncekiyle karşılaştırılır.
Teslim Dosyaları, Kod Sahipliği ve Bakım Hizmeti Nasıl İşler
Proje kapanışında teslim edilenler imzalı bir tutanakla kayda geçer. Liste şunları içerir: tüm kaynak kod ve commit geçmişi, veritabanı şeması ile göç betikleri, OpenAPI biçiminde uç nokta belgesi, sunucu kurulum ve dağıtım talimatı, yedekten geri dönüş prosedürü, rol bazlı kullanıcı kılavuzu ve yönetici eğitim kaydı. Kod, firmanın GitHub veya GitLab hesabındaki bir depoya taşınır. Sözleşme gereği eser üzerindeki mali haklar firmaya devredilir; projede kullanılan açık kaynak paketlerin lisans türleri ayrı bir listede verilir. Barındırma, alan adı, ödeme ve mesaj servislerinin hesap sahibi baştan firmadır. Geliştirici ekibin erişimi teslimden sonra kısıtlanabilir veya tamamen kaldırılabilir. Teslimden önce kurulum talimatı boş bir sunucuda baştan uygulanarak doğrulanır.
Canlıdaki yazılımlarda zamanla güvenlik açıkları duyurulur, kullanılan kütüphanelerin sürümleri eskir ve veri hacmi büyür. Bu nedenle yayın sonrası dönem için bakım ve destek anlaşması yapılır. Anlaşmanın kapsamında çatı ve paket güncellemeleri, güvenlik yamaları, yedeklerin düzenli kontrolü, sunucu kaynak izleme ve çalışma süresi takibi bulunur. Hata bildirimleri destek portalından açılır; önem derecesine göre öncelik verilir ve sözleşmede yazan yanıt süreleri uygulanır. Sentry gibi hata izleme araçları, kullanıcı bildirmeden oluşan istisnaları da ekibe iletir. Yeni modül, ek rapor veya ilave entegrasyon talepleri bakım kapsamı dışındadır ve ayrı bir iş emriyle planlanır. Anlaşmalar aylık ya da yıllık yapılır ve kapsam bir saat paketiyle tanımlanabilir. Planlı bakım çalışmaları kullanıcı trafiğinin düşük olduğu saatlere konur.
