Nesneye yönelİk analİz ve tasarima gİrİş

Slides:



Advertisements
Benzer bir sunumlar
NESNEYE YÖNELİK PROGRAMLAMA Temel Kavramlar
Advertisements

Sistem Analizi ve Planlama
UML Unified Modeling Language
BİLGİSAYAR NEDİR?.
Problemi Çözme Adımları
Bilgi Teknolojisinin Temel Kavramları
Yazılım Mühendisliği Bölüm - 6 Gerçekleştirim
BELGELEME Ian Sommerville, “Software Documentation”,
Bilgi Teknolojisinin Temel Kavramları
Proje Tabanlı Öğrenme Modeli ve Bilgisayar Destekli Eğitim
Bora GÜRSEL CBÜ BAUM Proje Yöneticisi
Algoritma ve Akış Diyagramları
TÜMLEŞİK MODELLEME DİLİ
Yapısal Program Geliştirme – if, if-else
NESNEYE YÖNELİK PROGRAMLAMANIN TEMEL İLKELERİ GENEL BİR BAKIŞ
Nesneye Dayalı Programlama
NESNEYE DAYALI PROGRAMLAMA
Bilgi Sistemi Geliştirme
Temel tanımlar ve işleyiş
YAZILIM MİMARİLERİ DERSİ
Nesneye Dayalı Programlama
BİLİŞİM TEKNOLOJİLERİ
Bilgisayar Destekli Öğretim
BBY Bilgi Sistemleri Tasarımı
Chapter 1: Giriş.
DERS-1 SİMÜLASYON (BENZETİM) Prof. Dr. Hüseyin BAŞLIGİL
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
BÖLÜM 6.
, Denizli Akademik Bilişim 2006 YAZILIM GELİŞTİRME SÜRECİNDE OTOMATİK KOD ÜRETİCİLER Çağdaş Can BİRANT Kökten Ulaş BİRANT Prof. Dr. Alp KUT.
ALİ FINDIK Galatasaray Ünİversİtesİ 2015
HAZIRLAYAN:SEMİH KÜRTÜNCÜ
Bilgi Teknolojisinin Temel Kavramları
Programlama Dilleri Visual Basic C# C++ Pascal Delphi.
Karar Sürecinin Modellenmesi
PROGRAMLAMA Doç.Dr. Murat ÇAKIROĞLU 2015 – 2016 Güz Dönemi Kredi : 3+1
BİLGİSAYAR Kendisine verilen bilgiler üzerinde aritmetiksel, mantıksal ve karşılaştırma işlemleri yaparak sonuçları çıktı birimlerine gönderen elektronik.
Sistem Analizi Sistem Analisti
Geleneksel Tasarım Araçları
SİSTEM VE YAZILIM Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur. Yazılım, bilgisayar sistemlerinin bir bileşeni.
GÖRSEL TASARIM.
Genel Kavramlar Bölüm - 1. YAZILIM Bilgisayara işlemler yaptırabilmek ve karar verdirtebilmek için yazılan kalıplara denir. Yazılım, genel olarak donanım.
Nesne Yönelik Yaklaşımla Sistem Analizi ve Tasarımı
İNSAN-BİLGİSAYAR ETKİLEŞİMİ. Bağlam Arayüz Görev Kullanıcı İBE Ana Bileşenleri.
Bilgisayar Mühendisliğindeki Yeri
ÇEVİK (Agile) SÜREÇLER Değişen gereksinimler, teknik riskler gibi önceden belirlenemeyen durumlara ve yazılım ürününü etkileyebilecek her tür değişikliğe.
Geleneksel Tasarım Araçları
Yazılım Mühendisliğine Giriş YYurtaY. Ders İçeriği o Yazılım mühendisliğine giriş, o Yazılım mühendisliği ve etik, o Yazılım mühendisli ğ inin önemi ve.
Yazılım Mühendisliği YYurtaY. Ekip çalışması
Sistem Analizi ve Tasarımı
Nesne Tabanlı Yazılım Geliştirme Bora Güngören Portakal Teknoloji EMO Ankara Şubesi
UNICASE... kapsamlı bir CASE* aracı * UNICASE.
BİLGİSAYAR NEDİR?.
SİSTEM ANALİZİ VE TASARIMI
Bilgisayar Donanım ve Sistem Yazılımı
Problem Çözme Yaklaşımları
Algoritmanın Hazırlanması
Nesneye Dayalı Programlarla Nesne İlişki Haritalanması
ONTOLOJİ GELİŞTİRME ALANINDA ÇEVİK YAKLAŞIMLAR
Bilgisayar Bilimi Problem Çözme Süreci-2.
Problemi Çözme Adımları
ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ
Nesneye Dayalı Programlama 1
Yazılım Mühendisliği Temel Süreçler – PLANLAMA II
BİLGİSAYAR MÜHENDİSLİĞİNE GİRİŞ
MONTE CARLO BENZETİMİ U(0,1) rassal değişkenler kullanılarak (zamanın önemli bir rolü olmadığı) stokastik ya da deterministik problemlerin çözümünde kullanılan.
ÖĞRETİM İLKE ve YÖNTEMLERİ
İLERİ VERİ TABANI UYGULAMALARI
KAVRAM HARİTALARI.
VERİTABANI YÖNETİM SİSTEMLERİ 2- Tasarım ve ER Modeli
Sunum transkripti:

