YAZILIM MÜHENDİSLİĞİ Şubat 2012 Yrd.Doç.Dr. Yunus Emre SELÇUK GENEL BİLGİLER



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

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

MESLEKİ TERMİNOLOJİ I 1. HAFTA YAZILIM MÜH. TEMEL KAVRAMLAR

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

YAZILIM MÜHENDİSLİĞİNE GİRİŞ

Y I L D I Z T E K N I K Ü N İ V E R S İ T E S İ MÜHENDİSLİĞİ

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

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

Yazılım Mühendisliği 1

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

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İĞİ

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

YMT 505-Yazılım Proje Yönetimi Giriş- Temel Kavramlar

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

BLM 426 YAZILIM MÜHENDİSLİĞİ BAHAR Yrd. Doç. Dr. Nesrin AYDIN ATASOY GENEL BİLGİLER

Mühendislik ve Bilgisayar Bilimleri Fakültesi Yazýlým Mühendisliði

YMT 312-Yazılım Tasarım ve Mimarisi Yazılım Mühendisliği ne Giriş

Başarı Değerlendirme YAZILIM. Mühendisliğe Temel Bir Bakış. Yazılım Nedir? BIL 304 YAZILIM MÜHENDİSLİĞİ

Yaz.Müh. Ders Notları 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ş (SE 112) Ders Detayları

BİLGİSAYAR MÜHENDİSLİĞİNE GİRİŞ

aselsan Açık Pozisyonlar Bilgi Teknolojileri (BT) Denetçisi İç Denetçi

YMH 114 YAZILIM MÜHENDİSLİĞİNİN TEMELLERİ

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

SÜRDÜRÜLEBİLİR İNŞAAT CE İngilizce. Lisans. Kısıtlı Seçmeli. Yard. Doç. Dr. Özgür Köylüoğlu DERS BİLGİLERİ

Yaz.Müh. Ders Notları 1

Yaz.Müh. Ders Notları 1

Yaz.Müh. Ders Notları 1

STİK K KURULTAYI YAZILIM LOJİST STİĞİ

TEMEL BİLGİ TEKNOLOJİLERİ KULLANIMI

Bitirme Projesi (COMPE 494) Ders Detayları

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

Yazılım Mühendisliği Bölüm - 3 Planlama. Cengiz GÖK

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

Yaz.Müh. Ders Notları 2

BENZERSİZ SORUNLARA BENZERSİZ ÇÖZÜMLER

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

YAZILIM YAŞAM DÖNGÜSÜ VE YAZILIM GELİŞTİRME SÜREÇLERİ

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

Gereksinim Mühendisliği (SE 560) Ders Detayları

YAZILIM KAVRAMINA BİR BAKIŞ. Gürcan Banger Elektrik Yük. Müh. ESOGÜ - 9 Nisan 2007

Document Title Issue Date R21.00 Form 01 24/07/2014

Yaz.Müh. Ders Notları 1

SİSTEM ANALİZİ VE TASARIMI

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

SAYIŞTAY BİLGİ İŞLEM MERKEZİ ÖRGÜT VE GÖREV YÖNETMELİĞİ

CMMI ve Çevik Yöntemler

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

Lojistik ve Taşımacılık Sektöründe Yeni Hizmet Modeli. Lojistik ve Taşımacılık Sektöründe Yeni Hizmet Modeli

Ders Adı : Nesne Tabanlı Programlama-I Ders No : Teorik : 3 Pratik : 1 Kredi : 3.5 ECTS : 4. Ders Bilgileri.

Bilgisayar Mühendisliği. Bilgisayar Mühendisliğine Giriş 1

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

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

YAZILIM MÜHENDİSLİĞİNİN TEMELLERİ 8.Hafta. Yazılım Doğrulama ve Geçerleme

Mühendislik ve Bilgisayar Bilimleri Fakültesi Yazýlým Mühendisliði

Sistem ve Yazılım Nedir?

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

Bu rapor, belirtilen bölümlerden sadece 6 veya 7 tanesine sahiptir.

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

Yazılım Kalite Yönetimi (SE 554) Ders Detayları

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI

Çok İşlemcili Yapılarda Sinyal İşleme Yazılımlarının Geliştirilmesi Uygulaması. Sinan Doğan, Esra Beyoğlu

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

İleri Veritabanları (COMPE 502) Ders Detayları

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

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

DERS BİLGİ FORMU. IV Türkçe Zorunlu Ders. Haftalık. Ders. Okul Eğitimi Süresi. Saati

Yazılım Mühendisliğinin Temelleri (SE 100) Ders Detayları

