Yazılım Mühendisliği Temelleri

Dr. Erhan SARIDOĞAN

Editör: Dr. Rifat ÇÖLKESEN

 

 Yazılım Mühendisliği Derleri için en uygun kitap

 

 

 

ISBN:978-605-4220-32-8, 2. basım

256 sayfa, Eylül 2016, (16,5x24 cm2), 80 gr 1. hamur kağıt.


  Yazılım Mühendisliği Temelleri PDF indir          şimdi satın al


Bu kitabımızın amacı, yazılım ve "yazılım mühendisliği" konusunda temel bilgileri ve yazılım tasarım metodolojisini yalın bir dille sunmaktır; yazılıma sistem mühendisliği açısından yaklaşılmakta ve yazılım geliştirme teknikleri, yöntemleri, standartları ele alınmaktadır.

Kitap, yeni başlayan bir tasarımcıdan üst düzey profesyonel tasarımcıya kadar herkese yararlı olabilecek bilgiler içermektedir; ayrıca akademik kurumlarda  yazılım mühendisliği için klasik bir ders kitabı niteliğindedir; kitabımız yazılım evi çalışanları için de ciddi bir yol gösterici kılavuz gibidir.

"Yazılım Mühendisliği Temelleri" adlı bu kitabımız belirli bir geliştirme yöntemini ele alıp onu tüm ayrıntılarıyla incelemek yerine ortak noktaları, genel tanımlamaları ele almakta, pratik bilgiler vermekte, çeşitli belge şablonları sunmakta ve standartlardan bahsetmektedir. Kitabımız toplam 12 bölüm ve eklerden oluşmuştur; giriş bölümden sonra Bilgi Sistemleri ve Sınıflanması, Bilgisayar Sistemi Mühendisliği, Yazılım Mühendisliği, Yazılım İsterleri Çözümlemesi, Yazılım Tasarımı, Yazılımın Gerçekleştirilmesi, Yazılım Testi, Yazılım Bakımı, Nitelik Güvence, Konfigürasyon/Düzenleşim Yönetimi ve Yazılım Geliştirme Yöntembilimleri konuları yalın bir dille ele alınmıştır. 



İÇİNDEKİLER

Bölüm 1. GİRİŞ

1.1.       Bilgisayar Yazılımı Tarihçesi

1.2.       Yazılım Mühendisliği

1.3.       Yazılım Mühendisi

1.4.       Donanım ve Yazılım Karşılaştırması

1.5.       Yazılım Sınıflandırması

1.6.       Yazılım Özellikleri

1.6.1.      Niteliksel Özellikler

1.6.2.      Kullanıma Yönelik Özellikler

1.6.3.      Taşınmaya Yönelik Özellikler

1.6.4.      Yenileştirmeye Yönelik Özellikler

1.7.       Özet

1.8.       Sorular

 

Bölüm 2.      BİLGİ SİSTEMLERİ VE SINIFLANMASI

2.1.      Bilgi/Bilişim Sistemleri

2.1.1.         Çevrimiçi Sistemler        

2.1.2.         Gerçek Zamanlı Sistemler

2.1.3.       Karar Destek Sistemleri        

2.1.4.       Bilgi Tabanlı Sistemler        

2.1.5.         Kişisel Bilgisayarlar     

2.1.6.       Ofis Otomasyonu    

2.1.7.         İletişim Sistemleri        

2.1.8.         Endüstriyel Sistemler        

2.1.9.         Kontrol Sistemleri        

2.1.10.         Askeri Sistemler        

2.1.11.         Robotik     

2.1.12.         Gömülü Sistemler        

2.1.13.         Yönetim Bilgi Sistemleri        

2.1.14.         Veritabanı Yönetim Sistemleri        

2.1.15.     Bilgi Yönetim Sistemleri        

2.2.       Sistem Yapıları

2.3.       Sistem Bileşenleri

2.3.1.      Donanım  

2.3.2.      Altyapı Yazılımları 

2.3.3.      Uygulama Yazılımları 

2.4.       Özet 

2.5.       Sorular

 

Bölüm 3. BİLGİSAYAR SİSTEMİ MÜHENDİSLİĞİ

3.1.       Sistem Maliyeti 

3.2.      Yapılabilirlik Araştırması  

3.3.       Proje Yaşam Çevrimi    

3.4.       Proje Yönetimi  

3.4.1.      Yönetsel Planlar    

3.4.2.    Teknik Planlar

3.5.       Sistem Mühendisliği     

3.5.1.    Sistem Mühendisliği Yaşam Süreci 

3.5.2.      Mühendislik Etkinlikleri  

3.5.2.1.      Tanımlama 

3.5.2.2.      Donanım ve Donanım Mühendisliği  

3.5.2.3.      Yazılım ve Yazılım Mühendisliği 

