Mobil Kütüphane Uygulamaları: LibraMy



Benzer belgeler
Kütüphane Web Sitesi Nedir? Bina x Web sitesi

Birey Okulları Office 365

2000 li yıllardan itibaren teknolojinin hızlı gelişiminden belki de en büyük payı alan akıllı telefon ve tabletler gibi kablosuz iletişim olanağı

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

Eğitim Semineri Araştırmacının Alet Kutusu: Mendeley

Mobil Uygulama Geliştirme Yaklaşımları, Web Tabanlı Mobil Uygulama Çatıları. Burak USGURLU

TOBB2B. Kullanım Kılavuzu. TOBB2B Kullanım Kılavuzu. Türkiye Odalar ve Borsalar Birliği

Cep Telefonu Değeri Belirlemek için Mobil Uygulama

CİSCO ANY CONNECT UYGULAMASI İLE İÇ KAYNAKLARA ERİŞİMİ KLAVUZU

Nevşehir Hacı Bektaş Veli Üniversitesi Bilgi Portalı Android Uygulaması

Google Play Zararlısı İnceleme Raporu

MOBİL CİHAZLARDAN DERS İZLEME MERSİN MESLEK YÜKSEKOKULU (UZAKTAN EĞİTİM) Mobil Adobe Connect

dmags Türkiye nin En Büyük Dijital Dergi Mağazası

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

Bireysel İnternet Şubesi

Bireysel İnternet Şubesi

Mobil Test Otomasyon Araçları Bilgilendirme Test Ekibi Şubat 2017

GİRDİALIMI. Sistemin işleyişinde gereksinim duyulan verilerin sisteme girişinin yapılabilmesi için öncelikle toplanmaları gerekmektedir.

Cep Telefonu Değeri Belirlemek için Mobil Uygulama


İSTANBUL AYDIN ÜNİVERSİTESİ SİSTEM ANALİZİ VE TASARIMI KADİR KESKİN ERİM KURT YAZILIM GEREKSİMLERİ DOKÜMANI ONLİNE SİNEMA BİLET SİSTEMİ B1310.

PINGPONG. Kurumsal Sunum / Aplikasyon Tanıtım

Hızlı ve Güvenli Vale Hizmeti

Türk Telekom Güvenlik Güvenli Aile(Safe Family) Ürünü Kurulum Kılavuzu

Bir yazılım geliştirme metodolojisi aşağıdaki adımlardan meydana gelir; Yazılım geliştirme sürecine destek verecek araçlar, modeller ve yöntemler.

JAVA MOBIL UYGULAMALAR

Selahattin Esim CEO

GENEL BİLGİLER KİTAP SÜRESİNİ UZATMA

Mobil Cihazlardan Web Servis Sunumu

Web Sayfasında Google Analitik Kullanımı ve Kullanıcı Davranışlarının Belirlenmesi: İstanbul Ticaret Üniversitesi Kütüphane Web Sayfası.

MİKRO E-MUTABAKAT. Sağlayacağı başlıca avantajlar ;

Atatürk Üniversitesi Merkezi Kütüphane Kitap Katalog Tarama Programı Kullanım Kılavuzu

BÖLÜM-11 BİLGİ YÖNETİM SİSTEMİ ÇALIŞMALARI 44.DÖNEM ÇALIŞMA RAPORU

Yüksek Öğretimde Mobil Eğitime Geçiş İçin Yol Haritası: Atılım Üniversitesi Örneği

Analiz Raporu. Hedef kitleden bazılarına sorular yöneltildi. Buna göre ne tür değişimler beklediklerini saptadık. Ara yüzünün

YMT 412-Yazılım Kalite Ve Güvencesi Mobil Uygulama Testi 1/32

Mobil Uygulama Kullanma Kılavuzu

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

PERKON PDKS Kurulum ve hızlı başlangıç rehberi

PHP 1. Hafta 1. Sunum

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

Bilgi Güvenliği Farkındalık Eğitimi

Hızlı ve Güvenli Vale Hizmeti

ÖZEL OTURUM AÇARAK KÜTÜPHANE WEB SAYFASI ÜZERİNDEN YAPILABİLEN ÖDÜNÇ VERME, SÜRE UZATMA, AYIRTMA, ÖDÜNÇ İSTEK İŞLEMLERİ:

Bölüm 1 / Mobil Uygulama Hakkında

Fuel Automation Systems

RPMNET WOLVOX REPORTER

Özgür Yazılım Eğitim Yönetim Sistemleri

1.PROGRAMLAMAYA GİRİŞ

XMail. Kurulum ve Senkronizasyon Ayarları Rehberi

