Bir yazılım geliştirme metodolojisi aşağıdaki adımlardan meydana gelir; Yazılım geliştirme sürecine destek verecek araçlar, modeller ve yöntemler.



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

SİSTEM ANALİZİ VE TASARIMI

Yazılım Süreçleri Software Processes

Akış. Atik Yazılım Geliştirme Tanımı ve Kavramlar Tarihi Metotları Dünyada Atik Yazılım Geliştirme Örnekleri Sonuç BİL 588 2

Bölüm 2 Yazılım Süreçleri. Ders 1

design)1980li ve 1990lıyıllar Birleştirilmiş Modelleme Dili (Unified Modeling Language-(UML) yazılım geliştirme araçlarının temelidir.

Yazılım Mühendisliğine Giriş 2018 GÜZ

YZM 2108 Yazılım Mimarisi ve Tasarımı

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

Yazılım Mühendisliği 1

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

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

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

YAZILIM MODELLEME VE TASARIM

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

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

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

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

Hızlı Uygulama Geliştirme (SE 340) Ders Detayları

ETKİLEŞİMLİ TASARIM SÜRECİ VE TASARIM DİLLERİ ETKİLEŞİMLİ TASARIM NEDİR? GELENEKSEL YAZıLıM TASARıMı ILE

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

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) Varlık İlişki Modeli

IBM CLM Çözümleriyle Çevik Yazılım Süreçleri. Canberk Akduygu & Koray Okşar

PROJE YÖNETİMİ MODEL VE ÇERÇEVELERİ ENF304 IT PROJE YÖNETİMİ ÖĞR. GÖR. MUSTAFA ÇETİNKAYA

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

UNICASE.... kapsamlı bir CASE* aracı. *

Teknoloji Geliştirmede Bütünleştirici Yaklaşımlar

Öğretim planındaki AKTS Ulusal Kredi

Bilgi sistemlerinin geliştirilmesi için izlenen sürece, Sistem Geliştirme Yaşam Döngüsü (SGYD) denir.

CONTENTS. 1. agile42 Hakkında Teklif Kapsamı... 3 Scrum ve Kanban Eğitimleri Eğitim Bilgisi Referanslar... 6.

HASTANE HİZMET KALİTE STANDARTLARI METODOLOJİSİ

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

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) Varlık Bağıntı Modeli

YMT 412-Yazılım Kalite Ve Güvencesi Çevik Yazılım Geliştirme 1/47

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

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

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

Büyük Ölçekli Bir Sistem Projesinde IBM Rational Jazz Platformu Kullanarak Çevik Süreçlerin Uygulanması. Serap Bozbey

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

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

ARDIŞIL DİYAGRAM YAPI DİYAGRAMI. Sistem Analizi ve Tasarımı Dersi

Bilgi Güvenliği Risk Değerlendirme Yaklaşımları

MIS224T: BİLİŞİM SİSTEMLERİ ANALİZİ VE TASARIMI

Scrum Çevik Süreçlerinin Ar-Ge Yazılım Projelerinde Kullanımı

Aşırı Programlama İçin Üç Yeni Pratik

Yazılım Geliştirme Modeli ve Mimariler. Bilgisayar Programcılığı Ön Lisans Programı YAZILIM MİMARİLERİ. Öğr. Gör. Yüksel KARAMAN

YAZILIM MÜHENDİSLİĞİ TEKNOLOJİ FAKÜLTESİ / BİLGİSAYAR MÜHENDİSLİĞİ

Yazılım Gereksinimleri Mühendisliği (SE 221) Ders Detayları

CMMI ve Çevik Yöntemler

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

Öğretim planındaki AKTS

GRUP TEKNOLOJİSİ VE HÜCRESEL ÜRETİM

Yazılım ve Uygulama Danışmanı Firma Seçim Desteği

Nesneye Yönelik Tasarım ve Programlama (COMPE 501) Ders Detayları

1.1 Metodolojiyi Gerçeklemek Üzere Geliştirilen Altyapı

BAŞVURU FORMU ÖRNEK DÖKÜMAN

Kurumsal Mimari (TOGAF)

Geleneksel Yazılım Mühendisliğinden Alana Özel Yazılım Mühendisliğine Doğru

Fundamentals of Object-Oriented Programming (COMPE 723) Ders Detayları

BÖLÜM 1 YAZILIM TASARIMINA GİRİŞ YZM211 YAZILIM TASARIMI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi

Hizmet Odaklı Mimariye Dayanan İş Süreçleri Yönetimi Sistemi

SENTEZ TABANLI YAZILIM MİMARİSİ TASARIM YAKLAŞIMININ ESSENCE ÇERÇEVESİYLE MODELLENMESİ

