Yazılım geliştirmede genel ilke ve yaklaşımlar. Yazılım geliştirmeye yapısal yaklaşım Yazılım geliştirmeye temel yaklaşımlar ve yazılım geliştirme

Bilgisayar bilimi, sibernetik ve programlama

Yineleme N USDP Birleşik Yazılım Geliştirme Süreci Kullanım durumu modeli, uygulamanın kullanılacağı durumları açıklar. Analitik model, uygulama için temel sınıfları tanımlar. Tasarım modeli, sınıflar ve tahsis edilen nesneler arasındaki ilişkileri ve ilişkileri tanımlar.Bir dağıtım modeli, yazılımın bilgisayarlar arasında dağıtımını tanımlar.

20 numaralı ders
Yazılım geliştirmeye yönelik genel ilkeler ve yaklaşımlar

Yazılım geliştirme modelleri

  1. Şelale
  2. kademeli model
  3. Sarmal
  4. Aşırı programlama
  5. artımlı
  6. MSF metodolojisi

Şelale Modeli

Spiral model

artımlı geliştirme

Gereksinimlerin analizi

Tasarım

uygulama

Bileşen

test yapmak

Entegrasyon

Test yapmak

tek bir bütün

Yineleme 1 Yineleme 2…. yineleme N

Birleşik Yazılım Geliştirme Süreci (USDP)

  1. Kullanım durumu modeli, uygulamanın kullanılacağı kullanım durumlarını tanımlar.
  2. Analitik model, uygulama için temel sınıfları tanımlar.
  3. Tasarım modeli, sınıflar ve seçilen nesneler arasındaki ilişkileri ve ilişkileri tanımlar.
  4. Bir dağıtım modeli, yazılımın bilgisayarlar arasında dağıtımını tanımlar.
  5. Uygulama modeli, program kodunun iç organizasyonunu tanımlar.
  6. Test modeli, test bileşenleri, test prosedürleri ve farklı seçenekler test yapmak

MSF metodolojisi

Bir Yazılım Ürün Mimarisinin Tipik Bileşenleri ve Tipik Yazılım Gereksinimleri

hata toleransı- hataları tespit ederek, sistem için kötü sonuçları düzelterek ve lokalize ederek güvenilirliğini artıran bir sistemin bir dizi özelliği. Hata toleransını sağlamak için herhangi bir gerçek sistem tasarlarken, sistem arızasına yol açabilecek her türlü durumu sağlamak ve arızaları ele almak için mekanizmalar geliştirmek gerekir.

Güvenilirlik - sistemin çeşitli arızalara ve arızalara dayanma yeteneği.

reddetme sistem geçişi mitamamen çalışamaz durumdaki bir hatanın sonucu olarak.

Kaza - sistemin çalışmasında, sistemin arızalanmasına yol açmayan bir hata.

Belirli bir süre boyunca ne kadar az arıza ve arıza olursa, sistem o kadar güvenilir olur.


Ve ayrıca ilginizi çekebilecek diğer çalışmalar

57355. Organik bileşiklerin çeşitleri, sınıflandırılması. Canlı doğanın organik maddesi 48,5 KB
Organik bileşiklerin çeşitliliği, karbon atomlarının birbirleriyle basit ve çoklu bağlarla birleşerek neredeyse sınırsız sayıda atoma sahip bileşikler oluşturmak için benzersiz yetenekleri ile belirlenir.
57359. Sözel bilgi modellerinin işlenmesi 291 KB
Temel kavramlar: model; bilgi modeli; sözlü bilgi modeli; Dipnot; Öz. Özet Latince'den özet. 2 için bir anahat oluşturun. Belgeyi Anahat adı altında kendi klasörünüze kaydedin.
57361. Sayı ve sayı 3. Sınırlardaki sayıların korelasyonu 3. Sayıların yazılması 3. Nesne sayısının korelasyonu 35,5 KB
Tüm yaratıkların becerileri İlk ayakta duran Kim tek başına duruyor 1 numarada kim duruyor 2 numarada kim duruyor Hto susid sağ elini bilochki Khto susid canlı elli zürafa Hto є yakın elini Hto є alt elini Kim yaratıkların ortasında duran Gras Show buruşuk değil.

Yazılım Geliştirme Modelleri Şelale Şelale Modeli Spiral Extreme Programlama UI Prototipleme Artımlı W Modeli Testi Birleşik Yazılım Geliştirme Süreci (USDP) MSF Metodolojisi

Şelale modeli Gereksinim analizi Ürün spesifikasyonunu üretin Tasarım Tasarım ürün mimarisi Uygulama Kaynak kodu geliştirme Kaynak kodun ayrı bölümlerinin entegrasyonu Hataların test edilmesi ve ortadan kaldırılması

Extreme Programming İlk Gereksinimler Analizi Tasarım Entegrasyon Uygulama Testi Yeni Gereksinimler Geliştirme Planı İnceleme / Onay / Değişiklik Ürün Yayını

UI Prototipleme Ürün sürümü Değişiklikleri dikkate alan yazılım geliştirme Gereksinimlerin ve spesifikasyonların netleştirilmesi Prototipin değiştirilmesi ve bazı işlevlerin iyileştirilmesi Temel işlevsellik Arayüz prototipi Ön belirtim

Artımlı geliştirme Yineleme 1 Yineleme 2…. Gereksinim Analizi Tasarım Uygulama Bileşen Testi Entegrasyon Tüm Birimi Test Etme Yineleme N

Birleşik Yazılım Geliştirme Süreci (USDP) Ø Kullanım Durumu Modeli, uygulamanın kullanılacağı durumları açıklar. Ø Analitik model, uygulama için temel sınıfları tanımlar. Ø Tasarım modeli, sınıflar ve seçkin nesneler arasındaki bağlantıları ve ilişkileri tanımlar. Ø Dağıtım modeli, yazılımın bilgisayarlar arasında dağıtımını tanımlar. Ø Uygulama modeli, program kodunun iç organizasyonunu açıklar. Ø Test modeli, test bileşenleri, test prosedürleri ve çeşitli test seçeneklerinden oluşur.

Birleşik Yazılım Geliştirme Süreci (USDP) ITER 1 Gereksinimlerini Toplayın…. Iter N Design Iter 1…. Iter N Uygulama Iter 1…. Iter N Iter 1 Oluşturma…. Yineleme N Testi Yineleme 1…. iter N

Yazılım mimarisinin tipik bileşenleri ve tipik yazılım gereksinimleri Ø Ø Ø Program organizasyonu Ana sistem sınıfları Veri organizasyonu İş kuralları Kullanıcı arayüzü Kaynak yönetimi Güvenlik Performans Ölçeklenebilirlik Diğer sistemlerle birlikte çalışabilirlik (entegrasyon) Uluslararasılaştırma, yerelleştirme Veri G / Ç Hata işleme

