<!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>Yazılım Geliştirme Süreci Uyarlama İçin Bir Çerçeve Önerisi</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Görkem Giray</string-name>
          <email>gorkem.giray@izmir.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>İzmir Üniversitesi</institution>
          ,
          <addr-line>Yazılım Mühendisliği, Yarı zamanlı öğretim görevlisi</addr-line>
        </aff>
      </contrib-group>
      <fpage>35</fpage>
      <lpage>46</lpage>
      <abstract>
        <p>Özet. Yazılım geliştirme süreçlerinin gereksinimler doğrultusunda uyarlanmasında rehberlik edecek kapsamlı bir çerçeve bulunmamaktadır. Bu eksiklik birçok araştırmacı tarafından irdelenmiş ve yazılım geliştirme sürecinin uyarlanması için değerlendirilmesi gereken etkenler hakkında çeşitli öneriler verilmiştir. Bu öneriler, bu alandaki bilgi birikimini ortak bir terminoloji oluşturacak şekilde sistemleştirmekten ve bu etkenlerin yazılım geliştirme sürecinde gerçekleştirilen mevcut etkinliklerle bağlantılarını kurmaktan uzaktır. Bu bildiride, (1) yazılım geliştirme sürecini uyarlamak için değerlendirilmesi gereken etkenlerin Essence çerçevesinin çekirdeği genişletilerek ifade edilmesi ve bu etkenlerin nasıl değerlendirileceğine dair önerilerin derlenmesi, (2) yazılım geliştirme sürecinde gerçekleştirilmesi olası etkinliklerin standart biçimde tanımlanması, (3) etkenler ve etkinlikler arasındaki bağlantıların kurularak yazılım geliştirme sürecinin uyarlanmasına yardımcı olacak önerilerin oluşturulması için bir yol haritası önerilmektedir. Bu yolda kullanılacak terminoloji için yazılım geliştirme sürecindeki önemli kavramları modelleyen Essence çerçevesi temel alınmıştır.</p>
      </abstract>
      <kwd-group>
        <kwd>Anahtar Kelimeler</kwd>
        <kwd>Yazılım geliştirme süreci</kwd>
        <kwd>süreç uyarlama</kwd>
        <kwd>Essence çerçevesi</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        önceden tanımlanmış girdilerin, daha çok üretim makinelerinin ve iyi tanımlanmış
etkinlikleri uygulayan insanların bulunduğu bir sürecin ürettiği çıktıların nitelikleri ve
niceliği yüksek seviyede tahmin edilebilir olmaktadır. Yazılım geliştirme sürecinde de
otomasyonun görece az ve insanın karar aldığı durumların görece fazla olduğu
görülmektedir. Bununla paralel olarak yazılım geliştirme sürecinin çıktısı olan
yazılımın özünde bulunan karmaşıklık, uyumluluk, değişebilirlik ve görünmezlik
özellikleri de [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] süreçte yaşanabilecek birçok zorluğa işaret etmektedir.
      </p>
      <p>
        Yazılımın özünde bulunan özelliklerin getirdiği zorluğun yanında (1) yazılım
mühendisliğinde kapsayıcı teorilerin eksikliği [
        <xref ref-type="bibr" rid="ref4 ref5 ref6">4, 5, 6</xref>
        ], (2) her yazılım geliştirme
projesinin farklı dinamiklerinin olması ve (3) yazılım geliştirme sürecindeki
etkinliklerin çoğunun endüstri tarafından geliştirilmesi [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] yazılım geliştirme sürecine daha
sistemli bir yaklaşıma gereksinim olduğuna işaret etmektedir.
      </p>
      <p>
        Yazılım mühendisliğinde kapsayıcı teorilerin eksikliği ve buna duyulan gereksinim
bazı çalışmalarda dile getirilmiştir [
        <xref ref-type="bibr" rid="ref4 ref5 ref6">4, 5, 6</xref>
        ]. Benzer şekilde yazılım geliştirme süreci
