Bilgisayar Bilimleri

Program & Yazılım Nasıl Yapılır? [Rehber]

Program nasıl yapılır ve yazılım nasıl yapılır sorularının cevapları niteliğinde olan yazılım geliştirme yaşam döngüsü (SDLC) hakkında detaylı bilgi, başarı kriterleri ve profesyonel ipuçları çeşitli örnekler eşliğinde işte bu yazıda!

Yazılım Geliştirme Yaşam Döngüsü (SDLC) Nedir: Bir yazılım projesinin planlamasından itibaren son halinin verilip teslim edildiği ana kadar geçirmiş olduğu bütün aşamalara ve bütün bu aşamalardan oluşan döngüye denir. Kısaltması olan SDLC, İngilizce “Software development life circle” kelimelerinin baş harflerinden oluşmaktadır.

Bu yazıda “Yazılım geliştirme yaşam döngüsü rehberliğinde, programlama kriterlerine uygun bir şekilde programlama ve yazılım nasıl yapılır” sorusunun cevabını örnekler, püf noktalar ve çeşitli özel ipuçları eşliğinde bulacaksınız. Yazılım geliştirme yaşam döngüsünü tıpkı şu görseldeki gibi ifade edebiliriz:

Yazılım Geliştirme Yaşam Döngüsü Nedir? [SDLC]
Program & Yazılım Geliştirme Yaşam Döngüsü Nedir? [SDLC]

Program & Yazılım Nasıl Yapılır?

1- Talepler ve Analiz Aşaması

Programların ve yazılımların temel amacı günlük yaşamdaki sorunları çözmek suretiyle hayatı daha kolay ve daha yaşanabilir bir hale getirmektir. Günlük yaşamda da çözülmeyi bekleyen pek çok sorun bulunmaktadır. Bu sebeple ilk olarak sorunlar tespit edilmeli ve bu sorunlara programlama ile nasıl bir çözüm üretilebileceği üzerine kafa yorulmalıdır.

Daha sonra gerek küçük çaplı programlarda gerek de büyük çaplı yazılım projelerinde yapılması gereken temel şey süreç boyunca ihtiyaç duyulacak şeylerin, sürecin işleyiş biçimi ve süresi vb. gibi unsurların mantıklı bir şekilde planlanmasıdır. Planlama sürecinde önemli olan unsurlara şu tarz örnekler verebiliriz:

Hem Proje Geliştirirken ve Hem De Uzun Vadede Sorun Yaşamamak İçin Planlama Yapmak Son Derece Önemlidir
Hem Proje Geliştirirken ve Hem De Uzun Vadede Sorun Yaşamamak İçin Planlama Yapmak Son Derece Önemlidir

Örnek: Bir yazılım projesi sürecinde ihtiyaç duyulacak olan araştırmacı, geliştirici, tasarımcı, grafiker, sistem yönetici, pazarlamacı, destek personeli gibi unsurların sayılarının ve gerekli bütçenin tespiti analiz aşamasında yapılır.

Profesyonel İpucu: Büyük çaplı projelerde analiz adımında, projenin kapsamını tanımlayan bir yazılım gereksinim belirtimi (Software Requirements Specifications [SRS]) belgesi oluşturulması gerekmektedir. Bu belge ile yönetim onayı alındıktan sonra proje başlayabilir.
Büyük ve Başarılı Projeler Çok Yönlü Oldukları İçin Ciddi Miktarda Kod İçerdikleri İçin Planlama Önemlidir
Büyük ve Başarılı Projeler Çok Yönlü Oldukları İçin Ciddi Miktarda Kod İçerdikleri İçin Planlama Önemlidir

2- Planlama Aşaması

Talepler ve analiz aşamasında elde edilen bulgular hesaba katılarak, ilgili projenin detaylarının adım adım, tarih tarih, kalem kalem planlandığı aşamadır. Planlama aşamasında ihtiyaç tespiti, sistem analizi, alt yapı analizi gibi konularda planlar ve hazırlıklar yapılır.

Örnek: PHP altyapısı kullanılarak hazırlanan projeler Linux işletim sisteminde, ASP.NET altyapısı kullanılarak hazırlanan projeler ise Windows işletim sisteminde daha yüksek performans ile çalışmaktadır bilgisini kullanarak planlayıcı yazılımın hangi dil ile veya hangi platformda çalışacak şekilde geliştirileceğine karar verebilir.

