23
Yazılım Sistemleri

Yazılım Sistemleri

  • Upload
    palma

  • View
    68

  • Download
    0

Embed Size (px)

DESCRIPTION

Yazılım Sistemleri. Yazılıma genel bakış Yazılım , yazılım mühendisi tarafından tasarlanır ve geli ş tirilir ; Yazılım toplumdaki hemen-hemen  her kişi tarafından kullanılmaktadır ; Yazılım geliştiriciler diğer insanlara zarar vermeyecek güvenilirli yazılım - PowerPoint PPT Presentation

Citation preview

Page 1: Yazılım Sistemleri

Yazılım Sistemleri

Page 2: Yazılım Sistemleri

Yazılıma genel bakış

•Yazılım, yazılım mühendisi tarafından tasarlanır ve geliştirilir;

•Yazılım toplumdaki hemen-hemen  her kişi tarafından kullanılmaktadır;

•Yazılım geliştiriciler diğer insanlara zarar vermeyecek güvenilirli yazılım geliştirmek için ahlaki yükümlülük taşımaktadırlar;

•Yazılım kullanıcılarını,  yalnız yazılım ürünlerinin beklentileri hangi seviyede karşıladıkları değil, aynı zamanda onların çalışmalarını ne kadar kolaylaştıracağı da düşündürmektedir.  

Page 3: Yazılım Sistemleri

YASAD (Türkiye Yazılım Sanayicileri YASAD (Türkiye Yazılım Sanayicileri Derneği) raporu verileri (2006) Derneği) raporu verileri (2006)

• Dünya bilişim sektörü 2.3 trilyon Euro hacme sahip, yazılım sektörü Dünya bilişim sektörü 2.3 trilyon Euro hacme sahip, yazılım sektörü ise bunun yaklaşık yüzde 25’ini oluşturuyorise bunun yaklaşık yüzde 25’ini oluşturuyor

• ““2015'te en az 2 milyar dolarlık yazılım ihracatının gerçekleştirilmesi, 2015'te en az 2 milyar dolarlık yazılım ihracatının gerçekleştirilmesi, yerli yazılım şirketlerinin küresel markalar olmaları, 2023'te ise yerli yazılım şirketlerinin küresel markalar olmaları, 2023'te ise Türkiye'nin ihracatçı güçleri arasında ilk 5'e girmesi amaçlanıyorTürkiye'nin ihracatçı güçleri arasında ilk 5'e girmesi amaçlanıyor

• İGEME (ihracatı geliştirme ve etüt Merkezi) “yazılım sektörü” İGEME (ihracatı geliştirme ve etüt Merkezi) “yazılım sektörü” raporuna göre: raporuna göre:

• 2006 yılında Türk yazılım sektörünün ihracatı yüzde 20 oranında 2006 yılında Türk yazılım sektörünün ihracatı yüzde 20 oranında artarak 650 milyon dolara çıkacak.artarak 650 milyon dolara çıkacak.

Page 4: Yazılım Sistemleri

YASAD (Türkiye Yazılım Sanayicileri YASAD (Türkiye Yazılım Sanayicileri Derneği) raporu verileri (2006) Derneği) raporu verileri (2006)

Dünyadaki yazılım harcaması 2007 yılında 740 milyar doları aşacak.Dünyada yazılım sektörünün önde gelen ülkeleri : ABD, Almanya, İngiltere,

Hindistan, İsrail, İrlanda ve İsveç. Türkiye, henüz bu ülkelerle yarışabilecek kapasitede değil, ancak hızla

yükselen ve gelişen bir sektöre sahip.

Türkiye’de yazılım sektörünün hacmi 2005 yılında 540 milyon dolara ulaştı.

Yazılım ihracatı yapılan ülkeler: ABD 2.2 milyon dolar, Almanya 2 milyon

dolar.

Yazılım ithalatına bakıldığında, ithalatta ABD ve AB ülkeleri başı çekiyor. Türkiye, 2005 yılında İngiltere’den 14.5 milyon dolar, Almanya’dan 13 milyon dolar ve ABD’den 11.8 milyon dolarlık ithalat yaptı.

Page 5: Yazılım Sistemleri

Yazılım projeleri ile bağlı diğer istatistiklerYazılım projeleri ile bağlı diğer istatistikler

• Kullanıcıların fikirlerini değiştirmesi nedeniyle tamamlanamayan yazılım projeleri tüm yazılım projelerinin yarısını oluşturuyor;

• Yazılım projelerinin neredeyse ¼’i gereksinimlerin değişmesi, zaman ve kaynak yetersizliği veya başka nedenlerle teslim edilemiyor

