YAZILIM GELİŞTİRME SÜRECİ

Slides:



Advertisements
Benzer bir sunumlar
8. SINIF 3. ÜNİTE BİLGİ YARIŞMASI
Advertisements

Yazılım Geliştirme Süreci
VERİTABANI YÖNETİM SİSTEMLERİ
Sinan Doğan, Esra Beyoğlu
NOKTA, DOĞRU, DOĞRU PARÇASI, IŞIN, DÜZLEMDEKİ DOĞRULAR
Yazılım Mühendisliği Bölüm - 4 Sistem Analizi
Sistem Analizi ve Planlama
BİLİMSEL ARAŞTIRMA YÖNTEMLERİ
Component’e Dayalı Yazılım Mühendisliğinde Çözümleme Süreci “Component-Based Software Engineering Analysis” Yusuf Altunel İstanbul Kültür Üniversitesi,
Simülasyon Teknikleri
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
BEP BİREYSELLEŞTİRİLMİŞ EĞİTİM PROGRAMI.
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 ?
Sanayi Ar-Ge Proje Destek Başurusu Hazırlama Becerileri Geliştirme Çalıştayı ArGe_Projesi_Hazirlama_Calistayi (061110)
BPR151 ALGORİTMA VE PROGRAMLAMA - I
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
TÜMLEŞİK MODELLEME DİLİ
Sistem Geliştirme Sistemin tanımı. Sistemin Temel özellikleri
Yazılım Proje Yönetimi
Yazılım Mühendisliği Bölüm - 2 Yazılım Geliştirme Yaşam Döngüsü
ELEKTRONİK ORTAMDA DENETİME GENEL BAKIŞ Prof. Dr
Yazılım Mühendisliği Yrd. Doç. Dr. Altan MESUT.
24. MÜHENDİSLİK DEKANLARI KONSEYİ TOPLANTISI Mayıs 2012, Ege Üniversitesi Mühendislik Fakültesi Mühendislik Eğitiminde Tasarım Dersleri Prof. Dr.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Doğrulama ve Geçerlilik- Verification and Validation l Yazılım Sisteminin kullanıcı.
Afyon Kocatepe Üniversitesi
Sistem Analizi ve Tasarımı
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Doğrulama ve Geçerlilik.
Bilgi Sistemi Organizasyonlar içerisindeki kontrol ve karar verme mekanizmalarında kullanılacak bilginin toplanması, işlenmesi, saklanması ve dağıtılmasını.
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
Yazılım Mühendisliği.
BBY Bilgi Sistemleri Tasarımı
Şişecam S ayısal Yönetimle Verim VIII. "Türkiye'de İnternet" Konferansı 20 ARALIK 2002 Canan Özcan Türkiye Şişe ve Cam Fab. A.Ş.
SİSTEM ANALİZİ VE TASARIMI
Chapter 1: Giriş.
DERS-1 SİMÜLASYON (BENZETİM) Prof. Dr. Hüseyin BAŞLIGİL
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
Toplama Yapalım Hikmet Sırma 1-A sınıfı.
BİREYSELLEŞTİRİLMİŞ EĞİTİM PROGRAMI
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
Proje Konuları.
DENEME.
ENF 204 Bilgisayar Programlama Algoritma ve Akış Diyagramları
BİLGİSAYAR DESTEKLİ EĞİTİM UYGULAMALARI
Şahin BAYZAN Kocaeli Üniversitesi Teknik Eğitim Fakültesi
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
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.
BE P BİREYSELLEŞTİRİLMİŞ EĞİTİM PROGRAMI. BEP ; özel eğitim gereksinimi olan her birey için yazılı olarak geliştirilmiş ve özel eğitim gereksinimi olan.
Proje Oluşturma ve Yönetimi
Sistem Yaklaşımı.
Yazilim Gelistirme metodolojisi ve Yasam Döngüsü
YONT 409 PROJE YÖNETİMİ.
NOT: Bu slayt üzerindeki resmi değiştirmek için resmi seçin ve silin. Ardından, kendi resminizi eklemek için yer tutucudaki Resimler simgesini tıklatın.
Bilgisayar Mühendisliğindeki Yeri
ÇEVİK (Agile) SÜREÇLER Değişen gereksinimler, teknik riskler gibi önceden belirlenemeyen durumlara ve yazılım ürününü etkileyebilecek her tür değişikliğe.
Yazılım Mühendisliği YYurtaY. Ekip çalışması
Sistem Analizi ve Tasarımı
Nesne Tabanlı Yazılım Geliştirme Bora Güngören Portakal Teknoloji EMO Ankara Şubesi
Ders 4: Sistem Çözümleme
SİSTEM ANALİZİ VE TASARIMI
Araştırma Problemlere güvenilir çözümler bulmak amacı ile planlı ve sistematik olarak, verilerin toplanması, çözümlenmesi, değerlendirilmesi ve raporlaştırılması.
Yazılım Bakımı Yazılım Mühendisliği.
Yazılım Geliştirme Yaşam Döngüsü
ONTOLOJİ GELİŞTİRME ALANINDA ÇEVİK YAKLAŞIMLAR
Yazılım Geliştirme Yaşam Döngüsü
Yazılım Mühendisliği Temel Süreçler - Sistem Analizi
Yazılım Mühendisliği Temel Süreçler – PLANLAMA II
İLERİ VERİ TABANI UYGULAMALARI
Sunum transkripti:

YAZILIM GELİŞTİRME SÜRECİ Yazılımlar birbirini tutarlı biçimde tamamlayan aşamalar sonucunda elde edilir sıfırdan başlanarak ya da büyük ölçüde hazır olan bileşenlere dayanılarak oluşturulabilir 03.04.2017 SGvM / ET

İzlenen yol ne olursa olsun yazılım geliştirme süreci çok karmaşıktır entellektüel düzeyi çok yüksek bir mühendislik işidir geliştiricilerine son derece bağımlıdır Her aşamasında ve her adımında, genelde ya da ayrıntıda sık sık sürekli olarak yapılanların gözden geçirilmesi ve değerlendirmesi gerekir Yapılan değerlendirmeler daha önce alınmış bir kararın değiştirilmesini gerektirebilir ya da yapılması gerekenlerin yeniden planlanmasına yol açabilir Yazılım geliştirme bir reçeteye uyularak yapılabilecek bir iş değildir 03.04.2017 SGvM / ET

İzlenen süreç modeli, kullanılan teknikler, yöntemler ve araçlar çok farklılık gösterir çok farklı biçimlerde destek ve yarar sağlar BDYM (Bilgisayar Destekli Yazılım Mühendisliği) (CASE – Computer Aided Software Engineering) araçları, yazılım geliştirme süreci içinde belli aşamaların, belli adımlarında yapılan işleri kolaylaştırıcı ve destekleyici olabilir, ancak asıl belirleyici olan işi yapanın / uzmanın alacağı kararlar ve buna dayanarak yaptığı tanımlardır Önemli olan her an asıl kararları verecek olan Yazılım Geliştiriciler(/Yazılım Mühendisleri)dir 03.04.2017 SGvM / ET

Yazılım geliştirme süreci içinde yer alan aşamalarda yerine getirilecek işler ve sonunda yapılacak tanımlar çok çeşitlilik gösterir Bu yüzden uygulamada kullanılmak üzere tanımı yapılmış birçok yöntem söz konusudur Uygulayacağınız birçok yöntemi yazılım geliştirme anlayışınız ve geliştirme sürecinize uygun olarak seçebilirsiniz Aynı işi yapan yöntemlerden hangisinin en iyisi ya da en ideali olduğu kolayca söylenemez! 03.04.2017 SGvM / ET

İzlenecek süreci, kullanılacak yöntemleri büyük ölçüde geliştirilecek yazılımın türü geliştirme ortamının özellikleri geliştirme takımının taşıdığı özellikler belirler Aynı yazılım evi içinde bile yazılım geliştirmek için farklı yaklaşımlar / yöntemler söz konusu olabilir Yazılım geliştirme sırasında izlenen süreç modelleri çeşitlilik göstermekle birlikte aynı temel etkinlikleri içerir 03.04.2017 SGvM / ET

Yaklaşım ne olursa olsun her aşamada çok çeşitli ve kapsamlı işlerin yapılması gerekir Süreç modellerinin daha iyi uygulanmasını sağlayacak olan birçok ayrıntı bu kapsam içinde gizlidir Kullanılan yazılım geliştirme süreci, belli bir aşamanın belli bir adımında standart bir tekniğin izlenmesini zorlayayıcı olabilir 03.04.2017 SGvM / ET