Web Sitesi/Sayfası/Dokümanı

Kurumsal Masaüstü ve Sunucularda Pardus

Bilişim Teknolojileri Temelleri 2011

OverDrive Formatları. İçerik Genç erişkin ve çocuklar için heyecan verici yeni içerik

NEDEN DOĞULİNE. Detaylı Analiz. Doğru Planlama. Hedef Kitleye Uygunluk. Doğru İçerik Stratejisi. 7/24 Destek. Deneyimli Ekip

Mesut Sinan Kazancı. Kişisel Bilgilerim. İş Deneyimlerim

EKLER EK 12UY0106-5/A4-1:

Elektronik Dergi ve Veri Tabanlarına Kampus Dışından Erişim

1 Milyon Kullanıcıya Nasıl Hizmet Veriyoruz? CloudLMS Teknik Alt Yapı ve Mimarimiz

Eğitim / Danışmanlık Hizmetinin Tanımı

Yazılım-donanım destek birimi bulunmalıdır.

Elektronik Belge Yönetim Sistemi Kullanım Kılavuzu

Kullanıcı Merkezli kütüphane Web Siteleri: İYTE Örneği. Gültekin Gürdal Hakan Yanaz Engin Şentürk

İSTANBUL TEKNİK ÜNİVERSİTESİ ELEKTRİK-ELEKTRONİK FAKÜLTESİ. AKILLI FİYAT ARAMA MOTORU TiLQi.NET

KİTAP SÜRESİNİ UZATMA

Microsoft SQL Server 2008 Oracle Mysql (Ücretsiz) (Uygulamalarımızda bunu kullanacağız) Access

INTERNET SİTESİ KULLANIM KILAVUZU

T.C. NAMIK KEMAL ÜNİVERSİTESİ ÇORLU MÜHENDİSLİK FAKÜLTESİ

CHECKPOINT VPN KULLANIM KILAVUZU

Şehir İzmir. Bitiş Tarihi İş Tanımı Vega Muhasebe programının kurulumu, eğitimi. Veritabanı kurulumu ve ayarlarının yapılması

Varlık davranış modeli: Bu aşama her entity ye etki eden durumların tanımlandığı, modellendiği ve dokümante edildiği süreçtir.

Yazılım Mühendisliği 1

Kurumsal Sunum / Aplikasyon Tanıtım

Mobil Uygulama Geliştirmeye Giriş (ISE 407) Ders Detayları

Toprak Veri Tabanı ve ÇEMobil-BGS nin Tanıtılması. Ahmet KÜÇÜKDÖNGÜL Mühendis (Orman Mühendisi)

2016 YILI MERKEZ KÜTÜPHANE AMAÇ VE HEDEFLERİMİZ

Bilgi Servisleri (IS)

KARAYOLU TRAFİK GÜVENLİĞİ IOS ve ANDROİD TABANLI UYGULAMA, OYUN VE İNTERAKTİF KİTAP YARIŞMASI

Ev aletinizi geleceğe bağlayın. Quick Start Guide

MOODLE UZAKTAN ÖĞRETİM SİSTEMİ

ile Uygulama Geliştirme Teknikleri

T.C. AKDENİZ ÜNİVERSİTESİ Uzaktan Eğitim Uygulama ve Araştırma Merkezi (AKUZEM) DİJİTAL PAZARLAMA VE SOSYAL MEDYA YÖNETİCİLİĞİ SERTİFİKA PROGRAMI

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır.

CAN TECİM HEDEF DENEYİM. Tecrübe bütün öğretmenlerin en iyisidir. Publilus Syrus

ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ

Tüm bu problemler verilerin dijital bir sunucuda tutulması ihtiyacını oluşturdu. İhtiyacı karşılamak amaçlı hastane otomasyonu geliştirildi.

Bizex Fuar Sipariş Takip Sistemi Kullanım Klavuzu

Bilişim Garaj Akademisi Nedir?

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi

ELEKTRONİK BELGE VE ARŞİV YÖNETİM SİSTEMİ EBYS NİN GÜVENİLEN SİTELERE EKLENMESİ

Bilgi Sistemlerinde Merkezi Kayıt Yönetimi ve Olay İlişkilendirme

Mobil Uygulama Geliştirmeye Giriş (ISE 407) Ders Detayları

Ev aletinizi geleceğe bağlayın.

BİLGİ İŞLEM DAİRE BAŞKANLIĞI

EVRAK TAKİP SİSTEMİ (ETS) GENEL AÇIKLAMALAR

ÖZ DEĞERLENDİRME SORU LİSTESİ