Bir yazılım ürünü mimarisinin tipik bileşenleri ve tipik yazılım gereksinimleri Hata toleransı, bir sistemin, hataları tespit ederek, sistem için kötü sonuçları kurtararak ve izole ederek güvenilirliğini artıran bir dizi özelliktir. Hata toleransını sağlamak için herhangi bir gerçek sistem tasarlarken, sistem arızasına yol açabilecek her türlü durumu sağlamak ve arızaları ele almak için mekanizmalar geliştirmek gerekir. Güvenilirlik, bir sistemin çeşitli arızalara ve arızalara dayanma yeteneğidir. Başarısızlık, bir hata sonucu sistemin tamamen çalışmaz duruma geçmesidir. Arıza - sistemin çalışmasında, sistem arızasına yol açmayan bir hata. Belirli bir süre boyunca ne kadar az arıza ve arıza olursa, sistem o kadar güvenilir olur.

Bir yazılım ürünü mimarisinin tipik bileşenleri ve tipik yazılım gereksinimleri Güvenilirlik eğrisi N t 1 t Dahası, hatayı bulmak o kadar zor olacaktır. Sistem ne kadar karmaşıksa, başarısız olma ve başarısız olma olasılığı o kadar yüksektir.

Bir yazılım ürününün mimarisinin tipik bileşenleri ve yazılım için tipik gereksinimler Ø Geliştirilen mimarinin uygulama olanakları. Ø Yedekli işlevsellik. Ø Hazır yazılım bileşenlerinin satın alınmasına karar vermek. Ø Değişim stratejisi.

Kontrol Listesi mimarinin kalitesi hakkında bir sonuca varmamızı sağlayan sorular: Ø Programın genel organizasyonu açıkça tanımlanmış mı; Ø Ø Ø Spesifikasyon, mimariye ve mantığına genel bir bakış içeriyor mu? Programın ana bileşenleri, sorumluluk alanları ve diğer bileşenlerle etkileşimleri yeterince tanımlanmış mı? Gereksinim belirtiminde belirtilen tüm işlevler, makul sayıda sistem bileşeni tarafından uygulanıyor mu? En önemli sınıfların ve gerekçelerinin bir açıklaması var mı? Veritabanı organizasyonunun bir açıklaması var mı? Tüm iş kuralları tanımlanmış mı? Sistem üzerindeki etkisinin olup olmadığı açıklanmıştır.

Mimarinin kalitesi hakkında sonuç çıkarmak için bir kontrol listesi: Ø Kullanıcı arayüzü tasarım stratejisi tanımlanmıştır. Ø Değişikliklerin sistemin geri kalanını etkilememesi için kullanıcı arayüzü modüler mi? Ø Veri giriş/çıkış stratejisinin açıklaması var mı? ØBu mimari kullanılarak uygulanacak sistemin performans analizi yapılmıştır. Ø Tasarlanan sistemin güvenilirlik analizi yapılmış mı? ØSistemin ölçeklenebilirliği ve genişletilebilirliği konularının analizi yapılmıştır.

Yazılım yeniden düzenleme Yeniden düzenleme, yazılımı yeni bir yazılıma uyarlamayı içerir. donanım ve yeni işletim sistemlerine, yeni geliştirme araçlarına, yeni gereksinimlere ve ayrıca yazılım mimarisine ve işlevselliğine. Bu, yazılımın dış davranışını değiştirmeden, yazılımın iç yapısında değişiklik sağlamak için tasarlanmış bir değişikliktir. Yeniden düzenleme için makul nedenler: Kod tekrarlanıyor; yöntem uygulaması çok büyük; döngülerin çok fazla iç içe geçmesi veya döngünün kendisi çok büyük; sınıfın bağdaşıklığı zayıf (bir sınıfın özellikleri ve yöntemleri yalnızca 1 nesneyi tanımlamalıdır); sınıf arayüzü tutarlı bir soyutlama oluşturmaz; yöntem çok fazla parametre alıyor. Parametrelerin sayısını makul ölçüde minimumda tutmak için çaba gösterilmelidir; sınıfın bireysel bölümleri, sınıfın diğer bölümlerinden bağımsız olarak değişir;

Programı değiştirirken yazılımı yeniden düzenleme, birkaç sınıfın eşzamanlı olarak değiştirilmesini gerektirir. Böyle bir durum ortaya çıkarsa, gelecekte olası değişiklik yerlerini en aza indirmek için sınıfları yeniden düzenlemek gerekir; birkaç kalıtım hiyerarşisini paralel olarak değiştirmek zorunda; birkaç vaka bloğunu değiştirmeniz gerekir. Case bloğunun uygulamasını yapacak şekilde programı değiştirmek ve onu çağırmak gerekir. doğru miktar programda bir kez; birlikte kullanılan kardeşler sınıflar halinde düzenlenmemiştir. Aynı veri öğelerini tekrar tekrar kullanıyorsanız, bu verileri birleştirmeyi düşünmeniz ve bunlar üzerinde gerçekleştirilen işlemleri ayrı bir sınıfa yerleştirmeniz önerilir;

Yazılım yeniden düzenleme yöntemi, kendi sınıfından başka bir sınıfın daha fazla öğesini kullanır. Bu, yöntemin başka bir sınıfa taşınması ve eski sınıftan çağrılması gerektiği anlamına gelir; ilkel veri türü aşırı yüklendi. Gerçek dünyada bir varlığı tanımlamak için bir sınıf kullanmak, mevcut herhangi bir veri türünü aşırı yüklemekten daha iyidir; sınıfın çok sınırlı bir işlevi var. İşlevselliğini başka bir sınıfa aktararak bu sınıftan kurtulmak daha iyidir; dolaşım verileri, yöntem zinciri boyunca iletilir. Bir metoda sadece başka bir metoda iletilmek üzere iletilen verilere "stray" denir. Bu durumlar ortaya çıktığında, onlardan kurtulmak için sınıflarınızı ve yöntemlerinizi yeniden tasarlamaya çalışın.

Yazılımı bir arabuluculuk nesnesini yeniden düzenlemek hiçbir şey yapmaz. Bir sınıfın rolü, yöntem çağrılarını diğer sınıflara yeniden yönlendirmeye indirgenmişse, bu tür bir aracı nesneyi ortadan kaldırmak ve diğer sınıflara doğrudan çağrı yapmak en iyisidir; bir sınıf başka bir sınıf hakkında çok şey biliyor. Bu durumda, mirasçının ebeveyni hakkında asgari düzeyde bilgi sahibi olmasını sağlamak için kapsüllemeyi daha katı hale getirmek gerekir; yöntemin talihsiz bir adı var; bu üyeler halka açıktır. Bu, arayüz ve uygulama arasındaki çizgiyi bulanıklaştırır, kaçınılmaz olarak kapsüllemeyi bozar ve programın esnekliğini sınırlar; yorum yaz kaynak kodu;

Yazılım Yeniden Düzenleme Bir alt sınıf, atalarının yöntemlerinin yalnızca küçük bir bölümünü kullanır. Bu durum, herhangi bir yeni varlığı tanımlamak için değil, yalnızca temel sınıftan birkaç yöntemi devralmak için yeni bir sınıf oluşturulduğunda ortaya çıkar. Bundan kaçınmak için, temel sınıfı, yeni sınıfa yalnızca ihtiyaç duyduğu yöntemlere erişim sağlayacak şekilde dönüştürmek gerekir; kod global değişkenler içerir. Yalnızca tüm program tarafından gerçekten kullanılan değişkenler genel olmalıdır. Diğer tüm değişkenler ya yerel olmalı ya da bazı nesnelerin özellikleri olmalıdır; program, bir gün ihtiyaç duyabileceğiniz kodu içerir. Bir sistem geliştirirken kaynak kodun ileride eklenebileceği yerlerin sağlanması tavsiye edilir.

