Programcı Olmadan Yazılım Geliştirme Aracı

END USER SOFTWARE DEVELOPMENT – GENEU

ÖZET

İşletmelerin kendi bünyelerinde özel yazılım geliştirme istekleri; gerekli insan kaynağını bulamamak, kaynak maliyetinin yüksekliği, yazılım geliştirme süreçlerini verimli yönetememek gibi nedenlerle çok problemli olmaktadır. İşletmenin yazılım firmalarının ürettiği hazır çözümleri kullanması durumunda, hazır yazılımların süreçlerine tam uymaması yüzünden, analiz/geliştirme süreleri beklenenden yüksek maliyetlerle sonuçlanmaktadır.

 

Bu sebeplerle acaba sürdürebilir bir uygulamayı, konusunda bilgi sahibi bireylerin, yazılım dili bilmeden yazılımlarını geliştirebilmeleri gibi bir fikir ile Yalın Software bünyesinde bir ARGE çalışması planlandı. Bu çalışma, TUBITAK TEYDEB Destekli 1501 Projesi olarak Aralık 2012 de Yalın Software ekibi ve ODTÜ Bilgisayar Mühendisliği Doç. Dr. Ali Hikmet DOĞRU ve o tarihte Çanakkale 18 Mart Üniversitesi Öğretim Görevlisi Yrd. Doç. Dr. Cengiz TOĞAY Danışmanlığında GENEU kod adlı bir Proje olarak başlamıştır.

 

GENEU ile son kullanıcı kendi ihtiyaçlarını kolay ve hızlı bir şekilde kendi içinde yazılıma dönüştürüp, sonradan da anlık değişiklik ve ilavelerini gerçekleştirebilecektir. Böyle bir ortamda bilgi aktarımındaki kayıplar, yazılıma dönüştürmedeki yavaşlık ve eksik veya yanlış anlamadan doğabilecek problemler elimine edilmiş olacaktır.

 

Anahtar Kelimeler: Son Kullanıcı Yazılım Geliştirme, Yazılım Hattı, Yazılım Fabrikası, İş Akışı, Nitelik Modeli, Yazılım Bilmeden Yazılım

1.    GiRiŞ

İşletmelerin kendi bünyelerinde özel yazılım geliştirme istekleri; gerekli insan kaynağını bulamamak, kaynak maliyetinin yüksekliği, yazılım geliştirme süreçlerini verimli yönetememek gibi nedenlerle çok problemli olmaktadır. İşletmenin yazılım firmalarının ürettiği hazır çözümleri kullanması durumunda, hazır yazılımların süreçlerine tam uymaması yüzünden, analiz/geliştirme süreleri beklenenden yüksek maliyetlerle sonuçlanmaktadır. İleri yazılım teknolojilerini kullanmak, uzun geliştirme süreleri ve yüksek maliyetlere neden olmaktadır. Yazılım ihtiyacı olan firmalar, genellikle hesap tablosu araçları ile işlerini görmek durumundadır. Bu seçenek ile büyük verilerle çalışırken performans problemleri çekmekte, veri kayıpları ve bozulmaları ile karşılaşmakta, çok zaman bilişim problemlerini çözmek için uğraşmaktadırlar. Ayrıca güvenlik ile de sorunları olmakta, sonunda işin içinden çıkılmaz hale geldiğinde profesyonel yazılım çözümlerine başvurmaya mecbur kalmaktadırlar. Yazılım firmaları da müşterilerinin isteklerini daha hızlı ve uygun maliyetlerle karşılamak istemektedirler. Ancak ulaşılan hız müşterileri tatmin etmemektedir. Kendi alanı ile ilgili bilgisi olan müşteriler, ihtiyaçlarını yazılımcı bakış açısı ile ifade edememekte ve dolayısıyla doğru ve zamanında yazılım hizmetini alamamaktadırlar.

2.    SON KULLANICI NEDEN GERÇEKLEŞTİRMELİ

 

GENEU ile, son kullanıcı kendi ihtiyaçlarını kolay ve hızlı bir şekilde kendi içinde yazılıma dönüştürüp, sonradan da anlık değişiklik ve ilavelerini gerçekleştirebilecektir. Böyle bir ortamda bilgi aktarımındaki kayıplar, yazılıma dönüştürmedeki yavaşlık ve eksik veya yanlış anlamadan doğabilecek problemler elimine edilmiş olacaktır.  İşletmeler ihtiyaçları doğrultusunda, küçüklü büyüklü tüm yazılımlarını doğrudan ve hızlı bir şekilde oluşturarak sorunlarını çözebileceklerdir. GENEU ile geliştirilen yazılımın bakımı ve sürdürülme çabaları da işletmenin kendisi tarafından sağlanacağı için bürokrasi ve iş takibi kayıpları en aza inecek, verimlilik ve uygulama başarısı artacak, katlanılan maliyetler büyük ölçüde düşecektir.

 