T.C. KONAK BELEDİYE BAŞKANLIĞI ELEKTRONİK BELGE VE ARŞİV YÖNETİM SİSTEMİ EBYS NİN GÜVENİLEN SİTELERE EKLENMESİ

Google Cloud Print Kılavuzu

WebInstaller. 1. Kurulum Đçin Gereksinimler

Transkript:

AB 2016 Bildiri 136 TASLAK Son güncelleme: 30 Kasım 2015 Mobil Kütüphane Uygulamaları: LibraMy Eren Narin, Yusuf Furkan Kınalıtaş, Mehmet Canpolat, Utku Selvitopu, Kıvanç Dinçer Hacettepe Üniversitesi, Bilgisayar Mühendisliği, Beytepe Kampüsü, Ankara erennarin.92@gmail.com, yfkinalitas@gmail.com, mehmetcanpolat2@gmail.com, uselvitopu@gmail.com, kivanc.dincer@hacettepe.edu.tr Özet. Bu bildiri, Hacettepe Üniversitesi Bilgisayar Mühendisliği bünyesinde geliştirilen Mobil Kütüphane Uygulamasının(LibraMy [1][2] ), geliştirilmesi sırasında edinilen tecrübeler kullanılarak hazırlanmıştır. Sonrasında yazılım ürünleştirilmiş ve ilk kullanıcı olan Hacettepe Üniversitesine sunulmuştur. Bildiri, projeye başlama nedenleri, geliştirilme ve ürünleştirilme süreçleri ve kullanılan teknikler konu alınarak hazırlanmıştır. Bu konular, yazılım mühendisliği çerçevesinde ele alınmış ve detaylandırılmıştır. Ayrıca kullanılan teknolojiler detaylı bir şekilde tanıtılmış ve kullanım gerekçeleri anlatılmıştır. Sadece kütüphane uygulamaları özelinde değil, genel olarak mobil uygulama geliştirmek isteyen ve yazılım mühendisliği süreçlerini incelemek isteyenlere kaynak olması, bu bildirinin başlıca hedefidir. 1. Giriş Günümüzde, bilgisayarlarla gerçekleştirilen birçok işlev, mobil cihazlar ile yüksek performans ve düşük maliyetlerle yapılabilmektedir. Bu verimli çalışma yöntemi hemen hemen her alanda kullanılmaya başlanmıştır. Çoğunlukla eğlence amaçlı geliştirilen mobil uygulamalar, artık birçok kurum için ihtiyaç haline gelmiştir. Günümüzde mobil uygulamalar bu kadar yaygınlaşmışken, yaygın olarak kullanılan, işlevsel bir kütüphane uygulamasının bulunmaması hem akademik hem de ticari bir eksikliktir. Ekip olarak, Hacettepe Üniversitesi Kütüphaneleri nin ortak erişim merkezinin, mobil cihazlarca erişilebilir hale getirilmesiyle, kullanıcıların daha pratik ve hızlı işlem yapabilmelerini sağlamak düşüncesiyle harekete geçtik. Üniversitemizin kütüphanesine bir akıllı telefon uygulaması geliştirerek, bu eksiğin giderilmesi için ilk adımı atmış olduk. 2. Kapsam SOSYAL KAPSAM. Geliştirdiğimiz uygulamamızın öncelikli hedef kitlesi, üniversite öğrencileri, akademisyenleri ve idari çalışanlarıdır. Uygulamamızın hedef kitlesinin büyük çoğunluğunun sahip olduğu akıllı telefonları göz önünde bulundurarak [3][4] uygulamamızın, hedef kitlemizin kütüphaneye erişimlerinin sağlanması, kütüphane işlemlerinin pratik bir şekilde gerçekleştirilmesi ve daha fazla kişinin kütüphaneyi kullanmasının sağlanması açısından en verimli çözüm olduğunu düşünüyoruz. TEKNİK KAPSAM. Projemizin daha başarılı olabilmesi için, bütün mobil platformlarda aynı görünüm ve performansla çalışması gerekmektedir. Bu gereksinim günümüzde artık bütün mobil uygulamaların ana gereksinimlerindendir. Kısıtlı zaman zarfında, hem Android hem de ios işletim sistemlerine uygulama geliştirmek hakkında bilgi toplamanın ve iki işletim sistemi için ayrı ayrı geliştirme süreçleri yürütmenin maliyetinden kaçınmak için yeni bir çözüm arayışına girdik. Bu arayışa birçok geliştirici girmiş olacak ki son dönemde birleşik(hybrid) uygulama geliştirme platformlarına yapılan yatırımlar oldukça arttı. Hibrit mobil uygulama geliştirme ortamları konusundaki araştırmalarımız sonucunda, proje kapsamımıza en uygun geliştirme ortamının Ionic Framework [5] olduğuna karar verdik. Bu seçim sürecine ilgili detaylar bildirinin devamındaki başlıklarda verilmiştir. TİCARİ KAPSAM. Kütüphane sektöründeki mobil uygulama talebi, ticari açıdan bir fırsat olarak görülmüştür. Yapılan araştırmalarda, mevcut sistemlerin gereksinimleri tam olarak karşılayamadığı gözlemlenmiştir. Bu sebeple başarılı bir kütüphane mobil uygulaması, hem piyasa talebini karşılayacak hem de ticari bir başarı getirecektir. 3. Uygulama Gereksinimleri 3.1 Fonksiyonel Gereksinimler Uygulamanın fonksiyonel gereksinimleri aşağıdaki şekilde tanımlanmıştır. F.1. KATALOG TARAMASI F.1. Giriş Veri tabanından detaylı taramanın yapılmasına olanak sağlayan fonksiyondur. F.1.1. Girdiler Kitaplar ve dergiler için i) Kitap ya da dergi ismi ii) Yazarı Medyalar için i) DVD ya da CD nin ismi ii) Film ve benzeri için oyuncular iii) DVD ya da CD nin yaratıcıları

