Blog Detayı

Yazılım Geliştirme Süreçleri Nelerdir ? Software Development Phases

Blog 0 Yorum 2649 Görüntülenme 03/11/2021 Kayzem Blog Ekibi

Yazılım Geliştirme Süreçleri Nelerdir ? Software Development Phases

     Yazılım Geliştirme Süreci nedir? Bir yazılım geliştirme sürecinin olmazsa olmazları nelerdir? Bir yazılım geliştirme sürecindeki en önemli aşama neden İş Analizidir? Dokümantasyon neden önemlidir? Bu soruların cevapları blog yazımızda.

Durup dururken kimse “ben bir yazılım geliştireyim” demez. Mutlaka bu sürecin başlamasına sebep olan bir ihtiyaç vardır. Bu ihtiyacın doğmasına sebep olan kişi bazen patronunuz, bazen kendiniz, bazen iş yaptığınız mevcut ya da potansiyel müşterilerinizdir. Sebep hangisi olursa olsun işlerin etkin ve etkili bir şekilde yapılmasını sağlayacak bir çözüm üretmeniz beklenmektedir.

Konumuz yazılım olduğuna göre, bu çözümü üretmeniz için sizden beklenen şey ise hatasız(!), hızlı(!), kullanıcı dostu ekranları olan(!) bir yazılım üretmenizdir. Ama bu işi genellikle çok kısa bir süre içinde bitirmeniz istenir. Ne kadar çabuk geliştirecek olursanız olun, ister kendiniz için, ister patronunuz için, ister müşterileriniz için yazılım geliştirin, siz siz olun aşağıdaki aşamaları kesinlikle göz ardı etmeyin.

 

1. İŞ ANALİZİ - Analysis Phase

Bu aşamada, işlerin mevcut durumda nasıl yapılmakta olduğunu anlamaya çalışırsınız. Müşteriniz size işleri nasıl yaptıklarını anlatır, siz notlarınızı alırsınız. Yazılım geliştirici kimliğinizi bir kenara bırakarak o işi onlar gibi yapmayı öğrenmeye çalışmalısınız. Bu aşama aslında bir yazılım geliştirme sürecindeki en önemli aşamadır. Zira eğer o işin nasıl yapıldığını tam olarak bilmezseniz, işi içselleştiremezsiniz ve geliştireceğiniz yazılımın ayakları yere basmaz.

Bu aşamada dikkate alınması gereken birkaç kritik nokta vardır:

i. Analiz süresince çözüm önermeyin, çözüm üretmeye çalışmayın. Sadece işi anlamaya çalışın.

ii. Eğer anlatılan iş bütün olarak ele alınamayacak kadar büyük ve karmaşık süreçleri içeriyorsa, parçalara ayırarak çözmeyi deneyin.(Functional decomposition)

iii. İşi anlatan kişilerin uzmanlık seviyeleri: Eğer işin ehli kişilerden dinlemezseniz, soracağınız sorulara net cevaplar alamazsınız. Bu nedenle, işi eksik ya da yanlış öğrenme riskiniz ortaya çıkar. Bu ise en tehlikeli iki noktadır. Çünkü eksik kalan bilgi belki de sizin bütün yazılım geliştirme sürecinizi etkileyecek ölçüde önemli bir bilgi olabilir.

iv. Sizin iletişim kurma yeteneğiniz: Eğer işi anlatan kişilerle aranızda bir bağ kuramazsanız, bilgiyi doğru ve tam olarak alamayabilirsiniz. Bazen, espri yapmanız da gerekebilir. Profesyonelliği elden bırakmadan, işi size anlatan kişi veya kişilerle kuracağınız ilişki en önemli noktalardan birisidir.

İşi size anlatan kişi, geliştireceğiniz yazılımı ya da doğrudan sizi, kendi pozisyonu için tehdit olarak algılayabilir ve bu psikolojide anlatır ya da anlatmaz. Bu durumda işi anlamanız gerçekten tehlikeye girmiş demektir. Bu noktaya dikkat etmenizde fayda var.