DERS BİLGİLERİ. Ders Kodu Yarıyıl T+U Saat Kredi AKTS ERP (İŞLETMELERDE KAYNAK PLANLAMA) MAN

Yazılım Örüntüleri (SE 461) Ders Detayları

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

Bilgisayarda Programlama. Temel Kavramlar

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ı

Kuluçkahane.

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

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

Profesyonel, verimli, yenilikçi sistemler...

1: Anlatım, 2: Soru-Cevap, 3: Lab, 4: Örnek vaka incelemesi

Kurumsal Mimari. (Enterprise Architecture) MUSTAFA ULUS, 2015

TCMB Deneyim Raporu. Kurumsal Java Uygulama Platformu. Sacit Uluırmak. Türkiye Cumhuriyet Merkez Bankası Sistem Araştırma ve Planlama Müdürlüğü

CMMI. CMMI ve Çevik Yöntemler. Orhan KALAYCI Haziran Yazılım Süreç Kalitesi ve Yönetim Danışmanlığı.

İŞLETMELERDE İŞ SÜREÇ YÖNETİMİ (BPM) UYGULAMASI. Hazırlayanlar Fatma Didem GÜRKAN Endüstri Mühendisi Ahmet Alper ÇALIŞKAN Endüstri Mühendisi

BİT in Temel Bileşenleri (Yazılım-1)

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

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

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: CME 3006

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

i eknolojt yon Ġnovas

İŞLETMELERDE İŞ SÜREÇ YÖNETİMİ (BPM) UYGULAMASI. Hazırlayanlar Fatma Didem GÜRKAN Endüstri Mühendisi Ahmet Alper ÇALIŞKAN Endüstri Mühendisi

SIRA NO SORUMLU BİRİM FAALİYET SORUMLU DURUM AÇIKLAMA

Öğrenim Kazanımları Bu programı başarı ile tamamlayan öğrenci;

Kurumsal bilgiye hızlı ve kolay erişim Bütünleşik Belge Yönetimi ve İş Akış Sistemi içinde belgeler, Türkçe ve İngilizce metin arama desteği ile içeri

BİLGİSAYAR MÜHENDİSLİĞİ DERS NOTU

ALGORİTMA VE PROGRAMLAMA I

4. YAZILIM PROJELERİ YARIŞMASI REHBERİ ÖNSÖZ

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

1) Programlama dillerinin temel kavramlarını öğrenir. 1,2,4 1

Bilgisayar Programlama I (COMPE 113) Ders Detayları

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

Transkript:

YAZILIM MÜHENDİSLİĞİ Şubat 2012 Yrd.Doç.Dr. Yunus Emre SELÇUK GENEL BİLGİLER BAŞARIM DEĞERLENDİRME Sınav tarihleri: Daha sonra duyurulacak 1. Ara sınav yazılı, 2. Ara sınav: test, Final sınavı: yazılı Proje ödevi: Son ders haftasında sunum yapılacaktır. Puanlama (değişebilir): 1. Vize * %20, 2. Vize * %20, Final * %40, Proje * %20 KAYNAK KİTAPLAR Software Engineering: A Practitioner's Approach / Roger S. Pressman. McGraw/Hill, 2005, 6th ed. UML Distilled / Martin Fowler. Addison Wesley, 2003, 3rd ed. ve değerleri 1 GENEL BİLGİLER DERS İÇERİĞİ Yazılım Mühendisliğine Giriş Yazılım Geliştirmede Süreç Modelleri Gereksinim i Mühendisliği Nesneye Yönelik Çözümleme Nesneye Yönelik Tasarım Yazılım Ölçütleri Yazılım Sınama Teknikleri Yazılım Proje Yönetimine Giriş 2 Yaz.Müh.Ders Notları #1 1

