Yazılım Mühendisliği YYurtaY. Ekip çalışması 1 2 34 5 6.

Slides:



Advertisements
Benzer bir sunumlar
Yazılım Geliştirme Süreci
Advertisements

Lazer Kesim & Görüntü İşleme Yazılımı

Sinan Doğan, Esra Beyoğlu
YAZILIM GELİŞTİRME SÜRECİ
Sistem Analizi ve Planlama
Strateji Tasarımı İlker acar.
Kalite Kavramı.
Bilişim Sistemleri Mühendisliği Bölümü
PROJE YÖNETİMİ VE RİSK ANALİZİ
Yazılım Mühendisliği Bölüm - 7 Yazılım Doğrulama ve Geçerleme
Yazılım Mühendisliği Bölüm - 6 Gerçekleştirim
Yazılım Mühendisliği Bölüm - 1 Yazılım Mühendisliği Gerçeği
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
BELGELEME Ian Sommerville, “Software Documentation”,
Proje yönetiminde başarının yeni formülü. Daha başarılı projeler Daha ekonomik çözümler Daha özelleşmiş hizmetler için… Neden ?
Türkiye’de Yüksek Başarımlı Hesaplama
Arş. Gör. Cevdet KIZIL Kadir Has Üniversitesi 21/02/2005
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
SÜREÇ YÖNETİMİ Dr. Selami ERARSLAN İstanbul 2011.
BBY Bilgi Teknolojisi ve Yönetimi
Yazılım Test Süreci. Yazılım test süreci Test Hazırlık Adımında Neler Yapılmalıdır? Test edilecek yazılıma ait analiz ve teknik tasarım aşamaları ile.
KADINLARIN VE KADIN SİVİL TOPLUM KURULUŞLARININ GÜÇLENDİRİLMESİ HİBE PROGRAMI GÜÇLÜ KADIN GÜÇLÜ TOPLUM PROJESİ STRONG WOMEN STRONG SOCIETY PROJECT TR2009/ /69.
Yazılım Proje Yönetimi
Yazılım Mühendisliği Yrd. Doç. Dr. Altan MESUT.
Afyon Kocatepe Üniversitesi
Bilişim Sistemleri Mühendisliği nedir? Neden ihtiyaç vardır?
Yazılım Mühendisliği.
Chapter 1: Giriş.
Quest Atlantis Dünya Üzerine Yayılmış Çok-Kullanıcılı Çevrim-İçi Eğitsel Bir Bilgisayar Oyununun Teknik Yapısı.
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
ERP Projelendirme Süreci
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
YÖNETİM BİLGİ SİSTEMLERİ
ALİ FINDIK Galatasaray Ünİversİtesİ 2015
Bilgi Teknolojisinin Temel Kavramları
Veri Tabanı Programcılığı
Kritik Finansal Sistemlerde Yazılım Değişiklik ve Takip Yönetim Sistemi Mehmet Vacit BAYDARMAN BİLGİ TEKNOLOJİLERİ.
KARAR DESTEK SİSTEMLERİ BİLEŞENLERİ
Genel Bilgiler Ön Koşul Dersi: Yok
İşletmelerde Bilişim Sistemleri
Maltepe Üniversitesi Mühendislik Fakültesi
Bilgisayar Programcılığına ve Algoritmaya Giriş
KALİTE YÖNETİM SİSTEMİ
Bilgisayar Mühendisliğine Giriş
Proje Yönetim Döngüsü: -Aşamaları -Rol ve Sorumluluklar
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.
Proje Oluşturma ve Yönetimi
Psikolojik Danışman: Hasan KARAKIŞ.  Bilgisayar kullanımı yirminci yüzyılın özellikle son on yılında büyük bir hızla artmıştır. Bu artış, hem tüm dünyaya.
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.
ADDIE. ADDIE MODEL İ (JENER İ K MODELLEME) 2 Analiz (Analysis) Tasarım (Design) Geliştirme (Development) Uygulama (Implementation) De ğ erlendirme (Evaluation)
İNSAN KAYNAKLARI YÖNETİMİ
Bilgisayar Mühendisliğindeki Yeri
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.
Sistem Analizi ve Tasarımı
KAYNAK KİTAPLAR Software Engineering / Ian Sommerville. Addison- Wesley, 2010, 9th ed. Software Engineering: A Practitioner's Approach / Roger S. Pressman.
Nesne Tabanlı Yazılım Geliştirme Bora Güngören Portakal Teknoloji EMO Ankara Şubesi
Süha GÖKALP Bilgisayar Yüksek Mühendisi Öğretim Görevlisi
Yazılım Mühendisliğine Giriş
ANKARA ÜNİVERSİTESİ SAĞLIK BİLİMLERİ FAKÜLTESİ SOSYAL HİZMET BÖLÜMÜ
Yazılım Bakımı Yazılım Mühendisliği.
Yazılım Mühendisliği Ders 1: Giriş.
Prof. Dr. Ali Yazıcı TOBB Ekonomi ve Teknoloji Üniversitesi
Yazılım Mühendisliği Temel Süreçler - Sistem Analizi
Yazılım Mühendisliği Temel Süreçler – PLANLAMA II
İçerik Tarihçe Hizmetlerimiz ve Çözümlerimiz Organizasyon Yapısı
Dünya Üzerine Yayılmış Çok-Kullanıcılı Çevrim-İçi Eğitsel
İLERİ VERİ TABANI UYGULAMALARI
Bilişim Teknolojileri Meslek Seçimi ve Ücretler (2019)
Sunum transkripti:

Yazılım Mühendisliği YYurtaY

Ekip çalışması

Yazılım Yaşam Döngüsü (YYD)

Temel Kavramlar ; Yazılım: Bir sistemin donanım bileşenleri dışındaki her şey olarak tanımlanabilir. Yazılım; Bilgisayar program parçası yada programlar grubu olarak an Yazılımı oluşturan bileşenler Yazılımı oluşturan bileşenler Mantık İ nsanBelgeProgramVeri Yazılım Algoritma.. Kullanıcı.. Doküman.. Kodlar.. Bilgi.. “ Bileşenlerin belirli bir üretim amacına yönelik olarak bir araya getirilmesi, yönetilebilmesi için kullanılabilecek üretilen yöntem, amaç, bilgi ve belgelerin tümünü içerir. ” Tanımlanan işin elektronik hesaplayıcılar aracılığı ile yapılması amacına yöneliktir. Elektronik ortama taşınmak istenen işin mevcut mantığı yazılıma da yansıtılmak durumundadır. Mantık bileşeni yazılımın en önemli bileşenlerinden birisidir.

Her tür yazılım mutlaka bir veri üzerinde çalışma durumundadır. Veri dış ortamdan alınabilir yada yazılım içerisinde üretilebilir. 'veri' yi 'bilgi' ye dönüştürme en önemli amaçtır. Yazılım üretimi, bir mühendislik disiplini gerektirir. Yazılım Yasam Döngüsü (YYD) mühendisler tarafından üretim sırasında kullanılan yasam döngüsünden esinlenerek oluşturulmuştur. Yazılım üretimi sırasında, birçok aşamada yapılan ara üretimler, bilgi belge üretimidir. ◦ Planlama bilgileri, ◦ Çözümleme bilgileri, ◦ Tasarım bilgileri, ◦ Gerçekleştirim bilgileri

Yazılımın insan bileşeni iki boyutludur. 1. Yazılımı geliştirenler 2. Yazılımı kullananlar “Çok kişili ekiplerle geliştirilmektedir. Temel nedeni yazılımın yaygınlaşması ve boyutlarının büyümesidir.” Yazılımın ana çıktısı sonuçta bir bilgisayar programıdır. İ şletime alınan programın hemen ardından bakım çalışmaları sürekli olarak gündeme gelir. Hiçbir program bütünüyle her olasılık göz önüne alınarak sınanamaz, dolayısıyla hata ihtimali her zaman mevcuttur. İ şletmeler do ğ aları gere ğ i dinamik bir yapıya sahiptir, dolayısıyla mevcut sistemin sürekli olarak yeni istek ve gereksinimleri ortaya çıkar. Ortaya çıkan talepler ve de ğ işiklikler aynı disiplin içersinde sisteme eklenmelidir.

“De ğ işik bilgisayar bilimi teknolojilerinin ve kisilerin bir bilgi yada yazılım sistemi olusturmak amacıyla bir araya getirilmesinde bir bütünleştirici gibi çalışır.” “Yazılım mühendisi bir programcı de ğ ildir, ancak programcının tüm yeteneklerine sahiptir. “ “Yazılım projelerinde temel hedefi, söz konusu üretimin az maliyet, yüksek nitelik ve talebe uygun yapılmasıdır.”

Sınırlı da ğ ıtım Müşteri yazılımı Veritabanları Çoklu kullanıcılı Gerçek-zamanlı Nesneye yönelik teknolojiler Uzman ve güçlü sistemler Yapay sinir a ğ ları Paralel işleme (Grid Comp.) Donanım gelişimi Da ğ ıtık sistemler Tüketici etkisi büyük Gömülü sistemler Düşük maliyetli Yazılım Gelişim Süreci :

Gereksinim analizi (requirements analysis) ◦ Fonksiyonel ve fonksiyonel-olmayan gereksinimler (functional & non-func. reqs.) Tasarım (design) ◦ Sistem tasarımı (system design): subsystems ◦ Detaylı tasarım (detailed design) Kodlama ve birim testi (unit testing) ◦ Birleşenlerin ayrı ayrı gerçeklestirilmesi ve birim tes ti Bütünleme testi ve sistem testi ◦ (integration & system testing) Bakım ve güncelleme (maintenance) ◦ Hataların giderilmesi, performans iyileştirme, ◦ servislerin geliştirilmesi, de ğ işikliklere uyum, vs. Yazılım geliştirme adımları

Analiz Tasarım Kodlama Sistem testi Bakım Yazılım üretiminin, mühendislik yöntemleriyle yapılmasını öngören ve bu yönden yöntem, araç, teknik ve metodolojiler üreten bir disiplindir. ◦ Yöntemler ◦ Araçlar ◦ Teknikler “Yazılım üretiminde (Yaşam döngüsü) belirtilen aşamaların sistematik olarak izlenmesi ve gerçekleştirilebilmesi yazılım mühendisli ğ i için ön şarttır.” Şelale Modeli (Waterfall Model)

