27
Yazılım Mimarisi Bir yazılımın veya bilgisayar sisteminin yazılım mimarisi demek sistemi oluşturan yazılım bileşenleri ve görünür dış özellikler ile bunlar arasındaki ilişkiler demektir. (Viki) Belirlenen teknik ve operasyonel ihtiyacın giderilmesi için, performans, güvenlik ve yönetim vb. gibi genel kalite özelliklerini de karşılayacak şekilde yapısal bir çözüm tasarlama işlemidir.

Yazılım mimarisi yazılım müh

Embed Size (px)

DESCRIPTION

yazılım müh.

Citation preview

Page 1: Yazılım mimarisi yazılım müh

Yazılım Mimarisi

Bir yazılımın veya bilgisayar sisteminin yazılım mimarisi demek sistemi oluşturan yazılım

bileşenleri ve görünür dış özellikler ile bunlar arasındaki ilişkiler demektir. (Viki)

Belirlenen teknik ve operasyonel ihtiyacın

giderilmesi için, performans, güvenlik ve yönetim vb. gibi genel kalite özelliklerini de karşılayacak

şekilde yapısal bir çözüm tasarlama işlemidir.

Page 2: Yazılım mimarisi yazılım müh

Yazılım Problemi Çözülürken

Çözülecek problem nedir ?Problem çözülürken ne kullanılacak ?Çözüm nasıl gerçekleştirilecek ?Çözüm nasıl oluşturulacak?Problem oluşturulup çözülürken hatalar nasıl ortaya çıkarılacak ?Kullanıcı tarafından istenilen değişiklikler, düzeltmeler ve adaptasyon süreçleri nasıl desteklenecek?

Page 3: Yazılım mimarisi yazılım müh

ÖrnekBir müşteri size içinde ibadet edilecek bir yer yap derse ;

-Yapılacak “şey”in kapalı bir mekan olması gerektiğini (fiziksel ortam).-Hangi dine ait bir ibadeti kastettiğini (ruhsal ortam).- Kaç şiddetine bir depreme dayanabileceği (dayanıklılık).- İçinde kaç kişi barındırabileceği (kapasite),- Kapısının yapısı (güvenlik).- Vs. gibi özelliklerinin hepsinin temel atılmadan önce bilinmesi gerekir.

Page 4: Yazılım mimarisi yazılım müh

“Mimarı getirin bana”

Page 5: Yazılım mimarisi yazılım müh

Yazılım mimarisi yapı ve davranışların yanı sıra ;-kullanılabilirlik -fonksiyonalite-performans -esnekllik -yeniden kullanım -anlaşılırlık -ekonomik ve teknolojik kısıtlar gibi özellikleri de yansıtır.

Tüm bu özellikleri ile “Yazılım Mimarisi” sistemin anayasasıdır.Tüm yazılım geliştirme

sürecinin merkezinde durur ve her türlü faliyete kılavuzluk eder.

Page 6: Yazılım mimarisi yazılım müh

Yazılım mimarisi pek çok sebepten dolayı önemlidir

• Sistemin karmaşıklığını yönetmek ve bütünlüğünü korumak için , kontrol edilebilir bir yapı sunar.

• Yeniden kullanımı arttıran kullanışlı bir yapı sunar

• Proje yönetimi için temel teşkil eder.

Page 7: Yazılım mimarisi yazılım müh

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önetimiKalite Yönetimi Düzenleşim (Konfigürasyon)/Değişim Yönetimi

Page 8: Yazılım mimarisi yazılım müh

Yazılım Geliştirme Modelleri (Tasarım)

• Gelişigüzel Geliştirme• Şelale (Waterfall) Modeli• Helezonik (Spiral) Model• Arttırımsal (Incremental) Geliştirme

Modeli• Döngüsel Model• Çevik Yazılım Geliştirme Metodları

Page 9: Yazılım mimarisi yazılım müh

Şelale ModeliŞelale modelinde yazılım, aşamalar en az birer kez

tekrarlanarak geliştirilir. Çok iyi tanımlanmış ve üretimi az zaman gerektiren projeler için uygun bir model

olmakla birlikte günümüzde kullanımı gittikçe azalmaktadır.

Page 10: Yazılım mimarisi yazılım müh

Helezonik (Spiral) Model

• Planlama, risk yönetimi, üretim ve kullanıcı değerlendirmeleri olarak 4 e ayrılır.

• Helezonik model, risk analizi ve prototip üretme üzerine kurulmuştur. Her döngü öncesi, içinde bulunulan fazın risk analizi yapılır ve o faz için planlanmış olan prototip geliştirilir.

• En önemli getirisi, her döngünün başında risk analizi yapılması nedeniyle zaman ve maliyet bileşenlerinin kolay tahmin edilebilmesidir.

Page 11: Yazılım mimarisi yazılım müh

Artırımsal model• Artırımsal model, yazılımın küçük parçalara

ayrılarak döngüsel olarak geliştirilmesi fikrine dayanır.

• Projenin ilerde değişikliğe Uğraması halinde bile büyük birmaliyete neden olmadan bu değişikliklerin yapılabilir olmasıdır.

Page 12: Yazılım mimarisi yazılım müh

