İçeriğe atla

V-Model

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.

V-Model'in esas olarak birçok farklı biçimi vardır ve bu farklılıklar önemli ölçüde karışıklık yaratabilir. V-Model, genel olarak üç geniş kategori altında incelenir.

İlki Alman V-Model'dir (Das V-Modell), bu metodoloji genellikle PRINCE2 ile daha yakından ilişkilendirilir.

İkinci olarak, Amerika'da Alman rakipleri gibi 20 yıl geride kalan hükûmet standart V-Modeline sahiptir. Ancak, bu modelin kapsamı bir sistemin gelişim yaşam döngüsü modeli olmada oldukça sınırlıdır. İngiltere gibi V-Modeli iyi anlamış test edicilere göre, daha ayrıntılı ve kesin bir yapıya sahiptir.

V-Model konuları

Systems engineering and verification.[1]

Sistem mühendisliği ve doğrulama

Sistem mühendisliği süreci (SEP: system engineering process), sistem sahibi tarafından sistemin tüm yaşamı boyunca deneyimlediği karmaşık süreçlerin maliyet verimliliğini geliştirmek için bir yol sağlar.

Hedefleri, kullanıcı ihtiyaçlarını ve işlem ortamını test edilebilir sistem gereksinimleriyle ayrıntılı tasarım, geliştirme, durum gereksinimlerinin karşılandığına emin olmak için gerçekleştirimi yapılmış sistemin titiz kabul testi (sistem doğrulama) atanmış hedeflerindeki etkinliğini ölçme (sistem geçerliliği), devam eden işlemler ve bakım onarım, sistem güncelleme tarihi ve nihayet sonlanma ile beraber kullanıcı ihtiyaçlarını tanımlayan işlemler kavramını, hedeflerin genişçe ve erken evrelerinde tanımını içerir. Süreç gereksinim-sürdürülebilir tasarım ve test etmeyi vurgular. Tüm tasarım elemanları ve kabul testleri en azından bir tasarım elemanı ve kabul testi tarafından atanmış olan her bir gereksinimi ve bir veya daha çok sistem gereksinimini takip edebiliyor olmalıdır. Bu gibi kesinlikler gereksiz yere hiçbir şeyin yapılmadığını ve her şeyin gereklilikle tamamlandığından emin olur.

2 streams (2 akış)

Talimatname akışı

Uygulama akışı temel de şunları içerir:

  • Kullanıcı gereksinim talimatnamesi
  • Fonksiyonel gereksinim talimatnamesi
  • Tasarım talimatnamesi

Test etme akışı

Test etme akışı genellikle şunları içerir.

  • Kurulum niteliği (IQ)
  • İşlemsel nitelik (OQ)
  • Performans niteliği (PQ)

Geliştirme akışı sistem tipine ve geliştirme kavramına bağımlı olarak özelleştirme, konfigürasyon ve kodlama içerebilir.

Avantajları

Diğer sistem geliştirim modellerine karşın V-modelin bu avantajları vardır.

V-Modelin kullanıcıları V-Modelin geliştirimine ve V-Modelin bakımına katılır. Bir değişim kontrol tablosu açık olarak V-Modelin sürekliliğini sağlar. Sistem geliştirimi ve testi boyunca alınmış tüm değişik sorguları ve haftalık, günlük her değişime değişim kontrol tablosu karşılık gelir. V-modeli iş adımlarında ve aktivitenin nasıl gerçekleştirileceği konusunda kesin bir destek sağlar, olayların bir iş adımını tamamlamak için ihtiyaçlarını açıkça tanımlar. Bu iş adımı her bir aktivite şeması talimatlar, tavsiyeler ve aktivitenin ayrıntılı açıklamalarını içerir.

Sınırları

Aşağıdaki bakış açıları V-model tarafından içerilmemiştir, ek olarak düzenlenmesi gerekmektedir veya V-Model bunlara göre uyum sağlamalıdır.

  • Hizmetler için kontratların yeri
  • Organizasyon ve operasyonun yürütülmesi, bakım onarımı, tamir ve sistemin sonlanması V-model tarafından kapsanmamıştır. Bununla birlikte planlama ve bu görevler için kavramların hazırlanması V-model de düzenlenmiştir.
  • V-model tüm bir organizasyondan çok bir proje içinde yazılım geliştirmeye hitap eder.

