internet pencereler Android
Genişletmek

Araç seçiminin ve yazılım geliştirme ortamının gerekçesi. CPU Otomatik Yönetim Sistemleri ve Endüstriyel Güvenlik

Entegre Geliştirme Ortamı (IPR), programcılar tarafından geliştirme için kullanılan bir yazılım aracı sistemidir. yazılım. İÇİNDE ingilizce dili Bu ortamın entegre geliştirme ortamı veya kısaltılmış IDE denir.

IPR tipik olarak bir metin editörü, derleyici, tercüman, yazılım geliştirme ve montaj ve hata ayıklayıcı içerir. Bazen, grafiksel kullanıcı arayüzünün tasarımını basitleştirmek için sürüm kontrol sistemleriyle ve çeşitli araçlarla entegrasyon için araçlar içerir. Birçok modern geliştirme ortamı, programatik sınıflar penceresini, Nesne Müfettişi ve Sınıflar Hiyerarşi Tablosunu - nesneye yönelimli yazılım geliştirmede kullanılmak üzeredir. Çoğu modern ISRS, aynı anda birden fazla programlama dilinde programlar geliştirmek için tasarlanmıştır.

Program arayüzünü görsel düzenleme olasılığını içeren IPR - görsel gelişim ortamının özel durumlarından biri.

Ana pencere girmek için kullanılan metin editörüdür. kaynak kodu IPR'de ve metin dosyalarında bir dizi karakterle çalışmaya odaklanmıştır. Bu tür editörler gelişmiş işlevsellik sağlar - sözdizimi vurgulama, sınıflandırma dizeleri, desenler, kodlama dönüştürme, sembol kodları, vb. Bazen kod editörleri denir, çünkü asıl amacı bilgisayar programlarının kaynak kodunu yazmaktır.

Sözdizimi vurgulama, çeşitli renkler, yazı tiplerini ve tasarımları kullanarak metin sözdizimsel tasarımlarını vurgulamaktadır. Genellikle, kaynak metnin okunmasını kolaylaştırmak, görsel algıyı iyileştirmek için metin editörlerinde uygulanır. İnternette kaynak kodu yayınlarken genellikle kullanılır.

Yayın, derleyici ve tercüman kavramı önceki derslerde verildi.

En iyilerinden biri Önemli parçalar ISR - Hata ayıklama, bu bir geliştirme ortamı modülü veya programdaki hataları aramak için tasarlanmış ayrı bir uygulama. Hata ayıklayıcı, adım adım izleme yapmanızı, program yürütülmesi sırasında değişkenlerin değerlerini izlemenizi, yüklemenizi, yüklemenizi, yüklemenizi veya değiştirmenize, kontrol noktalarını veya durdurma koşullarını vb. Yükle ve silmek.

En yaygın hata ayıklayıcıları:

- GNU hata ayıklayıcısı - GNU projesinden hata ayıklayıcı programları;

- IDA - Windows ve GNU / Linux Aile İşletim Sistemleri için Disassembler ve Düşük Seviye Hata Ayıklayıcı;

- Microsoft. Görsel stüdyo. - Microsoft'tan hata ayıklama fonları dahil olmak üzere yazılım geliştirme ortamı;

- OllyDBG, Windows işletim sistemleri için ücretsiz düşük seviyeli bir hata ayıklayıcıdır;

- Softissi - Windows işletim sistemleri için düşük seviyeli hata ayıklayıcı;

- Dr. Watson - Standart Windows hata ayıklayıcısı, bellek dökümleri oluşturmanıza olanak sağlar;

- Windbg, Microsoft'tan ücretsiz bir hata ayıklayıcıdır.

Ana hata ayıklama işlemi izdir. İzleme, adım adım program yürütme işleminin bir işlemidir. İzleme modunda, programcı, komutların yürütülmesi ve bu program adımındaki değişkenlerin değerlerini ve hataları tespit etmeyi kolaylaştıran değişkenlerin değerlerini görür. İzleme programın herhangi bir yerinde başlatılabilir ve sona erebilir, programın yürütülmesi her komutta veya durma noktalarında durdurulabilir, prosedür / fonksiyonda ve ziyaret etmeden izleme yapılabilir.

Orta ve yüksek karmaşıklık projelerin ortak geliştirilmesiyle en önemli IPR modülü, sürüm yönetim sistemidir. Sürüm Kontrol Sistemi (İngilizce kısaltma CVS) - değişen bilgi ile çalışmayı kolaylaştırmak için yazılım. Aynı belgenin birkaç sürümünü, gerekirse, önceki sürümlere geri dönmenizi, kimin ve ne zaman bir veya başka bir değişikliğin ve ne zaman olduğunu belirlemenizi sağlar.

Bu tür sistemler, geliştirilen programın kaynak kodunu saklamak için en yaygın olarak kullanılır. Bununla birlikte, çalışmanın çok sayıda sürekli değişen elektronik belge ile devam ettiği diğer alanlarda başarıyla uygulanabilirler, özellikle de CAD'de, genellikle ürün yönetim sistemlerinin bir parçası olarak giderek daha fazla kullanılmaktadır. Yapılandırma Yönetimi Araçlarında Kullanılan Sürüm Yönetimi Çeşitli cihazlar ve sistemler.

Ülkemizde, az sayıda büyük ölçekli proje nedeniyle mümkündür, sürümlerin kontrol sistemleri, kullanımlarının büyük projelerin başarılı bir şekilde uygulanmasının anahtarı olmasına rağmen dağıtım almamıştır. Bu bağlamda, IPR'nin bu özelliğine daha fazla odaklanacağız.

Çoğu versiyon kontrol sistemleri, sürüm yönetimi özelliklerinin çoğunu gerçekleştiren özel bir sunucu tarafından yönetilen tek bir belge deposu olduğunda merkezi bir model kullanır. Belgelerle çalışan kullanıcı önce belgenin sürümünü ihtiyacınız olan depodan almalıdır; Belgenin yerel bir kopyası genellikle "iş akışı" olarak adlandırılır. En son sürüm veya daha önce seçilen sürümden veya oluşturma tarihinden herhangi biri, bazen diğer özellikler için elde edilebilir. Gerekli değişiklikler belgeye yapıldıktan sonra, yeni sürüm depoya yerleştirilir. Basit tasarruf dosyasının aksine, önceki sürüm silinmez ve ayrıca depoda kalır ve herhangi bir zamanda oradan elde edilebilir. Sunucu Delta Sıkıştırma'yı kullanabilir - yalnızca seri versiyonlar arasında yapılan değişikliklerin kaydedilmesi için bir yöntem, depolanan verilerin hacmini azaltır.

Bazen yeni bir sürümün oluşturulması, kullanıcı için belirsiz bir şekilde gerçekleştirilir (saydam) - böyle bir fonksiyon için yerleşik desteğe sahip bir uygulama programı kullanarak veya özel kullanarak dosya sistemi. İkinci durumda, kullanıcı her zamanki gibi bir dosyayla çalışır ve dosyayı kaydederken, yeni bir sürüm otomatik olarak oluşturulur.

Çoğu zaman birkaç kişinin aynı anda bir proje üzerinde çalışmasıdır. İki kişi aynı dosyayı değiştirirse, bunlardan biri yanlışlıkla başkaları tarafından yapılan değişiklikleri iptal edebilir. Sürüm Kontrol Sistemleri bu çatışmaları izler ve bunları çözmek için araçlar sunar. Çoğu sistem, farklı geliştiriciler tarafından yapılan değişiklikleri otomatik olarak birleştirebilir (birleştirme). Bununla birlikte, böyle bir otomatik değişiklik birliği genellikle yalnızca metin dosyaları içindir ve daha sonra, yalnızca bu dosyanın farklı (yaşadığı) bölümlerini değiştirirse. Böyle bir kısıtlama, çoğu versiyon yönetim sisteminin yazılım geliştirme sürecini desteklemeye odaklandığı ve kaynak program kodlarının metin dosyalarında saklanması nedeniyledir. Otomatik ilişki başarısız olursa, sistem sorunu manuel olarak çözmeyi önerebilir.

Genellikle, birleştirme otomatik olarak otomatik olarak yapılandırılamaz veya manuel modda, örneğin, dosya biçimi çok karmaşıksa veya bilinmeyense. Bazı versiyonlar kontrol sistemleri dosyayı depoda bloke etmeyi mümkün kılar. Kilitleme, diğer kullanıcıların çalışma bir kopyasını almalarına izin vermez veya dosyanın çalışma bir kopyasındaki değişikliği önler (örneğin, dosya sistemi araçları) ve böylece belgeyle çalışan kullanıcıya son derece erişim sağlar.

Sürüm Yönetim Sisteminin diğer özellikleri:

Bir belge şubesinin farklı değişkenlerini oluştururken, genel olarak şube noktasında ve ondan sonra farklı şeylerle birlikte bir değişiklik geçmişi ile.

Kullanıcıların, bu sürümde ne ve neden değiştikleri hakkında açıklamaları kaydetebilecekleri dergi yönetimi;

Bu eylemi kimin talep ettiğine bağlı olarak, kullanıcı erişim haklarını, okumayı veya veri değişikliğini çözmek veya yasaklamak için kontrol eder.

Ayrı bir sınıf, dağıtım kontrol sistemleri dağıtılır. Bu tür sistemler, geleneksel bir müşteri sunucusu yerine dağıtılmış bir model kullanır. Genel olarak, merkezi bir depoya ihtiyaçları yokturlar: Belgelerdeki değişikliklerin tüm geçmişi, her bilgisayarda, yerel depoda saklanır ve gerekirse, yerel depolama tarihinin bireysel parçaları benzer depolama ile senkronize edilir. başka bir bilgisayar. Bazı bu sistemlerde, yerel depolama doğrudan çalışan kopya dizinlerine yerleştirilir.

Böyle bir sistemin kullanıcısı, belgenin belirli bir sürümünü almak gibi normal eylemler gerçekleştirdiğinde, yeni bir sürüm ve benzerleri oluştururken, yerel depo kopyası ile çalışır. Farklı geliştiricilere ait depolama değişikliği yapıldıkça, farklı olmaya başlarlar ve senkronizasyon için bir ihtiyaç vardır. Bu senkronizasyon, yamaları veya sözde değişiklik setlerini (ENG. Değiştirme kümeleri) arasında kullanıcılar arasında paylaşılarak gerçekleştirilebilir.