Örnek: Web alanında orta çaplı bir proje planlayan bir kişinin, hizmetin barındırılacağı sunucunun seçimi konusunda tıpkı şu görseldeki gibi enine boyuna açıklayıcı bir araştırma ve analiz yapması gerekmektedir:
(Ayrıca Bakınız: Sunucu Seçimi Nasıl Yapılır? [Dev Rehber])

Program Nasıl Yapılır? [Analiz Aşaması Örneği]
Program Nasıl Yapılır? [Analiz Aşaması Örneği]
Uyarı: Planlama aşamasını bir klişe veya basit bir adım olarak görmeyiniz. Özellikle büyük çaplı projelerde özellikle maliyet dengesinde planlama hayati derecede önemlidir. Ayrıca unutmayınız ki “Hedefi olmayan gemiye hiçbir rüzgar yardım edemez!

3- Tasarım Aşaması

▶️ Algoritma Tasarımı: Algoritmalar bir problemin çözümü için belirtilen eylemlerin dizilimine göre sunulan formüllerdir. Bu sebeple büyük projelerde doğrudan kodlama aşamasına geçmeden önce olası riskler ve hatalar gözetilerek algoritma tasarlanması gerekmektedir.
(Ayrıca Bakınız: Algoritma Nedir? [Algoritma Örnekleri])

▶️ Kullanıcı Arayüzü Tasarımı: Ara yüz kullanıcının programı çalıştırdığında gördüğü bölümdür. Örneğin şuan bu yazıyı okurken internet tarayıcısının ara yüzünü görüyoruz. Arayüz şık, sade, anlaşılır ve kullanışlı olmalıdır. Arayüz uygun renkler, desenler kullanılarak tasarlanmalıdır. Örneğin bir araç kiralama servisi için hazırlanmış programın arayüzü aşağıdaki gibidir:
(Ayrıca Bakınız: Arayüz Nedir? Nasıl Tasarlanmalıdır? [Yakında…])

Yazılım Nasıl Yapılır? [Görsel Tasarım Aşaması Örneği]
Yazılım Nasıl Yapılır? [Görsel Tasarım Aşaması Örneği]

4- Uygulama & Optimizasyon Aşaması

Uygulama (İmplementasyon): Tasarlanmış olan algoritmanın kodlama ile dijital platformlarda çalışabilir hale getirildiği aşamadır. İşte bu aşama kişinin programlama yeteneklerinin konuştuğu bölümdür. Fakat ne yazık ki insanların büyük bir çoğunluğu “yazılım nasıl geliştirilir” sorusunun cevabını sadece bu kodlama aşamasından ibaret sanmaktadır. Başarılı bir işçilik ortaya çıkarmak için uygulama aşamasında şunlara dikkat edilmesi gerekir:

✅ Program kullanıcıların taleplerine karşılık vermeli, onlara iyi bir deneyim yaşatmalıdır. Örneğin bir internet sitesinin sadece bilgisayarlar için değil aynı zamanda bütün cihazlar için uyumlu (responsive) olması kullanıcı deneyimi açısından bir zorunluluktur diyebiliriz.

Yazılım Nasıl Yapılır? [Kullanıcı Deneyiminin İyileştirilmesi Örneği]
Yazılım Nasıl Yapılır? [Kullanıcı Deneyiminin İyileştirilmesi Örneği]

✅ Programın kullanımı kolay, tasarımı anlaşılır, fonksiyonelliği yüksek ve bünyesinde algoritmaları düşük komplekslikte olmalıdır. Bunlar hem kullanıcı deneyimini olumlu yönde etkiler, hem de programın çalıştığı platformların ve cihazların ömrünü uzatır.

✅ Programlar güvenlik ve performans gibi konularda çeşitli optimizasyonları da bünyesinde barındırmalıdır. Örneğin yavaş internet bağlantılarında (ek tasarımsal unsurlar gibi) önemsiz kaynakların indirilmemesi ve programların kod boyutlarının küçültülmesi bu çalışmalara örnek olarak verilebilir.
(Ayrıca Bakınız: Programların Kod Boyutu Nasıl Küçültülür?)

✅ Programlar için yapılacak işlemin kompleksliği, uygun algoritmanın dizayn edilmesi, hafıza kullanımı, işlemci kullanımı ve işlem yapılma hızı kriterleri göz önünde bulundurularak ilgili işlemler için uygun olan veri yapıları kullanılmalıdır.
(Ayrıca Bakınız: Veri Yapıları Nelerdir? [Kullanım Rehberi] [Yakında…])