Yazılım işletmenin kendi olanakları ile kendi alan bilgisi, kültürü ve alışkanlıkları doğrultusunda geliştirilir. Genel yazılımlarda genellikle şikayet edilen çok sayıda işe yaramayan, ancak ağırlık olarak görülen işletmenin kendisi için fazla fonksiyon ve bilgi yığını olmaz. Sadece ihtiyacı duyulan, gerçek anlamda çalıştırılan fonksiyonlar yazılım içerisinde barındırılır. Bu nedenle de anlaşılması ve işletme insanları tarafından benimsenmesi ve yaygınlaştırılması çok daha kolaydır.

 

Son Kullanıcının kod yazmadan yazılım geliştirmesine olanak sağlayacak bir yazılım aracıdır. Son kullanıcı, geliştirilecek yazılımın ilgili olduğu alanı iyi bilen, model kurabilen kişi ve kuruluşlardır.

İhtiyaçlar, son kullanıcının kendisi tarafından doğrudan belirlenir. Bu nedenle de tam ve eksiksiz karşılanması mümkün olabilen bir ortam oluşur.

 

GENEU Son Kullanıcı Yazılım Geliştirme aracı ile işletme, ihtiyacı doğrultusunda fonksiyon ve bilgi ortamını kendisi hazırlar, iş akışını kendisi belirler, raporlamasını, uyarı sistemini, yetkilendirmesini kendisi geliştirir. Böylece, kendisi dışında bir başka rakip işletmenin birebir aynı yazılımı kullanma olanağı olmayacağından know-how denilebilecek işletme iş yapış biçimi tamamen işletmenin kendisinde saklı kalır.

 

İhtiyaçlar, gözlemlendikçe yazılımda istenilen değişiklikler ilk elden çok hızlı bir şekilde işletmenin kendi kaynakları tarafından gerçekleştirilebilir. GENEU Son Kullanıcı Yazılım Geliştirme Aracı, tüm işletmelerden gelen istekler düşünülerek hazırlandığı için işletmeler, ihtiyaçları doğrultusunda yazılım geliştirirken fonksiyonel olarak sıkıntı çekmezler. Henüz kullanmadıkları, ama ihtiyaçları olabilecek kolay ve hızlı işlevsel yazılım geliştirme ortamları bir avantaj olarak sunulmaktadır. GENEU, sürekli gözden geçirilip yeni teknolojiler ve yazılım geliştirme kolaylıkları ile donanacağı için işletmenin yazılımlarını geliştirirken kendi kuruluş amaçları gereksiz olan bu araştırma ve geliştirme masraflarını yüklenmesine gerek kalmaz.

 

İşletmelere danışmanlık yapan kişi ve firmaların, danışmanlıklarını sadece kağıt ve sözde bırakmayarak işlevsel olarak kalıcı kılmalarını ve daha fazla firmaya danışmanlık hizmetlerini götürebilecekleri yazılım aracı haline dönüştürmelerini sağlar. Bu sayede, sadece yazılım firmalarının tekelinde olan yazılım geliştirme yeteneği, büyük ölçüde bu hizmeti gerçekleştirebilecek ilgili alanda danışmanlık bilgisi olan kişi ve firmalar tarafından da kullanılabilecek ve yepyeni bir iş sahası daha açılacaktır. Bundan hem danışman kişi ve kuruluşlar, hem de geliştirilen bu yazılımları kullanabilecek diğer firmalar yararlanacaklardır. GENEU olmadan oluşturulması, geliştirilmesi, sürdürülmesi ve iyileştirilmesi hayal bile edilemeyecek, çok yüksek maliyetlerle çok daha uzun sürelerde ve belki bulunamayacak insan kaynakları ile erişilebilecek bilişim ortamının kurulmasını sağlar.

 

3.    NASIL BİR TASARIM OLMALI

GENEU projesinin mimari yapısı 2 ana kategori altında toplanmıştır. Bunlar; “Son Kullanıcı” ve “YALIN”dır. Projenin, temel bileşenleri paylaşan iki ayrı uygulama şeklinde gerçekleştirilmesi planlanmaktadır. Son Kullanıcı uygulamasında temel işlevleri karşılayacak kullanım durumları (use case), “Nitelik modeli uyarlama”, “Bileşen uyarlama”, “Kod Üretme” ve “Süreç Modellemedir. Şekil 1 de “Son kullanıcı” için bahsedilen kullanım durumlarının GENEU projesinde ki yerleri gösterilmiştir.