Dağıtılmış sistemlerin temel avantajı onların esnekliğidir. Her geliştirici bağımsız olarak çalışabilir, bunun için uygun olduğu için, ara belgeleri saklayın ve gerekli olduğunda diğer katılımcılara sonuçları iletir. Bu durumda, değişim setlerinin değişimi tarafından yapılabilir. Çeşitli şemalar. Küçük gruplar halinde, çalışma katılımcıları, özel bir sunucu oluşturmaya gerek kalmaması nedeniyle "her biri olan her" prensibiyle değişiklikler değiş tokuş edebilir. Büyük bir topluluk, aksine, tüm katılımcılarının kopyalarının senkronize edildiği merkezi bir sunucu kullanabilir. Örneğin, daha büyük bir projenin içindeki belirli alanlarda iş için grupların oluşturulmasıyla daha karmaşık seçenekler de mümkündür.

Sürüm Kontrol Sistemlerini kullanmak için, bu sistemlerin terminolojisine sahip olmak gerekir. Genel kabul görmüş bir terminoloji yoktur, aynı eylemler için farklı sistemlerde çeşitli isimler kullanılabilir.

Aşağıda en sık kullanılan seçeneklerden bazıları. Sistemlerin İngilizce-dil topluluğu tarafından geliştirildiğinden ve Rusça konuşan terminoloji geliştirilmiş olması nedeniyle, İngilizce terimler kullanılıyor.

Şube (Şube) - Gelişimin yönü, diğerlerinden bağımsız. Dal, diğer dalları etkilemeyen değişikliklerden yapılmış olan depoun (bir kuralı olarak, bir rehberinin) bir kopyasıdır. Farklı şubelerdeki belgeler şube noktasına aynı hikayeye sahiptir ve ondan sonra.

check-in, taahhüt, gönder - Yeni bir sürüm oluşturma, değişiklikleri yayınla. Çalışma kopyasında yapılan değişiklikleri belge havuzuna dağıtın. Aynı zamanda, depo, değiştirilen belgelerin yeni bir sürümünü oluşturur.

C. heck-out, klon - depodan bir belge ayıklama ve bir çalışma kopyası oluşturma.

C. onFlict - Birkaç kullanıcı belgenin aynı alanında değişiklik yaptığında bir çatışma durumu. Bir kullanıcının değişikliklerini zaten yayınladığında ve ikincisi yalnızca bunları yayınlamaya çalıştığında ve sistemin kendisi de çelişkili değişiklikleri doğru şekilde boşaltamayacağı durumunda tespit edilir. Program hangi değişikliğin "doğru" olduğunu belirleyecek kadar makul olmayabileceğinden, ikinci kullanıcının çatışmayı çözmesi gerekir (çözülmesi).

M. erge, entegrasyon (birleşme) - bağımsız değişiklikleri belgenin tek bir sürümüne birleştirerek. İki kişi aynı dosyayı değiştirdiğinde veya bir daldan diğerine değişiklikleri aktarırken gerçekleştirilir.

R. epository - sürüm yönetim sisteminin tüm belgeleri değişimlerinin geçmişi ve diğer hizmet bilgileriyle birlikte sakladığı bir yer.

R. evonision. Sürüm Kontrol Sistemleri Otomatik olarak atanan sürüm sürümlerini ayırt eder.

T. aG, Etiket (Etiket) - Belgenin belirli bir sürümü atanabilir. Etiket, bir belge grubu için sembolik bir addır ve bu sadece dosya adlarını değil, her dosyanın revizyonunu da açıklar. Belgeler etiketinde yer alan revizyonlar farklı zaman dilimlerine ait olabilir.

T. runek, Mainline (bagaj), proje geliştirmenin ana dalıdır. Bagajla olan iş politikası projeden projeye göre değişebilir, ancak genel olarak aşağıdaki gibidir: çoğu değişiklik varilde yapılır; Ciddi bir değişiklik gerekliyse, inovasyon yeterince test edildiğinde varille birleşen bir dal oluşturulursa, bir dal oluşturulur; Bir sonraki sürümün serbest bırakılmasından önce, sadece düzeltmelerin yapıldığı bir "serbest bırakma" dalı oluşturulur.

U pdate, Senkronizasyon (Güncelleme, Senkronizasyon) - Çalışma kopyasının belirli bir depolama durumuna senkronizasyonu. En sık, bu eylem, çalışan bir kopyayı çok taze depolama durumuna güncellemek anlamına gelir. Bununla birlikte, gerekirse, bir çalışma kopyasını ve daha eski bir duruma güncel olandan daha fazla senkronize edebilirsiniz.

W. orking Kopyalama (çalışma kopyası) - çalışma (yerel) belgelerin kopyası.

IPR'nin en uygun fiyatlı ve popüler versiyonları örneğinde olanaklarını düşünün.

Eclipse (İngilizce'den. Eclipse), modüler çapraz platform uygulamaları için ücretsiz bir entegre geliştirme ortamıdır (Şekil 69). Kar amacı gütmeyen kuruluş Eclipse Vakfı tarafından geliştirilmiş ve desteklenir (http://www.eclipse.org/).

Başlangıçta, Eclipse, IBM tarafından geliştirilmesi için kurumsal bir IPR standardı olarak geliştirildi. farklı diller Bu şirketten platformlar altında. IBM'ye göre, tasarım ve geliştirme 40 milyon dolara mal oldu. Kaynak kodu tamamen açıktı ve Eclipse, IBM Bağımsız Topluluğun daha da geliştirilmesine devredildi.

OSGI ve SWT / JFACE Framework, aşağıdaki katmana dayanarak (Rich Client Platform, tam teşekküllü istemci uygulamaları geliştirmek için platform) dayanan tutulmaya dayanmaktadır. RCP, yalnızca tutulması için değil, aynı zamanda Azureus ve dosya düzenleyici gibi diğer RCP uygulamaları için de hizmet vermektedir. Bir sonraki katman, bir RCP uzantısı kümesi olan tutulma kendisidir: Editörler, Paneller, Beklentiler, CVS Modülü ve Java Geliştirme Araçları Modülü (JDT).

Eclipse - Her şeyden önce, Grup Gelişimini hedefleyen bir Java ICR: CVS desteği, tutulma arzına dahil edilir, birkaç SVN modülü aktif olarak gelişmektedir, VSS ve diğerleri için destek var. Ücretsiz ve kaliteli sayesinde, birçok kuruluştaki tutulma, uygulamalar geliştirmek için kurumsal bir standarttır.

Eclipse'nin ikinci amacı, popülerlik kazandığından daha yeni uzantılar geliştirmek için bir platform görevi görmesidir: Herhangi bir geliştirici, Eclipse'yu modülleriyle genişletebilir. QNX mühendisleri tarafından "IBM" ile geliştirilen C / C ++ geliştirme araçları (CDT) ve COBOL, FORTRAN, PHP dilleri ve çeşitli geliştiricilerden diğerleri için araçlar vardır. Birçok uzantılar Çarşamba günü, veritabanları, uygulama sunucuları vb. İle çalışmalarını yöneticiler tarafından tamamlar.

Şekil 69. . Ana Pencere Arabirimi Eclipse

Eclipse, Java'da yazılmıştır, bu nedenle tüm ortak platformlar için geliştirilen SWT kütüphanesi hariç, platformdan bağımsız bir üründür. SWT kütüphanesi, Java için standart bir salıncak kütüphanesi yerine kullanılır. Hız ve doğal sağlayan altta yatan platforma (işletim sistemi) tamamen dayanır. görünüm Kullanıcı arayüzü, ancak bazen farklı platformlarda uygulamaların uyumluluğuna ve sürdürülebilirliğine neden olur.

Eclipse'nin temeli genişletilmiş müşteri platformudur (İngilizce'den RCP. Zengin müşteri platformu). Bileşenleri:

OSGI (Standart setin sarf malzemesi kümesi (Bundles));

SWT (Taşınabilir Widget Toolkit);

Jface (dosya arabellekleri, metinle çalışma, metin editörleri ile çalışma);

Çalışma ortamı tutulması (paneller, editörler, projeksiyonlar, ustalar).

Bir diğer popüler ücretsiz ISR, KDevelop'dur (http://www.kdevelop.org, Şek. 70). KDevelop (ENG. KDEVELO) - UNIX benzeri işletim sistemleri için ücretsiz yazılım geliştirme ortamı. Proje 1998'de başladı. KDevelop GNU Lisansı (Genel Kamu Lisansı) göre uygulanır.

Şekil 70. Arayüz KDevelop

KDevelop, derleyici içermez, bunun yerine, yürütülebilir bir kod oluşturmak için herhangi bir derleyici kullanır.

Geçerli kararlı sürüm destekler çok sayıda Cehennem, Bash, C, C ++, Fortran, Java, Pascal, Perl, PHP, Python, Ruby ve SQL gibi programlama dilleri.

CDEvelop, yerleşik bileşeni kullanır - bir metin editörü - KParts teknolojisi aracılığıyla. Ana Editör Kate.

Fonksiyonlar Kdewelop:

Kaynak kodun aydınlatılması, kullanılan programlama dilinin sözdizimini otomatik olarak belirlenen;

Otomobile, Qmake gibi farklı tiplerin projeleri için Proje Yöneticisi, QT ve Karınca Technologies'e dayanan projeler için Java'yı temsil eden projeler için;

Sınıf Navigator (Sınıf Tarayıcı);

GNU Derleyici Koleksiyonu için ön uç;

GNU hata ayıklayıcısı için ön uç;

Sınıfları ve platformu (çerçeve) oluşturmak ve güncellemek için yardımcılar;

Otomatik kod tamamlama sistemi (Si / C ++);

Kaynak Kod Belgeleri Sistemi (Doxygen) için Dahili Destek;

Versiyon kontrol sistemlerinden biri: SCM, CVS, Subversion, Perforce ve Clearcase;

Hızlı açık fonksiyon, dosyalar üzerinden hızlı bir şekilde gezinmenizi sağlar.

