İçeriğe atla

V-Model (Yazılım geliştirme)

Sistem mühendisliğinin V-Modeli.[1]

V-model (yazılım geliştirme) şelale (waterfall) modelinin gelişmiş hali olarak düşünülebilecek bir yazılım geliştirme süreci sunar. Doğrusal bir yönde ilerlemek yerine, süreç adımları kodlama evresinden sonra yukarıya doğru eğim alır ve tipik V şeklini oluşturur. V-Model geliştirme yaşam çevriminin her bir evresi arasındaki ilişkileri gösterir. Yatay ve dikey açılar zaman veya projenin tamamlanabilirliğini ve soyut seviyeyi gösterir.

Doğrulama evreleri

Gereksinim analizleri

Gereksinim analizi evresinde, ilk evre doğrulama sürecidir, sistemin gereksinimleri kullanıcının ihtiyaçları analiz edilerek toplanır. Bu evre ideal sistemin işlemek zorunda olduğu şeyleri kurgulamayla ilgilenir. Ancak yazılımın nasıl tasarlanacağını ve inşa edileceğini belirlemez. Genellikle kullanıcılar görüşülür ve üretilen kullanıcı gereksinimleri dokümanı oluşturulur.

Kullanıcı gereksinimleri dokümanı sistemin fonksiyonelliği, arayüzü, performansı, verisi, güvenliği gibi kullanıcı tarafından beklenen gereksinimleri tanımlar. Kullanıcıya sistemin anlamını iletmek için iş analisti tarafından kullanılır. Kullanıcılar dikkatli bir şekilde sistem tasarım evrelerinde sistem tasarımcıları için bir kılavuz gibi hizmet etmesi için bu dokümanları incelerler. Kullanıcı kabul testleri bu evrede tasarlanır. Fonksiyonel gereksinimleri de inceleyebilirsiniz.

Hem yazılımsal hem de donanımsal metodolojileri içeren gereksinimleri toplamak için farklı metotlar vardır, bunlar görüşmeler, anketler, doküman analizleri, incelemeler, tek kullanımlık prototipler, kullanıcı senaryoları, statik ve dinamik incelemeler.

Sistem tasarımı

Sistem tasarımı sistem mühendislerinin analiz ettiği ve kullanıcı gereksinim dokümanlarını çalışarak sundukları sistemin işleyişini anladıkları evredir. Onlar mümkün durumları ve teknikleri kullanıcı gereksinimlerini gerçekleştirerek anlamaya çalışırlar. Eğer herhangi bir gereksinim uyuşmazlığı varsa, kullanıcı bununla ilgili olarak bilgilendirilir. Çözüm bulunur ve kullanıcı gereksinim dokümanı düzenlenir. Yazılım talimatname dokümanı geliştirim evresinin üretilmesi için bir tasarı gibi hizmet eder. Bu doküman genel sistem organizasyonunun, menü yapılarını, veri yapılarını içerir.

Aynı zamanda iş senaryolarını, örnek pencereleri, daha iyi anlamak için raporları da tutabilir. Diğer teknik dokümantasyon varlık diyagramları, veri sözlüğü gibi bu evrede üretilir. Sistem testi için dokümanlar hazılanır.

Mimari tasarım

Bilgisayar mimarisinin ve yazılım mimarisinin tasarım evresi yüksek seviye tasarım olarak refere edilebilir. Seçilen mimaride temel tipik olarak içereceği modüllerin listesi, her bir modülün özet fonksiyonelliğini, arayüz ilişkisini, bağımlılıklarını, veritbaanı tablolarını, mimari diyagramlarını, teknoloji detaylarını sunmalıdır. Entegrasyon test etme tasarımı özel bir evre içinde gerçekleştirilir.

Modül tasarımı

