Biraz geç oldu ama inanın arkadaşlar yoğunluktan ben bile çalışamadım sınava 2 gün kala bu notları çıkartırken bende çalışacağım. Açılışı Sistem Analizi ve Tasarımı Ders Notları ile başlıyorum nedeni kredisi en yüksek ve zor bir sınav olduğu için. 14 yaşımdan beri bilgisayar ile iç içeyim ve 17 yaşımdan beride yazılım işindeyim ilk başta nasılsa kolay olur benim için dedim ama öyle değilmiş dostlar o yüzden sadece notlara güvenmeyin en az 1 kere Sistem Analizi ve Tasarımı PDF kitabını bir kere okuyun. Şimdi lafı fazla uzatmadan Sistem Analizi ve Tasarımı Ders Notlarına geçelim arkadaşlar;
1. ÜNİTE
Sistem Analizi ve Tasarımına Giriş
Sistem ve Bilgi Sistemi
Sistem denildiğinde aklınıza ev sinema sistemi gelinsin arkadaşlar bununla birlikte hangi bileşenlerden bir araya gelip ev sinema sistemi olduğunu düşünün.
Bilgi sistemi ise bir işletmenin ihtiyaçlarını gideren bir yapıdır ve genelde aşağıdaki bileşenlerden oluşur;
- Donanım kaynakları: Sunucu, bilgisayar vb. kısacası elle tutabildiğiniz her şey.
- Yazılım kaynakları : Kısaca bilgisayarda kullandığınız programlar aklınıza gelsin. Verileri düzenleyen işleyen yorumlayan ve analiz eden her şey.
- İnsan kaynakları: Bilgi sistemini kullanan çalışanlar, sahipleri, tasarlayanlar ve bu bilgi sistemini kuranlardır.
- Veri kaynakları: Bilgi sistemlerinin kullandığı ve ürettiği verilerin tutulduğu veritabanı (database) ve bilgi tabanı (knowledge base).
- Ağ kaynakları: İşletme içinde ve işletme dışında aynı bilgi sistemini kullanması durumda birbirleriyle bağlanmasını sağlayan yapılar.
Bilgi Sistemlerinin Sınıflandırılması
Buradan soru geliyor mutlaka haberiniz olsun sonra ben bilmiyordum demeyin. Özellikle Ofis Otomasyon Sistemlerinden 2 defa gelmiş eski sınavlarda.
- Kayıt İşleme Sistemleri; Kısa adı KİS olan bu sistemlerin tek yaptığı şey kayıt işlemidir. Hasta kayıt, rezervasyon sipariş girişi gibi sistemlerin tek amacı kayıttır.
- Ofis Otomasyon Sistemleri (OSS); Bu sistemler veri üretmez var olan verileri analiz eder, bilgi üzerinde değişik yapabilirler. E-posta vb. sistemler buna örnektir.
- Yönetim Bilgi Sistemleri (YBS); İşlem verilerini kullanarak yöneticilerin ihtiyaç duydukları bilgileri üretir ve rapor hâlinde sunar.
- Karar Destek Sistemleri (KDS); Karar vericilerin alternatifleri belirlemesine ve bu alternatif arasından birini tercih etmesine yardımcı olur. KDS, karar verme sürecinin her aşamasında kullanıcıya yardımcı olmasıyla YBS’den farklılaşmaktadır.
- Uzman Sistemleri (US); Uzmanın düşüncesini taklit ederek işletmede ortaya çıkan bir
probleme çözüm üretebilir. US, KDS’den farklı olarak son kararı karar vericiye bırakmaz. - Grup Karar Destek Sistemleri (GKDS); Bir grubun verilen problemi çözmesine yardımcı olmak üzere geliştirilir. Problem çözümünde oylama, anket, beyin fırtınası ve senaryo geliştirme gibi yöntemler kullanılır.
Bilgi Sisteminin Paydaşları
Sistem analisti bir işletmenin problemlerini ve ihtiyaçlarını belirler. Bu konularda iyileştirmeler yapmak için çalışır. Veri, süreçler ve bilgi teknolojisinde yapılacak değişiklikleri planlar ve gerçekleştirilmesini sağlar.
Sistem analisti kuracağı sistemin paydaşlarını bilmek zorundadır. Bilgi sistem paydaşları beş grupta sınıfandırılabilir. Bunlar;
- Sistem Sahipleri
- Sistem Kullanıcıları
- Sistem Tasarımcıları
- Sistem Kurucuları
- Sistem Analistleridir.
Altı çizili olan yerlerden soru geldi özellikle Sistem analistleri kısmını annenizin adı gibi bilin.
Sistem Sahipleri
Sistem sahiplerini işletme sahipleri yada yönetim de yer alan kişiler olarak düşüne bilirsiniz. Bu kişilerin teknik ayrıntılar bilgiye ve ayrıntılarla ilgilenmezler tek ilgilendikleri şey maliyetler ve işletmeye olan kazancıdır.
Sistem Kullanıcıları
Bilgi sistemini kullanan kişiler olarak düşünebilirsiniz. Sistemin maliyeti yada faydaları ile az ilgilenirler daha çok kullanım kolaylığı ve işlerin gerektirdiği işlemler ile ilgilenirler. Dahili ve harici olarak ikiye ayrılırlar.
- Dahili Kullanıcılar; Büro ve servis çalışanları, Teknik ve profesyonel personeller ve yöneticilerdir.
- Harici Kullanıcılar; Müşteriler, tedarikçiler, taşeronlar ve çalışanlar (ev, ofis veya işletmenin bulunduğu şehirden başka bir şehirde çalışanlar).
Sistem Tasarımcıları
Bu kişiler bilgi sistemine teknolojik katkı yani geliştiren kişilerdir.
- Veritabanı yöneticileri: İşletmenin veritabanını tasarlayan kişiler.
- Ağ mimarları: Ağ ve haberleşme uzmanlarıdır.
- Web mimarları: İşletmeler için web sayfalarını düzenleyen uzmanlardır.
- Grafik sanatçıları: Arayüzleri tasarlarlar.
- Güvenlik uzmanları: Bilgi sisteminin güvenliği üzerine çalışmalar yaparlar.
- Teknolojik uzmanlar: Bilgi sisteminde yer alacak özel teknolojiler konusunda uzmanlıklara sahip kişilerdir (örneğin veritabanı yazılımında Oracle uzmanı veya ağ donanımında Cisco ağ uzmanı gibi). Bilgi sisteminde kullanılacak teknoloji konusunda bu kişilerden danışmanlık veya kurulum hizmeti alınır.
Sistem Kurucuları
Belirttikleri özellikler doğrultusunda sistemi kuran uzman grubudur. Küçük işletmelerde veya küçük bilgi sistemlerinde sistem tasarımcıları ve sistem kurucuları aynı kişilerdir. Büyük işlerde bu kişiler kesinlikle farklı kişilerdir.
Sistem Analistleri
Sistem analisti, sistem sahipleri ve sistem kullanıcıları için işletmenin problemlerini ve ihtiyaçlarını belirler ve onaylar.
Sistem Analistinin Rolü
Sistem analistinin en önemli görevi işletmede değişim başlatmaktır. İyi bir analist,
işletmeye rekabetçi avantaj getirecek, yeni pazarlar ve hizmetler bulacak şekilde değişim
sürecini başlatabilmelidir. Sistem analistinin üç temel rolü; danışman, destekleyici uzman
ve değişim ajanı olmaktır.
Değişim, bilgi sistemlerinin kullanımı sonucu işletmede gerçekleştirilen iyileştirmeler. (Önemli)
- Danışman Olarak Sistem Analisti: Şirkete dışarıdan danışmanlık yapanlar.
- Destekleyici Uzman Olarak Sistem Analisti: Sistem analisti işletmedeki başka bir sistem görevi için destekleyici uzman olarak görevlendirilebilir.
- Değişim Ajanı Olarak Sistem Analisti: Sistem analistinin bir işletmede dâhili veya
harici olarak alacağı en kapsamlı ve sorumluluk isteyen rolü değişim ajanı görevidir. Değişim ajanı, değişim için katalizör olan, değişim planını geliştiren ve gerçeklenmesinde
başka görevlilerle birlikte çalışan kişi olarak tanımlanabilir. Değişim ajanının işletmedeki
varlığı işletmenin değişimine sebep olur.
Sistem Analistinin Sahip Olması Gereken Yetenekler
- Bilgi teknolojileri bilgisi
- Programlama deneyimi ve uzmanlığı
- İş süreçleri ve terminolojisi konusunda genel bilgi
- Genel problem çözme yeteneği
- Kişiler arası iyi iletişim yeteneği
- Kişiler arası iyi ilişki kurma yeteneği
- Esneklik ve uyumluluk
- Karakter ve etik
Ortaya Karışık Bilgiler 🙂
- HTML 5, xHTML ve XML, Web sayfası hazırlama ve İnternet uygulaması geliştirmekte kullanılan temel dillerdir.
- Script dilleri, özellikle İnternet uygulamaları için geliştirilmiş programlama dilleridir.
- Intranet, bir işletmedeki çalışanların kullanması için tasarlanan özel ağ mimarisidir.
- Extranet, işletmeler arası kullanım için geliştirilen özel ağ mimarisidir.
- Portal, farklı kullanıcıların ihtiyaçları doğrultusunda yapılandırılmış ana sayfadır.
- Web servisleri, yeniden kullanılabilen ve web tabanlı programlar veya başka İnternet programları tarafından çağrılabilen program parçalarıdır. Örnek kredi kartı ile ödeme sistemleri.
Sistem Geliştirme Yaşam Döngüsü
Sistem geliştirme yaşam döngüsü (SGYD), sistem analizi ve tasarımının, analist ve kullanıcı faaliyetlerinin özel yöntemler aracılığıyla geliştirildiği, fazlara bölünmüş bir yaklaşımdır. Bu fazlar;
- Kapsam ve Planlama
- Gereksinim Analizi
- Tasarım
- Gerçekleştirme ve Test
- Kurulum ve Dağıtım
- Operasyon ve Bakımdır.
Kapsam ve Planlama
Sistem geliştirmenin bu fazında sistem analisti, problemlerin, fırsatların ve amaçların belirlenmesi ile ilgilenir. Bu faz projenin geri kalanı için kritik önemdedir çünkü yanlış bir
problem üzerinde çalışıp zaman kaybetmeyi hiç kimse istemez.
Gereksinim Analizi
Analistin ilgileneceği bir sonraki görev sistem gereksinimlerinin analizidir. Analist, veri
akış diyagramları, faaliyet diyagramları gibi araçları kullanarak geliştirilen sistemdeki tüm
verilerin ve özelliklerinin yer aldığı bir sözlük oluşturur
Tasarım
SGYD’nin bu fazında, sistem analisti bilgi sisteminin mantıksal tasarımı için önceden toplanan bilgileri kullanır. Kullanıcıların bilgi sistemine doğru veri girişi yapabilmeleri için
yöntemleri tasarlar.
Gerçekleştirme ve Test
Tasarım fazında özellikleri belirlenen sistem bu fazda gerçeklenir ve test edilir. Tüm sistemde oluşabilecek hataları bulmak ve düzeltmek üzere testler uygular
Operasyon ve Bakım
Sistem kurulduktan sonra sürdürülmelidir. Diğer bir ifade ile bilgisayar programları uyarlanmalı ve güncel tutulmalıdır. Sistemi sürdürmek için harcanan zamanın, sistem geliştirme için harcanan zamanın %60’ına kadar ulaşabileceği tahmin edilmektedir.
Ünite 2
Bilgi Sistemlerinin Geliştirilmesi
Sistem geliştirme modeli; faaliyetler, teknikler, uygulamalar, çıktılar ve sistem paydaşlarının kullandığı otomatik araçlar ile bilgi sistemlerinin geliştirilmesini ve sürekli iyileştirilmesini içerir.
Sistem Geliştirme Yaşam Döngüsü, bilgi sistemi geliştirilirken uygulanan fazların kavramsal bir modelidir. Bu kitapta sistemlerin geliştirilmesinde kullanılan SGYD modeli 6 temel fazdan oluşmaktadır;
Kapsam ve Planlama
Sistem Geliştirme Yaşam Döngüsünün ilk fazında problemin kapsamı, fırsatları ve hedefleri tanımlanır.
Gereksinim Analizi
İkinci fazda sistem analisti sistem ihtiyaçlarını analiz eder. İşlevsel gereksinimleri belirlemek için;
- Yeni sistem, kullanıcılarına hangi kabiliyetleri sunar?
- Hangi veri toplanmalı ve depolanmalıdır?
- Hangi performans düzeyi beklenmektedir?
İteratif geliştirmede, bilgi sisteminin birden fazla tekrar (iterasyon) geliştirme ile daha iyi hâle getirilmesi hedeflenir.
Tasarım
Sistem tasarımında analist, alternatif çözüm önerilerini mantıksal ve fiziksel sistem özelliklerine dönüştürür.
Sistem Modeli sistemin soyut modelinin grafikler ile gösterilmesidir. Gereksinim Analizi fazında bilgi sisteminin gereksinimlerini belirlemek, tasarım fazında sistem geliştiricilerine sistemi tanımlamak, bilgi sisteminin kurulum ve uygulamaya alma fazında da belgeleri oluşturmak için sistemi ifade eden modeller kullanılır.
- Teknik fizibilite: Önerilen çözüm, teknik olarak uygulanabilir olmalıdır.
- Operasyonel fizibilite: Çözümün kullanıcı gereksinimlerini karşılaması, kullanıcıların çalışma ortamını nasıl değiştirdiği, kullanıcıları memnun edip etmeyeceği incelenmelidir.
- Ekonomik fizibilite: Çözümün maliyeti proje bütçe hedefleri ile uyumlu olmalıdır.
- Zamanlama fizibilitesi: Çözümün tasarım ve geliştirilmesi, projenin genel zaman planıyla uyumlu bir zaman aralığında yapılmalıdır.
- Risk fizibilitesi: Önerilen teknik ve süreçler kullanıldığında çözümün başarıyla geliştirilme ihtimali yüksek olmalıdır.
Mantıksal tasarıma karar verildikten sonra yazılı ve/veya sözlü sistem önerisi oluşturulur. Bu öneri gerekirse genel sistem mimarisini de içerebilir. Sistemin mantıksal tasarım önerisinin onayından sonra Fiziksel tasarıma geçilir.
Gerçekleştirme ve Test
Sistem gerçekleştirme ve test fazında, özellikleri ortaya konulmuş olan sistem geliştirilir ve
testleri tamamlanarak çalışır hale getirilir.
Kurulum ve Dağıtım
Gerçekleştirme ve test fazında oluşturulan fonksiyonel sistem, kurulum ve dağıtım fazının girdisini oluşturur. Sistem analistleri sistem kullanıcılarını eğitir, birçok kullanıcı el kitaplarını ve üretim kontrol el kitaplarını oluşturur, eski veritabanının yeni veri tabanına aktarımını ve en son sistem testlerini yapar.
Operasyon ve Bakım
SGYD’nin son fazı Operasyon ve Bakımdır. Sistemin kurulup çalışmaya başladığı bu evre en uzun yaşam döngüsü fazıdır. Sistem işletmelerde çalışmaya başladıktan sonra kullanıcılar bazen işleyiş ile ilgili problemler olduğunu fark eder, yaşam döngüsünün erken fazlarında görülmeyen problemler ortaya çıkar ya da iyileştirme yapmayı talep eder.
Sistem desteği, sistem kullanıcılarına sistem çalıştığı sürece verilen teknik desteği ve herhangi bir hata durumunda veya yeni gereksinimler ortaya çıktığında verilen bakım hizmetlerini kapsar. Sistem desteği aşağıdaki faaliyetlerden oluşur:
- Kullanıcıya yardımcı olma: Yeni kullanıcı eklenmesi vb. durumlarda son kullanıcıya ilave destek sağlamak gerekebilir.
- Yazılım hatalarını Onarma: Sistem geliştirilmesi ve testleri yapılmış olsa da bazı hatalar kalmış olabilir. Bu hatalar sistem desteği ile giderilmelidir.
- Sistemi kurtarma: Zaman zaman sistem hatası programın olmadık şekilde kapanmasına ve hatta veri kaybına sebep olabilir. Bu durumda sistemin yeniden başlatılması, sistem dosya veya veritabanının son kurtarma noktasına geri getirilmesi gerekebilir.
- Sistemi yeni gereksinimlere göre güncelleme: Değişiklik istekleri; yeni ortaya çıkan iş problemlerini, teknik problemleri ve teknoloji gereksinimlerini içerebilir.
Bilgi Sistemi Geliştirme Modelleri
Doğrusal Ardışık Model
Sistem analizi ve tasarımında kullanılan Doğrusal ardışık model yaklaşımında fazlar sadece bir defa olmak üzere sıra ile işletilir.Doğrusal ardışık model aynı zamanda Şelale Modeli (WaterFall Model) olarak da isimlendirilir.
- Kapsam ve Planlama
- Gereksinim Analizi
- Tasarım
- Geliştirme ve Test
- Kurulum ve Dağıtım
- Operasyon ve Bakım
Prototip Model
Kitap da ki saçmalığa bakmayın arkadaşlar siz kısacası prototip model dediğiniz şey yazılımı yapacak kişilerin o iş kolu ile ilgili tam olarak bilgisi olmaması müşteri ihtiyaçlarına göre ortaya bir sistem çıkartılması. Kısacası kervan yolda düzülür hesabı :).
Artımlı Model (Sınavda hep buradan sorulmuş)
Artımlı model (Incremental model), ilk uygulamanın oluşturularak kullanıcı görüşüne başvurulması ve istenilen son sistem geliştirilinceye kadar birçok sürüm oluşturulması fikrine dayanır.
Spiral Model (Soru Geldi)
- Müşteri iletişimi: Geliştirici ve müşteri arasında etkin bir iletişimin kurulması görevlerini,
- Planlama: Kaynakların, zaman çizelgelerinin ve proje ile ilgili diğer bilgilerin tanımlanması görevlerini
- Risk Analizi:Teknik ve yönetim risklerinin belirlenmesi görevlerini
- Mühendislik: Uygulamanın bir veya daha fazla çözümünün oluşturulması görevlerini
- Gerçekleştirme ve Kurulum: Sistemin inşa edilmesi, test, kurulum ve kullanıcı desteğini (belgeleme, kullanıcı eğitimleri) oluşturma görevlerini
- Müşteri Değerlendirmesi: Mühendislik çözümleri, gerçekleştirme ve kurulum sonrasında sistem hakkında müşteri değerlendirmesinin alınması görevlerini içerir.
Bileşen Tabanlı Geliştirme Modeli
Nesne tabanlı teknolojiler Bileşen tabanlı geliştirme modelinin (Component-based development model) teknik çerçevesini oluşturur.
Çevik Model
Çevik model (Agile Model) sistemin gereksinimlerini belirleme, tasarım, geliştirme ve kurulumunda artan yaklaşımı kullanır. Geliştirme sürecinde sistem gereksinimleri genelde değiştiği durumlarda Çevik model en uygun yaklaşımlardan biridir
Scrum (Sınavda çıkmadı ama bu alanda ilerleyeceksiniz bu yöntemi adınız gibi bilin)
Scrum yaklaşımı çevik yöntemlerin teknik yaklaşımları yerine iteratif geliştirme yöntemine odaklanmış bir çevik metottur.
Şekil 2.8’de Scrum yönetim süreci gösterilmektedir. Scrum’ da 3 faz vardır. Birinci fazda proje genel hedeeri ve yazılım mimarisinin tasarımını oluşturmak üzere ana hat planlama yapılır. Bu aşamada oluşturulan projenin ana gereksinimleri önem sırasına göre bir
liste (Product Backlog) olarak toplanır (Faz 1).
Bilgisayar Destekli Sistem Geliştirme Araçları
Bilgisayar destekli yazılım mühendisliği araçları CASE araçları olarak adlandırılır. Bilgisayar destekli sistem geliştirme araçları, sistem analistlerinin bilgi sistemlerini geliştirmek için kullandığı otomatik yazılım araçlarıdır.
Bilgisayar Destekli Yazılım Mühendisliği Araçları
CASE (Computer-Aided Software Engineering tools) sistem geliştiricilerinin karmaşık bilgi sistemlerini yüksek kalitede, planlanan zaman ve bütçede tamamlamasını destekleyen araçlardır.
CASE kaynakları:
- Diyagram araçları
- Bilgisayar gösterim ve raporlama üreticileri
- Analist araçları
- Kalite yönetim araçları
- Proje Yönetim araçları
- Tasarım ve program üretici araçları
- Test araçları
- Belgeleme araçları
Uygulama Geliştirme Ortamları (Soru Geldi)
Programlama dilleri ve derleyiciler: Önemli hata ayıklama ve program yazma desteği
ile programcıların problemleri kolayca bulmasını ve çözmesini sağlar
- Arayüz oluşturma araçları: Programcıların bileşen kütüphaneleri aracılığı ile hızlı arayüzler oluşturmasını sağlar
- Ara katman yazılımları: Programcıların geliştirdikleri yazılımı değişik veritabanlarına,
bilgisayar ağlarına hızlı bir şekilde entegre etmesini destekler. - Test araçları: Geliştirilen yazılımın test senaryoları ile test edilmesini sağlar.
- Sürüm kontrol: Ekip olarak çalışan programcıların geliştirilen ve geliştirme sonrası kurulmuş ve çalışmakta olan yazılımların (kaynak ve çalışan yazılım) farklı sürümlerinin
yönetimini, saklanmasını ve erişmesini sağlar. - Yardım yazarlığı araçları: Çevrimiçi yardım, çevrimiçi eğitim ve kullanıcı el kitaplarının yazılmasında kullanılır
çoooooooooook teşekkürler