KDevelop Bu bir "eklenti" mimarisidir. Geliştirici değişiklik yaptığında, yalnızca eklentiyi derlemelidir. Hangi eklentilerin yüklenmesi gerektiğini belirten profilleri kaydetmek mümkündür.KDevelop yerleşik ile birlikte verilmez metin düzeltici, Bir eklenti olarak bağlanır.KDevelop Programlama diline ve başladığı platformdan, KDE, GNOME ve diğer birçok teknolojiyi destekleyen platformdan bağlı değildir (örneğin, QT, GTK + ve WXWIDGET'ler).

Dahili hata ayıklayıcıKDevelop Kesme noktaları ve iz gibi tüm hata ayıklama araçlarıyla grafiksel olarak çalışmanızı sağlar. Konsol GSKİ'sinin aksine, dinamik olarak yüklenebilir eklentilerle de çalışabilir.

Şu anda, bu IDE için yaklaşık 50 ila 100 eklenti var. En faydalı - kalıcı proje çapında kod yer imleri arasında, kod kısaltmaları, metni hızlı bir şekilde dağıtmanıza olanak tanır, kaynak formatı, hangi tarz kılavuzun kaydedilmesi, düzenli ifadeleri ve proje çapında arama / değiştirme aramasını arayın.

En son ICRMicrosoft Visual Studio. (Microsoft Visual Studio, Şek. 71). Aslında,Microsoft Visual Studio. entegre bir yazılım geliştirme ortamı ve bir dizi başka araç içeren Microsoft'un ürünleri hattıdır.


Şekil 71. Microsoft Visual Studio Arayüzü

Microsoft Visual Studio. Aşağıdakilerden bir veya daha fazla bileşen içerir: Visual Basic.net, Visual C ++, Visual C #, Visual F #, Microsoft SQL. Sunucu, Visual Interdev, Visual J ++, Visual J #, Görsel foxpro., Görsel kaynak güvenli.

Microsoft Visual Studio'nın ana avantajlarından biri yüksek kalite Geliştirme ve açıklama sürecini belgelemek olası sorunlar MSDN kütüphanesinde. Bununla birlikte, gelişmenin karmaşıklığına adanmış profesyonel parça için en ilginç olanı sadece İngilizce olarak bulunmaktadır.

Microsoft ayrıca Visual Studio Express ürününün ücretsiz bir analogu sunar.

Şu anda, her programlama sistemiyle, ayrı araçlar (örneğin, derleyici), bu programlama dilinde PS'nin geliştirilmesini ve desteğini destekleyen veya belirli bir konu alanına yönelik bazı mantıksal olarak ilişkili yazılım ve donanım araçları kümesiyle ilişkilidir. Böyle bir bütünlük arayacak pS'nin geliştirilmesi ve bakımı için enstrümantal çevre. Bu tür araçsal ortamlar için, öncelikle, hem yazılım ve donanım araçlarının hem de ikinci olarak, belirli bir oryantasyon veya belirli bir programlama dilinin veya belirli bir konu alanına kullanılması karakteristiktir.

Alet ortamının, geliştirilen PS'nin uygulanacağı bilgisayarda çalışmak zorunda değildir. Genellikle, bu kombinasyon oldukça uygundur (yalnızca kullanılan bilgisayarın gücü buna izin verirse): Farklı tiplerde bilgisayarlarla uğraşmak gerekli değildir, takım ortamının bileşenleri gelişmiş PS'ye dahil edilebilir. Bununla birlikte, PS'nin uygulanacağı bilgisayar, bu PS'nin geliştiricileri için kullanılamazsa (örneğin, sürekli olarak kesilemeyen veya hala geliştirilme aşamasındadır) veya geliştirme için rahatsız edici PS veya bu bilgisayarın gücü, gerekli takım ortamının işleyişini sağlamak için yetersizdir, daha sonra sözde kullanılır alet nesnesi yaklaşımı. Bunun özü, PS'nin bir bilgisayarda geliştirilmesi, denilen enstrümantalve denilen başka bir bilgisayarda uygulanacak. hedef(veya nesne).

Üç ana enstrümantal medya sınıfı ve PS'nin bakımı vardır (Şekil 16.1): ·

programlama ortamı, ·

bilgisayar Teknolojisi İşyerleri, ·

programlama tekniği Enstrümantal sistemler.

Programlama ortamıesas olarak programlama işlemlerini (kodlama), PS'yi test etmek ve hata ayıklamak için tasarlanmıştır. Bilgisayar Teknolojisi İşyeripS (spesifikasyonların) gelişiminin erken evrelerinin ve teknik özelliklere ilişkin programların otomatik üretilmesine odaklanmıştır. Programlama Teknolojisi Aracı SistemipS'nin tüm yaşam döngüsü boyunca tüm gelişme ve bakım süreçlerini desteklemesi amaçlanmıştır ve uzun ömürlü olan büyük yazılım sistemlerinin kolektif geliştirilmesine odaklanmıştır. Bu tür sistemler için, eskort maliyeti genellikle gelişim maliyetini aşmaktadır.

İncir. 16.1. PS'nin geliştirilmesi ve bakımı için enstrümantal ortamların ana sınıfları.

  1. Enstrümantal programlama ortamları.

Programlama aracı ortamı, öncelikle belirli bir programlama dilinde programlar, bu dildeki programları derleme veya yorumlamanın yanı sıra, bu dilde derleme veya yorumlamanıza izin veren araçlar, aynı zamanda elde edilen programları test edin ve hata ayıklamanızı sağlayan bir metin editörü içerir. Ek olarak, örneğin statik veya dinamik program analizi için başka aletler olabilir. Bu araçlar, standart dosya sistemi özelliklerini kullanarak düzenli dosyalar aracılığıyla birbirleriyle etkileşime girer.

Aşağıdaki programlama aracı ortamları sınıfları ayırt eder (bkz. Şekil 14.2): ·

genel alanlar ·

dil odaklı çevre.

Programlama Aracı Ortamı genel amaçlıfarklı programlama dillerinde program geliştirmeyi destekleyen bir dizi yazılım araçları (örneğin, bir metin editörü, bir bağlantı editörü veya hedef bilgisayar dili tercümanı) içerir ve genellikle kullanılan yeteneklerin bazı genişlemesini temsil eder. işletim sistemi. Böyle bir ortamda programlama için, herhangi bir programlama dili bu dile yönelik ek araçlar gerektirecektir (örneğin, derleyici).

Şekil.16.2. Programlama aracı ortamının sınıflandırılması.

Dil odaklıprogramlama aracı ortamı, herhangi bir programlama dilinde PS'nin geliştirilmesini desteklemek ve bu dilin bilgisi böyle bir ortam inşa etmede önemli ölçüde kullanılmıştır. Sonuç olarak, böyle bir ortamdaki özellikleri dikkate alan yeterince güçlü olanaklar olabilir. bu dilin. Bu ortamlar iki alt sınıfa ayrılır: ·

yorumlayıcı medya, ·

sözdizimsel olarak kontrol edilen ortamlar.

Tercümanlıkprogramlama aracı ortamı, bu programlama dilinde programların yorumlanmasını sağlar, yani. Her şeyden önce, bu ortamın yönlendirildiği programlama dili tercümanı. Bu ortam, yorumlayıcı bir türün (LISP gibi) programlama dilleri için gereklidir, ancak diğer diller için de kullanılabilir (örneğin, bir takım bilgisayarında). Sözdizimi tarafından yönetilenprogramlama aracı ortamı, yönlendirildiği programlama dili sözdizimine dayanır. Böyle bir ortamda, bir metin yerine, bir sözdizimi tarafından yönetilen düzenleyici kullanılır, kullanıcının farklı sözdizimtik yapıların farklı kalıplarını kullanmasına izin verir (bunun bir sonucu olarak, program geliştirilen program daima sözdizimsel olarak doğru olacaktır). Programla aynı anda, böyle bir düzenleyici şekil (bilgisayarın hafızasında) başka aletler tarafından kullanılabilecek sözdizimi ağacı.

Makefile görünümü, programlama sistemleri oluşturmak için ilk adım olarak kabul edilebilir. Makefile dili oldu standart demekTüm geliştiricilerin derleyicileri için birleştirildi. Rahat, ama oldukça karmaşık teknik ÇözümGeliştiriciden yüksek derecede hazırlık ve profesyonel bilgi gerektiren, çünkü komut dilinin kendisi karşılaştırılabilir olduğu için basit dil Programlama.

Geliştirme araçlarının böyle bir yapısı yeterince var uzun zamandırBazı durumlarda, bu gün için kullanılır (özellikle sistem programları oluştururken). Yaygın olanı, geliştirme araçlarının tüm yapısının, bilgisayardaki programların toplu olarak yürütülmesi için çok uygun olduğu gerçeğinden dolayı, UNIX Tipi İşletim Sistemleriyle ana bilgisayar döneminde yaygın kullanımına katkıda bulunan bilgisayardaki programların toplu olarak yürütülmesi için çok uygundur.

4.5. Entegre Geliştirme Ortamları

  1. Visual Studio 97, Visual Studio'nın ilk yayımlanan versiyonudur. İlk defa, geliştirme yazılımının çeşitli araçları birlikte toplandı. Sistem iki versiyonda serbest bırakıldı: Profesyonel ve işletme. Visual Basic 5.0, Visual C ++ 5.0, Visual J ++ 1.1, Visual FoxPro 5.0, ilk kez ortaya çıkan ASP geliştirme ortamı - görsel interdev. Visual Studio 97, farklı programlama dillerinde geliştirmek için tek bir ortam oluşturma denemesiydi: Visual C ++, Visual J ++, Visual InterDev ve MSDN, Geliştirici Studio adlı bir ortam kullandı. Visual Basic ve Visual FoxPro, bireysel gelişim ortamlarını uyguladı.
  2. Visual Studio 6.0 Haziran 1998'de çıktı. Bu, Win9x platformunda çalışan, Visual Studio'nın en son sürümüdür. Hala Visual Basic kullanan programcılar arasında hala popüler. Bu sürüm, 5.NET platformu görünmeden önce Microsoft'tan Windows'ta uygulamaların geliştirilmesi için ana ortamıydı.
  3. Visual Studio .NET (Rainier Code Adı; Dahili Sürüm 7.0) Şubat 2002'de yayınlandı (.NET Framework 1.0). Visual Studio. NET (2002) için Service Pack 1 Mart 2005'te yayımlandı
  4. Visual Studio .NET 2003 (kod adı Everett; dahili sürüm 7.1) Nisan 2003'te ortaya çıktı (.NET Framework 1.1). Visual Studio .NET 2003 için servis paketi 1 Eylül 2006'da yayınlandı
  5. Visual Studio 2005 (Whidbey; Dahili Sürüm 8.0 kod adı) Ekim 2005 sonunda piyasaya sürüldü, son olarak Windows 2000'de resmi olarak çalışıyor (.NET Framework 2.0). Kasım 2005'in başlarında, Express'in baskısında bir dizi ürün de yayınlandı: Visual Basic 2005 Express, Visual Basic 2005 Express, Visual C # 2005 Express ve diğerleri. 19 Nisan 2006'da, Express Editorial ücretsizdi. . VS2005 için Service Pack 1 ve 14 Aralık 2006'da yayınlanan tüm Express-Editions. SP1 için ek yama, belirleyici problem Uyumluluk S. Windows Vista. 6 Mart 2007'de yayınlandı
  6. Visual Studio 2008 (Orcas kod adı), 19 Kasım 2007'de, aynı zamanda X.NET Framework 3.5'te piyasaya sürüldü. Windows Vista için başvurular oluşturmayı amaçlar (ancak hem XP'yi hem de hem de Office 2007 hem de Web uygulamalarını destekliyor. LINQ, C # ve Visual Basic dillerinin yeni sürümlerini içerir. Stüdyo Visual J # girmedi. 28 Ekim 2008'den itibaren, versiyonu Rusça ilk kez kullanılabilir.
  7. Visual Studio 2010 (Ultimate - Rosario için Hawaii Kodu adı), 12 Nisan 2010'da S.NET Framework 4.0 ile birlikte yayınlandı. Visual Studio, C # 4.0 ve Visual Basic .NET 10.0'ın yanı sıra önceki sürümlerde yok olan F # dilini de içerir.

Çarşamba Visual Studio 2010, kısa bir süre boyunca etkili bir şekilde karmaşık uygulamalar oluşturmanıza olanak sağlar. Bu ortamın modeli önemli ölçüde daha zengindir veya bu kavramları bir çözüm (çözüm), proje, ad alanı (ad alanı) ve montaj (montaj) olarak kullanır. Proje kavramı, örneğin, birçok medyada bulunur. Çarşamba Delphi. Proje dosyası, kaynak dosyaların ve sistemin bir uygulama oluşturacağı diğer kaynakların numaralandırılmasını içerir. Visual Studio çevre çözümü, birbirinden bağımlı veya bağımsız olabilecek çeşitli projeleri içerir. Dikkat çekmek başlangıç \u200b\u200bprojesi. Meclis kavramı, Genel Dil Yönetici Çevre CLR'sinden (Ortak Dil Çalışma Zamanı) gelir. CLR ortamı, uygulamaların yazma ve yürütme sürecinin temel olarak farklı hale geldiği en devrimci buluşdur.

Derleyici, kaynak kodlu dosyaları ara MSIL dilindeki kodlara dönüştürür ( Microsoft Ara Dil.). Meta verileriyle birlikte, bu kodlar, projenin türüne bağlı olarak bir uzatma exe veya DLL dosyasına sahip PE dosyaları (portal çalıştırılabilir) ile kaydedilir. Bir modül, meta veri içermeyen netmodule uzantısıyla da elde edilebilir.

Toplam 12 tür proje vardır. PE dosyalarını yüklerken "Anında", gerçek işlemcinin komutlarına yayınlanır. Çerçeve Çerçevesi. Program uygulaması sağlayan NET, Visual Studio'ya dahil değildir, ancak işletim sistemi üzerindeki bir kurulumdur. Bu, sanal java-mashina analogudur.

Meclis, uygulamaları dağıtmak için minimum bir birimdir. Her tür bir tertibat, yazarın dijital imzası tarafından tanımlanan benzersiz bir tanımlayıcı ile karakterize edilir ve benzersiz numara sürümler. Montajlar ve isimler boşlukları arasında aşağıdaki oran var. Meclis birkaç ad alanı içerebilir. Aynı zamanda, ad alanı birkaç montaj alabilir. Meclis, bileşiminde hem bir hem de manifest veya montaj açıklamasında birleştirilen birkaç dosyaya sahip olabilir.

C # düzeyinde, Java'daki paketlere benzeyen ad alanı, projeyi yapılandırmaya hizmet ediyor. Ad alanı bir veya daha fazla sınıf içerir. Bir kaynak dosyada, birkaç ad alanı belirlenebilir ve aynı anda bir ad alanı birkaç dosyada belirlenebilir. Ve sınıfta bile birkaç dosyada bulunabilir (kısmi sınıflar).

Acemi programcılar için, böyle bir fırsatın bolluğu önemli zorluklara neden olabilir. Ortamın boyutu ve karmaşıklığı, üç ortamın aşağıdaki karşılaştırmalı tablosu ile değerlendirilebilir.

İlginç ve umut verici görünüyor Çalışma ortamı Eclipse IBM'de geliştirildi. Projenin ilk hedefi, çeşitli platformlar için farklı dillerde programları geliştirmek için kurumsal bir IDE standardı oluşturmaktı. Sonra proje Eclipse olarak yeniden adlandırıldı ve açık erişimde vurgulandı. Lisans, kod ve geliştirme ortamının ücretsiz kullanımı ve aynı zamanda kapalı ticari ürünler oluşturmayı sağlar. Bunun sayesinde, sistem yaygınlaştı ve birçok kuruluş için uygulamalar geliştirmek için kurumsal bir standart haline geldi.

Ekosistem Eclipse, yaygın dağıtım yılı 2007 olan konsolide teknolojiler anlamına gelir. Sistem tarafından uygulanır java dili ve başlangıçta Java dili için Çarşamba günü tam teşekküllü bir entegre göstermiştir. Gelecekte, diğer diller desteklenmeye başladı. İlk sürümler uygunsuzdu, çünkü hedef ürün aşırı işlevsellik içermek zorunda kaldı. Üçüncü versiyondan başlayarak, tüm sistemin mimarisi, modüllerin ayrılmasını ve aralarındaki ilişkiyi en üst düzeye çıkarmak için elden çıkarıldı. Aynı zamanda, kararlaştırılan sınıf setlerinden oluşan tutulma modülleri, yardım alt sistemleri, ürün güncellemeleri, öğrenme, sunumlar gibi tüm alt sistemlerin işlevselliğini verdi. Çok dilli destek Ve bircok digerleri. Uygulamayı geliştirerek, hazır serbest bileşenleri birbirine bağlayan işlevselliği giderek artırabilirsiniz. Eclipse terminolojisinde, bu bileşenler "eklenti modülleri" veya "eklentiler" (eklentiler) denir. Bu tür bir teknoloji, gelişmiş çalışma ortamlarında tipik hale gelir. Bu teknolojiye dayalı platform adlandırıldı

Yazılım ajanlarının geliştirilmesi için araçsal araçlar, belirli bir uygulama türünün serbest bırakılması için belirli bir mimarinin serbest bırakılması için optimize edilmiş bir ortam oluşturur.

Diğer bina yazılımı ajanlarının diğer yollarından gelen ana ayırt edici takım ortamları, çevrenin, konu alan analizi, tasarım aşamaları, geliştirme, doğrulamanın yanı sıra dağıtım ve eşlik hedeflerinin aşamaları da dahil olmak üzere tam bir yazılım ajanı geliştirme döngüsü sağlamasıdır.

En ünlü ve popüler ajan geliştirme ortamlarını seçebilirsiniz:

Ave (Ajan Bina Ortamı);

Listelenen enstrümantal çevre ajanı geliştirme ortamlarında daha ayrıntılı olarak düşünün.

1. AgentBuilder aracı ortamı, geliştiricilere bir geliştirme araçları ve bir Ajan uygulamasının bir hesabı geliştirmelerini sağlar. AgentBuilder ortamında akıllı bir ajan oluşturma teknolojisi, Şekil 2.1'de sunulmuştur.

İncir. 2.1

Geliştirme ve uygulama ortamı, Java Çarşamba gününün kurulduğu tüm platformlarda çalışmalarını sağlayan Java programlama dilinde yazılmıştır. AgentBuilder Toolkit kullanılarak oluşturulan ajan, bir Java sanal makinesiyle (sürüm 1.1 ve üstü) herhangi bir platformda gerçekleştirilebilir.

Geliştirme araçları, geliştirilen Mac'in konu alanını analiz etmek için uygun bir grafiksel arayüzdür ve geliştirilen ajanların istenen davranışlarının özellikleridir. grafik editörleri. Bu enstrümantal ortamda, çok ajan bir uygulamayı oluşturma adımları sağlanmıştır:

ajansın tanımı;

yetkili otorite acentesini ve zihinsel model (inanç, yetenek, yükümlülükler, davranış kuralları) uygulamak için kullanılan ontolojinin yapımını sağlayan ajanlar oluşturma;

bu ajansın ajanlarının etkileşiminin özellikleri için protokollerin oluşturulması;

nesil Özel dosya Ajanın açıklamaları, nihayetinde, nihayetinde, zihinsel modeli ve aracının istenen davranışını temsil eden açıklamalar.

Ajan uygulamasının çalışma zamanı, bir ajan yapmak için bir ajan ve işlemcisinden oluşur. İşlemci, ajanın davranışının davranışlarının, mevcut zihinsel modelin ve gelen mesajların tanımladığı ajanın inançları ile davranış kurallarını karşılaştırarak etkili mantıksal çıktı prosedürlerini kullanır. Argümanlara dayanarak, işlemci, ajanın yetkisi ile ilgili bazı eylemleri gerçekleştirir. Ajan programı, projenin kurulu kütüphanesiyle birlikte bir radl dosyası formundaki bir ajanın tanımıdır. İşlemci ile birlikte sarılmış bir program gerçekleştirilen bir ajan oluşturur. Çalışma zamanı ortamını çalıştırırken, bir ajan işlemcisi, bir proje sınıfı kütüphanesi (Proje Aksesuarları Kütüphanesi) olarak sunulan rady modelini ve ajanın bir ontolojisini kullanan bir ajan işlemcisi başlatılır. Bu, ajanın tanımını gerektirir (akıl yürütme kabiliyetine sahip bir ajan sağlayan radl dosyası) ve Proje Sınıfları Kütüphanesi (PACS Project Project Project programının Destek sınıfları) - bu nesneler kullanılır. Görevin konusu alanını görüntülemek için.

2. Arı Gent ortamında, Ajans odaklı uygulamaların geliştirilmesi, Java dilinde uygulanan MAC - kütüphanesini kullanarak dağıtılmış sistem ajanlarının davranışını belirlemek için metodoloji tarafından yapılır. Arı gent sistemi tarafından sunulan arı gent sistemine dayanarak, her ajanın davranışını bir devletin grafiği olarak açıkça yapılandırmak ve ajanların etkileşim protokollerini belirlemek mümkündür. Ajan hallerini sayım durumları, ajans odaklı bir analiz aşamasında (örneğin Gaia metodolojisine göre) düzenli ifadeler şeklinde tanımlanan rollerin canlılığının temelinde inşa edilmiştir. Ajan davranış grafiğinin bir parçası örneği, eğitim sisteminin öğrencisi Şekil 2.2'de gösterilmiştir.


İncir. 2.2.

Devlet grafiği, ajanın olabileceği tüm durumların adlarını kaydeder. Gelişimin bir sonraki aşamasında, her durum için sınıflar tanımlanır. Sütundaki her durum, Java dilinde uygulanan Toshiba Telli Kütüphanesinden AwRipstate sınıfının bir örneğidir. Sınıf Tasarımcısı'nda, öncesi ve sonrası koşullar belirlenir, yani. Durum sınıfı tarafından tanımlanan eylemleri gerçekleştirmek ve aşağıdaki duruma geçişi belirlemek için geçerli durumda yürütülmesi gereken koşullar. Daha sonra her durumda yapılacak olan eylemler (kendi ajanları dahil ve diğer ajanlarla etkileşim işlemleri dahil) belirlenir. İlk ve son durumlar için "init" ve "son" sınıfları da oluşturulur. Ajan diğer ajanlarla etkileşime girerse, belirli durumlar özellikleriyle, arı-gent sistemi, etkileşim protokolünün tanımını sağlar. Protokol, bu durumda tüm ajan davranış hatlarını yansıtmalıdır. Her eyalette, ajanın faaliyetleri planlanan davranış çizgisini uygulamak için etkileşim protokollerinin gerçekleştirilmesini amaçlamaktadır. Mac'teki her ajanın faaliyetleri, örneğin Gaia metodolojisi üzerindeki ajan odaklı bir analiz aşamasında geliştirilen bir hizmet modeli belirlenir.

Her davranış çizgisi, ajanların içeriğinin içeriği ve onların sıraları ile etkileşim çizelgesi tarafından belgelenir. Şekil 2.3, öğrencinin ajanının disiplini incelemesi için etkileşim şemasının bir örneğini göstermektedir. Mesaj formatı, KQML iletişim dilinin gelişimi olan XML / ACL dili ile belirlenir.


İncir. 2.3. "Disiplin Çalışması" durumunda ajan öğrencisinin etkileşimi grafiği

Böylece, geliştirilen mantıksal modellere dayanarak, arı-gent sistemi, Ajanların belirli bir "yaşam döngüsü" sağlayan gerekli program koduyla tamamlanan Java dilinde çok ajan bir yazılım program kodunun iskeletini otomatik olarak üretir. Arı gent sisteminde, ajan geliştirücünün aksine, ajanların davranışlarını tarif ederken, ajanın dış olaylara ve iç durumuna tepkisini belirlemek için kurallar kullanılmaz.

3. JACK TM Akıllı Ajanlar (JACK), Java programlama diline dayanan ajans odaklı bir geliştirme ortamıdır. Jack, Java sözdizimi tasarımlarının, akıllı bir ajan kavramıyla ilişkili özelliklerin yazılımı uygulaması için genişleme biçiminde bir Java eklentisidir. Jack Agent Programlama Dili, aşağıdaki özellikleri sunar:

yeni temel sınıfları, arayüzleri ve yöntemleri tanımlar;

yeni açılış odaklı sınıfları, tanımları ve operatörleri desteklemek için Java Syntax'ı genişletir;

acent odaklı bir yazılım sistemi tarafından istenen yürütme modelini desteklemek için anlambilimin genişlemesini (yürütülürken özellikler) sağlar.

Tüm dil uzantıları, dili, bir ajans odaklı programlamada mümkün olduğunca genişletilebilir ve esnek hale getiren eklenti olarak uygulanır.

Sınıflar düzeyinde 5 ana yapı tanıtıldı:

jack'deki entelektüel varlıkları simüle eden ajan;

tüm fonksiyonel bileşenlerde (olaylar, planlar, birçok inanç ve diğer yetenekler), ajanlar tarafından kullanılmak üzere toplanan yetenek;

ajanın cevap verebilmesi gereken durumları ve mesajları modelleme için bir olay;

ajanın bu olayı nasıl yönettiği bir prosedür tanımlamayı simüle etmeyi amaçlayan bir plan (ajan tarafından gerçekleştirilen tüm eylemler önceden sağlanır ve planlarında açıklanmıştır);

birçok mahkumiyet, ajanın bilgisini, kapalı veya açık bir dünyanın anlambilimine bağlı inanç biçiminde modellemek için. Bu tasarım, ajanın ilk siparişin ilişkisel tuples biçiminde inancını temsil eder ve mantıksal tutarlılık sağlar.

İstenen ajan davranışının, bu sınıflar tarafından tanımlanan modüler ünitelerde kapsüllendiği ve sınıflar, bağımsız bir uygulama için gerekli tüm yapıyı ve Jack dilinde programcıların kullanabileceği yöntemleri içerdiği belirtilmelidir. Yukarıda belirtilen sınıflar arasındaki ilişkiyi kurmak için bir dizi bildirim var.

Yukarıda belirtilen sınıflar arasında ilişkiler kurmak için bir dizi bildirim sağlanır. Aşağıda, krikoya yazılan planın tasarımını uygulamak için kodun bir parçasıdır (krikoya ait sözdizimi elemanları kalın harflerle vurgulanır):

pLAN CANICTRESPONSE Planı Uzattı (

#Handles olay robotmoveevent moversponse;

# Robotinterface robotunu uygulayan ajan;

statik Boolean (Robotmoveevent EV)

bağlam () () (...)

# sızlanma yöntemi

Bu örnekte, program aracısının tanımlanmış program eylem planı, temel işlevlerini Jackplan sınıfından miras alır. Ek olarak, Jack'in planları için birden fazla bildirim kullanarak, planın nasıl kullanılacağı belirtilir. Her bir bildirinin, bunları Java sözdizimi elemanlarından ayırt etmek için "#" sembolünden önce gelir. #Handles Etkinlik Beyanı, bu planın cevap verdiği bir hedefi veya etkinliği tanımlar. Beyanname # Bu planı kullanabilen enshrines ajanını uygular. Örnekte plan, yalnızca belirtilen arayüzü (Robotinterface) uygulayan bu ajanlar tarafından gerçekleştirilebilir. Figürlü parantezler, her zamanki java kodunu içerir.

Beyannameye ek olarak, planı uygularken ajan tarafından yapılan argümanları ve davranışları tanımlamak için Jack Dili, önceki sembol "@" sembolü tarafından tahsis edilen akıl yürütme yöntemlerini sağlar.

Ajan odaklı bir şekilde yürütülmesini desteklemek yazılım sistemi Jack, aşağıdaki semantiği sağlayan aşağıdaki ek dil uzantılarını sağlar:

Çarpma çekirdeğe inşa edilmiştir ve programcının kontrolü altında kaldırılır.

Acentelerin çalışmaları, ajanların birçok plana sahip olduğu ve inanç açıklamalarına erişebilecek şekilde gerçekleştirilir. Acenteler, ne zaman ortaya çıktıklarında olay yönetimi görevlerinde planlarını yerine getirir, gerektiğinde inançlarını karşılaştırırlar. Bu planlar, ajan, zaman alıcı ve zor bir cevap gerektiriyorsa, alt onaylarını başlatabilecek alt koltukları başlatabilir.

Yeni bir veri yapısı tanıtıldı, adlandırılmış mantık elemanı (mantıksal üye), değeri, sorgunun ajan inançları kümesinin sonucuna bağlıdır.

İstenen sonucu elde etmek için bunun için mantıksal unsurları kullanarak çok sayıda ajan mahkumiyetini yerine getirme yeteneği. Talepin başarısı varsa, mantıksal eleman istenen değeri içerir.

JACK Development Çevre Bileşeni (Jack Geliştirme Ortamı), çevrenin program kodunun iskeleti ürettiği ve kodda yapılan değişikliklerin diyagramlarda görüntülenmesini sağladığı genel bakış diyagramları çizmeyi mümkün kılar.

Jack'te yaratılan ajanlar, entelektüel ajanlarda doğal bir mimariye sahiptir. Böylece, inançlara, arzularına ve niyetlerine dayanarak, Ajan BDI-Mimarisinin teorik modeline uygun olarak makul davranışları modellemek mümkündür.

BDI mimarisine göre, Jack'in akıllı ajanları, proaktivite (odak) ve reaktivite (olay gönderilen), giriş sinyallerine göre mantıklı davranış gösterebilecek özerk yazılım bileşenleridir. Böyle bir ajanın her biri şunları vardır:

mahkumiyetler (bu, dünyadaki veri setidir);

arzular (üzerine tepki verecek bir dizi etkinlik ve bir dizi amaç, arzu edebileceği başarılar);

niyet (ortaya çıkan hedefleri ve planları nasıl yönetebileceğini açıklayan bir dizi planlar).

Temsilci bir kişiliğin analoğu olarak kabul edilirse, planlar kümesi, belirli bir olay meydana geldiğinde ajanın yürütülmesi gereken adımları veya belirli bir sonucu elde etme arzusunu açıklar. İlk bakışta, ajanın davranışı, kendi içlerinde var olan tüm sınırlamalarla uzman sistemlerin eylemlerine benzer görünebilir. Bununla birlikte, ajan odaklı sistemler arasındaki temel fark, ajanların makul bir kişilik olarak çalışacağı gibi planları aynı şekilde yerine getirmesi için programlanabileceğidir. Özellikle, ajanların yardımıyla, makul davranışlarla ilişkili aşağıdaki özellikleri uygulayabilirsiniz:

sürdürülebilir odak ajanlar amaçlara odaklanır ve seçilen yöntemlerde bunları elde etmek için değil;

gerçek zamanlı ajanlarda bağlamsal bağımlılık - her seferinde geçerli olan seçenekleri takip edecek ve mevcut koşullara dayanan takip eylemleriyle ilgili kararlar almak;

yaklaşımın doğruluğunun gerçek zamanlı olarak onaylanması - ajan, belirli koşullar doğru olmaya devam edene kadar seçilen eylemleri takip etmesini sağlayacaktır;

eşzamanlılık - Bir ajan sistemi çok iş parçacığıdır. Yeni hedefler ve olaylar ortaya çıkarsa, ajan çoklu görev talebinde öncelikleri belirleyebilir.

Jack App, anent odaklı bir yaklaşımın özelliğini uygulayan bir kaynak kodudur: ajanlar, yetenek, olaylar, planlar, inançlar, görünüm (sorgular) ve ayrıca giriş noktası olan ana () işlevi olan bir Java sınıfı Java sanal makinası için ve diğer Java gerekli dosyalar için. Bu kavramlar için oluşturulan dosyalar, dosyada tanımlanan nesneyle aynı ada sahip olmalıdır. Jack kavramının türünü tanımlayan bir uzantısı var. Jack Agent Compiler, Jack Agent dilinde kaynak dosyalarını Java dilindeki koda dönüştürür, bu daha sonra hedef sistemini gerçekleştirmek için Java sanal makine koduna derlenir.

4. JADE yazılımı (Java Agent geliştirme çerçevesi) çok ajan sistemleri geliştirmek için yaygın olarak kullanılmıştır. Java'da tamamen uygulanır ve akıllı ajanlar oluşturmak için FIPA - standartlarını desteklemektedir. Yeşim ortamı yaratmanın amacı, sistem hizmetleri sisteminde ajanların etkileşimi yöntemlerini standartlaştırarak geliştirme sürecini basitleştirmektir.

Bu hedefe ulaşmak için, Jade, geliştirme ajan sistemlerine bir programcı sunar Aşağıdaki özellikler:

fIPA'ya dayanan ve FIPA uyumlu ajan platformu, önce bir Ajan Platformu (AMS), İkinci, İletişim Kanalı (ACC) ve Dizin Hizmetleri (DF) (bu tür ajanlar otomatik olarak etkinleştirildiğinde) yönetmek için zorunlu sistem ajanları dahil olmak üzere Platform başlatıldı);

birden fazla ana bilgisayar kullanabilen dağıtılmış ajan dağıtılmış ajan platformu ve yalnızca bir Java sanal makinası her düğümde başlar. Acenteler Java Akışları olarak gerçekleştirilir. Ajanın konumuna bağlı olarak, bir mesaj gönderme ve onu alan, ilgili taşıma mekanizması mesajları vermek için kullanılır.

Birden fazla etki alanı desteği - Federasyona dayanan bir dizi FIPA DF ajanı, böylece bir çok sayıda ajan uygular.

Twolevel zamanlamalı çoklu işlenmiş yürütme ortamı. Her jade ajanın kendi akış akışına sahiptir, ancak çok iş parçacıklı modda da çalışabilir. Java Sanal Makinesi, ajanlar veya bunlardan biri tarafından yürütülen görevleri planlıyor.

Nesne Orient Programlama Ortamı. FIPA özelliklerinin karakteristiğinin çoğu, kullanıcı arayüzünü oluşturan Java sınıfları ile temsil edilir.

Etkileşim protokolleri kütüphanesi. Standart interaktif FIPA talebi ve FIPA sözleşmesi-net etkileşimli protokoller kullanılır. Bu tür protokollere göre çalışabilecek bir ajan oluşturmak için, uygulama geliştiricileri, yalnızca belirli etki alanı eylemleri yapmanız gerekirken, uygulamadan bağımsız tüm protokol mantığı Jade sistemi tarafından uygulanacaktır.

Yönetim GUI. Basit işlemler Platform yönetimi, aktif maddeler ve ajan kaplarını gösteren grafiksel bir arayüzle gerçekleştirilebilir. GUI'yı kullanarak, platform yöneticileri ajanları oluşturabilir, yok edebilir, durdurabilir ve özgürleştirebilir, etki alanı hiyerarşileri oluşturabilir ve çok ajan DF Federasyonları (Kolaylaştırıcılar).

Jade, Java RMI teknolojilerine, Java Corba IDL, Java Serileştirme ve Java Yansıma API'sine dayanmaktadır. Mac'in bu ortamdaki gelişimi, FIPA-spesifikasyonların kullanımı ve hata ayıklama ve sistem dağıtımını desteklemek için bir takım araçlar sayesinde basitleştirilmiştir. Bu ajan platformu, farklı işletim sistemlerine sahip bilgisayarlara monte edilebilir ve uzak bir GUI arayüzü aracılığıyla yapılandırılabilir. Bu platformu yapılandırmanın işlemi oldukça esnektir: Programların bir makineden diğerine hareket ettirerek programların yürütülmesi sırasında bile değiştirilebilir. Sistem çalışması için tek gereksinim, Java Run Time 1.2 makinesindeki kurulumdur.

Yeşim ortamının her bir akış örneği bir kaptır, çünkü Birkaç ajan içerebilir. Bir grup aktif kap, bir platform oluşturur. Ana kap, her zaman aktif olmalı ve diğer tüm kaplar, oluştururken onlara kaydedilmelidir. Bu nedenle, platformda çalışan birinci konteyner ana kaptır ve diğer tüm diğeri düzenli kaplardır ve ana kabınlarının üzerinde bulundukları yerlerde de talimatlar almalıdır. Ağda bir başka ana kap başlatılırsa, yeni düzenli kapların kayıt olma yeteneğine sahip olduğu başka bir platformu temsil eder. Şekil 2.4 Yukarıdaki platform ve konteyner kavramlarını göstermektedir ve sırasıyla üç ve bir kaptan oluşan iki yeşim platformlu bir komut dosyası gösterir.


İncir. 2.4. Çarşamba "Varlığı" Yeşim Acenteleri

Jade ajanlarının benzersiz isimleri olmalı, birbirlerinin isimlerini tanır ve bunun sayesinde, gerçek konumlarından bağımsız olarak doğrudan iletişim kurabilirler. Tek bir kabın içinde (örneğin, A2 ve A3 ajanları), bir platformdaki (örneğin, A1 ve A2) veya çeşitli platformlarda (örneğin, A4 ve A5) içindeki çeşitli kaplarda. Ana kap, normalden bir ajan yönetim sistemi ve ana konteyner başlatıldığında otomatik olarak başlatılan bir yönlendirici içerisinde farklıdır. AMS Agent Yönetim Sistemi (Ajan Yönetim Sistemi), platformdaki "güç" (AMS üzerinden istenen uzak kaplarda ajanlar oluşturma / silme) ve ajan adlandırma hizmeti sunar. "Sarı Sayfalar" hizmetini sağlayan DF Dizin Yönlendiricisi (dizin kolaylaştırıcı), hedeflerinize ulaşmak için gereken gerekli hizmetleri elde etmek için, diğer ajanların bir ajanını bulmaya yardımcı olur.

İletişim kurmak için, çevre mimarisi, JADE'nin bir kuyruk yarattığı ve her ajan için özel olan ACL-Mesaj akışını kontrol ettiği esnek ve verimli bir mesajlaşma işlemi sağlar. Ajanlar, çalışma onların birkaç modunun bir kombinasyonunu kullanarak kuyruğa temas edebilebilmektedir: Engelleme, oylama, Çalışma sırasında kırılma ve standart ile karşılaştırılması (eğer arama yöntemleriyle ilgili olarak). Çok ajan platformu araç seti

İÇİNDE son sürümler Sistemler Java RMI, Etkinlik Bildirimi ve IIOP'u kullanın. Ancak, kolayca başka protokoller ekleyebilirsiniz. Ayrıca SMTP, HTTP ve WAP'ı entegre etme yeteneği sağlar. Uluslararası Temsilci Ortamları Geliştiricileri Topluluğu tarafından zaten tanımlanmış olan çoğu iletişim protokolü mevcuttur ve sistemin ve temel durumlarının davranışını belirledikten sonra belirli örneklerde gösterilebilir. Kullanıcı tanımlı içerik dillerinin desteğiyle birlikte, ajan yönetiminin ontolojisi ve aynı zamanda ajanlara uygulanabilen ve sistem tarafından kullanılabilecek ontolojilerin yanıtı. Yeşimin performansını önemli ölçüde genişletmek için, Jess ve Java-Shell Clips ile entegre olmak mümkündür.

Yazılım ajanları geliştirmek için kabul edilen takım ortamının yeteneklerinin karşılaştırmalı bir analizi Tablo 4'te verilmiştir. Şekil 2.5'te bu analizin sonuçlarını göstermektedir.

Tablo 4.

Yazılım ajanlarının geliştirilmesi için takım medyasının olanaklarının karşılaştırmalı analizi

Enstrümantal ortamların fırsatları

Bina ajansları araçları

Proje Yönetimi Araçları

Ajanların özelliklerini belirlemek için grafik ortamı

Bütünlük Kontrol Mekanizması

İnşaat Ontolojisi Araçları

Kitle Geliştirme Kütüphanesi

Ajanın argümanlarının diğer ajanların yetenekleri ve yetenekleri hakkında mekanizması

Resmi dil iletişimi

Ajan Etkileşimi Araçları

Belirtilen yetenekleri olan ajanları belirterek


İncir. 2.5

Görülen enstrümantal ortamların özelliklerinin özelliklerinin karşılaştırılmasına dayanarak, "Ajan" kavramının uygulanması için en güçlü ve esnek teknolojilerin, AgentBuilder aracı ve kriko ortamı tarafından önerilen yaklaşımlar olduğu sonucuna varılabilir.

Jade platformunun ek bir BDI uzantısı - Jadex ortamı olduğu gerçeğine dikkat etmek gerekir. Bu ortam, ajanın "kara kutu" olarak kabul edildiği ve mesaj gönderen bir hibrit reaktif-müzakeratif mimarisini sağlar. İşleme mesajlarının, iç ve dış olayların sonuçlarına dayanarak, müzakerat mekanizması, yeni bir eylem planına geçiş veya eskinin devamı ile ilgili kararlar verir. Mevcut plan, diğer ajanlara mesaj gönderebilir, inanç veritabanını değiştirebilir, yeni hedefler oluşturur ve dahili olaylara neden olabilir. Sistem, Java sınıfları olarak işlenen plan kitaplarını kullanır.

Jadex platformunda akıllı ajanların geliştirilmesinin temel avantajlarından biri, yeni programlama dillerini incelemeniz gerekmediğidir. Bunun yerine, ajanlar, Eclipse ve Intellij Fikir gibi entegre bir geliştirme ortamında (ID'ler) nesne yönelimli programlama temelinde kodlanır.

Bir diğer önemli yönde, bağlayıcı yazılımın bağımsızlığıdır, çünkü Jadex, modülleriyle bağımsız olarak, platformun en üst düzeyinde tamamen diğer senaryolarda kullanılabilir. Ajan odaklı programlar, karar alma sürecinde pasif nesnelere katılan otonom oyunculuk elemanlarının açık özelliklerini ekler. Bu bağlamda, ajanlar, bileşenlerle bireysel etkileşim yetenekleriyle aktif bileşenler sağlar.

JADEX, bağımsız bir karar mekanizması olarak tasarlanmıştır, ajanla birlikte kendi yönetimine göre etkileşimi yapan herhangi bir bağlayıcı sistemle çalışmaya ve mesajların alınması.

Ajan, görevlerin yürütülmesi yerinden bağımsızlığını korurken, hem sunucu tarafında hem de kullanıcı tarafında operasyonları gerçekleştirerek serbestçe göç edebilir.

En iyi bilinen araç sistemlerinin analizi etkili ve uygun fiyatlı bir JADEX ortamı seçmesine izin verilir.

Bu makale, teknoloji geliştirme teknolojilerine ve kendi faaliyetlerinin bireysel alanlarının doğal otomasyonundan, tek bir bütünleşik çözümlere doğal otomasyonundan, yerli ve yabancı şirketlerin çoğunluğu bağlamında geliştirme eğilimlerine adanmıştır.

Modern BT Projelerinde Uygulamaların Geliştirilmesi

Yurtiçi işletmelerin otomasyonunun ve bilgilendirme gelişiminin cari dönemi, şirketin faaliyetlerinin bireysel alanlarının doğal otomasyonundan, varlıklarının tüm yönlerini kapsayan tek entegre çözümlere kadar toplu geçiş süresi olarak nitelendirilebilir. En sık çalıştırılan BT projesinin kompozisyonunu ve hacmini ve uygulamalarının yöntemlerini etkilemedi.

Modern BT Projelerinin Özellikleri

Beş veya yedi yıl önce, benzersiz uygulamalardan ısmarlama ile ilgili projeler yaygındı (ve belirli bir konu alanı için tasarlanan hazır bileşenlere dayanarak, biraz daha az - çözümler) ve geniş bir profilin varlığının erudit programcıları tarafından gerçekleştirildi ve İlgili spesiyaliteler (örneğin, uygulayabilecek) yerel ağlar Ve DBMS), bugün, her şeyden önce, hazır iş uygulamalarının ve ERP sistemlerinin uygulanması için projeler, aynı işletme uygulamalarına dayanarak çözümler temelinde projelerin sık sık uygulandığı yerlerde sipariş edilir. Bunun nedeni, bir yandan, çoğu şirketin liderlerinin, olduğu gibi, şirket onların pazarlama stratejilerinde benzersiz olduğunu iddia ediyor, esasen üretimini ve faaliyetlerinin bireysel yönleri olduğunu iddia ediyor. Oldukça tipik ve diğer taraftan - çoğu şirketin alışılmadık iş süreçlerinin iş uygulamalarının iş uygulamalarının ve uygulamaları için eşzamanlı hizmetlerin sağlanması, eşlik ve güncelleme konusunda çok çeşitli tipik çözümlerin oluşturulması farkındalığı veya ortakların güçleri tarafından.

Gelişimi için projelerde emeğin bölümüne geçiş

Böyle bir durum, sistem entegratörlerinin yakın zamanda (bazen geliştirme bölümlerine sahip olması, yalnızca uygulama geliştirme de dahil olmak üzere, yalnızca uygulama geliştirme de dahil olmak üzere entegre projelerde) ve sadece geliştirme uygulamaları konusunda uzmanlaşmış şirketler ve özellikle geliştirme uygulamaları konusunda uzmanlaşmış olan şirketlerin personel bileşimini etkilemedi. çok az. İkincisinde, uzmanlık sürecinde, bir grup geliştiricinin işletme analistleri, sistem analistleri, programcılar, teknik yazarlar ve proje yöneticileri üzerine bölünmesi süreçleri devam etmektedir. Aynı zamanda, sistem analisti programın nasıl programlanacağını bilmiyor, iş analisti projelere yol açmaz ve proje yöneticisi yalnızca örgütsel çalışma ile meşgul ve uygulamanın mimarisi veya daha fazla konu alanı ile ilgilenmiyor. Bu, küçük münhasır yazılım üretiminden, modern kullanıcılar tarafından talep edilen tipik çözümlerin kütle endüstriyel üretimine geçişin gerçeğini yansıtmaktadır.

Uygulamaları değiştir

Uygulama Geliştirme Projeleri Hakkında Konuşan ve Kompleks BT Projelerinin Uygulamaları Bölümlerinin Gelişimi ile İlgili Konuşan, bugün yalnızca DBMS değil, aynı zamanda diğer ürünler - Office uygulamaları, GIS ve CAD sistemleri de şirket çözümlerinin yaratılmasının anlaşılması gerektiği belirtilmelidir. En alakalı. İş analizi fonları, uzman sunucu ürünleri, kurumsal yönetim sistemleri ve diğer iş uygulamaları. Oluşturulan çözümlerin korunmasına ilişkin gereksinimler, üç yıl önce var olanlardan gözle görülür şekilde farklıdır. Son olarak, önemli eğilimlerden biri, başvurulara olan ilginin büyümesidir. mobil cihazlar ve özerk bir şekilde çalışabilen ve gerekirse, kurumsal bilgi sistemiyle senkronize edebilen uygulamalar.

Son zamanlarda kurumsal kararlar geliştirme alanında bulunan diğer trendlerden, mevcut çözümlerin bir parçası olan veya bireysel araçlar şeklinde mevcut olan iş analizi araçlarındaki şirketlerin artan ihtiyaçları dikkate alınmalıdır. Business analytics uygulamasıyla başvuruların oluşturulmasından dolayı, bugün çok boyutlu depolamadan verilere erişimin standardizasyonu ve bunlara taleplerin dilini alakalı olmaları nedeniyle zordur. Geliştiricilerin elinde zaten yeterli Bu tür görevleri, analitik platformlar (örneğin, Oracle, Microsoft ve Hyperion) tedarikçilerinden ve veri analizi araçlarında (Cognos, Proclarity ve iş nesneleri) konusunda uzmanlaşmış şirketlerden gelen bu görevleri çözme araçları. Ayrıca, iş zekası ve rapor araçları, birt (iş zekası ve rapor araçları, birt), Java uygulamalarının geliştirilmesi için pazarın yarısı olan Eclipse platformu için kullanılabilir.

Müşterinin geliştirme sürecinde katılımı

Uygulama geliştiricilerinin müşterinin iş faaliyetlerinin başarısına katkısının değerlendirilmesi, sürecin kalitesinin bir değerlendirmesi ve bunun sonucunda her zaman tartışmalı bir konu ve yanlış anlama ve çatışmaların bir nedeni olmuştur. Bununla birlikte, son zamanlarda, yetenek vadesi model entegrasyonu (CMMI) modellerinin yanı sıra, bir dizi uygulama geliştirme metodolojisine dayanarak kalkınma süreçlerinin vadesini ve tavsiyelerinin vadesini değerlendirme yöntemleri olmuştur. Uygulamaya başvuruda bulunmayı sağlama yeteneği süreç. CMMI modeli, uygulama geliştirme süreçlerini değerlendirmenize ve iyileştirmenize ve bu tür süreçlerin başarılı örneklerinden yararlanmanıza ve bu modele göre bir veya vade seviyesinin bir değerlendirmesinin kullanılabilirliği, geliştiricinin şirketi finalin kalite güvencesini biliyor Bu şirkette ürün geliştirme sürecinin sonucu.

Çevik metodolojilerin genel adı altında aile gelişimi metodolojileri (özellikle, birkaç ay önce yazdığımız aşırı programlama metodolojisi), proje ekibinin günlük yönetimi için "tarifler" sağlar; Yüksek kaliteli kod elde etmenin bir aracı olarak kendini kanıtlamış olan test edilerek (test -Derik geliştirme, TDD) ile kontrol edilen geliştirme. Bu aile metodolojisinin bir özelliği, müşterinin gelişim sürecinde katılımıdır, böylece onu tüm aşamalarda kontrol edebilir.

En popüler mimariler ve platformlar

Hizmet odaklı mimari

Modern işletmelerin ve kurumsal uygulamaların mimarilerinin BT altyapısının geliştirilmesindeki mevcut trendlerden biri, hizmet odaklı mimariye (hizmet odaklı mimarlık, SOA) geçişidir. Bu mimari, web hizmetleri gibi çeşitli teknolojilerin kullanımına dayanan dağıtılmış uygulamaların ve hizmetlerin oluşturulmasını ve uygulanmasını varsayar (benzer teknolojiler, Eclipse platformu ve Borland ve Microsoft geliştirme araçları tarafından yaygın olarak desteklenir).

En popüler platformlar

Son zamanlarda en dikkat çekici eğilimlerden biri, çoğu uygulamanın yaratıldığı platformların birleşmesinde ortaya çıktığını ve aralarında iki liderin tahsis edilmesi, Windows / Microsoft .NET ve Java / J2EE'dir. Bu, büyük ölçüde, bu platformların uygulama oluşturma kabiliyetinden kaynaklanıyor, bu da kullanıcı arayüzleri oluşturma ve hizmet ve verilere erişim sağlama, modern gereksinimleri karşılama yeteneğinin yanı sıra veri koruma derecesi. Bununla birlikte, belirtilen eğilim uzun zamandır herkes için yeni değildi.

Ayrıca, kurumsal müşterilerin ilgisinin mobil cihazlar için gelişmelere olan hızlı büyümesi nedeniyle, bu uygulama kategorisinin geliştirilmesi ve mobil platformların geliştirilmesi geliştiriciler arasında giderek daha popüler hale geliyor.

Mobil platformların yükselen popülaritesi

Günümüzde, mobil uygulamalar yaklaşık bir buçuk düzine platform için geliştirilmiştir. Araştırma Şirketi'ne göre Evans Veri Corp geçen yılın sonunda gerçekleştirildi. Birkaç yüz geliştiricinin anketi mobil uygulamalarBu alandaki ana liderler, Compact Framework ve Java 2 Mobile Edition (J2ME), ayrıca mobil cihazlar ve gömülü Linux için diğer Microsoft platformları (Şek. 1).

İncir. 1. Popülerlik mobil platformlar Geliştiriciler arasında (Kaynak geliştiricilerin tercihi kablosuz platformları. Dünya çapında geliştiriciler tarafından yapılan kesin sıralamalar - Evans Veri Corp., Eylül 2005)

Bununla birlikte, aynı ankete göre, geliştiricileri araçların kalitesine ve geliştirme topluluğu desteğinin seviyesine göre toplanması açısından, Nokia Series 60 platformu şimdi işgal edilir. Aynı Evans Veri Corp.'nin öngörüsüne göre Mobil platform pazarında gömülü Linux bekleniyor.

Uygulamaların geliştirilmesine gelince windows platformları Microsoft'tan mobil araçlar birkaç yıldır mevcuttur. Borland'ın araçları, Platformlar .NET Compact Framework, Symbian ve J2ME için kullanılabilir. Ek olarak, Sybase'den mobil uygulamaları ve bir dizi başka üreticinin geliştirilmesi için bazı araçlar var.

Geliştirici Araçları Bugün

Geliştiricilerin dar uzmanı, son beş yılda desteklenen destek için aktif gelişime yol açtı. yaşam döngüsü Büyük geliştiriciler ekipleri için amaçlanan uygulamalar. Benzer araçlar, gereksinimlerin yönetimi, iş süreçlerini modelleme, uygulamalar ve veri, test ve uygulama optimizasyonu, kolektif iş yönetimi, sürümleri kontrolü, değişim yönetimini içerir. Birçok önde gelen tedarikçi: IBM, bilgisayar ilişkileri, Borland, Microsoft, Oracle ve bir dizi diğer araçlar bu tür araçlar üretir.

Son zamanlarda, daha önce geliştirme ortamlarının oluşturulmasında uzmanlaşmış birçok şirket (özellikle, IBM, Bilgisayar Associates, Borland, Microsoft, Oracle ve Sybase), böyle bir amacın enstrümanlarına dikkat edin. Tüm bu "ağır" araçları karşılıklı olarak entegre etme ihtiyacı, rol tabanlı yazılım geliştirme ve uygulama yaşam döngüsü yönetimi için tüm platformların oluşturulmasına yol açma ihtiyacı - bu tür platformlar şimdi Borland, IBM, Microsoft şirketleri ve başkalarının yanında üretilmektedir.

Kural olarak, bu tür araçların kullanımı, yazılım geliştirme sürecinin bir üretim süreci olarak değerlendirilmesini ve buna bağlı olarak, bu süreci maddi üretim süreçlerinin yönetim yöntemlerine benzer şekilde yönetmek için metodolojiler yaratma ve uygulama. Bu tür tekniklerin tanıtılması genellikle bireysel (ve ucuz değil!) BT, şirketlerde uygulama projelerinin uygulanmasıyla yürütülmektedir - İşletme Yönetimi, Gereksinimler Yönetimi, Başarı da dahil olmak üzere, gelişmeye eşlik eden süreçleri otomatikleştirmek ve optimize etmek için Entegre Uygulama Geliştirme Platformlarının Geliştiricileri kalite standartları.

Ticari araçların ücretsiz sürümleri

Son iki yılda gelişmek için araçlarla olanları hatırlıyorsanız, eğilimin son zamanlarda ücretsiz sürümlerinin geliştirilmesinin önde gelen üreticileri tarafından çok aktif olarak tezahür ettiği belirtilebilir (ve iyi fonksiyonellik) Geliştiricilerin dikkatini, amaçlandıkları tam özellikli ürünlerin ve platformların potansiyeline ve fırsatlarına çekmek için. Özellikle, Borland yaklaşık üç yıl üretiyor Ücretsiz sürümler Gelişmelerinden bazıları. Microsoft yakın zamanda, Windows Formları ve ASP .NET uygulamaları geliştirmek için çeşitli araçlar içeren bir ekspres ürün ailesi yayınlanmıştır. Oracle, aynı zamanda Oracle JDEVeloper 10G aracına ücretsiz geliştirici erişim sağladı.

Açık kaynak araçları

Kalkınma araçları için modern pazarın bir başka trend özelliği var, şu anda bu kadar iyi bilinen platformlar dahil, IBM olarak bilinen platformlar da dahil olmak üzere ticari şirketler tarafından bir çok fon tarafından yatırılan açık kaynaklı platformların ve araçların popülerliğinde aktif bir büyüme var. , Novell ve Oracle. En çarpıcı örnekler arasında Eclipse ortamının aktif gelişimi olmalıdır - birçok dil, dağıtım ve teknoloji platformu ile uyumlu evrensel bir açık geliştirme platformunun yanı sıra, Linux işletim sistemi için Platform .NET platformunun mono projesinin yanı sıra. (Derleyiciler ve diğer araçlar şu anda aktif olarak üretilmektedir).

Eclipse Projesi, 1998 yılında IBM tarafından, kendisini, içine yerleştirilen entegre araçlar tarafından genişleyen yeni nesilin entegre bir Java geliştirme ortamı oluşturma hedefini belirleyen, birkaç Java takım sağlayıcılarının güçleri oluşturuldu. Bu amaçla, 2001 sonundaki IBM Corporation, Java Uygulama Geliştirme Araçları WebSphere Studio Workbench'in kaynak kodunun açık kaynak kodunu sağladı ve Eclipse Konsorsiyumunu oluşturdu (Borland, IBM, Merant, QNX Yazılım Sistemleri, Rasyonel Yazılım, kırmızı şapka, SUSE, TOGETHERSOFT ve WebGain) Bu gelişme ortamının daha da geliştirilmesini yönetmek için, günümüzde 115 üyesi olan bağımsız ticari olmayan bir organizasyon Eclipse Vakfı'na dönüştürüldü.

Bugün, beş yıl sonra yaratılış anından itibaren, Eclipse platformu bu kadar popüler hale geldi ki, yaygın olarak kullanılan ticari araçlar (örneğin, bazı Java-Development araçları) pazardan çıkmaya başladı. Günümüzde, Eclipse tarafından işgal edilen Java başvuru geliştirme araçlarının payı yaklaşık% 50'dir. Aynı zamanda, bir önceki yılda, Eclipse'yu Java geliştirme ortamından tüm uygulama geliştirme yaşam döngüsü için takım entegrasyon platformuna dönüştürme eğilimi - son zamanlarda, bu tür projeler bir grafik modelleme ortamı oluşturma, hizmetler için araçlar oluşturuldu. Eclipse Consortium'a yönelik ve ayrıca test araçlarının, işletme analizi, web uygulama araçlarının güncellenmiş versiyonlarını da yayınladı.

Gelişmekte olan uygulamaların gerçek araçları gelince, Eclipse platformu şu anda PHP, Fortran, Macromedia Flex için geliştirme ortamı tarafından oluşturulur; Gömülü ve mobil platformlar için başvurular geliştirmek için bir takım araçların verilmesi planlanmaktadır. Eclipse platformu için, IBM, Borland ve SAP şirketlerini geliştirmenin ticari yolları vardır.

En Popüler Geliştirme Ortamları

Bu yılın Haziran ayında Evans Veri Corp Araştırma Şirketi tarafından yapılan 1200 geliştiricinin bir anketine göre, en yaygın kullanılan geliştirme ortamı Microsoft Visual Studio. NET (Şekil 2) olarak ortaya çıktı.

İncir. 2. Geliştirme Medyası Kullanımı Frekansı (Kaynak - Geliştiricilerin Seçimi IDE ScoreCard - Evans Veri Corp., Haziran 2006)

Aynı ankete göre, uygulama geliştirme ortamının işlevselliği açısından en popüler olan, IBM Rational Uygulama Geliştiricisi olarak ortaya çıktı, uygulamaları modelleme ve montaj için bir anketin bir aracı olarak kabul edilen ve en iyi örnek olarak ( Şekil 3).

Bu anketin sonuçları, en popüler iki platformun prevalansında daha önce belirtilen eğilimleri yansıtır (Windows / Microsoft .NET ve Java / J2EE - hemen hemen tüm popüler geliştirme ortamları bu platformlar için tasarlanmıştır) ve fonların ve geliştirme popülaritesindeki artış artışı platformlar ile açık kaynak (en popüler beş gelişme ortamında tutulmanın varlığı tarafından kanıtlandığı gibi).

Bu nedenle, uygulama geliştirme teknolojilerinin gelişme eğilimi, BT projesindeki uygulama geliştirmenin payında bir düşüş, düşük seviye çözümlerden, standart çözümlerin seri üretimine geçiş, giderek daha aktif bir şekilde aktif bir şekilde aktif bir uygulama, onaylama geliştirme yaşam döngüsü araçlarının ( Uygulama geliştirme için entegre platformları uygulamak için projeler dahil). Son zamanlarda, mobil platformlar için başvurular oluşturma ilgisi de güçlendirdi. Son yılların karakteristik eğilimi de yüksek kaliteli açık kaynaklı araçların görünümüdür. Bu eğilimlerin birkaç yıl bile devam edeceği mümkündür.