Yazılım Mühendisi Kimdir?

Önce yazılım mühendisliğinin ne anlama geldiğini anlayalım. Terim, yazılım ve mühendislik olmak üzere iki kelimeden oluşur.

Yazılım, bir program kodundan daha fazlasıdır. Bir program, bazı hesaplama amaçlarına hizmet eden çalıştırılabilir bir koddur. Yazılım, çalıştırılabilir programlama kodunun, ilgili kitaplıkların ve belgelerin bir koleksiyonu olarak kabul edilir. Yazılım, belirli bir gereksinim için yapıldığında yazılım ürünü olarak adlandırılır .

Öte yandan mühendislik, iyi tanımlanmış, bilimsel ilkeler ve yöntemler kullanarak ürün geliştirmekle ilgilidir.

.

Yazılım Mühendisliği

Yazılım mühendisliği, iyi tanımlanmış bilimsel ilkeler, yöntemler ve prosedürler kullanılarak yazılım ürününün geliştirilmesi ile ilgili bir mühendislik dalıdır. Yazılım mühendisliğinin sonucu, verimli ve güvenilir bir yazılım ürünüdür.

Tanımlar

IEEE (The Institute of Electrical and Electronics Engineers), yazılım mühendisliğini şu şekilde tanımlar:

(1) Yazılımın geliştirilmesi, çalıştırılması ve bakımına yönelik sistematik, disiplinli, ölçülebilir bir yaklaşımın uygulanması; yani mühendisliğin yazılıma uygulanması.

(2) Yukarıdaki açıklamadaki gibi yaklaşımların incelenmesi.

Alman bilgisayar bilimcisi Fritz Bauer, yazılım mühendisliğini şu şekilde tanımlıyor:

Yazılım mühendisliği, güvenilir ve gerçek makinelerde verimli çalışan, ekonomik bir yazılım elde etmek için sağlam mühendislik ilkelerinin oluşturulması ve kullanılmasıdır.

Yazılım Evrimi

Yazılım mühendisliği ilkelerini ve yöntemlerini kullanarak bir yazılım ürünü geliştirme sürecine yazılım evrimi denir Bu, beklenen gereksinimleri karşılayan istenen yazılım ürünü geliştirilinceye kadar yazılımın ilk geliştirilmesini, bakımını ve güncellemelerini içerir.

Yazılım Evrimi

Evrim, ihtiyaç toplama sürecinden başlar. Daha sonra geliştiriciler, amaçlanan yazılımın bir prototipini oluşturur ve kullanıcılara, yazılım ürünü geliştirmenin erken aşamasında geri bildirimlerini almak için gösterir. Kullanıcılar, birkaç ardışık güncelleme ve bakımın da değişmeye devam ettiği değişiklikler önerir. Bu süreç, istenen yazılım elde edilene kadar orijinal yazılıma geçer.

Kullanıcının elinde yazılım istediği halde gelişen teknoloji ve değişen gereksinimler yazılım ürününü buna göre değişmeye zorlamaktadır. Yazılımı sıfırdan yeniden oluşturmak ve gereksinimle bire bir gitmek mümkün değildir. Tek uygulanabilir ve ekonomik çözüm, mevcut yazılımı en son gereksinimleri karşılayacak şekilde güncellemektir.

Yazılım Evrim Kanunları

Lehman, yazılım evrimi için yasalar verdi. Yazılımı üç farklı kategoriye ayırdı:

  • S tipi (statik tip) – Bu, kesinlikle tanımlanan spesifikasyonlara ve çözümlere göre çalışan bir yazılımdır . Çözüm ve buna ulaşma yöntemi, kodlamadan hemen önce anlaşılır. S-tipi yazılım en az değişikliğe maruz kalır, dolayısıyla bu en basit olanıdır. Örneğin, matematiksel hesaplama için hesap makinesi programı.
  • P tipi (pratik tip) – Bu, bir dizi prosedür içeren bir yazılımdır . Bu, prosedürlerin tam olarak neler yapabileceği ile tanımlanır. Bu yazılımda teknik özellikler tanımlanabilir ancak çözüm hemen belli değildir. Örneğin, oyun yazılımı.
  • E-tipi (gömülü tip) – Bu yazılım, gerçek dünya ortamının gerekliliği olarak yakından çalışır . Bu yazılım, gerçek dünyadaki durumlarda kanunlarda, vergilerde vb. Çeşitli değişiklikler olduğu için yüksek derecede evrim geçirmiştir. Örneğin, Çevrimiçi ticaret yazılımı.

E-Type yazılım evrimi

Lehman, E-Type yazılım evrimi için sekiz kanun verdi –

  • Sürekli değişim – Bir E-tipi yazılım sistemi gerçek dünyadaki değişikliklere uyum sağlamaya devam etmelidir, aksi takdirde giderek daha az kullanışlı hale gelir.
  • Artan karmaşıklık – E-tipi bir yazılım sistemi geliştikçe karmaşıklığı, onu korumak veya azaltmak için bir çalışma yapılmadıkça artma eğilimindedir.
  • Aşinalığın korunması – Yazılıma aşinalık veya nasıl geliştirildiği, neden bu şekilde geliştirildiği vb. Hakkındaki bilgiler, sistemdeki değişiklikleri uygulamak için her ne pahasına olursa olsun muhafaza edilmelidir.
  • Sürekli büyüme – Bazı iş sorunlarını çözmeyi amaçlayan bir E-tipi sistem için, işin yaşam tarzı değişikliklerine göre değişiklikleri uygulama boyutu büyür.
  • Kalitenin düşürülmesi – E-tipi bir yazılım sistemi, titizlikle muhafaza edilmedikçe ve değişen bir operasyonel ortama uyarlanmadıkça kaliteyi düşürür.
  • Geri bildirim sistemleri – E-tipi yazılım sistemleri, çok döngülü, çok seviyeli geri bildirim sistemleri oluşturur ve başarılı bir şekilde değiştirilmek veya iyileştirilmek için bu şekilde ele alınmalıdır.
  • Öz düzenleme – E-tipi sistem evrim süreçleri, normale yakın ürün ve süreç ölçülerinin dağılımı ile kendi kendini düzenler.
  • Organizasyonel istikrar – Gelişen bir E-tipi sistemdeki ortalama etkin küresel aktivite oranı, ürünün kullanım ömrü boyunca değişmez.