V Modeli• Basit ve kullanımı kolay• Test aktiviteleri (planlama, dizayn gibi) kodlamadan önce başlar.

Bu daha sonra zaman kazanmamızı sağlar.Bundan dolayı projelerde başarı oranı waterfall(şelale) modeline oranla daha yüksektir.

• Hatalar iş gereksinimleri oluşmaya başladığından itibaren yakalanır.

Page 13: Yazılım mimarisi yazılım müh

Döngüsel Model• Döngüsel yazılım geliştirme modeli artırımsal

model çok benzerlik taşır.• Farkı ;

Artırımsal modelde, her döngüde tasarım, kodlama, test ve entegrasyon süreçleri bulunurken döngüsel modelde planlamadan başlayarak tüm proje süreçleri kapsanır.

Page 14: Yazılım mimarisi yazılım müh

Çevik Yazılım Geliştirme

Metodları(Agile)• Sürekli değişim,• Takım içerisindeki iletişimin üst düzeyde

olması,• Hızlı ve sürekli yazılım teslimatı,• Test odaklı yazılım geliştirimi,• Basitlik ve uyumlu planlama

Page 15: Yazılım mimarisi yazılım müh

Kodlama & Test• Bu aşamada yazılım kodlama, birim test, revizyon

ve yeniden test faaliyetleri gerçekleştirilir. Yazılım geliştirme esnasında kulladığımız yaklaşımlardan biri de sürekli entegrasyondur.

• Kod üzerinde yapılan her değişikliğin ardından, tüm sistemin çalışır durumda olduğunu kontrol etmek.

Page 16: Yazılım mimarisi yazılım müh

• Test yapılırken tüm senaryoların denenmesi gerekir.

• DENEME TESTLERİ• Önemli işlevlerin yerine getirilip getirilmediğini

anlayabilmek.• Birimin tüm isterleri karşıladığını denemek.• Yanlış girdiler alması halinde hataya dayanıklılığını

denemek.

• KABUL TESTLERİ• Yazılım ürününün tamamının istendiği gibi doğru çalıştığını

üretim yerinde sonra da kullanım yerinde testler yapılır.• Sistemin kullanıcısının amaçladığı şekilde kullanımı için

yeterli olduğunu göstermek.

Page 17: Yazılım mimarisi yazılım müh

İşletim ve Bakım• Sisteme periyodik bakımlar yapılmalı.• Hangi onarımların ne şekilde yapılması gerektiği

kullanıcıya teslim edilen sistem ile ilgili belgelerde belirtilmelidir.

• Gelişen teknolojiye ayak uydurmalı (İyileştirme).• Kullanım sırasında ortaya çıkan yazılım

kusurlarının giderilmesi,işlevsel hatalarının düzeltilmesi,sisteme yeni özellikler kazandırılması ya da var olanların değiştirilmesi.

Page 18: Yazılım mimarisi yazılım müh

Proje Yönetimi

Page 19: Yazılım mimarisi yazılım müh

• Görevlendirme• Proje planının yürütülmesi• Projenin öngörülen hedefe başarıyla ulaşması.• Zaman Yönetimi• Maliyet Yönetimi• Risk Yönetimi

Page 20: Yazılım mimarisi yazılım müh

Kalite Yönetimi

• Kaliteyi, yazılım geliştirme aşamaları boyunca yazılım ürününe yerleştirmek zorundayız.

• Standartlara uyumlu,• Amaçlanan kullanıma uygun,• Gereksinimleri karşılayan,• Belirlenen bütçe sınırları içinde gerçekleştirilmiş,• Bakımı sağlanabililen bir yazılım yapılmalıdır.

Page 21: Yazılım mimarisi yazılım müh

Sorular...

Page 22: Yazılım mimarisi yazılım müh

Hangisi yazılım geliştirme modeli değildir ?

• A- Şelale Modeli • B- Döngüsel Model• C- V Modeli• D-Spiral Model• E- Merdiven Modeli

• E- Merdiven Modeli

Page 23: Yazılım mimarisi yazılım müh

Spiral Modelde her döngünün

başında risk analizi yapılması

nedeniyle

zaman ve maliyet bileşenlerinin kolay

tahmin edilebilir.DOĞRU-YANLIŞ ?

• DOĞRU

Page 24: Yazılım mimarisi yazılım müh

Gereksinimleri Belirlerken yapılan

hataların maliyeti diğer süreçlere göre

daha fazladır.

DOĞRU-YANLIŞ ?

• Yanlış

Page 25: Yazılım mimarisi yazılım müh

Projeye göre yazılım geliştirme

modeli seçilir.

DOĞRU-YANLIŞ ?

• DOĞRU

Page 26: Yazılım mimarisi yazılım müh

Aşağıdakilerden hangisi yazılım

geliştirme süreçlerinden biri

değildir ?• A- Test• B-Kodlama• C-Gereksinimleri Belirleme• D-Bakım & Onarım• E-Yazılım Geliştirme Modelini Şeçme

• E- Çünkü yazılım geliştirme modeli gereksinimleri belirleme adımında belirlenir.

Page 27: Yazılım mimarisi yazılım müh

• Sorular ?