<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Essence Süreç Modelleme Çerçevesi için Otomasyon Yazılımı Geliştirme Deneyimi</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Yagup Macit</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Çağdaş Üsfekes</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ahsen İkbal Aytekin</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Eray Tüzün</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>HAVELSAN Bilişim Hizmetleri Müdürlüğü</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>HAVELSAN Teknoloji ve Akademi Direktörlüğü</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ankara</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Türkiye</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Anahtar Kelimeler: Yazılım Geliştirme Yaşam Döngüsü Yönetimi</institution>
          ,
          <addr-line>Yazılım Süreçleri, Süreç Otomasyonu, Yazılım Proje Yönetimi, Essence Çerçevesi</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>HAVELSAN Bilişim Hizmetleri Müdürlüğü</institution>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>HAVELSAN Teknoloji ve Akademi Direktörlüğü 06510 Ankara</institution>
          ,
          <country country="TR">Türkiye</country>
        </aff>
      </contrib-group>
      <fpage>147</fpage>
      <lpage>157</lpage>
      <abstract>
        <p>Ö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önergeleri, genellikle ilerlemenin doküman üzerinden izlenmesi temeline dayanmaktadı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ü zorluklar 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.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>today's information age, information systems which produces automation
solutions for other industries are not expected to carry out their development activities
with document-based only approaches. Transforming the development
guidelines, some of which are well-defined with certain usage practices, into
automation 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
directoperable automation infrastructure for this common ground, and currently, the
progress is monitored with the help of physical cards. In this study, we have
reported on our experiences on creation of a software model based on the Essence
framework’s domain language to support a common process automation
application.
1</p>
    </sec>
    <sec id="sec-2">
      <title>Giriş</title>
      <p>
        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 [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Yazılım üretimi, çok sayıda pratik,
yöntem ve süreç [
        <xref ref-type="bibr" rid="ref13 ref2">2</xref>
        ] 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 [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] ve Royce [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] ile başlayan yanıt verme çabaları
günümüzde de devam etmektedir.
      </p>
      <p>
        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
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] ve Essence [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] 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
otomasyon yazılımı geliştirilmesi, deneyimleri paylaşılmıştır.
      </p>
      <p>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.</p>
    </sec>
    <sec id="sec-3">
      <title>Essence Çerçevesi</title>
      <p>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.</p>
      <p>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
ihtiyacı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.</p>
      <p>
        Şekil 1. Essence Çekirdeği ve Odak Noktaları [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]
1 Odak: ALPHA (Abstract-Level Progress Health Attribute) olarak tanımlanmaktadır.
      </p>
      <p>Essence Çekirdeğini oluşturan her bir odak, faklı yaşam döngüsü basamağı ve
basamaklar arasındaki geçiş denetimleri ile tüm sürecin sağlığı hakkında soyut seviyede
bilgi sağlamaktadır.</p>
      <p>Essence Çerçevesi, sağlamış olduğu dil ve hazır çekirdek ile yazılım geliştirme