Yazılım Geliştirme Süreçleri İçinde Bir Biçimde Yer Alması Gereken Aşamalar: Yazılım Çözümleme (Software Analysis) Yazılım Belirtimleri (Software Specification) Yazılım Tasarımı (Software Design) Yazılım Gerçekleştirme (Software Implementation) Yazılım Sınama (Software Testing) Yazılım Geçerleme (Software Validation) Müşterinin istediği yazılım mı geliştiriliyor / geliştirildi? Doğru olan yazılım mı geliştiriliyor / geliştirildi? Yazılım Doğrulama (Software Verification) Yazılım doğru çalışıyor mu? Yazılım Bakımı (Software Maintenance) Yazılımı Evrimleştirme (Software Evolution) 03.04.2017 SGvM / ET

Kabaca konuşulduğunda Yazılım Mühendisliğinde Öngörülen Yazılım Geliştirme Aşamaları: Planlama Çözümleme Tasarım Gerçekleştirim Sınama Bakım 03.04.2017 SGvM / ET

Çözümleme ve Gereksinimlerin Tanımlanması (Analysis & Requirements Specification) Yazılım hangi işlevleri görecektir? Yazılımdan hangi hizmetler beklenmektedir? Göz önüne alınması gereken kısıtlamalar nelerdir? Nasıl bir çalışma ortamında işlerliği olacaktır? Bu aşamada yapılan tanımların doğru olması çok önemli, çünkü sonraki aşamalarda yanlış yapılmasına yol açılabilir! 03.04.2017 SGvM / ET

Sistem Çözümleme (System Analysis) Olurluk Çalışması Çözümleme ve Gereksinimleri Belirleme Gereksinimleri Tanımlama Gereksinimlerin Geçerlik Denetimi Ön Olurluk (feasibility) Raporu Yazılımın Kavramsal Modeli Kullanıcı ve Yazılım Gereksinim Tanımları Gereksinim Belgesi Sistem Çözümleme (System Analysis) 03.04.2017 SGvM / ET

Olurluk çalışmasında kestirimde bulunulur: Teknolojinin mevcut olanakları ile kullanıcı gereksinimleri nasıl karşılanabilir? (yazılım ve donanım olarak) Maliyeti ne olabilir? Yeterli bütçe büyüklüğü nedir? Maliyetine değer mi? Olurluk çalışması hızlı ve ucuza yapılabilmeli, sonraki aşamalarda yapılacak işlerin nasıl bir yol izlenerek yerine getirilebileceğini göstermelidir 03.04.2017 SGvM / ET

Mevcut sistem gözlemlenir, incelenir Çözümlemede genelde Mevcut sistem gözlemlenir, incelenir İş süreçleri gözden geçirilir ve irdelenir kullanıcı gereksinimlerinin belirlenebilmesi için birden çok prototip kurulabilir Gereksinimlerin karşılanmasını sağlayacak birden çok kavramsal model oluşturulabilir Daha sonra gereksinimler sınıflandırılır ve tanımlanır Kullanıcının öncelikle işlevsel gereksinimleri tanımlanır Gereksinimleri sağlayacak sistemin özellikleri, hızı ve verimliliğinin ne olması gerektiği açıklanır Çözümleme sonunda geçerlilik, tutarlık ve bütünlük açısından gereksinimler gözden geçirilir 03.04.2017 SGvM / ET

Yazılım Tasarımı (Software Design) Gereksinim Belgesi Mimari Tasarım Bileşen Arayüz Tasarımı Bileşen (/Modül) Tasarımı Veri Tabanı Tasarımı Kullanıcı Arayüz Tasarımı Veri Yapısı ve Algoritma Tasarımı Yazılımın Mimari Yapısı Bileşen Arayüz Tanımları Bileşen (/Modül) Tanımları Veri Tabanı Tanımları Kullanıcı Arayüz Tanımları Algoritma Tanımları Genel Tasarım Ayrıntılı Tasarım 03.04.2017 SGvM / ET