Nesneye yönelİk analİz ve tasarima gİrİş

GİRİŞ Nesneye Yönelik Analiz : Ele alınan problemdeki nesneleri (kavramları) belirleyip tanımlama aşaması. Bu aşamada amaç problemi çözmek değil, anlamaktır. Nesneye Yönelik Tasarım : Yazılım aşaması için sınıflar oluşturulur. Sınıfların içerikleri (özellik ve davranışlar) ve sınıflar arası ilişkiler tam olarak tanımlanır. Tasarım tamamlandıktan sonra nesneye yönelik bir programla dili ile kodlama yapılır.

BİR YAZILIMIN KALİTESİ Kullanıcı Açısından İstenen işi doğru yapması Kolay kullanılabilir olması Gerektiği kadar hızlı çalışması Sistem kaynaklarını aşırı kullanmaması Sağlam olması Kolay güncellenebilir olması Yazılım Geliştiren Açısından Bakımı kolay olmalı Proje yeterli bir sürede tamamlanmalı Modüller, yeni projelerde tekrar kullanılabilmeli Geliştirme maliyeti düşük tutulabilmeli

NESNEYE YÖNELİK ANALİZ VE TASARIM NEDEN GEREKLİ? Problemler: Donanım maliyetleri azalırken yazılım maliyetleri artmakta Yazılımların boyutları ve karmaşıklıkları artmakta Bakım maliyetleri çok yüksek Donanım problemi çok azken, yazılım hataları sıklaşmakta

NESNEYE YÖNELİK YÖNTEMİN YARARI İnsanlar günlük hayattaki kavramları, konuşma dili ile anlatırlar. Programcılar, problemle ilgili kavram ve varlıkları, programlama dili ile bilgisayara ifade etmeye çalışırlar. Bunun için tasarım aşamasında, ifade etmeyi sağlayacak modeller oluşturulur. Nesneye yönelik yöntem, bu modellerin oluşturulmasında ve gerektiğinde sistemin güncellenmesinde avantajlar sağlar. Problem Uzayı Soyutlama Modelleme Gerçekleme Çözüm Uzayı Gerçek Dünya Programcı Bilgisayar

YAPISAL PROGRAMLAMA YÖNTEMİ BASIC, Pascal, C gibi diller destekler. Öncelikle, sistemin yapması gereken iş belirlenir. Karmaşık, büyük boyutlu işler ,daha küçük ve basit işlere bölünerek gerçeklenir. Gerçek dünyanın modellenmesi (soyutlama), fonksiyonlar ile yapılır.

NESNEYE YÖNELİK PROGRAMLAMA YÖNTEMİ Gerçek dünya, nesnelerden oluşmaktadır. Çözülecek problemi oluşturan nesneler, gerçek dünyadaki yapılarına benzer şekilde bilgisayarda modellenmelidir (Soyutlama, nesneler ile yapılır). Nesne: Özellikler (Nitelikler veya durum bilgileri) İşlemler (Davranışlar ve yetenekler)