Modül tasarımı düşük seviyeli tasarım olarak refere edilebilir. Tasarım sistemi daha küçük birimlere veya modüllere ayrılır ve her biri programcıya doğrudan kodlamaya başlayacak şekilde açıklanır. Düşük seviye tasarım dokümanı veya program talimatnameleri sahte kod içindeki modülün ayrıntılı bir fonksiyonel mantığını taşıyacaktır.

  • Veritabanı tabloları, tüm elemanları ile birlikte, tiplerini ve boyutlarını içerir.
  • Tüm arayüz ayrıntıları karmaşık API referanslarıyle bilrikte
  • Tüm bağımlılık konuları
  • Hata mesaj listesi
  • Eksiksiz girdi ve çıktılar

Birim test tasarımı bu evrede geliştirilir.

Geçerli kılma evreleri

V-Modeli içerisinde doğrulama evresinin her bir seviyesi geçerleme evresindeki her bir seviye ye karşılık gelmektedir. V-Model deki tipik geçerleme evreleri aşağıdaki gibidir, bazıları diğer isimleriyle de bilinir.

Birim test etme

V-model içinde, birim test planları(UTPs) modül tasarım evresi boyunca geliştirilir. Bu UTP’ler birim seviyesindeki veya kod seviyesindeki hataları ortadan kaldırmak için yürütülür. Bir birim bağımsız olarak var olabilen mesala program modülü en küçük varlıktır. Birim testi kodun/birimin geri kalanından izole edildiğinde düzgünce işleyebilen en küçük varlığı doğrular.

Entegrasyon test etme

Entegrasyon test planları mimari tasarım evresi boyunca geliştirilir. Bu testler birimler arasında haberleşebilen ve aynı zamanda birbirinden bağımsız şekilde test edilen ve oluşturulan birimleri doğrular. Test sonuçları müşteri takımlarıyla paylaşılır.

Sistem test etme

Sistem tes planları sistem tasarım evresi boyunca geliştirilir. Birim ve entegrasyon test planlarına benzemez, sistem test planları müşterinin iş takımı tarafından birleştirilir. Sistem testi uygulama geliştirimi beklentilerinin karşılandığından emin olur. Tüm uygualma işlevselliği, merkezi bağımsızlığı ve iletişimi için test edilir. Sistem testi fonksiyonel ve fonksiyonel olmayan gereksinimlerin karşılandığını doğrular. Yükleme ve performans test etme, stres test etme, regresyon test etme gibi alt kümeler sistem testi içindir.

Kullanıcı kabul test etme

Kullanıcı kabul testi(UAT:user acceptance test) planları gereksinim analiz evresi boyunca geliştirilir. Test planları iş kullanıcıları tarafından birleştirilir. UAT gerçekçi veriyi kullanarak üretim ortamını benzeterek bir kullanıcı ortamında çalışır. UAT kullanıcının gereksiniminin karşılandığını ve gerçek zamanda kullanım için sistemin hazır olduğunu ve sistemin dağıtıma uygun olduğunu doğrular.

Kaynakça

  1. ^ Clarus Concept of Operations. 5 Temmuz 2009 tarihinde Wayback Machine sitesinde arşivlendi. Publication No. FHWA-JPO-05-072, Federal Highway Administration (FHWA), 2005

Dış bağlantılar

https://eprints.dkit.ie/144/ 6 Mart 2021 tarihinde Wayback Machine sitesinde arşivlendi.

https://link.springer.com/chapter/10.1007/978-3-642-30439-2_13?LI=true 15 Ağustos 2020 tarihinde Wayback Machine sitesinde arşivlendi.

https://harmonicss.co.uk/project/the-death-of-the-v-model/ 21 Ocak 2022 tarihinde Wayback Machine sitesinde arşivlendi.

https://web.archive.org/web/20120508022817/http://www.pharmpro.com/Articles/2008/03/GAMP-Standards-For-Validation-Of-Automated-Systems/

https://tryqa.com/what-is-v-model-advantages-disadvantages-and-when-to-use-it/ 6 Nisan 2022 tarihinde Wayback Machine sitesinde arşivlendi.

İlgili Araştırma Makaleleri

Web grafik tasarımı, grafik tasarım alanı ile yakın ilişkili bir konu olmakla birlikte kendi içinde ayrı bir dal olarak da geniş bir alanı kapsayan bir kavramdır.

