17
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.

Sistem Analizi ve Tasarımı - ndonmez.com · Genel olarak bilgi sisteminin tarafları: Kullanıcı, Yönetici, Programcı, Bilgi sistemi destek personeli, Analist Kullanıcı : oluşturulan

  • Upload
    others

  • View
    20

  • Download
    0

Embed Size (px)

Citation preview

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;

• 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 Akışı Varlık İşlem Veri Deposu

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.