1. Programlama teknolojisinin amacı. Programlama teknolojisinin gelişim tarihi. Yazılım projelerinin türleri. Programlama teknolojisinin bileşenleri. Proje, ürün, süreç ve insanlar

2. Programın yaşam döngüsü. Gelişimin döngüsel doğası. Programlama teknolojisinin temel kavramları. Süreçler ve modeller. Aşamalar ve dönüşler. Kilometre taşları ve eserler. Paydaşlar ve çalışanlar.

3. Gereksinimlerin belirlenmesi ve analizi. Yazılım gereksinimleri. Gereksinim geliştirme şeması. İhtiyaç Yönetimi.

4. Mimari ve detaylı tasarım. Uygulama ve kodlama. Test etme ve doğrulama. Kalite kontrol süreci. Beyaz kutu ve kara kutu yöntemleri. İnceleme ve incelemeler. Test hedefleri. Doğrulama, doğrulama ve sistem testi. Bakım ve sürekli geliştirme.

5. Geliştirme sürecinin modelleri. Şelale ve konveyör modelleri. Spiral ve artımlı modeller. Geliştirme sürecinin esnek modelleri.

6. Bir süreç modelinin oluşturulması. Süreç gereksinimlerinin belirlenmesi. Aşamalar, kilometre taşları ve kullanılan eserler. Süreç mimarisi seçimi. Tipik bir proje için prosedür. Belgelenmiş prosedürler.

7. Geliştirme ekibinin modelleri. Gelişimin kolektif doğası. Optimum ekip boyutu. Proje katılımcılarının bağlılığı. Ekip geliştirme ve personel geliştirme. Uzmanlaşma, işbirliği ve etkileşim.

8. Geliştirme ekibinin modelleri. Hiyerarşik takım modeli. Cerrahi ekip yöntemi. Akran takım modeli.

9. Programlamanın doğası. Programlama bilimi. Programlama sanatı. Programlama zanaatı. Programlama paradigmaları. Yapılandırılmış programlama. Mantıksal programlama. Nesne yönelimli programlama.

10. Yazılım mimarisi. Olay yönetimi. İstemci / sunucu mimarisi. Hizmet. Üç katmanlı mimari. Programlar tasarlamak. Kavramsal tasarım. Mantıksal tasarım. Detaylı tasarım.

1. Novikov yazılım geliştirmeye yaklaşıyor "http: // penceresi. /window_catalog/files/r60368/itmo307.pdf.

2. Aşırı programlama. - SPb.: Peter, 2002.

3. Yazılım geliştirme teknolojisi. -SPb. : Peter, 2004.

4. Brooks Jr. tasarlanmış ve yaratılmıştır yazılım paketleri... Moskova: Nauka, 1975; çevirinin yeni baskısı: Efsanevi Adam-Ay. SPb.: SEMBOL +, 1999.

5. Algoritmalar + veri yapıları = programlar. M., Mir, 1978.

6. Sistematik programlama. Tanıtım. Moskova: Mir, 1977.

7. Yapılandırılmış programlama. Moskova: Mir, 1975.

8. Programlama disiplini. Moskova: Mir, 1978.

9. Yazılım geliştirme teknolojileri. - SPb.: Peter, 2002.

10. Terekhov programlama. M.: BİNOM, 2006.

11. Rambeau J. Birleşik yazılım geliştirme süreci. SPb: Peter, 2002.

Yöneticiler için ekonomik teori

Temel mikroekonomik teoriler. Ekonomik süreçlerin analizinde uygulama örnekleri. Temel makroekonomik teoriler. Ekonomik süreçlerin analizinde uygulama örnekleri. Ekonomik süreçleri yönetme ilkeleri ve yöntemleri. Ekonomik süreçlerin gelişme düzeyini değerlendirmek için araç takımı Genişletilmiş yeniden üretim sorunları. Rus ekonomisinin ekonomik büyüme faktörleri. Sürdürülebilir kalkınmanın kriterleri ve göstergeleri. yumuşatma döngüsel dalgalanmalar... Ekonomik gelişme oranını değerlendirmede çarpan ve hızlandırıcının rolü. Ekonomide üretim fonksiyonları. Ekonomik süreçlerin analizinde uygulama örnekleri. Kâr. Kârı etkileyen göstergelerin hesaplanması, başabaş noktasının grafik gösterimi. Yatırım politikası uygulama metodolojisi.

İktisat teorisi dersi: üniversiteler için bir ders kitabı / Ed. ... –Kirov: "ASA", 2004. Kolemaev - matematiksel modelleme. Makroekonomik süreçlerin ve sistemlerin modellenmesi: ders kitabı. M.: UNITY-DANA, 2005. Bazhin sibernetiği. Kharkov: Consul, 2004. Matematiksel modelleme yöntemleri üzerine Leushin çalıştayı: bir eğitim. Nijniy Novgorod eyaleti teknoloji univ.- N. Novorod, 2007. Politikacılara ekonomi hakkında: Ekonomide Nobel ödüllü konferanslar. M.: Modern Ekonomi ve Hukuk, 2005. Cheremnykh. İleri düzey: Ders Kitabı.-M.: INFRA-M, 2008. Mini ekonomi kurumlarının evrimi. Ekonomi Enstitüsü, URO RAS, - Moskova: Nauka, 2007.

Yönetim kararlarının geliştirilmesi ve benimsenmesi için teknolojiler [N]

Bir yöneticinin faaliyetinin temeli olarak karar verme. Karar teorisine giriş. Karar verme teorisinin temel kavramları. İş yönetimi modelleri ve karar verme üzerindeki etkileri. Çeşitli yollar Kararların sınıflandırılması. Sınıflandırmalar: formalite derecesine göre, rutin derecesine göre, sıklığa göre, aciliyete göre, hedeflere ulaşma derecesine göre, bir alternatif seçme yöntemine göre. Temel karar verme yöntemleri. Güçlü iradeli karar verme yöntemleri. Karar verme hedefleri. Çözüm arama zamanı. Temel hatalar Matematiksel karar verme yöntemleri. Karar verme teorisinin matematiksel yönleri. Yöneylem araştırması. Karar vermede matematiksel yaklaşım. Karar ağacı. Geliştirme ve karar verme modelleri. Oyun Teorisi. Matematiksel karar verme yöntemleri. Karar verme teorisinin matematiksel yönleri. Kuyruk teorisi modelleri. Envanter yönetimi modelleri. Doğrusal programlama modeli. Taşıma görevleri. Simülasyon modelleme. Ağ analizi. Ekonomik analiz. Rasyonel modellerin sınırlamaları. Grupta gelişim ve karar vermenin özellikleri. Kümelerin bağlantılılık derecesine dayalı olarak grup uyumunu belirlemek için bir yöntem. Toplu karar verme teknikleri. Konsensüs yöntemi. Oylama yöntemleri. Yaratıcı karar verme yöntemleri. Beyin fırtınası. Fikirler konferansı. Gemi tahtası. De Bono'nun Mind Hats Metodu. Yaratıcı Problem Çözme Teorisi (TRIZ). Mükemmel son çözüm. TRIZ kullanarak görev örnekleri ve çözümleri. Benzersiz ve yaratıcı kararlar vermede TRIZ yöntemlerinin uygulanması. Çözümler için fikir geliştirme ve duruma uyum sağlama yöntemleri. Hedef ağacı modeli. Çıkarları hizalamak için bir strateji. Çıkarların koordinasyonuna ilişkin kararların oluşumu. Karşı tarafların çıkarlarını belirleme yöntemleri. Karar destek sistemleri (uzman sistemler). Karar verme sistemlerinin yaratılmasının tarihi. Karar verme sistemlerinin sınıflandırılması. Bir uzman sistemin tipik yapısı. Bilgiyi temsil etme yolları. Mantıksal çıkarım yöntemleri. Uzman sistemlerin pratikte uygulanması.

