400 likes | 770 Views
Proje Geliştirmede Sistem Yaklaşımı. Ne öğrenilecek. Sistemin tanımı. Sistemin Temel özellikleri Sistemin yapısı Sistem Geliştirme süreci Yazılım sistemleri Yazılım Geliştirme süreci. Sistemin tanımı.
E N D
Ne öğrenilecek • Sistemin tanımı. • Sistemin Temel özellikleri • Sistemin yapısı • Sistem Geliştirme süreci • Yazılım sistemleri • Yazılım Geliştirme süreci
Sistemin tanımı • Sistem,bir amaca yönelik olarak bir araya gelen ve aralarında düzenli ilişkiler bulunan öğelerin oluşturmuş oldukları bir bütündür • Sistem yaklaşımı, sistem ve alt sistemlerin uyumlu, verimli bir biçimde çalışmalarını sağlar • Sistem yaklaşımı, proje yönetiminde bir düşünce yolu olup projenin başarılı yönetimi için gereklidir • Sistem yaklaşımı sorunu bir bütün olarak ele alan ,hedefleri ve amaçları düzenleyen ve sonucu değerlendiren bir yaklaşımdır
Sistemin temel özellikleri • Her sistem alt sitemlerden oluşur. Sistem içinde yer alan daha küçük sistemler alt sistemler olarak adlandırılır. • Bir alt sistem diğer alt sisteme doğrudan ve ya dolaylı bağlıdır. • Alt sistemler kendi içinde bir bütünlük oluşturan ve kapsamı içinde oldukları sistemin amacı doğrultusunda çalışan sistemlerdir. • Her altsistemin amacının gerçekleştirilmesi bütün olarak sistemin amacının gerçekleştirilmesidir
Sistemin temel özellikleri-devamı • Her sistemin hedefleri ve amaçları vardır.Sistemin etkinliği ve verimliliğini değerlendirmek için sistemin amaçlarının iyi tanımlanmış ve ölçülebilir olması gerekmektedir. • Her sistemin yapısı farklıdır. Yapılarına göre sistemler açık ve kapalı; canlı ve cansız; doğal ve yapay ola bilir.
Sistemin temel özellikleri-devamı • Sistemin ve altsitemlerin girdisi,işlem süreci ve çıktısı vardır. • Her hangi bir altsistemin girdisi diğer bir altsistemin çıktısını ve herhangi bir altsistemin çıktısı diğer bir alt sistemin girdilerini oluşturablir • Sistemde varolan girdi, çıktı ve işlem unsurları o sistemin genel yapısını oluşturur. girdi çıktı İşlem Verimlilik Tasarruf karlılık Bilgi Çevre enerji Bilgi Geri besleme Sistemin genel yapısı
Sistemin genel yapısı • Sistemin girdileri; 3 grup: • Bilgi- bilgi sistemin temeli ve yüküdür; sistemin yükü örneğin, bir hastanedeki hastalar, bir okuldaki öğrencilerdir • Sistemin işlevini etkileyen çevresi; çevre, denetim dışı etkilerden oluşur. Bunun değiştirilmesi mümkün değildir. Ama sistemin tasarımında bu etkiler göz önüne alınmalıdır; yerçekimi, yasalar, iktisadi durum… • Enerji, para, yönetim, insan gücü,arsa, araç-gereç… • İşlem bölümü; Bu bölümün amacı sistemin amacı ile eşdeğerlidir. Çeşitli girdileri önceden tanımlanmış bir çıktıya dönüştürme işlemi yapar. Sistemin başarısı sistemin güvenilir olmasına bağlıdır. Sistemin güvenilir olması ise çıktıyı üretebilmesidir. • Sistemin çıktıları:örn., bir otomobil fabrikasında belirli bir zamanda üretilen otomobil sayısı ve kalitesidir
Sistem geliştirme süreci • Sistem geliştirme aşağıdaki 5 aşamada gerçekleştirilir. • Ön çözümleme • Sistem çözümlemesi • Sistem Planlaması • Sistemi gerçekleştirme • Sistemin başlatılması • İzleme ve değerlendirme- tüm aşamalar boyunca yapılaması gereken sürekli bir görevdir
Ön çözümleme • Projenin temel belgeleri hazırlanır; belgelerde proje programında belirtilen hususların ön çözümlemesi yapılır • Sorunun çözümü için , ön çözümleme sonuçları şematik bir biçimde ortaya konulur. Eğer çözümleme sonuçları tasarısında yeni bir sisteme gerek olduğu ortaya çıkarsa, taslak yeniden ele alınır , görev ve sorunlar tanımlanarak sonuçlandırılır. • Ön çözümleme sonuçları: • Hedeflenen sistemin amacı, görevleri, maliyet, ve diğer gerekler • Sorunların tanımı ve çözüm yolları • Sistemin bölümleri ve görevlerinin tahlili • Geçici bir proje yapısının hazırlanması • Projenin tümüne ilişkin zaman ve maliyet tahmini yapılması • Bunun sonunda hazırlanan ön çözümleme raporunda sistem çözümlemesine gerek olup olmadığı belirtilir
Sistem çözümlemesi • Görevler, ön çözümlemede belirlenmiş bulunan hedeflenen sistemden türetilir ve düzenlenir. • Görev türü ve niteliği çözümlenir; • sorunlar, stratejiler, hedefler belirlenir; • Ön çözümlemedeki çözüm yollarına dayanılarak öngörülen bir tasarı geliştirilir • Sistem ve bölümlerinin işlevleri ve sistemin çevresi çözümlenir • Bilginin toplanması,tahlili, yorumlanması, düzenlenmesi ve çerçevesinin belirlenmesi yapılır • Sistem değişikliklerinin olası etkileri incelenir; • Proje taraflarına sistemin verimliliği ve ekonomikliği konusunda bilgi vermek için taslak hazırlanır; • Taslak, sistemin planlanması aşamasında “çalışma planı” olarak kullanılabilecek biçimde hazırlanmalıdır • Tüm görevler sıralanmalı ve zayıf noktalar belirlenmelidir • Bilgisayar donanımı ve yazılımı konusundaki görüşler de taslakta yer almalıdır
Sistem planlanması • Proje şemalarının tanımlanması ve ve sistemin niteliklerinin belirlenmesinde aşağıdakilerden yararlanılır: • Sistemin gerekçesi • Sistemin teknik özellikleri • Sistemin bölümleri ve basamakları • Deneme • Sistemin başlatılmasına ilişkin program
Sistem geliştirme • Önceki aşamada belirlenen ve çıkarılan sonuçlar tüm ayrıntılarıyla işlenip gerçekleştirilir • Yeterlik denemeleri yapılır • İlk prototip kullanım koşulları altında denenir. Eğer gerçekleşme olumlu ise uygulama belgeleri hazırlanır
Sistemin uygulanması • Sistem uygulamaya konulur • “sistem planlama “ aşamasında gerçekleştirme ile ilgili plan esasında sistemin bölümlerinin kurulma sırası, çalışanlar ve araçlar konusundaki bilgiler ,uygulama ile ilişkin hususlar belirlenir • Bu aşama için projenin gerçekleştirilmesi sırasında kullanılacak el kitapları, belgeler, işletme kılavuzları, eğitim programları hazırlanmalıdır • Tüm koşullar yerine getirildikten sonra sistemin denenmesi yapılır
Yazılıma genel bakış • Yazılım=program + programın kullandığı ve ürettiği veriler + program belgeleri (yardım ve açıklamalar) • Yazılım,yazılımmühendisitarafındantasarlanırvegeliştirilir; • Yazılımtoplumdakihemen-hemen her kişitarafındankullanılmaktadır; • Yazılımgeliştiricilerdiğerinsanlarazararvermeyecekgüvenilirliyazılım • geliştirmekiçinahlakiyükümlülüktaşımaktadırlar; • Yazılımkullanıcılarını, yalnızyazılımürünlerininbeklentilerihangiseviyedekarşıladıklarıdeğil,aynızamandaonlarınçalışmalarını ne kadarkolaylaştıracağı da düşündürmektedir.
Dünya ve Türkiye Bilişim 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ş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. *Bu sunudaki veriler YASAD (Türkiye Yazılım Sanayicileri Derneği) raporlarından alınmıştır
Türkiye Bilişim Pazarı Bilişim Pazarında Hızlı Büyüme – Bileşik Yıllık Büyüme Oranı (CAGR) 2002 ile 2010 arasında %14 ve 2011 yılında 30,5 milyarı* geçti Yazılım sektörüne artan ilgi – girişimcilik ve araştırma destekleri üzerine yeni kanunlar hazırlanıyor Genç ve dinamik Türkiye nüfusu – Yeni ürünlere sürekli artan talep Bir çok Avrupa ülkesinin üzerinde bilişim kullanıcısı – Mobil alanında yüksek kullanıcı sayısı; İnternet kullanımı 50 milyon aboneyi buldu Hızlı Büyüyen Bilişim Firmaları – 2010 Deloitte Teknoloji Fast500 EMEA değerlendirmesinde ilk 500 firma arasında 28’i Türk firması Diğer – 1,5 Milyon’dan fazla KOBİ’nin bilişim kullanma kapasitesinin varlığı
Yazılım Harcamaları ,ithal ve ihracatı Dünyadakiyazılımharcaması 2007 yılında 740 milyardolarıaşacak. Dünyadayazılımsektörününöndegelenülkeleri: ABD, Almanya, İngiltere, Hindistan, İsrail, İrlandaveİsveç. Türkiye, henüzbuülkelerleyarışabilecekkapasitededeğil, ancakhızlayükselenvegelişenbirsektöresahip. Türkiye’deyazılımsektörününhacmi 2005 yılında 540 milyondolaraulaştı. Yazılımihracatıyapılanülkeler: ABD 2.2 milyondolar, Almanya 2 milyondolar. 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 süreli sistemler için daha uygundur EvrimselGeliştirme (devamı)