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

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

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.

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

Scrum1.0 & Scrum2.0 & Scrum3.0

Proje Yaşam Döngüsü. Doç. Dr. Hakan YAMAN

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

Nesneye Dayalı Analiz ve Tasarım (SE 321) Ders Detayları

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

SİSTEM ANALİZİ VE TASARIMI

Proje Yönetimi ve PMP Sertifikasyonu

Mersis Bilgi Teknolojileri Danışmanlık Ltd. Proje Yönetimi. Meriç Aykol

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

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

Bilgi Sistemleri Tasarımı (SE 503) Ders Detayları

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

YAZILIM PROJE YÖNETİMİ. Yrd.Doç.Dr.Hacer KARACAN

Project Management Emin OCAK

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

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.

Yazılım Mühendisliği 1

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

SİSTEM ANALİZİ VE TASARIMI. Sistem Analizi -Bilgi Sistemleri-

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

Doküman No:ITP 16.1 Revizyon No: 01 Tarih: Sayfa No: 1/5 KALİTE SİSTEM PROSEDÜRLERİ PROJE YÖNETİMİ PROSEDÜRÜ

SOFTWARE ENGINEERING Ders İzlence Formu. Kodu:CSE400 Dersin Adı: SOFTWARE ENGINEERING Toplam Saat

İSTANBUL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİTİRME PROJESİ 1. GetFit (Spor Merkezi) Uygulaması

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

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

Model Güdümlü Geliştirme ile Gömülü Kaynakların Yönetimi

Öğretim planındaki AKTS Ulusal Kredi

PMP Sınavına Hazırlık Proje Yönetimi

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

CENG 302 Yazılım Mühendisliği Yazılım Mimarisi - Devam. Alper UĞUR

İyileştirilmesi Gereken Sorunlar: Kredi kartının hesap kesim tarihinin veri tabanına yanlış kaydı.

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

ARÇELİK AR-GE PROJELERİ ÇEVİK PROJE YÖNETİMİ MODELİ

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

çalışmalara proje denilmektedir.

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

DERS PROFİLİ. Kuram+PÇ+Lab (saat/hafta) Dersin Adı Kodu Yarıyıl Dönem. İşletmelerde Proje Yönetimi. MAN 473 Bahar

DERS BİLGİLERİ. Ders Kodu Yarıyıl T+U Saat Kredi AKTS ULUSLARARASI PROJE YÖNETİMİ MAN Program Öğrenim Çıktıları 2 10,19 6,7 5,7 8,13

Burak ULUOCAK, PMP, CSM Senior Project Manager. 24 Eylül 2010

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

YAZILIM MODELLEME VE TASARIM

Nesne Tabanlı Programlama (COMPE 225) Ders Detayları

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) İş Kuralları ve Veri Modelleri

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

Proje Yönetimi Bilgi Alanları. Doç. Dr. Hakan YAMAN

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

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

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

DERS PROFİLİ. Kuram+PÇ+Lab (saat/hafta) Dersin Adı Kodu Yarıyıl Dönem. İşletmelerde Proje Yönetimi. MAN Bahar

Nesne Tabanlı Programlama (COMPE 225) Ders Detayları

TÜRK HAVA YOLLARI - EĞİTİM BAŞKANLIĞI PROJE YÖNETİMİ SEMİNER EĞİTİMLERİ EĞİTMEN HAKKINDA. ÖMÜR BENEK, PMP, MSc. PhD Candidate

2. Hafta DEPOLAR VE DEPOLAMA 1. DEPO VE DEPOLAMA KAVRAMLARI. 2. Hafta

Dersin Yürütülmesi Hakkında

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

DERS PROFİLİ. Kuram+PÇ+Lab (saat/hafta) Dersin Adı Kodu Yarıyıl Dönem. İşletmelerde Proje Yönetimi. MAN 473 Bahar

1-PROJE YÖNETİMİNE GİRİŞ