I. Karar teorisi: ders kitabı. - E.: Sınav, 2006 .-- 573 s. I. Karar vermek. Yönetim kararlarını geliştirme teorisi ve yöntemleri. öğretici. - E.: Mart, 2005. - 496 s. Yönetim çözümlerinin geliştirilmesi - M.: Delo Yayınevi, 2004 - 392 s. G. Uzman değerlendirmeleri ve karar verme - M.: Patent, 1996. - 271 s. Taha // Yöneylem Araştırmasına Giriş = Yöneylem Araştırması: Giriş. - 7. baskı. - E.: "Williams", 2007. - S. 549-594. G. Kuyruk. Ekonomik tahminler ve karar verme. M.: "İlerleme" 1970. KD Lewis. Ekonomik göstergeleri tahmin etme yöntemleri. M.: "Finans ve İstatistik" 1986. G. S. Kildishev, A. A. Frenkel. Zaman serisi analizi ve tahmini. M.: "İstatistikler" 1973. O. Kim, C.W. Mueller, W.R. Klecka ve diğerleri Faktör, diskriminant ve küme analizi. M.: "Finans ve İstatistik" 1989. Etkili bir yönetici. Kitap 3. Karar Verme. - MIM LINK, 1999 Turevsky ve bir motorlu taşımacılık şirketinin yönetimi. - M .: Yüksek Lisans, 2005.,; ed. ... Yönetimde sistem analizi: öğretici... - M.: Finans ve istatistik, 2006., Tinkov: ders kitabı. - E.: KNORUS, 2006.

Entegre yönetim sistemlerinde iş süreçlerinin modellenmesi

İş süreçlerini ayırt etmenin ilkeleri nelerdir? İş süreçlerinin bütüncül bir tanımının sorunu nedir? Sistem nedir, hangi özelliklere sahiptir? İş süreci modellemede sistem analizinin rolü? Kontrol nesnesi olarak süreç. Süreç ortamı. İş sürecinin ana unsurları. İşlevsel ve süreç yönetiminin avantajları ve dezavantajları. PDCA yönetim döngüsü. Süreç yönetimi döngüsü aşamaları. PDCA döngüsü ve ISO 9001: 2008 gereksinimlerinin uygulanması. Metodoloji SADT (Yapısal Analiz ve Tasarım Tekniği - yapısal analiz ve tasarım yöntemi). Öz. Temel hükümler. IDEF0 metodolojisinde fonksiyonel aktivite modeli nasıl temsil edilir? Fonksiyonel model diyagramlarındaki aktiviteler ne anlama geliyor, IDEF0 metodolojisine göre nasıl gösteriliyor? Fonksiyonel model diyagramlarındaki oklar ne işe yarar, çeşitleri ve çeşitleri nelerdir? DFD metodolojisi. Öz. DFD çizelgelerinin ana bileşenleri. DFD diyagramlarının özellikleri nelerdir, neler anlatılmaktadır? DFD nesnelerinin özellikleri nelerdir? DFD grafiğindeki oklar neyi temsil ediyor? IDEF3 metodolojisi. Öz. Dokümantasyon ve modelleme araçları. IDEF3 diyagramlarının özellikleri nelerdir, neler anlatılmaktadır? IDEF3 diyagram nesnelerinin özellikleri nelerdir? Ve ateş eden? Süreçlerin sınıflandırılması. Tipik iş süreçleri. Değişim mühendisliği ve teknolojisi. Şirket yönetiminde değişim mühendisliğinin uygulanması ne zaman tavsiye edilir? İzleme ve ölçüm süreçleri. Organizasyon süreci göstergeleri. Süreçlerin sayısal ve derecelendirme değerlendirmeleri.

"AllFusion Process Modeler (BPwin 4.1) Dialogue-MEPhI ile iş süreçlerinin modellenmesi" 2003 "AllFusion Modeling Suite ile bilgi sistemlerinin oluşturulması" ed. Dialogue-MEPhI 2003 "AllFusion Process Modeler 4.1 ile fonksiyonel modelleme uygulaması. (BPwin) Nerede? Neden? Nasıl?" ed. "Dialogue-MEPhI" 2004 Dubeykovsky, AllFusion Process Modeler (BPwin) ile modelleme. ed. "Dialogue-MEPhI" 2007 D. Mark, C. McGowan "SADT'nin yapısal analizi ve tasarımı metodolojisi" SADT metodolojisi üzerine 1993 klasik çalışması. Cheremny sistem analizi: IDEF teknolojileri, Sistemlerin modellenmesi ve analizi. IDEF teknolojileri. Atölye. M.: Finans ve istatistik, 2001., “Yapısal iş modelleri: DFD-teknolojileri” http: // www. /Level4.asp? ItemId = 5810 "İş süreçlerinin yeniden düzenlenmesi teorisi ve pratiği" 2003 / P50.1 .. Fonksiyonel modelleme metodolojisi. M.: Rusya'nın Gosstandart'ı, 2000. http: // www. IDEF0, IDEF3, DFD http://www. BPwin http: // www kullanarak iş süreçlerini modelleme. / departman / se / devis / 7 / IDEF0 iş yönetimi süreçlerinin modellenmesinde http: /// içerik / görünüm / 21/27 / http: // www. /dir/cat32/subj45/file1411/view1411.html http: // www. http://www.

Yazılım ürünlerinin etkinliğinin değerlendirilmesi

1. BT mimarisi

2. Yönetim süreçlerinin alanları.

3. Etki Alanı Süreçleri Planlama ve Organizasyon Listesi

4. Alan Edinme ve Uygulama süreçlerinin listesi

5. Etki alanı işlemlerinin listesi İşletme ve Bakım

6. İzleme ve Değerlendirme etki alanı süreçlerinin listesi

7. Süreç olgunluk modelinin seviyelerinin özellikleri

9. KPI ve KGI, ilişkileri ve amaçları

1. 10. Genel BT kontrolleri ve uygulama kontrolleri. İşletme ve BT'nin sorumluluk alanları ve sorumlulukları.

Cobit 4.1 Rusça sürümü.