Kaynakça

  1. ^ Systems Engineering Fundamentals. Defense Acquisition University Press, 2001.

İngilizce Wikipedia 24 Mayıs 2015 tarihinde Wayback Machine sitesinde arşivlendi.

Dış bağlantılar

İlgili Araştırma Makaleleri

Yazılım mühendisliği, yazılım geliştirme ile ilgilenen mühendislik dalıdır. Yazılım mühendisliği tanımı ilk olarak 1968 yılında Friedrich L. Bauer tarafından Almanya'da gerçekleştirilen NATO toplantısında gündeme gelmiştir. Ayrıca, matematikçi ve bilgisayar bilimcisi Margaret Hamilton "yazılım mühendisliği" terimini ortaya atan kişilerden biri olarak kabul edilmektedir. Yazılım mühendisliği tanım olarak "karmaşık yazılım sistemlerinin belirli bir hedefe ve sisteme dayalı olarak ve iş bölümü yapılarak, belirli prensipler, yöntemler ve araçlar kullanılarak geliştirilmesidir."

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.

Proje yönetimi, belirli bir projenin hedef ve amaçlarına ulaşıp bitirilmesi için kaynakların planlanması, organize edilmesi, tedarik edilmesi ve yönetilmesi disiplinidir.

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">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.

Test planı hedefleri, hedef pazarı, beta testi takımını ve yazılım ve donanımın test akışlarını tanımlayan doküman ya da dokümanlar bütünüdür. Test planı, genelde, ürünün çalışma akışının detaylarını içerir.

<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.

<span class="mw-page-title-main">V-Model (Yazılım geliştirme)</span>

V-model ş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.

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.

<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.

Kavramsal model bir sistemin temsilidir ve modelin temsil ettiği sistemin insanların daha rahat bir şekilde anlamalarına yardımcı olur. Örneğin, montajı yapılarak oluşturulan bir oyuncak model temsil ettiği objenin çalışmasını modelini oluşturacak bir şekilde çalışabilir.

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.

İş analisti, bir organizasyonu veya işletme alanını analiz eden bir analist mesleğidir. İş modelini veya teknolojiyle entegrasyonunu değerlendirerek işini, süreçlerini veya sistemlerini belgeler. İş analisti, veri analizi yoluyla süreçleri, ürünleri, hizmetleri ve yazılımları iyileştirmede işletmelere rehberlik etmeye yardımcı olur. Analistler finans, bankacılık, sigorta, telekom, kamu hizmetleri, yazılım hizmetleri, hükûmet vb. gibi farklı sektörlerde çalışır. BA'ların çalışabileceği iş alanları arasında iş akışı, faturalandırma, arabuluculuk, sağlama, raporlama ve müşteri ilişkileri yönetimi yer alır. Son olarak, iş analistleri, operasyon ölçeklendirme, satış planlama, strateji geliştirme, geliştirme sürecinde yer alabilecekleri veya bir atik yazılım geliştirme ürün ekibinin parçası olabilir.

<span class="mw-page-title-main">Süreç mühendisliği</span> ham veya başlangıç maddesinin kimyasal-fiziksel ya da biyolojik işlemler kullanılarak başka bir ürüne dönüştürüldüğü tüm teknik işlemler

Süreç mühendisliği, insanların hammaddeleri ve enerjiyi endüstriyel düzeyde toplum için yararlı ürünlere dönüştürmesini sağlayan temel ilkelerin ve doğa kanunlarının anlaşılması ve uygulanmasıdır. Süreç mühendisleri, basınç, sıcaklık ve derişim gradyanları gibi doğadaki itici güçlerden ve kütlenin korunumu yasasından yararlanarak, istenilen kimyasal ürünleri büyük miktarlarda sentezlemek ve saflaştırmak için yöntemler geliştirebilirler. Süreç mühendisliği, kimyasal, fiziksel ve biyolojik süreçlerin tasarımı, işletimi, kontrolü, optimizasyonu ve yoğunlaştırılmasına odaklanır. Süreç mühendisliği, tarım, otomotiv, biyoteknik, kimya, gıda, malzeme geliştirme, madencilik, nükleer, petrokimya, ilaç ve yazılım geliştirme gibi çok çeşitli endüstrileri kapsamaktadır. Sistematik bilgisayar tabanlı yöntemlerin süreç mühendisliğine uygulanmasına "süreç sistemleri mühendisliği" adı verilir.