Ana yaklaşım, üç farklı model düzeyinde işlem gerektirmektedir.  Kabiliyetler için nitelik modeli, sıralandırma için süreç modeli ve uygulama ayrıntıları için bileşen/servis kütüphanesi kullanılmaktadır.  Bu üç farklı ortamın bir arada değerlendirilmesi gerekmektedir.  Şekil 1 de gösterildiği gibi bu ortamlar üzerinde geliştirme işlemleri (genellikle seçme ve uyarlama gibi) yapıldıkça komşu ortamlara olan yansımaları gecikmeden gözlemlenmelidir.

Geliştirici, niteliklerini tamamen seçebilir ve sonra bunların süreç modeli üzerindeki sıralandırmalarını da sonuçlandırdıktan sonra bileşenler kümesinde alternatifler ya da kurulumlar aracılığı ile işlevlerin uygulama ayrıntılarını da belirleyebilir.  Ancak şelale yaklaşımını andıran bu tür bir geliştirme yaklaşımı yerine her nitelik ile birlikte süreç ve bileşen ihtimalleri sonuçlandırıldıktan sonra bir sonraki bileşene de geçilebilir.  Geliştirme adımları arasında herhangi bir sıralandırma kısıtı konulmamaktadır. Ancak üç farklı uzayda fazlaca etkileşim olacağı tahmin edilmektedir ve istenildiği gibi gezinme sonucunda ürün geliştirmesi tamamlanacaktır. (Doğru, 2012)

Nitelik Modeli

Nitelik modeli, farklı uygulamaların geliştirilebileceği bir alanda alan modelinin en önemli kısmını oluşturur.  GENEU uygulamasında bu modeli YALIN firmasının geliştiricileri oluşturacaktır ve kullanıcılar (son kullanıcı-geliştiriciler) bu modelde mevcut olması gereken değişken kısımlar üzerinde kararlar vererek istedikleri uygulamanın kabiliyetler kümesini belirtmiş olacaklardır. Uygulama, bir nitelik modeli işlemcisi (model editör) içerecektir. Bu işlemci modelleri açıp değişiklikler yapıp kayıt etme şeklinde ana işlevleri de içeren bir araç olacaktır.  YALIN tarafında oluşturulacak olan alan nitelik modeli, alan ihtiyaçlar çalışması sonucunda oluşturulacaktır.  Nitelik modelindeki nitelikler, aslında geliştirilecek olan uygulamalardaki kabiliyetlere karşı düşmektedir.  Nitelikler, süreç modelince içerilen etkinlikler ve bileşenlerce koşturulan işlevler ile YALIN tarafından ilişkilendirilmiş olacaklardır.

Süreç Modeli

Süreç modeli, son kullanıcıların geliştireceği uygulamanın bel kemiğini oluşturacaktır.  İş akışları tabanlı bir gösterim sunacaktır.  YALIN tarafından bir ‘varsayılan’ iş modeli geliştirilecek ve isteyen kullanıcılar için genelde uygulama geliştirme adımlarının başlangıç noktasını oluşturacaktır.  Ayrıca ana sürecin olabilecek farklı alt süreç alternatifleri de geliştirilebilecektir.  Temel Seviye Kullanıcıların süreç modeli üzerinde seçim yapma dışında kapsamlı değişiklikler yapması beklenmemektedir.  Ancak daha üst düzeyli kullanıcılar, süreç modeli uyarlama işlemleri yapabilirler.  En çok mevcut işlevlerin (koşullu ve döngü içerisinde de olabilmek üzere) sıralandırılmalarında değişiklikler ve alternatif alt süreçler arasından seçimler yapma işlemlerinin kullanılması beklenmektedir.  Bu değişikliklerin yapılabilmesi ve ayrıca ilk defa süreç modelinin YALIN tarafından oluşturulabilmesi ve bakımı için de bir süreç modeli işlemcisi (Process Model Editor) aracı içerilecektir.  Süreç modellerindeki etkinlikler (activities), nitelik modelindeki ögelerce tanımlanması uyumlu ve bileşen kütüphanesinde uygulamaları tanımlı etkinlikler olmalıdır.  Bu koşullara uymayan eklenti ve değişiklikler yapıldığında nitelik modeli ve bileşen kütüphanesinde de uyumluluk için değişiklikler gerekebilecektir.

Bileşen Kütüphanesi

Geliştirilecek olan uygulamanın koşturulacak ögelerini barındırır.  Kütüphane, bileşenlerin eklenmesi, çıkarılması, bir uygulamaya bağlanması için gereken destek ve bileşenlerin tanımları hakkında bilgiler içerir.  YALIN tarafından doldurulacak olan kütüphane, ileride üst düzey kullanıcılar tarafından genişletilebilir.  Bu tür yeni bileşenlerin uyumluluk ve kalite açısından YALIN tarafından denetimi ve onaylanması gerekecektir. Bileşenler, süreç modelindeki etkinlikleri koşturacak olan kod birimleridirler. Aynı işlevi kullanıcıların isteği doğrultusunda farklı şekilde yapacak alternatifler de farklı bileşenler ya da bir bileşenin farklı uyarlanabilir kurulumları şeklinde sunulmaktadır..  Kütüphanedeki bileşenlerin gerekler ve kısıtlar doğrultusunda yönetimleri ve erişim destekleri için Bileşen Yönetimi ögesi kullanılmaktadır.