• Yazılım projelerinin yaklaşık 1/4 ‘i başarıyla teslim ediliyor;• Bakım: Sistemin yaşam devri süresince Yazılım projesine

harcanan çabanın % 70 ve daha fazlası yazılımın bakımına ve iyileştirilmesine ayrılıyor

• Teslim: Büyük yazılım projesinin kavramsal tasarımdan son kullanıcıya teslimine dek (veya gerçek kullanıma dek) geliştirilme maliyeti toplam maliyetin % 20-30’u arasındadır.Diğer faaliyetler (belgeleme, eğitim, destek, ağ tasarımı ve s) %70-%80 civarındadır.

• Ticari yazılım geliştiriciler, yılda 12.000 kod satırı yazıyorlar (kaynak: Wikipedia)

Page 6: Yazılım Sistemleri

Yazılımın nitelikleriYazılımın nitelikleri

• Yazılım geliştirilir veya tasarlanır; ama Yazılım geliştirilir veya tasarlanır; ama klasik anlamda imal edilemezklasik anlamda imal edilemez

• Yazılım aşınmazYazılım aşınmaz

• Pek çok yazılım özel oluşturulur; Pek çok yazılım özel oluşturulur; genelde varolan bileşenlerden genelde varolan bileşenlerden yığılamazyığılamaz

Page 7: Yazılım Sistemleri

Donanımın Yetersizlik Eğrisi

YETERSİZLİK SEVİYESİ

zaman

Çocuk ölümü eskime

Page 8: Yazılım Sistemleri

Yazılımın ideal “yetersizlik eğrisi”Yazılımın ideal “yetersizlik eğrisi”

YETERSİZLİK SEVİYESİ

zaman

Eskiyene dek devam ediyor

Page 9: Yazılım Sistemleri

Yazılımın gerçek “yetersizlik eğrisi”Yazılımın gerçek “yetersizlik eğrisi”

• YETERSİZLİK SEVİYESİ

zaman

İdeal eğri

değişme

Gerçek eğri

Page 10: Yazılım Sistemleri

Yazılım TürleriYazılım Türleri

• Sistem YazılımlarıSistem Yazılımları

• Gerçek zaman YazılımlarıGerçek zaman Yazılımları

• İş Yazılımlarıİş Yazılımları

• Mühendislik ve Bilimsel YazılımlarMühendislik ve Bilimsel Yazılımlar

• Gömülmüş YazılımlarGömülmüş Yazılımlar

• Kişisel Bilgisayarların YazılımlarıKişisel Bilgisayarların Yazılımları

• Ağ yazılımlarıAğ yazılımları

• Yapay Zeka YazılımlarıYapay Zeka Yazılımları

Page 11: Yazılım Sistemleri

YAZILIM SÜRECİ VE YAZILIM SÜRECİ VE

SÜREÇ MODELLERİSÜREÇ MODELLERİ

Page 12: Yazılım Sistemleri

Yazılım süreciYazılım süreci• Yazılım Sistemlerinin belirtilmesi, tasarlanması,

çalıştırılması ve denetimi için gereken faaliyetlerin uyumlu kümesi

• Faaliyetler: - Yazılım sisteminin tanımlanması ve çözümleme -

yazılımın işlevselliği ve işlemlere koyulmuş sınırlamalar tanımlanmalıdır– Tasarım (Geliştirme) –gereksinimleri sağlayan yazılım

üretilmelidir– Deneme –müşteri isteklerinin karşılandığına emin olmak için yazılım

doğrulanmalıdır

– Çalıştırma ve bakım– Yazılımın evrimi –müşterinin değişen isteklerinin sağlana

bilmesi için yazılım gelişe bilmelidir

Page 13: Yazılım Sistemleri

• Yazılım süreci modeli sürecin basitleştirilmiş soyut tasviridir.O, her hangi özgü açıdan süreci ifade eder. Yazılımın geliştirilmesi için kullanılan genel modeller:

• Şelale modeli– Faaliyetlere bağımsız süreçler gibi bakılıyor

• Evrimsel geliştirme– Kullanıcı ve sistem gereksinimleri evrimsel

olarak karşılanmaktadır

Yazılım Geliştirme Modelleri

Page 14: Yazılım Sistemleri

Şelale ModeliŞelale Modeli

Page 15: Yazılım Sistemleri

Şelale Modelinin safhalarıŞelale Modelinin safhaları

• Gereksinimlerin çözümlenmesi ve tanımlanması

• Sistem ve yazılım tasarımı• Birim ve bütünleşme denemesi• Sistem ve teslimat denemesi• Çalıştırma ve bakım• Şelale modelinin yetersiz yönü, süreç

