You are on page 1of 22

Sistem Analizi

Yazılım, bir bilgisayar sisteminin ana öğelerinden birisidir. Bir


bilgisayara dayalı bir sistemin kurulması ve geliştirilmesi eylemi
içerisinde, yazılım; bir proje halinde plânlanmakta, gereksinim
belirlenmekte, tasarlanmakta ve uygulamaya geçirilmektedir.

Yazılım geliştirme sürecinin başarısı için yazılım istekleri


çözümlemesinin doğru yapılması son derece önemlidir. Bir yazılım ne
kadar iyi tasarlanırsa ya da geliştirilirse geliştirilsin müşteri ihtiyaçlarını
karşılamıyorsa başarılı sayılamaz.

Sistem analiz çalışması, üretim sürecinin başlangıcıdır. Bu aşamadaki


amaç mevcut sistemin nasıl çalıştığının araştırılması.
Yazılım Geliştirme Yaşam Döngüsü
 Yazılımın hem üretim, hem de kullanım süresince geçirdiği tüm
aşamalar yazılım geliştirme yaşam döngüsü olarak tanımlanır.
 Yazılım işlev gereksinimleri sürekli olarak değiştiği ve
genişlediği için söz konusu aşamalar sürekli bir döngü biçiminde
ele alınır.
 Döngü içerisinde herhangi bir aşamada geriye dönmek ve tekrar
ilerlemek söz konusudur.
 Yazılım yaşam döngüsü tek yönlü ve doğrusal değildir.
Gerçek Hayatta Program Geliştirme
Gereksinim
Analizi

Bakım ve Problem
Destek Tanımlama

Program
Kurulum Tasarım

Program
Sistem Testi Kodlama

Birleştirme
Modül Testi
Testi
Gereksinim Analizi:

 Gereksinim analizi bir fizibilite çalışması gerektirebilir.

 Yazılımın servisleri, kısıtları ve hedefleri belirlenir.

 Gerçekleştirilmesi planlanan projedeki kullanıcı istekleri tanımlanır.

Kullanıcı istekleri belirlenmesinde değişik yaklaşımlar kullanılabilir.

 Örneğin kullanıcıların bütün gereksinimlerini karşılamayan ancak

düşük maliyetli bir çözüm ile bütün gereksinimlerin karşılandığı

yüksek maliyetli bir çözüm karşılaştırılabilir.


Müşteri İhtiyaçları

Gereksinim analizinde müşteri ihtiyaçları önemli bir yer tutar. Elde edilen
müşteri ihtiyaçları yazılımcı için harita niteliği taşıyacaktır. Bir yazılım ne
kadar iyi tasarlanırsa ya da geliştirilirse geliştirilsin müşteri ihtiyaçlarını
karşılamıyorsa başarılı sayılamaz.

Bu bilgiler nasıl elde edilecektir???


 Sanırım böyle olmalı (tahmin)?
 Anket ile bilgi toplayalım?
 Yazılımın bir önceki sürümüne bakalım?
 Benzer yazılımları inceleyelim?
Müşteri İhtiyaçları

 Sistemi kim kullanacak?

 Farklı tiplerde kullanıcılar olacak mı?

 Her bir kullanıcı tipinin yetenek düzeyi nedir?

 Her kullanıcı tipi için ne tür eğitimler gerekli?

 Bir kullanıcının sistemi kötü amaçlı kullanması ne ölçüde zordur?


Uygulama Alanı İstekleri: Müşteri görüşmeleri, yazılımın
kullanılacağı ortamın ve benzer uygulamaların incelenmesi sonucunda
temel gereksinimler çıkarılır ve müşterinin onayına sunulur.

Kullanıcı İstekleri: Bu aşamada sistemi doğrudan kullanacak olan


kullanıcıların beklentileri, istekleri alınır, kullanıcı ara yüzleri ve temel
bileşenler ortaya konulur.

İşlevsel İstekler: Bu aşamada geliştirilecek sistem bir bütün olarak


düşünülerek işletim kuralları ve süreç yönetimi ile ilgili ayrıntılar tam
olarak ortaya konulur.
Problemin Tanımlaması:

Bu aşamada problem derinlemesine incelenerek problemin ne olduğu ve

çözüm için yazılımın kapsamının ne olacağı belirlenir. Problemi iyi

anlamak problemin yarısını çözmek demektir.

Günlük hayatta karşılaşılan çoğu problemlerin çözülememe

sebeplerinden en önemlisi, kişilerin problemlere çözüm getirmeye

çalışmak yerine, çözümü başka kişilerden beklemelerindendir.


Yazılımın ne yapması gerektiği bu aşamada ortaya konulur.
Dolayısıyla problemin tanımlanması, gereksinim analizi
aşamasında toplanan bilgilere göre sistemi etkileyen giriş/çıkış
etkinlikleri ve kısıtlamaları dikkate alınarak yazılım işlevleri
tanımlanma aşamasıdır.

Problemi tanımlama aşaması bu iş için yeterince deneyime


sahip olan kişilerce yapılmalıdır. Bu kişiler çözümleyici ya da
gereksinim mühendisi olarak adlandırılır.
Yazılım isteklerinin çözümlenmesi aşamasında müşterinin yazılımdan ne

beklediği ayrıntılı olarak belirlenir, gereksinimler açığa çıkarılır, yazılım

istekleri modellenir ve tanımlanarak tasarım aşamasına geçilir.

