24
x Yazılım Nedir Yazılım - Tanımlanmış bir işlevi yerine getiren, - Girdi ve Çıktıları olan, - Herhangi bir donanım üzerinde çalışan, - Bilgisayar programı veya programlarından ve - Kullanım ve bakım kılavuzları gibi belgelerden oluşan bir üründür.

Yazılım Nedir

Embed Size (px)

DESCRIPTION

Yazılım Nedir. Yazılım. - Tanımlanmış bir işlevi yerine getiren, - Girdi ve Çıktıları olan,. - Herhangi bir donanım üzerinde çalışan, - Bilgisayar programı veya programlarından ve - Kullanım ve bakım kılavuzları gibi belgelerden oluşan bir üründür. - PowerPoint PPT Presentation

Citation preview

Page 1: Yazılım Nedir

x

Yazılım Nedir

Yazılım

- Tanımlanmış bir işlevi yerine getiren, - Girdi ve Çıktıları olan,

- Herhangi bir donanım üzerinde çalışan, - Bilgisayar programı veya programlarından ve - Kullanım ve bakım kılavuzları gibi belgelerden oluşan bir üründür.

Page 2: Yazılım Nedir

x 2

Yazılım Mühendisliği (YM) - Nedir

IEEE Bilgisayar Topluluğunun Yazılım Mühendisliği Tarifi:

“Mühendislik eylemlerinin, (Geliştirme, İşletme, ve Bakım), disiplinli, sistematik ve nicelikli bir şekilde yazılıma uygulanması”

Page 3: Yazılım Nedir

x

YM - Önemi

• Yazılımın hayatımıza girmediği yer var mı?• Yazılımsız hayat nasıl olurdu?• Yazılım ve Eğitim• Yazılım ve Ekonomi• Yazılım ve Haberleşme• Yazılımın verimliliğe katkısı• Yazılımın kültüre etkisi

Page 4: Yazılım Nedir

x

YM - Tarihçesi

• İlk Bilgisayarlar ve Makine ve Assembly Dili• İşletim Sistemleri ve Anabilgisayarlar (Mainframe),

Kart okuyucuları• DOS ve PC’ler• Derleyici (Compiler) ve Yorumlayıcılar (Interpreter)

ve Yeni nesil yazılım dilleri• Windows• Yarı İletken teknolojisinin fiyat ve boyutlara etkisi• Veri haberleşmesindeki gelişmeler• İnternet

Page 5: Yazılım Nedir

x

Yazılım Süreçleri

• Gereksinim Belirtimleri (Requirements Specifications)

• Tasarım (Design)

• Kodlama (Coding)

• Test (Test - Validation)

• İşletim ve Bakım (Operation and Maintenance)

• Proje Yönetimi• Kalite Yönetimi• Düzenleşim (Konfigürasyon)/Değişim Yönetimi

Page 6: Yazılım Nedir

x

Yazılım Geliştirme Modelleri

Şelale Modeli (Waterfall Model) - Klasik/Geleneksel

Döngüsel Model (Cyclic Model) - Prototip - Küçük Ölçek

Artımlı Geliştirme (Incremental Development) - Öncelikli Gereksinimler

Evrimsel Geliştirme (Evolutionary Development) - Aşırı Programlama (XP - Extreme Programming)

Bileşen-Bazlı Geliştirme (Component-Based Dev)

- Tekrar Kullanılabilir Bileşenler (Reusable Components) Temiz Oda Modeli (Clean-Room Approach)

- Her aşamada hata önleme (Hata ayıklama ve temizleme yerine)

Page 7: Yazılım Nedir

x

Şelale Modeli

Gereksinimler

Tasarım

Kodlama

Test

Bakım/Destek

Proje Yönetimi

Kalite Yönetimi

Konfigürasyon Yönetimi

Page 8: Yazılım Nedir

x

Döngüsel Model

K

K

G T G

T

Proje Yönetimi

Kalite Yönetimi