3.5.2.4.      İnsan Mühendisliği 

3.6.       Sistem Çözümlemesi 

3.6.1.      Kavramsal Tanımlama 

3.6.2.    Sistem İsterlerinin Belirlenmesi

3.6.2.1.      Modelleme 

3.6.2.2.      Benzetim 

3.6.2.3.      Yöntembilimler

3.6.3.    İsterler Belirtimi 

3.6.4.      Yardımcı Araçlar

3.6.5.      Belgelendirme

3.7.       Sistem Tasarımı  

3.7.1.      Tasarım Etmenleri 

3.7.2.      Tümleştirme 

3.7.3.    Sistem Bileşenleri 

3.7.4.    Sistem Mimari Tasarımı   

3.7.5.      Belgelendirme

3.8.       Sistemin Gerçekleştirilmesi

3.8.2.    Sistem Tümleştirme

3.8.3.    Elle Denetim Yordamları 

3.8.4.      Belgelendirme

3.9.       Sistem Kurulumu

3.10.     Sistem Testi 

3.11.     Sistem Teslimi

3.12.     Sistem Bakımı 

3.13.     Genel Belgelendirme  

3.14.     Özet

3.15.     Sorular

 

Bölüm 4.      YAZILIM MÜHENDİSLİĞİ

4.1.       Yazılım Mühendisliği Yöntembilimleri 67

      4.1.1.                Klasik Çevrim  

      4.1.2.       “V” Modeli

      4.1.3.                Prototipleme 

      4.1.4.       Spiral Model 

      4.1.5.                Evrimsel Geliştirme 

      4.1.6.                Evrimsel Prototipleme 

      4.1.7.                Artımlı Geliştirme 

      4.1.8.                Araştırmaya Dayalı Geliştirme

      4.1.9.                Gelişigüzel Geliştirme 

      4.1.10.                Özneye Yönelik Geliştirme 

      4.1.11.                Bileşen Tabanlı Geliştirme 

      4.1.12.                Özelliğe Yönelik Programlama 

      4.1.13.                Uç/Aykırı Programlama 

      4.1.14.                Birleştirilmiş Teknik  

4.2.       Yazılım Mühendisliği Araçları 

      4.2.1.      Yönetsel Araçlar

      4.2.2.      Çözümleme ve Tasarım Araçları

      4.2.3.      Gerçekleştirme Araçları

      4.2.4.    Bakım Araçları

      4.2.5.      Destekleyici Araçlar

      4.2.6.    Model-Güdümlü Mimari Araçları  

4.3.       Yazılım Geliştirme Süreci

      4.3.1.    Yazılım Proje Planlaması

      4.3.2.    Yazılım Geliştirme Ortamının Kurulması

             4.3.2.1.      Ana Sistemin Kurulması

             4.3.2.2.      Yazılım Test Ortamının Oluşturulması 

             4.3.2.3.      Yürütme Ortamının Oluşturulması 

             4.3.2.4.      Kullanım Ortamının Sağlanması

      4.3.3.    Yazılım İsterleri Çözümlemesi

             4.3.3.1.      Sistem Yazılım İsterleri Çözümlemesi

             4.3.3.2.      Yazılım Öge Çözümlemesi

             4.3.3.3.      Test Hazırlığı

      4.3.4.    Yazılım Tasarımı

             4.3.4.1.      Sistem Yazılım Tasarımı

             4.3.4.2.      Öge Tasarımı

             4.3.4.3.      Ayrıntılı Tasarım 

             4.3.4.4.      İzlenebilirlik

      4.3.5.    Yazılım Gerçekleştirmesi ve Birim Testi

      4.3.6.    Yazılım Tümleştirme ve Test

      4.3.7.    Yazılım Yeterlilik Testi

      4.3.8.    Sistem Tümleştirme ve Test 91

      4.3.9.    Sistem Yeterlilik Testi

      4.3.10.      Yazılımı Kullanıma Hazırlama 

      4.3.11.      Yazılımı Aktarmaya Hazırlama

      4.3.12.  Yazılım Bakımı

4.4.       Özet

4.5.       Sorular

 

Bölüm 5.      YAZILIM İSTERLERİ ÇÖZÜMLEMESİ

5.1.       İsterler Çözümlemesi Aşaması

      5.1.1.      Çözümleme Çalışmaları

      5.1.2.      İsterlerin Değişmesi

5.2.       İsterlerin Belirlenmesi

      5.2.1.      İsterlerin Düzeyleri

      5.2.2.    İster Belirleme Adımları

      5.2.3.    İster Tanımlama Teknikleri

      5.2.4.      İsterlerin Sınıflandırılması

5.3.      Çözümleme Yöntemleri

5.4.       Yapısal Çözümleme 

      5.4.1.    Veri Akış Diyagramı

      5.4.2.      Davranış Modellemesi

      5.4.3.    Veri Sözlüğü 

