|
|
Herhangibir diğer mühendislik ürünleri gibi, yazılım ürünleri de müşteriye
yöneliktir.O, ya piyasa sürümüdür ya da piyasayı sürer.Müşteri Memnuniyeti 80li
yılların moda kelimesiydi.Bugünün kelimesi ise Müşteri Keyfi ve yeni milenyumun
kelimesi ise Müşteri Coşkusu. En iyi teknoloji ile tasarlanmış olmalarına
rağmen, kullanıcı ya da müşteri dostu olmayan ürünlerin piyasada yeri
yoktur.Ürünün arayüzü, ürünün tekniği kadar önemlidir.
Piyasa Araştırması
Piyasa araştırması potansiyel müşteri’nin ihtiyaçlarını belirlemek için
yapılır.Bu süreç pazar araştırması diye de geçer.Burada, toplumda mevcut olan
ihtiyaç ve potansiyel ihtiyaçlar dikkatlice incelenir.Piyasa araştırması birçok
varsayımlar üzerine dayanır.Varsayımlar bir ürün geliştirmesinin, başlangıcında
ve gelişiminde önemli faktörlerdir.Gerçek dışı varsayımlar tüm girişimde baş
aşağı düşüş olmasına neden olabilir.Varsayımlar soyut olmasına rağmen, başarılı
ürün ile gelecek somut varsayımlar geliştirebilmek için bir hareket olması
gerekmektedir.
Araştırma ve Geliştirme
Piyasa Araştırması yapıldığında, müşterinin ihtiyacı Araştırma & Geliştirme
bölümüne, müşterinin ihtiyaçlarını imkan dahilinde çözebilecek uygun maliyetli
bir sistemi projelendirmesi için verilir.Projelendirilmiş sistem
geliştirildiğinde ve hipotetik alanda test edildiğinde, geliştirme takımı
kontrolü ele alır.Geliştirme takımı, aşağıda verilen yazılım geliştirme
metodolojilerinden birini benimser ve önerilen sistemi geliştirir ve müşteriye
verir.
Satış & Pazarlama bölümü müsait müşterilere satmaya başlar ve aynı anda yazılımı
imkan dahilinde satın alabilecek niche segment geliştirmek için çalışır.Bölüm,
ek olarak, müşterilerin düşüncelerini geliştiricilere ve bölümüne ürüne olası
değer eklemeleri yapması için iletir.
Bir yazılımı geliştirirken, şirket bazı konularda uzmanlaşmış diğer şirketlere
bir takım uygulamaları yaptırır.Bu yazılım geliştirim sürecini büyük çapta
hızlandırır.
Popüler Yazılım Geliştirme Modelleri
Aşağıdakiler birçok yazılım geliştirici şirketleri tarafından benimsenmiş bazı
temel popüler eliştirme modelleridir.
A. Sistem Geliştirme Yaşam Döngüsü Modeli (System Development Life Cycle (SDLC)
Model)
B. Prototipleme Modeli (Prototyping Model)
C. Hızlı Uygulama Geliştirme Modeli (Rapid Application Development Model)
D. Bileşen Çevirme Modeli (Component Assembly Model)
A.Sistem Geliştirme Yaşam Döngüsü Modeli (SDLC)
Bu ayrıca Klasik Yaşam Döngüsü Modeli (Classic Life Cycle Model) ya da Doğrusal
Ardışık Model (Linear Sequential Model) ya da Waterfall Metodu (Waterfall
Method) olarak bilinir.Bu modeli aşağıdaki aktivitelere sahiptir.
1.Sistem/ Bilişim Mühendisliği ve Modelleme
Bir yazılım, her zaman tüm sistem öğeleri için ihtiyaçları kurmayla başlayan ve
bu ihtiyaçların bazı altkümelerini yazılıma tahsis eden büyük bir sistem
işidir.Bu sistem görüşü; yazılımın sürücü, insanlar ve diğer kaynaklar gibi
başka öğelerle koordine etmesi gerektiğinde zorunludur.Sistem herhangibir
mevcudiyette yazılımın varoluşu için temel ve önemli bir ihtiyaçtır.O yüzden
eğer sistem elverişli değilse, sistem düzenlenmelidir ve elverişli hale
getirilmelidir.Bazı durumlarda, en yüksek sonucu almak için, sistem tekrar
düzenlenmelidir. İdeal sistem düzenlendiğinde ya da ayarlandığında, geliştirme
takımı sistem için yazılım gereksinimini araştırır.
2.Yazılım Gereksinim Analizi
Bu süreç, olurluk incelemesi olarak da bilinir.Bu aşamada, geliştirme takımı
müşteriyi ziyaret eder ve sistemlerini inceler.Verilen sistemde olası bir
yazılım otomasyonu için gerekeni araştırırlar.Takım,olurluk incelemesi sonunda,
aday sistem için belirli farklı önerileri tutan bir belge tedarik eder.Bu
ayrıca, kişisel görevleri, maliyeti, proje programını, hedef tarihleri vs
içerir.Gereksinim toplama süreci yoğunlaştırılmış olup özellikle yazılım
odaklıdır.Program(lar)ın yapım doğasını anlamak için, sistem mühendisi ya da
“analisti” , gereken işlev, davranım, performans ve arayüz kadar yazılım bilişim
alanını anlaması gerekir.Bu aşamanın esas amacı gereksinimi bulmak ve çözülmesi
gereken problemi tanımlamaktır.
3.Sistem Analizi ve Tasarımı
Bu aşamada, yazılım geliştirme süreci, yazılımın tüm yapısı ve ayrıntıları
tanımlanır.Müşteri/sunucu teknolojisi bakımından, paket yazılım altyapısısi için
gereken tiers sayısı, veritabanı tasarımı, veri yapısı tasarımı vs hepsi bu
aşamada tanımlanır.Bir yazılım geliştirme modeli böylece yaratılır.Analiz ve
Tasarım tüm geliştirme döngüsünde çok önemlidir.Tasarım aşamasındaki herhangibir
beklenmeyen kusur yazılım geliştirmenin daha sonraki bir evresinde çözmek çok
pahalı olabilir.Bu aşama sırasında çok özen gösterilir.Ürünün mantıksal sistemi
bu aşamada geliştirilir.
4. Kod Üretimi
Tasarım, makinece okunabilir forma çevrilmelidir.Kod üretim basamağı bu görevi
yapar.Eğer tasarım detaylı bir biçimde yapıldıysa,kod üretimi fazla karmaşıklık
olmadan başarılabilir.Derleyiciler, yorumlayıcılar, hata ayıklayıcısı gibi
programlama araçları kodun üretimi için kullanılır. C, C++, Pascal, Java, PHP
gibi farklı üst düzey programlama dilleri kodlama için kullanılır.Uygulamanın
türüne göre doğru programlama dili seçilir.
5. Test Etme
Kod üretildiğinde, yazılım program testi başlar.Farklı test metodolojileri
önceki aşamalarda yapılan hataları çözmek için uygundur.Farklı test araçalrı ve
metodolojileri şimdiden mevcuttur.Bazı şirketler kendi geliştirme işlemleri için
kişiye özel kendi test araçlarını geliştirirler.
6. Bakım
Yazılım müşteriye teslim edildikten sonra mutlaka değişim geçirecektir.Bu
değişimin gerçekleşmesi için birçok neden olabilir.Değişim, sistemdeki
beklenmedik girdi değerleri yüzünden olabilir.Ek olarak, sistemdeki değişimler
yazılım işlemlerini doğrudan etkileyebilir.Yazılım uygulama döneminden sonra
oluşabilecek değişimlere uyum sağlayabilecek şekilde geliştirilmelidir.
B. Prototipleme Modeli (Prototyping Model)
Doğrusal modelin döngüsel versiyonudur.Bu modelde, gereksinim analizi ve
prototipleme için tasarım yapıldıktan sonra,geliştirme süreci
başlatılır.Prototipleme yaratıldıktan sonra, müşteriye değerlendirme için
verilir.Müşteri paketi test eder ve düşüncelerini, ürünü müşterinin tam
beklentilerine göre düzenleyen geliştiriciye iletir.Sınırlı sayıdaki
yinelemelerden sonra, son yazılım paketi müşteriye verilir.Bu metodolojide,
yazılım müşteri ve geliştirici arasında periyodik bilgi gidip gelmeleri
sonucunda gelişir.Çağdaş IT endüstrisinde en popüler geliştirme
modelidir.Başarılı yazılım ürünlerinin birçoğu, tek seferde müşterinin
gereksinimlerini anlamak çok zor olduğu için (bir iş bitirici için bile!) bu
modeli kullanılarak geliştirilmiştir.Şirketlerin proje yönetim stilleri
bakımından bu modelin yönelimli birçok çeşidi vardır.Bir yazılım ürünün yeni
versiyonları prototipleme sonucunda gelişir.
C. Hızlı Uygulama Geliştirme Modeli (Rapid Application Development Model)
Hızlı Uygulama Geliştirme Modeli, aşırı derecede kısa geliştirme döngüsü
üzerinde duran doğrusal ardışık yazılım geliştirme sürecini modelleştirir. Hızlı
Uygulama Geliştirme Modeli modeli, hızlı geliştirmenin bileşen-bazlı yapı
yaklaşımını kullanarak başarılan doğrusal ardışık modelin “yüksek hızlı”
benimsemesidir.Bilişim sistemler için öncelikle kullanılan Hızlı Uygulama
Geliştirme Modeli yaklaşımı aşağıdaki aşamaları kapsar:
1.İş Modelleme
İş işlevleri arasındaki bilgi akışı aşağıdaki soruları cevaplayan bir şekilde
modellenir:
İş sürecini hangi bilgi yürütür?
Hangi bilgi oluşturulur?
Kim oluşturur?
Bilgi nereye gider?
Kim sürdürür?
2.Veri Modelleme
İş modellemenin bir parçası olarak tanımlanan bilgi akışı, işi desteklemek için
gereken bir takım veri nesneleri haline geliştirilir.Her nesnenin özellikleri
(nitelikleri) belirlenir ve bu nesneler arasındaki ilişkiler tanımlanır.
3.Süreç Modelleme
Veri modelleme aşamasında tanımlanan veri nesneleri, gereken bilgi akışının iş
işlevlerini yerine getirmesi için dönüştürülür.Açıklamaları sürdürmek bir veri
nesnesini ekleme, düzenleme, silme veya almak için yaratılır.
4.Uygulama Üretme
RAD modeli,geleneksel üçüncü kuşak programlama dillerini kullanan yazılımlar
üretmektense VB, VC++, Delphi gibi RAD araçlarının kullanımları varsayar.RAD
modeli, mevcut program bileşenlerini yeniden kullanmak için (mümkün olduğunda)
veya yeniden kullanılabilir bileşenleri yaratmak için(gerektiğinde) çalışır.Her
durumda, otomatik araçlar yazılım yapımını kolaylaştırmak için kullanılır.
5.Test Etme ve Devir hızı
Hızlı Uygulama Geliştirme Modeli süreci yeniden kullanılabirliğin üzerinde
durduğundan, prgram bileşenlerinin çoğu çoktan test edilmiştir.Bu, test etme ve
geliştirme süresini en aza indirir.
D. Bileşen Çevirme Modeli (Component Assembly Model)
Nesne teknolojileri, yazılım mühendisliğine, bileşen-bazlı süreç modeli için
teknik yapı sağlar.Nesne yönlü dizi, veriyi işletmek için kullanılan hem veri
hem de algoritmayı kapsayan sınıflar kreasyonu üzerinde durur.Eğer düzgün
tasarlanır ve uygulanırsa,nesne yönlü sınıflar, farklı uygulama kum bilgisayar
tabanlı sistem yazılım altyapısılerinde yeniden kullanılabilirler.Bileşen
Çevirme Modeli, yazılımın yeniden kullanılabirliğini sağlar. Mevcut olan yazılım
bileşenlerinin entegrasyon/çevirme geliştirme sürecini hızlandırır.Bugünlerde
birçok bileşen kütüphaneleri İnternette mevcuttur.Eğer doğru bileşenler
seçilirse, entegrasyon yönleri daha basitleştirilir.
|
|