Yazılım İnşası ve Evrimi (SE 556) Ders Detayları

Kurumsal Mimari (TOGAF)

Proje Yönetimi Bahar Yarıyılı. Yrd. Doç. Dr. Ömer GİRAN

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

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

Sistem Analizi ve Planlama

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

MerSis. Bilgi Güvenliği Danışmanlık Hizmetleri

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

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

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

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

Dersin Yürütülmesi Hakkında

3- PROJENIN BAŞLATıLMASı: PROJE KAPSAM YÖNETIMI

Sistem ve Yazılım Nedir?

T.C. SELÇUK ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ ENDÜSTRİ MÜHENDİSLİĞİ BÖLÜMÜ EĞİTİM-ÖĞRETİM YILI DERS PLANI

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

MÜFREDAT DERS LİSTESİ

Bilgisayar Programlama Dilleri

DERS SEÇİM KILAVUZU. Sınıf Dönemi Kodu Adı Sınıf Dönemi Kodu Adı. Nesne Yönelimli Programlama. Yazılım Tasarımı ve Mimarisi

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

.com.tr agem T E C H L O L O G Y P A R T N E R

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

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

YAŞAR ÜNİVERSİTESİ YAZILIM MÜHENDİSLİĞİ BÖLÜMÜ

T.C. MALTEPE ÜNĠVERSĠTESĠ MÜHENDĠSLĠK FAKÜLTESĠ ENDÜSTRĠ MÜHENDĠSLĠĞĠ BÖLÜMÜ LĠSANS PROGRAMI Güz Yarıyılı

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

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

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS. Veri Organizasyonu ve Yönetimi BIL

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

VERİ TABANI YÖNETİM SİSTEMLERİ

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

tarih ve 163 sayılı Eğitim Komisyonu Kararı Eki-2

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

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

SOFTWARE ENGINEERING PRACTICE Ders İzlence Formu. Kodu: CSE401 Dersin Adı: SOFTWARE ENGINEERING PRACTICE Toplam Saat

ECAC Havaalanı Gürültüsü Hesaplama Metodunun Teknik Detayları Vitor Rosão

VERİ TABANI SİSTEMLERİ

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

Bilgisayar Sistemleri; donanım, yazılım ve kullanıcılardan oluşur. Yazılım sadece belirli bir işlemi yapan bir program değildir. Yazılım belirli bir

Müşteri İlişkileri Yönetimi (IE 422) Ders Detayları

Transkript:

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

Dört Temel Yazılım Geliştirme Metodolojisi I)Yapısal Analiz ve Tasarım 1960lıyılların sonu 1970liyıllar Fonksiyonel ayrıştırma (functional decomposition) ve veri akış analizi (dataflow analysis) yazılım geliştirme araçlarının temelini oluşturur (modeling tools). II) Nesneye Yönelik Analiz ve Tasarım (Object-oriented analysis and design)1980li ve 1990lıyıllar Birleştirilmiş Modelleme Dili (Unified Modeling Language-(UML) yazılım geliştirme araçlarının temelidir. III)Çevik Yazılım Geliştirme (Agile Software Development) 1990lı yılların sonu ve 2000liyıllar Yazılım endüstrisinde yazılım ürünü geliştirilirken lightweight yaklaşım Alana özel yazılım geliştirme (Aspect-OrientedSoftware Development)2000liyıllar Diğer yazılım geliştirme metotları terkedilmemiştir; sadece çalışılan alanla ilgili olan metotlar kullanılır.

Fonksiyonel Ayrıştırma -Veri Akış Diyagramı Örnekleri Kavramsal Çözümleme (Conceptual Solution) Görsel Çözümleme (Visual Solution)

UML (Unified Language Processing Birleştirilmiş Modelleme Dili Örneği) Kavramsal Çözümleme (Conceptual Solution) Görsel Çözümleme (Visual Solution) Nesneye yönelik tasarımın analiz aşamasında müşterinin isterlerinin görsel çözümüdür. Bu aşamadaki problemin çözümünün amacı uygulanana modelin tasarım aşamasına geçişi kolaylaştırmaktır.