YAZILIM Yazılım : Herhangi bir boyuttaki herhangi bir tür donanımda çalışan bilgisayar programını VE, Basılı veya elektronik ortamdaki her tür dokümanı içeren ürün. Dokümanlar yazılım mühendislerine ve son kullanıcıya yönelik olabilir. Yazılım hem bir üründür, hem de başka ürünler elde etmeye yarayan bir araçtır. Yaşam döngüsü: Yazılımın bir fikir olarak doğmasından, kullanım dışı bırakılmasına kadar geçen süreç. Yazılım fiziksel ik bir ürün ü olmadığı ğ için ii aşınmaz, ancak zamanla yetersizleşebilir. Değişim kaçınılmazdır: Yazılım, yaşam döngüsü süresince değişikliklere uğrar. Değişiklikler, yazılımda yeni hatalar oluşturabilir. Yeni hatalar tam olarak düzeltilmeden yeni değişiklikler gerekebilir. Çözüm: Yazılım mühendisliği ilkelerine uyularak daha iyi tasarlanmış yazılım. 3 YAZILIM TÜRLERİ Sistem Yazılımı : Diğer programlara hizmet sunmak üzere hazırlanmış programlar. Derleyiciler, il işletim i sistemleri, i vb. Mühendislik Yazılımı / Bilimsel Yazılım : Mühendislik ve bilimsel hesaplamalarda kullanılmak üzere hazırlanmış programlar. Büyük hacimli verilerle uğraşır. Numara öğütmek / Number crunching. Gömülü (Embedded) Yazılım : Donanım ile çok sıkı ilişkidedir. Denetim amaçlıdır. Gerçek zamanlı uygulamalardır. 4 Yaz.Müh.Ders Notları #1 2

YAZILIM TÜRLERİ Uygulama Yazılımı : Product-line, shrink-wrapped, off-the-shelf, vb. Farklı müşteriler tarafından kullanılabilecek l k genel amaçlı yazılımlar l Cari hesap uygulamaları, çeşitli otomasyon programları, kelime işlem uygulamaları, vb. Kurumsal Yazılım: Belirli ticari iş gereksinimlerine yönelik programlar. İş süreçleri ile ilgili bilgiye sahip olmalıdır. Genellikle müşteriye özel tasarlanır. Veri dönüştürme ve değerlendirme uygulamaları, iş süreçlerinin kimi zaman gerçek zamanlı izlenilmesi, vb. Zamanla "eski yazılım" haline dönüşür! 5 ESKİ YAZILIM (Legacy Software): İş sürecinin önemli bir parçası olan ve çok uzun süredir kullanılan yazılımlar. Eski yazılımda bulunabilecek olumsuzluklar: Eksik veya hatalı dokümantasyon Zamanla karmaşıklaşmış kod Esnek olmayan yapı Eski donanımla çok sıkı ilişki Yazılım mühendisliğindeki gelişmelerden yoksunluk nedeniyle düşük kalite. Eski yazılımın değiştirilmesini gerektiren nedenler : İş alanındaki yeni gereksinimler Güncel sistemlerle birlikte çalışabilmesi için uyumluluk kazandırılması Donanımın ömrünün dolması nedeniyle daha güncel ortama taşınma gerekliliği 6 Yaz.Müh.Ders Notları #1 3

YAZILIMI ETKİLEYEN EĞİLİMLER Yaygınlaşan Bilgi-İşlem : Hesaplama gücünün giderek küçülen alanlara sıkıştırılabilmesi, bilişimin günlük yaşantımızla daha kolay bütünleşmesine ü olanak sağlıyor. Yaygınlaşan Haberleşme Ağı : Kablosuz ağların yaygınlaşması, bilişimin günlük yaşantımızla daha kolay bütünleşmesine olanak sağlıyor. Özgür / Açık Kaynak Yazılım : Gevşek bir ekip tarafından geliştirilen yazılım, daha anlaşılır ve geliştirilebilir olmalıdır. Ayrıca: Takım çalışması zorunluluğu Küreselleşme Ekonomik krizler 7 YAZILIM HAKKINDAKİ YANILGILAR: MÜŞTERİ AÇISINDAN Programın yazılmasına başlanması için amaçları genel olarak belirlemek yeter, ayrıntılar sonra kararlaştırılabilir. Nasıl olsa yazılım esnektir. Belirsiz i gereksinimler, i çürük ük atılmış temele benzer. Yazılım esnektir. Değişen gereksinimler kolayca sisteme uyarlanabilir. Yazılım yaşam döngüsünde ilerledikçe, değişen gereksinimleri yazılıma uyarlamanın bedeli üstel olarak artar. Sonuç: Yazılım esnek bir oyun hamurundan çok kil veya cam gibidir. Çevik süreçlerle esnekliğin arttırılması hedeflenmektedir. 8 Yaz.Müh.Ders Notları #1 4