Tasarım etkinlikleri sıralı değil genelde iç içe geçmiş etkinliklerdir Bütün tasarım etkinlikleri birkaç kere gözden geçirilebilir Her adımda tasarım ayrıntıları artar ve yapılan tanımlar giderek gerçekleştirim aşamasına geçilebilecek olgunluğa ulaşır Tasarım, farklı düzeylerde (genel ya da ayrıntılı) yazılım modelini oluşturma işidir Genel tasarımdan ayrıntılı tasarıma kadar inilir Tasarım, yazılımın nasıl gerçekleştirileceğine ilişkin genelden ayrıntıya inen tanımların yapılmasıdır Yazılım hangi alt sistemlerden oluşacak? Alt sistemler arasındaki ara yüzler (bilgi alışverişi ve işlevlerin kullanımı) nasıl olacak? 03.04.2017 SGvM / ET

Yapısal Tasarım Yöntemlerine doğru gelişmiş günümüzde önce Yapısal Tasarım Yöntemlerine doğru gelişmiş günümüzde Nesneye Yönelik Tasarım Yöntemlerine ulaşılmıştır Yazılım sürecini desteklemek üzere genelde BDYM (CASE) araçları kullanılır BDYM aracı Tanımların yapılışında yol gösterici bir süreç modelini, başka bir deyişle nasıl bir yol izleneceğini gösterir Tanım yapmakta kullanılan biçimsel gösterim dillerini içerir Raporlama / belgeleme biçimlerini kendiliğinden sağlar Uyulması gereken kuralları / ilkeleri içerir 03.04.2017 SGvM / ET

Veri akış çizgeleri (iş süreçlerini tanımlamada kullanılır) Yapısal Tasarım Yöntemlerine dayanan BDYM araçları aşağıdaki türden biçimsel gösterimleri kullanır: Veri akış çizgeleri (iş süreçlerini tanımlamada kullanılır) Varlık-ilişki çizgeleri (veritabanı tanımlamada kullanılır) Yapısal çizgeler (yazılım bileşenlerini ve etkileşimlerini göstermede yararlanılır) Veri deposu (repository) (geliştirilen yazılımın kendisine ilişkin veri tabanı) 03.04.2017 SGvM / ET

Gerçekleştirim: Programlama ve Yanlış Ayıklama (Debugging) Algoritma kurulduktan sonra yapılan işe programlama ya da kodlama denir Yanlış ayıklamanın programlamanın doğal uzantısı olduğunu ve aşağıdaki adımları kapsadığını bilmek gerekir: yanlışın belirlenmesi yanlışın nasıl düzeltileceğine karar verilmesi yanlışın düzeltilmesi yeniden sınama Bazı BDYM araçları program iskeletinin kurulmasında yardımcı olabilir 03.04.2017 SGvM / ET

Yazılım Sınama (Software Validation) Birim Sınama Modül Sınama Alt Sistem Sınama Sistem Sınama Teslim Alma Sınaması Kabul Testi Bileşen Sınama Bütünleştirme Sınaması 03.04.2017 SGvM / ET

03.04.2017 SGvM / ET

UYGULAMA YAZILIMI EDİNMEDE GEÇİLEN AŞAMALAR 03.04.2017 SGvM / ET

03.04.2017 SGvM / ET

03.04.2017 SGvM / ET

Yazılım Geliştirmede Temel Aşamaların Ana İşlevleri. Çözümleme Yazılım Geliştirmede Temel Aşamaların Ana İşlevleri Çözümleme Tasarım + Gerçekleştirim İşletim + Bakım Ne yapılacak? Nasıl yapılacak? Yapılanı kullanma Gereksinimler neler? Yazılım Mimarisi Hangi veriler işlenecek? Veri Tabanı Hangi işlemler yapılacak? Ara yüz Tanımları İşlemlerin performansı ne olmalı? Kullanılacak programlama yaklaşımı/dili Kullanıcı ara yüzlerinde neler olmalı? Ayrıntılı Tasarım Tasarımı bağlayıcı kısıtlar neler? Modül ve program tanımları Başarım ölçütleri neler? Veri Yapıları Yazılımın kavramsal modeli Program Algoritmaları 03.04.2017 SGvM / ET

PİLOT UYGULAMA YAPMA GEREĞİ NEDEN DUYULUR? 1. Hiç denenmemiş değişik bir yaklaşım uygulanacak ise geçerliliğini anlamak için 2. Bir işletmenin yabancısı olduğu bir uygulamaya geçilirken çalışanlarını alıştırmak ve olumsuz tepkilerini en aza indirgemek için 3. Kabul öncesi sistemi denemek için 03.04.2017 SGvM / ET