Bileşen Yönetimi

Bileşenlerin Nitelik Modeli, Kod Üreticisi ve Süreç Modelin’deki ilgili ögelerle uyumu gerekmektedir.  Bu uyumu sağlamak üzere destek fonksiyonları içermektedir. Varsayılan durumda bu ögelerle hangi bileşenlerin uyumlu olduğu, bağlarla kodlanmaktadır. Ancak, bu kütüphane dışındaki ögeler ile bileşenlerin ilişkisi bire bir olmayacaktır.  Bileşen yönetimi,  seçilen nitelikler ve süreç etkinlikleri ile uyumlu bileşenlerin bulunmasında yardımcı olmaktadır.

Kod Üretim Aracı

Esas olarak koşacak kod, süreç modelidir.  Ancak farklı bileşenlerin bağlanması sonucunda varsayılan süreç ve bağlandığı bileşenler şeklinde olan yapının dışına çıkıldığında bazı uyarlama ihtiyaçları oluşabilir.  Kod Üretim Aracı, temel olarak bu tür uyarlamaları olabildiğince otomatik olarak, gerektiğinde de geliştiricilerden destek isteyerek uygulayıp koşturulabilir bir uygulama sunmaktadır.  Belirlenmiş uygulama nitelik modelinde ve sonuçlandırılmış süreç modelindeki ögelerle uyum sağlamak üzere bileşen kütüphanesinden, benzeri işlemleri yapacak alternatif bileşenler seçilmesi ve gerekirse uyarlama kurulumları yapılması yönünde müdahalelerde bulunmaktadır.

Mimari ile ilgili yapılan çalışma, Clements ve arkadaşları’nın (2003) yayınladığı kitapta bahsedilen şekilde belgelenmiştir (Geneu 2012).  Bu belgeleme, mimari yapının farklı ögeleri için değişik görünümler içermektedir.  Şekil 3’de yer alan Nitelik Modeli, Süreç Modeli gibi bileşenler ile ilgili açıklamalar ve şekil 3 de gösterilen çerçeve diyagramı gibi modeller de yer almaktadır.

 

4.    SONUÇ

Günümüzde, işletmelerin en değerli kaynağı olan bilgi ve bilgi birikiminin istenilen şekilde, kolay, hızlı, kendi kültürüne uygun olarak güvenli bir şekilde depolanması, paylaşılması, bu yapı kullanılarak karar destek sistemi oluşturulması, iş akışlarının düzenlenmesi, geliştirilmesi ve iyileştirilmesi sağlanacaktır.

Ne yapılması gerektiğini bilen konusuna hakim analist veya kullanıcıların yazılım bilgisine ihtiyaç duymadan yazılım yapabilmeleri, verimlilik ve oluşmuş sistemlerin gelişmesini sağlayarak firma kültürlerinin devamını sağlayacaktır.

Bu çalışma ile yerli yazılım geliştirme sürecine destek verilerek Yazılım Sanayisinin rekabet gücünün artırılması sağlanmaktadır.

 

KISA ÖZGEÇMİŞ

1968 yılında Mersinde doğan Ertan YILMAZ, Anadolu Üniversitesi Endüstri Mühendisliğinden mezun oldu. 1990 yıllarında gönül verdiği bilişim sektöründe Eğitmen, Proje Mühendisi, Pazarlama Yöneticiliği görevlerinde çalıştıktan sonra 2001 yılında YALIN Software firmasını kurdu. Yurtiçi ve Yurtdışında Yalın Software ’in geliştirdiği 50’nin üzerinde ERP Yazılımı Projesinde ve Akıllı Planlama ve Çizelgeleme Projesinde analist, danışman, proje yöneticiliği görevlerinde, Tübitak-Teydep destekli İleri Planlama ve Çizelgeleme, Son Kullanıcı Yazılım Geliştirme Aracı ARGE Projelerinde proje koordinatörlüğü, proje yöneticiliği, analist ve danışmanlık görevlerinde bulundu.  Halen Yalın Software ’de Kurucu Ortak ünvanı ile Yönetim Kurulu Üyeliği, Proje Bölümü Yöneticiliği ve ARGE projelerinde yöneticilik yapmaktadır.

Makine Mühendisleri Odası ve Bisiad Yönetim Kurulu üyeliği vardır. İngilizce bilen YILMAZ, Evli ve bir çocuk babasıdır.