Upload
owen-clark
View
59
Download
3
Embed Size (px)
DESCRIPTION
Yazılım Nedir. Yazılım. - Tanımlanmış bir işlevi yerine getiren, - Girdi ve Çıktıları olan,. - Herhangi bir donanım üzerinde çalışan, - Bilgisayar programı veya programlarından ve - Kullanım ve bakım kılavuzları gibi belgelerden oluşan bir üründür. - PowerPoint PPT Presentation
Citation preview
x
Yazılım Nedir
Yazılım
- Tanımlanmış bir işlevi yerine getiren, - Girdi ve Çıktıları olan,
- Herhangi bir donanım üzerinde çalışan, - Bilgisayar programı veya programlarından ve - Kullanım ve bakım kılavuzları gibi belgelerden oluşan bir üründür.
x 2
Yazılım Mühendisliği (YM) - Nedir
IEEE Bilgisayar Topluluğunun Yazılım Mühendisliği Tarifi:
“Mühendislik eylemlerinin, (Geliştirme, İşletme, ve Bakım), disiplinli, sistematik ve nicelikli bir şekilde yazılıma uygulanması”
x
YM - Önemi
• Yazılımın hayatımıza girmediği yer var mı?• Yazılımsız hayat nasıl olurdu?• Yazılım ve Eğitim• Yazılım ve Ekonomi• Yazılım ve Haberleşme• Yazılımın verimliliğe katkısı• Yazılımın kültüre etkisi
x
YM - Tarihçesi
• İlk Bilgisayarlar ve Makine ve Assembly Dili• İşletim Sistemleri ve Anabilgisayarlar (Mainframe),
Kart okuyucuları• DOS ve PC’ler• Derleyici (Compiler) ve Yorumlayıcılar (Interpreter)
ve Yeni nesil yazılım dilleri• Windows• Yarı İletken teknolojisinin fiyat ve boyutlara etkisi• Veri haberleşmesindeki gelişmeler• İnternet
x
Yazılım Süreçleri
• Gereksinim Belirtimleri (Requirements Specifications)
• Tasarım (Design)
• Kodlama (Coding)
• Test (Test - Validation)
• İşletim ve Bakım (Operation and Maintenance)
• Proje Yönetimi• Kalite Yönetimi• Düzenleşim (Konfigürasyon)/Değişim Yönetimi
x
Yazılım Geliştirme Modelleri
Şelale Modeli (Waterfall Model) - Klasik/Geleneksel
Döngüsel Model (Cyclic Model) - Prototip - Küçük Ölçek
Artımlı Geliştirme (Incremental Development) - Öncelikli Gereksinimler
Evrimsel Geliştirme (Evolutionary Development) - Aşırı Programlama (XP - Extreme Programming)
Bileşen-Bazlı Geliştirme (Component-Based Dev)
- Tekrar Kullanılabilir Bileşenler (Reusable Components) Temiz Oda Modeli (Clean-Room Approach)
- Her aşamada hata önleme (Hata ayıklama ve temizleme yerine)
x
Şelale Modeli
Gereksinimler
Tasarım
Kodlama
Test
Bakım/Destek
Proje Yönetimi
Kalite Yönetimi
Konfigürasyon Yönetimi
x
Döngüsel Model
K
K
G T G
T
Proje Yönetimi
Kalite Yönetimi
Konfigürasyon Yönetimi
x
Artımlı Geliştirme
Faz 1 G K T
Faz 2 G K T
G K T Faz 3
Proje Yönetimi
Kalite Yönetimi
Konfigürasyon Yönetimi
x
ACM/IEEE Etik Kuralları
ABD’de profesyonel gruplar bir araya gelip etik kurallarını oluşturmuşlardır.
Bu gruplara üye olurken, bu kuralların altını imzalamanız gerekir.
Bu kurallar Tüm Yazılım Mühendislerinin (pratisyen, eğitimci, yönetici, şef, politika belirleyici, ve stajyerler) davranış ve kararlarında uyması gereken sekiz prensipten oluşmaktadır.
I. Sommerville’in Softare Engineering Ders Notları sunumundan çevrilmiştir.
x
Etik Kuralları - Giriş
• Bu kuralların kısa açıklamaları özet halinde verilmiştir. Detaylı sürümü daha geniş ve örnekli açıklamaları içermektedir. Bu detay ve örneklerin yokluğunda kısa açıklamalar kuru ve boş gelebilir.
• Yazılım Mühendisleri kendilerini yazılımın her aşamasını faydalı ve saygın bir meslek kılmaya adayacaklardır. Yazılım Mühendisleri, umumun sağlık, emniyet ve yararı için, aşağıdaki sekiz prensibe uyacaklardır:
x
Etik Kuralları - Prensipler
UMUM - Yazılım Mühendisleri halkın yararına uygun hareket
edeceklerdir.
MÜŞTERİ VE İŞVEREN - Yazılım Mühendisleri müşteri ve işverenin çıkarlarını halkın
yararlarına uygun olarak gözeteceklerdir.
ÜRÜN - Yazılım Mühendisleri ürünlerinin ve uyarlamalarının
mümkün olan en üstün profesyonel standartlara uygunluğunu sağlayacaklardır.
x
Etik Kuralları - Prensipler
MUHAKEME - Yazılım Mühendisleri tüm muhakemelerinde bütünlük ve
bağımsızlıklarını koruyacaklardır.
YÖNETİM - Yazılım Mühendisliği yöneticileri ve liderleri yazılım
geliştirme ve bakımında etik yaklaşımları benimseyip destekleyeceklerdir.
MESLEK - Yazılım Mühendisleri mesleğin şöhretini ve bütünlüğünü
halkın yararına ileri seviyelere taşıyacaklardır.
x
Etik Kuralları - Prensipler
ÇALIŞMA ARKADAŞLARI - Yazılım Mühendisleri çalışma arkadaşlarına adil
davranacaklar ve destek olacaklardır.
KENDİSİ - Yazılım Mühendisleri hayatları boyunca mesleklerini daha
iyi yapabilmek için öğrenme içinde olacaklar ve icraatlarında etik yaklaşımları önde tutacaklardır.
x
Etik Problemleri
• Üst yönetiminizle düşünce farkının oluşması• İşvereniniz Güvenlik-Kritik bir sistemi yeterli testlerini
yapmadan müşteriye teslim etmenizi istemesi• Askeri amaçlı nükleer silah yapımında çalışmak.
x
Sistem Mühendisliği
Tüm sistemin işlevsel, işletimsel ve davranış özelliklerini gösteren belge, prototip veya model yaratma.
Sistem sadece yazılım değildir:
-Yazılım -Donanım-Veri Tabanı-Süreçler
-Dokümanlar/Kılavuzlar
-İnsanlar (Kullanıcılar ve Sistem Yöneticileri)
x
Sistem Özellikleri:
• İşlevsellik (Functionality)• Güvenirlilik (Reliability)• Güvenlik (Security)• Emniyet (Safety)• Başarım (Performance)• Esneklik (Flexibility)• Ölçeklenebilirlik (Scalability)• Taşınabilirlik (Portability)• Yararlanırlık (Availability)• Kullanılabilirlik (Usability)
x
Gereksinimler (Requirements)
• Elde edilmesi (Elicitation)• Analizi (Analysis)• Uzlaşılması (Negotiation)• Belirtilmesi (Specification)• Doğrulanması (Verification)• Yönetilmesi (Management)Kalite Yönetimi Değişim Yönetimi
x
Gereksinimler - Elde Edilmesi
Sistemin olurluğunu teknik ve iş açısından araştırSistemden fayda sağlayacakları ve bakış açılarını belirle (Kullanıcılar, yöneticiler, planlama, …) Sistemin yaşayacağı teknik ortamı belirle (donanım, işletim
sistemi, haberleşme ortamı, …) Alanın getirdiği kısıtlamaları belirle (standartlar, anlaşmalar, …)Gereksinim toplama yöntemlerini belirle (teke tek görüşme, toplantı, anket, …) Tüm fayda sağlayanlardan belirlenen yöntemlerle
gereksinimleri toparla Tam tanımlanamayan gereksinimleri prototiplemeye aday
olarak belgele Kullanım senaryoları ile müşterilerin gereksinimleri daha kolay
belirtmesini sağla
x
Gereksinimler - Analiz
Problemi tümüyle anlamak ilk aşamaHer gereksinimin kaynağını ve nedenini belirtDeğişik bakış açıları kullan
- prototip, veri, işlevsel, davranış modelleri İşlev gruplarını ve hiyerarşisini belirle
- ana fonksiyon, fonksiyon, alt fonksiyon, … Gevşek tanımları sıkılaştır Öncelik sırasını belirle
x
Gereksinimler - Uzlaşılması
• Kontrat dışı istekler• Müşteri gruplarının çelişkili istekler• Öncelik sırasındaki uzlaşmazlıklar• İsteklerin teknoloji ile çelişmesi• Fazların içeriği
x
Gereksinimler - Belirtilmesi
YGB - Yazılım Gereksinim Belirtimleri (SRS - Software Requirements Specifications)Grafiksel Model
YTD - Yazılım Tanımlama Dili (SDL - Software Description Language)
Kullanım Senaryoları (Use Cases) Form Tabanlı Belirtimler
x
Gereksinimler - Yöntemler
FAST (Facilitated Application Specification Technique)
-Toplantı- Müşteri ve Yazılım Müh.- İş Ortamı Dışında- Hazırlık ve Katılım kuralları önceden belirlenmiş- Gündem- Tüm konuları kapsayan fakat serbest fikir alışverişini sağlayan -Toplantı gidişatı Uzlaştırıcı tarafından yönetilen- Bilgi Mekanizması (Kara Tahta, Duvar, Sanal Ortamlar, …)- Amaç- Uzlaşılmış çözüm gereksinimleri ve öncelikleri
x
Gereksinimler - Yöntemler
QFD (Quality Function Deployment) Müşteri İstekleri Varsayılan İstekler Heyecanlandıran İstekler
- İşlev Tanımlama - Hangi işlevlerin ne yapacağı ve değerleri
- Bilgi Tanımlama - Sistemin kullanacağı ve üreteceği veri nesneleri ve olaylar
- Görev Tanımlama - Sistemin ortamında nasıl davranması gerektiği
- Değer Analizi - Yukarıdaki aşamalarda tanımlanan gereksinimlerin önem ve öncelik sırasının belirlenmesi