Yazılım yaşam döngüsü: kavram, standartlar, süreçler. Programın yaşam döngüsü

Yazılımın yaşam döngüsünü ele alalım, yani. başından sonuna kadar yaratılma ve uygulanma süreci. Yaşam döngüsü, bu yazılımın ortaya çıktığının fark edildiği an ile başlar ve tamamen eskidiği an ile sona erer. Bu süreç birkaç aşamadan oluşur: gereksinimlerin ve spesifikasyonların tanımlanması, tasarım, programlama ve bakım.

Gereksinimlerin ve spesifikasyonların tanımlandığı ilk aşamaya sistem analizi aşaması denilebilir. Genel yazılım gereksinimlerini belirler: güvenilirlik, üretilebilirlik, doğruluk, çok yönlülük, verimlilik, bilgi tutarlılığı vb.

Bunlar, uzay-zaman kısıtlamaları, gerekli işlevler ve yetenekler, çalışma modları, doğruluk ve güvenilirlik gereksinimleri vb. dahil olmak üzere müşteri gereksinimleriyle desteklenir; yani sistemin bir açıklaması kullanıcının bakış açısından geliştirilir.

belirlerken özellikler(yazılımın karşılaması gereken bir dizi gereksinim ve parametre) yazılım işlevlerinin kesin bir açıklaması yapılır, giriş ve ara diller geliştirilir ve onaylanır, alt sistemlerin her biri için çıktı bilgilerinin biçimi, diğer yazılımlarla olası etkileşim sistemler tanımlanır, yazılımı genişletme ve değiştirme yolları belirlenir, hizmet veren arayüzler ve ana alt sistemler geliştirilir, veritabanı sorunları çözülür ve temel algoritmalar onaylanır.

Bu aşamanın sonucu, yazılımın spesifik bir tanımını içeren operasyonel ve fonksiyonel spesifikasyonlardır. Spesifikasyonların geliştirilmesi, müşterilerle sürekli iletişim halinde olan ve çoğu durumda net ve gerçekçi gereksinimleri formüle edemeyen sistem analistlerinin dikkatli çalışmasını gerektirir.

Operasyonel özellikler yazılım hızı, bellek tüketimi, gerekli donanım, güvenilirlik vb. hakkında bilgiler içerir.

İşlevsel özellikler, yazılımın gerçekleştirmesi gereken işlevleri tanımlar; nasıl yapılacağını değil, sistemin ne yapması gerektiğini tanımlarlar.

Şartnameler eksiksiz, doğru ve açık olmalıdır. Tamlık, yazılım geliştiricilerin çalışmaları sırasında müşterilerden spesifikasyonlarda yer alan bilgiler dışında bilgi alma ihtiyacını ortadan kaldırır. Kesinlik farklı yorumlara izin vermez. Açıklık, açık bir şekilde yorumlandığında hem müşteri hem de geliştirici tarafından anlaşılmasının kolaylığını ifade eder.

Teknik özellikler değeri:

1. Belirtimler yazılım geliştirmenin bir görevidir ve bunların uygulanması geliştiricinin kanunudur.

2. Spesifikasyonlar, yazılımın hazır olup olmadığını kontrol etmek için kullanılır.

3. Spesifikasyonlar, yazılım dokümantasyonunun ayrılmaz bir parçasıdır ve yazılımın bakımını ve değiştirilmesini kolaylaştırır,


İkinci aşama yazılım tasarımıdır. Bu aşamada:

1. Yazılım yapısı oluşturulur ve spesifikasyonlara göre belirlenen algoritmalar geliştirilir.

2. Modüllerin bileşimi, algoritma diyagramlarının incelenmesine dayanarak onları hiyerarşik seviyelere bölerek oluşturulmuştur.

3. Bilgi dizilerinin yapısı seçilir.

4. Modüller arası arayüzler sabittir.

Bu aşamanın amacı, karmaşık yazılım oluşturma görevlerinin daha az karmaşıklığa sahip alt görevlere hiyerarşik olarak bölünmesidir. Bu aşamadaki çalışmanın sonucu, daha fazla ayrıştırılması pratik olmayan bireysel modüller için spesifikasyonlardır.

Üçüncü sahne - programlama. Bu aşamada modüller programlanır. Önceki aşamada elde edilen tasarım çözümleri programlar halinde uygulanır. Ayrı bloklar geliştirilir ve oluşturulan sisteme bağlanır. Görevlerden biri programlama dillerinin bilinçli seçimidir. Aynı aşamada bilgisayar türünün özelliklerine ilişkin tüm sorunlar çözüme kavuşturulur.

Dördüncü aşama - yazılım hata ayıklaması sistemin tüm gereksinimlerinin, tüm yapısal öğelerinin, sağduyunun ve bütçenin izin verdiği ölçüde farklı veri kombinasyonları üzerinde kontrol edilmesinden oluşur. Bu aşama, programlardaki hataların tanımlanmasını, yazılımın işlevselliğinin kontrol edilmesini ve spesifikasyonlara uygunluğunu içerir.

Beşinci aşama - eşlik, onlar. hataların düzeltilmesi, sistemin tüm elemanlarının kullanıcı gereksinimleri doğrultusunda koordine edilmesi, gerekli tüm düzeltme ve değişikliklerin yapılması sürecidir.

Yazılım geliştirmeye başlamadan önce pazarlama yapılmalıdır.