Nesne Yönelimli Çözümleme ve Tasarım, bir sistemin/sistem modülleri setinin/organizasyonun/işletme biriminin gereksinimlerinin çözümlenmesinde ve uygun bir çözümün tasarımında nesne ile modelleme tekniklerini kullanır. Modern nesne yönelimli çözümleme ve tasarım yöntemlerinin çoğu, gereksinim, tasarım, uygulama, test ve dağıtım süreçleri boyunca kullanım senaryoları üzerine kuruludur. Kullanım Senaryoları, nesne yönelimli programlama ile birlikte ortaya çıkmış olmasına rağmen yordamsal programlanan sistemlerde de işe yaramaktadır.

Gereksinim Yönetimi ; tanımlama, sağlama, belgeleme, analiz etme, takip etme, öncelik verme, gereksinimlere karar verme ve daha sonra değişimi kontrol etme ve ilgili taraflarla iletişim kurma işlemlerini kapsar. Bu proje boyunca süregelen bir süreçtir.

<span class="mw-page-title-main">Google ürünleri listesi</span> Vikimedya liste maddesi

Google ürünleri listesi Google tarafından satın alınan tüm ana masaüstü, mobil ve çevrimiçi ürünleri içerir. Bu ürünler son ürün ya da beta sürümler olabilir. Liste ayrıca kullanımdan kaldırılmış, birleştirilmiş ya da tekrar isimlendirilmiş ürünleri de içerir. Ürünlerin içinde olan özellikler ayrıca listelenmemiştir.

Güvenilirlik mühendisliği, güvenilirlik öğrenimi, gelişimi ve Ömür Devri Yönetimi ile ilgilenen bir mühendislik dalıdır. Güvenilirlik, bir sistem veya parçanın, belirlenen süre ve şartlar altında, istenen fonksiyonları gerçekleştirebilme yeteneği olarak tanımlanır. Kavram çoğu zaman, sistemin hata verme olasılığı şeklinde algılanır. Güvenilirlik, ayrıca belirli bir zaman aralığında işlevsellik yeteneğini tanımlama için de kullanılabilir. Güvenilirlik mühendisliği Sistem Mühendisliği alt-disiplini olarak kabul edilir ve Entegre Lojistik Destek disiplinine sürekli girdi teşkil eder. Güvenilirlik mühendisliği, hatalar arasındaki ortalama sürenin hesaplanması ile sistem güvenilirliğini ve sürekliliğini sağlar.

<span class="mw-page-title-main">Gömülü sistem</span> Belli bir fonksiyonu yapmaya yönelik bilgisayar sistemi

Gömülü sistem, bilgisayarın kendisini kontrol eden cihaz tarafından içerildiği özel amaçlı bir sistemdir. Genel maksatlı, örneğin kişisel bilgisayar gibi bir bilgisayardan farklı olarak, gömülü bir sistem kendisi için önceden özel olarak tanımlanmış görevleri yerine getirir. Sistem belirli bir amaca yönelik olduğu için tasarım mühendisleri ürünün boyutunu ve maliyetini azaltarak sistemi uygunlaştırabilirler. Gömülü sistemler genellikle büyük miktarlarda üretildiği için maliyetin düşürülmesinden elde edilecek kazanç, milyonlarca ürünün katları olarak elde edilebilir.

<span class="mw-page-title-main">Scrum</span>

Scrum, yazılım geliştirme ve yazılım Mühendisliği'nde bir uygulama geliştirme çerçevesidir. Proje yönetimi'nde karmaşık bir ortamda ürünleri geliştirmek, sunmak ve sürdürmek için Çevik yazılım geliştirme felsefesini benimseyen bir çerçevedir. "Hamleci yaklaşım" şeklinde bir çeviri önerilmiştir. Bu geliştirme çerçevesinin temel özelliği gözlemci, geliştirmeci ve tekrara dayalı olmasıdır. Birçok modern yazılım projesinin oldukça karmaşık olduğu ve en baştan tümünü planlamanın zor olacağı şeklindeki bir varsayımdan hareket eder. Bu karmaşıklığı üç ilke ile azaltmaya çalışır.

  1. Şeffaflık: Projedeki ilerlemeler ve sorunlar günlük olarak tutulur ve herkes tarafından izlenebilir olması sağlanır.
  2. Gözlem: Ürünün parçaları ya da fonksiyonları düzenli aralıklarla teslim edilir ve değerlendirilir.
  3. Uyumlanma: Ürün için gereksinimler en baştan bir defalığına belirlenmez, bilakis her teslimat tekrar değerlendirilir ve duruma göre uyarlamalar yapılır.