Fikri mülkiyetin yaratılması ve kullanılmasının yasal düzenlemesi

1. Fikri faaliyetlerin sonuçlarına ilişkin fikri hakları listeleyin ve içeriğini ortaya çıkarın.

2. Münhasır hakların elden çıkarılmasına ilişkin sözleşme türlerini listeleyin. Listelenen münhasır haklar sözleşmelerinin her birini tanımlayın.

4. Telif hakkı nesnesi olarak bir bilgisayar programının yasal olarak korunmasının ana hükümlerini tanımlayın.

5. Veritabanının yasal korumasının ana hükümlerini bir telif hakkı nesnesi ve ilgili hakların nesnesi olarak karşılaştırın.

6. Patent haklarının nesnelerinin patentlenebilirlik koşullarını tanımlayın: buluşlar; faydalı modeller; endüstriyel tasarımlar.

7. Bir buluşun patentlenebilirlik kriterlerinin içeriğini genişletin: yenilik; Yaratıcı adım; endüstriyel uygulanabilirlik

8. Buluş, faydalı model veya endüstriyel tasarım için patent alma şart ve usulleri ile patentlerin geçerliliğini sağlayan şartları ve sürelerini açıklayınız.

9. Bir "know-how" tanımını verin ve üretim sırlarının yasal olarak korunmasının ortaya çıktığı ve gerçekleştirildiği koşulları listeleyin.

10. Korunan bireyselleştirme araçlarını listeleyin ve karşılaştırmalı özelliklerini verin.

1., Fikri mülkiyet hakları Rusya Federasyonu, ders kitabı // M, Prospect, 2007

2., Fikri mülkiyet hukuku, çalışma kılavuzu // M, RIOR, 2009

Proje yönetimi ve yazılım geliştirme [Ve]

Metodoloji nedir, neden gereklidir? Metodolojinin genel yapısı, metodolojinin ana unsurları. Kendi metodolojinizi tasarlamanın ilkeleri. Çeşitli eserler, roller, yeterlilikler, sınır koşulları örnekleri. Cowberne'e göre metodolojinin yapısı, metodolojinin metrikleri. Proje için Cowberne kriterleri. Metodoloji seçim kriterleri, Couberne matrisi. Proje yaşam döngüsü. Şelale ve yineleme modelleri yaşam döngüsü... Şelale ve yineleme modelleri için uygulanabilirlik sınırları. Yinelemeli bir metodoloji örneği olarak RUP. RUP'nin temel kavramları, uygulanabilirlik sınırları. Yazılım geliştirmede insanın rolü. Çevik metodolojiler, Çevik metodolojilerin temel ilkeleri. Çevik metodolojilerin ortaya çıkmasının nedeni. Çevik bir örnek olarak Scrum. Scrum'daki roller, eserler, faaliyetler. Scrum kapsamı. Aşırı Programlama (XP) Fikirler, değerler, temel uygulamalar, uygulanabilirlik sınırları. Scrum ve XP arasındaki benzerlikler ve farklılıklar. Gereksinimlerin toplanması ve yönetimi. Temel uygulamalar, terimler, ilkeler. Proje ve ürün dokümantasyonuna yaklaşımlar, ana doküman türleri. Kursta tartışılan metodolojilerden gereksinim yönetimi uygulamalarına örnekler. Yazılım geliştirmeyi planlamak. Plan türleri, risk yönetimi, popüler riskler. Derste tartışılan metodolojilerden kalkınma planlama uygulamalarına örnekler. Yazılım geliştirme testi. Bir yazılım ürününün montajı (yapısı) kavramı. Temel test yöntemleri, terimler. Kursta tartışılan metodolojilerden test uygulamaları örnekleri. Montaj kavramı (yapı), kod saklama yolları, araçlar. Bir sürüm kontrol sistemi ile çalışmayı organize etmenin iki ilkesi. Farklı ürün kategorileri için ürün yayın/teşhir sürecinin özellikleri, uygulama örnekleri. Modern yazılım mimarisi kavramları, katmanlı mimariler, mimari kriterler. Yazılım tasarımında gerekli kararların listesi, bir depolama sistemi seçme yaklaşımları.

Kent Beck - Aşırı Programlama Frederick Brooks - Efsanevi Adam-Ay veya Nasıl Yaratılır yazılım sistemleri... Tom de Marco - Son tarih. Proje yönetimi hakkında bir roman. Tom de Marco, Timothy Lister - Ayılarla Vals. Tom de Marco, Timothy Lister - İnsan faktörü_ başarılı projeler ve ekipler. Alistair Couburn - Her projenin kendi metodolojisi vardır. Alistair Couburn - Yazılım geliştirmede doğrusal olmayan ve en önemli bileşenler olarak insanlar. Andriy Orlov - Bir Otomatörün Notları. Profesyonel itiraf. Philip Crachten - Rasyonel Birleşik Süreç'e Giriş. Henrik Kniberg - Scrum ve XP: Ön Cepheden Notlar. Ders Anlatım Sunumları

Bu nedenle, EIS yazılım geliştirmeye yönelik yapısal yaklaşımın özü, otomatikleştirilmiş işlevlere ayrıştırılmasında (bölünmesi) yatmaktadır: sistem, sırayla, alt işlevlere, bunlar görevlere vb. bölünen işlevsel alt sistemlere bölünmüştür. özel prosedürler. Aynı zamanda sistem, tüm bileşen bileşenlerinin birbirine bağlı olduğu bütünsel bir görüşü korur. Bireysel görevlerden tüm sisteme "aşağıdan yukarıya" bir sistem geliştirirken, bütünlük kaybolur, bireysel bileşenlerin bilgi etkileşimini tanımlarken sorunlar ortaya çıkar.

Yapılandırılmış yaklaşımın en yaygın yöntemlerinin tümü bir dizi genel ilkeye dayanmaktadır:

1. "Böl ve yönet" ilkesi;

2. Hiyerarşik sıralama ilkesi - organizasyon ilkesi bileşen parçaları sistemleri, her seviyede yeni detayların eklenmesiyle hiyerarşik ağaç yapılarına dönüştürür.

