Yazılım Sistem Mühendisliği

tarihinde yayınlandıSEO Paylaşımları içinde yayınlandı

Yazılım Sistem Mühendisliği

               Yazılım sistemleri günden güne büyümekte ve karmaşıklaşmakta. Bu gelişime donanımların performansını artırmak üzere yapılan katkılarda hız veriyor. Sistem büyüdükçe yazılım için boyut ve karmaşıklık kavramlarıda önem kazanmaya başlıyor. Çünkü yazılımlar baskın teknolojiler ve bir çok verinin kontrolü ya da sistemsel önem taşıyan bir çok fonksiyon bunlar üzerinden yürütülüyor. Bu durumda boyutun büyümesi ve karmaşıklığın artmasıda kaçınılmaz oluyor. Ayrıca yazılım sistemlerin büyük çoğunluğu tahmini maliyetle veya öngörülen zamanda yapılamıyor. Bu olguya yazılım krizi deniyor. Bu krize karşılık yazılım geliştiriciler ürün geliştirirken farklı mühendislik uygulamalarını buna dahil ediyorlar. Bir projenin gelişim sürecini teknik ve yönetsel olarak takip etmek yani kaynakları kullanmak, kilometre taşlarını başarmak, gereksinimleri karşılamak ve testleri tamamlamak her zaman yararlı geri bildirimler vermiyor. Bu yüzden teknik süreçler önemsenmeli ve iyi yönetilmeli. Bu noktada sistem mühendisliği süreçleri başarmak için bazı araçlar ve uygulamalar sağlıyor. Bir yazılım süreci, bu uygulamalar dahil edilerek geliştirildiğinde ortaya çıkan faaliyetler, prosedürler yazılım sistem mühendisliğinin çıktısı anlamına geliyor. Aslında yazılım sistem mühendisliği kavramını bazıları yazılım bazıları ise sistem mühendisliğinin bir parçası olarak düşünüyor. Hangisi olursa olsun bu kavram ortaya teknik anlamda güçlü ve başarılı sonuçlar çıkarıyor.

Sistemler ve Sistem Mühendisliği

Bir sistem benzer elemanların ortak bir yol izlemesidir. Sistem mühendisliği ise bilimsel, yönetimsel ve mühendislik becerilerini işlevsel ihtiyaca dönüştürür; tanımlı bir sistem konfigürasyonu için bu ihtiyaçlara en iyi şekilde cevap verir. Bu teknik anlamda sorun ve çözüm süreci gibi düşünülebilir. Sistem mühendisliği donanım değil gelişim sürecine yön veren dökümanlar üretir ve bu dökümanlar gerekli süreç ortamını, arayüzleri veya ürünleri tanımlar.

Sistem mühendisliğinin bazı fonksiyonları vardır. Problem belirleme, çözümü analiz etme, süreç planlama ve süreç kontrol, ürün değerlendirme başlıkları bu fonksiyonları tanımlar.

Yazılım Sistemi Mühendisliği

Yazılım sistem mühendisliği bir sistemin teknik yönetiminden ve son sistem ürününün doğrulanmasından sorumludur. Sistem mühendisliğine benzer şekilde ve yazılım mühendisliğinden farklı olarak bu mühendislik türünde de çıktı dökümanlardır. Sistem gereksinimleri yazılımsal ve donanımsal olarak ayrıldıktan sonra yazılım sistem mühendisliğide başlar. Aslında yazılım mühendsiliğine benzer şekilde hem teknik hem yönetimsel bir süreçtir.

  • Sistem mühendisliği, yazılım mühendisliği ve yazılım sistem mühendisliği birbirleriyle şu şekilde ilişkilidir

 

  • SİSTEM MÜHENDİSLİĞİ:

Sistem analizi

 Sistem tasarımı

 Sistem testi

 Sistem tümleştirme testi

 

  • YAZILIM SİSTEMİ MÜHENDİSLİĞİ:

Sistem tümleştirme testi

Yazılım gereksinim analizi