Yazılım isteklerinin çözümlenmesi aşaması müşteri ve geliştirme grubu

arasında ciddi bir işbirliği gerektirir.

Yazılım geliştirme sürecinde masrafların


% 60 geliştirmeye, % 40 ise teste
harcanmaktadır.
Problem Çözme Teknikleri:
 Problem çözmede soruna hemen girişmek yerine dikkatli ve
sistematik yaklaşılmalı,

 Doğruluğu kanıtlanmadıkça, hiçbir şeyi kabul etmeden tahmin ve


önyargıdan kaçının,

 Problem çözümüne bakış açınız ayrıntılı, eksiksiz ve kusursuz


olmalı,

 Karşılaşılan büyük problemler modüler parçalara ayrılarak çözüm


getirilmelidir.
Tasarım (Modelleme):

Sistemin çalışma şekli, veri akışı, işlevsellik gibi parametreleri

daha iyi anlayabilmek için modeller yaratılır. Bu işlem kağıt

üzerinde çizimlerle yapılabileceği gibi prototipler de kullanılabilir.

Tanımlamaları bütünüyle kapsayan bir tasarımın hatları belirlenir.

 Uygulamanın dış görünüşü ile ilgili kullanıcı ara yüz tasarımı.

 Veri ve yazılım modüllerinin yapısallaştırıldığı fiziksel tasarım.


Kodlama:

 C, C++, C#, Java gibi seçilmiş bir programlama dili

kullanılarak, uygulamanın kodlamasıdır.

 Hazır paket yazılımlar kullanılmış olsa bile bu paket

yazılımlarda yeni uygulamanın gerektirdiği değişikliklerin

yapılması gerekebilir.
Test Etme (Doğrulama):

Yazılımın belirli aralıklarla sistem gereksinimini karşılayıp

karşılamadığının test edilmesi gereklidir.

 Her aşamanın sonunda yapılması gereken test işlemine doğrulama

(verification) denmektedir.

 Projenin sonunda, müşteriye ürünü teslim etmeden önce yapılan test

işlemine ise sağlama (validation) denmektedir.


Kurulum:

 Bazı sistem geliştiriciler, tasarımdan sonraki bütün proje sürecini

gerçekleştirim olarak görmekte, bazıları ise sistem geliştirme

bittikten sonraki kurulumu gerçekleştirim olarak görmektedir.

 İkinci durum, aynı zamanda veri dosyalarının ve sistem

parametrelerinin belirlenmesi, kullanıcı kılavuzlarının yazılması ve

yeni sistem kullanıcılarının eğitimini de içermektedir.


Bakım & Destek:

 Sistem kurulduktan sonra, oluşmuş hataların düzeltilmesi veya sistemdeki

iyileştirmeler veya gelişmeler için devamlı bir bakım söz konusudur.

 Bakım ve destek aktiviteleri zaman zaman ayrı küçük yazılım projeleri gibi

görülmelidir.

 Bazı ortamlardaki yazılım geliştirme faaliyeti aslında bir bakım gibi

değerlendirilebilir.
Örnek Proje –Laboratuvar Sistem İşlevi
 Kan tahlili yapan bir laboratuvarın şehir içerisinde 5 şubesi vardır.

 Her şubede 10 adet veri giriş operatörü bulunacaktır.

 Laboratuvarın ana sunucusu merkez şubede yer alacak ve herhangi


bir arıza olduğunda sistem diğer şubedeki yedek sunucuya
bağlanarak oradan işleme kesintisiz devam edecektir.

 Sistem malzeme stok yönetim takibi yapacaktır.

 Merkez şubedeki malzeme deposuna giriş-çıkış gerçekleştirilecektir.

 Şubeler ana depodan haftalık malzeme isteği yapacaktır.


 Her malzeme için kritik stok altına düştüğünde sistem uyarı vermelidir.

 Birim bazında aylık malzeme raporu yayınlanacaktır.


 Hasta bilgileri kaydedilecektir.
 Yeni tahliller eklenebilecek, güncellemeler yapılabilecektir.
 Tahlil sonucu laboratuvar yetkilisi onayladıktan sonra görüntülenecektir.
 Müşterinin önceki sonuçlarını da içerecek rapor basılabilecektir.
 Sistemin kan analiz cihazı, sonuçları direkt sisteme aktarabilecektir.
 Laboratuvar tahlillerinin tutarı hesaplanarak fatura basılabilecektir.
 Müşteriler sisteme web üzerinden verilecek şifrelerle bağlanarak tahlil
numarasıyla sonuçları öğrenebileceklerdir.
Laboratuvar Sistem Şeması
Web Üzerinden Sorgu
Tahlil Bilgileri Tahlil Sonuç
Şifre, Raporu
Sonuç Karşılaştırmalı
Hasta Tahlil
No Tahlil Sonuç
Bilgileri
Raporu

Tahlil Fatura
Onayı
Laboratuar Sistemi
Fatura Aylık
Bilgileri Malzeme
Raporu
Malzeme
İsteği Kritik Stok
Sonuçlar Seviyesi Uyarısı
Stok Bilgileri
(Depo Giriş/Çıkış) Kritik Stok
Kan analiz cihazı Seviyesi
Raporu
Laboratuvar Sistem Mimarisi
E

D A Ana Sunucu

Fiber Optik
Sistem

C Router

Switch B Yedek Sunucu


Teşekkürler…

You might also like