Pazarlama oluşturulan yazılım ürününün (teknik, yazılım, kullanıcı) gereksinimlerini incelemek için tasarlanmıştır. Mevcut analoglar ve rakip ürünler de incelenmektedir. Geliştirme için gereken malzeme, iş gücü ve mali kaynaklar değerlendirilir ve yaklaşık geliştirme zaman dilimleri belirlenir. Yazılım geliştirmenin aşamaları GOST 19.102-77 tarafından açıklanmaktadır. Buna uygun olarak her aşamanın adını ve kısa bir açıklamasını veriyoruz (bkz. Tablo 1). Bu standart, amaçları ve uygulama kapsamlarına bakılmaksızın bilgisayarlar, kompleksler ve sistemler için programların ve program dokümantasyonunu geliştirme aşamalarını belirler.

tablo 1

Yazılım oluşturma çalışmalarının geliştirme aşamaları, aşamaları ve içeriği

Yazılım yaşam döngüsü

Yazılım tasarım metodolojisinin temel kavramlarından biri yazılım yaşam döngüsü (SO) kavramıdır. Yazılımın yaşam döngüsü, yaratılmasının gerekliliğine karar verildiği andan itibaren başlayan ve hizmetten tamamen çekildiği anda sona eren sürekli bir süreçtir.

Yazılımın yaşam döngüsünü düzenleyen ana düzenleyici belge, uluslararası standart ISO/IEC 12207'dir (ISO - Uluslararası Standardizasyon Örgütü, IEC - Uluslararası Elektroteknik Komisyonu). Yazılım oluşturma sırasında gerçekleştirilmesi gereken süreçleri, etkinlikleri ve görevleri içeren yaşam döngüsü yapısını tanımlar. Bu standartta Yazılım (yazılım ürünü) bir dizi bilgisayar programı, prosedürü ve muhtemelen ilgili dokümantasyon ve veriler olarak tanımlanır. İşlem bazı girdi verilerini çıktı verilerine dönüştüren birbiriyle ilişkili eylemler dizisi olarak tanımlanır. Her süreç, belirli görevler ve bunları çözmek için yöntemler, diğer süreçlerden elde edilen girdi verileri ve sonuçlarla karakterize edilir.

ISO/IEC 12207 standardına göre yazılım yaşam döngüsünün yapısı üç süreç grubuna dayanmaktadır:

· yazılım yaşam döngüsünün ana süreçleri (satın alma, teslimat, geliştirme, işletme, destek);

· Ana süreçlerin (dokümantasyon, konfigürasyon yönetimi, kalite güvencesi, doğrulama, belgelendirme, değerlendirme, denetim, problem çözme) uygulanmasını sağlayan yardımcı süreçler;

· organizasyonel süreçler (proje yönetimi, proje altyapısının oluşturulması, yaşam döngüsünün tanımlanması, değerlendirilmesi ve iyileştirilmesi, eğitim).

Yazılım yaşam döngüsü modelleri

Yaşam döngüsü modeli- Yaşam döngüsü boyunca gerçekleştirilen aşamaların ve aşamaların ilişkisini ve yürütme sırasını belirleyen bir yapı. Yaşam döngüsü modeli, yazılımın özelliklerine ve yazılımın oluşturulduğu ve çalıştığı belirli koşullara bağlıdır. Ana yaşam döngüsü modelleri aşağıdaki gibidir.