İki temel ilkenin altını çizmek, ilkelerin geri kalanının ikincil olduğu anlamına gelmez, çünkü bunlardan herhangi birini görmezden gelmek, öngörülemeyen sonuçlara yol açabilir (tüm projenin başarısızlığı dahil "). Bu ilkelerin başlıcaları şunlardır:

1. Soyutlama ilkesi - sistemin temel yönlerini vurgulamak ve önemsiz olandan uzaklaştırmak.

2. Sistem öğelerinin tutarlılığı, geçerliliği ve tutarlılığı ilkesi.

3. Yapılanma ilkesi veri - veri yapılandırılmalı ve hiyerarşik olarak organize edilmelidir.

Yapısal yaklaşımda, sistemin işlevsel yapısını ve veriler arasındaki ilişkiyi tanımlayan temel olarak iki grup araç vardır. Her fon grubu, aralarında en yaygın olanı belirli model türlerine (şemalara) karşılık gelir:

DFD (Veri Akış Şemaları) - veri akış diyagramları;

SADT (Yapısal Analiz ve Tasarım Tekniği - yapısal analiz ve tasarım metodolojisi) - modeller ve ilgili fonksiyonel diyagramlar: gösterimler IDEF0 (sistemlerin fonksiyonel modellemesi), IDEF1x (veritabanlarının kavramsal modellemesi), IDEF3x (kaliteyi değerlendirmek için sistemlerin inşası nesnenin çalışması, akış süreçlerinin grafiksel açıklaması, süreçlerin etkileşimleri ve bu süreçler tarafından değiştirilen nesneler);

· ERD (Varlık - İlişki Diyagramları) - "varlık-ilişki" diyagramları.

Yazılım gereksinimleri oluşturma aşamasında yapısal yaklaşımın (yapısal analiz) hemen hemen tüm yöntemleri iki grup modelleme aracı kullanır:

1. Sistemin gerçekleştirmesi gereken işlevleri ve bu işlevler arasındaki ilişkileri gösteren diyagramlar - DFD veya SADT (IDEF0).

2. Verileri ve bunların ilişkilerini modelleyen diyagramlar (ERD).

Listelenen diyagramların özel şekli ve yapılarının yorumlanması, yazılımın yaşam döngüsü aşamasına bağlıdır.

Yazılım gereksinimlerinin oluşturulması aşamasında, SADT modelleri ve DFD'ler, “OLDUĞU GİBİ” modeli ve “TO-BE” modelini oluşturmak için kullanılır, böylece kuruluşun iş süreçlerinin mevcut ve önerilen yapısını ve bunlar arasındaki etkileşimi yansıtır. (SADT modellerini kullanarak, kural olarak, orijinal olarak yazılım tasarımı için tasarlanmadıkları için yalnızca bu aşama ile sınırlıdır). ERD yardımıyla, kuruluşta kullanılan verilerin tanımı, veritabanının (DBMS) uygulanmasından bağımsız olarak kavramsal düzeyde gerçekleştirilir.

İlk bölümde, metodolojinin yinelemeli geliştirmeye oranı ve çalışma materyallerinin tasarımındaki ve genel olarak geliştirme sürecindeki formalite derecesi gibi göstergeler gibi yazılım geliştirme metodolojilerini karşılaştırmayı seçtik. Bu bölümde, en iyi bilinen yazılım geliştirme tekniklerini karşılaştırmak için bu metrikleri kullanıyoruz.

Bakalım nasıl olacak…

Ne yazık ki, bu tanımlaması en zor kategoridir - sonuçta, hem ilk projesini tamamlamak için ne pahasına olursa olsun yeni başlayan birinin sarsıcı fırlatma ürününü hem de uzun yıllara dayanan oldukça olgun ve köklü metodolojileri içerir. belirli geliştirme ekiplerinin çeşitli deneyimleri ve hatta iç düzenlemelerde açıklananlar. Kendi metodolojilerini geliştirebilen insanlar, kural olarak, yineleme ve formalizasyon açısından kendileri değerlendirebileceklerinden, yeni başlayanlara odaklanacağız. Ne yazık ki, çoğu zaman bu, geliştirme kurallarının ya hiç olmadığı ya da geliştirilip benimsendiği, ancak takip edilmediği anlamına gelir. Bu koşullarda doğal son derece düşük seviye kalkınma formalizmi Yani bununla her şey açık.

Geliştirme "Nasıl gidiyor"

Yinelemeli yaklaşım ne olacak? Ne yazık ki, kural olarak, bu tür projelerde kullanılmaz. Her şeyden önce, çünkü ilk iterasyonlarda bile projenin son derece şüpheli ve işleri düzene sokmak için daha yüksek bir yönetimden acil müdahale gerektiren olarak değerlendirilmesine izin verecekti. Gerçekten de, yinelemeli bir projede, bir programcının kendisi için her şeyin zaten %90'ının hazır olduğu şeklindeki geleneksel yanıtı, yalnızca ilk yinelemenin sonuna kadar gerçekleşir...

Yapısal metodolojiler

Yapısal metodolojiler

Yapısal yöntemler, kural olarak, nesne yönelimli dillerin yaygın kullanımından önce geliştirilmiş bir grup metodolojidir. Hepsi şelale gelişimini içerir. Her ne kadar ortaya çıktığı gibi, şelale yaklaşımının ilk sunumu olarak sıklıkla atıfta bulunulan o makalede bile, projeye bir prototip geliştirilmesiyle başlamanın, yani en azından gerçekleştirmenin tavsiye edildiği söylendi. iki yineleme.

Bununla birlikte, bu metodolojilerin temeli, işten işe ardışık bir geçiş ve bir sonraki aşamanın sonuçlarının (belgelerinin) bir sonraki aşamanın katılımcılarına aktarılmasıdır.

Ayrıca, tüm bu metodolojiler oldukça resmi bir yaklaşımı varsayar, ancak bunlarda makul miktarda belgeleme hakkında ifadeler bulunabilir. Yazılım geliştirme metodolojilerinin sadece Batı'da geliştirilmediğinin bariz olmayan örneklerinden biri, 1980'lerin başında ülkemizde yayınlanan bir kitaptan alıntıdır. analist ve programcı. Ve bu, kitabın konusunun, şimdi adlandırıldığı gibi, ciddi kayıplara ve hatta felaketlere yol açan oldukça kritik sistemlerin, hataların geliştirilmesini içermesine rağmen.

Çevik Metodolojiler

Çevik metodolojiler, sadece bu metodolojilerin seçilen parametrelere göre değerlendirilmesini belirleyenleri isimlendireceğimiz on ilkeye dayanmaktadır:

  • asıl olan müşteriyi memnun etmek ve ürünü en kısa sürede ona ulaştırmak;
  • ürünün yeni sürümleri, aşırı durumlarda birkaç haftada bir görünmelidir - aylar;
  • çoğu etkili yöntem geliştirme katılımcılarına ve aralarında bilgi aktarımı - kişisel iletişim;
  • Çalışan bir program, gelişimdeki ilerlemenin en iyi göstergesidir.

Bu nedenle, bu yöntemler açıkça yinelemeli yazılım geliştirmeye ve sürecin minimum resmileştirilmesine yöneliktir. Bununla birlikte, ikinci nokta ile ilgili olarak, bir çekince yapmak gerekir: belirtilen yöntemler, belirli bir proje için kabul edilebilir minimum resmileştirme seviyesine odaklanır. Esnek gruba dahil edilen metodolojilerden en az biri - Crystal - farklı sayıda katılımcıyla ve geliştirilmekte olan yazılımın farklı kritikliğiyle süreçleri gerçekleştirmek için tasarlanmış modifikasyonlara sahiptir (yazılımın kritikliği, hatanın olası sonuçları tarafından belirlenir ve bu, yazılıma göre değişiklik gösterebilir). önemsiz mali kayıplardan hata düzeltmelerine ve felaketlere kadar değişir). Çevik metodolojilerle daha fazla karşılaştırmanın anlamsız olmaması için, sunuyoruz kısa açıklamalar onlardan birkaçı.

eXtreme Programlama veya XP (aşırı programlama)

