=Paper= {{Paper |id=Vol-1980/UYMS17_paper_59 |storemode=property |title=Essence Surec Modelleme Cercevesi icin Otomasyon Yazilimi Gelistirme Deneyimi(Development Experience in Automation Software for Essence Process Modeling Framework) |pdfUrl=https://ceur-ws.org/Vol-1980/UYMS17_paper_59.pdf |volume=Vol-1980 |authors=Yagup Macit,Cagdas Usfekes,Ahsen Ikbal Aytekin,Eray Tuzun |dblpUrl=https://dblp.org/rec/conf/uyms/MacitUAT17 }} ==Essence Surec Modelleme Cercevesi icin Otomasyon Yazilimi Gelistirme Deneyimi(Development Experience in Automation Software for Essence Process Modeling Framework)== https://ceur-ws.org/Vol-1980/UYMS17_paper_59.pdf
Essence Süreç Modelleme Çerçevesi için Otomasyon
          Yazılımı Geliştirme Deneyimi

    Yagup Macit1, Çağdaş Üsfekes1, Ahsen İkbal Aytekin1, Eray Tüzün2
              1HAVELSAN Bilişim Hizmetleri Müdürlüğü
           2HAVELSAN Teknoloji ve Akademi Direktörlüğü

                         06510 Ankara, Türkiye



  Özet. Yazılım ve sistem geliştirme çalışmalarını desteklemek için tanımlanmış
  olan çok sayıda pratik, yöntem ve süreç bulunmaktadır. Bu geliştirme yönerge-
  leri, genellikle ilerlemenin doküman üzerinden izlenmesi temeline dayanmak-
  tadır. Ancak, başka endüstriler için otomasyon çözümleri üreten bilişim dü-
  nyasının kendi üretimlerini doküman ile yürütmesi beklenemez. Her bir
  geliştirme yönergesinin otomasyona dönüştürme çalışması kendine özgü zor-
  luklar barındırmaktadır. Essence Çerçevesi, yazılım geliştirme süreç, yöntem ve
  pratiklerini genel olarak ortaklamayı amaçlayan bir süreç modelleme dili ve
  genişletilebilir bir çerçeve sağlamaktadır. Bu ortaklama yaklaşımı, kurumlara
  proje/ürün geliştirme ve izleme için ortak bir zemin vaat etmektedir. Ancak bu
  ortak zeminin, yürütme aşamasını kapsamamakta ve işleyiş el ile yürütülebilen
  kartlar üzerinden sağlanmaktadır. Bu çalışmada, Essence dil ve çerçevesi temel
  alınarak, işletilebilir modelinin oluşturulması ve bir otomasyon uygulamasının
  yazılmasına dönük deneyimler aktarılmıştır.


  Anahtar Kelimeler: Yazılım Geliştirme Yaşam Döngüsü Yönetimi, Yazılım
  Süreçleri, Süreç Otomasyonu, Yazılım Proje Yönetimi, Essence Çerçevesi


Development Experience in Automation Software for
      Essence Process Modeling Framework

    Yagup Macit1, Çağdaş Üsfekes1, Ahsen İkbal Aytekin1, Eray Tüzün2
              1
                HAVELSAN Bilişim Hizmetleri Müdürlüğü
           2HAVELSAN Teknoloji ve Akademi Direktörlüğü

                         06510 Ankara, Türkiye



  Abstract. In the literature, there are various number of practices, methods, and
  processes that are defined to support software and system development work.
  These development guidelines are usually document-based, where carrying out
  the work and tracking the progress is supported with the help of documents. In




                                                                                     147
       today's information age, information systems which produces automation solu-
       tions for other industries are not expected to carry out their development activities
       with document-based only approaches. Transforming the development guide-
       lines, some of which are well-defined with certain usage practices, into automa-
       tion has its own unique challenges. The Essence Framework provides a process
       modeling language and an extensible framework that aims to give a common
       framework for various process, methods and practices of software development
       in general. This consolidation approach promises institutions a common ground
       for project / product development and monitoring. However, there is no direct-
       operable automation infrastructure for this common ground, and currently, the
       progress is monitored with the help of physical cards. In this study, we have re-
       ported on our experiences on creation of a software model based on the Essence
       framework’s domain language to support a common process automation applica-
       tion.

       Keywords: Software Development Lifecycle Management, Software Pro-
       cesses, Process Automation, Software Project Management, Essence Frame-
       work


1      Giriş

Bilgisayar uygulamalarının, gündelik mal ve hizmetler ile sosyal yaşamın üretilmesini
sağlayan temel bileşenlerden biri olması, yazılım üretimi çabalarını endüstrinin önemli
süreç alanlarından biri haline getirmektedir. Bir yazılım ürününün geliştirilmesi,
iyileştirilmesi veya hizmet olarak sunulması için düzenlenmiş adımlar dizisi Yazılım
Geliştirme Süreci olarak tanımlanmaktadır [1]. Yazılım üretimi, çok sayıda pratik,
yöntem ve süreç [2] kullanılarak yapılabilmektedir. Çoğu birbirleri ile benzeşmeyen bu
çalışma biçimlerinin öngörülemezliğinden ve ayrıksılığından kaynaklanan sorunlarına
karşı 1960’lı yıllarda Hoiser [3] ve Royce [4] ile başlayan yanıt verme çabaları
günümüzde de devam etmektedir.
    Endüstrinin diğer alanlarında olduğu gibi, bilişim alanında da üretim işlemlerinin
otomasyon desteği ile yapılabilmesine olanak sağlayacak süreç standartlaştırma
çalışmaları yürütülmektedir. Bu çalışmalarla elde edilen, alan dilleri ve modeller SPEM
[5] ve Essence [6] belirtimleri şeklinde Object Management Group (OMG) tarafından
yayınlanmaktadır. Her iki belirtim de Yazılım Mühendisliği üst (meta) modelini ve
genelleştirilmiş süreç modelini barındırmaktadır. Essence belirtimi, kartlar üzerinden
el ile işletilebilen bir çekirdek sağladığından, otomasyon dönüşümü için seçilmiştir. Bu
çalışmada, Essence belirtimi temel alınarak işletilebilir model oluşturulması ve oto-
masyon yazılımı geliştirilmesi, deneyimleri paylaşılmıştır.
    Bildirinin ikinci bölümünde, Essence Çerçevesi ele alınmıştır. Üçüncü bölümde ise,
otomasyon yazılım üretimini tetikleyen motivasyon kaynakları belirtilmiştir. Dördüncü
bölümünde, otomasyon yazılımını geliştirme deneyimi aktarılmıştır. Beşinci bölümde
ise sonuç ortaya konulmuştur.




                                                                                               148
2      Essence Çerçevesi

Software Engineering Method and Theory (SEMAT) tarafından geliştirilen Essence,
benzer belirtimlerden farklı olarak dil ve hazır bir çekirdekten oluşan çerçeve ile
karşımıza çıkmaktadır. Çekirdek, Essence model dili kullanılarak ortak kullanım için
üç ilgili alanında konumlandırılan yedi temel odağı1 ve bu odakların aralarındaki
ilişkiyi tanımlayan şekilde modellenmektedir. Bu model, Şekil 1’de görülmektedir.
    Yazılım geliştirme sürecinde yer alan etkinlikler ve varlıklar toplanarak Müşteri,
Çözüm ve Çaba adıyla üç ilgi alanı tanımlanmıştır. Müşteri ilgi alanında, bir yazılım
sistemini geliştirmeye veya değiştirmeye uygun kılan şartlar Fırsat (1), bu sistemini
etkileyen veya etkilenen insanlar, gruplar veya kuruluşlar ise Paydaş (2), olarak
tanımlanmaktadır. Çözüm ilgi alanında, Fırsatı değerlendirmek ve Paydaşların ih-
tiyacını karşılamak için yazılım sisteminin barındıracağı özellikler Gereksinim (3),
yazılım, donanım ve verilerden oluşan ana üretim değeri ise Yazılım Sistemi (4), olarak
tanımlanmaktadır. Çaba ilgi alanında, sonuç elde etmek için yapılan zihinsel veya
fiziksel çabanın yer aldığı faaliyetler İş (5), Yazılım Sisteminin geliştirilmesi, bakımı,
teslim edilmesi veya desteklenmesi için aktif olarak çalışanlar grubu Takım (6), Takım
tarafından yapılan işlere rehberlik eden özelleştirilmiş süreç ve araç setini İş Yapma
Biçimi (7), olarak tanımlamaktadır.




                     Şekil 1. Essence Çekirdeği ve Odak Noktaları [6] [7]




1 Odak: ALPHA (Abstract-Level Progress Health Attribute) olarak tanımlanmaktadır.




                                                                                             149
   Essence Çekirdeğini oluşturan her bir odak, faklı yaşam döngüsü basamağı ve basa-
maklar arasındaki geçiş denetimleri ile tüm sürecin sağlığı hakkında soyut seviyede
bilgi sağlamaktadır.
   Essence Çerçevesi, sağlamış olduğu dil ve hazır çekirdek ile yazılım geliştirme ça-
balarında kullanılan faklı pratik ve yöntemlerin tek bir ortak zemin üzerinde birleştirme
yeteneği sağladığı gibi dil özelliklerini kullanarak çekirdeğin genişletilebilmesi
olanağını da sağlamaktadır. Bu genişletme olanağı ile farklı yazılım geliştirme prati-
kleri ve yöntemleri aynı ortak zemin altında tanımlanabilmektedir. Tanımlanan yönt-
emlerin, proje veya ürünler için yürütülmesini gerçekleştirecek elektronik bir araç ise
Essence Çerçevesi tarafından sağlanmamaktadır.


3      Motivasyon

Proje, birbirinden farklı olarak nitelendirilen bir ürün ya da hizmeti başlatma, planlama,
yürütme, izleme ve kapatma süreçlerinden geçirerek ortaya çıkarmak için gösterilen
çabalar bütünü olarak tanımlanmaktadır [8]. Yazılım projeleri de çaba ve çıktılar açısın-
dan diğer projeler gibi birbirlerinden farklılık göstermektedir. Her biri kendine özgü
olan yazılım projelerinin yönetiminde başarıyı elde etmek için bu süreçleri gerçekleyen
yöntemler kullanılmaktadır. Proje yönetim sürecinde tercih edilen yöntemler değişiklik
gösterse de her biri için temel süreci karşılayan ortak yönler bulunmaktadır. Şelale sü-
recinden çevik yaklaşımlara ve Scrum pratiğine kadar kullanılan bu yönergeler [4] [9]
[10], projenin yürütülmesi ve izlenmesi için temel unsurlar olarak karşımıza çıkmak-
tadır. Birden çok projenin yürütülmekte olduğu kurumlarda, farklı yöntem ve prati-
klerin tercih edilmesi, projelerin ortak bir paydada takip edilmesini zorlaştırmaktadır.
Paydaşların iş birliğini arttırmak amacıyla bu yöntem ve pratiklerin herkes tarafından
aynı dilde okunabilmesi bir gereklilik olarak görülmektedir [11].
   Yazılım Geliştirme Yaşam Döngüsü (YGY) evrelerinde bazı çıktılar, CASE [12]
araç desteği ile üretilebilmektedir. Ancak bu destek, süreç otomasyonundan çok işlem
otomasyonu seviyesinde kalmaktadır. Ayrıca, kurumsal YGY için takım halinde
geliştirmeyi destekleyen ortak altyapılar kurulabilmektedir [13]. Bu tür kurumsal
altyapılar, barındırılan projelerin/ürünlerin çalışmalarını belirli odak noktaları üzerin-
den ortak bir zeminde yönetme ve izleme ihtiyacını belirgin hale getirmektedir.
   Farklı süreçlerin modellenmesi için kullanılan bu ortak dilin, kurumsal seviyede
yürütülen projelerin takip edilebilmesi için işletilebilir bir altyapıya sahip olması ger-
ekmektedir. Geliştirilen otomasyon yazılımı ile izlenen projeler için modellenmiş olan
göstergelerin, işlemlerin yürütüldüğü YGY araçlarından otomatik olarak beslenmesi
hedeflenmektedir. Bu yetenek ile proje çalışanı ve yöneticilerinin birbirlerine ayrıca
bilgi aktarmalarına gerek olmaksızın odaklar, etkinlikler ve iş ürünleri ile ilgili bilgileri
izleyip, verimlilik için değerlendirebilecekleri bir işbirliği ortamı sağlanmış olacaktır.




                                                                                                150
4      Geliştirme Deneyimi

Süreç modellemesi, temel olarak Şekil 2’de görülen üç düzey ile tanımlanmaktadır
[14]. Düzey-2’de, alana özgü dil ve yapı taşlarının tanımlandığı üst model yer almak-
tadır. Düzey-1’de, söz konusu dil ve yapı taşlarının etkin kullanımı için önerilen bileşim
ile ortaya çıkan yöntem yer almaktadır. Düzey-0’da ise ilgili yöntemin, yürütmesinin
yapıldığı çalışma zamanı örneklemesi bulunmaktadır.




                             Şekil 2. Süreç Modeli Düzeyleri [14]
   Essence Çerçevesi, düzey yapılarına göre oluşturulan ve aşağıda detayları verilen
bileşeler ile genişletilmeye ve otomasyon yazılımına dönüştürülmeye çalışılmıştır.
   Dil Bileşeni: Düzey-2 için Essence Metamodel XMI şeması, alan dil belirtimi olarak
devralınmış ve korunmuştur.
   Çekirdek Bileşeni: Düzey-1 için Essence belirtimi tarafından kullanım önerisi
olarak sunulan odaklar, etkinlik alanları ve yetkinlikler yer almıştır. Kurumsal
kullanım yönelimleri göz önünde bulundurularak bu düzey temel soyutlama düzeyi
olarak kurgulanmıştır
   Ontoloji (Pratikler) Bileşeni: Scrum gibi endüstriyel pratiklerin metin kaynakların-
dan yola çıkılarak elde edilen odak, etkinlik, rol, iş ürünü gibi ontolojik kavramların
sistematik eşleme [15] ile işlendiği ve çekirdeğin genişletildiği düzeydir.
   Yöntem Bileşeni: Ontoloji bileşeninde girilmiş farklı pratiklerin, Proje/Ürün
çalışma alanlarını kapsayacak yöntemler şeklinde organize edildiği düzeydir. Bu
düzeyde, Scrum ve Sürekli Tümleştirme gibi pratikler birleştirilerek Çevik yöntem elde
edilebilir.
   Yürütme Bileşeni: Yöntem bileşeninde elde edilen yöntemin herhangi bir
proje/ürün çalışması için çalışma zamanı örneğinin yürütmesini sağlayan katmadır. Bu
bileşen için sağlanan eklenti desteği ile proje/ürün işlemlerinin gerçek zamanlı olarak




                                                                                             151
çalışıldığı gereksinim, tasarım, geliştirme, test ve yayın/dağıtım gibi YGY araçlarından
her aşamada bilgi çekilebilmekte ve sonuçlar iş ürünü veya odağa aktarılabilmektedir.
   Yazılım Bileşenleri; düzey, çalışma konusu ve örnek nesne açısından Tablo 1’de
özetlenmiştir.

                     Tablo 1. Otomasyon Yazılımı Düzey Örneklemesi
 Düzey     Bileşen                Çalışma Konusu                         Örnek Nesne
 2         Dil                    Essence Metamodel XMI şeması           Odak
 1         Çekirdek               Essence Belirtim Çekirdeği             İş
 1         Ontoloji (Pratikler)   Scrum Guide gibi pratik belirtimleri   Koşu
 1         Yöntem                 Yöntem kalıbı                          Koşu
 0         Yürütme                Proje/Ürün                             Koşu-1

    Essence çekirdeğinin, dil belirtimindeki sınıflardan türemiş olması ve kalıt aktarımı
nedeniyle yazılım geliştirme için Nesne Yönelimli Yazılım Mühendisliği [16] yak-
laşımı tercih edilmiştir. Bu tercihin, Ontoloji bileşeni için nesne genelleştirmesi,
yöntem bileşeni için pratiklerin çakışma alanları dikkate alınarak birleştirilmesi ve
yürütme bileşeni için istenmeyen özelliklerin hariç tutulması ile YGY araç eklen-
tilerinin yönetimi açısından katkıları görülmüştür.
    Otomasyon yazılımı için geliştirilen mimarinin Essence Model Düzeyleri ile olan
ilişkisi Şekil 3’te görülmektedir. Essence Model yapısı için genişletme, Düzey-1 olarak
etiketlenen Çekirdek ile onun türevleri olan Ontoloji (Pratikler) ve Yöntem bileşen-
lerinde yapılabilmektedir.
    Düzey geçişlerindeki nesne evrimi; Düzey-2 Dil bileşeninde, Temel Öğe’den
devralınan Odak nesnesinin, Düzey-1 Çekirdek bileşeninde İş odağına, Düzey-1 On-
toloji bileşeninde, Scrum pratiğinin Koşu (sprint) alt odağına, Düzey-0 Yürütme
bileşeninde ise Proje-A için İş-A odağının Koşu-A alt odağına, dönüşümü şeklinde
izlenebilmektedir.




                                                                                            152
                    Şekil 3. Essence Model Düzeyleri ve Mimari İzdüşümü
    Essence Çerçevisi üzerinde Düzey-1 genişletmeleri ve Düzey-0 eklemesi sonucunda
elde edilen yeni çerçeve, hem yeni bileşenler ile zenginleşmiş hem de operasyonel ni-
telik kazanmıştır. Yeni çerçeve içerisindeki bileşenlerin hizmet verebilmesi için ihtiyaç
duyacağı veri erişimi ve güvenlik özellikleri, örün (web) mimari konumlanması ile örün
sunucusu üzerinden sağlanmıştır. Yazılım Konumlanma Mimarisi Şekil 4’te
görülmektedir. Kurumsal politikalara göre örün sunucusu ve veri tabanı sunucusu ayrı
konumlandırılabilmektedir.
    İletişim mimarisi açısından, genel amaçlı örün istemcisi ile uygulama sunucusu
arasında istemci-sunucu mimarisi uygulanmıştır. Yine, yürütme bileşeninin tüm-
leştirme eklentileri ve diğer YGY araçlarının sorgulanmasında da istemci-sunucu
mimarisi doğal yönelim olarak ortaya çıkmıştır. Örün sunucusunun iç bileşenleri
arasındaki iletişim, dll (dynamic link library) teknolojisinin kullanımı ile sağlanmıştır.
    Yeni çerçevenin örün sunucusunda hizmete alınmasıyla, hem genel amaçlı örün
istemcisi için MVC, hem de olası diğer erişim kanalları için REST API yeteneği elde
edilmiştir.




                                                                                             153
                      Şekil 4. Yazılım Konumlanma ve İletişim Mimarisi
   Kurumsal kullanıcıların yönetim, yapılandırma, ontoloji kitaplığı tanımlama ve
proje/ürün yürütme işlemleri için Şekil 5’te görülen örün istemcisi geliştirilmiştir.
Örnek ekran görüntüsünde odak öğeleri ve seçili odağa ait olan denetim öğeleri listel-
enmiştir. Denetim öğeleri arasındaki geçişi sağlayabilmek için gerekli veri kaynağının
adresi, kullanıcı adı, şifresi, veri tipi gibi alanlar bu ekran üzerinden belirlenir. İstemci
mimarisi ajax üzerinde REST API istemcisi olarak çalışıp HTML denetimlerini çalışma
zamanında oluşturan javascript üzerine kurgulanmıştır. REST API sayesinde her bir
örün istemcisi metodu servis gibi kullanabilmektedir ve platform bağımsız olarak farklı
uygulamalar ile kolay entegrasyon sağlanabilmektedir.




                                                                                                154
                   Şekil 5. Essence Örün İstemcisi Yürütme Eklentisi Ekranı
   Essence çerçevesi süreç otomasyon yazılımı, istemci düzlem bağımsızlığı ve tüm-
leşme yetenekleri nedeniyle örün tabanlı teknolojiler ile geliştirilmiştir. Geliştirme or-
tamı için Visual Studio 2017 kullanılmıştır. Sunucu bileşenleri, ASP.NET üzerinde
nesne yönelimli programlama kullanılarak C# dili ile istemci bileşenleri ise HTML,
CSS, JavaScript dilleri ve Bootstrap çerçevesi [17] ile geliştirilmiştir. Veri katmanında,
programlama için T-SQL, sunucu hizmetleri için Microsoft SQL Server 2012
kullanılmıştır. İstemci sunucu iletişiminde ise RESTAPI üzerinden AJAX teknolojisi
ve JSON veri biçimi kullanılmıştır.


5      Sonuçlar

Yazılım ve sistem geliştiren gruplar, farklı ve çok sayıda pratik ve yöntem kullanabild-
iği için soyutlama katmanından faydalanılarak tüm pratik, yöntem ve modeller
karşılanmaya çalışılmıştır. Bu şekilde, aynı kurum içerisinde farklı veya aynı ürün/
proje için çalışan grupların kendi çalışma alanlarında faklı pratik ve yöntemler kullan-
abilmesi Essence Çerçevesinin temel hedefi doğrultusunda desteklenmiştir.
   Tüm ürün ve proje çalışmalarını ortak bir altyapı ile iş birliğine açmak, yönetmek ve
izlemek için kullanılan pratik ve yöntemlere ontoloji tabanlı yaklaşılması
desteklenmiştir. Bu amaçla, tespit edilecek olan rol, etkinlik, iş ürünü ve denetim diz-
ilerinin uygulamaya öğretilebileceği ontoloji kitaplığı sağlanmıştır.
   Endüstride çok sayıda pratik ve bunlara ait rol, etkinlik, iş ürünü bulunması nedeni-
yle bu katmanda yapılan nesne genelleştirme çalışması ile yöntem katmanında bu prati-
klere ait nesnelerin çakışmasının yönetimi için özel bir çaba harcanması gerekmiştir.




                                                                                             155
   Otomasyon yazılımı, YGY araçlarından veri/durum çekme ve çekilen verileri çe-
kirdek üzerinde birleştirme yeteneği ile süreç eşgüdümü veya Tümleştirme Göbeği2
gibi konulara evrilme ufku açmıştır.
   Otomasyon yazılımı üzerinde, tüm projelerin durumlarının birbirleri ile ilişkisel
olarak izlenebilmesi sonucunda kurumsal portföy yönetimi için ufuk açılmıştır.
   Geliştirme gruplarının iş birliğinin doğrudan artırılabilmesi ve farklı araç setine dö-
nük ek tümleştirme sorun ve maliyetlerinin azaltılması için Takım Geliştirme Sistem-
lerinin ortak kullanımı önemli görülmektedir.


    Teşekkür. Yazarlar HAVELSAN yönetimine çalışmaya verdiği destek için teşekkürler eder-
ler.


Referanslar

  1. P. Feiler and W. Humphrey, "Software Process Development and Enactment:Concepts and
     Definitions," Software Engineering Institute, 1992.
  2. M. Kennaley, SDLC 3.0: Beyond a Tacit Understanding of Agile, Fourth Medium Press,
     2010.
  3. W. A. Hosier, "Pitfalls and Safeguards in Real-Time Digital Systems with Emphasis on
     Programming," IRE Transactions on Engineering Management, Vols. EM-8, no. 2, pp. 99-
     115, 1961.
  4. W.W.Royce, "Managing the Development of Large Software Systems," Proceedings of
     IEEE WESCON 26 (August): 1–9, pp. pp.328-338, 1970.
  5. O. M. Group, "Software & Systems Process Engineering Metamodel™ (SPEM™),"
     [Online]. Available: http://www.omg.org/spec/SPEM/. [Accessed 05 06 2017].
  6. O. M. Group, "Essence™ - Kernel And Language For Software Engineering Methods
     (Essence)," [Online]. Available: http://www.omg.org/spec/Essence/. [Accessed 05 06
     2017].
  7. G. Giray, "Yazılım Geliştirme Süreci Uyarlama İçin Bir Çerçeve Önerisi," in Ulusal
     Yazılım Mühendisliği Sempozyumu, İzmir, 2015.
  8. Project Management Institute, A Guide to the Project Management Body of Knowledge
     (PMBOK Guide), Newtown Square: Project Management Institute, 2013.
  9. J. S. Reel, "Critical success factors in software projects," IEEE Software, vol. 16, no. 3, pp.
     18-23, 1999.
 10. K. Schwaber and J. Sutherland, "The Scrum Guide," 2014.
 11. A. McDonough, "Munich Re and ESSENCE – Kernel and Language for Software
     Engineering Methods: A Case Study," Object Management Group, 2014.
 12. D. Teichroew and E. A. Hershey, "PSL/PSA a computer-aided technique for structured
     documentation and analysis of information processing systems," in Proceedings of the 2nd
     international conference on Software engineering, 1976.


2 Tümleştirme Göbeği: Farklı Yazılım Geliştirme işlevlerine dönük çalışan uygulamalarının veri

   değişimi yapabilmelerini sağlayan merkezi araçlara verilen isimdir. (ing. Hub).




                                                                                                       156
13. Y.Macit, E.Tüzün, K.Ince, A.I.Aytekin, «Büyük Ölçekli Bir Organizasyonda Uygulama
    Yaşam Döngüsü Yönetimi Uygulama Deneyimi,» Proceedings of the 8th Turkish National
    Software Engineering Symposium, 2014.
14. C. Rolland, "Modeling the Requirements Engineering Process," in 3rd European-Japanese
    Seminar on Information Modelling and Knowledge Bases, 1993.
15. G. Giray, E. Tüzün, B. Tekinerdogan and Y. Macit, "Systematic approach for mapping
    software development methods to the essence framework," in Proceedings of the 5th
    International Workshop on Theory-Oriented Software Engineering, 2016.
16. I. Jacobson and e. al., Object Oriented Software Engineering, Addison-Wesley, 1992.
17. "Bootstrap v.3.3.7," [Online].      Available:   http://getbootstrap.com/getting-started/.
    [Accessed 13 Haziran 2017].




                                                                                                 157