1. Kademeli model(XX yüzyılın 70'lerine kadar) bir önceki aşamanın tamamlanmasından sonra bir sonraki aşamaya sıralı geçişi belirler.

Bu model, bilgi entegrasyonu ve uyumluluğu, yazılım, teknik ve organizasyonel arayüz gerektirmeyen, ilgisiz bireysel görevlerin otomasyonu ile karakterize edilir.

İtibar: bireysel sorunları çözerken geliştirme süresi ve güvenilirlik açısından iyi göstergeler.

Kusur: Uzun tasarım süresi boyunca sistem gereksinimlerindeki değişkenlik nedeniyle büyük ve karmaşık projelere uygulanamaz.

2. Yinelemeli model(XX yüzyılın 70-80'leri) “aşağıdan yukarıya” tasarım teknolojisine karşılık gelir. Bir sonraki aşamayı tamamladıktan sonra önceki aşamalara yinelemeli dönüşlere izin verir;


Model, bireysel problemler için elde edilen tasarım çözümlerinin sistem çapındaki çözümlere genelleştirilmesini sağlar. Bu durumda daha önce formüle edilen gereksinimlerin revize edilmesi ihtiyacı ortaya çıkmaktadır.

İtibar: projede hızlı bir şekilde ayarlamalar yapma yeteneği.

Kusur:çok sayıda yineleme ile tasarım süresi artar, tasarım çözümleri ve dokümantasyonda farklılıklar ortaya çıkar ve oluşturulan yazılımın işlevsel ve sistem mimarisi karışır. Eski bir sistemi yeniden tasarlama veya yeni bir sistem oluşturma ihtiyacı, uygulama veya işletme aşamasından hemen sonra ortaya çıkabilir.

3. Sarmal model(XX yüzyılın 80-90'ları) “yukarıdan aşağıya” tasarım teknolojisine karşılık gelir. Yazılım uzantısına izin veren bir yazılım prototipinin kullanımını içerir. Sistem tasarımı, gereksinimlerin detaylandırılmasından program kodunun detaylandırılmasına kadar olan yolu döngüsel olarak tekrarlar.

Bir sistem mimarisi tasarlarken, öncelikle işlevsel alt sistemlerin bileşimi belirlenir ve sistem genelindeki sorunlar çözülür (entegre bir veritabanının organizasyonu, bilgi toplama, iletme ve depolama teknolojisi). Daha sonra bireysel problemler formüle edilir ve bunları çözmek için teknoloji geliştirilir.

Programlama sırasında önce ana yazılım modülleri, ardından bireysel işlevleri yerine getiren modüller geliştirilir. Öncelikle modüllerin birbirleriyle ve veri tabanı ile etkileşimi sağlanır, ardından algoritmaların uygulanması sağlanır.

Avantajları:

1. Yineleme sayısını ve dolayısıyla düzeltilmesi gereken hata ve tutarsızlıkların sayısını azaltmak;

2. tasarım süresinin kısaltılması;

3. proje belgelerinin oluşturulmasının basitleştirilmesi.

Kusur: sistem çapındaki havuzun (ortak tasarım veritabanı) kalitesine yönelik yüksek gereksinimler.

Spiral model temeldir hızlı uygulama geliştirme teknolojileri veya gelecekteki sistemin son kullanıcılarının yaratılma sürecine aktif katılımını içeren RAD teknolojisi (hızlı uygulama geliştirme). Bilgi mühendisliğinin ana aşamaları şunlardır:

· Bilgi stratejisinin analizi ve planlanması. Kullanıcılar, uzman geliştiricilerle birlikte sorunlu alanın belirlenmesine katılır.

· Tasarım. Kullanıcılar, geliştiricilerin rehberliğinde teknik tasarıma katılırlar.

· Yapı. Geliştiriciler, yazılımın çalışan bir versiyonunu 4. nesil dilleri kullanarak tasarlar;

· Uygulama. Geliştiriciler, kullanıcıları yeni yazılım ortamında çalışacak şekilde eğitir.

Yazılım yaşam döngüsü standartları

  • GOST34.601-90
  • ISO/IEC 12207:1995 (Rusça eşdeğeri - GOST R ISO/IEC 12207-99)

Standart GOST 34 .601-90

Yinelemeli model

Sıralı modele bir alternatif, yinelemeli ve artımlı geliştirme modeli olarak adlandırılan modeldir. yinelemeli ve artımlı geliştirme, IID ), 70'lerde T. Gilb'den de alındı. İsim evrimsel model. Bu modele aynı zamanda denir yinelemeli model Ve artımlı model .

IID modeli, proje yaşam döngüsünü, bir bütün olarak projeyle karşılaştırıldığında daha küçük işlevsellik parçalarının oluşturulmasına uygulanan tüm geliştirme süreçlerini içeren, her biri bir "mini projeye" benzeyen bir yineleme dizisine bölmeyi içerir. Her birinin amacı yinelemeler- tüm önceki ve mevcut yinelemelerin entegre içeriğiyle tanımlanan işlevsellik de dahil olmak üzere, yazılım sisteminin çalışan bir sürümünün elde edilmesi. Son yinelemenin sonucu, ürünün gerekli tüm işlevlerini içerir. Böylece, her yinelemenin tamamlanmasıyla ürün bir artış alır - artış- sonuç olarak gelişen yeteneklerine evrimsel olarak. Bu durumda yineleme, artımlılık ve evrim, aynı anlamın farklı kelimelerle, biraz farklı bakış açılarından ifadesidir.

T. Gilb'in belirttiği gibi, “Evrim, istikrarlı bir görünüm yaratmak için tasarlanmış bir tekniktir. Karmaşık bir sistemi başarılı bir şekilde oluşturma şansı, bir dizi küçük adımla uygulandığında ve her adımın açıkça tanımlanmış bir başarıyı içermesinin yanı sıra başarısızlık durumunda önceki başarılı aşamaya "geri dönme" olasılığı varsa en yüksek olacaktır. . Geliştirici, bir sistemi oluşturmaya yönelik tüm kaynakları hayata geçirmeden önce gerçek dünyadan geri bildirim sinyalleri alma ve projedeki olası hataları düzeltme fırsatına sahip oluyor."

IID yaklaşımının, aslında avantajların tersi olan olumsuz yanları da vardır. İlk olarak, projenin yetenekleri ve sınırlamalarına ilişkin bütünsel bir anlayış çok uzun zamandır eksikti. İkinci olarak, yineleme yaparken daha önce yapılan işlerin bir kısmını atmanız gerekir. Üçüncüsü, uzmanların iş yaparken vicdanlılığı hala azalıyor ki bu psikolojik olarak açıklanabilir, çünkü sürekli olarak "her şey daha sonra yeniden yapılabilir ve geliştirilebilir" hissinin hakimiyetindedirler.

Yinelemeli yaklaşımın çeşitli çeşitleri çoğu modern geliştirme metodolojisinde (RUP, MSF,) uygulanmaktadır.

Spiral modeli

Her yineleme, projenin hedeflerinin ve özelliklerinin açıklandığı, elde edilen sonuçların kalitesinin değerlendirildiği ve bir sonraki yinelemenin çalışmasının planlandığı yazılımın bir parçasının veya versiyonunun oluşturulmasına karşılık gelir.

Her yinelemede aşağıdakiler değerlendirilir:

  • proje son tarihlerini ve maliyetlerini aşma riski;
  • başka bir yineleme gerçekleştirme ihtiyacı;
  • sistem gereksinimlerinin anlaşılmasının tamlık ve doğruluk derecesi;
  • projeyi sonlandırmanın fizibilitesi.

Spiral modelin evrimsel modele (IID modeli) bir alternatif değil, özel olarak geliştirilmiş bir versiyon olduğunun anlaşılması önemlidir. Ne yazık ki, sarmal model sıklıkla ya yanlışlıkla genel olarak evrimsel modelle eşanlamlı olarak kullanılıyor ya da (daha az hatalı olmamak üzere) IID ile birlikte tamamen bağımsız bir model olarak anılıyor.

Spiral modelin ayırt edici özelliği, yaşam döngüsünün ve kontrol noktalarının organizasyonunu etkileyen risklere verilen özel önemdir. Boehm en yaygın (önceliğe göre) 10 riski formüle ediyor:

  1. Uzman eksikliği.
  2. Gerçekçi olmayan son tarihler ve bütçe.
  3. Uygunsuz işlevselliğin uygulanması.
  4. Yanlış kullanıcı arayüzü tasarlamak.
  5. Mükemmeliyetçilik, gereksiz optimizasyon ve ayrıntılara odaklanma.
  6. Sürekli bir değişim akışı.
  7. Sistem ortamını tanımlayan veya entegrasyona dahil olan dış bileşenler hakkında bilgi eksikliği.
  8. Dış (projeyle ilgili olarak) kaynaklar tarafından gerçekleştirilen çalışmalarda dezavantajlar.
  9. Ortaya çıkan sistemin yetersiz performansı.
  10. Farklı alanlardaki uzmanların niteliklerindeki boşluk.

Günümüzün spiral modeli aşağıdaki genel kontrol noktalarını tanımlar:

  1. Operasyon Kavramı (COO) - sistemin konsepti (kullanımı);
  2. Yaşam Döngüsü Hedefleri (LCO) - yaşam döngüsünün hedefleri ve içeriği;
  3. Yaşam Döngüsü Mimarisi (LCA) - yaşam döngüsü mimarisi; burada hedef yazılım sisteminin kavramsal mimarisinin hazır olduğundan bahsetmek mümkün;
  4. İlk Operasyonel Yetenek (IOC) - oluşturulan ürünün deneme işlemine uygun ilk versiyonu;
  5. Nihai Operasyonel Yetenek (FOC), gerçek operasyon için konuşlandırılan (kurulan ve yapılandırılan) bitmiş bir üründür.

Yazılım geliştirme metodolojileri

  • Microsoft Çözüm Çerçevesi (MSF). 4 aşamayı içerir: analiz, tasarım, geliştirme, stabilizasyon ve nesne yönelimli modellemenin kullanımını içerir.
  • Ekstrem Programlama Ekstrem Programlama, XP). Metodoloji, tüm fikri mülkiyet geliştirme projesi boyunca müşteri ile yüklenici arasındaki ekip çalışmasına ve etkili iletişime dayanmaktadır. Geliştirme, art arda iyileştirilen prototipler kullanılarak gerçekleştirilir.
  • ESPD, programların ve program belgelerinin geliştirilmesi, yürütülmesi ve dolaşımı için birbiriyle ilişkili kurallar belirleyen, Rusya Federasyonu'nun bir dizi devlet standardıdır.

Edebiyat

  • Bratishchenko V.V. Bilgi sistemleri tasarımı. - Irkutsk: BGUEP yayınevi, 2004. - 84 s.
  • Vendrov A.M. Ekonomik bilgi sistemleri için yazılım tasarımı. - M .: Finans ve İstatistik, 2000.
  • Grekul V.I., Denishchenko G.N., Korovkina N.L. Bilgi sistemleri tasarımı. - M .: İnternet Bilgi Teknolojileri Üniversitesi - INTUIT.ru, 2005.
  • Mishenin A.I. Ekonomik bilgi sistemleri teorisi. - M .: Finans ve İstatistik, 2000. - 240 s.

Notlar


Wikimedia Vakfı. 2010.

Diğer sözlüklerde "Yazılım yaşam döngüsü"nün ne olduğuna bakın:

    Genellikle aşağıdaki aşamaların ayırt edildiği yazılımın geliştirilme ve işletilme dönemi: 1 bir fikrin ortaya çıkışı ve araştırılması; 2 gereksinim analizi ve tasarımı; 3 programlama; 4 test etme ve hata ayıklama; 5 programın yürürlüğe konulması; 6… … Finansal Sözlük

    yazılım yaşam döngüsü - … Teknik Çevirmen Kılavuzu

    yazılım yaşam döngüsü- 3.7 yazılım yaşam döngüsü; Yazılım yaşam döngüsü: Bir binanın güvenliğiyle ilgili programlanabilir yazılımın oluşturulması ve kullanılması için birbirini izleyen süreçler dizisi veya... ...

    yazılım yaşam döngüsü- Yazılımın genel konseptinin geliştirilmesiyle başlayan ve belirli bir süre boyunca meydana gelen, yazılım oluşturma ve kullanmanın ardışık süreçlerinin bir dizisi. ... ... Binaların ve yapıların güvenliğinin ve teröre karşı korunmasının kapsamlı sağlanması

    Yazılım yaşam döngüsü- Yazılım yaşam döngüsü: yazılım gereksinimlerinin geliştirilmesi, yazılım geliştirme, kodlama, test etme, entegrasyon, kurulum ve... ... aşamalarını içeren bir süre. Resmi terminoloji

    yaşam döngüsü- 4.16 yaşam döngüsü: Bir sistemin, ürünün, hizmetin, projenin veya diğer insan yapımı nesnenin konsept aşamasından kullanım sonuna kadar geliştirilmesi. Kaynak … Normatif ve teknik dokümantasyon açısından sözlük referans kitabı

    Bu onun inşa ve gelişme sürecidir. Bir bilgi sisteminin yaşam döngüsü, bir bilgi sistemi oluşturma ihtiyacına karar verildiği andan itibaren başlayan ve tamamen kaldırıldığı anda sona eren bir süredir ... ... Vikipedi

    Bir bilgi sisteminin yaşam döngüsü, onun inşası ve geliştirilmesi sürecidir. Bir bilgi sisteminin yaşam döngüsü, bir bilgi sistemi oluşturma ihtiyacına karar verildiği andan itibaren başlayan ve... ... Vikipedi, O. V. Kazarin. Kitap, yazılımı çeşitli kötü niyetli eylemlerden koruma sorununun teorik ve uygulamalı yönlerini inceliyor. Modellere ve yaratma yöntemlerine özellikle dikkat edilir...


Programın yaşam döngüsü.

Yazılım yaşam döngüsü, bir yazılım ürünü oluşturma ihtiyacına karar verildiği andan itibaren başlayan ve tamamen hizmetten kaldırıldığı zaman sona eren bir süredir. Bu döngü yazılım oluşturma ve geliştirme sürecidir.

Yaşam döngüsü aşamaları:

2. Tasarım

3. Uygulama

4. Montaj, test etme, test etme

5. Uygulama (yayınlanma)

6. Eskort

Yazılım üretiminin 2 durumu vardır: 1) Yazılım belirli bir müşteri için yapılır. Bu durumda uygulanan görevi programlama görevine dönüştürmeniz gerekir. Otomatikleştirilmesi gereken ortamın nasıl çalıştığını (iş süreci analizi) anlamalısınız. Sonuç olarak, hangi belirli görevlerin gerçekleştirilmesi gerektiğini gösteren, gereksinimin bir belgelendirme özelliği görünür. çözülmüş ve hangi koşullar altında. Bu çalışma bir sistem analisti (iş süreci analisti) tarafından gerçekleştirilir.