<span class="mw-page-title-main">Waterfall model</span>

Şelale yönteminde yazılım geliştirme süreci analiz, tasarım, kodlama, test, sürüm ve bakım gibi safhalardan oluşur. Geleneksel yazılım metotlarında bu safhalar şelale modelinde olduğu gibi doğrusal olarak işler. Her safha, başlangıç noktasında bir önceki safhanın ürettiklerini bulur. Kendi bünyesindeki değişikler doğrultusunda teslim aldıklarını bir sonraki safhanın kullanabileceği şekilde değiştirir.

<span class="mw-page-title-main">Yazılım yaşam döngüsü</span>

Yazılım yaşam döngüsü, bilgisayar yazılımlarının ilk geliştirme aşamalarından başlayarak; yayındaki mevcut sürümün hatalarının giderilmesi, iyileştirme odaklı yeni ara sürümlerin yayınlarak yazılımın güncellenmesi de dâhil olmak üzere nihai (kararlı) sürüme ulaşana dek geçen geliştirme ve olgunlaştırma aşamalarının tamamını ifade etmek için kullanılan terimdir.

Kullanılabilirlik kavramı incelenmesi gereken çok boyutlu bir kavramdır. Arayüz bu kavramlardan biridir; kullanılan sistemle olan etkileşim ve iletişimi sağlayan araç olması nedeniyle önemli bir ögesidir. Kullanılabilirlik, sistem ve kullanılanların arayüz aracılığı ile açık ve hızlı bir biçimde iletişim kurabilmektir. Geniş anlamıyla kullanılabilirlik; herhangi bir ürünün belirli bir kullanım çerçevesinde, belirli kullanıcılar için, belirli amaçları gerçekleştirmek üzere etkin, verimli ve tatmin edici bir şekilde kullanılmasıdır. Yani kullanılabilirlik kavramı etkililik, etkinlik, performans ve kullanıcı memnuniyeti gibi kavramları içermektedir. Etkinlik; kullanılan amaçlarını ve görevlerini doğru ve tam bir biçimde tamamlama düzeyleridir. Verimlilik; amaçları gerçekleştirirken gösterilen çabayı ve zamanı aynı zamanda da kullanılan kaynakları ifade eder. Memnuniyet ise kullanıcıların sistem kullanımı ile ilgili pozitif tutumları inceler ve kullanıcıların rahatlıklarını ölçer.

<span class="mw-page-title-main">Yazılım testi</span>

Yazılım testi, test altında hizmetlerin veya ürünlerin kalitesi hakkında paydaşlara bilgi sağlamak için yürütülen bir araştırmadır. Yazılım testi aynı zamanda, yazılım uygulamalarının risklerini anlamak için yazılımı bağımsız ve nesnel olarak incelemektir. Test teknikleri yazılım böceklerini bulma niyetiyle uygulama veya bir programı çalıştırma süreçlerini kapsar.

V-Model, sistem geliştirme sürecinde karmaşıklığı basitleştirmek amacıyla tasarlanmış bir kavramsal modelden, ayrıntılı ve özenli yaşam döngüsü modellerine ve proje yönetimi araçlarına kadar uzanan bir dizi modele uygulanan bir terimdir. İngiltere ve dünya genelindeki test topluluklarında, V-Model'in yazılım geliştirme sürecinde test edilebilmesi için ISTQB kuruluş müfredatı içinde tanımlanması, açıklayıcı ve değişken bir tanım olarak kabul edilir. V-Model'e ilişkin alternatif makalelerde bu modelin tek bir kabul edilmiş tanımının olmadığı görülür. Bu nedenle, farklı varyasyonlara sahip birçok versiyonu bulunmaktadır.