5.5.       Nesneye Yönelik Çözümleme 

      5.5.1.      Nesne

      5.5.2.      Çözümleme 

      5.5.3.      Modelleme

      5.5.4.      Tasarım 

5.6.       Veri Yapılarına Yönelik Çözümleme 

5.7.      Belgelendirme  

5.8.       Özet

5.9.       Sorular

 

Bölüm 6.      YAZILIM TASARIMI

6.1.       Tasarım Aşaması

6.2.       Yazılım Tasarım Süreci

      6.2.1.    Veri Tasarımı 

      6.2.2.    Mimari Tasarımı

      6.2.3.      Yordamsal Tasarım

      6.2.4.    Arayüz Tasarımı

6.3.       Tasarım Yöntemleri

      6.3.1.    Veri Akışına Yönelik Tasarım  

      6.3.2.      Nesneye Yönelik Tasarım  

             6.3.2.1.      Temel Özellikler

             6.3.2.2.      Nesneye Yönelik Tasarım Aşamaları

      6.3.3.    Veriye Yönelik Tasarım 

      6.3.4.      Tasarım Kalıpları

6.4.       Kullanıcı Arayüzü Tasarımı

      6.4.1.    İnsan-Bilgisayar Arayüz Tasarımı

      6.4.2.    Arayüz Yazılımları

6.5.       Gerçek Zamanlı Sistem Tasarımı

      6.5.1.    Yapısal Özellikler

      6.5.2.      Gerçekleştirme Teknikleri

      6.5.3.      Dinamik Özellikler

6.6.       Veritabanı Uygulamaları Tasarımı

      6.6.1.      Mimari 

      6.6.2.      Sınıflandırma 

      6.6.3.      Tasarım  

6.7.       İnternet Uygulamaları Tasarımı

6.8.       Yazılım Tasarımında Kurallar

      6.8.1.      Modüler Tasarım  

      6.8.2.      Modüler Tasarım İlkeleri

      6.8.3.    Tekrar Kullanım 

      6.8.4.      Denetim ve İşlevin Ayrılması

      6.8.5.    Genel Yaklaşım 

6.9.      Belgelendirme  

6.10.     Özet

6.11.     Sorular

 

Bölüm 7.      YAZILIMIN GERÇEKLEŞTİRİLMESİ

7.1.      Programlama Dilleri

7.2.       Kod Çevrim İşlemi

      7.2.1.      Derleyiciler  

      7.2.2.      Yorumlayıcılar

7.3.       Kodlama 

      7.3.1.      Kodlama Dili 

      7.3.2.    Veri Bildirimi

      7.3.3.    Deyim Yapıları

      7.3.4.      Etkinlik 

      7.3.5.    Atık Toplama   

      7.3.6.    Aykırı Durumların Kotarılması

      7.3.7.    Hata Ayıklama 

7.4.       Kodlama İçin Kurallar

7.5.       Modüler Gerçekleştirme Kuralları

7.6.      Belgelendirme  

7.7.       Özet

7.8.       Sorular

 

Bölüm 8.      YAZILIM TESTİ

8.1.       Yazılım Testi/Sınaması Temelleri

      8.1.1.    Testin Amaçları

      8.1.2.    Testin Yapılışı

      8.1.3.    Test Yöntemleri

      8.1.4.    Özel Sistemlerin Testleri

      8.1.5.      Otomatik Test Araçları

8.2.       Test Stratejileri

8.3.       Birim Testi

      8.3.1.    Birim Testi Yöntemleri

      8.3.2.    Birim Testinin Yapılışı

8.4.      Tümleştirme Testi

      8.4.1.      Yukarıdan Aşağı Tümleştirme

      8.4.2.      Aşağıdan Yukarıya Tümleştirme

8.5.       Yeterlilik Testleri

      8.5.1.      Doğrulama 

      8.5.2.      Geçerleme

      8.5.3.      Gelişigüzel Testler

8.6.       Sistem Testi

      8.6.1.      Yükleme Testi

      8.6.2.    Germe Testi

      8.6.3.    Geri Kazanma Testi

      8.6.4.      Emniyet Testi

      8.6.5.      Güvenlik Testi

      8.6.6.      Başarım Testi

8.7.       Kabul Testleri

      8.7.1.    Üretim Hattı Testleri

      8.7.2.      Kullanım Hattı Testleri

      8.7.3.      Deneme Testleri

      8.7.4.    Alfa ve Beta Testleri

      8.7.5.    Kabul Kıstasları

8.8.       Test Yönetimi 

8.9.       Hata Ayıklama Süreci

8.10.      Belgelendirme

8.11.     Özet

8.12.     Sorular

 

Bölüm 9.      YAZILIM BAKIMI