YÖNTEMLERİN DEĞERLENDİRİLMESİ-1 Karmaşık yapıyı fonksiyonlara bölmek programlamayı kolaylaştırabilir ancak karmaşıklık sadece boyutlara değil, birimler arası ilişkiler ve bilgi akışı karmaşıklığına da bağlıdır. Gerçek dünya sadece fonksiyonlardan oluşmaz. Sistemin gerçeğe yakın modelini yaratmak için yapısal yöntemler yetersiz kalır.

YÖNTEMLERİN DEĞERLENDİRİLMESİ-2 Tasarımda verilerin yerine fonksiyonel yapının ağırlık kazanması, hatalar nedeniyle verilerin bozulma olasılığını arttırır. Veri gizleme olanakları yapısal yöntemde kısıtlı olmasına karşın, nesneye yönelik yöntemde özel mekanizmalar bulunmaktadır. Ayrıca veri ile işlemlere verilen ağırlıklar nesneye yönelik yöntemde istenildiği gibi ayarlanabilir. Sistemin ihtiyaçlarına cevap verecek boyut, kapasite ve kabiliyette veri yapıları, ancak nesneye yönelik yöntemle sağlanabilir. Güncellemeler gerektiğinde, yeni eklentiler yapmak ve eski öğeleri yeni eklenen unsurlarla uyum içinde kullanmak yapısal programlamada oldukça zordur.

SONUÇ Analiz ve tasarım süreçleri boyunca sorulması gereken soru “Bu sistem ne iş yapar?” değil, “Bu sistem hangi nesnelerden oluşur?” olmalıdır. Nesneye Yönelik yöntem ile; Gerçek dünya çok daha doğru ve gerçekçi bir şekilde modellenebilir. Daha “kaliteli” yazılımlar oluşturulabilir. Günümüzün ve yakın geleceğin artan ihtiyaçlarına daha uygun, takım çalışmasına yatkın; çalışma, yönetme ve çözüm üretme olanakları sağlanabilir.

Unified Modeling Language (UML) Bütünleşİk Modelleme Dİlİ

YAZILIM MODELLENMESİ Model gerçeğin basitleştirilmiş halidir. Model sayesinde anlaşılması güç yazılımları basit bir dille ifade edebiliriz. Bu da yazılımın anlaşılmasını kolaylaştırır, sistem gereksinimlerini ve davranışlarını daha iyi anlamamızı ve hatalarımızı kolaylıkla görüp en düşük seviyeye indirgememizi sağlar.

UML NEDİR? UML yazılım mühendisliğinde nesneye yönelik sistemleri modellemede kullanılan açık standart olmuş bir görsel modelleme dilidir. Yazılım geliştirmenin çözümlemeden bakıma kadar tüm aşamalarında ekipler ve bireyler arasındaki iletişimin düzgün yürütülmesi için kullanılmaktadır. Yazılımın yaşam döngüsü içinde farklı görev gruplarının projeye ve sisteme farklı bakış açıları vardır. Bundan dolayı UML çeşitli bakış açılarını ifade eden diyagramlar içermektedir Çok zengin bir dil olmasından dolayı, Yazılım Mühendisliği’nin bir çok yönden ihtiyaçlarını karşılamaktadır.

UML’NİN GELİŞİM SÜRECİ 1989-1994 yılları yazılım mühendisliğinde metot savaşları olarak bilinen bir dönemdir. 90’ların ortalarına doğru öne çıkan 3 yöntem vardır. Booch : Yaratıcısı Grady Booch’dur. Tasarım ve gerçekleştirimde mükemmel. OMT (Object Modelling Technology) : Yaratıcısı Jim Rumbaugh. Analiz ve veri yoğunluğu çok olan sistemler için uygun OOSE (Object Oriented Software Engineering) : Yaratıcısı Ivar Jacobson. Use-Case adı verilen güçlü bir teknik içeriyordu. 1994-1995 yıllarında bu üç kişi (Üç Amigolar) Rational Firması çatısı altında toplanıp kendi yöntemlerinin olumlu taraflarını birleştirerek UML’yi geliştirdiler. 1997’de OMG(Object Management Group) UML’yi sahiplendi ve açık standart olarak geliştirmeye başladı.

UML’NİN TARİHİ

UML’YE NEDEN GEREK VAR? Hataların kolaylıkla fark edilip en düşük seviyeye indirgenmesi.(Risk, zaman, maliyet) Yazılım üretiminde başarı oranının düşük olması. (%16 ) Yazılımda paylaşım önemlidir. Tüm ekibin aynı dili konuşabilmesi gerekmektedir. Sistemin tamamını basit bir dille ve görsellikle görebilmek ve tasarlayabilmek gerekli. Modellenmiş ve dokümante edilmiş bir yazılımın tanıtımının kolay olması. Yazılım kalitesini arttırma.

