PowerPoint Sunusu

advertisement
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)
presentation
dialogue
application
2. Seeheim
dialogue
func. core
adaptor
3. Arc/Slinky modeli
functional
core
lexical
physical
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
presentation
dialogue
application
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
adaptor
functional
core
lexical
physical
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
adaptor
functional
core
lexical
physical
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/
Download