2) Piyasaya yönelik yazılım geliştirilir. Pazarlama araştırması yapıp piyasada hangi ürünün olmadığını bulmanız gerekiyor. Bu çok fazla riski beraberinde getiriyor. Amaç bir gereksinim spesifikasyonu geliştirmektir.

Tasarım

Amaç yazılımın genel yapısını (mimarisini) belirlemektir. Sonuç bir yazılım spesifikasyonudur. Bu çalışma bir sistem programcısı tarafından gerçekleştirilir.

Uygulama

Program kodu yazma. Uygulama geliştirme, test etme ve belgelemeyi içerir.

Montaj, test, test

Farklı programcılar tarafından yapılan her şeyin bir derlemesi. Tüm yazılım paketinin test edilmesi. Hata ayıklama – hataların nedenlerini bulma ve ortadan kaldırma. Test – teknik özelliklerin açıklığa kavuşturulması. Sonuç olarak programın çalışması garanti edilir.

Uygulama (yayın)

Uygulama – bir müşteri için çalıştıklarında. Müşterinin sahasında bir program oluşturulmasını, müşterinin eğitilmesini, istişarede bulunulmasını, hataların ve bariz eksikliklerin giderilmesini içerir. Yazılım yabancılaştırılmalıdır - kullanıcı, yazarın katılımı olmadan yazılımla çalışabilir.