tamamlandıktan sonra değişikliklerin yapılmasının zorluğudur

Page 16: Yazılım Sistemleri

Şelale Modelinin sorunlarıŞelale Modelinin sorunları

• Projenin farklı aşamalara esnek biçimde bölünmemesi; Bu, değişen müşteri gereksinimlerini yerine getirmekte zorluklar yaratır

• Bu nedenle, şelale modeli, gereksinimlerin yalnız çok iyi tanımlandığı takdirde uygun modeldir

Page 17: Yazılım Sistemleri

Yazılım geliştirmenin gerçek süreci

Yazılım geliştirme süreci safhaları

Page 18: Yazılım Sistemleri

Evrimsel GeliştirmeEvrimsel Geliştirme

• Temel düşünce: ilkin bir çalışma yapmak,bunu müşteri görüşüne sunmak, bu görüşleri de dikkate alarak sistemin son gereken halini alana dek sürümlerini geliştirmek

• Açınsama (Exploratory)Geliştirmesi – Müşteri ile birlikte çalışarak gereksinimlerin açınsaması; başlangıç

ana hatlarıyla verilmiş belirteçten son sisteme doğru evrimsel geliştirme yapılması. Sistemin anlaşıla bilir kısmı ile başlanılmalıdır. Müşterinin önerdiği yeni özellikleri ilave etmekle evrimleşmelidir.

• Prototip geliştirme– Hedef- müşteri gereksinimlerinin anlaşılması; sistem için en iyi

gereksinim tanımlanmasının geliştirilmesi; müşteri gereksinimlerinin zayıf anlaşılır kısımları üzeride denemelere odaklanıyor.

Page 19: Yazılım Sistemleri

Evrimsel geliştirme yaklaşımları arasındaki farklar

• Açınsama yaklaşımında hedef çalışır sistemi son kullanıcıya teslim etmektir. Daha iyi anlaşılır ve yüksek öncelikli gereksinimlerle başlanılır. Zayıf öncelikli ve kesin anlaşılmayan kısımlar yalnız kullanıcı isteği ile çalıştırılır.

• Prototip yaklaşımında ise hedef sistem gereksinimlerinin geçerliliğini yoklamaktır. Zayıf anlaşılabilir gereksinimlerle başlamanın nedeni onları daha iyi anlamaktır. Çok iyi anlaşılan gereksinimler için prototipe gerek yoktur

Page 20: Yazılım Sistemleri

Evrimsel geliştirme yaklaşımları arasındaki farklar

• Açınsama yaklaşımında hedef çalışır sistemi son kullanıcıya teslim etmektir. Daha iyi anlaşılır ve yüksek öncelikli gereksinimlerle başlanılır. Zayıf öncelikli ve kesin anlaşılmayan kısımlar yalnız kullanıcı isteği ile çalıştırılır.

• Prototip yaklaşımında ise hedef sistem gereksinimlerinin geçerliliğini yoklamaktır. Zayıf anlaşılabilir gereksinimlerle başlamanın nedeni onları daha iyi anlamaktır. Çok iyi anlaşılan gereksinimler için prototipe gerek yoktur

Page 21: Yazılım Sistemleri

Evrimsel GeliştirmeEvrimsel Geliştirme

ValidationFinal

version

Development Intermediateversions

Specification Initialversion

Outlinedescription

Concurrentactivities

Sistemin ana hatlarının

tanımlanması

Paralel

işlemler

çözümleme

tasarım

deneme

İlk

sürüm

Aralık sürümler

Nihai sürüm

Page 22: Yazılım Sistemleri

Evrimsel geliştirme-Prototip Evrimsel geliştirme-Prototip GeliştirmeGeliştirme

başlama başlama

Gereksinimlerin edinmesi ve arındırma

hızlı

tasarım

Prototip

oluşturma

Son kullanıcı değerlendirmesi

Yeni prototipin tanımlanması

Mühendis

ürünü

bitiş

Page 23: Yazılım Sistemleri

• Sorunlar

– Geliştirme sürecini bütünlükle görmek mümkün olmaya bilir

– Sistemler çoğu zaman zayıf yapılanmış oluyorlar– Özel marifetler (örneğin, hızlı prototipler oluştura bilen

diller) gereke bilir• Uygulana bilirlik

– Küçük ve orta boyutlu etkileşimli sistemler için– Büyük sistemlerin kısımları için (örneğin, kullanıcı

arayüzü)– Kısa yaşam devirli sistemler için daha uygundur

Evrimsel Geliştirme (devamı)