UML’NİN AVANTAJLARI-1 Kodlama kolaylığı sağlar. Kullanılan tekrar kod sayısı ayırt edilebilir bu sayede verim sağlanır. Mantıksal hataların minimum seviyeye düşürülmesini sağlar. Geliştirme maliyetinin düşmesini sağlar. Resmin tamamının görülmesini sağlar.

UML’NİN AVANTAJLARI-2 UML diyagramları ile yazılım tamamını görebileceğimiz için verimli bellek kullanımı sağlanabilir. Karmaşık sistemlerde değişiklik yapmayı kolaylaştırır. UML ile dokümanlaştırılmış kodları düzenlemek daha az zaman alacaktır. UML diyagramlarını kullanan yazılımcılar aynı dili konuşacaklarından kolay iletişim sağlanır.

UML DİYAGRAMLARI Use Case Diyagramları (Kullanım Vakaları Diyagramları) Class Diyagramları (Sınıf Diyagramları) State Diyagramları (Durum Diyagramları) Sequence Diyagramları (Ardışıl Diyagram) Colloboration Diyagramları (Etkileşim Diyagramları) Package Diyagramları (Paket Diyagramları) Component Diyagramları (Bileşen Diyagramları) Deployment Diyagramları (Dağıtım Diyagramları)

USE CASE DİYAGRAMLARI Analiz aşamasında Use Case Diyagramları kullanılır. Tasarım aşamasında ise modellerin 3 tipi ortaya konulur. Sınıf Diyagramları Durum Diyagramları Etkileşim Diyagramları (Sequence ve Colloboration Diyagramları)

USE CASE DİYAGRAMLARI Sistemin çok basit bir şekilde modellenmesini ve islerin detayının(senaryonun) metin olarak anlatılmasını içerir. Aktörden gelen bazı isteklere karşı sistemin yaptığı aktiviteleri gösterir. Gelişmenin erken safhalarında yapılandırılır. Amaç Sistemin içeriğini belirtmek. Sistemin gereksinimlerini elde etmek. Sistemin mimarisini geçerli kılmak. Analistler ve uzmanlar tarafından geliştirilir.

USE CASE DİYAGRAMLARI BİLEŞENLERİ Aktör Aktörler genelde belirli bir rol ifade ederler. Diğer aktörlerle bağlantılı olabilirler bu bağlantı bir ok ile gösterilir. Sistem sınırları dışında gösterilir.

USE CASE DİYAGRAMLARI BİLEŞENLERİ Sistem fonksiyonelliğinin büyük bir parçasını gösterir. Diğer bir use case ile genişletilebilir. Diğer bir use case içerebilir. Sistem sınırları içinde gösterilir. Use case

USE CASE DİYAGRAMLARI BİLEŞENLERİ Sistem sınırı İçerisinde sistemin ismi yazılıdır. Sistemin kapsamını gösterir. Bağıntı ilişkisi Aktör ve use case ler arasındaki bağıntıyı gösteren çizgidir. Sistem * *

USE CASE DİYAGRAMLARI BİLEŞENLERİ Inclusion(içerme) Bu metotla bir use case içindeki adımlardan birini başka bir use case içinde kullanabiliriz. Inclusion yöntemini kullanmak için <<include>> şeklindeki bir ifade kullanılır. Kullanmak istediğimiz use case 'ler arasına çektiğimiz noktalı çizginin üzerine <<include>> yazısını yazarız. Extension(eklenti) Bu metodla varolan bir Use Case 'e yeni yeni adımlar ekleyerek yeni use case 'ler yaratılır. Inclusion'da olduğu gibi extension 'ları göstermek için yine use case 'ler arasına noktalı çizgiler konur ve üzerine <<extension>> ibaresi yazılır. <<include>> <<extension>>

USE CASE DİYAGRAMLARI BİLEŞENLERİ Genelleme ilişkisi: Özelleşmiş use case ile daha genel use case arasındaki ilişkidir. Özelleşmiş use case den temel use case e doğru bir ok ile gösterilir.