<span class="mw-page-title-main">Regresyon testi</span>

Regresyon testi uygulama ortamındaki yapılan tüm değişiklikleri; uygulamaya yeni eklenen özellikler, daha önceki yaşanan hataların düzeltilmesinden sonra, mevcut problemlerin giderildiği ve yeni yapılan güncellemelerin, eklenen özelliklerin yeni bir hata üretip üretmediğini kontrol amaçlı olarak yapılan yazılım test türüdür.

Yazılım test etmede, test otomasyonu önceden tahmin edilmiş sonuçlarla gerçek sonuçların karşılaştırılması ve testlerin koşulmasını kontrol etmek için(test edilmiş yazılımdan farklı olan) belirli yazılımın kullanılmasıdır. Test otomasyonu tekrar eden fakat çoktan test etme süreçlerinde yer almış gerekli testlerin otomatikleştirebilir veya manuel olarak koşulmasının zor olacağı testleri de içerebilir. Test otomasyonları sürekli paket dağıtımı veya sürekli test etme için kritik öneme sahiptir.

Kara kutu testi yazılımı testinde bir uygulamanın işlevselliğini iç yapısını veya işleyişini kontrol etmeden inceleyen bir yöntemdir. Bu test yöntemi hemen hemen her seviye yazılım testinde uygulanabilir. Sadece üst seviye testlerde değil, birim Testlerinde de sıklıkla kullanılır.

<span class="mw-page-title-main">İşlev modeli</span>

Sistem ve yazılım mühendisliğindeki işlev modeli modellenen sistem veya konu alanının işlevlerinin yapısal temsilidir.

Bir sistem mimarisi veya çoklu sistemlerin mimarisi; sistemin yapısını, davranışını ve biçimselliğini tanımlayan kavramsal modeldir. Bir mimari tanımı; sistemin yapıları ve davranışları hakkında mantıksallığı destekleyecek şekilde organize edilen ilişkiselliğin standart bir açıklaması veya temsilidir.

<span class="mw-page-title-main">Gereksinim çözümleme</span>

Bilgisayar bilimlerinde, gereksinim analizi ya da gereksinim çözümleme; çeşitli sistemlerin gerekliliklerini ve olası çelişkili durumlarını göz önüne alarak, yazılımı analiz etmek, belgelemek, doğrulamak ve yönetmek için yeni veya değiştirilmiş bir ürün üzerinde projenin ihtiyaçlarını, sistem gereksinimlerini ve koşullarını belirleyen görevleri kapsamaktadır.

Sistem analisti veya İş teknolojisi analisti, analist ve bilgi teknolojisi (BT) uzmanıdır. Sistemlerin küçük değişiklikler yoluyla etkin hale getirilmesi veya yeniden planlanmasını sağlamak amacıyla analiz edilmesiyle ilgilenen kişidir ". Bir sistem analisti tipik olarak atanmış veya verilen bir sistemle sınırlıdır ve genellikle bir iş analisti ile birlikte çalışır. "Sistem analist; insanların, metotların ve bilgisayar teknolojisinin işleri en iyi şekilde yerine getirebilmeleri için, organizasyonun problem ve gereksinimleri üzerinde çalışır".Bir sistem analistin, deneyimi ve bilgisi dışındaki en önemli aracı, öncelikle sistemin bir üyesi olan insandır. Ardından gözlem gücü ve dokümanlar gelir.

Yazılım, hümanistik (insani), bilimsel teoriler, yönetim ve organizasyon gibi çeşitli alanlarda kullanılan, yukarıdan aşağıya ve aşağıdan yukarıyanın her ikisi de bilgi işleme ve bilgi sıralama stratejisidir. Pratikte, bir düşünce, öğretim veya liderlik biçimi olarak görülebilirler.