Yazlm Mhendislii Ders 4 Sistem zmleme Giri Sistem

  • Slides: 32
Download presentation
Yazılım Mühendisliği Ders 4: Sistem Çözümleme

Yazılım Mühendisliği Ders 4: Sistem Çözümleme

Giriş Sistem çözümleme çalışması, üretim sürecinin başlangıcıdır. Bu aşamada temel olarak mevcut sistemin nasıl

Giriş Sistem çözümleme çalışması, üretim sürecinin başlangıcıdır. Bu aşamada temel olarak mevcut sistemin nasıl çalıştığı araştırılır. Bu işlemden sonra önerilen sistem için mantıksal modelleme yapılır. Çözümleme çalışmasında mutlaka bir model/yöntem kullanma zorunluluğu vardır. Aksi durumda, çalışma dağınık biçimde sürer, denetlenemez ve başarısız olur. Yöntemler, veri modelleme ve süreç modelleme yöntemleri olarak ikiye ayrılabilir. Örneğin, Veri akış diyagramları ve Nesne ilişki şemaları yaygın olarak kullanılan süreç modelleme ve veri modelleme yöntemleridir. Yazılım Mühendisliği 2

Gereksinim Nedir? Gereksinim, kullanıcı ve tasarımcı ya da yazılım mühendisi ile ilgili olarak iki

Gereksinim Nedir? Gereksinim, kullanıcı ve tasarımcı ya da yazılım mühendisi ile ilgili olarak iki amaca yönelik olacak biçimde tanımlanmalıdır: Kullanıcılar, geliştirilecek sistemin amaçları istenilen ölçüde tanımlanmış mı sorusuna yanıt ararken, Tasarımcılar ise gereksinimlerin tasarıma dönüştürülebilme uygunluğunu ararlar. Bu nedenle Gereksinim Çözümleme amacıyla kullanılacak araç ve yöntemler hem kullanıcı hem de tasarımcı tarafından algılanabilir düzeyde olmalıdır. Yazılım Mühendisliği 3

Gereksinimler kaça ayrılır? Temel olarak, gereksinimler iki ana grupta incelenebilir: İşlevsel Gereksinimler • Sistem

Gereksinimler kaça ayrılır? Temel olarak, gereksinimler iki ana grupta incelenebilir: İşlevsel Gereksinimler • Sistem ile çevresi arasındaki iletişimi belirleyen gereksinimlerdir. Örneğin hangi koşullarda bir kişiye mesai parası ödenmeyeceği gibi. İşlevsel Olmayan Gereksinimler • Kullanıcı sorunundan bağımsız olarak çözülmesi gereken sorunlardır. Kullanılacak bilgisayarın türü, yazılım geliştirme ortamı v. b. Yazılım Mühendisliği 4

Gereksinim Türleri Yazılım Mühendisliği 5

Gereksinim Türleri Yazılım Mühendisliği 5

Gereksinim Türleri Yazılım Mühendisliği 6

Gereksinim Türleri Yazılım Mühendisliği 6

Gereksinim Türleri Yazılım Mühendisliği 7

Gereksinim Türleri Yazılım Mühendisliği 7

Gereksinim Türleri Yazılım Mühendisliği 8

Gereksinim Türleri Yazılım Mühendisliği 8

Gereksinim Özellikleri Gereksinimler üç amaca hizmet eder. 1. Geliştiricilerin, müşterilerin sistemin nasıl çalışmasını istediklerini

Gereksinim Özellikleri Gereksinimler üç amaca hizmet eder. 1. Geliştiricilerin, müşterilerin sistemin nasıl çalışmasını istediklerini anlamalarını sağlar. 2. Tasarımcılara, sonuç sistemin ne işlevsellik ve özellikte olacağını söyler. 3. Sınama ekibine, kullanıcıyı, sunulan sistemin istenen sistem olduğuna ikna etmek için neler göstermeleri gerektiğini söyler. Özellikle, gereksinimlerde belirtilen performans özellikleri ölçülebilir birimler olmalıdır ve böylece her sınama için bir hedef sağlanmalıdır. Yazılım Mühendisliği 9

Gereksinimler geçerli midir? Hem geliştiriciler hem de kullanıcılar gereksinimleri kullandığı için, gereksinimlerin geçerliliğinin doğrulanması

Gereksinimler geçerli midir? Hem geliştiriciler hem de kullanıcılar gereksinimleri kullandığı için, gereksinimlerin geçerliliğinin doğrulanması gerekir. Ø Ø Ø Gereksinimler doğru oluşturulmuş mudur? Gereksinimler tutarlı mıdır? Gereksinimler tam mıdır? Gereksinimler gerçekçi midir? Her gereksinim kullanıcı tarafından istenen bir şeyi mi tanımlamaktadır? Ø Gereksinimler doğrulanabilir mi? Ø Gereksinimler izlenebilir mi? Yazılım Mühendisliği 10

Gereksinimler Örnek Bir uzay mekiği sistemi için bir gereksinimin aşağıdaki şekilde öngörüldüğünü varsayalım: Bu

Gereksinimler Örnek Bir uzay mekiği sistemi için bir gereksinimin aşağıdaki şekilde öngörüldüğünü varsayalım: Bu gereksinimi karşılayıp karşılamadığını görmek için sistem nasıl sınanabilir? Benzer şekilde, sınanamayacak gereksinimlerden kaçınılmalıdır. "Gerçek-zamanlı yanıtın" tanımı net olarak bilinmelidir. Eğer gereksinim; biçiminde olsaydı, sistemi sorgulama işlevinin nasıl sınanacağı kesin olarak bilinebilirdi. Yazılım Mühendisliği 11

Sistem Çözümleme Temel olarak sistem çözümleme çalışması: q Mevcut Sistemin İncelenmesi q Önerilen Sistemin

Sistem Çözümleme Temel olarak sistem çözümleme çalışması: q Mevcut Sistemin İncelenmesi q Önerilen Sistemin Modellemesi Yazılım Mühendisliği 12

Mevcut Sistemin İncelenmesi Bu çalışmada temel amaç yazılım geliştirilecek olan sistemin anlaşılması ve tanınmasıdır.

Mevcut Sistemin İncelenmesi Bu çalışmada temel amaç yazılım geliştirilecek olan sistemin anlaşılması ve tanınmasıdır. Bu amaçla görüşme yapma, gerekirse anket yapma yöntemleri kullanılır. Yapılacak görüşmelerde, mevcut sistemdeki tüm işlemler, girdi, işlev, çıktı ve diğer işlevlerle olan ilişkiler sorgulanır. İlgili yönerge, kanun ve yöntemler kullanıcıdan edinilir. İnceleme işleminin belirtilmesi amacıyla çeşitli yöntemler kullanılır. İnceleme sonucu elde edilen bulgularla ilgili olarak kullanıcıdan geri bildirim alınır. Yazılım Mühendisliği 13

Önerilen Sistemin Modellemesi Mevcut sistemin modellenmesinden sonra, bilgisayar ortamında işlerin yapılabilmesi amacıyla önerilecek sistemin

Önerilen Sistemin Modellemesi Mevcut sistemin modellenmesinden sonra, bilgisayar ortamında işlerin yapılabilmesi amacıyla önerilecek sistemin modeli oluşturulur. Bu model, önerilen sistemin işlevsel yapısı, veri yapısı ve kullanıcı ara yüzünü içerir. Bu model aynı zamanda “mantıksal model” olarak da tanımlanır. Mantıksal model, önerilen sistemin veri yapısını ve süreç yapısını hem genel hem de ayrıntılı olarak tanımlar. Yazılım Mühendisliği 14

Gereksinim Verisi Toplama Mevcut sistemin incelenmesi sırasında kullanılabilecek temel yöntemler: 1. Soru Sorma 2.

Gereksinim Verisi Toplama Mevcut sistemin incelenmesi sırasında kullanılabilecek temel yöntemler: 1. Soru Sorma 2. Psikolojik Türetme Teknikleri 3. İstatistiksel Teknikler Yazılım Mühendisliği 15

Soru Sorma Yöntemi İkiye ayrılır: 1. Karşılıklı Görüşme 2. Anket Uygulaması Sorular, dağınık olarak

Soru Sorma Yöntemi İkiye ayrılır: 1. Karşılıklı Görüşme 2. Anket Uygulaması Sorular, dağınık olarak değil, yapısal bir biçimde sorulmalıdır. Bu nedenle aşağıdaki üç tarzdan biri seçilmelidir. Yazılım Mühendisliği 16

Anket Uygulaması Anket yöntemi, bir başka veri toplama yöntemidir. Kullanıcı sayısının fazla olduğu durumlarda,

Anket Uygulaması Anket yöntemi, bir başka veri toplama yöntemidir. Kullanıcı sayısının fazla olduğu durumlarda, eğilimleri ve davranış biçimlerini saptamak amacıyla yapılır. Genelde yazılı test biçiminde hazırlanır. Bir anket sorusu temel olarak soru kısmı ve yanıt kısmı olmak üzere iki kısımdan oluşur. Yanıt kısmı da tanımlama ve ölçek kısmı olmak üzere iki bölümden oluşur. Yazılım Mühendisliği 17

Psikolojik Türetme Teknikleri Özellikle, belirsizliğin fazla olduğu ve zayıf yapılı ortamlarda, bilgi edinebilmek amacıyla

Psikolojik Türetme Teknikleri Özellikle, belirsizliğin fazla olduğu ve zayıf yapılı ortamlarda, bilgi edinebilmek amacıyla insan psikolojisine dayalı teknikler kullanılır. Bu teknikler temelde görüşme ve ankete dayalı tekniklerdir. Diğerlerinden farkı, bilgi üretmek için psikolojide bilinen "üçleme" tekniğini kullanmasıdır. Bazı diğer psikolojik türetme yöntemleri, karar verme ortamlarında bilgi gereksinimlerini saptamak amacıyla algılama haritaları ve neden-etki çizelgeleri kullanmaktadır. Yazılım Mühendisliği 18

İstatistiksel Teknikler Verinin yoğun ve veri hacminin yüksek olduğu ortamlarda, verinin özelliklerini belirlemek amacıyla

İstatistiksel Teknikler Verinin yoğun ve veri hacminin yüksek olduğu ortamlarda, verinin özelliklerini belirlemek amacıyla istatistiksel teknikler kullanılır. Bu yöntemlerden en çok bilinen ikisi Örnekleme Yöntemi ve PIRA Modelidir. Örnekleme yöntemi, bir topluluk içerisinden, sistematik yolla temsili bir örnek alma olarak tanımlanır. Amaç, veri toplama hızını arttırmak ve verilerdeki çelişkileri önlemektir. PIRA (Personal, Interactive, Report and Analysis) Modeli, bilgi gereksinimlerinin tanımlarını belirli normlara bağlı olarak açıklamayı hedefler. Kişilerin bilgiye dayalı tercihlerini belirlemek amacıyla kullanılır. Yazılım Mühendisliği 19

Veri Modelleme Yöntemleri Önerilen sistemin mantıksal modelinde veri yapısını açıklamak için “Veri Modelleme” yöntemleri

Veri Modelleme Yöntemleri Önerilen sistemin mantıksal modelinde veri yapısını açıklamak için “Veri Modelleme” yöntemleri kullanılmaktadır. Bu yöntemler, veri yapısını en soyut düzeyden en ayrıntı düzeye kadar çeşitli düzeylerde tanımlamayı amaçlar. Sistem çözümleme aşamasında en yaygın olarak kullanılan veri modelleme yöntemleri iki tanedir: 1. Nesne İlişki Şemaları: Veri yapısını en soyut düzeyde tanımlamak amacıyla kullanılır. 2. Veri Sözlüğü: Veri yapısına ilişkin ayrıntı bilgileri içerir. Yazılım Mühendisliği 20

Nesne-İlişki Şemaları Yazılım Mühendisliği 21

Nesne-İlişki Şemaları Yazılım Mühendisliği 21

Nesne-İlişki Şemaları Bir veri nesnesi, üç temel özelliği ile bilinir: 1. Veri nesnesi varlığının

Nesne-İlişki Şemaları Bir veri nesnesi, üç temel özelliği ile bilinir: 1. Veri nesnesi varlığının adı: Veri nesnesi varlığını tanımlayan özelliktir. 2. Veri nesnesi varlığının özellikleri 3. Veri nesnesi varlığının diğer veri nesnesi varlıklarına referansı: Veri nesnesi varlığının diğer veri nesneleri ile olan ilişkisinin belirtilmesi amacıyla kullanılır. Bu amaçla her bir veri nesnesini tek olarak belirleyen bir belirteç (anahtar) kullanılır. Söz konusu anahtar veri nesnesi varlığının ad özellikleri arasında yer alır. Yazılım Mühendisliği 22

Nesne-İlişki Şeması Örnek Araba ve İnsan adlı iki veri nesnesi ele alalım. Yazılım Mühendisliği

Nesne-İlişki Şeması Örnek Araba ve İnsan adlı iki veri nesnesi ele alalım. Yazılım Mühendisliği 23

Nesne İlişkileri Veri nesneleri arasındaki ilişkiler bire bir (1 -1), bir den çoğa (1

Nesne İlişkileri Veri nesneleri arasındaki ilişkiler bire bir (1 -1), bir den çoğa (1 -N ya da N-1) ya da çoktan çoka (M-N) tanımlanabilir. Örneğin: 1 - 1 ilişki : Bir İnsan ancak bir Araba sahibi olabilir. 1 - N ilişki: Bir İnsan birden çok Araba sahibi olabilir: M - N ilişki: Birden çok İnsan birden çok Araba sahibi olabilir. Yazılım Mühendisliği 24

Veri Sözlüğü Nesne ilişki şemalarında belirtilen nesne özelliklerinin ayrıntılı tanımları Veri Sözlüğünde yer alır.

Veri Sözlüğü Nesne ilişki şemalarında belirtilen nesne özelliklerinin ayrıntılı tanımları Veri Sözlüğünde yer alır. Söz konusu ayrıntılı tanımlar genel olarak: Ø Veri Adı Ø Veri Eş-adı (Aynı veri için kullanılan diğer ad) Ø Nerede/nasıl kullanıldığı Ø İçerik tanımı türünde bilgileri içerir. Örnek: Kişi telefon bilgisinin tanımlanması telefon no = [ yer kodu | numara ] yer kodu = [ 212 | 242 | …. . | 312 ] numara = * yedi basamaklı herhangi bir sayı * Yazılım Mühendisliği 25

Veri Sözlüğü Yazılım Mühendisliği 26

Veri Sözlüğü Yazılım Mühendisliği 26

Süreç/İşlem Modelleme Yöntemleri Süreç/İşlem modelleme yöntemleri, geliştirilecek sistemin süreç ya da işlemlerini ve bu

Süreç/İşlem Modelleme Yöntemleri Süreç/İşlem modelleme yöntemleri, geliştirilecek sistemin süreç ya da işlemlerini ve bu süreçler arasındaki ilişkileri tanımlamak amacıyla kullanılan yöntemlerdir. Veri Akış Diyagramları (VAD) Süreç Tanımlama Dili (STD) Karar Tabloları Karar Ağaçları Nesne Şemaları Yazılım Mühendisliği 27

Veri Akış Diyagramları kullanılarak geliştirilecek sistemin mantıksal modeli, 'Yukarıdan Aşağıya' bir yaklaşımla oluşturulur. Sistem

Veri Akış Diyagramları kullanılarak geliştirilecek sistemin mantıksal modeli, 'Yukarıdan Aşağıya' bir yaklaşımla oluşturulur. Sistem önce en genel biçimiyle ele alınır, yalnızca dışsal ilişkileri incelenir. Daha sonra, sistemin iç yapısındaki süreçler ve bu süreçler arasındaki ilişkiler belirlenen bir ayrıntı düzeyine kadar modellenir. 4 temel sembol kullanılarak oluşturulur. Yazılım Mühendisliği 28

Veri Akış Diyagramları Mantıksal veri yığınlarını göstermek amacıyla ucu açık dikdörtgenler kullanılmaktadır. Süreçler arası,

Veri Akış Diyagramları Mantıksal veri yığınlarını göstermek amacıyla ucu açık dikdörtgenler kullanılmaktadır. Süreçler arası, süreçler ile veri kaynakları ve veri depoları arasındaki veri akış ilişkileri göstermek amacıyla oklar kullanılır. Temel olarak bir sistemin mantıksal modelinin süreç yapısı, üç tür Veri Akış Diyagramı çizilerek elde edilir. Yazılım Mühendisliği 29

Kapsam Diyagramı (DB: Dış birim, BS: Bilgi Sistemi) • VAD, bilgi sisteminin durağan yapısını

Kapsam Diyagramı (DB: Dış birim, BS: Bilgi Sistemi) • VAD, bilgi sisteminin durağan yapısını gösterir. • VAD, bilgi sisteminin süreçlerini, bu süreçler arasındaki veri akış ilişkilerini gösterir. • VAD bilgi sistemi süreçlerinin zamana ilişkin durumunu ve bu durumla ilgili bilgileri göstermez. Yazılım Mühendisliği 30

Genel Bakış Diyagramı (S: Süreç, VD: Veri Deposu, a, b, c, d, e, f,

Genel Bakış Diyagramı (S: Süreç, VD: Veri Deposu, a, b, c, d, e, f, g, h, i, k : Veri akışları) • VAD, bilgi sistemi süreçleri ile ilgili olan kurum birimlerini ya da dış birimleri bilgi kaynakları olarak gösterir. • VAD, bilgi sistemi süreçlerinin kendi aralarındaki "karar" ilişkisini göstermez. Yazılım Mühendisliği 31

Detay Ayrıntı Diyagramı (a, b, c, l, m : Veri akışları) • VAD, bilgi

Detay Ayrıntı Diyagramı (a, b, c, l, m : Veri akışları) • VAD, bilgi sistemi için gerekli olan ana veri depolarının neler olduğunu ve hangi süreçler tarafından kullanıldığını gösterir. • VAD, gerek bilgi sistemi süreçleri, gerek veri akışları gerekse bilgi kaynakları ve bilgi depoları için ayrıntı içermez. Yazılım Mühendisliği 32