<!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>Tümleşik VoIP Sisteminde Alt Katman Yazılım Geliştirme Deneyimi ve Mimari Tasarım Yaklaşımları</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Fatih Ayvaz</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>Mehmet Yunus Dönmez</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>Fatih Ayvaz</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>Mehmet Yunus Dönmez</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Anahtar Kelimeler: VoIP</institution>
          ,
          <addr-line>Yazılım Mimarisi, Proje Planlaması, Tasarım Maliyeti</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Netaş Telekomünikasyon A.Ş</institution>
          ,
          <addr-line>İstanbul</addr-line>
          ,
          <country country="TR">Türkiye</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The effects of the structural changes made in the lower layer software to other layers can reach unpredictable dimensions in some projects. This can lead to both unpredictability of project cost and unpredictable technical and timing risks. In this study, the experience and architectural design approach of a multi-layered software architecture with a structural change in the underlying software of the integrated VoIP (Voice over IP) system of software product owned by Netas is shared. The solution approach of the node location expansion project which is expected to have a high impact on system behavior due to the substrate changes to be made has been described.</p>
      </abstract>
      <kwd-group>
        <kwd>VoIP</kwd>
        <kwd>Software Architecture</kwd>
        <kwd>Project Planning</kwd>
        <kwd>Design Estimate</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>1 Netas Telecommunications, Istanbul, Türkiye
{fayvaz,ydonmez}@netas.com.tr</p>
    </sec>
    <sec id="sec-2">
      <title>Giriş</title>
      <p>
        Telekomünikasyon ağlarında uçtan uca haberleşmenin sağlanabilmesi için,
