info@iztim.com
+90 (232) 347 6340

Yazılım Mühendisligi

Yazılım mühendisliği, profesyonel yazılım geliştirme araçları, metotlar ve teoriler ile uğraşır.

Yazılım Mühendisliği

 

Gelişen ülkelerin ekonomisi yazılımlara bağlıdır. Bu ekonomilerde çalışan pek çok sistem yazılım kontrolündedir. Yazılım mühendisliği, profesyonel yazılım geliştirme araçları, metotlar ve teoriler ile uğraşır. Tüm gelişmekte olan ülkelerde yazılım yapılan harcama önemli bir durum göstergesidir.

 

Yazılım maliyetleri, bilgisayar maliyetleri üzerinde oldukça etkilidir. Bir bilgisayar üzerindeki yazılım maliyeti, donanım maliyetinden daha fazladır. Yazılımlar bakıma ihtiyaç duyar. Sistemimizin uzun süre yaşamasını istiyorsak, bakım maliyeti geliştirme süreci boyunca olacaktır.

 

Yazılım Nedir?


Yazılım, bilgisayar programları, ilgili dökümanlardan (gereksinimler, tasarım modelleri, kullanıcı kontrolleri) oluşur.

 

Yazılım ürünleri belirli bir müşteriye ya da piyasaya yönelik üretilir. Yazılım ürünleri;

 

  • Generik, farklı tipteki müşterilere erişmek içim üretilir ve satılır.

 

  • Özel, sadece belirli bir kişiye yönelik üretilebilir

 

Yeni bir yazılım;

  • Yeni programlar geliştirmek için

 

  • Yazılımın yeniden kullanımı ve generik yazılım sistemleri düzenlemek içim kullanılır.

 

 

Yazılım Mühendisliği Nedir?


Yazılım ürünün tüm yönleriyle ilgilenen, mühendislik kavramıdır. Yazılım mühendisleri, işleri için sistematik ve organize edilmiş bir yaklaşım sergiler ve çözülmesi gereken probleme uygun olarak araçlar kullanırlar. İşler gerçekleştirilirken çeiştli kaynaklar ve belirli kısıtlar bulunur.

 

 

Yazılım Mühendisliği ile Bilgisayar Mühendisliği arasındaki farklar nelerdir ?


Bilgisayar mühendisliği, teori ve ilkelerle ilgilenir, yazılım mühendisliği, kolayca geliştirme ve yararlı yazılım elde etmek ile uğraşır. Bilgisayar mühendisliği teorileri,yazılım mühendisliğini tam olarak henüz desteklememektedir.

 

 

Sistem Mühendisliği ile Yazılım Mühendisliği arasındaki farklar nelerdir ?


Sistem mühendisi, tüm bilgisayar tabanlı sistemlerin, donanım, yazılım, süreç gelişimi ile ilgilenir. Yazılım mühendisliği ise yazılım altyapısı, kontrolü, uygulaması geliştirirken sürecin bir parçası olur.

 

 

Yazılım süreçleri nelerdir ?


Bir yazılımın evrimi ya da gelişiminden oluşan aktiviteler kümesidir.

 

Tüm yazılım süreçlerindeki genel aktiviteler:

 

  • Spesifikasyon: sistem ne yapacak ve kısıtlamalar neler olacak
  • Geliştirme: yazılım sisteminin üretilmesi
  • Onaylama: müşterinin isteklerini yerine getirip getirmediğini kontrol etmek.
  • Evrim: yazılım değişen koşullara verdiği cevap.

 

 

Yazılımın süreç modeli nedir ?

 

Basitleştirilmiş bir yazılım sürecinin sunumu, özel bir perspektfiten gösterilir.

 

Örnek süreç perspektifleri;

  • İş Akışı: sıralı aktivitiler
  • Veri akışı: bilgi akışı
  • Rol-aksiyon: kim ne yapacak.

 

Generik süreç modelleri

  • Waterfall
  • Iterative geliştirme
  • Bileşen bağımılı yazılım mühendisliği

 

 

Yazılım Mühendisliğinin maliyeti ne kadardır ?

 

Tahminen %60'ı geliştirme maliyeti,%40ı test maliyetidir. Özel bir yazılımda, keşif maliyetleri, geliştirme maliyetinden fazla olmaktadır. Maliyetler, geliştirilen sistemin tipine ve sistem özelliklerinin gereksinimlerine (performans ve sistem güvenliği) bağlıdır.

Dağıtım maliyetleri, kullanılan geliştirme modeline bağlıdır.

 

 

Yazılım mühendisliği modelleri nelerdir ?

Yazılım geliştirmeye yapısal yaklaşımlar, sistem modellerini, kuralları, bildirimleri, tasarım tavsiyelerini, süreç rehberliğini içerir.

                Model Tanımları

                Hangi modelin nasıl üretileceğini tanımlar.

                Kurallar

                Kısıtlamalar sistem modeline uygular.

                Tavsiyeler

                İy tasarım praktikleri hakkında bilgilendirme.

                Süreç Rehberliği

                Hangi sırada işlem gerçekleştirilecek.

 

CASE nedir ? (Computer-Aided Software Engineering )

Yazılım sistemleri, yazılım süreç aktivitelerine otomatik destek sağlamaya yöneliktir. CASE sistemleri metot desteği için kullanılır.

 

  • Upper-CASE

Tasarım ve gereksinimlerin ilk ihtiyaçlarının belirlenmesini sağlayan araçlar.

 

  • Lower-CASE

Programlama, derleme ve test yapma gibi daha sonraki ihtiyaçlar için araç sağlar.

 

İyi bir yazılımın özellikleri nelerdir ?

Yazılım gerekli fonksiyonelliği ve performansı kullanıcıya sağlar. Bu sağlanan yapının, bakımı yapılabilmeli, kabul edilebilir olması gerekmektedir.

 

  • Bakım yapılabilir olmak

Yazılım değişen ihtiyaçlara cevap verebilmeli.

 

  • Bağımlılık

Yazılım güvenilir olmalıdır.

 

  • Etkinlik

Yazılım sistem kaynaklarını boşa harcamamalıdır.

 

  • Kabul Edilebilirlik

Yazılım ne için tasarlandığı kullanıcılar tarafından kabul edilmelidir. Yani yazılım anlaşılabilir, kullanılabilir ve diğer sistemlerle karşılaştırılabilir olmalıdır.

 

 

Yazılım Mühendisliğinde anahtar rekabet sahaları nelerdir ?


  • Heterojenlik

Bir yazılımın farklı platformlar ve çalışma ortamları üzerinde çalışabilmesi.

 

  • Taşıma

Geliştirme teknikleri, yazılım hızlı bir şekilde aktarılmasına önderlik eder.

 

  • Güven

Geliştirme teknikleri, kullanıcılar tarafından güven sağlamalıdır.

 

development cycle

Ahmet Sami Küçük

 

McAfee SECURE sites help keep you safe from identity theft, credit card fraud, spyware, spam, viruses and online scams