Sürüm – yazılım pazar için geliştirildiğinde. Beta test aşamasıyla başlar. Solunum sürüm - beta sürümü. Alfa testi, programların geliştirilmesinde yer almayan aynı kuruluştan kişiler tarafından yapılan testtir. Beta testi, yazılımın birkaç kopyasının üretilip potansiyel müşterilere gönderilmesidir. Amaç yazılım gelişimini tekrar kontrol etmektir.

Temel olarak yeni bir yazılım piyasaya sürülürse, birçok beta testi mümkündür. Beta testinden sonra - ticari sürümün yayınlanması.

Eskort

Operasyon sırasında fark edilen hataların giderilmesi. Gerekli olmayan iyileştirmeler yapmak. Bir sonraki sürümün geliştirilmesi için tekliflerin birikmesi.

Yaşam döngüsü modelleri

1. Şelale (“şelale”, kademeli model)

2. Prototipleme

Birincisi, geliştirilen yazılım ürününün kendisi değil, geliştiricilerin karşılaştığı ana sorunlara çözüm içeren prototipidir. Prototip geliştirmenin başarıyla tamamlanmasının ardından aynı prensipler kullanılarak gerçek yazılım ürünü geliştirilir. Prototip, geliştirilmekte olan programın gereksinimlerini daha iyi anlamanızı sağlar. Bir prototip kullanarak müşteri, gereksinimlerini daha doğru bir şekilde formüle edebilir. Geliştirici, bir prototip kullanarak, çalışmasının ön sonuçlarını müşteriye sunma fırsatına sahiptir.

3. Yinelemeli model

Görev, alt görevlere bölünür ve bunların uygulanma sırası, sonraki her alt görevin yazılımın yeteneklerini genişleteceği şekilde belirlenir. Başarı, büyük ölçüde görevlerin alt görevlere ne kadar iyi bölündüğüne ve sıralamanın nasıl seçildiğine bağlıdır. Avantajları: 1) Müşterinin geliştirmeye aktif katılım olasılığı, geliştirme sırasında gereksinimlerini netleştirme fırsatına sahiptir; 2) yeni geliştirilen parçaları önceden geliştirilenlerle birlikte test etme yeteneği, bu karmaşık hata ayıklama maliyetini azaltacaktır; 3) geliştirme sırasında uygulamaya parçalar halinde başlayabilirsiniz.

Tanımlayarak başlamalıyızYazılım yaşam döngüsü(Yazılım Yaşam Döngüsü Modeli), bir yazılım ürününün oluşturulmasına karar verildiği andan itibaren başlayan ve tamamen hizmetten kaldırıldığı anda sona eren süredir. Bu döngü yazılım oluşturma ve geliştirme sürecidir.

Yazılım Yaşam Döngüsü Modelleri