bünyesinde çok sayıda yazılımsal ve donanımsal bileşeni barındıran tümleşik VoIP sistemleri
kullanılmaktadır [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Bu bileşenlerin birbirleri ile haberleşmeleri, gerçek zamanlı
olarak kesintisiz hizmet verebilmeleri ve telekom operatörlerinin müşterilerine
sunmuş olduğu yüzlerce servisin devamlılığı; milyonlarca kod satırı içeren büyük ve
karmaşık yazılımlar ile sağlanmaktadır. Bu yazılımlar işlevselliklerine ve uygulama
alanlarına göre yazılım katmanlarına ve alt sistemleri ayrılmıştır. Yazılım katmanları
ve alt sistemler gereksinimler doğrultusunda diğer yazılım katmanları ve alt sistemler
tarafından kullanılabilmektedir. Örneğin alt yazılım katmanlarında tasarlanmış olan
bazı veri yapıları üst katmanlarda yer alan yüzlerce alt sistem tarafından
kullanılabilmektedir. Veri yapılarında yapılan yapısal değişikler, bu veri yapılarını kullanan tüm
kodları etkilemektedir. Bu durum yazılım projelerinin teknik ve zamanlama risklerini
arttırmakta ve projelerin daha maliyetli bir sekilde yapılmasına neden olmaktadır.
      </p>
      <p>Bu çalışma beş bölümden oluşmaktadır. Bölüm 2’de Netaş’ın müşterilerine
sunduğu tümleşik VoIP sistemi çözüm mimarisi, Bölüm 3’te tümleşik VoIP sistemlerinde
yazılım geliştirme süreçleri, Bölüm 4’te çekirdek birimi çok katmanlı yazılım
mimarisi ve Bölüm 5 ve 6’da çekirdek birimi alt yazılım katmanlarında yapılan bir proje
deneyimi ve mimari tasarım yaklaşımı anlatılmıştır. Son bölümde ise genel
değerlendirmelere ve sonuçlara değinilmiştir.
2</p>
    </sec>
    <sec id="sec-3">
      <title>Tümleşik VoIP Sistemi Çözüm</title>
    </sec>
    <sec id="sec-4">
      <title>Mimarisi</title>
      <p>
        Netaş’ın müşterilerine sunduğu tümleşik VoIP sistemi çözüm mimarisi Şekil 1’de
verilmiştir. Tümleşik VoIP sistemi çözümü değişik görevleri yerine getiren çok sayıda
alt bileşenden oluşmaktadır ve 1300 civarında servisi müşterilerine sunabilmektedir
[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>Şekil 1. Tümleşik VoIP Sistem Mimarisi</p>
      <p>
        Tümleşik VoIP sistemi ITU-T, ETSI ve IETF gibi standart organizasyonları
tarafından oluşturulmuş nerdeyse tüm haberleşme standartlarını desteklemektedir. Bu
sistemi oluşturan bileşenlerden bazıları şunlardır [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]:
      </p>
      <p>Çekirdek Birimi: Çağrıların kurulması, yönlendirilmesi ve sonlandırılması
esnasında gerçekleşen işaretleşme ve arama servisleri ile ilgili tüm denetimleri
sağlamaktadır. Çekirdek birimi yaklaşık 33,5 milyon kod satırından oluşan çok katmanlı bir
yazılım mimarisine sahiptir.</p>
      <p>Ağ Geçidi Birimi: Transfer katmanında TDM hatları, TDM trankları ve No:7
(SS7) işaretleşme sistem ile IP tabanlı işaretleşme protokolleri arasında dönüşüm
yapmaktadır.</p>
      <p>Ağ Geçidi Denetleyicisi Birimi: Çekirdek ile ağ geçidi arasındaki bağlantıyı
kurmaktadır.</p>
      <p>
        Trank Oturum Sunucusu Birimi: Santrali IP altyapıya bağlayan ve diğer IP
santraller ile bağlantıyı sağlayan birimdir. Oturum Trank Sunucusu, IMS ve diğer
santraller arasındaki mesajlaşmalarda SIP [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] protokolü kullanılmaktadır.
      </p>
      <p>Hat Oturum Sunucusu Birimi: Santralin IP tabanlı SIP hatları ve SIP PBX
bağlantılarını sağlayan birimdir.</p>
      <p>İşletim Yönetim Birimi: Çok bileşenden oluşan VoIP santraline Telekom
operatörleri tarafından uzaktan erişilip denetim takibinin yapılmasını sağlayan birimdir.</p>
      <p>
        Şekil 2. Tümleşik VoIP Sistemlerinde Yazılım Geliştirme Süreçleri [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]
3
      </p>
    </sec>
    <sec id="sec-5">
      <title>Tümleşik VoIP Sisteminde Yazılım Geliştirme Süreçleri</title>
      <p>
        Tümleşik VoIP sistemi karmaşık bir yazılım mimarisini sahiptir ve yapılacak yazılım
geliştirme projelerinin mimariye uygunluğunun ölçeklendirilebilmesi gerekmektedir.
Proje planlaması yapılırken ardışık yazılım fazlarının uygulanması zorunludur. Bu
nedenle tümleşik VoIP sisteminde Şekil 2’de görüldüğü gibi geleneksel yazılım
geliştirme süreçlerinden birisi olan Şelale süreci (Waterfall process) [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] uygulanmaktadır.
İş planlama sürecinde iş geliştirme ekipleri (ürün müdürleri, çözüm mimarları vs.)
müşteri ihtiyaçlarını ve gereksinimlerini önceliklendirirler ve yazılım sürüm planlama
sürecine dahil ederler. Yazılım sürüm planlama ve geliştirme süreci ise analiz, mimari
tasarım, kodlama, test ve sistem doğrulama fazlarını kapsayacak sekilde planlanır [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>
        Yazılım sürüm planlama ve geliştirme sürecini iş geliştirme ekipleri fikir, fırsat,
tanımlama, uygulama, müşteri maruziyet ve yayılım fazları altında takip ederler.
Tasarım ekipleri ise tasarım fazı 0-3 ve sistem doğrulama 1-2 fazları olarak takip
ederler. Fikir fazında ürün müdürleri müşteri gereksinimlerini Özellik Gereksinim
Dökümanı (ÖGD) altında toplarlar. Tasarım ekipleri içerisinde yer alan yazılım
mimarları ise ÖGD seviyesi proje maliyetini içeren Tasarım Maliyet Tahmini (TMT)
dökümanını hazırlar. Fırsat fazında (Tasarım Fazı 0) ise yazılım mimarları tarafından
mimari tasarım oluşturulur ve İleri Seviye Tasarım (İST) dökümanı yazılır. Ayrıca
yazılım mimarları tarafından gereksinimler ürün özelliklerine göre şekillendirilir ve
yeni türetilmiş (derived) gereksinimler Özellik Teknik Dökümanında (ÖTD) toplanır.
ÖTD gereksinimlerine göre proje maliyeti hesaplanır. ÖTD seviyesi Tasarım Maliyet
Tahmini (TMT) dökümanı hazırlanır. Proje planlaması buna göre detaylandırılır [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>Şekil 3. Çekirdek Birimi Çok Katmanlı Yazılım Mimarisi
4
Çekirdek Birimi Alt Yazılım Katmanlarında Yazılım</p>
    </sec>
    <sec id="sec-6">
      <title>Geliştirme Deneyimi ve Mimari Tasarım Yaklaşımları</title>
      <p>
        Bu çalışmada Kuzey Amerika Pazarı için geliştirilmesi planlanan telekom ağ
modernizasyonu projesi kapsamında çevresel düğüm konum sayısının 256’dan 4096’ya
artırılması için yapılan yazılım mühendisliği faaliyetleri analiz edilmiştir. Bu
çalışmanın ortaya koyduğu gereksinimin gerçeklenebilmesi için Şekil 3’te gösterilen
Tümleşik VoIP sisteminin PROTEL dilinde [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] yazılmış olan ve yaklaşık olarak 40 milyon
kod satırından oluşan çekirdek biriminde yer alan Telekom Altyapı katmanında yer
alan çevresel düğüm yapılandırma ve bakım sistemleri biriminde yer alan kodlarda
yapısal değişiklikler yapılması gerekmektedir.
4.1
      </p>
      <sec id="sec-6-1">
        <title>Proje mimari analiz fazı:</title>
        <p>Projenin mimari analiz fazında, proje kapsamında yapılması gerekli olan en temel
değişikliğin Şekil 4’te gösterilen ve bünyesinde veri yapı elemanı olarak düğüm
konum sayısı bilgisini içeren nodeName veri yapısının boyutunun artırılması olduğu
belirlenmiştir. nodeName veri yapısı tüm çekirdek birimi tarafından kullanılan temel
veri yapılarından biridir ve toplamda 32 bit bellek alanında saklanabilmektedir. Proje
kapsamında nodeName içerisinde yer alan nodeLoc veri yapısı elemanının 256’dan (8
bit bellek alanı) 4096’ya (12 bit bellek alanı) çıkarılması gereklidir. Bu durum
nodeName veri yapısı bellek kullanımının artmasına neden olmaktadır.</p>
        <p>Projenin geliştirilmekte olduğu çekirdek biriminin alt katmanlarında bulunan veri
yapılarında bir değişiklik yapılabilmesi için en uygun mimari tasarım yöntemi,
değişiklik yapılacak olan veri yapısının etkilediği tüm global veri yapıları, veri dizileri,
fonksiyonlar, sınıflar gibi yazılım parçalarını içerisinde bulunduran ve modül adı
verilen kaynak kod dosyalarının incelenerek analiz edilmesi olarak belirlenmiştir. Bu
inceleme ve analiz safhasında katmanlar, katmanlar arası sistemler, sistemler arası alt
sistemler, en alt seviyede modüllerin olduğu hiyerarşik bağımlılık çizgesi oluşturulur.</p>
        <p>Şekil 4. nodeName veri yapısı
Şekil 5’te bu çizgenin bir örneği verilmiştir. Burada en altta yer alan Alt Sistem 1
grubunda yer alan Modül1’de (düğüm konum sayısının arttırılması projesinde değişen
nodeName veri tipinin bulunduğu modül) tanımlanmış olan bir veri yapısında değişik
olduğunda üstte bulunan ve nodeNode veri yapısından etkilenen modüllerde bulunan
yazılımların analiz edilmesi gerekmektedir.</p>
        <p>Yapılan analiz sonucunda nodeName veri yapısının bellek alanının genişletmesinin
Telekom Altyapı katmanında ve Servisler katmanında yer alan yaklaşık 2035 modülü
etkileyeceği tespit edilmiştir. Bu modüllerde nodeName veri yapısının diğer veri
yapılarının elemanı olmasının yanında bellekte saklanan bazı veri dizilerinin elemanı
olarak kullanılmakta olduğu saptanmıştır. Ayrıca nodeName veri yapısını kullanan diğer
veri yapılarının ve veri dizilerinin başka veri yapıları ve veri dizileri tarafından
kullanıldığı belirlenmiştir. Şekil 6’da gösterildiği gibi nodeName bellek alanının
genişletilmesinin en çok ikinci seviye kullanımdaki veri yapılarını etkilediği tespit edilmiştir.
Şekil 5. Alt Sistemler ve Modüller Arasındaki İlişkiyi Gösteren Hiyerarşik Bağımlılık Çizgesi
Şekil 6. nodeName kullanım seviyesine göre etkilenen modül sayısı
4.2</p>
      </sec>
      <sec id="sec-6-2">
        <title>Proje mimari tasarım fazı:</title>
        <p>Projenin mimari tasarım fazına belirlenen analiz sonuçları doğrultusunda
başlanmıştır. Bölüm 5’te daha detaylı olarak anlatıldığı gibi referans alınan analiz
sonuçlarının proje maliyet hesaplamaları yapıldığında yapısal büyük çaplı değişikliklerden
dolayı bir takım belirsizlikler mevcuttur. Bu durumda projenin risk analizi gözden
geçirilmiş ve riskin en aza indirilmesi için ileri seviye mimari tasarım çalışmaları
başlatılmıştır. Söz konusu çalışmalar İleri Seviye Tasarım (İST) dökümanı
kapsamında nodeName veri yapısının bellek kullanımını arttırmanın haricindeki olası mimari
çözüm önerileri yapılan mimari tasarım toplantılarında masaya yatırılmıştır. Yapılan
ileri seviye analiz çalışmalarında sistem tarafından desteklenen çevresel düğüm
sayısının 4096 (12 bit) olmasına rağmen NodeName veri yapısı içerisinde yeralan ve
integer (16 bit) olarak tasarlanan nodeNo elemanının 4096’ya indirilmesinin mümkün
olduğu ve bu değişikliğin sistem davranışına etkilerinin incelenmesi için prototip
çalışması yapılmasına karar verilmiştir. Bu mimari tasarımın yöntemi nodeName veri
yapısının boyutunu değişmeyeceği için (32 bit olarak kalmaya devam edecek) diğer
modüllere etkilerinin düşük seviyede olacağı ve proje maliyetine pozitif etki edeceği
düşünülmüştür.</p>
        <p>Bu doğrultuda hazırlanan prototip çalışmasında nodeName veri yapısı Şekil 7’de
gösterildiği gibi tasarlanmış ve gerçek laboratuvar ortamında test edilmiştir. Yeni
tasarlanan veri yapısında nodeLoc belleğin 16 bit hizalı kullanım gereksimi nedeni ile
nodeLocLS ve nodeLocMS şekilde ikiye bölünmüştür.</p>
        <p>Şekil 7. Dönüştürülmüş nodeName veri yapısı
5</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Mimari Tasarım Maliyetlerinin Karşılaştırılması</title>
      <p>Projenin mimari tasarım sürecinin başlarında tasarım yöntemi olarak nodeName veri
yapısının bellek alanının arttırılması önerilmiştir. Ancak mimari tasarım
çalışmalarının başında proje maaliyetine etkilerini tam anlamıyal belirlemek mümkün değildir.
Karşılaşılan bu belirsizlik nedeniyle Tasarım Maliyet Tahmini (TMT) dökümanında
proje maliyeti ±%50 yanılma oranlı olarak 81.5 adam-ay şeklinde hesaplanmıştır.</p>
      <p>Mimari tasarım sürecinin ileri aşamalarında önerilen yeni tasarım yöntemi ile
geliştirilen prototip çalışması sonrası yapılan test sonuçlarına göre proje tasarımının
dönüştürülmüş yeni nodeName veri yapısı ile yapılabileceği kararı verilmiş ve
prototipte oluşturulan yeni mimari tasarıma göre Tasarım Maliyet Tahmini (TMT)
dökümanında proje maliyeti 31 adam-ay şeklinde hesaplanmıştır.</p>
      <p>
        İki mimari tasarım önerisinin maliyetleri Şekil 8’de yeralan birinci grafikte yer
almaktadır. Bu grafikte tasarım fazlarına göre ayrıştırılmış maliyet gösterilmiştir.
İkinci grafikte ise ikinci mimari tasarım yönteminin birinci mimari tasarım yöntemine
göre sağladığı maliyet tasarrufu yüzdesel olarak gösterilmiştir. Proje maliyetindeki
toplam tasarruf %62 olarak hesaplanmıştır. Bu tasarruf büyük oranda Tasarım Fazı 1,
2 ve 3 [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] süreçlerinde sağlanmıştır. Tasarım Fazı 0’daki oranın düşük olmasının
nedeni yeni mimari tasarım önerisinin maliyetinin hesaplanabilmesi için Tasarım Fazı 0
boyunca geliştirilen prototip çalışmasının sonuçlarının beklenmesi ve bu süreçte
oluşan maliyetin de proje maliyetine yansıtılmasıdır.
      </p>
      <p>Şekil 8. Mimari Tasarım Maliyetlerinin Karşılaştırılması
6</p>
    </sec>
    <sec id="sec-8">
      <title>Sonuçlar</title>
      <p>Bu çalışmada tümleşik VoIP santralinin çekirdek birimi çok katmanlı yazılım
mimarisi anlatılmış ve alt katman yazılım bileşenlerinde geliştirilen telekom ağ
modernizasyonu projesi kapsamında çevresel düğüm konum sayısının arttırılması 256’dan
4096’ya çıkartılması projesindeki deneyim ve mimari tasarım yaklaşımı anlatılmıştır.
Tasarım Fazı 0 sürecinde geliştirilen yeni mimari tasarım yöntemi ile toplam proje
maliyetinde %62 oranında indirim sağlamıştır.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Yuan</surname>
            , Chnhui, and
            <given-names>Hongli</given-names>
          </string-name>
          <string-name>
            <surname>Zhao</surname>
          </string-name>
          .
          <article-title>"Implementing VoIP Voice Communication System Based on Soft-Switch Technology." Cyber-Enabled Distributed Computing and Knowledge Discovery (CyberC</article-title>
          ),
          <source>2016 International Conference on. IEEE</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Gürcan</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dönmez</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ayvaz</surname>
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mitmit</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , “
          <article-title>AGCF Çözümü için Gerçek-Zamanlı Performans Optimizasyonu”</article-title>
          ,
          <source>Proceedings of the 10th Turkihs National Software Engineering Symposium</source>
          , pp.
          <fpage>679</fpage>
          -
          <lpage>688</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Henning</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , ve Rosenberg, J., “
          <article-title>The Session Initiation Protocol: Internet-centric signaling”</article-title>
          ,
          <source>IEEE Com. Magazine</source>
          , vol.
          <volume>38</volume>
          (
          <issue>10</issue>
          ), pp.
          <fpage>134</fpage>
          -
          <lpage>141</lpage>
          , (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Petersen</surname>
            , Kai,
            <given-names>Claes</given-names>
          </string-name>
          <string-name>
            <surname>Wohlin</surname>
            , and
            <given-names>Dejan</given-names>
          </string-name>
          <string-name>
            <surname>Baca</surname>
          </string-name>
          .
          <article-title>"The waterfall model in large-scale development</article-title>
          .
          <source>" International Conference on Product-Focused Software Process Improvement</source>
          . Springer, Berlin, Heidelberg,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Ayvaz</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mitmit</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Demirsoy</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kaya</surname>
            ,
            <given-names>A. B. S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yildirim</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yavuz</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          "
          <string-name>
            <surname>Tümleşik VoIP Sistemlerinde Gereksinim Analizi Ve Tasarım Maliyet Yaklaşımı</surname>
          </string-name>
          .
          <source>" Proceedings of the 8th Turkihs National Software Engineering Symposium</source>
          , pp.
          <fpage>501</fpage>
          -
          <lpage>510</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Foxall</surname>
            ,
            <given-names>D.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Joliat</surname>
            ,
            <given-names>M.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kamel</surname>
            ,
            <given-names>R.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>ve Miceli</surname>
            ,
            <given-names>J.J. “</given-names>
          </string-name>
          <article-title>Protel: a high level language for telephony”</article-title>
          ,
          <source>The IEEE Computer Society's Third International Computer Software and Applications Conference</source>
          ,
          <year>1979</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>