i eknolojt yon Ġnovas

TÜMLEŞİK MODELLEME DİLİ. UML (Unified Modeling Language)

YMT312 Yazılım Tasarım ve Mimarisi

Dersin Yürütülmesi Hakkında

IBM Rational ile Yazılım Yaşam Döngüsü Mehmet Çağrı ELIBOL IBM Rational Satış Yöneticisi

Fırat Üniversitesi Teknoloji Fakültesi Yazılım Mühendisliği. YAZILIM MÜHENDİSLİĞİNİN TEMELLERİ-Hafta 2

Yazılım Yeniden Yapılamaya Yönelik Bir Kurumsal Mimari: Model Güdümlü ve Ontoloji Tabanlı Bir Yaklaşım

MÜHENDİSLİK FAKÜLTESİ / ENSTİTÜSÜ / YÜKSEKOKULU BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ BÖLÜMÜ /ABD LİSANS PROGRAMI - 1 ( yılı ve sonrasında birinci

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) Varlık İlişki Modeli Örnek Uygulamalar

MÜHENDİSLİK FAKÜLTESİ / ENSTİTÜSÜ / YÜKSEKOKULU BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ BÖLÜMÜ /ABD LİSANS PROGRAMI - 2 ( yılı öncesinde birinci

Hızlı Uygulama Geliştirme (Rapid Application Development - Rad Model)

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

5. PROGRAMLA DİLLERİ. 5.1 Giriş

D. AYDIN A. C. KINACI T. E. KALAYCI

Özgür Yazılım Proje Yönetimi

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) Varlık İlişki Modeli Uygulamalar

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

Fundamentals of Object-Oriented Programming (COMPE 723) Ders Detayları

Analiz Raporu. Hedef kitleden bazılarına sorular yöneltildi. Buna göre ne tür değişimler beklediklerini saptadık. Ara yüzünün

Project Management Emin OCAK

Çevik Yazılım Geliştirme Yaklaşımları (SE 571) Ders Detayları

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

ABANT İZZET BAYSAL ÜNİVERSİTESİ DOKÜMAN VERİ PROSEDÜRÜ

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

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

Yazılım Mühendisliğinde İleri Konular (SE 650) Ders Detayları

DESIGN THINKING Şubat 2018

X. Çözüm Ortaklığı Platformu

Bulut Bilişim (ISE 514) Ders Detayları

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

Information Technology Infrastructure Library ITIL

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

SAYISAL SAVAŞ VE HAREKAT ORTAMINA YÖNELİK ÇEVİK YAZILIM GELİŞTİRME

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

ÇEVİK YAZILIM GELİŞTİRME AGILE KEEP IT SIMPLE

Yazılım Geliştirme Süreçleri ve Çevik Yöntemler

NEDEN DOĞULİNE. Detaylı Analiz. Doğru Planlama. Hedef Kitleye Uygunluk. Doğru İçerik Stratejisi. 7/24 Destek. Deneyimli Ekip

Transkript:

Yazılım Mühendisliği kapsamındaki Yazılım Geliştirme Metodolojileri, bir bilgi sistemini geliştirme sürecinin yapımını, planlamasını ve kontrolünü sağlayan bir framework tür. Her farklı framework güçlü ve zayıf yanlarıyla birlikte zaman içinde olgunlaşır. Bir sistem geliştirme metodolojisi her proje için uygun olmayabilir. Her metodoloji, projenin teknik, organizasyonel ve takım unsurlarına göre farklı özellik gösterir. Bir yazılım geliştirme metodolojisi aşağıdaki adımlardan meydana gelir; Yazılım geliştirme süreci yaklaşımıyla bir yazılım geliştirme felsefesi Yazılım geliştirme sürecine destek verecek araçlar, modeller ve yöntemler. Bu frameworkler çoğunlukla metodolojiyi geliştiren, destek veren ve onu ilerleten organizasyon tiplerine bağımlıdır. 1 / 10

Tarihçe En eski yazılım geliştirme araçlarından biri, kökleri 1920 lere dayanan flowchart lardır. Yazılım geliştirme metodolojisi 1960 lara kadar tam olarak ortaya çıkmamıştır. Yazılım geliştirme yaşam döngüsü (SDLC), bilgi sistemleri inşası için biçimlendirilmiş en eski metodoloji olarak nitelendirilebilir. SDLC nin ana fikri bilgi sistemi geliştirme sürecinin planlanmış, yapısal ve metotlu bir şekilde olmasını kovalamaktır. Bu metodolojinin 1960 lardaki temel hedefi geniş ölçekli fonksiyonel business sitemleri, geniş ölçekli büyük şirketlerde geliştirmekti. Bilgi sistemleri aktiviteleri yüklü veri işlemleri ve yoğun hesaplama işlemleri etrafında döner. Spesifik Yazılım Geliştirme Metodolojileri 1970 lerde Yapısal programlama 1980 lerde Yapısal sistem analizi ve tasarımı metodolojisi 1990 larda Nesne yönelimli programlama Rapid Application Development 2 / 10