F.1.2. İşlem Girdiler uygulama ekranından girildikten sonra, uygulama sunucu tarafında çalışan veri tabanı arama uygulamasını çalıştırmaktadır. Bu aşamada kullanıcı arama yapacağı ölçütü daraltabilir(yazar, başlık, konu vb.). Ayrıca doğrudan mobil cihazından erişebileceği kaynakları görmek istiyor ise taramasını, sadece elektronik kaynaklar içerisinden yapılacak şekilde de daraltabilir. Bu işlemden sonra ekrana çıktıları göndermektedir. F.1.3. Çıktılar Tarama yapılan kelimeyle ilgili bütün kaynaklar ve bu kaynakların kütüphanede bulunup bulunmadıkları bilgileri ekranda listelenir. Diğer süreçlere bağlantı sağlar. F.1.4. Hataların Yönetimi Fonksiyon işletimi esnasında uygulamaya girilen yanlış girdiler kullanıcıya uyarı şeklinde gönderilir. F.2. Materyal Ayırtma F.2.1 Giriş Veri tabanından detaylı tarama fonksiyonun ardından devreye girebilecek olan bir fonksiyondur. Bu fonksiyon sayesinde kullanıcı kendi adına materyali ayırttırabilir. F.2.2 Girdiler Katalog taramasının girdilerine ek olarak demirbaş ayırtma sürecinin bir girdisi de, materyalin durumu ayırtılabilir ise ortaya çıkan ayırtma seçeneğidir. Kullanıcı ortaya çıkan bu ayırtma seçeneğine tıklamalıdır. F.2.3 İşlem Kullanıcı sisteme giriş yapmış ise, ayırtma seçeneğine tıkladıktan sonra sistem materyali o kullanıcıya atayacaktır. Eğer kullanıcı girişi yapılmamış ise önce giriş yapılmalıdır. 1.2.4 Çıktılar Kütüphanede bulunup bulunmadığına dair yazı ekrana gelir. Demirbaşı ayırttırdığına dair kullanıcıya bilgi gönderilir. F.2.5 Hataların Yönetimi Fonksiyon işletimi esnasında uygulamaya girilen yanlış girdiler kullanıcıya uyarı şeklinde gönderilir F.3. ÖDÜNÇ SÜRESİ UZATMA veya AYIRTMA İPTALİ F.3.1 Giriş Bu iki işlem aynı sayfa üzerinden yapılır ve kullanıcın giriş yapmış olması zorunludur. Kullanıcı hesabını görüntülediği sayfadan, daha önceden ödünç aldığı bir materyalin ödünç süresini, kütüphanenin kendine tanıdığı haklar doğrultusunda uzatabilir. Daha önceden ayırttığı bir materyalin üzerindeki ayırtmayı iptal edebilir. F.3.2 Girdiler Kullanıcı ödünç süresini uzatacağı veya ayırtmasını iptal edeceği materyali seçmelidir. F.3.3 İşlem Kullanıcı ödünç süresi uzatma seçeneğini seçti ise, kütüphane sisteminde kullanıcın ödünç süresi uzatılır. Kullanıcı ayırtma iptalini seçti ise kütüphane sisteminde o materyal tekrar serbest bırakılır ve kullanıcın üstünden silinir. F.3.4 Çıktılar Kullanıcı ödünç süresi uzatma seçeneğini seçti ise sitem ekranda ödünç alınan materyalin yeni teslim tarihini ve kütüphanenin kendine tanıdığı geriye kalan ödünç süresi uzatma haklarını gösterir. Kullanıcı ayırtma iptali seçeneğini seçti ise, ayırtmasını iptal ettiği materyal üzerindeki ayırtmalar listesinden silinir. F.3.5 Hataların Yönetimi Bu işlemlerin gerçekleşmesi sırasında ancak kütüphane sistemine bağlı hatalar gerçekleşebilir. Böyle bir durumda sitem kullanıcıyı uyarı mesajları ile bilgilendirecektir. 3.2 Fonksiyonel Olmayan Gereksinimler Sistemin fonksiyonel olmayan gereksinimleri aşağıdaki şekilde tanımlanmıştır. NF.1. PERFORMANS Günümüz mobil uygulamalarının öncelikli gereksinimi olan performansı [6] yüksek seviyede tutmak için, projemizi performans testlerimizden başarılı sonuç alan ve birçok platformda kullanılabilen angularjs üzerinde çalışan ionic hibrit mobil uygulama geliştirme çatısı ile geliştirdik. Bu uygulama çatısının avantajları, hem her mobil cihaz platformunda çalışabilmesi dolayısıyla geliştirme esnasında zaman kaybını önlemesi, hem de yaptığımız performans testlerinin sonucu olarak mobil cihazlarda platformdan bağımsız olarak yüksek performans göstermesidir [7]. NF.2. GÜVENİLİRLİK Uygulamanın kullanıcı adı ve şifresiyle giriş yapılan bölümü, uygulamanın sahte yazılımlara ve yanlış kullanıcı girişlerine karşı önlem almasını sağlar. Ayrıca kullanıcı işlemlerinin doğru kişiyle yapılmasını mümkün kılmaktadır. NF.3. ERİŞİLEBİLİRLİK Uygulama, daha öncede belirtildiği gibi tüm platformlarda çalışabilen bir yapıya sahiptir. Mobil cihaz platformlarının mağazalarında yayınlanması açısından herhangi bir sorunu bulunmamaktadır. NF.4. BAKIM ve GELİŞTİRME Bakım, bu uygulama için ileriye dönük olarak hata düzeltilmesi ve uygulamaya zarar verebilecek işlemlerin engellenmesi olarak tanımlanmıştır. Uygulamamız, daha ileri versiyonlara ihtiyacı olduğu sürece geliştirilmeye devam edecektir. Kütüphanelerin taleplerine göre yeni özelliklerin eklenmesi de mümkündür. 2