Hafıza Kullanımı, İşlemci Kullanımı ve İşlem Hızı Hesaba Katılarak En Uygun Olan Veri Yapıları Kullanılmalıdır
Hafıza Kullanımı, İşlemci Kullanımı ve İşlem Hızı Hesaba Katılarak En Uygun Olan Veri Yapıları Kullanılmalıdır
Profesyonel İpucu: Programın & yazılımın kodlama aşaması bittikten sonra programın çalışma verimliliğini arttırmak suretiyle daha iyi bir kullanıcı deneyimi sunmak için kodlama & programlama kriterlerine uygun olarak optimize edilmesi gerekir. Bu optimizasyonlar güvenlik, performans, kullanıcı deneyimi ve sürdürülebilirlik gibi önemli konularda başarılı bir hizmet sunmanın kriteridir diyebiliriz.
(Ayrıca Bakınız: Kodlama & Programlama Standartları Nelerdir?)

5- Test & Entegrasyon Aşaması

Test: Programın veya yazılımın sorunsuz bir şekilde çalışıp çalışmadığının ve olası bugların tespit edildiği aşamadır. Test aşaması en az kodlama aşaması kadar önemlidir. Test aşamasında karşılaşılan hatalar ve bu hataların düzeltilme yöntemleri hakkında detaylı bilgi almak için şu yazıya göz atabilirsiniz:
(Ayrıca Bakınız: Bug Nedir? Debugging Nasıl Yapılır? [Rehber])

Nasıl Programlama Yapılır? [Debugging ve Test Aşaması]
Nasıl Programlama Yapılır? [Debugging ve Test Aşaması]

Kurulum: Programın veya yazılımın çalışacağı sistem, sunucu gibi çeşitli platformlara indirilmesi ve yüklenmesi sürecidir. Kurulum yapılan platformların program veya yazılımın çalışması için gerekli olan donanımsal ve yazılımsal altyapıya sahip olduğundan emin olunması gerekmektedir.

Dokümantasyon: Programın veya yazılımın özellikleri, kullanım kılavuzu, güvenlik uyarıları, performans arttırma önerileri, olası hatalar, çözüm yolları, yazılımın bakımı ve sıkça sorulan sorular gibi bölümleri barındıran bir belge hazırlanabilir.

Eğitim: Büyük çaplı ve / veya karışık projelerde, yazılımı kullanacak olan kişilerin eğitimden geçirilmesi gerekebilir. Bu eğitimin konusu da yine tıpkı dokümantasyondaki gibi güvenlik, performans, sürdürülebilirlik, verimlilik ve bakım gibi konular yani kısaca sistem ve kullanıcı deneyimidir. Ve artık yazılım kullanıcılara sunulmaya hazırdır. 🙂
(Ayrıca Bakınız: Kullanıcı Deneyimi (UX) Nedir? Nasıl Geliştirilir?)

Sizde Kusursuz Çalışan Programı Başkaları Test Ettiğinde Sorun Olabileceği İçin Test ve Debugging Aşaması Son Derece Önemlidir
Sizde Kusursuz Çalışan Programı Başkaları Test Ettiğinde Sorun Olabileceği İçin Test ve Debugging Aşaması Son Derece Önemlidir

6- Bakım ve Sürdürülebilirlik Aşaması

Servis ve Bakım: Program veya yazılımın hazırlanması ve kurulumu bittikten sonra hiç şüphesiz (hizmet niteliğine göre değişmekle beraber) değişen koşullara adapte olmak amacıyla yeni özellikler ekleme, var olan özellikleri güncelleme, düzenli bakım yapma, güncellemeler yapma gibi ihtiyaçlar doğacaktır.

Uygulama: Program veya yazılım üzerinde yapılan değişiklerin ve yeni özelliklerin test edilmesi, kurulması ve dokümantasyonun güncellenmesi gibi çalışmalar uygulama kapsamında değerlendirilebilir.

Program Nasıl Yapılır? [Bakım ve Sürdürülebilirlik Örneği]
Program Nasıl Yapılır? [Bakım ve Sürdürülebilirlik Örneği]

Örnek: Bir sistemin çalıştığı alt yapı güncellendiğinde programda oluşan olası güvenlik zafiyetlerinin tespit edilip kapatılması, programda düşük performansa sebep olan unsurların optimize edilmesi, programın çalıştığı sistemin bakımlarının yapılması bu kapsamda değerlendirilebilir.