v. İşi anlatanın size anlattıklarını mutlaka bir toplantı tutanağı ile dokümante edin. Daha sonra, bu toplantı tutanağında aldığınız notları bu sefer kendi cümlelerinizle yeniden yazın ve müşterinize gönderin ve yazdıklarınızı teyit etmesini isteyin. Acaba siz doğru mu anlamışsınız. Eğer müşteriniz, “hayır şu noktayı yanlış anlamışsınız” derse o noktaya yeniden dönün ve gerekirse tekrar görüşün ve gerekli değişiklikleri yaparak müşterilerinize yeniden gönderin. Onaylamaları durumunda, bir sonraki aşamaya gönül rahatlığıyla geçebilirsiniz.

Sizin kendi cümlelerinizle ifade ettiklerinizi müşterinizin onaylaması, artık aynı şeylerden aynı şekilde bahsettiğiniz anlamına geleceği için önemlidir. Artık bu noktadan sonra, müşteriniz size “ben onu size böyle anlatmamıştım” diyemez. Böyle bir durumda müşterinize karşı ileri sürebileceğiniz ve dokümante edilmiş bir belgeniz elinizde vardır ve bu dokümanı gösterebilirsiniz.

Yazılım geliştiren ekip ve müşteri arasında yukarıdakine benzer sürtüşmeli durumlar genelde ortaya çıkmaktadır. Böyle durumlarda amaç suçlu bulmak değil tabi ki ama herkesin sözüne sadık kalması çok önemlidir. Bu şekilde yazılım yaşam döngüsü çok sağlam temellere dayandırılmış olacaktır.

İş analizi sırasında anlatılanları bu şekilde dokümante etmenin, yazılım geliştirme ekibine sağlayacağı başka bir fayda ise, ekibin elinde bir nev’i yapılacaklar listesinin (to-do list) bulunması olacaktır. Dolayısıyla, konuşulan bütün hususlar dikkate alınmış olacaktır.

İş Analizi aşamasında mutlaka yeri olması gereken hususlar:

a. Dokümante edilmesi

b. Bütün hususlarda tam olarak mutabık kalınması

c. Mutlaka imza altına alınması

İyi Bir İş Analisti Nasıl Olmalıdır?

Bu aşamadan sonra, yazılım geliştirme ekibi bir sonraki aşamaya geçecektir.

 

2. GEREKSİNİM ANALİZİ - Requirements Analysis Phase

İş analizi aşamasında mutabık kalınan noktaları Analiz Ekibi kendi içinde değerlendirmeye alır. Tabiri caizse bu noktada, analiz ekibi konuyu içselleştirir, sentezini yapar ve daha sonra bir gereksinimler listesi ortaya çıkarır. Bu listede yer alacak temel başlıklar şu şekilde olur:

a. Sistem Gereksinimleri

b. Yazılım Gereksinimleri

i. Fonksiyonel Gereksinimler

ii. Fonksiyonel Olmayan Gereksinimler

 

3. TASARIM - Design Phase

Bu aşamada UML diyagramları, Veri tabanı Varlık İlişkileri diyagramları (ER Diyagram), kullanıcı ara yüzleri hazırlanır.

 

4. GELİŞTİRME - Development Phase

Uygulama geliştirme sürecidir. Bu aşamada tasarım ekibinden çıkan iş yazılım geliştiricilere yönlendirilmiş olur. Kod geliştirme aşaması burasıdır. Yazılım uzmanı, kod geliştirme standartlarına sadık kalarak geliştirme sürecini işletir. Kod geliştirme sırasında gereksinimler gözetilir.

 

5. TEST - Testing Phase

Kod geliştirme aşaması tamamlandıktan sonra, son kullanıcıların uygulamayı test etmeleri için test versiyonu devreye alınır. Uygulamanın test sürümünde kullanılacak veri tabanı ve uygulama sunucusunun gerçek ortamdan farklı bir yerde olması ideal olanıdır.

 

6. DEVREYE ALMA VE BAKIM - Maintenance Phase 

Test aşaması sonrası yapılan geri bildirimler doğrultusunda yazılımda gerekli düzeltici önleyici faaliyetler alındıktan sonra, uygulama gerçek ortamda devreye alınır.

0 Yorum

  • Henüz yorum yapılmamış.

Yorum Yap