Konfigürasyon Yönetimi

Page 9: Yazılım Nedir

x

Artımlı Geliştirme

Faz 1 G K T

Faz 2 G K T

G K T Faz 3

Proje Yönetimi

Kalite Yönetimi

Konfigürasyon Yönetimi

Page 10: Yazılım Nedir

x

ACM/IEEE Etik Kuralları

ABD’de profesyonel gruplar bir araya gelip etik kurallarını oluşturmuşlardır.

Bu gruplara üye olurken, bu kuralların altını imzalamanız gerekir.

Bu kurallar Tüm Yazılım Mühendislerinin (pratisyen, eğitimci, yönetici, şef, politika belirleyici, ve stajyerler) davranış ve kararlarında uyması gereken sekiz prensipten oluşmaktadır.

I. Sommerville’in Softare Engineering Ders Notları sunumundan çevrilmiştir.

Page 11: Yazılım Nedir

x

Etik Kuralları - Giriş

• Bu kuralların kısa açıklamaları özet halinde verilmiştir. Detaylı sürümü daha geniş ve örnekli açıklamaları içermektedir. Bu detay ve örneklerin yokluğunda kısa açıklamalar kuru ve boş gelebilir.

• Yazılım Mühendisleri kendilerini yazılımın her aşamasını faydalı ve saygın bir meslek kılmaya adayacaklardır. Yazılım Mühendisleri, umumun sağlık, emniyet ve yararı için, aşağıdaki sekiz prensibe uyacaklardır:

Page 12: Yazılım Nedir

x

Etik Kuralları - Prensipler

UMUM - Yazılım Mühendisleri halkın yararına uygun hareket

edeceklerdir.

MÜŞTERİ VE İŞVEREN - Yazılım Mühendisleri müşteri ve işverenin çıkarlarını halkın

yararlarına uygun olarak gözeteceklerdir.

ÜRÜN - Yazılım Mühendisleri ürünlerinin ve uyarlamalarının

mümkün olan en üstün profesyonel standartlara uygunluğunu sağlayacaklardır.

Page 13: Yazılım Nedir

x

Etik Kuralları - Prensipler

MUHAKEME - Yazılım Mühendisleri tüm muhakemelerinde bütünlük ve

bağımsızlıklarını koruyacaklardır.

YÖNETİM - Yazılım Mühendisliği yöneticileri ve liderleri yazılım

geliştirme ve bakımında etik yaklaşımları benimseyip destekleyeceklerdir.

MESLEK - Yazılım Mühendisleri mesleğin şöhretini ve bütünlüğünü

halkın yararına ileri seviyelere taşıyacaklardır.

Page 14: Yazılım Nedir

x

Etik Kuralları - Prensipler

ÇALIŞMA ARKADAŞLARI - Yazılım Mühendisleri çalışma arkadaşlarına adil

davranacaklar ve destek olacaklardır.

KENDİSİ - Yazılım Mühendisleri hayatları boyunca mesleklerini daha

iyi yapabilmek için öğrenme içinde olacaklar ve icraatlarında etik yaklaşımları önde tutacaklardır.

Page 15: Yazılım Nedir

x

Etik Problemleri

• Üst yönetiminizle düşünce farkının oluşması• İşvereniniz Güvenlik-Kritik bir sistemi yeterli testlerini

yapmadan müşteriye teslim etmenizi istemesi• Askeri amaçlı nükleer silah yapımında çalışmak.

Page 16: Yazılım Nedir

x

Sistem Mühendisliği

Tüm sistemin işlevsel, işletimsel ve davranış özelliklerini gösteren belge, prototip veya model yaratma.

Sistem sadece yazılım değildir:

-Yazılım -Donanım-Veri Tabanı-Süreçler

-Dokümanlar/Kılavuzlar

-İnsanlar (Kullanıcılar ve Sistem Yöneticileri)

Page 17: Yazılım Nedir

x

Sistem Özellikleri:

• İşlevsellik (Functionality)• Güvenirlilik (Reliability)• Güvenlik (Security)• Emniyet (Safety)• Başarım (Performance)• Esneklik (Flexibility)• Ölçeklenebilirlik (Scalability)• Taşınabilirlik (Portability)• Yararlanırlık (Availability)• Kullanılabilirlik (Usability)

Page 18: Yazılım Nedir

x

Gereksinimler (Requirements)

• Elde edilmesi (Elicitation)• Analizi (Analysis)• Uzlaşılması (Negotiation)• Belirtilmesi (Specification)• Doğrulanması (Verification)• Yönetilmesi (Management)Kalite Yönetimi Değişim Yönetimi

Page 19: Yazılım Nedir

x

Gereksinimler - Elde Edilmesi

Sistemin olurluğunu teknik ve iş açısından araştırSistemden fayda sağlayacakları ve bakış açılarını belirle (Kullanıcılar, yöneticiler, planlama, …) Sistemin yaşayacağı teknik ortamı belirle (donanım, işletim

sistemi, haberleşme ortamı, …) Alanın getirdiği kısıtlamaları belirle (standartlar, anlaşmalar, …)Gereksinim toplama yöntemlerini belirle (teke tek görüşme, toplantı, anket, …) Tüm fayda sağlayanlardan belirlenen yöntemlerle

gereksinimleri toparla Tam tanımlanamayan gereksinimleri prototiplemeye aday

olarak belgele Kullanım senaryoları ile müşterilerin gereksinimleri daha kolay

belirtmesini sağla

Page 20: Yazılım Nedir

x

Gereksinimler - Analiz

Problemi tümüyle anlamak ilk aşamaHer gereksinimin kaynağını ve nedenini belirtDeğişik bakış açıları kullan

- prototip, veri, işlevsel, davranış modelleri İşlev gruplarını ve hiyerarşisini belirle

- ana fonksiyon, fonksiyon, alt fonksiyon, … Gevşek tanımları sıkılaştır Öncelik sırasını belirle

Page 21: Yazılım Nedir

x

Gereksinimler - Uzlaşılması

• Kontrat dışı istekler• Müşteri gruplarının çelişkili istekler• Öncelik sırasındaki uzlaşmazlıklar• İsteklerin teknoloji ile çelişmesi• Fazların içeriği

Page 22: Yazılım Nedir

x

Gereksinimler - Belirtilmesi

YGB - Yazılım Gereksinim Belirtimleri (SRS - Software Requirements Specifications)Grafiksel Model

YTD - Yazılım Tanımlama Dili (SDL - Software Description Language)

Kullanım Senaryoları (Use Cases) Form Tabanlı Belirtimler

Page 23: Yazılım Nedir

x

Gereksinimler - Yöntemler

FAST (Facilitated Application Specification Technique)

-Toplantı- Müşteri ve Yazılım Müh.- İş Ortamı Dışında- Hazırlık ve Katılım kuralları önceden belirlenmiş- Gündem- Tüm konuları kapsayan fakat serbest fikir alışverişini sağlayan -Toplantı gidişatı Uzlaştırıcı tarafından yönetilen- Bilgi Mekanizması (Kara Tahta, Duvar, Sanal Ortamlar, …)- Amaç- Uzlaşılmış çözüm gereksinimleri ve öncelikleri

Page 24: Yazılım Nedir

x

Gereksinimler - Yöntemler

QFD (Quality Function Deployment) Müşteri İstekleri Varsayılan İstekler Heyecanlandıran İstekler

- İşlev Tanımlama - Hangi işlevlerin ne yapacağı ve değerleri

- Bilgi Tanımlama - Sistemin kullanacağı ve üreteceği veri nesneleri ve olaylar

- Görev Tanımlama - Sistemin ortamında nasıl davranması gerektiği

- Değer Analizi - Yukarıdaki aşamalarda tanımlanan gereksinimlerin önem ve öncelik sırasının belirlenmesi