230 likes | 538 Vues
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
E N D
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.
YASAD (Türkiye Yazılım Sanayicileri Derneği) raporu verileri (2006) 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şturuyor “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 Tü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ü” raporuna göre: 2006 yılında Türk yazılım sektörünün ihracatı yüzde 20 oranında artarak 650 milyon dolara çıkacak.
YASAD (Türkiye Yazılım Sanayicileri 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ı.
Yazı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)
Yazılımın nitelikleri Yazılım geliştirilir veya tasarlanır; ama klasik anlamda imal edilemez Yazılım aşınmaz Pek çok yazılım özel oluşturulur; genelde varolan bileşenlerden yığılamaz
Donanımın Yetersizlik Eğrisi eskime Çocuk ölümü YETERSİZLİK SEVİYESİ zaman
Yazılımın ideal “yetersizlik eğrisi” YETERSİZLİK SEVİYESİ Eskiyene dek devam ediyor zaman
Yazılımın gerçek “yetersizlik eğrisi” YETERSİZLİK SEVİYESİ Gerçek eğri değişme İdeal eğri zaman
Yazılım Türleri Sistem Yazılımları Gerçek zaman Yazılımları İş Yazılımları Mühendislik ve Bilimsel Yazılımlar Gömülmüş Yazılımlar Kişisel Bilgisayarların Yazılımları Ağ yazılımları Yapay Zeka Yazılımları
YAZILIM SÜRECİ VE SÜREÇ MODELLERİ
Yazı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
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
Ş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
Ş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
Yazılım geliştirmenin gerçek süreci Yazılım geliştirme süreci safhaları
Evrimsel 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.
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
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
Evrimsel Geliştirme Paralel işlemler İlk sürüm çözümleme Sistemin ana hatlarının tanımlanması Aralık sürümler tasarım Nihai sürüm deneme
Evrimsel geliştirme-Prototip Geliştirme başlama bitiş Gereksinimlerin edinmesi ve arındırma hızlı tasarım Mühendis ürünü Prototip oluşturma Yeni prototipin tanımlanması Son kullanıcı değerlendirmesi
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 EvrimselGeliştirme (devamı)