Yaşam döngüsü modeller şeklinde temsil edilebilir. Şu anda en yaygın olanları şunlardır:Çağlayan, artan (ara kontrollü kademeli model ) Ve sarmalyaşam döngüsü modelleri.

Kademeli model

Kademeli model(İngilizce) şelale Modeli), yaşam döngüsü, gereksinim analizi ve tasarım aşamalarından sırayla geçen bir akışa benzeyen yazılım geliştirme sürecinin bir modelidir. uygulama, test etme, entegrasyon ve destek.

Geliştirme süreci, sıralı bir bağımsız adım dizisi aracılığıyla uygulanır. Model, sonraki her adımın bir önceki adım tamamen tamamlandıktan sonra başlamasını sağlar. Modelin tüm adımlarında proje yönetimi, kalite değerlendirme ve yönetim, doğrulama ve belgelendirme, konfigürasyon yönetimi ve dokümantasyon geliştirme dahil olmak üzere yardımcı ve organizasyonel süreçler ve çalışmalar gerçekleştirilir. Adımların tamamlanması sonucunda sonraki adımlarda değiştirilemeyecek ara ürünler oluşur.

Yaşam döngüsü geleneksel olarak aşağıdaki ana bölümlere ayrılır:aşamalar:

  1. Gereksinimlerin analizi,
  2. Tasarım,
  3. Kodlama (programlama),
  4. Test etme ve hata ayıklama,
  5. Operasyon ve bakım.

Modelin avantajları:

  • tüm geliştirme yaşam döngüsü boyunca gereksinimlerin istikrarı;
  • her aşamada, bütünlük ve tutarlılık kriterlerini karşılayan eksiksiz bir tasarım belgeleri seti oluşturulur;
  • modelin adımlarının kesinliği ve netliği ile uygulama kolaylığı;
  • mantıksal bir sırayla gerçekleştirilen iş aşamaları, tüm işin tamamlanma zamanlamasını ve ilgili kaynakları (parasal, malzeme ve insan) planlamayı mümkün kılar.

Modelin dezavantajları:

  • gereksinimleri açıkça formüle etmenin zorluğu ve bunları tüm yaşam döngüsü boyunca dinamik olarak değiştirmenin imkansızlığı;
  • proje yönetiminde düşük esneklik;
  • geliştirme sürecinin doğrusal yapısının tutarlılığı, bunun sonucunda ortaya çıkan sorunları çözmek için önceki adımlara dönmek, maliyetlerin artmasına ve iş programının bozulmasına yol açar;
  • ara ürünün kullanıma uygun olmaması;
  • benzersiz sistemlerin esnek modellenmesinin imkansızlığı;
  • Geliştirme sonunda tüm sonuçların eş zamanlı entegrasyonu nedeniyle montaj sorunlarının geç tespiti;
  • sistemin oluşturulmasına kullanıcının yetersiz katılımı - başlangıçta (gereksinim geliştirme sırasında) ve sonunda (kabul testleri sırasında);
  • kullanıcılar, tüm geliştirme süreci tamamlanana kadar geliştirilmekte olan ürünün kalitesinden emin olamazlar. Bitmiş geliştirme ürününü görmek imkansız olduğundan kaliteyi değerlendirme fırsatları yok;
  • kullanıcının yavaş yavaş sisteme alışma şansı yoktur. Öğrenme süreci, yaşam döngüsünün sonunda, yazılım zaten devreye alındığında gerçekleşir;
  • her aşama sonraki eylemler için bir ön koşuldur; bu da bu yöntemi analogları olmayan sistemler için riskli bir seçim haline getirir, çünkü esnek modellemeye uygun değildir.

Bir yazılım sisteminin önceki adımlara dönmeden ve ortaya çıkan sorunları ortadan kaldıracak şekilde sonuçlarını değiştirmeden geliştirmenin karmaşıklığı nedeniyle Cascade yaşam döngüsü modelini uygulamak zordur.

Cascade modelinin uygulama kapsamı

Kademeli modelin uygulama kapsamının sınırlılığı, eksiklikleri tarafından belirlenmektedir. Kullanımı aşağıdaki durumlarda en etkilidir:

  1. Açık, değişmez ilkelere sahip projeler geliştirirkenyaşam döngüsü gereksinimler, anlaşılır uygulama ve teknik yöntemler;
  2. geliştiriciler tarafından daha önce geliştirilmiş olan aynı türden bir sistem veya ürün oluşturmaya odaklanan bir proje geliştirirken;
  3. mevcut bir ürün veya sistemin yeni bir versiyonunun oluşturulması ve piyasaya sürülmesiyle ilgili bir proje geliştirirken;
  4. mevcut bir ürün veya sistemin yeni bir platforma aktarılmasıyla ilgili proje geliştirirken;
  5. Birkaç büyük geliştirme ekibinin dahil olduğu büyük projeleri yürütürken.

Artımlı model

(ara kontrollü adım adım model)

Artımlı model(İngilizce) artış- artış, artış), yazılımın doğrusal bir aşama dizisiyle, ancak birkaç artışla (sürümlerle) geliştirilmesini ifade eder, yani. Yazılım Geliştirme Yaşam Döngüsü sona erene kadar tüm süre boyunca planlı ürün iyileştirmeleri ile.


Yazılım geliştirme, aşamalar arasında geri bildirim döngüleri ile yinelemeler halinde gerçekleşir. Aşamalar arası ayarlamalar, çeşitli aşamalardaki geliştirme sonuçlarının gerçek karşılıklı etkisinin dikkate alınmasını mümkün kılar; her aşamanın ömrü, tüm geliştirme dönemi boyunca uzatılır.