UML Örneği Sınıf Diyagramı ve İmplementasyon Employer employs is employed by Employee Nesneye yönelik tasarımda analiz aşamasında müşteriye yakın çözüme ulaşılır. Nesneye yönelik tasarımın tasarım aşamasında ise sınıflar ve sınıflar arasındaki ilişkiler incelenir. Bu aşama implementasyona, yani kodlamaya geçişi gerçekleştirir. Nesneye yönelik yöntemlerin çoğu, kod yazıldıkça doğruluğunu kontrol etmek üzere test işlemi gerçekleştirir. Bunun için de uygun data değerleri girilerek mini kodun tümüyle doğru çalışıp çalışmayacağına bakılır. class Employer { Employee[ ] employees;..... } class Employee { Employer[ ] employers;..... }

Yazılım Geliştirme Modellerine Genel Bakış

Sıralı Yazılım Geliştirme (SequentialDevelopment) Şelale Yöntemi ( Waterfall Model) Fizibilite Çalışması Gereksinimler Sistem Tasarımı Program Tasarımı Requirements Design Implementation Implementasyon (kodlama) Test Kabul & Sürüm Operasyon& Bakım

Değiştirilmiş Şelale Yöntemi (Modified Waterfall Model) Fizibilite Çalışması Gereksinimler Sistem Tasarımı Geri beslemeli şelale yöntemi daha iyidir. Program Tasarımı Implementasyon (kodlama) Test Kabul&Sürüm Operasyon & Bakım

Prototipleme Süreç Modeli Prototipleme modeli şelale yönteminde isterlerin belirlenmesindeki sınırlamaları (limitleri) hafifletir. Mevcut durumda bilinen gereksinimlere göre prototip olarak problem çözümüne devam edilir. Oysa şelale yönteminde analiz aşamasından tasarım aşamasına geçmeden isterler dondurulmak zorundadır. Prototipleme tasarım, kodlama ve test aşamaları ile devam eder. Her bir aşama formal olarak ve bütünüyle gerçekleştirilir.

Prototipleme Süreç Modeli Gereksinimler değişime şelale yöntemine göre daha fazla açıktır. Yine de gereksinimlerin her aşamada değiştirilmesi mümkün değildir. Prototipleme modeli tamamı bilinmeyen gereksinmeler için çözüm için projenin başlangıcında seçilmiş olabilir.

Yazılım ve Bilgi Teknolojilerinde BigBangBoomTeorisi* Copyright 2014 The Standish Group International, Inc.*

Büyük Projelerde BigBangTeorisi Big Bang Teorisi önceden geliştirilmiş büyük yazılım ve bilgi teknolojileri projelerinden yararlanarak yeni ürünlerin geliştirilmesi ilkesinden yola çıkar. Böylece aynı amaca hizmet eden birçok projenin katılımcıları tarafından uluslararası düzeyde ortak olarak hizmet görecek şekilde kullanılması sağlanmış olacaktır. Çalışan bir yazılım ürününün tüm katılımcılarının (iştirakçilerstakeholders) işbirliği ile ortaya çıkması ve çalışması çok önemlidir. Big Bang kavramının en temel özelliği projenin tüm fonksiyonelliği ile tamamlanmış olarak belirli bir tarihte teslim edilmiş olmasıdır. Kısaca: Big Bang teorisinin temel hedefi geliştirilmesi hedeflenen bir büyük projede de kullanılarak geliştirilecek yeni projeye ışık tutmasının sağlanmasıdır.