çabaları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
pratikleri ve yöntemleri aynı ortak zemin altında tanımlanabilmektedir. Tanımlanan
yöntemlerin, 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</p>
    </sec>
    <sec id="sec-4">
      <title>Motivasyon</title>
      <p>
        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 [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Yazılım projeleri de çaba ve çıktılar
açısından 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 [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]
[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], projenin yürütülmesi ve izlenmesi için temel unsurlar olarak karşımıza
çıkmaktadır. Birden çok projenin yürütülmekte olduğu kurumlarda, farklı yöntem ve
pratiklerin 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 [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>
        Yazılım Geliştirme Yaşam Döngüsü (YGY) evrelerinde bazı çıktılar, CASE [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]
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 [
        <xref ref-type="bibr" rid="ref14">13</xref>
        ]. Bu tür kurumsal
altyapılar, barındırılan projelerin/ürünlerin çalışmalarını belirli odak noktaları
üzerinden ortak bir zeminde yönetme ve izleme ihtiyacını belirgin hale getirmektedir.
      </p>
      <p>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ı
gerekmektedir. 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.</p>
    </sec>
    <sec id="sec-5">
      <title>Geliştirme Deneyimi</title>
      <p>
        Süreç modellemesi, temel olarak Şekil 2’de görülen üç düzey ile tanımlanmaktadır
[
        <xref ref-type="bibr" rid="ref15">14</xref>
        ]. Düzey-2’de, alana özgü dil ve yapı taşlarının tanımlandığı üst model yer
almaktadı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.
      </p>
      <p>
        Şekil 2. Süreç Modeli Düzeyleri [
        <xref ref-type="bibr" rid="ref15">14</xref>
        ]
      </p>
      <p>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.</p>
      <p>Dil Bileşeni: Düzey-2 için Essence Metamodel XMI şeması, alan dil belirtimi olarak
devralınmış ve korunmuştur.</p>
      <p>Ç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</p>
      <p>
        Ontoloji (Pratikler) Bileşeni: Scrum gibi endüstriyel pratiklerin metin
kaynaklarından yola çıkılarak elde edilen odak, etkinlik, rol, iş ürünü gibi ontolojik kavramların
sistematik eşleme [
        <xref ref-type="bibr" rid="ref16">15</xref>
        ] ile işlendiği ve çekirdeğin genişletildiği düzeydir.
      </p>
      <p>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.</p>
      <p>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
ç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.</p>
      <p>Yazılım Bileşenleri; düzey, çalışma konusu ve örnek nesne açısından Tablo 1’de
özetlenmiştir.</p>
      <p>Tablo 1. Otomasyon Yazılımı Düzey Örneklemesi</p>
      <p>
        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 [
        <xref ref-type="bibr" rid="ref17">16</xref>
        ]
yaklaşı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ç
eklentilerinin yönetimi açısından katkıları görülmüştür.
      </p>
      <p>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şenlerinde yapılabilmektedir.</p>
      <p>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
Ontoloji 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.
Şekil 3. Essence Model Düzeyleri ve Mimari İzdüşümü</p>
      <p>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
nitelik 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.</p>
      <p>İ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ümleş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.</p>
      <p>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.
Şekil 4. Yazılım Konumlanma ve İletişim Mimarisi</p>
      <p>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
listelenmiş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.
Şekil 5. Essence Örün İstemcisi Yürütme Eklentisi Ekranı</p>
      <p>
        Essence çerçevesi süreç otomasyon yazılımı, istemci düzlem bağımsızlığı ve
tümleşme yetenekleri nedeniyle örün tabanlı teknolojiler ile geliştirilmiştir. Geliştirme
ortamı 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 [
        <xref ref-type="bibr" rid="ref18">17</xref>
        ] 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
      </p>
      <p>Sonuçlar
Yazılım ve sistem geliştiren gruplar, farklı ve çok sayıda pratik ve yöntem
kullanabildiğ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
kullanabilmesi Essence Çerçevesinin temel hedefi doğrultusunda desteklenmiştir.</p>
      <p>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
dizilerinin uygulamaya öğretilebileceği ontoloji kitaplığı sağlanmıştır.</p>
      <p>Endüstride çok sayıda pratik ve bunlara ait rol, etkinlik, iş ürünü bulunması
nedeniyle bu katmanda yapılan nesne genelleştirme çalışması ile yöntem katmanında bu
pratiklere ait nesnelerin çakışmasının yönetimi için özel bir çaba harcanması gerekmiştir.</p>
      <p>Otomasyon yazılımı, YGY araçlarından veri/durum çekme ve çekilen verileri
çekirdek ü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.</p>
      <p>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.</p>
      <p>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
Sistemlerinin ortak kullanımı önemli görülmektedir.</p>
      <p>Teşekkür. Yazarlar HAVELSAN yönetimine çalışmaya verdiği destek için teşekkürler
ederler.</p>
    </sec>
    <sec id="sec-6">
      <title>Referanslar</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>P.</given-names>
            <surname>Feiler</surname>
          </string-name>
          and
          <string-name>
            <given-names>W.</given-names>
            <surname>Humphrey</surname>
          </string-name>
          ,
          <article-title>"Software Process Development and Enactment:Concepts and Definitions,"</article-title>
          <source>Software Engineering Institute</source>
          ,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>M.</given-names>
            <surname>Kennaley</surname>
          </string-name>
          , SDLC
          <volume>3</volume>
          .
          <article-title>0: Beyond a Tacit Understanding of Agile</article-title>
          , Fourth Medium Press,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>W. A.</given-names>
            <surname>Hosier</surname>
          </string-name>
          ,
          <article-title>"Pitfalls and Safeguards in Real-Time Digital Systems with Emphasis on Programming," IRE Transactions on Engineering Management, Vols</article-title>
          . EM-
          <volume>8</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>99</fpage>
          -
          <lpage>115</lpage>
          ,
          <year>1961</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>W.W.</given-names>
            <surname>Royce</surname>
          </string-name>
          ,
          <article-title>"</article-title>
          <source>Managing the Development of Large Software Systems," Proceedings of IEEE WESCON 26</source>
          (
          <year>August</year>
          ):
          <fpage>1</fpage>
          -
          <issue>9</issue>
          , pp. pp.
          <fpage>328</fpage>
          -
          <lpage>338</lpage>
          ,
          <year>1970</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>O. M.</given-names>
            <surname>Group</surname>
          </string-name>
          ,
          <article-title>"Software &amp; Systems Process Engineering Metamodel™ (SPEM™),"</article-title>
          [Online]. Available: http://www.omg.org/spec/SPEM/.
          <source>[Accessed 05 06</source>
          <year>2017</year>
          ].
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>O. M.</given-names>
            <surname>Group</surname>
          </string-name>
          , "
          <string-name>
            <surname>Essence</surname>
          </string-name>
          ™
          <article-title>- Kernel And Language For Software Engineering Methods (Essence),"</article-title>
          [Online]. Available: http://www.omg.org/spec/Essence/.
          <source>[Accessed 05 06</source>
          <year>2017</year>
          ].
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>G.</given-names>
            <surname>Giray</surname>
          </string-name>
          ,
          <article-title>"Yazılım Geliştirme Süreci Uyarlama İçin Bir Çerçeve Önerisi," in Ulusal Yazılım Mühendisliği Sempozyumu</article-title>
          , İzmir,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Project</given-names>
            <surname>Management Institute</surname>
          </string-name>
          ,
          <article-title>A Guide to the Project Management Body of Knowledge (PMBOK Guide)</article-title>
          ,
          <source>Newtown Square: Project Management Institute</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>J. S.</given-names>
            <surname>Reel</surname>
          </string-name>
          ,
          <article-title>"Critical success factors in software projects,"</article-title>
          <source>IEEE Software</source>
          , vol.
          <volume>16</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>18</fpage>
          -
          <lpage>23</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>K.</given-names>
            <surname>Schwaber</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Sutherland</surname>
          </string-name>
          ,
          <article-title>"The Scrum Guide,"</article-title>
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>A. McDonough</surname>
          </string-name>
          ,
          <article-title>"Munich Re and ESSENCE - Kernel and Language for Software Engineering Methods: A Case Study,"</article-title>
          <source>Object Management Group</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>D.</given-names>
            <surname>Teichroew</surname>
          </string-name>
          and
          <string-name>
            <given-names>E. A.</given-names>
            <surname>Hershey</surname>
          </string-name>
          ,
          <article-title>"PSL/PSA a computer-aided technique for structured documentation and analysis of information processing systems,"</article-title>
          <source>in Proceedings of the 2nd international conference on Software engineering</source>
          ,
          <year>1976</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          2
          <string-name>
            <given-names>Tümleştirme</given-names>
            <surname>Göbeği</surname>
          </string-name>
          <article-title>: 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</article-title>
          . Hub).
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          13.
          <string-name>
            <given-names>Y.</given-names>
            <surname>Macit</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Tüzün</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Ince</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.I.Aytekin</given-names>
            , «
            <surname>Büyük Ölçekli Bir Organizasyonda Uygulama Yaşam Döngüsü Yönetimi Uygulama Deneyimi</surname>
          </string-name>
          ,
          <source>» Proceedings of the 8th Turkish National Software Engineering Symposium</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          14.
          <string-name>
            <surname>C. Rolland</surname>
          </string-name>
          ,
          <article-title>"Modeling the Requirements Engineering Process,"</article-title>
          <source>in 3rd European-Japanese Seminar on Information Modelling and Knowledge Bases</source>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          15. G. Giray,
          <string-name>
            <given-names>E.</given-names>
            <surname>Tüzün</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Tekinerdogan</surname>
          </string-name>
          and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Macit</surname>
          </string-name>
          ,
          <article-title>"Systematic approach for mapping software development methods to the essence framework,"</article-title>
          <source>in Proceedings of the 5th International Workshop on Theory-Oriented Software Engineering</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          16. I. Jacobson and e. al.,
          <source>Object Oriented Software Engineering</source>
          , Addison-Wesley,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          17.
          <article-title>"Bootstrap v.3.3.7,"</article-title>
          [Online].
          <source>[Accessed 13 Haziran</source>
          <year>2017</year>
          ].
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>