ETKİLEŞİMLİ TASARIM NEDİR? ETKİLEŞİMLİ TASARIM SÜRECİ VE TASARIM DİLLERİ Etkileşimli tasarım sadece arayüz tasarlama yada bilgisayar programlama değildir. Aynı zamanda insanların işlerini nasıl ve ne kadar etkileyeceği ile de ilgilenir. Etkileşimli sistemler sadece tasarımla ilgilenmemeli, bununla birlikte programın kullanımı ile ilgili bilgilerde vermelidir. 2009638014 Cihat Dumandağ 2009638504 Nuran Kon GELENEKSEL YAZıLıM TASARıMı ILE KARŞıLAŞTıRıLDıĞıNDA ETKILEŞIM TASARıMıNıN FARKı NEDIR? Etkilkeşim tasarımı kullanıcı odaklıdır ve ürünü geliştirme yaklaşımlıdır.yani bu demek oluyorki kullanıcının endişesi ürünü geliştirmek değil teknik sorunlardır. ETKILEŞIM TASARıMıNıN DÖRT TEMEL FAALIYETLERI Gereksinimleri Belirlemek(Establishing requirements) Alternatif Çözümleri Tasarlamak(Designing alternatives) Prototip Oluşturmak(Prototyping) Değerlendirme Yapmak (Evaluating) GEREKSINIMLERI BELIRLEMEK(ESTABLISHING REQUIREMENTS) GEREKSINIM TÜRLERI Hedef kullanıcıların kim olduğunu, sistemde ne yaptıklarını, ne yapmak istediklerini bilmemiz gerekmektedir. Ancak bu şekilde etkileşimli tasarım desteklenir. Functional(Fonsiyonel) Unfunctional(Fonksiyonel olmayan) User(Kişisel) Environmental(Çevresel) Usability(Kullanılışlık) 1
GEREKSINIMLER NASıL BELIRLENIR? Görev Tanımlama Senaryolar Use Case Diyagramları Essantial Use Case Diyagramları GÖREV TANıMLAMA SENARYOLAR Senaryolar tasarım yapmak için oluşturulan hikayelerdir. Görev Analizi Hierarchical Task Analysis (HTA) GÖREV TANıMLAMA USE CASE DIYAGRAMLARı Sistemin işlevselliğini açıklamak amacıyla kullanılır. GÖREV TANıMLAMA ESSENTIAL USE CASE DIYAGRAMLARı Kullanıcı Hedefleri Kendini sisteme tanıtır Bilinen ayrıntıları sunar Sonuçları not alır Sistemden çıkar Sistem Sorumluluğu Kimliği doğrulamak uygun bilgileri istemek Sonuçları sunmak Sistemi kapatmak GÖREV ANALIZI HIERARCHICAL TASK ANALYSIS (HTA) ALTERNATIF TASARıMLAR GELIŞTIRMEK Tasarımın temel faaliyeti; Gereksinimleri karşılamak için fikirler önermektir.iki çeşit tasarım bulunur: Kavramsal(Conceptual) Tasarım Fiziksel(Physical) Tasarım 2
KAVRAMSAL(CONCEPTUAL) TASARıM FIZIKSEL(PHYSICAL) TASARıM Tasarlanan, hayal edilen düşünceler ile oluşturulan ürünün; Görünümünün nasıl olduğu, ne yapması gerektiği nasıl davranacağı özellikleri yönünden kullanıcının anlayacağı şekilde ortaya koymaktır. Arayüz tasarlamayı ifade etmektedir: -Keypad,masaüstü,hangi ikonlar kullanılacak, menülerin yapısı nasıl olacak? Kavramsal tasarımla çok kalın bir çizgi ile ayrılmazlar. ALTERNATIFLER NASıL ORTAYA ÇıKAR? Tasarımcının yaratıcılığıyla ve yetenekleriyle: Araştırma,sentez İlham alarak: Benzer tasarımlara bakarak inceleyerek. ALTERNATIFLER ARASıNDAN SEÇIMI NASıL YAPARıZ? Kullanıcılar değerlendirme yaparak, Örneğin;prototipleri kullanmak. Teknik olarak olabilirliğine bakılabilir. Kalite Eşikleri:Kullanılabilirlik ölçütlerini sık sık kontrol ederek. 3.ETKILEŞIMLI TASARıM İÇIN PROTOTIPLEME ETKILEŞIMLI TASARıMDA NELER PROTOTIP OLARAK KULLANıLABILIR? Prototip küçük ölçekli bir modeldir. Screen Sketches( Sadece bir kare) Storyboard( çizgi film gibi) Power Point sunumu Sistem kullanımını simülasyon eden bir video Hedef dilde ya da başka dilde yazılmış olan sınırlı sayıda fonksiyonu gösteren bir kod parçası prototip olabilir. 3
4.DEĞERLENDIRME(EVULATION) ETKILEŞIMLI TASARıMıN ÜÇ TEMEL ANAHTARı Nedir: Tasarımın kullanılabilirliğinin ve kabul edilebilirliğinin belirleme işlemidir. Neden:Kullanıcı ihtiyaçlarını karşılaya bildik mi? Kullanıcı bu ürünü kullanmayı sevdi mi test etmek için. Nezaman:Tasarım boyunca,bitmiş ürünlerin yeni ürünleri bilgilendirmesi gerektiği zaman. 1. Kullanıcıya Odaklanma Bir süreç, kendi içinde, gelişmeyi garanti edemesede kullanıcıları içerir ve bunun üzerine odaklanarak değerlendirme ve kullanıcı geri bildirimi için teşvik ve fırsatlar sağlayabilir. ETKILEŞIMLI TASARıMıN ÜÇ TEMEL ANAHTARı ETKILEŞIMLI TASARıMıN ÜÇ TEMEL ANAHTARı 2.Belirli Kullanılabilirlik Kuralları 3.İterasyon(Tekrarlama) Belirli kullanılabilirlik hedefleri ve kullanıcının tecrübesi,açık bir şekilde tanımlanarak dökümante edilmeli,bu kriterlere proje başlamadan önce karar verilmelidir. Bunlar tasarımcıya alternatifler arasından seçim yaparken ve tasarımı kontrol ederken yardımcı olur. İterasyon geri bildirim merkezli olarak tasarımın rafine edilmesini sağlar. Eğer yenilik yapmak istiyorsak iterasyon önemli bir adımdır. ANAHTAR SORULAR Kullanıcılar kimlerdir? İhtiyaçlara göre neler yapmalıyız? Nasıl alternatif tasarımlar oluşturulur? Alternatifler arasından nasıl seçim yapılır? KULLANıCıLAR KIMLERDIR? Üç tip kullanıcı vardır (Eason, 1987): Birincil İkincil Üçüncü derecede Paydaşlar Uygulanan sistemin etkisinde olacak anahtar kişiler. 4
YAŞAM DÖNGÜSÜ (LIFECYCLE) MODELLERİ BASIT BIR YAŞAM DÖNGÜSÜ; Faaliyetlerinin nasıl ilişkilendirildiğini gösterirler. Yaşam döngüsü modelleri: Yönetim araçları Gerçekliğin basitleştirilmiş versiyonu Pek çok yaşam modeli örneği bulunmaktadır: Yazılım mühendisliği : şelale, spiral,jad /RAD,Microsoft HCI:Star(Yıldız) Modeli,Kullanılabilirlik İTERATIF TASARıM SÜRECI İTERATIF TASARıM SÜRECI 1.Tasarım Adımı: Tasarım ekibi ölçülebilir nitelikteki hedeflerini,müşteri hedeflerine ve gelişmekte olan tasarım kavramlarına karar verirler. 3.Değerlendirme Adımı: Tasarımcılar prototiplerin istenen hedefleri karşılayıp karşılamadıklarını test ederler. 2.Prototipleme Adımı: Senaryolar,Storyboardlar ortaya koyulur,amaç tüm sistemin hareket noktasını oluşturma,gereksinimleri refine etmektir. 4.Çıkan sonuçlar bir sonraki iterasyonu bilgilendirmede kullanılır bu döngü hedefler karşılanana kadar devam eder. YAZıLıM MÜHENDISLIĞINDE YAŞAM DÖNGÜLERI Geliştirilen yazılımın, üretim aşaması ve kullanım süreci boyunca geçirdiği tüm aşamalar "Yazılım Geliştirme Yaşam Döngüsü" olarak tanımlanır. ŞELALE (WATERFALL) MODELI Geleneksel yazılım geliştirme modeli olarak da bilinir. Şelale modelinde yazılım, aşamalar en az birer kez tekrarlanarak geliştirilir. 5
GENEL ÖZELLIKLERI AVANTAJLARı Ardışıl Model Adımlar: Analiz-Tasarım-Kodlama-Sınama-Bakım Bir adımın tamamlanmasından sonra diğerine geçilir. Eksiklikler veya hatalar farkedilirse bir önceki adıma geçilir. En eski model,yaygın kullanımda İyi tanımlanmış adımlar Kısa ömürlü projelere uygundur. DEZAVANTAJLARı HELEZONIK (SPIRAL) MODEL Gereksinim tanımlamaları çoğu kez net bir şekilde yapılamadığından dolayı, yanlışların düzeltilme ve eksiklerin giderilme maliyetleri yüksektir. Üst düzey yönetimlerin ürünü görme süresinin uzun oluşu, projenin bitmeyeceği ve sürekli gider merkezi haline geldiği düşüncesini yaygınlaştırmaktadır. Bir çok müşteri de gereksinimleri eksiksiz ve kesin belirtmekte zorlanmaktadır. Son ürünün eldesi uzun süreceğinden müşteri sabırlı olmalıdır. SPIRAL MODEL GENEL ÖZELLIKLER SPIRAL MODELIN AVANTAJLARı Spiral Model Genel Özellikler Risk Analizi Olgusu ön plana çıkmıştır. Her döngü bir fazı ifade eder.doğrudan tanımlama,tasarım, vs gibi bir faz yoktur. Yinelemeli artımsal bir yaklaşım vardır. Prototip yaklaşımı vardır. 1. Kullanıcı Katkısı Üretim süreci boyunca ara ürün üretme ve üretilen ara ürünün kullanıcı tarafından sınanması temeline dayanır. Yazılımı kullanacak personelin sürece erken katılması ileride oluşabilecek istenmeyen durumları engeller. 2.Yönetici Bakışı Gerek proje sahibi, gerekse yüklenici tarafındaki yöneticiler, çalışan yazılımlarla proje boyunca karşılaştıkları için daha kolay izleme ve hak ediş planlaması yapılır. 3.Yazılım Geliştirici (Mühendis) Bakışı Yazılımın kodlanması ve sınanması daha erken başlar. 6
HıZLı UYGULAMA GELIŞTIRME RAD:( RAPID APPLICATION DEVELOPMENT ) HıZLı UYGULAMA GELIŞTIRME Kısa geliştirme çevrimleri üzerinde duran artımsal bir model. RAD aslında tek başına kullanılabilen özel bir model veya araç değil bu uygulama geliştirme yöntemini uygulayan araçların tümüne verilen genel bir isimdir. Scrum,extreme programming(xp),lean software development (LD),joint application development(jad) bunlardan birkaçı olarak sayılabilir. HıZLı UYGULAMA GELIŞTIRME İKI ANAHTAR ÖZELLIĞI Uygulamanın yaklaşık/ortalama 3 aylık bölümlere ayrılabilmesi, Yeterli sayıda bölümün eş zamanlı ilerlemesinin sağlanabilmesi. Ortak Ürün Geliştirme (Joint Application Development) :Paydaşlar,ilgili çalışanlar,geliştiriciler bir araya gelerek yoğun gereksinim toplama çalışmalarının yapılmasıdır. HıZLı UYGULAMA GELIŞTIRME Dezavantajlar: Büyük ölçekli çalışmalarda yeterli sayıda bölümü eşzamanlı ilerletebilecek sayıda çalışanın bulunamaması. Çalışanlar hıza uyum sağlayabilmelidirler. Yüksek teknik risklere uygun değil. Avantajlar: Artan Hız Artan Kalite Sonuç: Prototip geliştirmede kullanılması veya ana fikirlerinin diğer süreçlere uygulanması yerinde olacaktır. HCI VE YAŞAM DÖNGÜLERI STAR LIFECYCLE MODEL İnsan bilgisayar etkileşimi alanında ortaya konmuş yaşam döngüleri yazılım mühendisliği alanındakilere göre daha azdır. Kısaca bahsedeceğimiz modeller ise: Aktivitelerin belli bir adımı yoktur. Merkezinde ise değerlendirme vardır. Yeni arayüz tasarımı arayan bazı tasarımcıların ampirik çalışmalarından doğmuştur. Star(Yıldız)Modeli Kullanılabilirlik Mühendisliği Modeli 7
KULLANıLABILIRLIK MÜHENDISLIĞI YAŞAM DÖNGÜSÜ MODELI KULLANıLABILIRLIK MÜHENDISLIĞI MODELI Kullanılabilirlik mühendisliğine bütünsel bir bakış açısı sağlar. Yazılım mühendisliği yaklaşımına bağlantı sağlar. Üç aşamadan oluşur gereksinimleri belirleme,tasarım/test eme/geliştirme, kurma Gereksinimleri belirleme üç görevden oluşur;tasarım,değerlendirme,prototipleme WEB SITE GELIŞTIRME SÜRECI WEB SITE GELIŞTIRME SÜRECI Tüm aşamaları iteratif tasarım şeklindedir. 7 aşamadan oluşur: 1.Keşfetme(Discovery): Hedef kullanıcı kitlesini belirleme Hedef kullanıcıların ihtiyaçlarını belirleme Yapılacak olan işleri ve ihtiyaçları kavramsallaştırmak 2.Araştırma(Exploring): Kabaca ilk örnekler, tasarımlar oluşturulur. 3.Saflaştırma(Refinement): Seçilen tasarımın akışını ve düzenini geliştirme WEB SITE GELIŞTIRME SÜRECI 4.Üretim(Production): Tümüyle etkileşimli prototip oluşturulur. 5.Uygulama(Implementation): Kodlama İçerik ve Görüntüleri geliştirme 6.Piyasaya Sürme(Launch): 7.Bakım(Maintanence): Varolan sitenin başarısını ölçerek, yeni veriler toplayarak yeniden dizayna hazırlamak. TASARıM DILLERI VE UYGULAMA Uygulama Desteği Programlama Araçları DESTEĞI Programcılar için hizmet düzeyleri Pencereleme Sistemleri Ayrılmış ve eş zamanlı kullanıcı sistem etkinliği için temel çekirdek desteği sağlamalıdır. Uygulamaları Programlama ve İletişimi Kontrol Altında Tutma Etkileşim Araçları Kullanıcının Algı Düzeyine göre programlama yapmak Programcının kullanıcının algısına göre,nesnelerin davranışlarını tanımlamasına izin verir. 8
İNSAN BILGISAYAR ETKILEŞIMI PROGRAMCıYı NASıL ETKILER? GELIŞTIRME ARAÇLARıNıN KATMANLARı Programlama koddaki gelişmelere açık olmalıdır. Belirli Donanımlar -Belirli etkileşim ve teknikler Pencereleme Sistemleri Etkileşim Aracı Kullanıcı Arayüzü Yönetim Sistemleri PENCERELEME SISTEMLERININ ÖĞELERI Aygıt Bağımsızlığı Pixels PostScript (MacOS X, NextStep) Graphical Kernel System (GKS) Programmers Hierechical Interface to Graphics(PHIGS) Kaynak Paylaşımı Kullanıcı görevleri eşzamanlılık sağlanmasını Pencereleme sistemi bağımsız işlemleri Bireysel uygulamalar izolasyonunu sağlar. 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? PENCERELEME SISTEMININ MIMARISI 1.Her Uygulama Tüm işlevleri Yönetir Senkronizasyon hakkında sorunlar Uygulama taşınabilirliğini azaltır CLIENT SERVER MIMARISI 2.Yönetim rolü çekirdek işletim sistemi içindedir. Uygulamalar işletim sistemine bağlıdır. 3.Ayrı uygulamadaki yönetim rolü Maksimum taşınabilirlik sağlar. 9
X PENCERE MIMARISI X PENCERE MIMARISI Nedir? 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. 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 PENCERE MIMARISI OKUMA-DEĞERLENDIRME DÖNGÜSÜ X protokolü server-client iletişimini belirler Farklı Pencerelerin yöneticisi giriş-çıkış koşullarını denetler(uygular). Girdiler nasıl değişecek Inter-Client veri transferi Kim Buldu? X-Pencere başlangıçta MIT projesi olarak geliştirildi ve o zamandan beri bilgisayar üreticileri tarafından kabul edildi. 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 JAVA NEDIR? JAVA SWING KÜTÜPHANESI 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. 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. 10
JAVA ARAYÜZÜ java sınıfları buton,menü vs. destekler Bildiri(uyarı)tabanları şunlardır: AWT 1.0 ana alt sınıf araçlarına ihtiyaç duyar. AWT 1.1 ve sonraki versiyonlar nesneleri geri çağırır Swing araç kiti AWT nin en üst katmanından geliştirilmiştir Üst düzey sürümleri var. 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 Kavramsal mimari Uygulama Teknikleri Altyapı desteklemesi KAVRAMSAL MIMARI OLARAK UIMS Geliştirilebilir: Taşınabilirdir, yani farklı sistemlerde çalışabilir Yeniden kullanılabilirdir, yani bileşenler tekrar kullanılarak maliyet azaltılabilir Çok arayüzü aynı özelliğe erişebilir İsteğe göre uyarlanabilirlik, yani tasarımcı ve kullanıcı tarafından uyarlanabilir TEŞEKKÜRLER KAYNAKLAR http://www.bimetri.com/urunler/yazilim/ozel/yazil im-gelistirme-metodolojilerimiz/ http://sulc3.com/model.html http://www.bby.hacettepe.edu.tr/ebulten/dosyalar/file/bulten_aralik2010/taskin_u NAK2010(1)(sunum).pdf http://ceng.gazi.edu.tr/~hkaracan/bm515_h1.pdf http://www.kmyo.duzce.edu.tr/kmyo/myos/pdf/m YO_OS_9005.pdf http://ocw.metu.edu.tr/mod/resource/view.php?id =703 11