YAZILIM HAKKINDAKİ YANILGILAR: PROGRAMCI AÇISINDAN Yazılımı tamamlayınca işimiz biter. Yazılım üstünde harcanan çabanın yarısından fazlası, yazılımın müşteriye ilk teslimatından sonra harcanmaktadır. Yazılımı tamamlamadan kalitesini ölçemem. Kalite güvence yöntemleri yazılım hayat döngüsünün her aşamasında uygulanabilir. Çözümleme sürecinde dahi kullanılabilecek kalite ölçütleri bulunmaktadır. Yazılım eşittir program. Gereksinim analizi başlı başına bir emektir. Dokümantasyon ve sınama çalışmalarını da unutmayın! Bazı durumlarda entegrasyon çalışmaları da gerekmektedir. Yazılım mühendisliğinin gereklerini uygulayarak boşuna çaba harcıyoruz. Haritası olmayan yolunu kaybeder. Kalite için harcanan çaba, karşılığını yazılım hayat döngüsünün ilerleyen aşamalarında fazlasıyla ödeyecektir. Küresel ölçekte yazılım projelerinin %50'si başarısızlığa uğramaktadır. 9 YAZILIM HAKKINDAKİ YANILGILAR: İDARİ İşler yetişmiyorsa takıma yeni programcılar ekleriz. Yazılım hayat döngüsü içerisinde ilerledikçe, yeni elemanların yazılıma hakim olması üstel olarak zorlaşır. İşler l daha da gecikir. Geliştirmesini üstlendiğim yazılımı tamamen veya kısmen fason yaptırırım. Proje ilerlemesini kendi içinde denetleyemeyen bir firma, dışarıya verdiği işi izlemekte de zorlanacaktır. Açık kaynak yazılım üretirsem kar edemem. Danışmanlık hizmetleri ile kar edilebilir. Başka iş modelleri de vardır. 10 Yaz.Müh.Ders Notları #1 5

YAZILIM SÜREÇLERİNİN GENEL ADIMLARI Çözümleme (Analysis) Tasarım (Design) Gerçekleme (Implementation) Sınama (Testing) Bakım (Maintenance) ÇÖZÜMLEME Çözümleme: Bir şeyi anlayabilmek için parçalarına ayırmak. Sistemi anlamaya yönelik çalışmalardan ve üst düzey planlama eylemlerinden l oluşur. Uygulama alanı Kullanıcı gereksinimleri Program parçaları arasındaki üst düzey etkileşimler (NYP'deki parçalar: sınıflar ve nesneler) Bir sorunu anlamadan çözemezsiniz. 11 YAZILIM SÜREÇLERİNİN GENEL ADIMLARI Çözümleme Tasarım Gerçekleme Sınama Bakım TASARIM Tasarım: Bir araştırma sürecinin çeşitli dönemlerinde izlenecek yol ve işlemleri tasarlayan çerçeve. Çözümleme ile anlaşılan sorun tasarım aşamasında kağıt üzerinde (!) çözülür. Yazılım Tasarıma yönelik şemalar (NYP'de UML şemaları), elektronik devre şemaları, mimari kat planları GERÇEKLEME Eldeki tasarım, bir programlama dili ile kodlanır. 12 Yaz.Müh.Ders Notları #1 6

YAZILIM SÜREÇLERİNİN GENEL ADIMLARI Çözümleme Tasarım Gerçekleme Sınama Bakım SINAMA Sınama neden önemlidir? Yazılım sürecinde ilerledikçe, ortaya çıkabilecek hataların giderilme maliyeti üstel olarak artar. Aksi gibi, hataların büyük çoğunluğu isteklerin belirlenmesi ve tasarım aşamalarında ortaya çıkar. Bu yüzden: Erkenden, sık sık ve kolay sınama yapın. 13 YAZILIM SÜREÇLERİNİN GENEL ADIMLARI Çözümleme Tasarım Gerçekleme Sınama Bakım BAKIM Yazılımın faaliyete geçirilmesinden sonra sistemde yapılan değişikliklerdir. Yazılım hatalarının düzeltilmesi: Kodlama hataları Tasarım hataları (!) Gereksinim ve analiz hataları (!!) Sistemin işlevlerini değiştirme veya işlevlere eklemeler/çıkarmalar, Yazılımın farklı bir ortama taşınması (yazılım, donanım, iklim), 14 Yaz.Müh.Ders Notları #1 7

YAZILIM SÜREÇLERİNİN GENEL ADIMLARI Çözümleme Tasarım Gerçekleme Sınama Bakım BAKIM Yeniden mühendislik (Refactoring / Software re-engineering) Teknik bakış açısı: Yazılımın işlevini değiştirmeden iç yapısını değiştirmek. Olası eylemler: Yazılımın belgelendirilmesi Yazılımın güncel bir programlama diline geçirilmesi Tasarımın iyileştirilmesi/değiştirilmesi Yazılımın farklı bir ortama taşınması 15 Yaz.Müh.Ders Notları #1 8