NF.5. TAŞINABİLİRLİK Uygulama mobil cihazlarda çalıştığı için, cihazın internet bağlantısı olduğu sürece çalışmaya devam etmektedir. 4. Geliştirme Süreci YAZILIM GELİŞTİRME DÖNGÜSÜ. Kütüphane sistemi, gereksinimleri kullanıcıdan kullanıcıya göre çok az değişen bir sistemdir. Yerine getirmesi gereken görevler ve bu görevleri gerçekleştirirken uyacağı kurallar tanımlıdır ve mevcut sistemlerde kullanılmaktadır. Bu sebeplerden ötürü, bir sefer yapılacak geniş bir gereksinim analizi yeterli olacaktır. Bu nedenle böyle bir problem için, Şelale Yaşam Döngüsü(Waterfall Lifecycle) [8] oldukça uygun olacaktır. Şelale yaşam döngüsü; gereksinim analizi-tasarım-geliştirme ve test sırası ile ilerler. Doğru tanımlanmış gereksinimler ile proje tasarımı da doğru çizilecektir ve gereksinimler değişken olmadığı için tasarımın yenilenmesine gerek olmayacaktır. GELİŞTİRME DİLİNİN SEÇİLMESİ. Kısıtlı zamanda bütün işletim sistemlerine ayrı ayrı uygulama geliştirmek maliyetli olacağından, platform bağımsız bir geliştirme ortamı seçmek gereklidir. Bu ortamlara örnek olarak Java ile geliştirilebilecek Oracle Mobile Application Framework ü [9], C# da Xamarin [10] platformu ve bir HTML5 yapısı(framework) olan Ionic örnek gösterilebilir. Bu örneklere daha yakından bakacak olur isek; Xamarin platformu, yakın zamanda Microsoft un satın alarak bünyesine kattığı bir platform. Yazılan kodu derlerken, makine diline çevirerek tüm işletim sistemlerinde çalışabilir bir hale getiriyor. Ancak kodlama dilinde, Xcode un ve Java nın doğrudan C# a çevrilmiş bir halini kullandığı için, hem ios sistemine uygulama geliştirmek hakkında hem de Android sistemine uygulama geliştirmek hakkında bilgi sahibi olmayı gerektiriyor. Ayrıca C# ile uygulama geliştirirken, öykünücü(emülatör) kullanmak yeterli olmuyor. ios da yapılacak denemeler için Apple marka bir telefon ya da bilgisayar bulundurulması gerekiyor. Gelelim Ionic ve Oracle Mobile Application geliştirme çatılarına. Bu iki çatı da, Google ın desteğiyle üretilmiş olan ve bir javascript kütüphanesi olan AngularJS yi kullanıyor. Oldukça popülerleşen bu kütüphane geliştiricinin imkanlarını oldukça arttırıyor. Özellikle sağladığı kolaylıklar ve internet üzerinden bolca eğitim dökümanına ulaşılabilmesi, günden günde tercih edilme oranlarını arttırıyor. Ve tabiki HTML5 ve CSS3 ile beraber çok daha az emek ile çok daha alımlı mobil ekranlar tasarlanabiliyor. Ancak Oracle Mobile Application ve Ionic çatılarını karşılaştırdığımız zaman Ionic biraz daha dinamik görünüyor. Javascript dilinin pratikliğinin üstüne, AngularJS, HTML5 ve CSS3 ün artıları da eklendiğinde, geliştiricinin elindeki imkanlar oldukça artmış oluyor. Ionic platformu metin tabanlı olduğu için, uygulamalar herhangi bir editör kullanmadan, not defteri uygulamaları ile bile geliştirilebiliyor. Ancak editör kullanmak elbette ki süreci hızlandıracak ve hataların yakalanmasını ve düzeltilmesini hızlandıracaktır. Şekil 1. Apache Cordova kullanımının görselleştirilmesi [11] Ionic ve ngcordova Kullanımının Avantajları Ionic gibi platform bağımsız, hibrit bir uygulama geliştirebilmek için,.css,.html ve.js gibi web teknolojileri kullanılmalıdır. Ionic; HTML5, CSS3 ve JavaScript bileşenlerinin tamamını içermektedir. ngcordova ise, Ionic ve AngularJs in bir araya gelmesiyle oluşan geniş imkanlı bir platformdur. Animasyonları ve ikonları ile de oldukça modern ve dekoratif bir görünüme de sahip olan Ionic, genişletilmiş. css etiketleri ile de, tasarım konusunda da oldukça avantajlı. Ayrıca cihaz donanımlarının yönetimi konusunda da Ionic, geniş bir hakimiyete sahiptir. Donanım özellikleri bütün işletim sistemlerinde yaklaşık olarak eşit ve verimli bir şekilde Ionic tarafından kullanabilmektir. YAZILIMIN TASARIM SÜRECİ. Bütün proje yönetim disiplinlerinde, gereksinimler doğru şekilde analiz edildikten sonra, bu gereksinimlerin tamamını karşılayan bir proje tasarımı yapılmalıdır. Yazılım mühendisliği disiplininde ise, tasarımın somutlaştırılması için çeşitli tablolar kullanılır. Bu tablolar hem tasarımcının daha detaylı çalışmasına yardımcı olur, hem de geliştirici ile müşteri arasında ortak ve anlaşılır bir dil olur. Yazılım soyut parçalarının somut bir şekilde ifade edilmesini sağlar. Şekil 2. Sistem bağlam(context) diyagramı 3