Maliyetler Kalite Zaman Donanım Maliyetleri Donanım Kabiliyetleri Yazılım kalite ve maliyeti

Büyük çaptaki uygulamalar ne kadar test edilsede, hiçbir zaman %100 hatadan arındırılamaz. Yazılım geliştirme (ço ğ unlukla) ; Proje temellidir Yo ğ undur (bilgi yo ğ un) Genellikle bütçelerini aşar Öngörülen zamandan uzun süren Zorluklarla doludur Zaman alıcıdır Hesapta olmayan masraflar gerektirir Sürekli devam eden süreçtir. … Problemler !

De ğ işik yetenekte bir çok personel (raportör, programcı, test sorumlusu, çözümleyici), Yenili ğ e ve de ğ işime tepki gösteren kullanıcı ve yöneticiler, Standart ve yöntem eksiklikleri, Yeterince tanımlanmamış, oldukça karmaşık kullanıcı beklentileri, Personel sirkülasyonunun fazla olması, Yüksek e ğ itim maliyetleri, Dışsal ve içsel kısıtlar (maliyet, zaman, işgücü), Verimsiz kaynak kullanımı, Mevcut yazılımlardaki yetersizlik ve kalitesizlik, Üretim maliyetlerinin yüksek olması, Problemler !

Yazılım üretiminde Hataların Dağılımı : Mantıksal Tasarım %25 İşlevsel Tasarım %15 Kodlama %35 Belgeleme ve Diğer işlevler %25 Yazılım Üretiminde Hata Düzeltme Maliyetleri : Çözümleme %1 Tasarım %5 Kodlama %15 Test %30 Kabul Testi %40 Uygulama %100 Hatalar

Yazılımın mühendislik olarak ifade edilmesi demek ; Belirli standartlara uyması ve ölçülebilir olması gerekir. Kalite standartları, Kalitenin ölçülebilmesi Verimin standartları, Verimin ölçülebilmesi Hata sayısının düşük düzeyde olması Kullanıcı isterlerine cevap oluşturabilme (tamamını gerçekleştirebilme) Arızalar arası zamanın uzunlu ğ u Destek ve gelişme. Mühendislik ! Kalite

Sistem yazılımı Gerçek-zamanlı yazılım İ s yazılımı Mühendislik ve bilimsel yazılım Gömülü yazılım Kişisel bilgisayar Yapay zeka yazılımı … Yazılımlar

Örnekler Hesaplama (Nümerik Çözümleme) süreç temelli (Gömülü sistemler) Veri isleme (finans sektörü) CAD (Sinyal işleme) Kural Temelli (Robotik, Yapay Zeka) İ şlevlerine göre Zamana dayalı ve uygulama alanlarına göre Boyutlarına göre Sınıflama

Bilgisayar Temelleri Algoritmalar, veri yapıları, programlama dilleri İ şletim sistemleri, matematik Yazılım Mühendisli ğ i Mühendislik disiplini, çözümleme, tasarım, Gerçekleştirim(kodlama), test, bakım, geliştirme Yazılım Yönetimi Süreç yönetimi, Risk yönetimi, Kalite yönetimi Geliştirme yönetimi, Kazanım yönetimi Yazılım Alanları Veri tabanı, mühendislik, Gömülü sistemler Yapay zeka, … Yazılım Mühendisli ğ inde İ çerik Bilgileri

Üretimi ve işlemleri içine alan mühendislik disiplini Yazılım Mühendisli ğ i Yönetimi Yazılım ihtiyaç Analizi Yazılım Yönetimi Yazılım Tasarımı Yazılım Yapılandırılması Yazılım Testi Yazılım Mühendisli ğ i Altyapısı Yazılım Mühendisli ğ i işlemi Yazılım De ğ erlendirme ve Bakımı Yazılım Kalite Analizi Süreç bilgi alanları

Sistem Analisti Yazılım Mimarı Yazılım Proje Yöneticisi Yazılım Programcısı Yazılım Sistem Yöneticisi Yazılım Veri Tabanı Yöneticisi Yazılım Test elemanı Yazılım A ğ Uzmanı Yazılım Güvenlik Mühendisi Yazılım Konfigürasyon Yöneticisi Yazılım Kalite Yöneticisi … Örnek meslekler …

İ htiyaç belirleme % 2 Şartname belirleme % 4 Planlama % 1 Tasarım oluşturma % 6 Gerçekleştirim(kodlama) % 5 Test süreci % 7 Entegrasyon süreci % 8 Bakım süreci % 67 Göreceli maliyetlere göre yazılım yaşam döngüsü aşamaları.

Kaynak : Roger S. Pressman, Software Engineering – A Practitioner’s Approach, 6th Ed., McGraw Hill, International Edition, 2004, Prof. Dr. Ş.Sa ğ ıro ğ lu ders notları N.Y. Topalo ğ lu (Makale) Wikipedia. Uygulama …