Yazılım Paradigmaları

Yazılım paradigmaları, yazılım tasarlanırken alınan yöntem ve adımlara atıfta bulunur. Bugün önerilen ve çalışmakta olan birçok yöntem var, ancak bu paradigmaların yazılım mühendisliğinde nerede durduğunu görmemiz gerekiyor. Bunlar, her biri diğerinde yer alsa da, çeşitli kategoriler halinde birleştirilebilir:

Yazılım Evrimi

Programlama paradigması, Yazılım geliştirme paradigmasının bir alt kümesi olan Yazılım tasarım paradigmasının bir alt kümesidir.

Yazılım Geliştirme Paradigması

Bu Paradigma, yazılım geliştirme ile ilgili tüm mühendislik kavramlarının uygulandığı yazılım mühendisliği paradigmaları olarak bilinir. Yazılım ürününün oluşturulmasına yardımcı olan çeşitli araştırmaları ve gereksinim toplamayı içerir. Bu oluşmaktadır –

  • Şartlı toplantı
  • Yazılım Tasarımı
  • Programlama

Yazılım Tasarım Paradigması

Bu paradigma, Yazılım Geliştirmenin bir parçasıdır ve şunları içerir:

  • Tasarım (değiştir | kaynağı değiştir)
  • Bakım
  • Programlama

Programlama Paradigması

Bu paradigma, yazılım geliştirmenin programlama yönü ile yakından ilgilidir. Bu içerir –

  • Kodlama
  • Test yapmak
  • Entegrasyon

Yazılım Mühendisliği Neden Popüler?

Yazılım mühendisliğinin popülerliğinin arkasındaki önemli nedenler şunlardır:

  • Büyük yazılım – Gerçek hayatımızda, bir ev veya binadan çok bir duvar inşa etmek çok daha rahattır. Aynı şekilde, yazılımın boyutu büyüdükçe, yazılım mühendisliği yazılım oluşturmanıza yardımcı olur.
  • Ölçeklenebilirlik – Yazılım geliştirme süreci bilimsel ve mühendislik kavramlarına dayandıysa, mevcut olanı ölçeklendirmek için yeni yazılımı yeniden oluşturmak daha kolaydır.
  • Uyarlanabilirlik : Yazılım süreci bilimsel ve mühendisliğe dayandığında, yazılım mühendisliği yardımıyla yeni yazılımı yeniden oluşturmak kolaydır.
  • Maliyet – Donanım endüstrisi becerilerini göstermiştir ve büyük üretim, bilgisayar ve elektronik donanım maliyetini düşürmüştür.
  • Dinamik Doğa – Yazılımın doğası her zaman büyür ve uyarlanır. Kullanıcının çalıştığı ortama bağlıdır.
  • Kalite Yönetimi : Kaliteli yazılım ürünleri sağlamak için daha iyi bir yazılım geliştirme yöntemi sunar.

Yazılım Mühendisliğinin Diğer Disiplinlerle İlişkisi

Yazılım mühendisliğinin diğer disiplinlerle ilişkisi şu şekildedir:

  • Bilgisayar Bilimi: Elektrik mühendisliği esas olarak fiziğe dayandığından, yazılıma bilimsel bir temel sağlar.
  • Yönetim Bilimi: Yazılım mühendisliği, hem teknik hem de yönetimsel kontrol gerektiren emek yoğun bir çalışmadır. Bu nedenle, yönetim biliminde yaygın olarak kullanılmaktadır.
  • Ekonomi: Bu sektörde, yazılım mühendisliği size kaynak tahmini ve maliyet kontrolünde yardımcı olur. Bilgi işlem sistemi geliştirilmeli ve veriler belirli bir bütçe dahilinde düzenli olarak muhafaza edilmelidir.
  • Sistem Mühendisliği: Çoğu yazılım, çok daha büyük bir sistemin bileşenidir. Örneğin, bir Endüstri izleme sistemindeki yazılım veya bir uçaktaki uçuş yazılımı. Bu tür sistemlerin çalışmasında yazılım mühendisliği yöntemleri uygulanmalıdır.

Yazılım Mühendisliğinin Zorlukları

Yazılım mühendislerinin karşılaştığı bazı kritik zorluklar şunlardır:

  • Uzay, havacılık, nükleer santraller vb. Gibi güvenlik açısından kritik alanlarda yazılım arızasının maliyeti çok yüksek olabilir çünkü hayatlar risk altında.
  • Hızlı geri dönüş süresi için artan pazar talepleri.
  • Yeni uygulamalar için yazılım ihtiyacının artan karmaşıklığı ile başa çıkmak.
  • Yazılım sistemlerinin çeşitliliği birbiriyle iletişim halinde olmalıdır.

One thought on “Yazılım Mühendisi Kimdir?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.