Yazılım mühendisliğinde i̇nsan bilgisayar etkileşimi
Bitirme sunum
1. Hazırlayanlar
Oben Işık (040080220) , Gökhan Karaca(040070234)
Danışman
Yrd. Doç. Dr. Feza Buzluca
İTÜ Bilgisayar Mühendisliği Bitirme Projesi
iCity
2. iCity Tanıtım Aşamaları
Proje Kullanılan Kuramsal Analiz Tasarım
Amacı Teknolojiler Bilgiler Modelleme
“Innovation distinguishes between a leader and a follower” – Steve Jobs
3. Proje Amacı
Neden iCity uygulamasına ihtiyaç duyuyoruz ?
“It is fine to celebrate success but it is more important to heed the lessons of failure” – Bill Gates
4. Neden iCity Uygulaması ?
1. Şehri yakından tanımak
2. Arkadaş takibi yapabilmek
3. Akıllı yer önerisi yapabilmek
4. Ulaşım yardımı almak
5. Sosyal ağ entegrasyonu
6. Mobil dünyaya uyum sağlamak
5. iCity’de
Kullanılan Teknolojiler
“Design is not just what it looks like and feels like. Design is how it works.” – Steve Jobs
6.
7. Kuramsal Bilgiler
“It’s fine to celebrate success but it is more important to heed the lessons of failure.” – Bill Gates
8. iCity – Kuramsal Bilgiler | Android Tanım
Android, Google ve Open Handset Alliance tarafından
kodlanmış, Linux OS tabanlı bir mobil cihaz için
geliştirilmiş, açık kaynak kodlu bir işletim sistemidir.
Android işletim sistemli bir mobil telefon için, Android SDK
kullanılarak uygulama yazılımları geliştirilebilmektedir.
Projemizin ana çatısı android üzerine kurulmuştur.
9. iCity – Kuramsal Bilgiler | Android Kullanımı
Günümüzde Android işletim sistemli mobil telefonların sayısı hızla artmaktadır.
11. iCity – Kuramsal Bilgiler | Android Yapısı II
Androidde uygulama JAVA dilinde geliştirilir.
Android işletim sistemine göre tüm ekranlar birer activity dir.
Activity ler kullanıcı ile etkileşimi sağlayan ekranlardır.
Her bir activity kendine adanmış bir layouta sahiptir.
Activityler birbirlerini çağırabilirler ve aralarında veri transferi yapabilirler.
12. iCity – Kuramsal Bilgiler | Android Yapısı III
Activityler,
manifest dosyası adı verilen
bir xml dosyasında tanımlanır.
• Uygulama clientler tarafından Google
Play Store dan indirilirken kullanıcıdan
istenecek izinleri ifade ediyor.
• Uygulamada activity olarak görev alacak
olan sınıfları tanımlıyoruz.
• Uygulama bağımsız olarak çalışacak olan
servisimizi tanıtıyoruz.
13. iCity – Kuramsal Bilgiler | JSON
JSON, veri alış verişini sağlamak amacıyla geliştirilmiş bir veri biçimlendirme yöntemidir.
JavaScript Object Notation
XML den çok daha kolay ve hızlı biçimde işlenebilme özelliğine sahiptir.
XML ile biçimlendirilmiş bir veri kümesi, JSON ile biçimlendirilmiş veri kümesine oranla
daha fazla bellek alanı ihtiyacı doğurur.
14. iCity – Kuramsal Bilgiler | JSON – XML Karşılaştırması
XML JSON
<?xml version="1.0" encoding="UTF-8"?> {
<root>
<data>
"data": [{
<id>1</id> "id" : "1",
<name>PHP </name> "name" : "PHP”
</data> }]
</root>
}
var root = xhr.responseXML; data.name[0];
var dataElements =
root.getElementsByTagName('data');
var idElementsValue =
dataElements[0].getElementsByTagName('id
')[0].firstChild.nodeValue;
var nameElementsValue =
dataElements[0].getElementsByTagName('na
me')[0].firstChild.nodeValue;
15. iCity – Kuramsal Bilgiler | JSON – Projemizdeki Kullanımı
Projemizde JSON kullanımı web servisimiz ile uygulamamız arasındaki iletişimi sağlamak
üzerine kurulmuştur.
16. iCity – Kuramsal Bilgiler | .Net Framework (C#)
.Net framework projemizde, uzak host ile iletişimi yaparken kullanacağımız web servisi
oluşturmak için kullanılmıştır.
Web servisi, XML mesajlaşma tabanlı bir sistem entegrasyon yöntemidir. W3C tarafından
yapılan resmi tanımıyla web servisi, bilgisayarlar arasında ağ üzerinden etkileşimi ve
uyumluluğu sağlayacak yazılım sistemidir.
XML tabanlı mesajlaşma esas alınmıştır. Biz projemizde JSON ile haberleşmeyi tercih
ettik.
Web servis erişim standardı olarak SOAP (Simple Object Access Protocol) adı verilen basit
nesne erişim protokolü kullanılmaktadır.
SOAP sayesinde web servis ile basit ve mesaj tabanlı bir iletişim sağlanmaktadır.
Projemizde .net c# ile kodlanmış olan ve uzak host da koşan bir webservis bulunmaktadır.
17. iCity – Kuramsal Bilgiler | PHP
PHP, özellikle Web için tasarlanmış olan, sunucu taraflı çalışan bir script dilidir.
18. iCity – Kuramsal Bilgiler | PHP – Projemizdeki Kullanımı
Projemizde PHP dilini, yüklü miktarda datayı her defasında tek tek bir api kullanılarak sorgulamak
yerine, hangi datalara ilişkin bilgilere ihtiyaç olduğunu php sayfamıza gönderip, cURL ile sorgunun
uzak hostta çalışmasını sağlamak için kullandık.
Foursquare Kullanıcı Sayısı : 27M
1 Kişinin Ortalama Arkadaş Sayısı : 137
10901
foursquareGetCheckins.php
Log
cURL
Kullanıcı
Foursquare API
19. Analiz ve Modelleme
“It’s fine to celebrate success but it is more important to heed the lessons of failure.” – Bill Gates
20. iCity – Analiz
Use Case UC1 : Programa Giriş
Kapsam: Bitirme Projesi Kullanıcı Giriş Paneli
Birincil Aktör : Kullanıcılar
Paydaşlar : Kullanıcılar : Programı kullanarak şehir, arkadaşları ve mekanlar
hakkında bilgi almayı hedeflemişlerdir.
Önşartlar : 1. Kullanıcının aktif bir Foursquare hesabı olmalıdır.
2. Kullanıcı telefonuna uygulamayı yüklemiş olmalıdır.
3. Kullanıcının telefonunda internet erişimi olmalıdır.
Başarı Şartı : Kullanıcı sisteme giriş yapmış olmalıdır.
Senaryo : Ana akış:
1. Kullanıcı, telefonun menüsünden uygulamayı başlatır.
2. Ekrandaki login butonuna tıklar.
3. Program kullanıcıya giriş ekranını açar.
4. Kullanıcı giriş ekranında foursquare’e ait mail adresini ve
şifresini girer.
5. Program bu mail ve şifreyi foursquare üzerinden kontrol
eder.
6. Sonrasında ana menüye kullanıcıyı yönlendirir.
Alternatif Akış:
*a. İnternet bağlantısının olmadığı durumlarda internet hata sayfasına
yönlendirilir.
5a. Mail adresi veya şifrenin geçerli olmaması koşulunda giriş
ekranına geri döner.
21. iCity – Analiz
Use Case UC2 : Kullanıcının Arkadaşlarının Son Check-inlerini Görmesi
Kapsam: Arkadaşların Son Check-in’ler Paneli
Birincil Aktör : Kullanıcılar
Paydaşlar : Kullanıcılar : Programı kullanarak şehir, arkadaşları ve mekanlar
hakkında bilgi almayı hedeflemişlerdir.
Önşartlar : 1. Kullanıcını sisteme başarılı bir şekilde giriş yapmış
olmalıdır.
2. Kullanıcı telefonuna uygulamayı yüklemiş olmalıdır.
3. Kullanıcının telefonunda internet erişimi olmalıdır.
Başarı Şartı : Kullanıcı arkadaşlarına ait son check-in’lerini görmelidir.
Senaryo : Ana akış:
1. Kullanıcı ana menuden son check-inler’sekmesine tıklar.
2. Sistem foursquare üzerinden kullanıcının arkadaşlarına ait
tüm son check-in’leri hesaplar.
3. Bir liste halinde bu check-inler kullanıcıya listelenir.
Alternatif Akış:
*a. İnternet bağlantısının olmadığı durumlarda internet hata sayfasına
yönlendirilir.
2a. Foursquare kaynaklı hatalardan dolayı arkadaş listesine ait check-
in’leri almada sorun yaşanabilir.Bu durumda sistem hata mesajı üretir.
22. iCity – Analiz
Use Case UC3 : Kullanıcının Arkadaşlarının Son Check-inlerine Yorum Yazması
Kapsam: Arkadaşların Son Check-in’ler Paneli Yorum Kısmı
Birincil Aktör : Kullanıcılar
Paydaşlar : Kullanıcılar : Programı kullanarak şehir, arkadaşları ve mekanlar
hakkında bilgi almayı hedeflemişlerdir.
Önşartlar : 1. Kullanıcını sisteme başarılı bir şekilde giriş yapmış
olmalıdır.
2. Kullanıcı telefonuna uygulamayı yüklemiş olmalıdır.
3. Kullanıcının telefonunda internet erişimi olmalıdır.
4. Kullanıcı arkadaşlarının son check-in’leri listesine erişmiş
olmalıdır.
Başarı Şartı : Kullanıcı arkadaşlarından herhangi birinin check-in’ine yorum yazmış
olmalıdır.
Senaryo : Ana akış:
1. Kullanıcı arkadaşlarının son check-in’lerinin listelendiği
ekrandan herhangi bir arkadaşının check-in’inen tıklar.
2. Program yorum penceresi açar.
3. Kullanıcı buraya yorumunu yazar ve gönder butonuna tıklar.
4. Program yorumu Foursquare’e iletir.
Alternatif Akış:
*a. İnternet bağlantısının olmadığı durumlarda internet hata sayfasına
yönlendirilir.
4a. Foursquare kaynaklı hatalardan yorumu iletmede sorun
yaşanabilir.Bu durumda sistem hata mesajı üretir.
23. iCity – Analiz
Use Case UC4 : Kullanıcının Sistemden Öneri İstemesi
Kapsam: Kullanıcı Mekan Öneri Paneli
Birincil Aktör : Kullanıcılar
Paydaşlar : Kullanıcılar : Programı kullanarak şehir, arkadaşları ve mekanlar
hakkında bilgi almayı hedeflemişlerdir.
Önşartlar : 1. Kullanıcı sisteme başarılı bir şekilde giriş yapmış olmalıdır.
2. Kullanıcı telefonuna uygulamayı yüklemiş olmalıdır.
3. Kullanıcının telefonunda internet erişimi olmalıdır.
Başarı Şartı : Kullanıcıya tercihlerine göre ve seçtiği kategoriye göre mekan öneri
listesi sunulmalıdır.
Senaryo : Ana akış:
1. Kullanıcı ana menuden suggest sekmesine tıklar.
2. Sistem kullanıcıya 9 ana kategori listesini getirir.
3. Kullanıcı 9 ana kategori içerisinden bir tanesini seçer.
4. Sistem bu ana kategoriye ait kullanıcı tercihlerine uyan
mekanları öneri mekanizmasını kullanarak listeler.
Alternatif Akış:
*a. İnternet bağlantısının olmadığı durumlarda internet hata sayfasına
yönlendirilir.
2a. Foursquare kaynaklı hatalardan dolayı kategori listesini almada
sorun yaşanabilir.Bu durumda sistem hata mesajı üretir.
3a. Foursquare ve programkaynaklı hatalardan dolayı kategori
listesini almada sorun yaşanabilir.Bu durumda sistem hata mesajı
üretir.
30. iCity – Tasarım | Login
Kullanıcı log in butonuna
tıkladığında, açılan foursquare
api web view ile uygulamamıza
login olur.
31. iCity – Tasarım | Application Base
1. Uygulama kullanıcısının kim olduğunu login
sürecinden sonra tutar. (mainUser:User)
2. Kullanıcının arkadaş listesi ne uygulamamızın bu
sınıfından erişmek mümkündür.
(friendList:FriendList)
3. Foursquare tarafında var olabilecek tüm
kategorilerin listesi tutulmaktadır.
(venueCategoryList:VenueCategoryList)
4. Kullanıcıya ilişkin session bilgileri (Access token
vb.) tutulmaktadır. (fsSession:FoursquareSession)
5. Foursquare API ile ilgili yapılabilecek tüm
işlemler FSAdapterInterface ile yapılmıştır.
FSAdapterInterface bir java interface olarak
tasarlanmıştır ve ileride başka API ler kullanılmak
istendiğinde uygulama üzerinde herhangi bir
değişiklik yapılmasına gerek kalmayacaktır.
(fPAdapter:FSAdapterInterface)
6. Web servis işlemleri WebServiceOperator ile
yapılmaktadır.
(webServiceOperator:WebServiceOperator)
1. Wi-Fi , 3G , 2G / Edge bağlantılarının
durumlarına ilişkin bilgiler observer
patternine uygun olarak tasarlanmış
olan NetworkConnectivityListener
tarafından yapılacaktır.
(nconnListener:NetworkConnectivityListener)
2. GPS Lokasyonuna ilişkin bilgiler de
GOLocationManager ile tutulmaktadır.
Sekil 5.3 – Uygulama Başlangıç Nesnesi
32. iCity – Tasarım | Login
Mobil uygulama kullanıcısının Foursquare Api ile iletişime geçebilmesi için ise sisteme
oAuth ile login olması gerekmektedir. Buna göre;
1. Kullanıcı uygulamanın login paneline girer.
2. oAuth güvenli authorization panelimiz açılır.
3. Kullanıcı adı ve şifre girişini yapar.
4. Kullanıcıya ilişkin bilgiler ile foursquare üzerinde koşacak olan api key foursquare
tarafına gönderilir.
5. Foursquare servisi kullanıcıyı login ettikten sonra access token dönüşü yapar.
6. Kullanıcıya spesifik bu access token key ile, izinler dahilinde işlemler yapılmaktadır.
40. iCity – Tasarım | Son Check-in Yapılan Yerler
• Son check-in yapılan yerleri tek tek Foursquare api ile birlikte sorgulama yapmak
oldukça performans düşürücü olacağından bu konuda akıllı bir çözüm üretilmiştir.
• Bu sebeple de www.yoncamodaevi.com/foursquareGetCheckins.php sayfası liste
olarak kullanıcının arkadaş listelerini alır ve bu arkadaş listesine göre son check-in
lerin listesi dönülür.
• Bu sayfada kullanıcıdan alınan access token ile CURL altyapısı kullanılarak
sorgulama yapılmaktadır.
• Bu sayede sonuçlar mobil uygulamaya göre çok daha hızlı bir uzak server üzerinde
toplu halde hesaplanır ve bu da oldukça akıllı bir çözüm olmaktadır.
41. iCity – Tasarım | Mekan Arama
Kategori kısıtlamaları (Akıllı Öneride Kullanılacak)
Tablar üzerindeki yazılar kaymakta
Her kategoriye ait alt kategoriler bulunmaktadır.
50. iCity – Tasarım | Akıllı Yer Önerme
Kullanıcılar daha önce hiç gitmedikleri yerler hakkında bilgi edinebilmek
istediklerinde akıllı yer önerme algoritması kullanılmaktadır.
Akıllı yer önermeyi sağlayabilmek için, kullanıcının sosyal ağ üzerinde yaptığı
bir takım işlemleri, web servisimiz aracılığıyla kendi veritabanımızda tutmak
suretiyle kayıt altına aldık.
Bu kayıtlar kişinin sevdiği ya da sevmediği yerler hakkında bilgilerin
tutulması ve mekanlar hakkında puanlamanın yapılabilmesi için
kullanılmaktadır.
Akıllı yer önermenin temel amacı kullanıcıya daha önce hiç gezmediği
mekanları, daha önce gittiği mekanlardan ve arkadaşlarının gittiği
mekanlardan yola çıkarak mantıklı biçimde önerebilmektir.
51. iCity – Tasarım | Akıllı Yer Önerme
istek Foursquare API
istek
kayıt
http://obenws.yoncamodaevi.com
55. iCity – Tasarım | Akıllı Yer Önerme
PROCEDURE [dbo].[graduationSP_getUsersSuggestedVenues]
1. Check-in tablosundan kullanıcının daha önce gitmediği ve kullanıcıya yakın
mesafedeki mekanlar getirilir.
2. Mekanların kategori bilgileri ilgili tablodan alınmakta ve sonrasında web
servise dönderilmektedir.
3. Web servis daha önceden almış olduğu kullanıcının geçmiş check-in’lerinin
kategori bilgilerine göre bu mekanlar arasında çok sevilenden az sevilene
göre bir sıralama yapmaktadır.
• Örnek vermek gerekirse;
• İncelediğimiz kullanıcı daha önceden 3 kere fast food kategorili mekanda
ve 2 kez de eğitim kategorili mekanlarda check-in olmuş ise, sistem bu
kullanıcı için fast food kategorisine sahip mekanı listede eğitim kategorili
mekanlardan daha ön sıralara koyacaktır.
56. “I am as proud of what we don’t do as I am of
Teşekkürler. Sorular?
what we do.” – Steve Jobs
Oben ISIK – Gökhan KARACA
Editor's Notes
This presentation demonstrates the new capabilities of PowerPoint and it is best viewed in Slide Show. These slides are designed to give you great ideas for the presentations you’ll create in PowerPoint 2011!For more sample templates, click the File menu, and then click New From Template. Under Templates, click Presentations.