|
Yazılım Geliştirmede Neden Mühendislik Gereklidir? |
|
Gönderiliyor lütfen bekleyin... |
|
|
Mühendisler plan üretir ve bu planlar kullanılarak ürünler oluşturulur. (Terri Magginnis )
Bazı insanlar “yazılım mühendisliği” terimini “bilgisayar programlama” ile aynı anlamda kullanmaktadır. Peki bunun neresi yanlış? İşte bu yazıda, “yazılımlarda neden mühendislik gereklidir?” sorusunun cevabı aranacaktir.
Mühendisliğin sözlük tanımında “Bilimsel, matematiksel prensiplerin pratik sonuçlar için olan uygulamaları” diye bir tanım vardır. Aslında bu, birçok programcının yapmaya çalıştığı eylemdir. Bilmsel olarak geliştirilmiş ve matematiksel olarak tanımlanmış algoritmaları, fonksiyonel tasarım metodlarını, kalite güvence metodlarını ve diğer metodları yazılım ürünleri ve servisleri üretmek için kullanıyoruz. Diğer konularda, insanların teknik çözümlere ulaşabilmesi için hizmet verebilecek kişiler yasal olarak tanımlanmaktadır. Programlar konusunda ise böyle bir uygulama yoktur.
Genel olarak, insanlar yazılım geliştirmeye mühendislik açısından yaklaşılırsa hantal formal yöntemlerin kullanılacağını düşünürler. Bu da birçok projenin mühendislik yaklaşımıyla başlamadan bitmesine neden olur çünkü ticari yazılımların mühendislik yöntemlerini uygulayacak kadar geniş zaman dilimlerine sahip olmadıklarını düşünürler. Yukarıdaki yanlış izlenimler, mühendislik hakkındaki dar fikirliliği gösterir.
Mühendislik, bilimsel yöntemlerin pratiğe dönüşme çalışmalarıdır. Eğer çok zaman alan, pratik olmayan bir süreç olacaksa, buna mühendislik de diyemeyiz. Tüm projelere tamamen formal yöntemleri uygulamaya çalışmak tabi ki iyi bir fikir değıldır fakat tüm projelerde “yap gitsin, çalışıyorsa sorun yok” gibi bir yaklaşım da iyi değildir. Yazılıma mühendislik alanı oarak yaklaşmak, farklı projelerin farklı geliştirme hedeflerinin olacağının da netleşmesini sağlar. Bir bina yapılacağı zaman, yapı malzemeleri o binanın yapılış amaçına uygun olmak zorundadır. Bir apartman yapmak ile bir alışveriş merkezi yapmak çok farklı işlerdir. İkişinin de bazı materyalleri ortak olabilir, fakat yapılış amaçlarına göre çok farklılık gösterirler. Eğer bir aynı şekilde çalışma yapılırsa, bir ev yapımı için harcanan tasarım zamanının fazlalığını, kullanılan kaynakların fazlalığını düsünün. Bu durumda tabi ki iyi bir mühendislik çalışması olmayacaktir. yazılım için, bir proje aşağıdaki hedeflerin herhangi biri dikkate alınarak yönetilebilir:
• En az hata
• En fazla kullanıcı memnuniyeti
• En az cevap verme süresi
• Kolay bakım
• Kolay yönetim
• Kolay genişleyebilirlik
• Yüksek güvenilirlik
Her yazılım projesi gurubu, projesinin hedeflerini bu parmetreler göre sıralamalıdır ve en önemli parametresini şeçmelidir. Böylelikle yapılan çalışmalar bu doğrultuda yapılabilir ve sonuç daha başarılı olur.
Bir başka konu da yazılım projelerinin kullandığı fiziksel maddelerin diğer mühendisliklerden farklı olmasıdır. Diğer mühendisliklerde fiziksel maddeler bütçenin yarısından fazlasını oluşturabilir. yazılım projesinde ise bütçenin nerdeyse tamamını insan gücü oluşturmaktadır. Projedeki en önemli kaynak insan olunca, yazılım takımı ve takıma bağlı proje hedefleri de ortaya çikar. Aşağıda bu hedeflerin listesi vardır:
• Kısa bir proje takvimi
• Tahmin edilebilir dağıtım tarihi
• Düsük maliyet
• Küçük takım
• Proje ortasında değişikliklere karşı dayanıklılık Yukarıdaki özelliker de dikkatle dengelenmelidir.
Bir kelime işlemcisi programının 10-20 milyar ödemeyeceğimiz gibi her 10 dakikada bir çöken bir program da istemeyiz. Bu parametrelerin hangisinin proje takımına ve projye önemli olacağını belirlemek projenin “gerçek bir yazılım mühendisliği projesi” olup olmadığını göstermez. Bazı projeler en az hatalı yazılımi üretmek isterler. Çoğu insan bu tip projelerin yazılım mühendisliği disiplini ile yönetilmesi gereken projeler olduklarını düşünürler. Diğer projeler orta seviyede güvenilirlik ve kısmen daha düşük bütçe ve kısa takvimde bitirilmelidirler. Peki bu projelerde yazılım mühendisliğine gerek yok mudur? Mühendisliğin resmi olmayan bir tanımi da “Başkasının 10 milyona yaptığını 1 milyona yapmaktır” olduğundan, projelerin ekonomik boyutu da önemlidir. Bu durumda, yazılım mühendisliği disiplini proje geliştirmede oldukça faydalıdır. Fakat projedeki yazılım mühendisliği esnekliği, projenin karakteristiğine bağlıdır diyebiliriz.
Makale:
Yazılım Geliştirmede Neden Mühendislik Gereklidir? Yazılım Mühendisliği Tanıl Ergin
|
|
|
-
-
Eklenen Son 10
-
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
|
|