Proje üzerinde çalışmanın başlangıcında sistem için tüm ana gereksinimler belirlenir ve giderek daha az önemli olanlara bölünür. Daha sonra sistem, geliştiricinin yazılım geliştirme sırasında elde edilen verileri kullanabilmesi için aşamalı olarak geliştirilir. Her artış sisteme belirli işlevler katmalıdır. Bu durumda sürüm en yüksek önceliğe sahip bileşenlerle başlar. Sistemin parçaları belirlendikten sonra ilk parçayı alın ve buna en uygun süreci kullanarak detaylandırmaya başlayın. Aynı zamanda, bu iş için mevcut gereksinimler setinde dondurulan diğer parçalara ilişkin gereksinimleri de açıklığa kavuşturmak mümkündür. Gerektiğinde bu kısma daha sonra dönebilirsiniz. Parça hazır ise müşteriye işinde kullanabilecek şekilde teslim edilir. Bu, müşterinin aşağıdaki bileşenlere ilişkin gereksinimleri netleştirmesine olanak tanıyacaktır. Daha sonra sistemin bir sonraki bölümünü geliştirirler. Bu süreçteki temel adımlar, yazılım gereksinimlerinin bir alt kümesinin basitçe uygulanması ve modelin, yazılım tamamen uygulanana kadar bir dizi ardışık sürüm üzerinden iyileştirilmesidir.

Bu modelin yaşam döngüsü, nihai sonucun ne olması gerektiğine dair (hem müşteri hem de geliştirici açısından) net bir vizyonun olduğu karmaşık ve karmaşık sistemler geliştirirken tipiktir. Sürüm geliştirme çeşitli nedenlerle gerçekleştirilir:

  • müşterinin pahalı projenin tamamını aynı anda finanse edememesi;
  • geliştiricinin karmaşık bir projeyi kısa sürede hayata geçirmek için gerekli kaynaklara sahip olmaması;
  • Ürünün aşamalı olarak uygulanmasına ve son kullanıcılar tarafından benimsenmesine yönelik gereksinimler. Sistemin tamamının bir kerede uygulamaya konulması, kullanıcılar arasında reddedilmeye neden olabilir ve yeni teknolojilere geçiş sürecini yalnızca “yavaşlatabilir”. Mecazi anlamda konuşursak, onlar basitçe “büyük bir parçayı sindiremeyebilirler, bu yüzden onu doğrayıp parça parça vermeleri gerekir.”

Avantajları Ve kusurlarBu model (stratejiler) şelaleninkilerle (klasik yaşam döngüsü modeli) aynıdır. Ancak klasik stratejiden farklı olarak müşteri sonuçları daha erken görebilir. İlk versiyonun geliştirilmesi ve uygulanmasının sonuçlarına dayanarak, geliştirme gereksinimlerini biraz değiştirebilir, terk edebilir veya yeni bir sözleşme imzalayarak daha gelişmiş bir ürünün geliştirilmesini teklif edebilir.

Avantajları:

  • değişen kullanıcı gereksinimleri nedeniyle ortaya çıkan maliyetler azalır, yeniden analiz ve dokümantasyon şelale modeline göre önemli ölçüde azalır;
  • Yapılan iş hakkında müşteriden geri bildirim almak daha kolaydır; müşteriler bitmiş parçalar hakkında yorumlarını dile getirebilir ve daha önce ne yapıldığını görebilirler. Çünkü Sistemin ilk parçaları bir bütün olarak sistemin prototipidir.
  • Müşteri, yazılımı hızlı bir şekilde edinme ve uzmanlaşma yeteneğine sahiptir; müşteriler, şelale modeliyle mümkün olabileceğinden daha kısa sürede sistemden gerçek faydaları elde edebilirler.

Modelin dezavantajları:

  • Yöneticiler süreç ilerlemesini sürekli olarak ölçmelidir. Hızlı geliştirme durumunda, her minimum sürüm değişikliği için belge oluşturmamalısınız;
  • Yeni bileşenler eklendikçe sistemin yapısı bozulma eğilimindedir; sürekli değişiklikler sistemin yapısını bozar. Bunu önlemek için yeniden düzenleme için ek zaman ve para gerekir. Kötü tasarım, yazılımın daha sonra değiştirilmesini zor ve pahalı hale getirir. Ve kesintiye uğrayan bir yazılım yaşam döngüsü daha da büyük kayıplara yol açar.

Program, yazılım gereksinimlerinde ortaya çıkan değişiklikleri ve açıklamaları hızlı bir şekilde dikkate almanıza izin vermiyor. Geliştirme sonuçlarının kullanıcılarla koordinasyonu, yalnızca işin her aşamasının tamamlanmasından sonra planlanan noktalarda gerçekleştirilir ve yazılımın genel gereksinimleri, oluşturulduğu süre boyunca teknik özellikler şeklinde kaydedilir. Bu nedenle kullanıcılar sıklıkla gerçek ihtiyaçlarını karşılamayan yazılımlar alırlar.

Spiral modeli

Spiral modeli:Yaşam döngüsü - spiralin her dönüşünde ürünün bir sonraki versiyonu oluşturulur, projenin gereksinimleri netleştirilir, kalitesi belirlenir ve bir sonraki turun işi planlanır. Belirli teknik çözümlerin fizibilitesinin prototiplerin oluşturulması yoluyla test edildiği ve doğrulandığı, geliştirmenin ilk aşamalarına - analiz ve tasarım - özellikle dikkat edilir.