Profesyonel İpucu: Programın & yazılımın (özelikle büyük çaplı projelerin) başarı olarak sayılması için gereken en önemli unsurlardan birisi de sürdürülebilir olması yani zaman sınırı olmaksızın işlevini yitirmeden çalışabilmesidir. Bu da hiç şüphesiz temiz kodlama yapmaya ve kodlama standartlarına uyuma bağlıdır. Ayrıca program bitince mutlaka refactoring yapılmalı yani kodun işleyişini bozmadan kod performans odaklı bir şekilde optimize edilmelidir.  
(Ayrıca Bakınız: Refactoring Nedir? Nasıl Yapılır? [Yakında…])
Kodların Refactoring İle Temiz Kodlama İlkesine Uygun Hale Getirilmesi Yazılımların Üst Düzey Performansla Çalışmasını Sağlar
Kodların Refactoring İle Temiz Kodlama İlkesine Uygun Hale Getirilmesi Yazılımların Üst Düzey Performansla Çalışmasını Sağlar

Yazılım Geliştirme Yaşam Döngüsü (SDLC) Çeşitleri

Yazılım geliştirme yaşam döngüsünü detaylı bir şekilde çeşitli örnekler ve püf noktaları ile ele aldık. Konuyu toparlamak gerekirse bir programın veyahut bir yazılımın hayatı şu altı süreçte sürmektedir:

➽ Talepler ve planlama aşaması
➽ Analiz aşaması
➽ Tasarım aşaması
➽ Uygulama (kodlama) ve optimizasyon aşaması
➽ Test ve entegrasyon aşaması
➽ Bakım ve sürdürülebilirlik aşaması

Yazılım Geliştirme Yaşam Döngüsü Nedir? [SDLC]
Yazılım Geliştirme Yaşam Döngüsü Nedir? [SDLC]

📌 Şelale Yazılım Geliştirme Modeli: Programlamada sıkça tercih edilen yazılım geliştirme modellerinden birisi de şelale tipidir. Şelale modelinde her basamakta yer alan aktiviteler eksiksiz olarak yerine getirilmeden öbür basamağa geçilemez.

Şelale tipi yazılım modeli müşterinin sürekli olarak değişen taleplerine göre değişen projelerde kullanım için idealdir. Fakat teoride bir aşamayı bitirip öbür aşamaya geçmek her ne kadar mantıklı olsa da işler pratik dünyada tam olarak bu şekilde yürümemektedir.

Şelale Modeli Yazılım Geliştirme Yaşam Döngüsü
Şelale Modeli Yazılım Geliştirme Yaşam Döngüsü

📌 V Tipi Yazılım Geliştirme Modeli: V model yazılım geliştirme sürecinde programın olabildiğince sorunsuz bir şekilde geliştirilmesi hedeflenir. Bu model bünyesinde her adımda pek çok testi bulundurmakla beraber önemli kurum ve kuruluşlarda yapılacak yazılımlarda (güvenliği ve performansı en üst düzeyde tutmak amacıyla) tercih edilebilir.

V Model Yazılım Geliştirme Yaşam Döngüsü
V Model Yazılım Geliştirme Yaşam Döngüsü
Program & yazılım nasıl yapılır?” konulu yazımız hakkında eklemek istediklerinizi, sorularınızı ve (eğer varsa) yazıdaki yanlışları yorumlarda belirtebilirsiniz.

Bilgi güçtür, paylaştıkça büyür. Bu sebeple bu yazının linkini paylaşarak sizler de bu bilgi hazinesinin büyümesine yardımcı olabilirsiniz.

Ana Sayfa:
https://technogezgin.com/
Özgün ve Kaliteli İçeriklerimiz:
https://technogezgin.com/blog/

MrKaptanTR

Bilgisayar mühendisiyim ve boş zamanlarımda kurucusu olduğum bu platformda yazarlık yapıyorum. Özellikle yazılım ve profesyonel içerik üreticiliği alanlarında çalışıyorum. Spor yapmaktan ve gizemli konuları araştırmaktan keyif alıyorum.

1 Yorum

  1. Programlama ve yazılım sektörleri hakkında böyle özenle hazırlanmış, eğlendirici Türkçe yazılar görmek mutluluk verici. Ayrıca program nasıl yapılır sorusunun cevabını gerçekten ileri düzeyde vermişsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu