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

Benzer belgeler
YAZILIM MÜHENDİSLİĞİNİN TEMELLERİ. 5.Hafta Sistem Çözümleme. Dr. Muhammet BAYKARA

YMT 312-Yazılım Tasarım Ve Mimarisi Planlama ve Sistem Çözümleme

Yazılım Mühendisliği Bölüm - 4 Sistem Analizi. Cengiz GÖK

Kullanım Durumu Diyagramları (Use-case Diyagramları)

SİSTEM VE YAZILIM. o Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur.

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir?

Yaz.Müh.Ders Notları #4 1

Veri Akış Diyagramı (VAD)

NESNEYE YÖNELİK ÇÖZÜMLEME SÜRECİ

Varlık davranış modeli: Bu aşama her entity ye etki eden durumların tanımlandığı, modellendiği ve dokümante edildiği süreçtir.

9.DERS Yazılım Geliştirme Modelleri

SİSTEM ANALİZİ VE TASARIMI

END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ

BTP 209 SİSTEM ANALİZİ VE TASARIMI

Sistem Geliştirme Yaşam Döngüsü (The Systems Development Life Cycle) (SDLC)

5.DERS PROJEDE YÜRÜTMENİN PLANLANMASI

VERİ TABANI YÖNETİM SİSTEMLERİ Melih BÖLÜKBAŞI

İlk Bölüm: Proje hazırlarken izlenmesi gereken yöntem ve yaklaşımlar

VERİ TOPLMA ARAÇLARI

VERİ KAYNAKLARI. Bilgi sisteminin öğelerinden biride veri

FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ Yazılım Mühendisliği Bölümü

Yazılım Mühendisliği Bölüm - 3 Planlama

YAPIM YÖNETİMİ - EKONOMİSİ 03. İşler veya eylemler olası olan zaman ve mekanının tamamını kullanacaktır.

İnternet Destekli Temel Bilgisayar Bilimleri Dersinde Anket Uygulaması

BSM 532 KABLOSUZ AĞLARIN MODELLEMESİ VE ANALİZİ OPNET MODELER

NESNEYE YÖNELİK PROGRAMLAMA Unified Modelling Language (UML) Bütünleşik Modelleme Dili

Yazılım Mühendisliği Bölüm - 2 Yazılım Geliştirme Yaşam Döngüsü. Cengiz GÖK

Eylül 2007 de v1.0 ı yayınlanan SysML sayesinde endüstri mühendislerinin de ihtiyacı karşılanmış oldu.

YAZILIM GÜVENLİK TESTLERİ. H A L D U N T E R A M A N h a l d u n t e r a m a g m a i l. c o m

VERİ TABANI SİSTEMLERİ

BM208- Nesneye Dayalı Analiz ve Tasarım. Sunum 7

BLG Sistem Analizi ve Tasarımı. Öğr. Grv. Aybike ŞİMŞEK

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Veritabanı Tasarımı. Değişimi Modelleme: Ücret

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

Yazılım Mühendisliği 1

BİÇİMSEL YÖNTEMLER (FORMAL METHODS) Betül AKTAŞ Suna AKMELEZ

<Ekip Adı> <Proje Adı> Yazılım Gereksinimlerine İlişkin Belirtimler. Sürüm <1.0>

VERİTABANI Veritabanı Tasarımı

SÜREÇ YÖNETİMİ KAPSAMINDA PROSEDÜR HAZIRLAMA

4. ÜRÜN GELİSTİRME İŞLEMİ

Sistem Analizi ve Tasarımı

İÜ AÇIK VE UZAKTAN EĞİTİM FAKÜLTESİ. Süreç İyileştirme Standardı

Yrd. Doç. Dr. Ayça Tarhan. Hacettepe Üniversitesi Bilgisayar Mühendisliği Bölümü

WEB PROJESİ YÖNETİMİ. Belli bir süre içerisinde, belli bir bütçe ile belirlenen hedeflere ulaşmak için uygulanan metodolojik süreçtir.

Bölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler. Fundamentals, Design, and Implementation, 9/e

Chapter 8 Yazılım Testi. Lecture 1. Chapter 8 Software testing

Proje Çevresi ve Bileşenleri

Veri Toplama Teknikleri

1.Yazılım Geliştirme Metotları 1

Dersin Yürütülmesi Hakkında

Araştırma Problemleri: Problem İfadeleri, Araştırma Soruları ve Hipotezler

Bir çalışmanın yazılı bir planıdır. Araştırmacının yapmayı plandıklarını ayrıntılı olarak ifade etmesini sağlar. Araştırmacıya yapılması gerekenleri

Bilgisayara Dayalı Bilgi Sistemleri

OTOBÜS İŞLETMESİ OTOMASYONU. Otobüs işletmesi Otomasyonu hazırlanırken takip edilen Yazılım Geliştirme Süreçleri yukarıda gösterilmiştir.

YAZILIM MÜHENDİSLİĞİNİN TEMELLERİ 9.Hafta. Bakım

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Yazılım Mühendisliği II (BIL 306)

Yaz.Müh.Ders Notları #6 1

Yazılım sisteminin nasıl olacağina karar verilmesi için bu evrenin çok dikkatli şekilde planlanması ve yürütülmesi gerekir.

ICATT ÇEVİRİ UYGULAMASI SİSTEM MİMARİSİ VE VERİTABANI TASARIMI

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

IBM Analytics Professional Services (IBM Analitik Profesyonel Hizmetleri)

Sistem ve Yazılım Nedir?

TÜİK e-vt Teknik Kılavuz

Yazılım profesyonelleri için önemli olan yetkinlikler anketi Survey

Girişimcilikte Simülasyon: Eğitimcinin Eğitimi

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

HR - İnsan Kaynakları Modülü Organizasyon Yönetimi - Organizasyon Şeması İşlemleri

BARIŞ TATİL SİTESİ DOKÜMAN KONTROLÜ PROSEDÜRÜ

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

BMH-405 YAZILIM MÜHENDİSLİĞİ

BMH-405 YAZILIM MÜHENDİSLİĞİ

Yaz.Müh.Ders Notları #3 1

İÇİNDEKİLER. Çeviri Ekibi /5 Çeviri Önsözü / 6 Şekiller Listesi / 8 Tablolar listesi / 9 Ayrıntılı İçerik / 10

Bilgi Yönetimi Öğrencilerinin Öğrenme Stilleri. Hacettepe Üniversitesi

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri

Temel Kavramlar Bilgi :

Öğretim planındaki AKTS Ulusal Kredi

HDL ile Gelişmiş Sayısal Tasarım (EE 425) Ders Detayları

Nesne Tabanlı Programlama. Ders Notları

SİSTEM ANALİZİ ve TASARIMI. ÖN İNCELEME ve FİZİBİLİTE

Okut. Yüksel YURTAY. İletişim : (264) Sayısal Analiz. Giriş.

Ders 9 İşlem tanımları. Ders Sorumlusu: Dr. Saadettin Erhan KESEN

KİMYA MÜHENDİSLİĞİ STAJ BİLGİLERİ

SİMÜLASYON Hazırlayan: Özlem AYDIN

Giriş: Temel Adımlar YAZILIM GELİŞTİRME YAŞAM DÖNGÜSÜ. Belirtim Yöntemleri. Belirtim Yöntemleri

İŞ YERİNDE UYGULAMA KURALLARI

Veri Tabanı ve Yönetim Sistemleri Final Projesi Kuru Temizleme Takip Sistemi. Hazırlayanlar : Fatma Çiftçi Zeynep Doğru

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

ÖNSÖZ ŞEKİL LİSTESİ TABLO LİSTESİ

BM208- Nesneye Dayalı Analiz ve Tasarım. Öğr. Grv. Aybike ŞİMŞEK

Tasarım Aşaması. Eksiksiz Fonksiyonel Tanımlamalar

Yazılım Nedir? Yazılım Mühendisi. Yazılım Mühendisliği. ACM/IEEE Etik Kodu. Etik Kural için Önsöz BIL 304 YAZILIM MÜHENDİSLİĞİ

Doç.Dr. Özlem İpekgil Doğan Araş Gör. Mert Topoyan

İNSAN KAYNAKLARI YÖNETİMİ

Ders 9 Hastanelerde Veri Toplama Yöntemleri

Kamunun Bilgilendirilmesi Rehber Dokümanı

AKDENİZ ÜNİVERSİTESİ KALİTE YÖNETİM SİSTEMİ

YAZILIM MODELLEME VE TASARIM

Transkript:

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 ç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 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 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 6

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

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 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ı 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 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ı: Mevcut Sistemin İncelenmesi Ö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. 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 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. 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 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, 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 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 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 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ı 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 23

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

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ı 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ı, 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ı 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,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 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