Process of Interaction Design and
Design Languages
2009639037 Eylül ALPANDİNER 2009639007 Aysun İLHAN
Kaynağın iletisini alıcıdan gelen tepkiye dayanarak değiştirebilmesi ve yeni bir iletiyi karşılıklı olarak
oluşturabilmesidir.
Etkileşimin Tanımını Tekrar Yapalım?
Etkileşimli Tasarım Nedir?
Etkileşimli ürün tasarlamak;İnsanın günlük yaşamında ve iş hayatında iletişimini ve etkileşimini desteklemenin bir yoludur.
-Sharp, Rogers and Preece (2011)
Mekanların tasarımı insan iletişimi ve etkileşimi için yapılmalıdır.
-Winograd (1997)
Etkileşimli Tasarım Nedir?
Etkileşimli Tasarımın Hedefleri Nelerdir?
1. Ürünün Kullanışlı Olması(Usability Goals)
Etkililik(effectiveness)
Verimlilik(efficiency)
Güvenli(safety)
Faydalı(utility)
Öğrenilebilir (learnability)
Nasıl kullanıldığının kolay hatırlanabilmesi(memorability)
Etkileşimli Tasarımın Hedefleri Nelerdir?
Hangisi Şampuan ?
Hangisi Vücut Jeli? Bu içecek makinesinin kullanımı neden kötü?
Etkileşimli Tasarımın Hedefleri Nelerdir?
2. Kullanıcı Deneyimi (User experience goals)
Cevap verebilen
Eğlenceli
Yaratıcılığı destekleyici,faydalı
Yararlı
Yeterli,Doyurucu
Motive edebilen
Etkileşimli Tasarımın Hedefleri Nelerdir?
İyi Bir Tasarım Örneği…
Answering Machine
• Tasarımı Bishop’a aittir. (1995)
• Gündelik eşyaların davranışlarını temel almıştır.
• Kullanımı kolay ve eğlencelidir.
• Sadece bir adım temel eylemleri gerçekleştirmek için yeterlidir
Anahtar Kavramlar
• Kullanıcılar Kimdir?
• Kullanıcı Gereksinimi Nedir?
• Paydaşlar Kimlerdir?
“Gereksinimler”
Gereksinim:İstenen ürünün ne yapması gerektiği ve nasıl yapması gerektiği durumlarını belirtilmesidir.
Kullanıcıların yeteneklerini ve karakterlerini anlamak.
Hedef kullanıcıya danışmak gerekir.
Eğer hiçbir şey yoksa geçmiş davranışlarına bakıp gelecekteki davranışlarını tahmin etmeliyiz
Paydaşlar Kimlerdir?
Kasiyerler
Müşteriler
• Tedarikçi
•Mağaza Sahibi
Etkileşimli Tasarımın Dört Temel Adımı
1.Gereksinimleri
Belirlemek(Establishing requirements)
2.Alternatif Çözümleri Tasarlamak(Designing alternatives)
Etkileşimli Tasarımın Dört Temel Adımı
3. Prototip
Oluşturmak(Prototyping)
4. Değerlendirme Yapmak (Evaluating)
1.Gereksinimleri Belirlemek
İnsanlar için tasarım yapıyorsak;
• 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.
1.Gereksinimleri Belirlemek
Amacımız Ne? Neden Gereksinimleri Belirlemeliyiz?
•Kalıcı değişmez olarak gereksinimleri belirlemeliyiz.
•Bu kalıcı gereksinimleri tasarım oluştururken aktiviteler olarak kullacağız.
Gereksinimler Nasıl Belirlenir?
Gereksinim Türleri
• Functional(Fonsiyonel)
• Unfunctional(Fonksiyonel olmayan)
• User(Kişisel)
• Environmental(Çevresel)
• Usability(Kullanılışlık)
Veri Toplama
1. Soru Sorma
Veri Toplama
2. RöportajVeri Toplama
3. Gruplara Atölyelere Odaklanma
Veri Toplama
4.Doğal GözlemVeri Toplama
4.Dökümanlarla Çalışma
Gereksinimler Nasıl Belirlenir?
Görev Tanımlama
• Senaryolar
• Use Case Diyagramları
• Essantial Use Case Diyagramları
Görev Analizi
• Hierarchical Task Analysis (HTA)
Görev Tanımlama
Senaryolar
“Görevler,Aktiviteler Hikayelerle Can Bulur.”
Görev Tanımlama
Use Case Diyagramları
Kütüphane Katalog servisi Use Case Diyagramı
Kütüphane üyesi
Kütüphane Çalışanı Kitap arama
Katolog Güncelle Sistem
Görev Tanımlama
Essantial 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 Kitap Arama- Essential Use Case Diyagramı
Görev Analizi
Hierarchical Task Analysis
Kütüpha
neye git Gerekli
Kitabı bul Raftan
Kitabı al Gişeden Kitabı al 3
2
1 4
0
Kataloğa
ulaş Arama
ekranına ulaş
Arama Kriterlerini
Gir
Gerekli Kitabı Tanımla
Yeri not al plan 0:
do 1-3-4.
Beklediğim rafda değilse, do 2-3-4.
plan 2:
do 2.1-2.4-2.5.
Kitap tanımlanan yerde yoksa, do 2.2-2.3-2.4-2.5
2.1 2.2 2.3 2.4 2.5
Ödünç kitap Alma
2.Alternatif Tasarımlar Geliştirmek
Tasarımın temel faaliyeti;
Gereksinimleri karşılamak için fikirler önermektir.İki çeşit tasarım bulunur:
• Kavramsal(Conceptual) Tasarım
• Kullanılacak Etkileşim Türleri
• Kavramsal Modeli Geliştirme
• Fiziksel(Physical) Tasarım
Kavramsal(Conceptual) Tasarım
“Gereksinimlerden İlk Tasarıma
Yolculuk…”
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.
Kavramsal(Conceptual) Tasarım
Kavramsal(Conceptual) Tasarım
Kavramsal model ile yapılmak istenenler Veri toplama aşamasında ortaya çıkar.
Kavramsal model oluşturulurken şu adımları dikkate almalıyız.
• Her zaman beyni açık tutmalı kullanıcı ve bağlamınını unutmamalıyız.
• Düşünceleri olabildiğince paydaşlarla paylaşmalıyız.
• Düşük kaliteli prototipleri kullanarak hızlı feedback almayı amaçlamalıyız.
• “İyi bir fikre ulaşmak için, bir çok fikir üretmeliyiz” (Fudd’s Yaratıcılık 1.Kuralı)
Hangi Etkileşim Türü Kullanılmalı?
Hangi etkileşim türünün kullanılması ürün için doğru olur?
İnstruction(Komut):Kullanıcıların işlerini ürüne komut vererek gerçekleştirmesi mesela yazdırma işlemi, mouse ile menüden seçme işlemi.
Conversing(Diyalog): Sistem diyalog partneri gibi çalışır.
Hangi Etkileşim Türü Kullanılmalı?
-Canlandırılmış ajanlar(karakterler)
-Bilet alma işlemi yada bankamatiklerde yönlerdirme
yaparken paranızı alınız,evet hayır gibi cavaplar
Hangi Etkileşim Türü Kullanılmalı?
Manipulating and
navigating(Manipülasyon ve Gezinme):
Fiziksel hayatta mevcut olan eylemlerin sanal ortamda
gerçekleştirilmesidir.Mesela hareket etmek, kapatmak, açmak,gezinme,
• Direkt Manipülasyon: ekran üzerine yerleştirilen interaktif düğmelere kullanıcının doğru fiziki tepkiler vermesini sağlamaktır
Hangi Etkileşim Türü Kullanılmalı?
Keşfetmek ve Taramak(Exploring And Browsing)
İnsanlar ne zaman kitapçıya, tatile, hastaneye gidecek olsalar hakkında bir şeyler öğrenmek isterler bunun için Web sayfalarına, portal sayfalarına,e- ticaret sitelerini kullanmak isterler.
Fiziksel(Physical) Tasarım
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
Prototip küçük ölçekli bir modeldir:
• Minyatür bir araba
• Minyatür şehir yada binalar
• Yanda bir prototip Örneği görebiliriz
3.Etkileşimli Tasarım İçin Prototipleme
Etkileşimli Tasarımda Neler Prototip Olarak Kullanılabilir?
•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.
Neden Prototipleri Kullanmalıyız?
• Tasarım elle tutulur gözle görülür hale geldiği için paydaşların düşüncelerini anlatmalarında yardımcı olur.
• Takım üyeleri için etkili bir iletişim aygıtıdırlar,düşüncelerini tek başına test etmenin en iyi yoludur.
• Tasarımın tepkisinin ne olacağını gösterir.
• Tasarımcının sorularına cevap vererek, alternatifler arasından seçim yapmasında yardımcı olur.
PROTOTİP TİPLERİ
Düşük Kaliteli Yüksek Kaliteli
PROTOTİP TİPLERİ
Düşük Kaliteli Prototipler(Low- Fidelity)
• Ürünün son haline benzemezler.
• Kullanılan metaryeller ;karton,kağıt
• Kullanımı kolay, çabuk değiştirilebilir ve ucuzdur.
• Araştırma için kullanılırlar asla son ürüne entegre edilmezler.
Örnekler…
Storyboards:
• Bir kullanıcının cihazı kullanarak yaptığı işte ilerlemesini tamamlanana kadar gösteren bir dizi skeçten oluşur.
• Senaryolar ile birlikte kullanılırlar.
• Senaryolara göre daha çok ayrıntının görülmesini sağlarlar
Storyboards Örneği… Sketching…
• Düşük kalite prototiplerin dayanağıdır.
• Senaryolarda kullanılan figurlardır.
• Basit kutularla, çizgilerle pratik yapılabilir.
‘Wizard-of-Oz’ prototip ‘Wizard-of-Oz’ prototip
• Kullanıcı ekran karşısında ürün ile etkileşimde olduğunu sanır ama çıktıları sistemden çok tasarımcı üretir.
• Genellikle kullanıcının ne beklediğini anlamak için ilk başta oluşturulur.
“Bitmiş gibi görünüyor ama
bitmedi…”
Yüksek Kaliteli Prototip Yüksek Kaliteli Prototip
• Son ürünün olmasını istediğimiz metaryeller kullanılır (Mesela elektronik bir ortam)
• Kullanıcılar artık bu son ürün olarak düşünmeleri tehlike yaratır.
• Geliştiricilerde artık bu noktadan sonra bir şeyleri değiştirmekte isteksizdirler.
4.Değerlendirme(Evulation ) 4.Değerlendirme(Evulation )
Değerlendirme Nedir? Ne Zaman Yapılır? Neden Yapılır?
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.
Değerlendirme Teknikleri
Kullanıcıları gözlemlemek.
Kullanıcılara düşüncelerini sormak.
Uzmanlara görüşlerini sormak.
Kullanıcıların performansını gözlemleyerek.
Etkileşimli Tasarımın Üç Temel Anahtarı
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ı
2. Belirli Kullanılabilirlik Kuralları
• 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.
Etkileşimli Tasarımın Üç Temel Anahtarı
3. İterasyon(Tekrarlama)
• İterasyon geri bildirim merkezli olarak tasarımın rafine
edilmesini sağlar.
• Eğer yenilik yapmak istiyorsak iterasyon önemli bir adımdır.
YAŞAM DÖNGÜSÜ
(LIFECYCLE) MODELLERİ
“Bu modeller,aktivite grubunu ve nasıl ilişkili olduklarını yakalarlar.”
Yaşam Döngüsü Modelleri
Yazılım (Software)
Mühendisliği HCI
Şelale(Waterfall) Model
Spiral Model Rad Model Microsoft Web Site
Star(Yıldız) Modeli Kullanılabilirlik
Mühendisliği
Basit Bir Yaşam Döngüsü;
Etkileşimli Tasarım
Gereksinimleri Belirle
Değerlendir
Etkileşimli Tasarımı Kur (Re)Tasarım
Son Ürün Başla
İ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.
2. Prototipleme Adımı:
Senaryolar,Storyboardlar ortaya koyulur,amaç tüm sistemin hareket noktasını oluşturma,gereksinimleri refine etmektir.
İteratif Tasarım Süreci
3. Değerlendirme Adımı: Tasarımcılar prototiplerin istenen hedefleri karşılayıp karşılamadıklarını test ederler.
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
Yazılım yaşam döngüsü temel olarak;
yazılımın nasıl geliştirileceğinin karakteristiğinin bir tanımlanması ya da tasvir edilmesi demektir.
Yazılım işlevleri ile ilgili gereksinimler sürekli olarak değiştiği ve genişlediği için, söz konusu aşamalar sürekli bir döngü biçiminde ele alınır.
Yazılım Yaşam Döngüsü Temel Adımları
1.Planlama
Personel ve donanım
gereksinimlerinin çıkarıldığı, fizibilite çalışmasının yapıldığı ve proje planının oluşturulduğu aşamadır.
2.Analiz
Sistem gereksinimlerinin ve işlevlerinin ayrıntılı olarak çıkarıldığı aşama. Var olan işler incelenir, temel sorunlar ortaya çıkarılır.
Yazılım Yaşam Döngüsü Temel Adımları
3. Gerçekleştirim
Kodlama, test etme ve kurulum çalışmalarının yapıldığı aşamadır.
4. Bakım
Hata giderme ve yeni eklentiler yapma aşaması (teslimden sonra).
Çağlayan (Şelale) Modeli
Sistem ve Yazılım Tasarımı Gereksinimlerin
Tanımlanması
Birleştirme ve Sistemi test etme
Sistemin Bakım ve İdamesi Kodlama ve Modül
test etme
Genel Özellikleri..
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.
Avantajları
En eski model,yaygın kullanımda
İyi tanımlanmış adımlar
Kısa ömürlü projelere uygundur.
Dezavantajlar?
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.
Dezavantajlar?
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
Helezonik(Spiral) Modeli
Risk Analiz i
Risk Analiz i
Risk Analiz i
Risk Analiz i
Proto- tip 1
Prototip 2 Prototip 3 İşin Prototipi Öninceleme
Analizi İşin Genel Kavramı Geliştirme
Planı Birleştirme ve
Test Planı
Yazılım Gereksinimi Gereksinim onaylama
Ürün Tasarım ı Tasarımı test Etme ve onay
Detaylı Tasarım Kodlama Modül Testi Birleştirme testi Kabul testi Servis
Simulasyon ve Modelleme Amaca,
Alternatiflere ve Sınırlamalara karar verme
Alternatifleri değerlendirme ve risk analizi
Bir sonraki fazın planlanması ve kullanıcı değerlendirmesi
Geliştirme ve bir sonraki ürünü onaylama onay ekseni
Planlama Risk Analizi
Üretim Kullanıcı Değerlendirme
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.
Spiral Model Aşamaları
1.Planlama
Üretilecek ara ürün için planlama, amaç belirleme, bir önceki adımda üretilen ara ürün ile bütünleştirme
2.Risk Analizi
Risk seçeneklerinin araştırılması ve risklerin belirlenmesi
Spiral Model Aşamaları
3. Üretim
Ara ürünün üretilmesi
4. Kullanıcı Değerlendirmesi
Ara ürün ile ilgili olarak kullanıcı tarafından yapılan sınama ve değerlendirmeler.
Spiral modelin avantajları
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.
Spiral modelin avantajları
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.
Hızlı Uygulama Geliştirme RAD:( Rapid Application Development )
Hızlı Uygulama Geliştirme
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.
Scrum(Sürü)
Bir yazılım geliştirme süreçleri yönetimi
Scrum’da klasik proje geliştirme aşamalarının aksine küçük küçük parçaların bütünselliği söz konusudur.
Yani amaç küçük küçük parçalarla sonuca gitmek
Scrum(Sürü)
Peki başka ne gibi avantajları var?
-Verimli bir kaynak yönetimi avantajı sağlarsınız.
-Proje parçalarının başlangıç ve bitiş zamanlarını çok daha hızlı saptarsınız.
-Takım ruhu oluşur.
-Planlama sadece başlangıçta değil her aşamada olur.
-Projeye adapte olmak kolaylaşır.
Scrum(Sürü)
Adımlar: Görev-listesi->Koşu->İşlev- gösterimi
Görev-listesi=Kullanıcı Öyküleri önceliklendirilmiştir.
Koşu:
Görev listesinin maddelerinden biri seçilir ve önceden belirlenmiş kısa bir süre içerisinde(ör:1-4 hafta)
gerçeklenir.
Scrum(Sürü)
Koşu süresince ekibin her gün yaptığı (ör:15dk) toplantılar
Proje lideri yönetir.
Cevaplanmaya çalışılan üç ana soru:
Son toplantıdan bu yana ne yaptınız?
Karşılaştığınız engeller nelerdir?
Yarınki toplantıda neleri başarmayı hedefliyorsunuz?
İşlev Gösterimi: Müşterinin en yeni işlevi veya o ana dek gerçeklenen tüm işlevlerin sınaması.
XP(Extreme Programming)
XP 4 değer üstüne kuruludur:
-Basitlik: Basit yöntemlerle sonuca hızla ulaşmak ister.Basit çözümlerle oluşturulan programın geliştirilmesi kolaydır.Maliyet düşüktür. Basit çözümler kolay anlatılır ve adapte edilir.
-Geridönüş: Kalite kontrolü çok önemlidir.Bu ancak geridönüşümle sağlanır.
XP(Extreme Programming)
-İletişim: Tüm proje çalışanlarının sürekli iletişim halinde olmaları gerekir.
-Cesaret: Bu saydığımız özellikler bireylerdeki cesaretle mümkündür
LD(Lean Software Development)
İlk olarak Lean düşüncesi nasıl doğdu?
Taiichi Ohno’nun yaptığı Toyota üretim sisteminin geliştirilmesiyle leon düşüncesi ortaya çıkmıştır.Bu sistemin genel prensibi boş harcamaları elemektir.
LD(Lean Software Development)
Leon Yazılım Geliştiriminin 7 temel prensibi:
1-Boş harcamaların elenmesi
2-Kalitenin sağlanması
3-Bilginin yaratılması
4-Kararların Ertelenmesi
5-Hızlı dağıtım yapılması
6-Saygı
7-Tüm döngünün optimize edilmesi
JAD(Joint Application Development)
Kullanıcı katılımını artırmayı,geliştirme sürecini hızlandırmayı ve kaliteyi artırmayı temel alan bir yaklaşımdır.
IT(Information Technologies) çalışanlarıyla business ekiplerin gereksinimlerin belirlenmesi ve gözden geçirilmesi için yaptıkları bazen günler süren çalıştaylardan meydana gelir.
JAD(Joint Application Development)
Avantajları:
Gereksinimlerin belirlenmesi süreci ile maliyet ve zamanda kazanımlar elde edilir. JAD tecrübesi ile firmalar sistem analiz süreçlerini daha dinamik hale getirebilirler.JAD piyasada ilk ve en bilinen hızlı tasarım tekniği
olduğundan implemantasyonu için kullanılan teknikler iyi tanımlanmıştır.
JAD(Joint Application Development)
Dejavantajları:
Çok yönlü hazırlık yapılmadan gerçekleştirilen JAD seansları,uzman kişilerin zamanlarının heba olmasına sebep olur.
JAD katılımcıları sistem için gerekli inputları verebilecek kişilerden oluşmalıdır.Bu sebeple katılımcıların seçilmesi süreci dikkatle yapılmalıdır.
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 (RAD)
Kısa geliştirme çevrimleri üzerinde duran artımsal bir model.
Eksiler:
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.
Artılar:
Artan Hız
Artan Kalite
Sonuç:
Prototip geliştirmede kullanılması veya ana fikirlerinin diğer süreçlere uygulanması yerinde olacaktır.
Hızlı Uygulama Geliştirme (RAD)
HCI Ve Yaşam Döngüleri
İ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:
Star(Yıldız)Modeli
Kullanılabilirlik Mühendisliği Modeli
Star Lifecycle Model
Star Lifecycle Model
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.
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,prototiple me
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
Web Site Geliştirme Süreci
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
4. Üretim(Production):
• Tümüyle etkileşimli prototip oluşturulur.
Web Site Geliştirme Süreci
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.
Microsoft Ürün Geliştirme Süreci
Girişimlerini küçük ekiplerle yapma anlayışı vardır.
Oluşturulan bu küçük takımlar tasarımlarını geliştirirlerken özgürdürler.
Ama tüm takımların günlük aktiviteleri senkronize ve periyodik olmalıdır.
Microsoft Ürün Geliştirme Süreci Adımları
Planlama Adımı:
Yeni ürün hedefleri ve desteklenecek olan kullanıcı aktiviteleri tanımlanır.
Program menajerleri fonksiyonel özellikleri belirleyerek planlamayı yaparlar,çalışacak olan çalışanları atarlar.
Geliştirme Adımı:
Özellik listesi parçalara ayrılarak takımlara atanır.
Takımlar haftalık ve günlük bazda senkronize ve paralel çalışırlar
Microsoft Ürün Geliştirme Süreci Adımları
Stabilizasyon Adımı:
Süreçte bir parçalara ayrılmış
aşamalardan (milestone) biri bittiğinde tüm hatalar bulunur ve düzeltilir.
Sonraki aşamaya geçilir.
Nihai Ürünler:
Excel, Office, Publisher, Windows 95, Word,
Tasarım Dilleri Ve Uygulama Desteği
Uygulama Desteği
Programlama Araçları
• 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.
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
Giriş
Geliştirme Araçlarının Katmanları
oPencereleme Sistemleri
oEtkileşim Aracı
oKullanı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?
Pencereleme Sisteminin Mimarisi
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.
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
X protokolü server-client iletişimini belirler
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.
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
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
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
Kullanıcı Arayüzü Yönetim Sistemleri
(User Interface Management Systems -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
Kavramsal Mimari Olarak UIMS
Katılımınız için teşekkür ederiz.
KAYNAKÇA
http://web.deu.edu.tr/doc/lis/lis-12.html
http://hci.cah.ucf.edu/courses/dig3811_fall2012/Session_3_
1_ID_p2.pdf
http://ccit333.wikispaces.com/file/view/Chapter1.pdf
http://geekswithblogs.net/MarkPearl/archive/2011/11/05/inf 3720-ndash-interaction-design-chapter-9-summary.aspx
http://www.softdevteam.com/Spiral-lifecycle.asp
http://www.ics.uci.edu/~kobsa/courses/INF231/07F/ch9.pdf
http://www.situatedgaming.com/CISHCIExam/preece.html#
ch6
http://yildiz.edu.tr/~wwwilet/blogs/ozcan/category/etkilesi m/
http://www.kurumsaljava.com/2009/02/26/yazilimda- selale-waterfall-yontemi/
http://www.bilisim-
kulubu.com/makale/makale.php?e=Microsoft+Product+Cycl e+Model+%28Microsoft+%DCr%FCn+Geli%FEtirme+S%FC re%E7leri%29&mid=4590
http://www.yazgelistir.com/makale/yazilim-metodolojileri-i
https://sites.google.com/site/bzeren/Home/rad
http://www.belgeler.com/blg/87o/client-and-server