için de kapsayıcı, bilgi ve deneyim birikimini birleştirici bir teoriye ihtiyaç
duyulmaktadır [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Temelde bu teori yokluğu nedeniyle yazılım geliştirme sürecinde kullanılan
etkinliklerin önemli bir bölümünün tasarımları geçmişteki deneyimlere dayanmaktadır
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Bu deneyimler, belirli koşullar altında sağduyu ile yapılan tercihler ile
şekillenmektedir [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Proje yönetimi çalışma alanında her projenin biricik olduğu ve takım,
paydaşlar gibi birçok boyuta göre değişkenlik gösterdiği [
        <xref ref-type="bibr" rid="ref11 ref12">11, 12</xref>
        ], yazılım
mühendisliği alanında da benzer şekilde her projenin farklı dinamikleri olduğu [
        <xref ref-type="bibr" rid="ref13 ref14 ref15 ref16">13, 14, 15, 16</xref>
        ]
genel olarak kabul edilmektedir. Bu kabul, yapılan tercihleri etkileyen etkenlerin
oluşturduğu durumların çokluğunun bir göstergesidir. Bu kadar çeşitliliğin olduğu bir
ortamda yazılım geliştirme sürecinde gerçekleştirilen etkinliklerin genellikle
endüstride tasarlanması da [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] ortak bir kavramlar bütününün ortaya çıkmasını
zorlaştırmaktadır. Bunun temel nedeninin endüstrideki en önde gelen amacın kar etmek
olduğu ve bilimin ilerlemesine katkıda bulunmanın kar etme amacının yanında çok
daha düşük bir öneme sahip olduğu söylenebilir. Dolayısıyla elde edilen deneyimlerin
nesnel biçimde değerlendirilerek genel olarak kabul görmüş bir terminolojiyle
paylaşılması endüstrideki ana amaçlardan biri değildir. Bu da endüstride elde edilen
deneyimlerin paylaşılmasını ve karşılaştırılmasını çok zorlaştırmakta hatta bazı
durumlarda imkansız kılmaktadır.
      </p>
      <p>
        Cockburn, yazılım mühendisliği alanında deneyimlerin harmanlanmasından elde
edilen modellerin aşağıdaki dört önemli gereksinimi karşılama konusunda eksik
kaldığını bildirmektedir [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]:
      </p>
      <p>1. Yazılım geliştirme projeleri için önemli olan etkenlerin ve bunlar arasındaki
ilişkilerin belirlenmesi,</p>
      <p>2. Yazılım geliştirme projelerinde elde edilen sonuçların nedenlerinin
sistematik olarak anlaşılması,
3. Ortak bir terminolojinin oluşması,
4. Yazılım geliştirme projelerinde gerçekleştirilecek etkinliklerin belirlenmesi
konusunda geçmiş deneyimlerin değerlendirilmesi.</p>
      <p>Endüstrideki deneyimlerin, kar ya da başka bir öznel fayda elde etme amacı
gütmeden, nesnel olarak değerlendirilebilmesi, paylaşılabilmesi ve karşılaştırılabilmesi
önemli bir gereksinimdir. Bu gereksinimin karşılanabilmesi için ilk adım elde edilen
deneyimlerin ortak tanımlar, kavramlar etrafında sistemleştirilmesidir; yani ortak,
kapsamlı bir terminolojinin oluşturulmasıdır. Bu sistemli yaklaşım, gerek endüstride
gerekse akademide üretilen bilginin nesnel biçimde değerlendirilmesini, verimli
biçimde paylaşılmasını ve öğretilmesini, evrilmesini sağlayacaktır; kısacası bu bilgi
birikiminin değerini arttıracaktır.</p>
      <p>
        Bu bildiride bir yazılım geliştirme sürecinde gerçekleştirilecek etkinlikler
seçilirken değerlendirilmesi önerilen etkenler, yazılım geliştirme işinin özündeki
temel kavramları ve bu kavramlar arasındaki ilişkileri modelleyen Essence
çerçevesinin çekirdeği [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] genişletilerek sunulmuştur. Buradaki temel amaç ortak ve
kapsamlı bir terminoloji geliştirmektir. Bu terminoloji, yazılım geliştirme sürecinde
kullanılan etkinliklerin (eşli programlama [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], Sprint planlama [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], Günlük Scrum
[
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], Sprint değerlendirme [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], iterasyon planlama [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], kullanım senaryolarının ve
aktörlerin bulunması [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] gibi) standartlaştırılmasıyla ve etkenlerin değerlendirme
sonuçlarıyla etkinlikler arasındaki bağlantıların kurulmasıyla (örneğin, küçük
takımlarda günlük toplantıların yapılması gibi) Şekil 1’de gösterildiği gibi yazılım
geliştirme sürecinin uyarlanması için yol gösterici olacaktır. Bu terminoloji üzerine
bina edilmiş olan bilgi birikimi de deneyimler ve deneysel çalışmalar doğrultusunda
iyileşecek ve genişleyecektir. Bu ortak terminoloji daha fazla deneyimin belgelenmesi
ve paylaşılması noktasında da faydalı olacaktır.
      </p>
      <p>

</p>
    </sec>
    <sec id="sec-2">
      <title>Etkenlerin değerlendirme önerileri</title>
    </sec>
    <sec id="sec-3">
      <title>Etkinlikler</title>
    </sec>
    <sec id="sec-4">
      <title>Etkenlerle etkinlikler arasındaki bağlantılar</title>
    </sec>
    <sec id="sec-5">
      <title>Uyarlanmış yazılım geliştirme süreci</title>
      <p>Dönüt
(deneyimler, deneysel çalışmalar)
Şekil 1. Yazılım geliştirme sürecinin uyarlanması</p>
      <p>Bildirinin ikinci bölümünde literatürdeki ilgili çalışmalardan örnekler verilmiş,
üçüncü bölümünde Essence çerçevesi tanıtılmış, dördüncü bölümünde Essence
çerçevesi genişletilerek bir yazılım geliştirme sürecinin uyarlanması için nasıl bir
çerçeve önerilebileceği konusunda bir yol haritası sunulmuştur. Böyle bir çerçevenin
oluşturulması durumunda bu çerçevenin nasıl kullanılabileceğine bir örnek yine
dördüncü bölümde verilmiş, beşinci bölümde sonuçlar ve gelecekte yapılması planlanan
çalışmalar sunulmuştur.
2</p>
      <p>İlgili Çalışmalar</p>
      <p>
        Boehm ve Turner, bir yazılım geliştirme yöntemi seçmek için beş etkenin
değerlendirilmesi gerektiğini belirtmişlerdir [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. Bu beş etken değerlendirilerek çevik
yöntemlerin önerdiği etkinliklerin disipline edilmesi, kısacası mevcut koşullar
doğrultusunda yazılım geliştirme sürecinin özelleştirilmesi önerilmektedir.
      </p>
      <p>
        Çevik yazılım geliştirme yöntemleri şemsiyesi altında sınıflandırılan Crystal
yöntem ailesinde gerçekleştirilecek etkinliklerin seçimi için kullanılan iki temel boyut
takım büyüklüğü ve yazılım hatalarına karşı tolerans olarak belirlenmiştir [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. Takım
büyüklüğü, yazılım geliştirme için önemli olan iletişim ve koordinasyon
gereksinimleri için önemli bir gösterge olarak ele alınmaktadır. Yazılım hatalarına karşı tolerans
ise yazılım sistemindeki bir hatadan dolayı kaynaklanabilecek bir rahatlığın kaybı,
maddi kayıplar ve insan hayatının olumsuz etkilenmesi gibi bir yelpazeyi temsil
etmektedir. Bu iki boyuta göre Crystal yöntem ailesindeki Crystal Clear, Crystal
Yellow, Crystal Orange ve Crystal Red yöntemlerinden birisinin seçimi yapılmaktadır.
      </p>
      <p>
        Ambler çevik yazılım geliştirme yöntemlerinin büyük ölçekli projelerde
kullanılmasında değerlendirilmesi gereken dokuz etken önermiştir [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. Ambler'in
çalışmasının devamı niteliğindeki bir başka çalışmada, Ambler ve Lines çevik yazılım
geliştirme yöntemlerinin önerdiği etkinlikler kullanılarak mevcut koşullara uygun
uyarlanmış bir çevik yazılım geliştirme yönteminin elde edilebileceğini belirtmişlerdir
[
        <xref ref-type="bibr" rid="ref25">25</xref>
        ].
      </p>
      <p>
        Kruchten, çevik yazılım geliştirme etkinliklerinin seçimi için değerlendirilmesi
gereken etkenleri içeren bir bağlamsal model önermiştir [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. Bu modelde,
organizasyonel seviyedeki beş etken proje seviyesindeki sekiz etkeni etkilerken bu 8 etken
de projede gerçekleştirilecek etkinlikleri belirlemede yol gösterici olacağı
belirtilmektedir.
      </p>
      <p>
        Clarke ve O’Connor, en uygun yazılım geliştirme sürecinin, yazılım geliştirme
ortamının durumsal özelliklerine bağlı olduğunu belirtmişlerdir [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]. Bu durumsal
özellikleri literatürdeki çalışmalardan derleyerek 44 etken olarak listelemişler ve bu
etkenleri 8 başlık altında sınıflandırmışlardır. Bu etkenlerin nasıl değerlendirileceği ve bu
değerlendirme sonucunda neler yapılabileceği konularında herhangi bir yönlendirme
bulunmamaktadır.
      </p>
      <p>
        Klaus ve Kuhrmann, yazılım geliştirme sürecinin uyarlanması için
değerlendirilmesi gereken proje özelliklerini 49 etkenden oluşan bir katalogda
toplamışlardır [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Bu çalışmada etkenlerin değerlendirilmesi sonucunda atılabilecek
adımlar çok genel öneriler (örneğin kullanıcı katılımını yoğunlaştır, sistem mimarisi
üzerine çalışmaları yoğunlaştır, belgelemeyi arttır, belgelemeyi azalt, iterasyon
sayısını arttır gibi) şeklinde verilmiştir.
      </p>
      <p>Tablo 1’de ilgili çalışmalarda belirtilen etkenlerin bazıları listelenmiştir.</p>
      <p>
        Yazılım geliştirme yöntemlerinin özelleştirilmesine yönelik çalışmaların yanında
bir yazılımın yaşam döngüsü için standart bir terminoloji oluşturma amacı güden
standartlar da bulunmaktadır. IEEE STD 12207-2008 standardı bir yazılımın tüm
yaşam döngüsünü tanımlamak için genel bir süreç çerçevesi önermektedir [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ]. Bu
standardın amacı yazılım sisteminin paydaşları arasındaki iletişimi kolaylaştırmak
için standart süreçler, yani ortak bir terminoloji, sağlamaktır [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ]. Bu standartta
belirtilen süreçlerin risk, karmaşıklık, büyüklük gibi çeşitli etkenlere göre uyarlanması
gerektiği belirtilmiştir [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
3
      </p>
      <sec id="sec-5-1">
        <title>Essence Çerçevesi</title>
        <p>
          Essence çerçevesi, SEMAT (Software Engineering Method and Theory) girişimi
tarafından yazılım geliştirmek için kullanılan yöntemlerin standartlaştırılması
amacıyla oluşturulmuştur. Şekil 2’de gösterildiği gibi çerçeve 4 temel bileşenden
oluşmaktadır [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]:
        </p>
        <p>Tablo 1. Yazılım geliştirme süreci uyarlama için değerlendirilmesi önerilen
etkenlerin kısmi listesi</p>
        <sec id="sec-5-1-1">
          <title>Etken</title>
          <p>Paydaşların yazılım
geliştirme deneyimi
Paydaşların
ulaşılabilirliği
Paydaşların sayısı
Fırsatın
zamanlaması
Gereksinimlerin
yapılabilirliği
Gereksinimlerin
değişim sıklığı
Yazılım sisteminin
karmaşıklığı
Yazılım sistemi –
Yeni/Yenileme
Takımın büyüklüğü
Takımın kültürü
Takımın alan
bilgisi
Takımın teknik
bilgisi
Yazılım hatalarına
karşı tolerans
Gereksinimlerin
karşılanmasındaki
esneklik
Yönetim desteği
Paydaşların takımı
destekleme tarzı</p>
          <p>
            Etkenin
belirtildiği
çalışmalar
 Dil: Çekirdeği, etkinlikleri ve yöntemleri tanımlamak için kullanılan dil ögelerini
ve bu ögeler arasındaki ilişkileri içerir [
            <xref ref-type="bibr" rid="ref18">18</xref>
            ]. Dil ögelerine örnek olarak alfa, alfa
durumu, iş ürünü, etkinlik uzayı, etkinlik ve yetkinlik; bu ögeler arasındaki bir
ilişkiye de bir etkinliğin bazı yetkinlikleri gerektirmesi verilebilir [
            <xref ref-type="bibr" rid="ref18">18</xref>
            ].
 Çekirdek: Yazılım geliştirme sürecinde bulunan, etkinliklerden ve yöntemlerden
bağımsız olarak bu süreçteki önemli kavramları içerir [
            <xref ref-type="bibr" rid="ref18">18</xref>
            ]. Bu kavramları ifade
etmek için alfa kavramı kullanılır [
            <xref ref-type="bibr" rid="ref18">18</xref>
            ]. Alfalar, (1) yazılım geliştirme sürecinin
temelinde bulunan ortak kavramları temsil eder; (2) yazılım geliştirme sürecinin
nasıl ve ne kadar sağlıklı ilerlediğinin izlenmesini ve değerlendirilmesini sağlar;
(3) yazılım mühendisliğindeki yöntemleri ve etkinlikleri tanımlamak için bir
kavramlar temeli sağlar [
            <xref ref-type="bibr" rid="ref18">18</xref>
            ].
 Etkinlikler: Bir etkinlik yazılım geliştirme sürecinin bir yönünün nasıl ele
alınacağını tanımlar. Bir etkinlik, net bir amaç ve bu amaca ulaşabilmek için çeşitli
yönlendirmeler içermektedir. Etkinlik için bir örnek olarak gereksinimlerin
belirtimi için kullanıcı hikayelerinin kullanımı gösterilebilir [
            <xref ref-type="bibr" rid="ref29">29</xref>
            ].
 Yöntemler: Bir yöntem ise çekirdeğin ve bunun etrafında konumlandırılan
etkinliklerden oluşur [
            <xref ref-type="bibr" rid="ref18">18</xref>
            ].
          </p>
          <p>Yöntemler
Yöntem A</p>
          <p>Yöntem B
Etkinlikler
Çekirdek</p>
          <p>
            Dil
Şekil 2. Yöntem mimarisi [
            <xref ref-type="bibr" rid="ref7">7</xref>
            ]
3.1
          </p>
          <p>Çekirdek
Çekirdek, yazılım geliştirme sürecinin temelinde bulunan kavramları (alfalar) ve
bu alfalar arasındaki ilişkileri tanımlamaktadır. Bu alfaların ortak bir terminoloji
oluşturarak takım içindeki iletişimi daha verimli kılmada, zorlukları çözümlemede ve
yazılım geliştirme sürecinin verimini arttırma konusunda yardımcı olabileceği
belirtilmektedir.</p>
          <p>
            Çekirdekte bulunan alfalar üç temel ilgi alanına ayrılmıştır [
            <xref ref-type="bibr" rid="ref18">18</xref>
            ]: (1) Müşteri ilgi
alanı yazılım sisteminin canlı ortamda kullanımıyla, (2) çözüm ilgi alanı yazılım
sisteminin belirtimi ve geliştirilmesiyle, (3) çaba ilgi alanı ise takım ve takımın iş yapma
biçimiyle ilgili kavramları kapsamaktadır.
Çekirdekte bulunan alfalar ve bu kavramlar arasındaki ilişkiler Şekil 3’te
gösterilmiştir [
            <xref ref-type="bibr" rid="ref18">18</xref>
            ]. Yedi temel alfa üç ilgi alanında (müşteri, çözüm ve çaba)
gösterilmiştir.
1. Fırsat: Yazılım sistemini geliştirmek ya da değiştirmek için oluşan durumu, bir
başka deyişle paydaşların iş gereksinimlerinin tüm takım tarafından anlaşılmış
halini temsil eder. Fırsat, yazılım sisteminin geliştirilmesi için detaylı
gereksinimlerin oluşturulmasına rehberlik eder.
2. Paydaşlar: Yazılım sistemini etkileyecek ya da yazılım sistemi tarafından
etkilenecek kişileri, grupları, organizasyonları temsil eder. Paydaşlar, (1) fırsatı
tanımlar; (2) detaylı gereksinimlerin belirlenmesinde temel bilgi kaynağı olarak
davranır; (3) yazılım sistemini doğrudan kullanır ya da bu kullanımdan bir şekilde
etkilenir; (4) takımı yazılım geliştirme sürecinde destekler.
3. Gereksinimler: Yazılım sisteminin yapacaklarını ve bunları hangi koşullar altında
ve kalitede yapacağını tanımlar. Gereksinimler yapılacak işlerin kapsamını ve
kısıtlarını belirler.
4. Yazılım sistemi: Yazılımdan, donanımdan ve veriden oluşan sistemdir. Yazılım
sistemi (1) fırsatın değerlendirilmesine katkıda bulunur; (2) gereksinimleri karşılar.
5. İş: Bir sonucu elde etmek için yapılan zihinsel ya da fiziksel etkinliktir. İşler, (1)
fırsatın tanımladığı duruma uygun olarak belirlenir; (2) yazılım sistemini değiştirir.
6. Takım: Bir yazılım sisteminin geliştirilmesinde ve bakımında görev alan kişilerin
oluşturduğu gruptur. Bir ya da birden fazla takım (1) yazılım sistemini geliştirir ya
da değiştirir; (2) işleri planlar ve yapar; (3) işleri yaparken çeşitli iş yapma
biçimlerini kullanır.
7. İş yapma biçimi: Takımın gerçekleştirdiği etkinlikler ve kullandığı araçlardır. İş
yapma biçimi, yapılan işlerin nasıl yapılacağına rehberlik eder.
          </p>
          <p>değerlendirilmesi</p>
          <p>için yapılır
i
r
e
t
ş
ü
M
m
ü
z
ö
Ç
a
b
a
Ç</p>
          <p>Fırsat
rehberlik eder
Gereksinimler
kapsamını ve
kısıtlarını belirler</p>
          <p>
            Ng ve arkadaşlarının önerdiği gibi çekirdekteki alfaların özellikleri belirlenerek
çerçevenin genişletilmesi mümkündür [
            <xref ref-type="bibr" rid="ref30">30</xref>
            ]. Takım alfasının özelliklerine büyüklük ve
deneyim, yazılım sistemi alfasının özelliklerine ise büyüklük ve karmaşıklık örnek
olarak verilebilir [
            <xref ref-type="bibr" rid="ref30">30</xref>
            ]. Bunun yanında alfalar arasındaki ilişkilerin de özellikleri
tanımlanabilmektedir. Takım ve yazılım sistemi alfalarının arasındaki ilişkinin bir
özelliği olarak takımın yazılım sistemini sahiplenme seviyesi tanımlanabilir [
            <xref ref-type="bibr" rid="ref30">30</xref>
            ].
4
          </p>
          <p>Bir yazılım geliştirme sürecinin uyarlanmasında rehberlik edecek, Essence
çerçevesi kullanılarak bir çerçevenin oluşturulması için aşağıdaki adımların
gerçekleştirilmesi önerilmektedir.
 Alfaların ve alfalar arasındaki ilişkilerin özellikleri olarak yazılım geliştirme
sürecinin uyarlanmasını etkileyen etkenlerin belirlenmesi
 Etkenlerin nasıl değerlendirileceğine dair yönlendirmelerin derlenmesi
 Etkinliklerin standart bir biçimde tanımlanması
 Etkenler ve etkinlikler arasında bağlantıların kurularak yazılım geliştirme sürecinin
uyarlanması için önerilerin oluşturulması
 Ortak terminoloji kullanılarak yapılan deneylerden ve deneyim paylaşımlarından
gelen dönütler doğrultusunda etkenlerin, etkinliklerin, etken ve etkinlik arasındaki
bağlantıların, uyarlama önerilerinin düzeltilmesi, zenginleştirilmesi</p>
          <p>
            Ng ve arkadaşlarının çalışmasından [
            <xref ref-type="bibr" rid="ref30">30</xref>
            ] yola çıkılarak Essence çerçevesinin
çekirdeğinin ilgili çalışmalarda önerilen etkenler kullanılarak genişletilmesi ve bu
genişletilmiş çerçevenin yazılım geliştirme sürecindeki etkinliklerin seçiminde temel
olarak kullanılması hedeflenmektedir. Bu doğrultuda ilgili çalışmalarda bulunan
etkenlerin bazılarının çekirdekte bulunan alfalar ya da alfalar arasındaki ilişkilerle,
Şekil 4’te gösterildiği gibi, bağlantıları kurulmuştur.
          </p>
          <p>
            Etkenlerin nasıl değerlendirileceğine dair literatürdeki çalışmalar taranarak bir bilgi
tabanı derlenecektir. Bazı etkenler için çeşitli disiplinlerden teoriler, bazıları için uç
noktaların belirlendiği yelpazeler, bazıları içinse daha yapısal olmayan deneyimler
bilgi tabanını oluşturacaktır. Örneğin, takımların büyüklüğü etkeni için Cockburn
10’a kadar kişiden oluşan takımları küçük, 10 ile 40 arasında kişiden oluşan takımları
orta ölçekli olarak nitelendirmektedir [
            <xref ref-type="bibr" rid="ref9">9</xref>
            ]. Ambler 10-15 ya da daha az kişiden
takımları küçük, 10-15 ile 30-40 arasında sayıda kişiden oluşan takımları orta ölçekli,
30-40 kişiden fazla kişi içeren takımları ise büyük ölçekli olarak nitelendirmektedir
[
            <xref ref-type="bibr" rid="ref31">31</xref>
            ]. Yazılım sisteminin karmaşıklığı tek platformdaki basit bir sistemden çok
platformdaki karmaşık bir sisteme kadar uzanabilir. Yazılım sisteminde oluşan bir
problemden dolayı karşılaşılabilecek durum bir rahatlığın kaybedilmesinden, maddi
zarara ya da insanın hayatını kaybetmesine kadar gidebilir [
            <xref ref-type="bibr" rid="ref9">9</xref>
            ]. Bu duruma göre
yazılım sistemindeki hatalara karşı tolerans seviyesi belirlenebilir.
 Yazılım hatalarına
          </p>
          <p>karşı tolerans
 Esneklik</p>
          <p>Fırsat
 Zamanlama</p>
          <p>
            Yazılım geliştirme süreçlerinde gerçekleştirilen çok sayıda etkinlik bulunmaktadır.
Örnek olarak eşli programlama [
            <xref ref-type="bibr" rid="ref19">19</xref>
            ], sürekli bütünleştirme [
            <xref ref-type="bibr" rid="ref19">19</xref>
            ], Sprint planlama [
            <xref ref-type="bibr" rid="ref20">20</xref>
            ],
Günlük Scrum [
            <xref ref-type="bibr" rid="ref20">20</xref>
            ], Sprint değerlendirme [
            <xref ref-type="bibr" rid="ref20">20</xref>
            ], Sprint süreç gözden geçirme toplantısı
[
            <xref ref-type="bibr" rid="ref20">20</xref>
            ], iterasyon planlama [
            <xref ref-type="bibr" rid="ref21">21</xref>
            ], kullanım senaryolarının ve aktörlerin bulunması [
            <xref ref-type="bibr" rid="ref21">21</xref>
            ],
tasarımın gözden geçirilmesi [
            <xref ref-type="bibr" rid="ref21">21</xref>
            ] gibi bir süreç modeline özgü ya da bir süreç
modelinde yer alan etkinliklerin yanında resmi gözden geçirme, çalıştay, mülakat gibi daha
genel etkinlikler de verilebilir. Bu etkinlikler derlenirken her etkinliğin girdisinin,
çıktısının, giriş ve çıkış ölçütlerinin, paydaşların rollerinin belirlenmesi
gerekmektedir. Bunun yanında etkinliklerin detay seviyeleri birbirinden farklı olabileceği için bu
seviyeler dikkate alınmalı ve etkinlikler arasındaki ilişkiler de belirlenmelidir.
Etkinliklerin tanımlanması için IEEE STD 12207-2008 [
            <xref ref-type="bibr" rid="ref28">28</xref>
            ] gibi standartlardan
faydalanılacaktır.
          </p>
          <p>Etkenler, etkenlerin nasıl değerlendirileceği konusundaki yönlendirmeler
belirlendikten ve etkinlikler standart olarak tanımlandıktan sonra etkenlerle etkinlikler
arasındaki bağlantılar literatürde yapılan çalışmalara dayanılarak belirlenebilir.
4.1</p>
          <p>Örnek Bir Durum Çalışması</p>
          <p>Tablo 2’de örnek bir yazılım geliştirme projesinde yapılan etken değerlendirme
sonuçlarının hangi etkinlik önerilerine dönüşebileceği gösterilmektedir.</p>
          <p>Yazılım geliştirme sürecinde gerçekleştirilecek etkinliklerin belirlenmesinde bir
çerçeveye dayanarak yapısal bir analizin yapılması sürecin gereksinimlere uygun
biçimde uyarlanmasını, bazı etkenlerin değerlendirilmeme riskini ortadan
kaldırılmasını, deneyimlerden faydalanılmasını ve elde edilen deneyimlerin anlaşılabilir,
kıyaslanabilir biçimde paylaşılabilmesini sağlayacaktır.</p>
          <p>Tablo 2. Etkenlerin değerlendirilmesi ve olası etkinliklerin belirlenmesi</p>
          <p>Bu bildiri, bir yazılım geliştirme sürecinin bazı etkenler değerlendirilerek
uyarlanmasında kullanılabilecek bir çerçevenin oluşturulma gerekliliğini ortaya
koymaktadır. Bu çerçevenin en önemli görevi yazılım geliştirme sürecini oluşturan ögelerin
ortak bir dille ifade edilmesini sağlamaktır. Bu ortak dilin temel kavramlarının
Essence çerçevesinin çekirdeğinde bulunan alfalar tarafından karşılanabileceği
düşünülmektedir. Bu doğrultuda literatürdeki bazı çalışmalarda yazılım süreci
uyarlama için önerilen etkenler incelenmiş ve bu etkenlerden bazıları alfalar ve alfalar
arasındaki ilişkilerin özellikleri olarak tanımlanmıştır. Daha sonra böyle bir
çerçevenin olması durumunda yazılım sürecinde gerçekleştirilecek etkinliklerin nasıl
seçilebileceği konusunda basit bir senaryo sunulmuştur.
5.1</p>
        </sec>
        <sec id="sec-5-1-2">
          <title>Kısıtlar</title>
          <p>Bu çalışma, literatürde bulunan etkenleri ele almakta ve bu etkenleri Essence
çerçevesini kullanarak düzenlemektedir. Yeni bir etken keşfetmek ya da bu etkenlerin
etkinliklerle nasıl bir bağlantısının bulunduğu konusunda deney yapmak bu
çalışmanın kapsamının dışındadır.</p>
          <p>Literatürde belirtilen etkenler daha geniş ölçekli bir tarama yapılarak derlenecek ve
Essence çerçevesi kullanılarak düzenlenecektir. Benzer şekilde yazılım geliştirme
sürecinde gerçekleştirilen etkinliklerin bir listesi hazırlanarak bu etkinliklerin standart
birer tanımı yapılacaktır. Daha sonra yine literatürdeki deneysel çalışmalardan
faydalanılarak etkenler ile etkinlikler arasındaki bağlantılar kurulacaktır. Sonuç olarak elde
edilen çerçevenin kullanımı sırasında elde edilecek dönütler doğrultusunda çerçeve
iyileştirilecek ve zenginleştirilecektir.
6</p>
        </sec>
      </sec>
      <sec id="sec-5-2">
        <title>Kaynakça</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>1. Systems and software engineering - System life cycle processes</article-title>
          , ISO/IEC 15288:
          <string-name>
            <surname>2008(E) IEEE Std</surname>
          </string-name>
          15288
          <article-title>-2008 (Revision of IEEE Std 15288-</article-title>
          <year>2004</year>
          ) (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. Systems and software engineering - Vocabulary, ISO/IEC/IEEE 24765:
          <string-name>
            <surname>2010(E)</surname>
          </string-name>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Brooks</surname>
            ,
            <given-names>F.P.</given-names>
          </string-name>
          , Jr.:
          <article-title>No Silver Bullet Essence and Accidents of Software Engineering</article-title>
          .
          <source>Computer</source>
          , Vol.
          <volume>20</volume>
          , No.
          <fpage>4</fpage>
          . (
          <year>1987</year>
          )
          <fpage>10</fpage>
          -
          <lpage>19</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Johnson</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ekstedt</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jacobson</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Where's the Theory for Software Engineering?</article-title>
          . Software,
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          , Vol.
          <volume>29</volume>
          , No.
          <fpage>5</fpage>
          . (
          <year>2012</year>
          )
          <fpage>96</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Hannay</surname>
            ,
            <given-names>J.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sjoberg</surname>
            ,
            <given-names>D.I.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dyba</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>A Systematic Review of Theory Use in Software Engineering Experiments</article-title>
          .
          <source>IEEE Trans. Softw. Eng.</source>
          , Vol.
          <volume>33</volume>
          , No.
          <fpage>2</fpage>
          . (
          <year>2007</year>
          )
          <fpage>87</fpage>
          -
          <lpage>107</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Johnson</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ekstedt</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>In Search of a Unified Theory of Software Engineering</article-title>
          . International Conference on Software Engineering Advances - ICSEA
          <year>2007</year>
          .
          <article-title>(</article-title>
          <year>2007</year>
          )
          <fpage>1</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Péraire</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>A Step Forward in Software Engineering Education: Introducing the SEMAT Essence Framework</article-title>
          . Keynote Address - LACREST
          <year>2013</year>
          . Medellin. (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Ralph</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Evaluating process theories in software engineering</article-title>
          .
          <source>In Proc. of the 3rd SEMAT Workshop on General Theories of Software Engineering</source>
          . ACM, USA (
          <year>2014</year>
          )
          <fpage>5</fpage>
          -
          <lpage>8</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Cockburn</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <source>Agile Software Development: The Cooperative Game, 2nd Ed. Addison Wesley Professional</source>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Maier</surname>
            ,
            <given-names>M.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rechtin</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <article-title>The Art of Systems Architecting</article-title>
          , 2nd Ed. CRC Press (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Managing</surname>
          </string-name>
          <article-title>Successful Projects with PRINCE2 2009 Edition Manual</article-title>
          .
          <article-title>Office of Government Commerce, The Stationery Office (</article-title>
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <article-title>A Guide to the Project Management Body of Knowledge: PMBOK Guide</article-title>
          , 5th Ed.
          <source>Project Management Institute</source>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Rong</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boehm</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuhrmann</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tian</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lian</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Richardson</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Towards contextspecific software process selection, tailoring, and composition</article-title>
          .
          <source>In Proc. of the 2014 Int. Conf. on Software and System Process (ICSSP</source>
          <year>2014</year>
          ). ACM, USA (
          <year>2014</year>
          )
          <fpage>183</fpage>
          -
          <lpage>184</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Kalus</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuhrmann</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Criteria for software process tailoring: a systematic review</article-title>
          .
          <source>In Proceedings of the 2013 International Conference on Software and System Process (ICSSP</source>
          <year>2013</year>
          ). ACM, New York, NY, USA (
          <year>2013</year>
          )
          <fpage>171</fpage>
          -
          <lpage>180</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Jones</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Development Practices for Small Software Applications</article-title>
          . CrossTalk,
          <source>The Journal of Defense Software Engineering</source>
          , Vol.
          <volume>21</volume>
          , No.
          <volume>2</volume>
          (
          <issue>2008</issue>
          )
          <fpage>9</fpage>
          -
          <lpage>13</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>MacCormack</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Verganti</surname>
          </string-name>
          , R.:
          <article-title>Managing the Sources of Uncertainty: Matching Process and Context in Software Development</article-title>
          .
          <source>Journal of Product Innovation Management</source>
          , Vol.
          <volume>20</volume>
          (
          <year>2003</year>
          )
          <fpage>217</fpage>
          -
          <lpage>232</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Cockburn</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>The end of software engineering and the start of economic-cooperative gaming</article-title>
          .
          <source>Computer Science and Information Systems</source>
          , Vol.
          <volume>1</volume>
          , Issue 1 (
          <year>2004</year>
          )
          <fpage>1</fpage>
          -
          <lpage>32</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <article-title>Kernel and Language for Software Engineering Methods (Essence)</article-title>
          ,
          <source>OMG</source>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Beck</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Andres</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Extreme Programming Explained: Embrace Change</surname>
          </string-name>
          , 2nd Ed.
          <source>Addison Wesley Professional</source>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Schwaber</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>The Enterprise and Scrum</article-title>
          . Microsoft Press (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Kruchten</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <source>The Rational Unified Process: An Introduction</source>
          , 3rd Ed. Addison
          <string-name>
            <surname>Wesley</surname>
          </string-name>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Boehm</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Turner</surname>
          </string-name>
          , R.:
          <source>Observations on Balancing Discipline and Agility. Agile Development Conference</source>
          (
          <year>2003</year>
          )
          <fpage>32</fpage>
          -
          <lpage>39</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Cockburn</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Crystal Clear A Human-Powered Methodology for Small Teams</article-title>
          .
          <source>Addison Wesley Professional</source>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Ambler</surname>
            ,
            <given-names>S.W.</given-names>
          </string-name>
          :
          <article-title>Agile Software Development at Scale</article-title>
          . In: Meyer,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Nawrocki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.R.</given-names>
            ,
            <surname>Walter</surname>
          </string-name>
          <string-name>
            <surname>B</surname>
          </string-name>
          . (eds.):
          <source>Balancing Agility and Formalism in Software Engineering. Lecture Notes In Computer Science</source>
          , Vol.
          <volume>5082</volume>
          . Springer-Verlag, Berlin, Heidelberg (
          <year>2008</year>
          )
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Ambler</surname>
            ,
            <given-names>S.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lines</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <source>Scaling Agile Software Development: Disciplined Agility at Scale. Disciplined Agile Consortium White Paper Series</source>
          (
          <year>2014</year>
          ) http://disciplinedagileconsortium.org/Resources/Documents/ScalingAgileSoftwareDevelop ment.
          <source>pdf (28.04</source>
          .2015 tarihinde erişildi)
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Kruchten</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Contextualizing agile software development</article-title>
          .
          <source>Journal of Software: Evolution and Process</source>
          Vol.
          <volume>25</volume>
          , No.
          <volume>4</volume>
          (
          <year>2013</year>
          )
          <fpage>351</fpage>
          -
          <lpage>361</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Clarke</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>O'Connor</surname>
            ,
            <given-names>R.V.</given-names>
          </string-name>
          :
          <article-title>The situational factors that affect the software development process: Towards a comprehensive reference framework</article-title>
          .
          <source>Inf. Softw. Technol</source>
          . Vol.
          <volume>54</volume>
          , No.
          <volume>5</volume>
          (
          <year>2012</year>
          )
          <fpage>433</fpage>
          -
          <lpage>447</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Draft IEEE International</surname>
          </string-name>
          <article-title>Standard - Systems and software engineering - Software life cycle processes</article-title>
          ,
          <source>ISO/IEC/IEEE P12207-CD2-1410</source>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>Elvesaeter</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Benguria</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ilieva</surname>
          </string-name>
          . C.
          <article-title>: A comparison of the Essence 1.0 and SPEM 2.0 specifications for software engineering methods</article-title>
          .
          <source>In Proc. of the Third Workshop on Process-Based Approaches for Model-Driven Engineering (PMDE</source>
          <year>2013</year>
          ). ACM, USA (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <surname>Ng</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huang</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wu</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>On the value of essence to software engineering research: A preliminary study</article-title>
          .
          <source>2nd SEMAT Workshop on a General Theory of Software Engineering (GTSE</source>
          <year>2013</year>
          )
          <article-title>(</article-title>
          <year>2013</year>
          )
          <fpage>51</fpage>
          -
          <lpage>58</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>Ambler</surname>
            ,
            <given-names>S.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lines</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Disciplined Agile Delivery: A Practitioner's Guide to Agile Software Delivery in the Enterprise</article-title>
          . IBM Press (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <surname>Wallace</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Keil</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rai</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>How Software Project Risk Affects Project Performance: An Investigation of the Dimensions of Risk and an Exploratory Model</article-title>
          .
          <source>Decision Sciences</source>
          , Vol.
          <volume>35</volume>
          (
          <year>2004</year>
          )
          <fpage>289</fpage>
          -
          <lpage>321</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <surname>Xu</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ramesh</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Using Process Tailoring to Manage Software Development Challenges</article-title>
          .
          <source>IT Professional</source>
          , Vol.
          <volume>10</volume>
          , No.
          <volume>4</volume>
          (
          <year>2008</year>
          )
          <fpage>39</fpage>
          -
          <lpage>45</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34.
          <string-name>
            <surname>Wiegers</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          : Software Requirements, 3rd Ed. Microsoft Press (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35.
          <string-name>
            <surname>Seacord</surname>
            ,
            <given-names>R.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Plakosh</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lewis</surname>
            ,
            <given-names>G.A.</given-names>
          </string-name>
          :
          <source>Modernizing Legacy Systems: Software Technologies</source>
          , Engineering Processes, and
          <string-name>
            <given-names>Business</given-names>
            <surname>Practices</surname>
          </string-name>
          . Addison
          <string-name>
            <surname>Wesley</surname>
          </string-name>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>