Yukarıda, sistemin büyük parçaları ve bunların arasındaki bağlam tablosu verilmiştir. Bu tabloda da görüldüğü üzere, kütüphanenin bütün kaynaklarının saklandığı ve sıralandığı bir veritabanı bulunmaktadır. Bu veritabanı, kütüphanenin kontrolündeki fiziksel cihazlarda saklanmaktadır. Sunucu veri havuzu ise, veritabanında saklanan bilgilerin sınıflandırıldığı alandır. Bu aşama, kütüphanelerin tercih ettiği kütüphane otomasyonları sayesinde sağlanmaktadır. Ancak bu sınıfların ve kaynakların anlamlandırıldığı yer mobil uygulama olmalıdır. Mobil uygulamanın arayüzünden kullanıcı yapmak istediği işlemi veya taramayı sunucuya gönderir. Sunucu, yapılan işlemlerin kriterlerine göre veritabanından sonuçlar döndürür. Bu dönen sonuçlar mobil uygulama tarafından anlamlandırılarak kullanıcıya gösterilir. Şekil 3. Sistemin Kullanım Senaryoları (UML Use Case Diyagramı) Yazılım tasarımında, geliştirici ile müşteri arasındaki köprüyü kuran en önemli bileşen kullanım senaryolarılerdir(use case). Bu senaryoların amacı, sistemin bütün aktörlerini tanımlayarak, bu aktörlerin yapabileceği işlemleri ve sorumluluklarını göstermektir. Bir sistemle gerçekleştirilebilecek bütün işlemler ayrı ayrı kullanım senaryolarına dökülerek tablolaştırılabilir. Veya bütün sistem özellkileri genel hatları ile tek kullanım senaryosunda gösterilebilir. Sistemle yapılabilecek işlemlerin, birbirleri ile bağlarını göstermeyi sağlayan bir başka bişen de veri akış şemalarıdır(data flow chart). Bu şemada, sistemin fonksiyonlarının gerçekleştirilmeleri için gereken adımlar gösterilir. Bu adımlarda varsa eğer kontrol işlemleri, mantıksal bağlayıcılar da gösterilir. 4