Proje İştirakçilerinin (Katılımcılar- Stakeholders) Önemi Projeye dahil bir iştirakçi (stakeholder) projede bulunan herhangi bir kişi (şahıs) ya da organizasyondur. Bu kişi ya da organizasyonun projenin çalışmasının devam etmesine ve tamamlanmasına pozitif ya da negatif etkisi olabilir. Proje yöneticisi ve proje geliştirme takımı projenin doğal katılımcılarıdır. Bu tanım Project Management Institute (PMI) tarafından yapılmıştır ve 2013 yılından itibaren de bir projenin çıktısı (outcome) olarak kabul edilmektedir.

Bir Projenin Farklı Katılımcıları (İştirakçileri) Proje yöneticisi Proje takımı Proje sponsoru Projeyi gerçekleştiren organizasyon Ortaklar (Partners) Müşteri (Client) Diğerleri Bunlar proje çıktılarından etkilenen her şey olarak alınır.

PMBOK Project Management Body of Knowledge PMI (Project Management Institute) gönüllülerden oluşan bir topluluktur ve endüstri standartlarını belirlemeyi amaçlar «A Guide to the Project Management Body of Knowledge» isimli kılavuz, American National Standards Institute (ANSI) tarafından da tanınmıştır. 2013 yılında adapte edilerek PMBOK 5 versiyonu olarak proje yönetimi proseslerine uyarlanmıştır. Proje yönetimi kılavuzu (PMBOK ) ise proje yönetimi ile ilgili bir dizi standart tanımlar.

Büyük Yazılım Projeleri (2003-2012) CHAOS* veri tabanında bulunan çok büyük yazılım projelerindeki göre değerlendirmeler: Başarılı (successful)projeler zamanında teslim edilen, maliyetine uygun ve implementasyonu gereksinimleri sağlayan projelerdir. Problemli (Challenged) Projeler maliyetinin üzerinde sonuçlanan, geç teslim edilen ve/veya gereksinimlere cevap vermeyen projelerdir. Başarısız (failed) projeler ya proje tamamlanmadan iptal edilmiş ya da implementasyonu sonunda kullanılmayan projelerdir. CHAOS: Standish Group un veri tabanıdır. Standish Group bir araştırma kurumudur. Uluslararası ölçekteki IT (bilgi teknolojiler) projelerini izler ve sonuçları ile ilgili değerlendirme raporları yayınlar.

BigBangTeorisi ile Geliştirilen bir Proje Örneği: NPAC NPAC (Number Portability Administration Center) isimli proje önerisi ile ilgili yapılan çalışmalar sonunda Big Bang Teorisinin kullanılmasına karar verilmiştir. Projede uluslararası düzeyde sabit ve mobil telefon kullanıcılarının yerlerini (konumlarını) ve operatörlerini değiştirdiklerinde telefon numaralarını korumalarını sağlayan bir sistem geliştirilecektir. Önerilen projenin CHAOS veri tabanındaki diğer projelerle karşılıştırılarak geliştirilmesi hedeflenmektedir. Bu nedenle Big Bang Teorisi kullanılıyor olarak yorumlanmaktadır.

BigBangTeorisi ile Geliştirilen bir Proje Örneği: NPAC Yeni proje, önceki proje Neustar Federal Communications Commission (FCC) tarafından belirlenen kurallara göre geliştirilmiştir. Yararlanılacak mevcut projenin bu standartlara uygun olarak geliştirilmiş olması, yeni geliştirilecek proje için önemli bir yapı taşı teşkil edecektir. Yeni projede, NPAC, teslim edilecek yazılımın, yürütülecek hizmetlerin ve operasyonların tümünün Big Bang Teorisi içerisinde yapılması hedeflenmiştir. Çünkü iştirakçiler mevcut işleyen yapı olan Neustar sistemi düzeyinde hizmet ve fonksiyonellik talep etmektedirler.

Yazılım Projelerinde StandishGrup Katkısı Örneği : NPAC Önerilen yeni NPAC sisteminin geliştiricisi ve tüm çevre birimlerinin projenin büyüklüğü, karmaşıklığı, farklı tipteki iştirakçilerin olması, birbirleri ile bağlantılı pek çok alt sistemler, yoğun test işlemine olan gereksinim, projenin tamamlanma tarihindeki sıkıntılar gibi pek çok kavramda yararlanılacak mevcut sistem ile benzerlikleri bulunmaktadır. Bu yapı Big Bang olarak adlandırılır.