Scrum Development Team software process 2000 lerde Rational Unified Process Extreme Programming Agile Unified Process Intgrated Methodology Yazılım Geliştirme Yöntemleri Her yazılım geliştirme metodolojisinin, yazılım geliştirme açısından az ya da çok kendi yaklaşımları vardır. Aşağıda birkaç spesifik metodoloji tarafından geliştirilen genel yaklaşımları görüyoruz; Waterfall: Lineer tip framework Prototyping: İteratif tip framework 3 / 10

Incremental: Lineer ve iteratif tip framework kombinasyonu Spiral: Lineer ve iteratif tip framework kombinasyonu Rapid Application Development: İteratif tip framework Extreme Programming Waterfall Model Waterfall model, yazılım geliştirmenin gereksinim analizi, tasarım, implementasyon, test, entegrasyon ve bakım gibi fazları boyunca aşağıda doğru (şelale gibi) devam eder gibi göründüğü sıralı geliştirme sürecidir. Waterfall modelinin temel prensipler; Proje ardışık fazlara bölünmüştür. 4 / 10

Temel vurgu, tüm sistemin planı, iş programı, hedeflenen tarihi, bütçesi ve implementasyonu üzerindedir. Proje süreci devam ederken yeni bir faza başlamadan önce tamamlanmış son faza ait özellikle kullanıcıların ve IT yönetiminin formal yorumlarını, onay ve kabul imzalarını içeren kapsamlı şekilde yazılmış bir dokümanın varlığı. Prototyping Yazılımda prototipleme, istenilen yazılım kodlanırken, yazılımın tamamlanmamış bir prototipinin oluşturulma sürecindeki aktiviteleri içeren bir framework tür. Prototyping in temel prensipleri; Tek başına bir şey ifade etmeyen, bütünsel bir geliştirme metodolojisidir. Fakat bütünün belirli parçalarını ele alma yaklaşımının aksine daha geleneksel bir geliştirme metodolojidir. (Örneğin incremental, Spiral veya RAD gibi) Projeyi küçük segmentlere ayırarak ve geliştirme sürecinde projenin daha kolay değiştirilebilir olmasını sağlayarak öngörülen proje risklerini azaltmaya çalışır. Kullanıcılar sürece dâhil edilmişlerdir. Bu sayede nihai implementasyonda kullanıcıların onay verme oranı/olasılığı artmış olur. Prototip, kullanıcı gereksinimlerini karşılayana kadar olan süreçte iteratif şekilde sistemin küçük ölçekli modelleri geliştirilir. Reddedileceği düşüncesiyle geliştirilen prototiplerin bazıları prototip halinden gerçek çalışan sistem haline doğru evrimleşebilir. 5 / 10

Gerçek business problemi anlamak, yanlış problemi çözmekten kaçınmak için gereklidir. Incremental Lineer ve iteratif sistem geliştirme metodolojilerini içermesi açısından muhtelif metotlar kullanılabilir. Projeyi küçük segmentlere ayırarak ve bu sayede kodlama sürecinde kolay değiştirilebilir olmasını sağlayarak projenin olası risklerinin azaltılması hedeflenir. Incremental metodunun temel prensipleri; Waterfall modelinin küçük parçalar halinde dizisi gibidir. Burada waterfall geliştirme modelinin tüm fazları sistemin küçük bir parçası için tamamlanmış durumdadır. Waterfall yaklaşımla ilk yazılımsal konsept, gereksinim analizi ve sistem mimarisi tasarımı belirlenir. Sonrasında da finalize edilmiş prototipin sisteme yüklenmesi ile sonuçlanacak olan prototipleme süreci ile devam edilir Spiral 6 / 10

Spiral model, top-down ve bottom-up yaklaşımlarının avantajlarının kombine edildiği, tasarım ve prototipleme aşamalarını içeren bir yazılım geliştirme sürecidir. Temel prensipler; Risk değerlendirmesi, projeyi küçük parçalara ayırarak riskin minimize edilmesi, geliştirme süresinde kolay değiştirilebilir olmasının sağlanması gibi noktalara odaklanılmıştır. Proje yaşam döngüsündeki her aşama, proje kapsamında hazırlanan genel bir operasyonel kavram dokümanından her uygulamanın kendi kodlarını içeren spesifik dokümanına kadarki her aşama ve ürünün ve detaylarının her bir adımı boyunca kendi içinde bir ilerleme sağlar. Proje yaşam döngüsü aşağıdaki 4 temel çeyrekten oluşur; o Yinelemelerdeki hedefler, alternatifler ve kısıtları tespit etmek o Alternatifleri değerlendirip riskleri tanımlamak ve çözümlemek o İterasyondaki teslim edilebilir ürünleri geliştirmek ve doğrulamak. 7 / 10

