uygulama desteği
Download
Report
Transcript uygulama desteği
2008638032 Öner Çetin
2009638402 Mesut Yücel
Uygulama Desteği
Programlama Araçları
o
Programcılar için hizmet düzeyler
Pencereleme Sistemleri
o Ayrılmış ve eşzamanlı kullanıcı sistem etkinliği için
temel çekirdek desteği sağlamalıdır.
İletişim Kontrollü ve Uygulama Programlama
Etkileşim Araçları
o Kullanıcının Algı Düzeyine göre programlama yapmak
o Programcının kullanıcının algısına göre ,nesnelerin
davranışlarını tanımlamasına izin verir.
Uygulama Desteği
Kullanıcı Arayüzü Yönetim Sistemleri
o Sunum ve işlevsellik arasındaki ilişki kontrollerini
sağlar.
o Programlama toollarını destekleyen son düzeydir.
o Mevcut uygulama içerisindeki aynı fonksiyonel mantığa
sahip olan nesneler arasında ki ilişkiyi kontrol etmemizi
sağlar.
Giriş
İnsan Bilgisayar Etkileşimi Programcıyı nasıl
Etkiler?
Programlama Koddaki gelişmelere açık olmalıdır.
Belirli Donanımlar Belirli etkileşim ve teknikler
Geliştirme Araçlarının Katmanları
o Pencereleme Sistemleri
o Etkileşim Aracı
o Kullanıcı Arayüzü Yönetim Sistemleri
Pencereleme Sistemlerinin Öğeleri
Aygıt Bağımsızlığı
o Pixels
o PostScript (MacOS X, NextStep)
o Graphical Kernel System (GKS)
o Programmers’ Hierechical Interface to Graphics(PHIGS)
Kaynak Paylaşımı
o Kullanıcı görevleri eşzamanlılık sağlanmasını
o Pencereleme sistemi bağımsız işlemleri
o Bireysel uygulamalar izolasyonunu sağlar.
Penceleme Sisteminin Rolleri
Pencereleme Sisteminin Mimarisi
Olası 3 Yazılım Mimarisi Vardır…
Farzedelim ki tüm aygıt sürücüleri farklı
Çoklu uygulama yönetimi uygulandığında farklılık nasıl olacak?
1.
Her Uygulama Tüm işlevleri Yönetir
o Senkronizasyon hakkında sorunlar
o Uygulama taşınabilirliğini azaltır
2. Yönetim rolü çekirdek işletim sistemi içindedir.
o Uygulamalar işletim sistemine bağlıdır.
3.
Ayrı uygulamadaki yönetim rolü
o Maksimum taşınabilirlik sağlar.
Pencereleme Sisteminin Yapı Taşları
Gui’nin bileşenidir. Grafik arayüzü kullanır.
Üst üste gelmesine izin verir. Ebeveynlik uygulamasını
destekler.
Client – Server Mimarisi
X Pencere Mimarisi
X Pencere Mimarisi
Nedir?
o X-Pencere, sistem programları diğer bilgisayarda
çalışırken kullanıcının makinesinde yer alarak, bilgisayar
ağları üzerinde çalışmasına olanak sağlayan bir yazılım
ürünüdür.
X Pencere Mimarisi
Daha çok GNU/Linux ve Unix benzeri işletim
sistemlerinde kullanılan grafik arayüz altyapısıdır.
Bazı işaretleme mekanizması ile pixel
görüntüleme modeli vardır.
X protokolü server-client iletişimini belirler
X Pencere Mimarisi
Farklı Pencerelerin yöneticisi giriş-çıkış koşullarını
denetler(uygular).
o Girdiler nasıl değişecek
o Inter-Client veri transferi
Kim Buldu?
o X-Pencere başlangıçta MIT projesi olarak geliştirildi ve o
zamandan beri bilgisayar üreticileri tarafından kabul
edildi.
Programlama Uygulaması - 1
Okuma-Değerlendirme Döngüsü
repeat
read-event(myevent)
case myevent.type
type_1:
do type_1 processing
type_2:
do type_2 processing
...
type_n:
do type_n processing
end case
end repeat
Programlama Uygulaması – 1
Uyarı Tabanlı
Tek Tek Gitme
Sistemin tarzı arayüzleri etkiler
o Kalıcı dialog kutusu
Olay döngüleri ile kolay olur
Bildirim ile zordur
o Kalıcı olmayan dialog kutusu
Olay döngüleri ile zordur
Bildirim ile kolaydır
Dikkat!!
İyi bir Tasarım Yapılmamışsa, tasarımınızı uygulamaya
koymayın…
Araç kitlerinin Kullanımı
Etkileşim Nesneleri
•
Giriş ve Çıkış Bağlantılıdır
Araç Kitlerinin Kullanımı
Araç kitleri bu soyutlama düzeyini sağlar
•
•
•
•
Etkileşimli nesnelerle programlama
Tutarlılığı ve genişletilebilirliği destekleme
Benzer yolla bak ve hisset
Nesneye dayalı programlama için uygun
Java Nedir?
Java, Sun Microsystems mühendislerinden James Gosling tarafından
geliştirilmeye başlanmış açık kodlu, nesneye yönelik, zeminden
bağımsız, yüksek verimli, çok işlevli, yüksek seviye, adım adım işletilen
(yorumlanan-interpreted) bir dildir.
Java Swing Kütüphanesi
Swing, Java Foundation Classes içerisinde bulunan ve Java
uygulamalarına grafiksel arayüz (GUI) kazandırmak için Sun
tarafından geliştirilmiş devasa büyüklükte bir kütüphanedir.
Java Arayüzü
java sınıfları buton,menü vs. destekler
Bildiri(uyarı)tabanları şunlardır:
o AWT 1.0 ana alt sınıf araçlarına ihtiyaç duyar.
o AWT 1.1 ve sonraki versiyonlar nesneleri geri çağırır
Swing araç kiti
o AWT nin en üst katmanından geliştirilmiştir
o Üst düzey sürümleri var
o MVC(model view controller) mimarisini kullanır.
Kullanıcı Arayüzü Yönetim Sistemleri
(User Interface Management Systems -UIMS)
UIMS için dikkat edilmesi gerekenler
o Kavramsal mimari
o Uygulama Teknikleri
o Altyapı desteklemesi
Kullanıcı Arayüzü Yönetim Sistemleri
(User Interface Management Systems -UIMS)
UIMS olmayan terimler:
o Kullanıcı arayüzü geliştirme sistemleri (UIDS)
o Kullanıcı arayüzü geliştirme Ortamı (UIDE)
Örneğin; Visual Basic
Kavramsal Mimari Olarak UIMS
Geliştirilebilir:
o Taşınabilirdir, yani farklı sistemlerde çalışabilir
o Yeniden kullanılabilirdir, yani bileşenler tekrar
kullanılarak maliyet azaltılabilir
o Çok arayüzü aynı özelliğe erişebilir
o İsteğe göre uyarlanabilirlik, yani tasarımcı ve kullanıcı
tarafından uyarlanabilir
UIMS Geleneği-Arayüz
Katmanları/Mantıksal Bileşenler
1.
Dilsel : sözcüksel/sözdizimsel/anlamsal
(lexical/syntactic/semantic)
presenta tion
dialogue
a pplic ation
2. Seeheim
dialogue
func . core
a da ptor
3. Arc/Slinky modeli
func tional
c ore
le xica l
phy sic al
Seeheim model
USER
USER
lexical
syntactic
semantic
Presentation
Dialogue
Control
Functionality
(application
interface)
switch
APPLICATION
Kavramsal Uygulamalar
Seeheim
• Asıl desteği kavramsaldır
• Kullanıcı arayüzünün normal bir konseptidir.
… seeheim den dolayı farklı düşünebiliriz(tasarım
için)…
e.g. alt kutu,switch
o
o
uygulanması için gerekli
ama kavramsal değil
presenta tion
dialogue
a pplic ation
GeriBildirim
Gönderilen bilgi veya talimatın alıcıda yaptığı etkiye
ilişkin edinilen bilgi, dönüt.
Semantic(Anlamsal) Geribildirim
Farklı geribildirim türleri vardır.:
o Lexical(sözcüksel) yani farenin hareketi
o Syntactic(sözdizimsel) yani menü olayları
o Semantic(anlamsal) yani sayıların toplamının değişimi
Anlamsal geribildirim genellikle yavaştır
o Hızlı sözcüksel/sözdizimsel menü kullanılmalıdır
Ancak anlamsal geri besleme gerekebilir
o Serbest çizim
o Dosya sürüklendiğinde çöp tenekesi ya da klasörünün
vurgulanması parlaması.
Bu nedir?
Switch
Uygulama ve sunum
arasında
doğrudan iletişimi sağlar
Hızlı Anlamsal
Geribildirim
Diyalog
kontrolcü
tarafından düzenlenir.
Daha çok katman !
dialogue
func . core
a da ptor
func tional
c ore
le xica l
phy sic al
Arch/Slinky
Daha fazla katman vardır. Yani sözcüksel ve fiziksel
ayrım yapar
Farklı sistemlerde farklı katmanlara ulaşabilmek
önemlidir.
dialogue
func . core
a da ptor
func tional
c ore
le xica l
phy sic al
Tek Parça ve Bileşenler
Seeheim büyük bileşenlere sahiptir.
Küçük parçaları kullanmak daha kolaydır
o nesneye yönelik araç kiti kullanıyorsanız
Smalltalk(Program Arayüzü) Mvc kullanır.
o Model – bileşenlerin mantıksal durumu
o View – ekranda nasıl görüntülenir
o Controller – kullanıcının giriş işlemleri
MVC
Model-View-Controller
view
model
controller
MVC
Model-View-Controller
Model Nedir?
o Controller'den gelen değerleri işler ve geriye döndürür.
View Nedir?
o Uygulamanın kullanıcıya gösterilen arayüzünün
bulunduğu katmandır.
Controller Nedir?
o Uygulamanın karar mekanizmasıdır.
MVC’nin Sorunları
MVC büyük ölçüde boru hattı(pipeline) modelini
kullanır.
input control model view output
Pipeline: Bilginin, ardışık düzenin bir aşamasından
sonrakiye geçmesi için düzenlenmiş bilgi akış yönteminin
adıdır.
MVC’nin Sorunları
Grafik arayüzünde
o Girişin çıkış ile bağlantılı olduğunda anlamı vardır.
Örnek fareye tıklatma
o
o
o
Tıklatıldığını bilmek gerek
Kontrolör ne için tıklatıldığına karar vermelidir
View in nerede ne görüntü vermesini bilmesi gerekir.
Pratikte controller view ile konuşur.
o Ayrım tamamlanmış değil
PAC Modeli
Presentation–Abstraction(soyutlama)–Control
PAC modeli Seeheim ile benzerdir
o Soyutlama– bileşenlerin mantıksal durumu
o Tanıtım– giriş ve çıkışların yönetimi
o Kontrol – bu ikisi arasında bağlatı kurar
Hiyerarşik ve çoklu görüntüleri yönetir
o PAC nesnelerinin iletişim kısmını kontrol eder
PAC birçok yönden daha iyidir.
Fakat pratikte MVC daha çok kullanılır.
Örnek: java swing
PAC
Sunum- Soyutlama- Kontrol
A
P
A
P
C
abstraction
C
presentation
control
A
P
C
A
P
C
UIMS Uygulaması
Diyalog kontrolü için teknikler
• menü ağları
• gramer notasyonları
• dillerin bildirimi
• grafik özellikleri
• durum geçiş diyagramları
• durum dilleri
• kısıtlamalar
(bunların ayrıntısı 16. bölümde göreceğiz)
Grafik Özellikleri
Nedir?
o Ekranda bileşenleri çizmek
o Script veya program bağlantıları olan eylemleri
ayarlamak
Kullanımı
o En popüler teknik ham programlama tekniği
o ör:visual basic,dreamweaver,flash
Local vs. global
o Ekranda neyin görüneceğine odaklan
Diyalog Kontrolünün Amaçları
İç kontrol
o ör:okuma-değerlendirme döngüsü
Harici kontrol
o Sunum veya anlamsal uygulamalardan bağımsızdır
Sunum kontrolü
o ör:grafik özellikleri
Özet
Programlamanın düzeyi araçları(tools) desteklemelidir
Pencereleme sistemleri
o aygıttan bağımsızdır
o çoklu görevleri yapar
Uygulamaları programlamak için paradigmalar
o okuma-değerlendirme döngüsü
o Uyarı tabanlıdır
Araçlar
o etkileşimli nesneleri programlama
UIMS
o conceptual architectures for separation
o diyalogları ifade etmek için teknikler vardır.
Referanslarımız…
http://www.hcibook.com/e3/chapters/ch8
http://tr.wikipedia.org/wiki/X_Pencere_Sistemi
http://tr.wikipedia.org/wiki/Java_(programlama_d
ili)
http://www.java.net/