Bu model, aşağıdan yukarıya ve yukarıdan aşağıya kavramların faydalarını birleştirmek için hem tasarımı hem de aşamalı prototiplemeyi birleştiren ve yaşam döngüsünün ilk aşamalarını (analiz ve tasarım) vurgulayan bir yazılım geliştirme sürecidir.Ayırt edici özellik Bu model, yaşam döngüsünün organizasyonunu etkileyen risklere özel bir önem vermektedir.

Analiz ve tasarım aşamalarında teknik çözümlerin uygulanabilirliği ve müşteri ihtiyaçlarının ne ölçüde karşılandığı prototipler oluşturularak doğrulanır. Spiralin her dönüşü, sistemin uygulanabilir bir parçasının veya versiyonunun yaratılmasına karşılık gelir. Bu, projenin gereksinimlerini, hedeflerini ve özelliklerini netleştirmenize, geliştirme kalitesini belirlemenize ve spiralin bir sonraki dönüşünün çalışmasını planlamanıza olanak tanır. Bu sayede projenin detayları derinleştirilip tutarlı bir şekilde belirlenmekte ve bunun sonucunda müşterinin gerçek gereksinimlerini karşılayan makul bir seçenek seçilerek uygulamaya geçirilmektedir.

Spiralin her dönüşünde yaşam döngüsü - yazılım geliştirme sürecinin farklı modelleri kullanılabilir. Sonuçta çıktı bitmiş bir üründür. Model, prototip oluşturma modelinin yeteneklerini birleştirir veşelale Modeli. Yinelemelerle geliştirme, bir sistem yaratmanın nesnel olarak var olan sarmal döngüsünü yansıtır. Her aşamada işin eksik tamamlanması, mevcut aşamadaki işin tamamen tamamlanmasını beklemeden bir sonraki aşamaya geçmenizi sağlar. Ana görev, sistem kullanıcılarına mümkün olan en kısa sürede uygulanabilir bir ürün göstermek, böylece gereksinimlerin açıklığa kavuşturulması ve tamamlanması sürecini aktive etmektir.

Modelin avantajları:

  • sistem kullanıcılarına hızlı bir şekilde uygulanabilir bir ürün göstermenize olanak tanır, böylece gereksinimlerin açıklığa kavuşturulması ve tamamlanması sürecini etkinleştirir;
  • standart olanlar da dahil olmak üzere çoğu geliştirme için tipik olan, yazılım geliştirme sırasında gereksinimlerde değişikliklere izin verir;
  • Model, şelale modelinin faydalarını bünyesinde barındırdığı ve aynı zamanda aynı modelin tüm aşamalarında yinelemelere izin verdiği için esnek tasarıma olanak tanır;
  • daha güvenilir ve istikrarlı bir sistem elde etmenizi sağlar. Yazılım geliştikçe hatalar ve zayıflıklar her yinelemede keşfedilir ve düzeltilir;
  • bu model, kullanıcıların planlama, risk analizi, tasarım ve değerlendirme faaliyetlerine aktif olarak katılmasına olanak tanır;
  • müşteri riskleri azalır. Müşteri, taviz vermeyen bir projenin gelişimini minimum mali kayıpla tamamlayabilir;
  • Kullanıcılardan geliştiricilere geri bildirimler yüksek sıklıkta ve modelin erken safhalarında gerçekleşir, bu da istenen yüksek kalitede ürünün oluşturulmasını sağlar.

Modelin dezavantajları:

  • Proje düşük riskli veya küçük boyutlu ise model pahalı olabilir. Her spiralden sonraki risk değerlendirmesi yüksek maliyetlerle ilişkilidir;
  • Model yaşam döngüsü karmaşık bir yapıya sahip olduğundan geliştiriciler, yöneticiler ve müşteriler tarafından kullanımı zor olabilir;
  • oluşturulan versiyona verilen her müşteri yanıtı, projenin sonunu geciktiren yeni bir döngü oluşturabileceğinden sarmal süresiz olarak devam edebilir;
  • çok sayıda ara döngü, ek belgelerin işlenmesi ihtiyacına yol açabilir;
  • modeli kullanmak pahalı ve hatta karşılanamaz hale gelebilir, çünkü zaman. Planlama, hedefleri yeniden tanımlama, risk analizleri yapma ve prototip oluşturma için harcanan zaman aşırı olabilir;
  • Geliştirme sürecini bir sonraki aşamaya kadar sürdürmeye hazır olduğunuzu gösteren hedefleri ve kilometre taşlarını tanımlamak zor olabilir.

Spiral döngünün temel sorunu bir sonraki aşamaya geçiş anının belirlenmesidir. Bu sorunu çözmek için her aşamaya zaman sınırlaması getirilmiştir.yaşam döngüsü ve planlanan çalışmaların tamamı tamamlanmasa bile geçiş planlandığı gibi ilerliyor.Planlamaönceki projelerde elde edilen istatistiksel verilere ve geliştiricilerin kişisel deneyimlerine dayanarak üretilmiştir.

Spiral modelin uygulama kapsamı

Aşağıdaki durumlarda spiral modelin kullanılması tavsiye edilir:

  • yeni teknolojileri kullanarak projeler geliştirirken;
  • yeni bir ürün veya sistem serisi geliştirirken;
  • gereksinimlerde önemli değişiklikler veya eklemeler yapılması beklenen projeler geliştirilirken;
  • uzun vadeli projeler yürütmek;
  • bir sistemin veya ürünün kalitesini ve versiyonlarını kısa bir süre içinde göstermeyi gerektiren projeler geliştirirken;
  • projeler geliştirirken. risklerin değerlendirilmesi ve çözülmesiyle ilgili maliyetlerin hesaplanmasının gerekli olduğu.