o Bir sonraki iterasyonu planlamak Her döngüye paydaşların tespiti ve ile başlanır ve her döngüyü son bir kez gözden geçirerek ve taahhütle sonlandırılır. Rapid Application Development (RAD) RAD, iteratif geliştirme ile prototiplemenin kurgusunu kapsayan bir yazılım geliştirme metodolojisidir. Genellikle James Martin taafından 1991 de ortaya atılan yazılım geliştirme süreci ni tarif etmek için de RAD terimi kullanılır. Temel prensipleri; Anahtar hedef, az bir yatırım maliyetine ile hızlı kod geliştirerek yüksek kalitede sistemler üretmektir. Projeyi küçük segmentlere ayırıp geliştirme sürecince kolay değiştirilebilir olması sağlanarak proje riskinin azaltılmasına çalışılır. Hızlı bir şekilde yüksek kaliteli sistemleri iteratif prototipleme motedolojisini projenin herhangi bir safhasında kullanarak, kullanıcıları aktif şekilde dahil ederek ve otomatize edilmiş geliştirme araçları kullanarak sunmaya çalışır. Bu araçlar Grafik Kullanıcı Arayüzü (GUI) geliştiricileri, Bilgisayar Destekli Yazılım Mühendisliği (CASE) araçları, Veritabanı Yönetim Sistemleri (DBMS), 4. Nesil programlama dilleri, kod generator leri ve nesne yönelimli teknikleri kapsar. Anahtar vurgu, business ihtiyaçları karşılamak üzerinedir. Bu durumda teknolojik ve teknik başarı daha az önem arz eder. Proje kontrolü, kod geliştirme ve teslim süresi tanımlama konularında önceliklendirme yapılmasını sağlar. Proje uzamaya başladıysa, yaklaşım gereksinimleri teslim tarihine göre revize etmek olmalı, teslim süresini geciktirecek şekilde değil. 8 / 10

Genel olarak Bileşik Uygulama geliştirme- Joint Application Development(JAD) yi kapsar. Kullanıcılar hem yapısal çalıştaylar hem de kolaylaştırılmış elektronik etkileşimler vasıtasıyla mutabakata varma çalışmalarında sitem tasarımına yoğun şekilde dâhil edilmiştir. Kullanıcıların aktif şekilde dâhil olması kaçınılmazdır. Prototiplerin atıl olmasına karşın yazılımsal ürün iteratif şekilde üretilir. İleride yapılacak yazılım ve destek faaliyetlerine kolaylık sağlayacak dokümanlar üretilir. Standart sistem analizi ve tasarımı teknikleri bu framework e uydurulabilir. Diğer yazılım geliştirme yaklaşımları Diğer kavramsal metotlar şunlardır; Nesne yönelimli analiz ve tasarım (OOAD) adıyla da bilinen Nesne yönelimli geliştirme metodolojileri. 6 diyagram içerir: Sınıf(class), nesne(object), durum değişim(state transition), etkileşim(interaction), modül ve süreç diyagramları. 1970 lerde IBM araştırıcılarından Harlan Mills in yapısal programlamayla geliştirdiği Top-down programlama. 9 / 10

UML temelli iteratif yazılım geliştirme metodolojisi yaklaşımı olan Unified Process (UP). UP, y azılım geliştirmeyi her biri bir ya da birden fazla yürütülebilir iterasyonlardan meydana gelen 4 faza ayırmıştır. Başlangıç (Inception), Detay (Elaboration), Yapı (Construction) ve Yönerge (Guidelines). UP implemantasyonuna olanak sağlamak için tasarlanan araçlar ve ürünler geliştirilmiştir. UP un en popüler versiyonu ise Rational Unified Process (RUP). Çevik yazılım geliştirme (agile software development), iteratif geliştirme temelli olup birden fazla yazılım geliştirme metodolojisini baz alan metottur. Bu metodolojide gereksinimler ve çözümler kendinden örgütlü cross-functional takımların işbirliğiyle olgunlaşır. Tümleşik (integrated)yazılım geliştirme metodolojisinde yazılım geliştirme yaklaşımlarından (iteratif, waterfall, spiral, agile)istenilenlerin kombine edilerek kullanıldığı görülür. 10 / 10