Kent Beck, Ward Cunningham ve Ron Jeffries tarafından geliştirilen XP metodolojisi, günümüzün en iyi bilinen Agile metodolojisidir. Bazen Çevik kavramının kendisi, iletişimi, basitliği, geri bildirimi ve cesareti savunan XP ile açıkça veya dolaylı olarak tanımlanır. Bir dizi uygulama olarak tanımlanır: oyunları planlama, kısa sürümler, metaforlar, basit tasarım, yeniden düzenleme, önceden test geliştirme, çift programlama, toplu kod sahipliği, 40 saatlik çalışma haftası, müşteri varlığı ve kod standartları. XP'ye olan ilgi, aşağıdan yukarıya doğru arttı - acı verici süreç, belgeler, ölçümler ve diğer formalizm tarafından eziyet çeken geliştiriciler ve testçilerden. Disiplini reddetmediler, ancak resmi gerekliliklere anlamsızca uymak istemediler ve yüksek kaliteli programların geliştirilmesine yönelik yeni, hızlı ve esnek yaklaşımlar aradılar.

XP kullanırken, dikkatli ön yazılım tasarımı, bir yandan ekipte her soruyu yanıtlamaya ve herhangi bir prototipi değerlendirmeye hazır bir müşterinin sürekli varlığı ve diğer yandan düzenli kod revizyonları ile değiştirilir (böylece). yeniden düzenleme denir). İyice yorumlanmış kod, tasarım belgelerinin temeli olarak kabul edilir. Büyük ölçüde büyük dikkat metodoloji test etmeye odaklanır. Kural olarak, her yeni yöntem için önce bir test yazılır ve ardından test başarıyla yürütülmeye başlayana kadar yöntemin gerçek kodu geliştirilir. Bu testler, herhangi bir kod değişikliğinden sonra otomatik olarak yürütülen paketlere kaydedilir.

Eşli programlama ve 40 saatlik çalışma haftası, muhtemelen XP'nin en iyi bilinen özellikleri olsa da, bunlar hala destekleyicidir ve yüksek geliştirici üretkenliğine ve daha az geliştirme hatasına katkıda bulunur.

Kristal berraklığı

Crystal, katılımcı sayısına ve görevlerin kritikliğine bağlı olarak, geliştirme sürecinin gerekli resmileştirme derecesini belirleyen bir metodoloji ailesidir.

Crystal Clear metodolojisi, performans açısından XP'den daha düşüktür, ancak kullanımı mümkün olduğunca kolaydır. İnsan alışkanlıklarına yönelik olduğu için uygulanması minimum çaba gerektirir. Bu metodolojinin, başka bir metodolojinin hedeflenen uygulamasına dahil olmamaları durumunda, yeterince nitelikli ekiplerde kurulan doğal yazılım geliştirme sırasını tanımladığına inanılmaktadır.

Crystal Clear'ın temel özellikleri:

  • yinelemeli artımlı geliştirme;
  • otomatik regresyon testi;
  • kullanıcılar projeye aktif katılımda bulunur;
  • belgelerin bileşimi proje katılımcıları tarafından belirlenir;
  • genellikle kod sürüm kontrolü kullanılır.

Crystal Clear'a ek olarak Crystal ailesi, daha büyük veya daha kritik projeleri ele almak için tasarlanmış birkaç başka metodoloji içerir. Biraz daha katı dokümantasyon gereksinimlerine ve değişiklik ve sürüm kontrolü gibi destek prosedürlerine sahiptirler.

Özellik Odaklı Geliştirme

Özellik Odaklı Geliştirme (FDD), RUP'ta kullanılan bir kullanım durumu kavramına yeterince yakın olan sistemin bir işlevi veya özelliği (özelliği) kavramıyla çalışır. Belki de en önemli fark, ek bir kısıtlamadır: "her işlev en fazla iki hafta içinde uygulanabilmelidir." Yani, kullanım durumu yeterince küçükse, bir işlev olarak kabul edilebilir ve büyükse, nispeten bağımsız birkaç işleve bölünmelidir.

FDD, son ikisi her işlev için tekrarlanan beş süreç içerir:

  • genel bir modelin geliştirilmesi;
  • gerekli sistem fonksiyonlarının bir listesini yapmak;
  • her fonksiyon üzerinde planlama çalışması;
  • fonksiyon tasarımı;
  • bir fonksiyon inşa etmek.

Bir proje üzerinde çalışmak, sık yapılan derlemeleri içerir ve her biri belirli bir işlev kümesi kullanılarak uygulanan yinelemelere bölünür.

FDD'deki geliştiriciler "sınıf ustaları" ve "ana programcılar" olarak ikiye ayrılır. Ana programcılar, bir sonraki mülk üzerinde çalışmaya dahil olan sınıfların sahiplerini içerir. Karşılaştırıldığında, XP'nin sınıflar veya yöntemler için hiçbir kişisel sorumluluğu yoktur.

Ortak özellikler

Çevik metodolojilerin listesi şu anda oldukça geniştir. Bununla birlikte, tarif ettiğimiz metodolojiler tüm ailenin çok eksiksiz bir resmini verir.

Hemen hemen tüm çevik metodolojiler, bir sonraki sürümün yayınlanmasıyla ilgili yalnızca sınırlı miktarda çalışmanın ayrıntılı olarak planlandığı yinelemeli bir yaklaşım kullanır.

Hemen hemen tüm çevik metodolojiler, geliştirmeye yönelik en resmi olmayan yaklaşıma odaklanır. Sorun sıradan bir konuşma sırasında çözülebilirse, bunu yapmak daha iyidir. Ayrıca, verilen kararı bir kağıt veya elektronik belge sadece onsuz yapmak imkansız olduğunda gereklidir.

Çevik Metodolojiler

GOST'ler

GOST'ler, bir sonraki bölümde açıklanan CMM gereksinimleri gibi metodolojiler değildir. Kural olarak, yazılım geliştirme süreçlerini kendileri tanımlamazlar, sadece süreçler için bir dereceye kadar çeşitli metodolojilere karşılık gelen belirli gereksinimleri formüle ederler. Metodolojileri karşılaştırdığımız aynı kriterlere göre gereksinimlerin karşılaştırılması, GOST'a göre geliştirmeniz gerekiyorsa hangi metodolojilerin kullanılması gerektiğini hemen belirlemeye yardımcı olacaktır.

Şu anda, Rusya'da 19. ve 34. serilerin eski GOST'leri ve daha yeni GOST R ISO IEC 122207 var. 19. ve 34. serilerin GOST'leri kesinlikle yazılım geliştirmeye kademeli bir yaklaşıma odaklanıyor. Bu GOST'lere göre geliştirme, her biri kesin olarak tanımlanmış çalışmanın uygulanmasını içeren ve oldukça fazla sayıda çok resmi ve kapsamlı belgenin yayınlanmasıyla sona eren aşamalar halinde gerçekleştirilir. Bu nedenle, bu standartlara derhal sıkı sıkıya bağlılık, yalnızca şelale yaklaşımına yol açmakla kalmaz, aynı zamanda çok yüksek derecede gelişme resmileştirme sağlar.

GOST gereksinimleri

