Pixabay adlı kişinin Pexels’daki fotoğrafı

YAZILIM SÜREÇLERI

Yazılım Geliştirme Fazları

Onur Dayıbaşı
3 min readMar 6, 2020

--

Hangi yazılım geliştirme yaşam döngüsünü kullanırsak kullanalım bu temel fazları ya üzerinden 1 kere geçecek şekilde yada 1 den fazla bu fazların üzerinden geçecek şekilde proje geliştirmeyi sürdürürüz. Aşağıda bu fazların ne anlama geldiğinden kısaca bahsedeceğim.

Bir önceki yazımda Neden Farklı farklı Yazılım Geliştirme Yaşam Döngü Modellerinin olduğunu sorgulamıştım. Bu yazıda da bu modellerin ana yapı taşlarını oluşturan fazlardan bahsedeceğim.

Fazlar

Yaşam döngüsü üzerindeki fazlar Planlama, Analiz, Tasarım, Gerçekleştirme, Kullanım için Yükleme ve Bakım olarak sınıflandırabiliriz.

Her faz kendi içerisinde birçok farklı disiplin içerir. Her disiplin üzerine derinlemesine akademik araştırmalar ve birçok yazılmış kitap bulunuyor. Bunu şundan dolayı belirtiyorum. Burda her bir fazı kısaca anlatıyoruz ama her biri devasa deneyim gerektiriyor. Planlama’da Risk Analizi, Analiz Paydaşlardan Gereksinimlerin Alınması, Tasarım Design System vb…. bir çok konu üzerinde yazılmış birçok kitap bulunmaktadır. Burda anlattığımız gibi basit kavramlar olarak algılamayın.

Planlama: Projenin maliyeti, risk analizi, iş kırılımları, bu iş kırılımlarının hangi sırada, ne kadar sürede, hangi kalitede yapılacağı, bu işlerde hangi yeteneklerde kimlerin çalışacağı, müşteri ile iletişimi, eğitimi, uygulamanın kullanılması ve çıkan hataların giderilmesi , yeni özelliklerin nasıl ekleneceği vb… birçok konunun planlaması çalışmasıdır.

Planlama yapacağınız proje için önceden tahminlemeler yaparak işlerin gidişatının düzgün olmasını sağlama çalışmanızdır.

Analiz: Projenin bir uygulamaya dönüşebilmesi için geliştirme ekibinin ne yapacağınızı biliyor olması gerekiyor. Peki ne yapacağınızı nasıl bileceksiniz. İşte bu analiz safhası ne yapacaklarınızı öğrenme safhasıdır.

  • Sözleşmenin üzerinde çalışma
  • Alan uzmanları ile birlikte çalışma
  • Paydaşlar ile iletişim halinde olup ne istediklerini anlama (İşi yaptıran, Projeyi kullanacaklar ve Entegre olunacak sistem uzmanları)
  • Sistem Analizi ve Yazılım Gereksinim Dokümanının Oluşturulması

Tasarım: Ne yapacağınızı anladıktan sonra nasıl yapacağınız konusunda tasarım yapmanız gerekir. Bu aşamada analizleri görselleştirmekten biraz bahsetmek istiyorum. Modelleme, Prototipleme

Mühendislik Görselleştirme UML (Unified Modeling Language) kullanarak;

  • Behavioral Diagram → Activity, State Machine, Use Case, Timing, Sequence, Communication, Interaction Overview Diagrams
  • Structural Diagrams → Class, Composite Structure, Component, Deployment, Object, Package, Profile Diagrams

Ürün UI Görselleştirme ve Kullanabilirliğin Modellenmesi açısından;

Gerçekleştirme: Ürünün kodlanması, Testlerinin yazılması. Bu aşama oldukça farklı yöntemler ve disiplinler içerir.

Canlı Ortama Deploy: Bu faz projeden projeye çok farklılık içeren bir durum.

  • Askeri uygulamada bir Gemiye, Uçağa deploy ediyorsanız bu aracında görev zamanına uygun bir zamanda deploy etmeniz
  • Mobil uygulamayı AppStore ve GooglePlay Store atma sürecinden geçmeniz gerekiyor bu ilk uygulama atma sırasında bazen 1 haftayı bulabiliyor ama güncelleme daha kısa sürüyor genelde.
  • Web uygulamalarını canlı ortama deploy sunucular ekibin kontrolünde olduğu CI (Continuous integration) ve CD (Continuous Delivery). canlı ortama hızlı bir şekilde gönderilebilir. Ama farklı şekilde deployment yöntemleri geliştirilmiştir. (Bing Bang, Rolling, Blue-Green, RedBlack, A/B Canary Deployment)

Bakım: Ürün canlıya alındıktan sonra çıkan hatalar , müşterinin yeni istekleri, regülasyon dan dolayı değişiklikler, entegrasyon api değişiklikler, kullanılan kütüphanelerin yeni versiyonları , güvenlik açıklarının kapatılması vs. vs nedenlerle canlıdaki ürün üzerinde geliştirmeler yapılıp, canlıya bu geliştirilmelerin gönderilmesi çalışmasıdır.

Okumaya Devam Et 😃

Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.

--

--