Alternatif Proje Yaklaşımı İteratif döngü önerilmektedir. Küçük gruplar fonksiyonelliği gerçekleştirir ve onların geri bildirimi (feedback) daha fazla fonksiyonellik gerçekleştirmek üzere kullanılır. İteratif geliştirme bir dizi küçük projeden meydana gelir. 90 lı yılların başlarında Standish Group iteratif ürün geliştirme yöntemlerini yayınladıktan sonra bu yöntem Scrum gibi pek çok çevik (agile) metodolojilerin kaynağı olmuştur. Amazon, ebay, WebEx ve Google ürünlerini ve organizasyonlarını oluşturmak üzere iteratif yöntem kullanmışlardır. Yeni firmalar (start-up companies) dünya ölçeğinde «minimal kabul edilebilir ürün» politikası ile çalışmaya başlarlar.

NPAC Ürününe adım adım erişim Neustar ilk NPAC ürününü geliştirdiğinde bu proje Big Bang tipinde bir proje idi. Aslında yeni proje kapsam olarak (uygulama alanı) oldukça küçüktü Neustar pek çok problemler içeriyordu 17 yıl sonra Neustar geliştirdiği yeni sistemi (fonksiyonelliği ) endüstrinin tüm gereksinimlerini karşılayacak şekilde tüm hizmet düzeylerinde başarı ile çalıştırdı Çok yoğun bir iteratif geliştirme yapısı içerisinde telekom endüstrisi katma değerini çok arttırdı. Gelecekte önerilecek yeni bir NPAC üreticisi,doğru bir Big Bang implementasyonu ile sonuçlanmış olan, bu süreçleri takip edecektir.

Mevcut NPAC sistemini yeniden inşa etmek için CHAOS veri tabanındaki büyük projeler karşısında değerlendiriliyor. Tablo, veri tabanındaki benzer 100 den daha fazla projenin sonuçlarını yansıtıyor. Bu tabloda en yüksek başarısızlık oranı elde ediliyor. Bu sonuçlar yeni bir NPAC projesi ile ilgili tahminlerdir. Yeni NPAC Projesinin Çözümü Projenin başarısın da projenin büyüklüğü (size), karmaşıklığı (iştirakçilerin sayıları ile birlikte yüzlerce özellik karmaşıklığı belirler), kullanılan metodoloji, çalışanların becerileri, kullanılan araçlar ve teslimat (delivery) önemlidir.

Projenin Başarısında Ürünün Dağıtımının Önemi Yeni üreticiler geliştirdikleri ürünün fonksiyonelliğini yansıtmakta deneyimsiz olabilir. Müşteri ile iletişime geçmekte yetersiz kalabilir. Big Bang dağıtım (delivery) ilkeleri bu problemi çözecektir.

Projenin Başarısında Endüstrinin Önemi Yeni projenin hangi endüstriye ait olduğu proje başarısını etkiler. Endüstri çevresel (environmental) bir faktördür. Ayrıca: Projenin karmaşıklığı, geliştirme tipi, uygulama alanı başarı oranını istatistik sonuçlarına göre bir miktar düşürebilir. Örneğin %6 bir başarı yüzdesi elde edilmiş ise bu oran %4 e düşebilir.

NPAC Projesi ile İlgili Zaman Aşımları Bu istatistiki değerlere göre Standish Grup ortalama iki katı sürede tamamlanacağını öngörmektedir. Diğer bir ifade ile; projenin geliştirilmesi için iki yıl öngörülmüş ise dört yılda tamamlanacağı beklentisidir. Zaman ve maliyetin fazla aşımını önlemek için bazı süreçlerden vazgeçilebilir.