GOST 12207, 19. ve 34. serilerin standartlarının aksine, yazılım geliştirmeyi bir projenin başından sonuna kadar çalışabilen bir dizi temel ve yardımcı süreç olarak tanımlar. Yaşam döngüsü modeli, projenin özelliklerine göre seçilebilir. Bu nedenle, bu GOST, yinelemeli yaklaşımın kullanımını açıkça yasaklamaz, ancak kullanımını açıkça önermez. GOST 12207, geliştirme sürecinin formalitesi gereksinimleri açısından da daha esnektir. Yalnızca tüm süreçlerin ana sonuçlarını belgeleme ihtiyacına ilişkin talimatları içerir, ancak içerikleriyle ilgili gerekli belge ve talimatların bir listesi yoktur.

Böylece GOST 12207, yinelemeli ve daha az resmi yazılım geliştirmeye izin verir.

Geliştirme Olgunluk Modelleri (CMM, CMMI)

Ulusal ve uluslararası standartlara ek olarak, geliştirme sürecinin belgelendirilmesine yönelik çeşitli yaklaşımlar vardır. Rusya'daki en ünlüleri, görünüşe göre, CMM ve CMMI'dir.

CMM (Capability Maturity Model), belirli bir şirketteki geliştirme sürecinin olgunluk düzeyini değerlendirmek için tasarlanmış bir yazılım geliştirme süreci olgunluk modelidir. Bu modele göre, beş gelişme olgunluğu seviyesi vardır. İlk seviye, geliştiriciler her projeye bir başarıymış gibi gittiğinde "nasıl sonuçlanacağını" geliştirmeye karşılık gelir. İkincisi, projenin olumlu bir sonucuna güvenmek için yeterli güvenle mümkün olduğunda, az çok iyi kurulmuş süreçlere karşılık gelir. Üçüncüsü, geliştirmede kullanılan gelişmiş ve iyi tanımlanmış süreçlerin varlığına karşılık gelir ve dördüncüsü, hedefleri belirlemek ve başarılarını izlemek için yönetim sürecinde metriklerin aktif kullanımına karşılık gelir. Son olarak, beşinci seviye, şirketin süreci gerektiği gibi optimize etme yeteneğini ifade eder.

CMM ve CMMI gereksinimleri

CMM'nin ortaya çıkışından bu yana, özel olgunluk modelleri oluşturmak için geliştirilmiştir. bilgi sistemi, tedarikçileri ve bazılarını seçme süreci için. Bunların temelinde, entegre bir model CMMI (Yetenek Olgunluk Modeli Entegrasyonu) geliştirildi. Ek olarak, CMMI, o zamana kadar ortaya çıkan CMM'nin eksikliklerinin üstesinden gelmeye çalıştı - belirli belgelerin mevcudiyetinin sadece iyi kurulmuş, ancak tanımlanmamış bir belgeden önemli ölçüde daha yüksek olduğu değerlendirildiğinde, süreçlerin resmi tanımlarının rolünün abartılması. işlem. Bununla birlikte, CMMI ayrıca oldukça resmi bir süreç kullanmaya odaklanmıştır.

Bu nedenle, CMM ve CMMI modellerinin temeli, geliştirme sürecinin resmileştirilmesidir. Geliştiricilere, düzenlemeler ve talimatlarda ayrıntılı olarak açıklanan ve uygun kontrol ve raporlama için büyük hacimli proje belgelerinin geliştirilmesini gerektirmeyen ancak gerektirmeyen bir sürecin uygulanmasına yöneliktirler.

CMM ve CMMI'nin yinelemeli geliştirmeyle ilişkisi daha dolaylıdır. Resmi olarak, ne biri ne de diğeri, bir şelaleye veya yinelemeli yaklaşıma bağlı kalmak için herhangi bir özel gereklilik getirmez. Ancak bazı uzmanlara göre, CMM şelale yaklaşımıyla daha uyumluyken, CMMI yinelemeli bir yaklaşıma da izin veriyor.

RUP

Elbette, RUP yinelemeli bir metodolojidir. Resmi olarak tüm aşamaları veya minimum sayıda yinelemeyi tamamlama zorunluluğu RUP'nin hiçbir yerinde belirtilmese de, yaklaşımın tamamı bunların birçoğunun olduğu gerçeğine odaklanmıştır. Sınırlı sayıda yineleme, RUP'un tüm avantajlarından tam olarak yararlanmanıza izin vermez. Aynı zamanda, RUP, aslında yalnızca birkaç yineleme içeren pratik olarak basamaklı projelerde de kullanılabilir: biri Oluşturma aşamasında, diğeri Aktarma aşamasında. Bu arada, basamaklı projelerde gerçekte kullanılan yinelemelerin sayısıdır. Sonuçta, sistemin test edilmesi ve denenmesi, analiz, tasarım ve geliştirme ile ilgili belirli eylemleri ima edebilecek düzeltmelerin getirilmesini içerir, yani aslında bunlar, geliştirmenin tüm aşamalarından başka bir geçiştir.

RUP metodolojisi

Metodolojinin formalitesine gelince, burada RUP kullanıcıya çok geniş bir olasılık yelpazesi sunar. Tüm işleri ve görevleri tamamlarsanız, tüm eserleri yaratırsanız ve resmi olarak (resmi bir gözden geçirenle, elektronik veya kağıt belge şeklinde tam bir inceleme hazırlayarak vb.) Tüm incelemeleri, RUP'yi gerçekleştirin. son derece resmi, hantal bir metodoloji olabilir. Aynı zamanda, RUP, yalnızca bu yapıtları geliştirmenize ve yalnızca belirli bir proje için gerekli olan faaliyetleri ve görevleri gerçekleştirmenize olanak tanır. Ve seçilen eserler herhangi bir formalite derecesi ile yürütülebilir ve gözden geçirilebilir. Her bir belgenin ayrıntılı bir şekilde incelenmesini ve dikkatli bir şekilde tasarlanmasını, eşit derecede dikkatli bir şekilde yürütülen ve yürütülen bir incelemenin sağlanmasını ve hatta eski uygulamaya göre bu tür her bir incelemeyi işletmenin bilimsel ve teknik konseyinde onaylanmasını talep edebilirsiniz. Veya kendinizi bir e-posta veya kağıt üzerinde bir eskiz ile sınırlayabilirsiniz. Ek olarak, her zaman bir fırsat daha vardır: kafada bir belge oluşturmak, yani ilgili soruyu düşünmek ve yapıcı bir karar vermek. Ve bu karar sadece sizi ilgilendiriyorsa, kendinizi örneğin program kodundaki bir yorumla sınırlayın.

Bu nedenle RUP, çok geniş bir yelpazeye sahip yinelemeli bir metodolojidir. olası çözümler geliştirme sürecinin resmileştirilmesi açısından.

Yazının ikinci bölümünün sonuçlarını özetleyelim. RUP, diğer metodolojilerin çoğundan farklı olarak, projelerin ve gelişen organizasyonun özelliklerine bağlı olarak, geliştirme sürecinin resmileştirme ve yineleme derecesini geniş bir aralıkta seçmeye izin verir.

Ve bunun neden bu kadar önemli olduğunu - sonraki bölümde tartışacağız.