9.1.       Yazılım Bakımının Temelleri

      9.1.1.    Bakım Türleri

      9.1.2.      Örgütlenme

      9.1.3.    Bakım Aşamaları

      9.1.4.      Raporlama

9.2.       Bakım Kolaylığı 

      9.2.1.      Denetim Etmenleri

      9.2.2.      Bakımın Niteliği

      9.2.3.    Bakım Sorunları

9.3.       Bakım İşlemleri İçin Kurallar

9.4.       Özet

9.5.       Sorular

 

Bölüm 10.    NİTELİK GÜVENCE

10.1.     Yazılım Niteliği 

10.2.     Nitelik Metrikleri 

10.3.     Yazılım Metrikleri

10.4.     Nitelik Güvence Etkinlikleri

10.5.     Nitelik Güvence Yönetimi

10.6.     Süreç Modelleri

10.7.     Nitelik Sistem Standartları

10.8.     Gözden Geçirmeler

      10.8.1.    Eşdüzey Gözden Geçirme

      10.8.2.  Resmi Teknik Gözden Geçirmeler

      10.8.3.    Birleşik Gözden Geçirme

      10.8.4.    Yazılım Ürün Değerlendirmesi

             10.8.4.1.      Nitelik Raporu 

10.9.      Güvenilirlik Ölçümü 

      10.9.1.    Yararlanılabilirlik Ölçümü

10.10.   Yazılım Emniyeti 200

10.11.      Bütünleştirici Süreçler

10.12.   Özet 

10.13.   Sorular

 

Bölüm 11.    DÜZENLEŞİM/KONFİGÜRASYON YÖNETİMİ 

11.1.     Sistem Düzenleşim Yönetimi

11.2.     Yazılım Düzenleşim Yönetimi

      11.2.1.    Düzenleşim Yönetim Planı

      11.2.2.    Düzenleşim Yönetim Sistemi

11.3.      Düzenleşim Yönetimi Süreci

      11.3.1.    Tanımlama 

      11.3.2.  Sürüm Denetimi

      11.3.3.    Değişiklik Denetimi

      11.3.4.    Değişiklik Denetim Süreci

11.4.      Düzenleşim Denetimi İle Geliştirme

11.5.     Ürün Çoğaltma

      11.5.1.  Belgelendirme

      11.5.2.    Ürün Teslimi

11.6.     Özet

11.7.     Sorular

 

Bölüm 12.    YAZILIM GELİŞTİRME YÖNTEMBİLİMLERİ

12.1.     Yazılım Geliştirme Standartlarının Geçmişi

12.2.     IEEE/EIA 12207 

      12.2.1.    Standardın Kullanımı

      12.2.2.    Yazılım Yaşam Süreci

             12.2.2.1.      Temel Süreçler

            12.2.2.2.      Destekleyici Süreçler

             12.2.2.3.      Örgütsel Süreçler

      12.2.3.    Destekleyici Standartlar

12.3.     Yazılım Geliştirme Süreçleri

12.4.     Belgeler

12.5.     Özet 

12.6.     Sorular

 

EKLER

 

A.  Yönetsel Öneriler

A.1.     Proje Yönetimi

A.2.     İnsan Kaynakları Planlaması

A.3.      Maliyet Kestirimi ve Planlama

A.4.     Metrik Kullanımı

A.5.      Kazanılmış Değerlerin İzlenmesi

A.6.     Nitelik Hedeflerinin İzlenmesi

A.7.      İsterlerin Yönetimi ve İzlenmesi

A.8.     Sistem Tabanlı Yazılım Tasarımı

 

B.  Geliştirmeye Yönelik Öneriler

B.1.      Tasarım 

B.2.      Gerçekleştirme 

B.3.      Sürekli Test  

B.4.      Sık Derleme ve Test

B.5.      Hata Ayıklama 

 

C.  Niteliği Artırma Önerileri

C.1.      İşlevsel Nitelik 

C.2.      Güvenilirlik   

C.3.      Bakım Kolaylığı

C.4.      Kullanışlı Sistem Geliştirme

 

D.  Arayüz Tasarım Önerileri

D.1.      Yüksek Nitelik 

D.2.      Kullanıcı Dostluğu 

D.3.      Güvenilirlik   

D.4.      Yardımlar   

D.5.      Hatalar ve Uyarılar

 

E.  Elektrik/Elektronik Mühendisleri Odası (EMO)

 

F.  IEEE

 

G. Türkçe – İngilizce Karşılıklar

 

KAYNAKÇA

 

DİZİN

 

http://www.tdk.com.tr/images_buyuk/f67/Algoritma-Gelistirme-ve-Veri-Yap_5767_1.jpg


Akademik bilimsel ve teknik kitapar, Üniversite Ders Kitaplarında Papatya Bilim Yayınevi