Şekil 4. Sistemin ana akış şeması 5. Test Süreci Ionic platformunun bir diğer avantajı ise, kolay çalıştırılabilir ve test edilebilir olmasıdır. Hatta geliştirme süresince, herhangi bir mobil cihaza veya emülatöre ihtiyaç duymadan, herhangi bir tarayıcı üzerinden geliştirilen uygulama test edilebilir. Ionic çatısının, web teknolojilerini kullanması bunu sağlamaktadır. Bu özellik sayesinde, geliştirme aşamasında yapılan birim(unit) testler kolaylıkla yapılabilmektedir. Klasik veri transferi kabloları ile de, geliştirilen uygulamalar kolaylıkla telefona yüklenebilmektedir. Geliştirme sürecinin sonunda yapılması gereken testler vardır. Bir yazılımın ürünleşmesinden önce en son yapılan test kullanıcı kabul testidir(user acceptance test). Bu testlerde yazılım, kullanıcının yapabileceği bütün işlemlere en uç noktalarda maruz bırakılır. Bu aşamada farkedilen hatalar, düşük maliyetler ile düzeltilebilir. Böylesine büyük veri tabanlarını tarayarak çalışan bir uygulamanın performansı önemli bir gereksinimdir. Bizim problemimizde de önemli olan bu ger Böylesine büyük veri tabanlarını tarayarak çalışan bir uygulamanın performansı önemli bir gereksinimdir. Bizim problemimizde de önemli olan bu gereksinim, performans testleri ile test edilir. Yazılımın farklı kullanıcı sayılarına ve/veya farklı istek sayılarına nasıl, ne kadar sürede cevap verdiği gözlemlenir. Yazılım eğer Ionic ile geliştirilmiş ise bu testler, yaygın olarak kullanılan web yazılım perfomans ölçüm araçları ile yapılabilir. Biz problemimizde, Java nın jmeter aracını kullandık. 5

