SİSTEM VE YAZILIM Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur. Yazılım, bilgisayar sistemlerinin bir bileşeni olarak ele alınmalıdır. Yazılım yalnızca bir bilgisayar programı veya paket program değildir. Yazılım program, veri ve belgeler topluluğu olarak ele alınmalıdır.
BİLGİSAYAR SİSTEM MÜHENDİSLİĞİ Sistem mühendisliği, her türlü sistemin geliştirilmesinde kullanılan problem çözme tekniğidir. Bilgisayar Sistem mühendisliği, Sitem geliştirme etkinlikleri içerisinde donanım(elektronik) mühendisliği, yazılım mühendisliği tekniklerini kullanan disiplindir.
SİSTEM GELİŞTİRME SÜRECİ Yapılabilirlik Araştırması Sistem Gerçekleştirimi Kullanıcı Belgeleri
YAZILIM MÜHENDİSLLİĞİ Yazılım mühendisliği, yazılım geliştirmenin belirli mühendislik yöntemleri kullanılarak yapılmasını öngören teknik bir disiplindir. Bu amaç için yöntemler ve teknikler belirlemek, araç geliştirmek, yöntem bilimler ve standartlar oluşturmak yazılım mühendisliği dalının işidir. Yazılım mühendisliğinin hedefi yazılım geliştirmedeki karmaşıklığı gidererek sağlam doğru, güvenilir ve isteğe uygun ürünler ortaya çıkarmaktır.
YAZILIM MÜHENDİSİ Yazılım mühendisi bir kodlayıcı değildir. Yazılım mühendisliği disiplinini uygulayarak yazılım geliştiren kişidir. Herhangi bir bilim dalı ile uğraşan ve bir programlama dili bilen bir kişi bilgisayar programı yazabilir, ancak resmi bir eğitim almadan yazılım mühendisliği yapamaz. Yazılım mühendisi salt kodlayıcı değildir. Ancak kod yazma tekniklerini çok iyi bilir. İyi bir belge düzenleyici ve klavye kullanıcı olmayabilir, ancak çok iyi gözden geçiricidir. Uygulama alanında az bilgisi olabilir, fakat bilgisayara kullanıcı isteklerini nasıl aktarabileceğini iyi bilir. Yazılım mühendisi aynı zamanda bir sistem çözümleyici olabilir fakat tersi olmaz.
YAZILIM GELİŞTİRME STANDARTLARI Uluslararası çeşitli kurum ve kuruluşlar tarafından çeşitli yazılım geliştirme standartları ve rehberler oluşturulmuştur. Standartların amacı yazılım geliştirme sürecinde ortak bir noktaya ulaşmaktır.
YAZILIM GELİŞTİRME MODELLERİ Yazılım geliştirme evreleri ve üretilecek belgeler, seçilen yöntem bilime, müşteriye ve geliştiriciye bağlıdır.
YAZILIM GELİŞTİRME MODELLERİ Klasik Çevrim V modeli Protipleme Spiral Model Evrimsel Geliştirme Artımlı Geliştirme Yeni Teknikler
YAZILIM GELİŞTİRME MODELLERİ Klasik Çevrim (Çağlayan, Şelale,Büyük Tasarım Modeli,Geleneksel Model) İsterler Tam olarak tanımlanır ve sabitlenir Tasarım Yapılır Gerçekleştirme Test Bakım
YAZILIM GELİŞTİRME MODELLERİ Klasik Çevrim (Çağlayan, Şelale, Büyük Tasarım Modeli, Geleneksel Model) Sistem Mühendisliği Çözümleme Tasarım Gerçekleştirim Test Bakım
YAZILIM GELİŞTİRME MODELLERİ V Modeli Klasik sistemdeki test işlerinin ne zaman yapılacağını ön plana çıkarır Modelin iki yanında yer alan aşamalar test düzeyi olarak değerlendirilebilir Sol kanat üretim – Sağ kanat Testi açıklar Testler sırasında bulunan hatalardan hangi düzeye dönüleceği bellidir.
YAZILIM GELİŞTİRME MODELLERİ V Modeli Bakım Projelendirme Sistem Geçerleme Sistem İsterleri Çözümlemesi Sistem Yeterlilik Testi Sistem Mimarisi Tasarımı Yaz. İşleri Çözümlemesi Sistem Tümleştirme Yazılım Tasarımı Yazılım Öğesi Yet. Testi Yazılım Gerçekleştirmesi Birim Tümleştirme Birim Testi
YAZILIM GELİŞTİRME MODELLERİ Prototipleme Müşteri yazılım ürününden ne beklediğini belirtir Ayrıntılı giriş çıkış işlemleri tanımlayamaz Geliştirici donanım mimarisi, işletim sistemi kullanımından, genel yazılım başarımından, kullanılacak algoritmanın veriminden emin olmadığı durumlarda kullanılan modeldir
YAZILIM GELİŞTİRME MODELLERİ Prototipleme İsterlerin Toplanması Çabuk Tasarım Protip Geliştirme Müşterinin Değerlendirmesi Prototip İyileştirmesi Referans Ürün
YAZILIM GELİŞTİRME MODELLERİ Evrimsel Geliştirme Ürün aşamalar halinde ortaya çıkar Ürününün her aşamasının uygulama alanında karşılığı vardır Kullanım sırasında ortaya çıkan deneyimler, geri beslemeler ve geri beslemeler bir sonraki aşamada ele alınır. Sistemin başarısı ilk ortaya çıkan ürüne bağlıdır
YAZILIM GELİŞTİRME MODELLERİ Evrimsel Geliştirme Sürüm_3 Sürüm_2 Sürüm 1
YAZILIM GELİŞTİRME MODELLERİ Evrimsel Prototipleme Her aşamada bir prototip ortaya çıkar Prototip uygulama alanında kullanılır ve kullanıcı girdileri elde edilir. Yeni bir prototip ortaya çıkarılır Bu şekilde devam edilerek ürüne son hal verilir.
YAZILIM GELİŞTİRME MODELLERİ Evrimsel Prototipleme Kullanıcı Girdileri Kullanıcı Girdileri İlk prototip ikinci prototip Üçüncü prototip Son Ürün
YAZILIM GELİŞTİRME MODELLERİ Artırımlı Geliştirme Gereksinimlerin Tamamı bellidir Önce Temel gereksinimlere göre çekirdek ürün geliştirilir Sonraki adımlarda isterlerin geri kalan kısmı ele alınır Evrimsel geliştirmeden farkı ilk ürünler tam değildir.
YAZILIM GELİŞTİRME MODELLERİ Artırımlı Geliştirme Sürüm_1 Sürüm_4 Sürüm_2 Sürüm_3
YAZILIM GELİŞTİRME MODELLERİ Spiral Model Klasik ve protipleme modellerinin iyi yönlerini almıştır. Spiral modelin aşamaları 1. Planlama 2. Risk çözümleme (Protipleme Modeli kullanılır) 3. Geliştirme (Klasik Model Kullanılır) 4. Değerlendirme
YAZILIM GELİŞTİRME MODELLERİ Spiral Model
YAZILIM GELİŞTİRME MODELLERİ Diğer Modeller Gelişi Güzel Geliştirme Yeni Teknikler
YAZILIM GELİŞTİRME SÜRECİ Yazılım İsterleri Çözümlemesi Yazılım Tasarımı Yazılım Gerçekleştirimi (Kodlama) Yazılım Testi (Sertifikasyon) Yazılım Bakımı
Yazılım İsterleri Çözümlemesi Bir Yazılım ne kadar iyi tasarlanmış ve yazılmış olursa olsun müşteri isteklerini tam olarak karşılamıyorsa başarılı sayılmaz. Başarılı bir ürün için yazılım geliştirme sürecinin ilk adımı olan yazılım isterleri çözümlemesi(Software requirements analysis) aşamasında müşterinin yazılımdan bekledikleri tam olarak belirlenir, gereksinimler açıklığa kavuşturulur. Yazılım isterleri modellennerek ve tanımlanarak sonraki aşamalar için temel oluşturulur.
Yazılım İsterleri Çözümlemesi Yazılım isterleri çözümlemesi çözümleyiciler tarafından yapılır. Çözümleyici: Sistem belirtimi belgesini inceleyerek problemin ne olduğunu, bunun için gerekli yazılımın kapsamını belirleme işini yapar. Çözümleme aşamasında genel olarak yazılımın ne yapması gerektiği ortaya konur, uygulama alanı isterleri, kullanıcı isterleri ve işlevsel isterler belirlenir. Sistemin çalışma şekli, veri akışı ve işlevsilliği modellenir. Elde edilen tüm bilgiler toplanarak belge haline getirilir.
Yazılım İsterleri Çözümlemesi Belgelendirme: Yazılım İsterleri Belirtimi (Software Requirements Specifications) Arayüz İsterleri Belirtimi (Interface Requirements Specifications)
Yazılım Tasarımı Yazılım tasarımı isterlerin karşılanması amacına yönelik mimari, veri yapıları, algoritmalar, akış şemaları, modüller ve bunlar arasındaki ara yüzlerin görsel yada metin olarak ortaya konduğu aşamadır.
Yazılım Tasarımı Veriye erişim yöntemi, hız etkinlik büyüklük, uygun veri türü ve yapıları Yazılım modelleri, modeller arasında sıra düzensel yapı kurulur Modüllerin iç yapılarındaki algoritmik ayrıntılar ifade edilir. Yazılımın iç ve dış arayüzleri, grafiksel kullanıcı arayüzleri, donanım tümleştirme yöntemi , kullanılacak yazılım katmanları belirlenir
Yazılım Gerçekleştirimi Tasarımın programlama dilene dönüştürüldüğü yani kodlamanın yapıldığı aşamadır. Bu aşamada Kodlama dili, Kodlama dilinin kurallarına uyma ve belgelendirme adımları önemlidir.
Yazılım Testi Yazılım testi, çözümleme, tasarım ve kodlama aşamalarının son olarak değerlendirilmesidir. Yeterlilik Testleri: Doğrulama(Verification): Tanımlanmış ürünün doğru bir şekilde üretilip üretilmediğinin sınanmasıdır. Geçerleme(Validation): Yazılımın doğru amaç için geliştirildiğinin gerçek ortamda test edilmesidir.
Yazılım Testi Sistem Testleri: Yükleme(Load) Testi Germe(Stres) Testi Geri Kazanma (Recovery)
Yazılım Bakımı Düzeltici Bakım Uyarlayıcı Bakım İyileştirici Bakım Önleyici Bakım