Sistem Analizi ve Tasarımı Sistem Nedir? Bir hedef veya amacı gerçekleştirmek için bir arada çalışan birbirleriyle ilişkili parçalardan oluşan girdi-çıktıları olan sınırları belirlenmiş bir bütündür. Bileşen: Sistemin Elemanıdır. İlişki: Sistemin bileşenleri arasındaki her türlü akış. Amaç: gereksinimlerin karşılanması olarak ifade edilebilir. Sistemin Temel Özellikleri Nelerdir? Bileşen: Sistemi oluşturan parçalardır. Değişkenler: Sistemin özellikleridir. (Bağımsız-Bağımlı, Denetlenebilir-Denetlenemez, İçsel-Dışsal, Girdi-Çıktı) Parametreler: Sistem içinde Sabit Kalan Değerler İlişkiler: sistemin değişken, parametre ve bileşenleri arasındaki bağlantılardır. (Yapısal, İşlevsel, Sırasal) Sınır: Sistemin ortamını belirler. Arabirim: Sistemin ortam veya alt sistemlerin birbirleri ile karşılaştığı yerdir. Kısıtlar: değişkenlerin değerleri olarak düşünülebilir. Ölçüt: sistemin amacı karşılama durumu olarak tanımlanabilir. Ortam: Sistemle etkileşimde olan sistem dışında kalan her şeydir. Genel Sistem Teorisi Nedir? • • • • • • • Bilgi sistemi veriyi bilgiye dönüştürür. Sistemler Disiplinler arasıdır. Sistemin elemanları arasında etkileşimi vardır. Sistemler farklı elemanlardan oluşur. Sistemler hiyerarşiktir. Yani sistemler alt sistemlerden oluşur. Sistem ortamına göre düzenlenmelidir. Sistem amaç içindir. Her sistemin belli bir amacı vardır. Sistem ve Ortam Örneğin Bir bina sisteminin alt sistemleri ısıtma sistemi, enerji sistemi, su sistemi, güvenlik sistemi ve aydınlatma sistemidir. Yani ortamın kendisi bir sistem olabilir. Sistemin var olma nedeni ortamda değişiklik yapmaktır. Bir sistem ve ortam arasında doğrudan veya genellikle dolaylı bir ilişki vardır. Bilgi Sistemleri Bilgi Sistemi, organizasyonda kontrolü sağlayarak bilgiyi karar almada kullanmak üzere; toplamak, saklamak, işlemek ve dağıtmak için oluşturulan ilişkisel elemanlar kümesidir. Bilgi Sistemi Türleri Nelerdir? • • • • • • İşlemsel bilgi sistemleri Yönetim bilgi sistemleri Ofis otomasyon sistemleri Karar destek sistemleri Üst yönetim bilgi sistemleri Bilgi tabanlı iş sistemleri İşlemsel Bilgi Sistemleri: diğer bilgi sistemleri için giriş oluşturmak amacıyla veriyi sınıflayan, saklayan, bakımını yapan, değiştiren, güncelleştiren ve geri çağıran bilgisayar destekli sistemlerdir. Yönetim Bilgi Sistemleri: Yöneticilere planlama, kontrol etme ve karar vermeyi kolaylaştırmak amacıyla bilgi sağlayan sistemlerdir. Karar destek ve ofis otomasyon sistemlerini kapsar. İşlem, Yönetim ve işlev boyutları var. Karar Destek Sistemleri: karar verme görevlerini desteklemek için kullanılan etkileşimli sistemlerdir. Karar verme sürecinin tüm aşamalarında destek sağlamaktadır. Esnek analiz yöntemleri ile çözüm getirir. Ofis Otomasyon Sistemleri: Büro işlemlerini elektronik olarak gerçekleştirmeyi sağlayan bütünleşik bilgisayar sistemlerine denir. Yerel ağlar, büro içi hızlı haberleşme ve ortak kullanım bakımından ihtiyaç duyulmaktadır. Üst Yönetim Bilgi Sistemleri: organizasyonun stratejik seviyesinde kullanılır işletme dışı verileri de içine alarak yönetim bilgi sistemleri ve karar destek sistemlerinden de işetme içi bilgileri alır. Üst yönetime rakip analizi fırsat takibi ve sorunların bulunması gibi değerlendirmelerde bilgi sağlar ve ileriye dönük tahminlerde bulunur. OLAP ve Drill down analizleri kullanılarak veri madenciliği gerçekleştirir. Bilgi Tabanlı iş Sistemleri: araştırmacının yerini almadan araştırmanın sonuçlarını bilgi sistemiyle birleştirerek daha verimli kullanılmasını sağlar. Bilgisayar Destekli Dizayn bilgi tabanlı iş sistemlerine en güzel örnektir. Bilgi Sisteminin Tarafları? Genel olarak bilgi sisteminin tarafları: Kullanıcı, Yönetici, Programcı, Bilgi sistemi destek personeli, Analist Kullanıcı: oluşturulan sistemi kullanacak olanlardır burada müşteri olarak tanımlanabilir. Yönetici: Proje yöneticisi ve İşletme yöneticisi olarak iki grupta tanımlanabilir. Programcı: Sistemi kodlayıp geliştiren kişidir. Bilgi sistem destek personeli: sistemin sorunsuz çalışmasını sağlamak için her türlü desteği vermekten sorumlu. Sistem analisti: sistemin tam anlamıyla nasıl oluşacağını belirlemekten sorumludur. Analistin Problem Çözümüne yaklaşımı Problemi araştırmak ve anlamak, çözüm maliyetlerine karşılık sağlayacağı faydaları belirlemek, çözüm ihtiyaçlarını belirlemek, alternatif çözümler bulmak, en iyi çözümü belirlemek, seçilen çözüm ayrıntılarını belirlemek, çözümü uygulamak, istenilen sonuçların elde edildiğinden emin olmak. Sistem Analistinin Yararlandığı Kaynaklar Sistemin Hedefi, Zaman ve Maddi Kısıtlamalar, Kalite Faktörleri, Teknoloji, Üretim planlaması, Pazar ve Rekabet Analistin Teknik bilgi ve becerisi Hiç kimsenin teknolojinin her alanında bilgi sahibi olması beklenemez temel düzeyde bir analistin: Donanım, Programlama Dilleri, İşletim Sistemleri, Veri tabanı yönetim sistemleri, Haberleşme Protokolleri Konusunda bilgi sahibi olması gerekmektedir. Analistin Yönetim ve İş Bilgi, Beceri Analistin organizasyon yapısına ve işin işleyişine hâkim olması gerekmektedir. Kurumun sektörü, hedefleri, stratejileri, planları ve kurum kültürünün analist tarafından anlaşılması şarttır. Ayrıca Kaynak, proje, risk ve değişim yönetimleri konusunda bilgi ve beceriye sahip olmalı. Analistin İnsan İlişkileri Sistem analistleri işletmenin çalışanları ile takım çalışması içinde uyumlu olarak çalışması gerekir. Bu nedenle bir analistin insan ilişkileri son derece önemlidir. İnsanlarla rahat iletişim kurup, onları dinleyerek sorunları ortaya koyması gerekir. Sistem Geliştirme Süreci ve Modelleri Sistem geliştirme süreci adımları: Problemin tanımı, Fizibilite Çalışması, Analiz, Genel Tasarım, Ayrıntılı Tasarım, Gerçekleştirme, Bakım Sistem geliştirme modelleri: Klasik Süreç, Model Oluşturma, RAD Modeli, Evrimsel Süreç ve Aykırı programlama Klasik Süreç: müşteriden alınan amaç, hedef ve gereksinimler ile Sistem Mühendisliği Analiz Tasarım Kodlama Test Bakım aşamalarının gerektiğinde geri besleme yoluyla güncellenerek tamamlanması. Çok ilkel bir yöntem olması yanında gelişigüzel geliştirme yanında çok tutarlı ve güvenli bir yöntemdir. Model Oluşturma: Sistem analisti ile müşteri bir araya gelerek amaç ve hedefler belirlenip gereksinimler saptanır. Bu bilgiler ile analist bir taslak tasarım hazırlar. Bu taslak üzerinde analist ve müşteri görüş alış-verişinde bulunur. Bunun sonunda sistem modeli ortaya çıkar. Model üzerinde gereksinimler belirlenir ve yazılım üretilir. Gereksinim Derlenmesi Taslak Tasarım Model Oluşturma Gereksinimlerin işlenmesi Yazılım üretimi RAD Modeli: Klasik süreç modelinin geliştirme süresinin kısaltılmış ve hızlandırılmış şeklidir. Hızlı geliştirme bileşen temelli yapılanma yaklaşımı ile gerçekleştirilir. RAD Aşamaları; İş Modelleme Veri Modelleme Süreç Modelleme Uygulama Üretimi Test Etme Evrensel Süreçler: 1. Artımlı Model: Analiz Tasarım Kodlama Sınama (test) 2. Spiral Model: Bu modele göre yazılım artımlı yayımlar dizisi olarak hızla geliştirilir. Müşteri iletişim Planlama Risk Analizi Mühendislik Yapım ve Değişim Müşteri Değerlendirme Aykırı Programlama (Çevik Yaklaşımlar): Artan müşteri taleplerini daha hızlı karşılamak amacıyla geleneksel yöntemlere alternatif olarak ortaya çıkmıştır. Geliştirme aşamasında Geç ortaya çıkan yazılım değişimlerini hızlı bir şekilde karşılamayı amaçlar. 4 temel değere ve 12 pratiğe sahiptir. Temel Değerleri; İletişim, Basitlik, Geri Besleme, Cesaret Uygulama Yöntemi; Sistem Metaforu, Ekip Üyesi Müşteri, Kısa Aralıklı Yayımlar, Planlama Oyunu, Basit Tasarım, Ortak Kod Mülkiyeti, Kodlama Standartları, Eşle Programlama, Test, Sürekli Tümleştirme, Devamlı Yeniden Tasarım, Devam ettirilebilir Hız – 40 Saat / Hafta Ön İnceleme ve Fizibilite Çalışması Fizibilite çalışmasındaki amaç projenin olabilirliğini araştırmaktır. Genel hatları ile proje planı ve bütçesi bulunur. Genel olarak aşağıdaki sorulara cevap bulunması amaçlanır. • • • • • Projeye ihtiyaç var mı? Sistemin gerçekleştirilmesi için nelere ihtiyaç var? Ne kadar süreye ihtiyaç var? Tahmini bütçe ne kadar? Yararları ve zorlukları nelerdir? Fizibilite Türleri: Teknik, Ekonomik, Zaman, Sosyal, Yönetim ve Yasal fizibilite olarak sınıflandırılır. Teknik Fizibilite: Sitemin teknik açıdan içerdiği risk ve teknik olanakları araştırır. Bu değerlendirmede hem cihaz hem de insan gücü sınırları test edilmeli, karşılaşılabilecek riskler dikkate alınmalı. Ekonomik Fizibilite: Yeni projenin ekonomik riski araştırılır maliyet – yarar analizi yapılır. Ekonomik açıdan yeni sistemin uygunluğuna karar verilir. Maliyet – Yarar analizleri için; bugünkü değer, başa baş noktası, iç verim oranı ve geri ödeme süresi analizleri kullanılır. Zaman Fizibilitesi: Belirlenen süre içinde projenin tamamlanıp tamamlanamayacağını araştırır. PERT ve Gantt gibi teknikler kullanılır. PERT NASA tarafından POLARİS Füzesinin yapımında kullanılmıştır. 4 tür süre yöntemi ile hesaplama yapılır iyimser süre, kötümser süre, en yaklaşık süre ve beklenen süre. PERT hazırlanırken olayların mantıksal bir sıra takip edeceği ve kendinden önceki iş bitmeden sonraki aşamaya geçilmeyeceği sürekli göz önünde bulundurulur. Gantt Çizelgesi ise problemin tanımından sistemin işletilmesine geçilinceye kadar hangi aşamaların takip edileceği tek tek zaman çizelgesi olarak hazırlanır. Önemli durak noktaları kilometre taşları da gösterilir. Sosyal Fizibilite: Önerilen sistemin kullanıcılar tarafından kabul edilip edilmeyeceğini araştırır. Yönetim Fizibilitesi: Yönetimin yeni sisteme bakış açısını ve destek düzeyini araştırır. Yasal Fizibilite: Önerilen sistemin yasalara göre uygunluğunu araştırır. Sistem Analizi Sistem analizi ana sistemin öğe ve işlevlerinin ele alınarak ayrıntılı olarak tanımlanmasıdır. Amaç en uygun çözümü bulmaktır. Kullanıcının ihtiyaçları, mevcut sistem durumu, en uygun çözüm değerlendirmesi yapılır. Ayrıntılı incelemeyi başarıyla yapabilmek için; • • • • • Fizibilite raporlarını gözden geçirmek Bütün teknik terimleri incelemek Ayrıntılı inceleme planı yapmak Proje grubu içinde görev dağılımı yapmak Planın gerçekleşmesi için denetleme yapmak Sistem analistinin uzman bir araştırmacı gibi davranması sistemin çok iyi anlaşılması için gereklidir. Sistem analisti mevcut sistem için; bilgi kaynakları, kullanılan donanım ve yazılım, kullanılan bilgi, iç ve dış bilginin birbirlerini nasıl etkilediği, bilgi miktarı, sistem döngüsü ve süresi, arşivlenen bilgi ve arşivleme araçları, raporların formatı, sistem personeli ve tüm bunların maliyeti hakkında bilgi sahibi olması gerekiyor. Sistem Analiz Yöntemleri Akış Diyagramı: kısıt ve kabul kriterlerinin akış diyagramı halinde gösterilmesi. Örnek Model: bir prototip (örnek) üzerinde müşteri ile tartışarak uygun hale getirilmesi. Araştırma ve Bilgi Toplama Yöntemleri Kişisel Görüşme Yöntemi: Karşılıklı görüşme en sık kullanılan bilgi toplama yöntemidir. Sistem analisti görüşeceği kişi için önceden hazırlanması gerekli noktaları not alması görüşmenin etkinliği açısından çok önemlidir. Analistin kişisel görüşme yönteminde başarılı olabilmesi için yapılandırılmış bir görüşme için aşağıdaki noktalar önemli; • • • • • • • • • Görüşme amacını saptamalı Kiminle görüşeceğini belirlemeli Görüşme zamanı ve yerini belirlemeli Görüşülecek kişiye toplantı ile ilgili bilgi vermeli Görüşmede sorulacak soruları belirlemeli Görüşmeden hemen sonra sonuçları değerlendirmeli Görüşme sonuçlarını yetkili ve görüşülen kişiye iletmeli Görüşmeyi yazılı veya sesli olarak kayıt etmeli Görüşme süresi tamamlandığında gerekli ise sonraki görüşme için randevu almalı Anket Yöntemi: Anket, insanlar hakkında detaylı bilgileri toplamak için kullanılan bilgi toplama yöntemidir. Anket formu cevaplayıcıya sorulmak üzere hazırlanan sorulardan ve cevap alanlarından oluşur. Anket formu hazırlarken uyulması gereken ilkeler; Açıklık, Hatırlatma, Cevap verme arzusu oluşturma, Hataya engel olma, ifade kolaylığı, Cevaplayıcıyı koşullandırmama Anket Formu Soru Türleri: genel olarak “açık uçlu sorular” ve “kapalı uçlu sorular” olmak üzere ikiye ayrılır. Açık uçlu sorular: Yanıt verenden kendi ifadelerinden oluşan bir cevap yazısı ister. Kapalı uçlu sorular: Yanıt verenden seçenekler arasından seçim yapılmasını ister. Açık uçlu soru avantajları: En önemli avantajı önceden hazırlanmış cevapların etkisi olmaksızın kendi düşüncelerinin yazılabilmesi bu sayede daha derin bilgilerin elde edilmesi sağlanır. Açık uçlu soru dezavantajları: anketin tamamlanması kullanıcı için çok uzun zaman alabilir bu yüzden sonlarda ki sorular üzerinde fazla durulmayabilir. Analizi uzun zaman alır. Kapalı uçlu soruların avantajları: cevaplayıcılar genel olarak seçimli cevapları daha kolay bulur. Veri girişinin ve analizinin yapılması çok kolaydır. Kapalı uçlu soruların dezavantajları: Özellikle listelenen cevaplara bağlı kalırlar kendilerinden bir şey ekleyemezler. Cevaplayıcılar arasında ki ince ama önemli farklılıklar tespit edilemeyebilir. Cevaplayıcılar sorunun yanıtını bilmese de bir cevap verebilir. Araştırma Raporu: teknik elemanlara sunulan teknik raporda; başlık sayfası, içindekiler cetveli, araştırma amacı, araştırmada kullanılan metodoloji, genel sonuç ve öneriler, ekler Üst düzey yönetime verilecek raporda; Araştırma amacı, kullanılan yöntem, araştırmadan elde edilen sonuçlar, teknik ekler. Sistem Analizi Modeli Sistem analizi için oluşturulan model aşağıdaki 3 temel amacı yerine getirmelidir. 1. Müşteri ihtiyaçlarını açıklamak 2. Yazılım tasarımının nasıl oluşturulacağının temelini belirlemek 3. Yazılımın ihtiyaçları karşılayıp karşılamadığını belirlemek Veri Akış Diyagramı: sistemin varlıkları, süreçleri, sistemdeki veri depoları ile bunlar arasındaki verinin nasıl aktığını gösterir. Veri akış diyagramında kullanılan simgeler; Varlık • • • • • • • • • Veri Akışı İşlem Veri Deposu Oklar iki uçlu olamaz, okun ucu verinin ulaşması gereken hedefi gösterir İşlemde sadece çıkış olamaz İşlemin sadece girişi olamaz İşlemin girişleri istenen çıkışı vermek için yeterli olmalı Her veri deposu bir işlem ile ilgilidir Veri deposu doğrudan bir varlık ile ilişkide olamaz Farklı 2 işleme gidecek veri aynı anda 2 ok ile gösterilemez. Veri hiçbir işlemden geçmeden çıktığı işleme dönemez Veri akış oklarının üzerine yapılacak işi söylemiyoruz. (Siparişi doğrula değil, Doğrulanmış sipariş şeklinde) Veri Akış Diyagramı Düzeyleri: Ön inceleme sonunda taslak veri, taslak veri temel alınarak birinci ve ikinci düzey ayrıntılı veri akış diyagramları çizilir (sıfırıncı ve birinci düzey olarak adlandıran kaynaklarda var). Birinci düzey veri akış diyagramında sistem içindeki alt sistemler ve bu sistemlerde gerçekleştirilen işlemler, ilişkili veri kaynakları ve bu kaynaklarla işlemler arasındaki ilişki gösterilir. İkinci düzey veri akış diyagramında ise birinci düzeyde çizilen veri akış diyagramında detaylandırılamayan alt sistemlerde gerçekleştirilen işlemler detaylı olarak gösterilir. Her bir alt sistem için ikinci düzey diyagram çizilir. Veri akış diyagramlarını okumanın en kolay yolu soldan sağa doğru takip ederek okumaktır. Aynı kaynak diyagramın farklı yerlerinde gösterilecekse farklı olmadığını göstermek için sağ alt köşesine eğik çizgi eklenir. Varlık ilişki Diyagramı: bilgi sisteminde yer alan veri nesneleri arasındaki ilişkilerin grafiksel olarak tarif edilmesi. Entity Relationship Diagram kısaca ER diyagramı olarak kullanılır. Er Diyagramında Kullanılan Simgeler; • • • • • Dikdörtgen: Sistemdeki varlıklar Çift kenarlı dörtgen: sistemdeki zayıf varlıklar Eşkenar dörtgen: varlıklar arasındaki ilişki seti Elips: İlişkiye veya varlığa ait özellikleri Çizgi: varlıklar arasındaki ilişki türünü Karar Tabloları: Karmaşık karar mantığını belirlemek için bir mekanizma sağlamaktadır. Karar tabloları; durumlar, kurallar, işlemler ve kararlar olarak dört ana bölümden oluşur. Karar tablolarında satır ve sütün sayıları belirlidir. Sütün sayısı durum satır sayısına göre; Sütun Sayısı = 2Durum Sayısı olarak bulunur (daha az olabilir çünkü gerekmeyen sütunlar kullanılmamış veya göz önünde bulundurulmamıştır.) Karar ağaçları karar vermede kullanılan bir diğer yöntemdir ancak karmaşık yapılarda karar verme durumunda karar ağaçları yeterli değildir. Karar ağaçlarında olasılıklar yoktur. Veri Sözlüğü: bilişim maddelerinin içeriğini dil kurallarına uygun olarak tanımlamak için kullanılır. Veri akış diyagramlarında verilen kısa isimlerin detaylı olarak açıklanması gerekmektedir. Bir veri sözlüğünde bulunması gereken bilgi giriş tipleri; • • • • • Veri Akış Sözlük Girişi: veri akış diyagramındaki her bir veri akışı açıklanır. Veri Deposu Sözlük Girişi: veri akış diyagramındaki birim veri kayıtları açıklanır. Veri Yapısı Sözlük Girişi: veri akışında ve veri kayıtlarında yer alan her bir birim veri yapısı açıklanır. Veri Elemanı Sözlük Girişi: veri yapısında yer alan her bir birim veri elemanı açıklanır. İşlem Sözlük Girişi: veri akış diyagramındaki işlemlerin girdileri, süreci ve çıktıları açıklanır. Sistem Tasarımı Sistem tasarımı yazılım şekline dönüştürülmesi olarak tanımlanabilir. Ön tasarım ve Ayrıntılı tasarım olarak 2 aşamada gerçekleştirilir. Ön tasarımda amaç ve hedeflere ilişkin tanımlamalar yapılır modül adı verilen bağımsız değerlere ayrılmaktadır. Ayrıntılı tasarımda modüller alt modüllere ayrılmakta ve ayrıntılı olarak tasarımı yapılmaktadır. Ayrıntılı tasarım rapor olarak sunulduktan sonra kabul edilirse programın kodlanmasına başlanmaktadır. Program Geliştirme süresinin her aşamasında “Kalite Kontrolü” yapılır ve son aşamada “Kabul Muayenesi” adı ile testten geçirilir. Genel Tasarım: Sistem alt yapısını belirleme ve sistem mimarisinin oluşturulması Sistem Altyapısını Belirleme: mevcut donanım, yazılım ve ağ yapısının belirlenip önerilen sisteme uygun altyapının ortaya konmasıdır. Envanter Belirleme, İş yüklerinin tahmini, Donanım değerlendirme, Yazılım Değerlendirme, Satıcı firmayı belirleme, Satın alma şeklini belirleme işlemlerinin yapılmasıdır. Envanter Belirleme: Sistem Analisti; mevcut Donanım modelini, durumunu, yaşını, ömrünü, işletmedeki fiziksel yerini, sorumlu çalışanını ve finansal durumunu belirler. Daha sonra önerilen sistem ile kıyaslama yapılır. İş Yüklerinin Tahmini: Sistem Analisti mevcut ve planlanan iş yüklerini hesaplar donanımın kapasitesinin bu iş yüklerine uygun olup olmadığını belirler. Bu şekilde gereksiz donanımlar ile işletmenin karmaşıklaşması önlenir. Donanım Değerlendirme: değerlendirme sorumluluğu yönetim, kullanıcı ve sistem analistine aittir. Sistem analisti gerekli donanımın satın alınmasından önce yönetimi bilgilendirmeli kullanıcıyı eğitmelidir. İş yükleri farklı sistemler üzerinde simülasyonu yapılarak karşılaştırılır. Bu karşılaştırmalarda göz önünde bulunması gerekenler; • • • Sistemin toplam kapasitesi CPU’nun atıl zamanı Önerilen belleğin büyüklüğü Yazılım Değerlendirme: Sistem analisti yazılım alım kararını yönetim ile birlikte aşağıdaki kriterlere göre vermeli; • • • • • • Performans Etkinliği Performans Verimliliği Kullanım Kolaylığı Esneklik Dokümantasyon Kalitesi Üretici Desteği Satıcı Firmayı Belirleme: Satıcıyı belirlemede en önemli etken sunduğu hizmetlerdir. Bunlar değerlendirilirken; • • • • Donanım Desteği Yazılım Desteği Kuruluş ve Eğitim Bakım Kriterleri göz önünde bulundurularak satıcı firma seçimi yapılır. Sadece fiyat karşılaştırması yapmaktan ibaret değildir. Üretici firmanın güvenilir olması firmayı belirlemede göz önünde bulundurulmalıdır. Satın alma şeklinin belirlenmesi: Satın alma, Kiralama, Leasing yöntemlerinden biri tercih edilmelidir. Bu üç seçiminde kendine göre avantajları ve dezavantajları bulunmaktadır. Avantajları Dezavantajları Satın Alma Uzun Dönemde Daha ucuzdur. Vergi indirimi sağlar Tam kontrol Sistem değiştirilebilir İlk alım maliyeti yüksektir. Eskime riski Seçimin yanlış yapılması ve yatırımın batması Tam sorumluluk Leasing Sermayenin bağlanmaması Finanslamaya ihtiyaç olmaması Kira bedelinden düşük olması Sözleşme sonunda sisteme sahip olunmaması Ödeme gecikmelerinde yüksek faiz Satın almadan daha pahalı olması Kiralama Sermayenin bağlanmaması Finanslamaya ihtiyaç olmaması Sistemin kolayca değiştirilmesi Genelde bakım ve garantinin dahil olması İşletmenin sistemin gerçek sahibi olmaması Satıcının riski üstlendiği için kiranın yüksek olması Genel olarak seçim yapılırken kullanılacak donanım veya sistemin kullanım süresi dikkate alınıp hesaplama yapılır. Sistem Mimarisi Mimari tasarımda programın ana yapısal öğeleri arasındaki ilişkiler belirlenmektedir. Amaç modüler bir program geliştirmek ve modüller arası ilişkilerin denetimini göstermektir. Sistem mimarisi yapı diyagramı ile açıklanabilir. İyi bir yapısal diyagram için; Ön tasarım ayrıntılarıyla tanımlanmalı, mimari tasarım ayrıntılarıyla tanımlanmalı, ayrıntılı tasarım tüm detayları ile tanımlanmalıdır. Tasarım notasyonlarından biri olan HIPO diyagramı sistemdeki her fonksiyonun birbiriyle olan ilişkisini belirlemek amacıyla kullanılır. Görsel bir yöntem olan HIPO diyagramı ile sistem fonksiyonları daha kolay anlaşılır. HIPO yönteminde 3 temel diyagram vardır; 1. Görsel içerik tablosu 2. Genel IPO Diyagramı 3. Ayrıntılı IPO Diyagramı Ayrıntılı Tasarım: Ayrıntılı tasarım kapsamında; çıktı, girdi, veri tabanı, program ve ana birim tasarımı yapılır. Çıktı Tasarımı: Çıktı, bilgi sisteminin aldıkları veriler ile kullanıcıya verdikleri bilgidir. Çıktı tasarımında; • • • • • • Belirlenen amaca hizmet etme Kullanıcı için anlamlı olma Uygun miktarda olma Çıktının dağıtılacağı kullanıcıları doğru belirleme Çıktının zamanında sağlanması Doğru çıktı yönteminin seçilmesi Çıktıların kullanıcıları etkileyecek şekilde yönlendirilmesi; • • • Bilgilerin alfabetik, kronolojik veya maliyete göre sıralanması Kabul edilebilir sınırların belirlenmesi Grafik tipi – rengi ve ölçeğinin ayarlanması Özellikle grafiklerde bazı renklerin anlamları vardır kırmızı renk bütçede problemi belirtir. Ayrıca grafik seçiminde bir bütünün oranlarını ortaya çıkarmak için pasta grafiği, birden fazla veri grubunu göstermek için çubuk grafik tipi kullanılması daha doğru olacaktır. Girdi Tasarımı: Girilen verinin kalitesi çıktı olarak elde edilen bilginin kalitesini belirler. “Hatalı veri girerseniz hatalı bilgi alırsınız.” Kuralı geçerlidir. İyi tasarlanan girdiler için; Etkinlik, Doğruluk, Kullanım Kolaylığı, Uyumluluk, Basitlik, Çekicilik önemlidir. Tasarım aşamasında karar verilmesi gereken önemli kavramlardan biri de kodlamadır. • • • • • • Kodlama mümkün olduğunca kısa olması gerekir. Kodlama kolay değişmeyecek şekilde olmalıdır. Tekrarlanmamalı, tekil olmalıdır. Kodlamada birbiri ile karışabilecek simgeler kullanılmamalı “I”, “1” gibi Kodlamada kısaltmalar varsa anlamlı olmalıdır. Araya eleman eklemeye izin verecek şekilde değişikliğe açık olabilmeli. Verilerin alınacağı formlar tasarlanırken aşağıdaki özelliklere dikkat edilmeli; • • • • Kolay doldurulması Tasarımın amacını karşılaması Doğru tamamlamayı sağlaması Güzel görünmesi Ekran tasarımında ise; • • • • Kolay kullanım ve basit olacak şekilde gereksiz bilgi bulunmayacak girilecek bilgiler ile ilgili açıklamalar Bilgi toplama formları ve diğer ekranların birbirleri ile uyum içinde olması Ekrandan ekrana geçerken veya kaydırmalar yaparken hareket kolaylığı sağlamalı Tüm ekranların belli bir düzene uygun hazırlanması imleç, font tipinin seçimi ile çekici ekran tasarımı Ekran Tasarımında Renk Kullanımı: zemin ve kalem renklerinin doğru belirlenmesi bilgi girişini kolaylaştıran etmenlerdendir. Fazla parlak ve koyu renklerin kullanımından kaçınarak zemin ve kalem rengi zıt renk olmalıdır. Zemin ve kalem renklerinde en uyumlu renkler; Sarı üzerine siyah, beyaz üzerine yeşil, beyaz üzerine mavi, mavi üzerine beyaz, siyah üzerine beyaz olarak sıralanabilir. Zemin ve kalem renklerinde en zor okunanlar; yeşil üzerine kırmızı, kırmızı üzerine mavi olarak sıralanabilir. Doğru veri girişi birimi tasarımının gerçekleştirilmesi için; • • • Etkin kodlama Etkin ve verimli veri girişi Doğruluk ve geçerlilik testleri ile kalitenin sağlanması. Veri Yapısı Tasarımı: veri tasarımı veri yapısının tamamlanması olarak adlandırılabilir. Sistemin tasarlanmasında ilk olarak ele alınan en önemli görevdir. Veri tasarımı sistemin kalitesini önemli ölçüde belirler. Veri tasarımında ilk iş gereksinim analizi ve özelleştirme aşamasında tanımlanmış veri yapılarını mantıksal gösteriminin seçilmesidir. Veri tasarımı yapısında amaçlanan; • • • • • Verinin kullanıcının istediği anda kullanılabilir olması Doğru ve uyumlu olması ve veri bütünlüğünü sağlanması Güncelleştirmenin etkin yapılabilmesi Bilgi geri çağırmanın amaca uygun ve etkin gerçekleştirilmesi Saklanan veriden elde edilen bilginin yönetim, planlama, kontrol ve karar vermede yararlı olacak şekilde Kullanıcı Arabirim Tasarımı: kullanıcı arabirimi, sistemin kullanıcı ile iletişim kuran elemanıdır. Arabirimler; doğal dil arabirimleri, soru – cevap sorgulamaları, menüler, girdi/çıktı formları, komut dili şeklinde olabilir. • • • • Bilgisayarın girdiyi kabul edip etmediği Doğru formda olup olmadığını İşlemde gecikme olacağını İşlem veya isteğin tamamlanıp tamamlanmadığını bildirecek şekilde olmalıdır. Arabirim tasarımcısının görevi insan yetenekleri ve bilgisayar gücünün birbirini tamamlayacak şekilde çalışması. • • • • Etkinlik (gereksinimlere uygun olarak sisteme erişim sağlanabilmeli) Verimlilik (hataları azaltma veri giriş hızını arttırma) Kullanıcı görüşlerinin alınabilmesi (işlem sırasında oluşan eksik ve hatayı geri bildirim yapabilmesi) Ergonomik olması (kolay kullanılabilir işlevsel) Bir kullanıcı arabirimini bir defada doğru olarak tasarlanmasının genellikle mümkün olmaması nedeniyle prototip oluşturma, test etme tekrarlı tasarım kullanarak değişikliği planlamak gerekmektedir. Arabirim tasarımında etkileşim arttıkça arabirim kullanılabilirliği artmaktadır. Mühendislik Modeli: sistemi tanıyan kişilerin sistemin tüm işlevlerine ulaşabilmek ve tam denetim altında tutabilmek için kullanacakları arabirimlerin geliştirmek amacıyla kullanılır. Kullanıcı Görev Modeli: kullanıcıların gerçekleştirmesi gereken işlevler için kolay erişilebilirlik sağlayan hata yapmayı önleyen ve hızlı öğrenilen arabirimlerdir. Arabirimlerde Oluşan Problemlerden Bazıları: • • • • • Bilginin düzensiz ve yığınlar şeklinde olması Kullanıcının yapması gereken çeşitli ekran geçişlerinin uyumlu olmaması Ekran üzerindeki komutlardaki kelimelerin karmaşık olması Hata mesajlarının açıklayıcı olmaması Kullanma kılavuzlarının anlaşılmaz derecede karmaşık olması Nesneye Yönelik Yaklaşıma Genel Bakış Tümleştirilmiş modelleme dilinin standartlaşmasıyla 1990’larda yaygınlaşmıştır. Klasik yaklaşımın aksine, veri merkezli, sınıf modelleri üzerinde geliştirilen bir yaklaşımdır. Bu yöntem kullanıldığında kodların ve modüllerin yeniden kullanılabilirliği kolaylaşmakta, geliştirme süresi kısalmakta, üretkenlik artmakta, yazılım kalitesi yükselmekte, anlaşılabilirdik kolaylaşmaktadır. Tümleştirilmiş yazılım geliştirme süreci (Unified Process – UP ) UP genel anlamda tekrarlı ve artımlı bir süreç yapısı çizer. Tek bir model, analiz, tasarım, gerçekleştirme ve test aşamalarında sürekli işlenir, değiştirilir ve iyileştirilir. Yeni yaklaşım birkaç yeni problemi ortaya çıkartmıştır. • • Sistemin gerektirdiği çözüm ilişkisel bir veri tabanı kullanımı gerektiriyorsa kavram ve uygulama arasında belirgin farklılıklar oluşur. Süreç içinde aşamaları birbirinden kesin olarak ayıran kilometre taşlarını belirlemek oldukça güçtür. Bu güçlüğü önlemek için projeyi küçük parçalara bölerek yönetilmesi ve yenilemeli artım süreç ile sağlanır. Tümleştirilmiş modelleme dili ile tasarım anlaşılır biçimde ortaya koyulabilir. Klasik yöntemlerin yetersiz kaldığı kullanıcı etkileşimli olay tabanlı yazılımlar geliştirmenin zorluğunun çözümü nesneye yönelik yazılım geliştirme metotları kullanmaktır. Yazılım geliştirmenin esas parçası kod yazmak olduğu düşünülür ancak kullanıcı için önemli olan sistemin nasıl geliştirildiği değil doğru çalışması ve istediği işlemi yapabilmesidir. Booch Yöntemi: Grady Boosch tasarım ve gerçekleştirmede mükemmellik Rumbaugh Yöntemi: Jim Rumbaugh analiz ve veri yoğunluğu çok olan sistemler için Jacobson Yöntemi: ivan Jacobson “use Case” tekniğini içerir. Nesneye Yönelik Temel Kavramlar Nesne: Değişik hizmetler veren ve özellikleri olan varlıklar olarak tanımlanabilir. Problemi çözmek amacıyla bir sorumluluğu yerine getirmek amacı ile tasarlanır. Nesneler birbirlerinden kimlik bilgileri ile ayrılırlar. Nesneye yönelik yaklaşımın hedefi gerçek dünyada nesnelerin sahip olduğu durum, davranış, kimlik gibi özellikleri örneklemeye çalışmaktır. Sınıf: Aynı özellik ve işlemlere sahip nesne kümesi için tanımlayıcıdır. Nesne oluşturmak için bir şablon olarak düşünebiliriz. Bir sınıftan üretilen her nesne sınıfta tanımlanan özellikleri karşılayan değerlere sahiptir. Dolayısıyla her nesne bir sınıfın örneğidir. Bir sınıfın UML’de gösterimi • • • Sınıf Adı Özellikler İşlemler(); Özellikler: Bir tip değer çiftidir. Sınıflarda özellik tip tanımları yapılır, nesnelerde ise özellikler değer taşır. Nesneler birbirleri ile mesaj yolu ile haberleşir, Mesaj sınıfta tanımlı bir işlemin harekete geçirilmesini sağlar. Bunu yapabilmek için işlemler diğer nesnelerin kullanımına açık olmalıdır. Bir nesneyi kullanmak için iç yapısının bilinmesi gerekli değil, dışarıya sunduğu hizmetin nasıl kullanılacağını bilmesi yeterlidir. Sınıf Üyelerine erişim : • • • Public (Açık): Diğer nesnelerin kullanımına açıktır. UML işareti “+” Private (Özel): Sadece o sınıf nesneleri tarafından kullanılabilir. UML işareti “-“ Protected (korumalı): Sadece o sınıf ve sınıftan türetilen alt sınıflardan erişilebilir. UML işareti “#” İyi tasarlanmış bir sınıf iyi hizmet verecek kadar açık ayrıntılarla uğraştırmayacak ve zarar görmesini engelleyecek kadar kapalı olmalıdır. İşlemler: Bir işlemi gerçekleştiren yordama metot denir. Metotlar kendisi ile aynı isme sahip mesaj ile aktif olur. Bir sınıf içinde farklı parametrelere sahip aynı isimde metotlar olabilir. Sınıflar Arası İlişkiler 1. Bağlantı: Sınıflardan türeyen nesneler arasında hizmet alışverişini sağlar. Genellikle 2 sınıftan oluşur ancak tek sınıfta kendi üzerinde bağlantıya sahip olabilir. n1..n2 arası değişen tamsayılarla gösterilen çoğullama sayısı kaynak sınıfın bir nesneyle hedef sınıfın kaç nesnesinin ilişkilendirilebileceğini gösterir. Birden çok sayısı kestirilemiyorsa “*” alt limit bilinmiyorsa kullanılmayabilir. “0” seçimlik, “1” en az bir bağlantı üst limit “1” ise en fazla bir bağlantı olacağını gösterir. 2. Kümeleme ve Birleştirme: Sınıflar arası parça-bütün ilişkileridir. Bir sınıf başka bir sınıfın özelliği olabilir. Kümelemede alt parçalar sadece o sınıfa ait üyeler değil kendi başlarına da kullanılabilir. UML’de ucuna çizilen içi boş dörtgen olarak gösterilir. Birleştirmede ise alt parçalar o nesneyi meydana getirmek için oluştururlar ve kendi başlarına kullanılamazlar. UML’de ucuna çizilen içi dolu dörtgen olarak gösterilir. 3. Genelleştirme: Genel tanımlara sahip bir sınıf ile daha özel ayrıntılara sahip alt sınıflar arasındaki ilişkidir. Alt sınıf üst sınıftan türetilir. Üst sınıfın özellikleri alt sınıfta aynen kullanılabilir. Bu duruma kalıtım denir. UML’de çizgilerin ucuna içi boş bir üçgen çizilerek gösterilir. 4. Çok Şekillilik ve Soyut Sınıf: Farklı sınıflarda yaratılmış nesnelerin aynı mesaja farklı tepkiler vermesi olarak tanımlanabilir. Alt sınıfın ihtiyaçlarına göre işlemlerin tekrar tanımlanmasına geçersiz kılma denir. Soyut (abstract) Sınıf üzerine doğrudan nesne tanımlanamayan sınıftır. Kendinden türetilen alt sınıflarda nesne tanımlanabilir. Çok şekilliliğin sağlanabilmesi için üst sınıf soyut olarak tasarlanmalıdır. Bir sınıf içinde tanımlı olan bir işlem aynı isimle ancak farklı tip veya sayıda değişik parametreler ile tanımlanabilir bu duruma aşırı yükleme (overloading) denir. Nesneye Yönelik Sistem Analizi Geleneksel yapısal yaklaşım ile aynı aşamalara sahiptir. Planlama, Analiz, Tasarım, Gerçekleştirme. Yapısal yaklaşımda işlemlerin tanımlanması ve modellemesi üstünde durulurken nesneye yönelik yaklaşımda nesneler ve etkileşimleri vurgulanır. Tasarlanacak olan sistem analiz edilirken temel amaç çözülecek problemin doğru, mantıklı, anlaşılır ve test edilebilir bir modelini oluşturmaktır. Sınıf Diyagramı: Bir sistemdeki tüm nesnelerin sınıf tanımlamalarını ve ilişkilerini göstermek için kullanılır. Kullanım Senaryosu Diyagramı: yeni sistemdeki kullanımların, senaryoların belirlenmesinde kullanılır. Kullanım Senaryosu Modellemesi: Bir sistemin davranış dışı olaylara verdiği tepkidir. Senaryolar aktör ile sistem arasında gerçekleşen olaylardır. Aktör kısaca sistemin kullanıcısıdır. Aktörler: Aktörler UML’de çöp adam olarak ifade edilirler. Kullanım Senaryoları: Senaryo aktöre fonksiyonel değer sunan bir bütündür. Herhangi bir senaryo ile ilişkisi bulunmayan aktör sistemde gereksizdir. Ancak hiçbir aktör ile ilişkide olmayan senaryolar olabilir. Kullanım senaryoları belirlenirken sadece ihtiyaç ve gereksinimler listelenmelidir. Kullanım senaryoları belirlenmek üzere aktörleri ve senaryoları birleştirilebilir. Kullanım senaryoları UML’de elips şeklinde gösterilir. Bir aktörün doğrudan başka bir aktör ile etkileşimde olması önerilmez. Aralarında mutlaka bir senaryo bulunmalıdır. Kullanım senaryoları arasındaki ilişki tanımları: • • • İçerme: Bir senaryoda kullanılan başka bir senaryoyu belirtir. Genişletme: Senaryolar doğal akışlara göre hazırlanırlar özel durumlarda sapmalar olabilir. Özelleştirme: Sınıflar arası türeme ilişkileri gibi senaryolar da türetilebilir. Senaryo Tanımlamada: • • • • • • Senaryo Adı İlgili Aktörler Senaryo gerçekleşmesi için gerekli ön koşullar Senaryonun ulaşacağı durumu tanımlayan son koşullar Senaryonun temel akışı Özel durumlarda yürütülecek alternatif akışlar. Kullanım senaryolarında sözleşmeler: Birçok uygulamanın modellemesinde yeterli olur ancak bazı senaryolar karmaşık işlemler içerdiği için anlaşıla bilirliği arttırmak için sözleşme (Contract) yazılabilir. Özellikle sistemdeki nesnelerin alacağı son durumlar belirtilir. Sınıf Modellemesi: Sistemin iç durumu sınıf modeli ile tanımlanır. Bu modellemede sınıflar ile birlikte özellikleri, işlemleri, bağlantıları, bütünleşmeler, bileşimler, genelleştirmeler de yer alır. Tüm bu öğeler görselleştirilir. Gereksinimlerde yer alan bir kavramın gerçekte sınıf olacağını belirlemek için aşağıdaki sorular sorulur • • • • • Kavram ile ilgili veri saklanması gerekiyor mu? Değişik değerler alabilecek farklı özellikleri var mı? Kavramdan birçok nesne türeyebilir mi? Uygulamanın kapsama alanı içinde mi? Kavramın sınırları iyi çizilmiş mi? Özelliklerin Belirlenmesi: Bir sınıfın özellikleri yaratılan nesnelere özgü değerler alan verilerdir. Genellikle basit veri tiplerinden oluşur. Daha karmaşık bir tipte ise büyük ihtimalle ayrı bir sınıf adayıdır. Bağlantıların Belirlenmesi: bağlantılar nesnelerin iş birliği ilişkilerinin çıkarılmasına yardımcı olur. Bağlantıların belirlenmesinde de kullanım senaryosundan yararlanılır. Senaryoda yer alan fiiller olası bağlantılardır. Sistemin amacı dışındaki bağlantılar gereksizdir. Senaryoda yer alan faaliyetler bağlantı değil etkileşimdir. Bağlantı işlemi değil ilişkiyi temsil etmelidir. Genelleştirmeler sınıf modellemesini oldukça basitleştirmektedir. Sınıf Diyagramı: Sınıf diyagramı kullanım senaryoları ile analiz yapılan sistemin uygulama modelini gösterir. Kavramsal sınıflar arasındaki ilişkiler ve sınıfların nitelikleri yer alır. Kodlama Tasarım aşamasında yazılım fiziksel olarak tanımlanıp diyagramlar ile gösterildikten sonra makine tarafından okunabilecek bir program halinde düzenlenmektedir. Kodlama test ve bakım aşamaları için büyük önemdedir. Kodlama yapılırken belli bir düzen olmalıdır bir düzeni olmayan kodlamalarda sonradan müdahale güç olur. Kodlama aşamasına geçilmeden önce programlama dili seçimi ve geliştirme platformu belirlenmesi gerekir. Programlama dili seçilirken yazılımın amaç ve görevlerine uygun olmalıdır. Programlama Dili Seçimi Büyük projelerde tek bir programlama dili gereksinimleri karşılamaya yetmeyebilir bu durumda gereksinimleri karşılayabilecek diller liste halinde belirlenmelidir. Kullanılacak programlama dili seçiminde dikkat edilecekler: • • • • • Genel uygulama alanı Algoritma, bilgi işlem ve veri yapısı açısından karmaşıklık derecesi Yazılımın kullanılacağı ortam Uygulama Koşulları Yazılımı geliştirmede görevli personelin bilgi düzeyi Programlama dili seçiminde özellikler dışında belirli bir programlama diline yapılan yatırımlar, tecrübesi fazla olan personel gibi diğer etmenler de dikkate alınmalıdır. Yapısal Kodlama: Programın uygulaması aşamasında düzenli bir kontrol akışının sağlanmasıdır. Bir girişi ve bir çıkışı bulunan yapısal programlama ile sağlanabilir. Kodlama Biçimi: Programcının işlemleri kod olarak ifade şekline denir. Kodlama biçiminde genel bir standart olmasa da proje ekibi tarafından kodlama düzeni ortaya konmalıdır. Açıklama Satırları: Programdaki kodun anlaşılabilir olması için gereklidir. Denetim yapılarının öncesinde veya sonrasında ne yapıldığını açıklamak amacı ile kullanılır. Kod Yazım Düzeni: Programının anlaşılabilir olması ve kodların okunabilirliğini kolaylaştırmak için düzenli bir şekilde kod yazmak gerekmektedir. Kodlama yapılırken anlamlı isimlendirme yapılmalı anlamayı güçleştirecek aşırı kısaltmalardan uzak durulmalı Yazılım Kalite ve Test Teknikleri Yazılım Kalitesi Faktörleri • • • • • • • • • • • Doğruluk Güvenilirlik Verimlilik Güvenlik Kullanışlılık Hata Bulma Kolaylığı Esneklik Sınama Kolaylığı Taşınabilirlik Tekrar Kullanılabilirlik Bağlana bilirlik Kalitenin Güvence Altına Alınması • • Yazılım geliştirmesinin yüksek bir kalitede gerçekleştirme Ölçüm yolu ile kalite derecesini belirleme Kaliteyi Yükseltmek için • • • • Gereksinim analizi aşamasında sistemin kolayca kullanılıp öğrenile bilir olması. Modüllere ayırmada taşınabilirlik ve bağlanabilirlik Ayrıntılı tasarımda doğruluk faktörüne önem verme Sınama aşamasında doğruluk ve olduğunca performans faktörlerin ölçümü Kalitenin Belirlenmesi için • • • Doğrudan objektif kalite ölçümleri kullanmak Kaliteyi olaylı ölçülerden yararlanmak Uzmanların kişisel takdirine başvurmak Yazılım Kalitesinin Sağlanması Çok sayıda alt programlardan oluşan bir yazılımın geliştirilmesi için çok fazla sistem analistinin katkısı ile uzun bir sürede gerçekleşmektedir. Yazılım kalitesinin sağlanması için hata ve eksikliklerin bulunması ve hızlı bir şekilde düzeltilmesi büyük önem taşımaktadır. Yazılım Kalitesi • • • Geliştirme planlaması aşamasında kalite kontrol yönteminin belirlenmesi Geliştirme sürecinin duraklarında yapıların gözden geçirilmesi Kaynak programın sınanması Bu işlemlere üretim sürecinde kalite kontrolü adı verilmektedir. Yazılım tesliminde kabul muayenesi yapılmalı! Yazılımda Kalite Kontrolünün Planlanması • • • Yazılım inceleme Planı: Tasarım inceleme, Onaylama, Kaynak Programı Sınama ve Belgeleri Onaylama Kaynak Programı Sınama Planı: Sınama Amaçlarını, kriterlerini, sistem Birleştirme planını, Modüllerde uygulanacak yöntemleri ve kullanılacak özel test programları belirtilmelidir. Kabul Muayene Planı: Onaylanacak gereksinimler, gereksinimlerin test programları, test programından beklenen sonuçlar ve testlerin yeterliliğinden oluşmalıdır. Yazılımın Sınanması • • • • Fonksiyonel Sınama: Örnek girdi değerleri ile alınan çıktı değerlerinin beklenen ile karşılaştırılmasıdır. Performans Sınama: Değişik durumlarda yanıt süresi, alt programın payı, bellek kullanım değerlendirme Dayanıklılık Sınama: Sisteme gereğinden çok terminal bağlayarak zayıf ve kuvvetli yönleri tespit Yapısal Sınama: İç işletim mantığının sınanmasıdır. Yazılım Sınama Basamakları Ünite Testi: Modüller üzerinde uygulanmaktadır. Ayrıntılı tasarımdaki tanımlara dayanarak modül üzerindeki hataları bulmak, önemli kontrol yolları sınanmaktadır. Saydam kutu yöntemi olarak yürütülen bu işlem aynı anda çok sayıda modül üzerinde eş zamanlı olarak yürütülmektedir. Veri Giriş ve çıkışının uygunluğu denetlenir. Bütünleme Testi: Modüller bağımsız olmayıp, birbirlerine ya da bir donanım öğesine veya işlemciye bağlı olmalıdır. Bu bağlantı yazılım arabirimi ile sağlanmaktadır. Bu aşamada oluşabilecek hataların bulunması için bütünleme testi uygulanmaktadır. Bütünleme testi • • Bütün olarak sınama: Modüller grup ya da bütün olarak birleştirildikten sonra sınanır. Karışıklığa yol açar Arttırmalı sınama: Modüller teker teker birbirine bağlanıp hatalar kolayca bulunması sağlanır. Onaylama Testi: Bütünleme testi sonunda arabirim hataları bulunup düzeltilmiş olmalıdır. Onaylama testinde müşteri ve kullanıcı beklentilerini gerçekleştirme olanağı değerlendirilir. Düzenleme testi ve kabul muayenesi olarak yürütülmektedir. • • • Onaylama Testi: Hazırlanan kullanıcı belgeleri ve Yazılım gereksinimleri spesifikasyonu ile karşılaştırılarak yapılmaktadır. Bir dizi kara kutu testi uygulanmaktadır. Uygulama daha önce hazırlanan test planına göre yürütülmektedir. Hata düzeltme işlemleri müşteriye danışarak yerine getirilmektedir. Yazılım düzenin gözden geçirilmesi: bütün elemanların uygun biçimde geliştirildiği, düzenlendiği ve bakım onarım için yeterli ayrıntıyı içerdiğini onaylanması aşamasıdır. Kabul Muayenesi: Müşteri tarafından yazılımın tamamının kullanıcı gözü ile incelenmesidir. Sistem Testi: Yazılımın Bilgisayar donanımları ile uyum testi olarak düşünebiliriz. Bu test sistem mühendisinin görevi olmakla birlikte yazılım mühendisi hataları önceden kestirmek ve karşılamak için teste katılmalıdır. • • • • Düzeltme Testi Güvenlik Testi Dayanıklılık Testi Performans Testi Hata ve Eksikliklerin Giderilmesi Sınama sonucu bulunan hata ve eksikliklerin nedenleri bulunup düzeltilmesi gerekmektedir. Hataları giderme (debugging) adı verilen bu işlemde belirtiler ile nedenlerinin karşılaştırılması sonrada hataların düzeltilmesi yoluna gidilmelidir. Nedeni bilinmeyen hataların ortaya çıkardığı durumlar: • • • • • • • Belirti ve nedeninin programın değişik yerlerinde olması Belirtinin, düzeltilen başka bir hata nedeni ile ortadan geçici olarak kaybolması Belirtinin hatadan ileri gelmemesi Belirtinin gözden kaçan bir insan hatasından oluşması Belirtinin işlem sorunundan çok zamanlama sorunu olması Gerçek zamanlı sistemlerde girdi koşullarının doğru olarak yinelenmesi güçlüğü Belirtinin kesintili olması Hata nedeni doğrudan bulunmaması halinde bilimsel yöntemler uygulanarak keşfedilmeye çalışılmaktadır. Tümdengelim, tümevarım ve geri dönüş yöntemleri uygulanmaktadır. Tüm bu testler ve hata düzeltmeleri sonunda bile yazılımın içinde bulunamamış hataların oluşma olasılığı bulunmaktadır. Sınama Yöntemleri Saydam Kutu Testi: Modül düzeyinde uygulanmakta ve programın iç yapısı denetlenmektedir. Koşul ve döngü durumları çalıştırılarak mantıksal yollar sınanmaktadır. Tasarlanan ve beklenen yapıda olup olmadığı sınanmak için değişik noktalarda incelemeler yapılır. Bu Test ile: • • • • Bir modüldeki bütün bağımsız yolların en az bir defa test edileceği garanti edilir. Bütün mantıksal kararların “doğru” ve “yanlış” durumları denenmiş olmakta Bütün döngülerin kendi içinde ve çevresinde işlerliği sağlanmakta İç veri yapıları denenerek geçerliliği güvence altına alınmaktadır. Bu testler yapılırken: 1. Temel Yollar Testi: İşlemsel tasarımın mantıksal karmaşıklığını ölçmek için yapılır. 2. Döngü Testi: Döngü içerisindeki başlama hatalarının, indeksleme ve artırma hatalarının, döngüyü sınırlama hatalarının bulunması amacındadır. Kara Kutu Testi: Yazılımın bütünlenmesi sırasında yazılım arabirimi üzerinde yapılan bir sınamadır. Bu sınama ile yazılım işlemlerini yerine getirdiği, girdilerin kabul edildiği, çıktıların doğru olarak üretildiği ve dış bilişim bütünlüğünün sağlandığı gösterilmektedir. Temel sistemin modeli denenmiş olmaktadır. • • • • • Hatalı ve eksik olan işlevler Arabirim hataları Veri yapılarında ve veri tabanı erişimindeki hatalar Performans Hataları Başlama ve bitirme hataları. Kara kutu testi son aşamada ve programın bütünü için uygulanmaktadır. Bir dizi test programı oluşturulmaktadır. 1. Eşdeğerli Bütünleme: programın girdi alanı, test programları oluşturabilecek veri sınıflarına bölünmektedir. Böylece her test programı belli bir bölümdeki hatayı ortaya çıkarmaktadır. 2. Sınır Değer Analizi: Dayanıklılık testi adı verilen bu analizde en büyük ve en küçük değerdeki parametreler ile test yapılmaktadır. 3. Veri Onaylama Testi: Kullanıcı tarafından türetilen özel komutların doğruluğunun onaylanması için • Yanlış söz dizimi komutları • Sırasız ya da zamansız komut girişleri • Çok sayıda niteleyici veri gerektirmesi • Komut giriş halinde sistemin kesilmesi 4. Neden Sonuç Graf Çizimi: Mantıksal durumlar ve durumları ile ilgili işlemlerin özlü olarak gösterimi • Modüle ait girdi koşullarının ve sonuçların liste halinde getirilmesi ve tanıtıcılara atanması • Bir neden-sonuç grafının geliştirilmesi • Grafın bir karar tablosuna dönüştürülmesi • Karar tablosu kurallarının test programlarına dönüştürülmesi Var olan Sistemden Yeni Sisteme Geçiş Yeni Sistem Eğitimi Eğitim alacaklar gruplara ayrılır ve her grup için belirlenen amaca göre eğitim programı düzenlenir. Bu gruplar genelde sistemle ilgilenecekler, uç kullanıcılar ve üst yönetimdekiler. Yeni Sisteme Mevcut Verilerin Aktarılması Yeni sistemin kullanıma başlamadan önce veri tabanı kayıtlarının aktarılması gerekmektedir. Bu işlem o kadar önemlidir ki günümüzde sadece bu işleri yapan şirketler bulunmaktadır. Yeni Sisteme Geçiş Yöntemleri • • • • • Doğrudan Geçiş: Belirlenen bir tarihten itibaren eski sistemin tamamen bırakılıp yeni sistemin kullanmaya başlaması ile yapılır. Paralel Geçiş: Belirlenen süre boyunca eski sistem ile yeni sistemin birlikte çalışması Dereceli Geçiş: Yeni sistem belli işlevleri ile kullanılmaya başlanır zaman ilerledikçe tüm işlevleri devreye alınarak geçiş tamamlanmış olur. Prototip Geçiş: Dereceli geçişe göre daha organize bir yapısı vardır. Sistemin bir prototipi oluşturulup kullanıma geçilir. Çalışma sonuçlarına göre gerekli düzenlemeler yapılıp yeni sisteme geçilir. Dağıtılmış Geçiş: Dağıtılmış geçişte kurumun her bir bölümünde aşamalı olarak tek tek geçiş söz konusudur. Sistemin belirli periyotlarla değerlendirilmesi ve bakımının yapılması gerekmektedir. Veri tabanı aktarımı bakımından dereceli geçiş ile benzerlik göstermektedir.