En son test aşaması olarak da Beta testi yapılabilir. Beta testi, yazılımın ilk sürümünün kullanıcınıya açılması ve gelen geri dönüşlere göre düzeltmeler yapılmasıdır. Biz de problemimizde bu testi uygulayarak, uygulama marketlerine birer beta sürümü yükledik. Belli bir takip süresinin ardından gerekli düzeltmeleri yaptık ve tam sürümü uygulama marketlerde paylaştık. 6. Uygulamanın Ekran Tasarımları Uygulamamız, Android işletim sisteminin uygulama marketi olan Google Play Store da ve ios işletim siteminin uygulama marketi olan Apple Store da, Hacettepe Library LibraMy adı ile bulunmaktadır. Mobil uygulamalarda ekran tasarımı yaparken dikkat edilmesi gereken en önemli şey sadeliktir [12]. Her yönden hayatımıza pratiklik katan mobil uygulamaların arayüzleri de mümkün olduğunca pratik olmalıdır. Fonksiyonlara yapılan yönlendirmeler mümkün olduğunca bir arada olmalı, kullanıcı bir veya iki hamlede istediği ekrana ulaşabilmelidir. Sayfalar arasındaki gruplamalar mantıklı olmalı, bu gruplamalar da görsel olarak uyumlu bir şekilde kullanıcıya sunulmalıdır. Bu kriterler, en çok kullanılan uygulamaların detaylı incelenmesiyle kolaylıkla doğrulanabilir. Şekil 6. Uygulama giriş ekranı ve katalog sayfası Biz de kendi projemizde bu kriterleri göz önünde bulundurarak ekran tasarımlarımızı yaptık. Ekranın sağa kaydırılmasıyla ortaya çıkan bir ana menüde işlevler gruplandırılmıştır. Ekranın üst kısmında ise kütüphanenin sosyal medya hesaplarına bağlantılar ve uygulama bilgilerine bir yönlendirme butonu sabitlenmiştir. Uygulamanın ekran çıktıları Şekil 5-7 arasında verilmiştir. Şekil 7. E-kaynaklar ve bilgi sayfaları 7. Ürünleştirme Süreci Bildirinin diğer başlıklarında da bahsedildiği gibi piyasa için bir ihtiyaç olan kütüphane mobil uygulaması, proje döngüsünün tamamlanmasının ardından ürünleştirilmiştir. Projenin ilk kullanıcısı, aynı zamanda projenin geliştirilmesine de katkıları bulunan Hacettepe Üniversitesi dir. Şekil 5. Mobil uygulamanın ana ekranı ve ana menüsü Bir yazılımı ürünleştirmek, yazılımı geliştirme süreci kadar titiz bir çalışmanın sonucunda mümkün olur. Bir yazılımın kullanıcısını bulmak, ürünleştirme sürecinin sadece bir adımıdır. Bu aşamada dikkat edilmesi gereken en önemli konu yazılımın dayanıklılığıdır(robustness) [13]. Kullanımı zor olan veya çok sık hata veren sistemler geliştiricileri çok zorlayabilir. Bu da hem maddi hem manevi olarak yazılım 6

üreticisini yıpratabilir. Bu nedenle bir yazılımı satmadan önce, taahhüt edilen ay/yıl kadar sorunsuz çalışacağından emin olmak gerekir. Bunu sağlamak da ancak yazılımı mümkün olduğunca fazla test uygulayarak sağlanabilir. Elbetteki testler yazılımın hatasızlığını garanti etmez ama hata olma ihtimali ne kadar düşürülürse o kadar rahat bir ürün bakım süreci geçirilir. 8. Sonuçlar ve İleri Çalışmalar konularında birçok tecrübe edindik. Ve bu tecrübelerimizi geliştirmeye ve yeni ürünler çıkarmaya devam edeceğiz. Şu anda Hacettepe Üniversitesi ne bakım hizmetini sağladığımız mobil uygulamanın, diğer kurumlara da tanıtılması üzerinde çalışmaktayız. Ana işlevler üzerinde herhangi bir değişiklik yapmadan uygulamaya yeni işlevler eklemeye de devam edeceğiz. Temel kütüphane işlevlerinin çoğunu gerçekleştiren uygulamamıza, kullanıcı kütüphane etkileşimini arttıran harici özellikler eklemeyi de planlıyoruz. Bir bitirme projesi olarak başlayan bu çalışmalarımız sonucunda, yazılım ürünü tasarlama, geliştirme ve ürünleştirme 9. Kaynaklar [1] Google Play Store (LibraMy - Hacettepe Libramy) https://play.google.com/store/apps/details?id=com.informascope.libramy&hl=tr [2] itunes (LibraMy - Hacettepe Libramy) https://itunes.apple.com/tr/app/libramy-hacettepe-library/id1018826318?mt=8 [3] Pearson Student Mobile Device Survey 2014 - National Report: College Students http://www.pearsoned.com/wp-content/uploads/pearson-he-student-mobile-device-survey-public-report-051614.pdf [4] Hooked on smartphones: an exploratory study on smartphone overuse among college students http://dl.acm.org/citation.cfm?id=2557366 [5] Ionic Framework Website http://ionicframework.com/ [6] What Users Want from Mobile - Equation Research on behalf of Compuware http://e-commercefacts.com/research/2011/07/what-usrs-want-from-mobil/19986_whatmobileuserswant_wp.pdf [7] Mobile Apps: What Consumers Really Need and Want - A Global Study of Consumers Expectations and Experiences of Mobile Applications https://info.dynatrace.com/rs/compuware/images/mobile_app_survey_report.pdf [8] Waterfall Lifecycle Wikipedia https://en.wikipedia.org/wiki/waterfall_model [9] Oracle Mobile Application Framework Website http://www.oracle.com/technetwork/developer-tools/maf/overview/index.html [10] Xamarin Website https://xamarin.com/ [11] Apache Cordova Website https://cordova.apache.org/ [12] What Users Want Most From Mobile Sites Today Google https://think.storage.googleapis.com/docs/au-what-mobile-users-want.pdf 7