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:
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:
Ö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.
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])
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…])
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.
✅ 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…])
(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])
• 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?)
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.
Ö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.
(Ayrıca Bakınız: Refactoring Nedir? Nasıl Yapılır? [Yakında…])
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ı
📌 Ş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.
📌 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.
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/
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.