Yazılım tasarım mimarisi

Yazılım sistem testi

Yazılım tümleştirme testi

 

  • YAZILIM MÜHENDİSLİĞİ:

Ayrıntılı yazılım tasarımı

Yazılım alt sistem testi

Kod ve birim test

 

Yazılım Sistemi Mühendisliği ve Yazılım Mühendisliği

Yazılım sistemi mühendisliği ve yazılım mühendisliği teknik ve yönetsel süreçlerdir ancak yazılım mühendisliği bir yazılım bileşeni ile bu bileşeni destekleyen dökümanları üretir. Ayrıca, yazılım mühendisliği analizi, tasarımı, kodu, testi, dökümantasyonu ve yönetimi etkileyen büyük ve başarılı tamamlanmışlıklar yapmak için zaman ve bütçe kısıtları altında uygulanabilir bir bilimdir. Metodların, araçların ve tekniklerin sistematik olarak uygulanmasıyla gereksinimlere ulaşılmış verimli ve nesnel bir yazılım sistemi ortaya konabilir.

Yazılım Sistemi Mühendisliği ve Proje Yönetimi

Proje yönetimi, yazılım sisteminin riskini, bütçesini, planını ve takvimini oluşturarak ve takip ederek çeşitli mühendislik uygulamaları, tasarım grupları ve entegrasyon kontrolü denetimleri ile maliyetin ve teknik gereksinimlerin karşılandığından emin olma süreçlerini kapsar. Bu süreçler yazılım ve yazılım sistemi süreçleriyle doğrudan ilişki içerisindedir.

PROJE YÖNETİM:

Planlama

Düzenleme

Personel alımı

Yönetme

Kontrol

 

Yazılım Sistemi Mühendisliğinin Fonksiyonları

Yazılım sistemi mühendisliğinin ana fonksiyonları aşağıdaki gibidir:

  1. Gereksinim Analizi: Yazılım geliştirmede ilk basamak gereksinimleri doğru şekilde belirlemek ve uygun formatlarda dökümante etmektir. Gereksinimler şu şekilde kategorize edilebilirler: Fonksiyonel gereksinimler (sistem ya da sistem parçaları), performansa yönelik gereksinimler(hız, frekans,…), arayüz gereksinimleri, tasarım kısıtları (örneğin dil) ve kalite faktörleri (doğruluk, güvenilirlik).

 

  1. Yazılım Tasarımı: Gereksinimler doğrultusunda implemente sürecidir. Yazılım tasarımları ikiye ayrılır: Mimari tasarım ve detay tasarım. Mimari tasarım sistem mühendisliğine, detaylandırılmış tasarım ise parça, bileşen mühendisliğine denk gelmektedir. Yani mimari tasarım tüm tasarım süreçlerini kapsayan yapılandırma olarak; detaylandırılmış mimari ise bağımsız yazılım modülleri olarak düşünülebilir.

 

  1. Süreç Planlaması: Planlama projenin hedeflerini, stratejilerini , prosedürlerini belirler. Ne, nasıl, ne zaman, kim sorularıyla süreçlerin detaylandırıldığı aşamadır.

 

  1. Süreç Kontrolü: Projenin belirlenen plan doğrultusunda ilerlediğinin kontrolünü yapan yönetimsel faaliyetler aşamasıdır. Performans ve planlanan süreçlerin çıktıları önem taşımaktadır. Yani, süreç kontrolü projenin nasıl gittiğine dair bir geri bildirim aktivitesidir. İlgili proje yönetimi kontrolü ve yazılım sistemi mühendisliği kontrolü olarak ikiye ayrılır.

 

  1. Doğrulama, Onaylama ve Test: Doğrulama “Ürün doğru şekilde yapılandırıldı mı?” sorusuna cevap veren aşamadır. Onaylama “Doğru ürün mü yapılandırıldı? sorusuna cevap veren aşamadır. Test ise, onaylamanın bir parçası gibi düşünülebilir.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir