320
1. Nesneye Yönelik Tasarım İlkay YILMAZ

1. Nesneye Yönelik Tasarım

  • Upload
    ilyssa

  • View
    91

  • Download
    6

Embed Size (px)

DESCRIPTION

1. Nesneye Yönelik Tasarım. İlkay YILMAZ. Nesneye yönelik çözümleme ve tasarım günümüz yazılım geliştirme ortamlarının en yaygın kavramlarından biridir . . Çoğu zaman büyük bir kurtarıcı olarak algılanmasına rağmen gerçekte böyle bir kurtarıcı bulunmamaktadır. - PowerPoint PPT Presentation

Citation preview

Nesneye Ynelik Tasarm

1. Nesneye Ynelik Tasarmlkay YILMAZ1Nesneye ynelik zmleme ve tasarm gnmz yazlm gelitirme ortamlarnn en yaygn kavramlarndan biridir. ou zaman byk bir kurtarc olarak alglanmasna ramen gerekte byle bir kurtarc bulunmamaktadr.Nesneye ynelim, daha geleneksel olan ilevsel zmleme ve veri ak yntemlerine gre daha deiik bir yaklam gerekmektedir.Nesneye ynelik zmleme ile nesneye ynelik tasarm arasnda kesin bir ayrm yapmak bazen mmkn deildir.5Temel olarak, zmleme bir snflandrma etkinlii olarak deerlendirilebilir. Bu aamada problem zm iin kullanlacak nesnelerin ait olaca snflarn belirlenmesi iin alma yaplr.Tasarm aamasnda ise snflardan yaratlan nesneler ve onlarn aralarndaki ilikiler tanmlanr.Nesneye ynelik tasarmn en basit ekliyle, ilemlerden ok nesne kullanan bir dnceye dayanr.Bu dnceyi destekleyen programlama dilleri de program nesne ad verilen kk paralara blebilmeyi salayan zel yaplara sahiptir.Nesnenin i yapsnda durum bilgileri ve arayz olarak tanmlanan ilemler, yani yordamlar kmesi bulunur. Bu ilemlerle durum bilgisi zerinde deiiklik yaplabilir.Nesneye ynelik tasarmn gerekletirilebilmesi iin mutlaka nesneye ynelik bir programlama dili kullanlmas zorunlu deildir; ancak nesneye ynelik tasarmn tm zelliklerden yarar salayabilmek, bu yarar zellikle kodlamada grebilmek iin nesneye ynelik bir dil seilmelidir.Eer bu salanmazsa, nesneye dayal bir dil ile veya o hale getirilmi yaplarla desteklenen bir dil kullanlmaldr.Tasarmclar artk problemleri nceden tanmlanm veri ve denetim yaplar kullanarak zmek zorunda deillerdir. Nesneye ynelim ile kendi tasarlad soyut veri yaplarn ve ilevsel kapsamay kullanarak gerek dnya problemlerini zebilir duruma gelmilerdir. Bu amala kullanlan temel soyutlama birimi de nesnedir.Dier tasarm yntemleri gibi nesneye ynelik tasarm yntemi de bir dizi tanm, gsterim ekli ve yordam kullanmaktadr.Bunlar, kullanlan ara veya dile gre kk farkllklar gsterseler de temelde ayndrlar.En nemli ortak zellik olan nesne gerek dnyadaki varlklarn yazlm alanna uyarlanmasnda kullanlr.Dier slaytta bir nesnenin ayrntl yaps gsterilmekte ve bir rnek verilmektedir.

Nesneler birbirleriyle ilikili veri ve ilemleri bir arada tutarak kapsama (encapsulation) ve iyi tanmlanm bir arayz ile modlerlik (modularity) ilkelerini desteklerler.Nesnenin genel ksm herkese ak ve paylalr verileri ierirken zel ksmnda yalnzca kendisi tarafndan kullanlan veriler bulunur.Bylelikle de bilgi gizleme (information hiding) ilkesi desteklenmi olur.

Nesneye ynelik tasarmn aamalarna gemeden nce nesneye ynelimin temel zelliklerine deinmekte yarar vardr.1.1. Temel zelliklerNesneye ynelik tasarm ynteminin en temel zellikleri unlardr: Kapsama (Encapsulation)

Bir veri yaps ve onun zerinde ilem yapan bir grup yordamn iyi tanmlanm bir arayz olan, eriimi ve kullanm kolay bir yap iine konmasna kapsama denir. Nesneye ynelik tasarmda bu yap nesnedir ve gnderilen iletilerle arzu edilen ii yapmas salanr.Her nesne belirli bir veri grubunu ve ilevleri kapsar; farkl veriler farkl nesnelerde yer alr. Snflarn ve onlardan yararlanlan nesnelerin adlar kapsamlarn en iyi tanmlayacak ekilde seilir. Snf (Class)Nesneye ynelik programlamann en nemli zelliklerinden biri olan snf, kapsamay salayan bir gruplandrma yapsdr.eriinde hem veriler hem de ilemler bulunur. Snf kendisinden yaratlacak nesneler iin bir ablon grevi grr. okekillilik (Polymorphism)

okekillilik bir ismin birbirleriyle balantl fakat aslnda deiik olan birden fazla ama iin kullanlmasdr.okekilliliin amac, bir tek ismi genel bir ilevler kmesini tanmlamada kullanmaktr.Hangi ilevi gerekletirecei zerinde ilem yaplacak veri tipi tarafndan belirlenir.

Temsilcilik (Delegation)

Bir nesnenin kullanm temsilcilik ya da kaltmla (inheritance) geniletilebilir.Temsilcilik bir ilemin o nesne tarafndan yaplmamas durumunda ilemin o ii yapabilecek bir baka nesneye aktarlmas esasna dayanmaktadr. Kaltm (Inheritance)

Kaltm, bir sradzen eklinde, bir snftan veri ve ilemlerin tekrar kullanm amacyla devralnmasdr. Duraan kaltmda devralnan kod derleyici tarafndan tretilmi nesneye kopyalanr. Dinamik kaltmda ise, sistem en uygun aktif yntemi yrtme srasnda seer ve devralnan ksmla ilgili bir grevcik balatr. Duraan kaltm bellek kullanm dnda olduka etkin ve gvenlidir. stee bal dinamik kaltmda ise ilemler ve veriler ortak bir yerde tutulur, gerektiinde bu kod dinamil olarak balanr. Tekrar kullanm en yksee karabilmek iin birden fazla snfn temel snf olduu oklu kaltm (multiple inheritance) ortaya kmaktadr. Baz dil ve ortamlarda bu yntem dier slaytta gsterilen olas bir soruna neden olabilir.

Bu zelliklerin tamamnn tasarm srasnda dikkate alnmas gerekletiriminde kullanlacak programlama diline baldr.Baz diller kapsamay desteklerken snf yapsn desteklemezler; bazlar da kaltm desteklemezler. Bu nedenle, nesneye ynelik tasarmdan yararlanabilmek iin tasarm aamas srasnda hangi dilin kullanlacana karar verilmelidir.511.2. Tipler ve SnflarTip kavram nceleri belirli bir topluluun genel zelliklerini temsil etmek zere kme oluturmada kullanlmtr.rnein, integer tipi tm tamsaylar kmesini temsil etmi, bu kmenin elemanlar zerinde de eitli ilemler yaplabilmitir.Kme iinde altkme ad verilen gruplarda oluturulabilir. Bu alt kmeleri temsil eden tipler alttip (subtype) adn alrlar. rnein; tamsaylar, gerel saylarn bir alt kmesi olduundan Cdeki int tipi float tipinin alttipidir.C ve C++ dillerinde kullanlan unsigned int ve unsigned char gibi tipler de aslnda birer altkmedir.lk zamanlardaki saysal hesaplamalar mhendislik ve matematik uygulama alanlarna ynelik olduundan, hesaplarda kullanlan nesneler ve tipler, gnn gereksinimlerine gre, kullanlan dilin deikenliklerine ve tiplerine kar dmekteydi. Fakat programlama dilleri gerek dnyay makine dnyasna yanstmak iin bir takm yaklamlar ve snrlamalar yapmak zorundadr. rnein, say kmeleri gerek anlamda snrsz deildirler; gsterilebilecek en byk ve en kk say deerleri kullanlan bilgisayar donanmnn szck uzunluuna ve uygulanan say biimlerine baldr.Bu nedenle int ve float tipleri makinede farkl ekillerde ilem grrler.1.3. Nesne Ve Snf likisiFehmi GR62Nesnelerle snflar arasnda baz ilikiler kurulmaktadr. Bunlardan en temel onlar yle sralayabiliriz: Tanmlama likisiBu iliki tipler ve snflar arasnda tek ynl bir tanmlama iin kullanlr.rnein , kii snfndan tretilen renci snf bu ilikiye bir rnektir. Bu iliki daha ok genel zellikleri kapsamak iin kullanlr. Sahip Olma likisiki snf , bir snf ve bir nesne veya iki nesne arasndaki bir ilikiyi tanmlayan bu tip bir tama belirtir.rnein , bir blm bakan bir sekreter ve asistan a sahiptir.Buradaki asistanlar renci snfnn birer nesnesidir ve blm bakan snfnn dnda baka bir snf tarafndan dorudan kullanlamazlar.Kii snf belirli bir kavram tek bana ifade edebilmektedir.

Kullanlma likisi

Bu iliki , bir snfn ye yordamnn bir baka snfn bir nesnesini parametre olarak kullanmas ile meydana gelir. Yaratma likisiBir snf ve bir nesne iin gerekli olan yaratma ilikisi , bir snfn yordam yrtlrken bir baka snfn nesnesini yaratmak iin onun yapcsn armas eklinde ortaya kar.Burada belirtilen 4 iliki , varlklar ve tipler arasnda ortak olan mantksal balar ifade etmekte , bunlarn snf ve nesneler eklinde gerekletirilmelerinin nasl yaplabileceini aklamaktadr.1.4. Nesneye Ynelik Tasarm Aamalar Nesneye ynelik tasarm; nesneye ynelik olmayan programlama dilleri iin ve nesneye ynelik diller iin olmak zere iki ekilde incelemekte yarar vardr :1.4.1. Nesneye Ynelik Olmayan Diller in TasarmNesneler zmleme aamasnda genel olarak belirlendikten sonra tasarm tanmlamas yaplr. Bu amala nesnelerin iki trl tanmlamas olabilir: letiim tanmlamas, nesnenin arayzn, alabilecei iletileri ve ald bir iletiyle ne gibi bir ilem yapacan anlatr.Genellikle iletinin adn ve her bir ileti iin yaplacak ilemleri anlatan bir liste eklindedir.

Gerekletirim tanmlamas iletiyi aldktan sonra nesnenin nesnenin yrtecei yordamn ayrntlarn , nesnenin genel ve zel ksmlarnn yapsn ierir.Dier slaytta belirtilen tasarm basamaklarn klavuz olarak kullanarak ilerlemek baarl bir sonu verir ; sterler zmlemesi aamasnda ;- Problem tanmlanarak kapsam belirlenir. Problemin yazlm ile zlecek ksm metinsel bir ekilde anlatlr.- Nesneler ve znitelikleri belirlenir.- Nesnelere uygulanacak ilemler belirlenir.Nesneler ve ilemler arasndaki iliki ortaya konur ve arayzler oluturulur.- Gerekletirim iin uygun bir programlama dili seilmesine gayret edilir ve tasarmda kullanlacak ynteme karar verilir. Nesnelerin znitelikleri olarak nesne iinde kullanlacak veri tipleri ve veri yaplar tanmlanr. Her ilem iin birer yordam ve yordamlar iin ayrntlar tanmlanr.

1.4.2. Nesneye Ynelik Diller in Tasarm90Nesneye ynelik bir programlama dili kullanmak iin yaplacak tasarm nesneye ynelimin tm zelliklerini ortaya karacaktr.Nesneye ynelik bir programlama dilinin en byk zellii snf yapsdr .Snflarn kullanmyla yaplacak bir tasarmn admlar unlardr; zmleme srasnda belirlenen nesneler iin veri soyutlamas yaplacak snflar tanmlanr.

Soyutlama salayan her snf iin znitelikler birer yaratm deikenleri haline getirilir. Her nesne zerinde uygulanacak ilemler birer sanf yordam haline dntrlrler.

Nesneler arasndaki ilaetiim tanmlanr. Bu amala , iletiler alndnda arlacak yordamlar belirlenir. Tasarm bir senaryoya kat zerinde snanr. Tatmin edici bir baarm salamas, yeterli bir hata hogrsne sahip olmas gibi durumlar gzden geirilir ve tm ileti al-veri seenekleri denenir.1.5. Nesneye Ynelimde Nitelik ltleriNesneye ynelimin en byk zellii snflardr. Her biri soyut bir tip tanmlayan bu snflardan nesneler retilir.Snf yordamlar , yani metotlar , nesnenin i yapsna erimek iin kullanlr.Bir snfn sahip olduu yordamlarn says ve her bir yordamn karmakl bir metrik olarak kullanlabilmektedir.Snflarn kaltm yoluyla devraldklar yordamlar bu metriin deerini arttrc nitelikte olduundan dikkatli bir zmleme yaplmas gereklidir. Kaltmn Derinlik AacKaltm sra dzeninin oluturduu aacnn tepesinden snfn bulunduu yere kadar olan dzey saysdr.Bu say ne kadar byk olursa snfn kaltmla devrald yordam ve veri saysda o kadar artm olur. Tretim SaysKaltm sra dzeni iinde bir snftan tretilen baka snflarn toplam saysdr.Bu say , tasarm ve dolaysyla da sistem zerinde bir snfn potansiyel etkisinin bir gstergesidir.Tretim saysnn fazla olmas temel snfn tekrar kullanmn da gsterebilir.

1.6. Nesneye Ynelik Tasarm lkeleriNesneye ynelik tasarmda genel olarak dier slayttaki nerilerimizin dikkate alnmas iyi bir yazlm ortaya karmak iin nemli bir adm olacaktr: Eer iki snf arasnda nemli lde ortak yanlar varsa bu ortak zellikler bir temel snf iinde toplanmaldr.

Eer bir snf birka nesneyi zerinde tutan saklayc bir zellik gsteriyorsa onu kalp yapmak yararl olur.

Evrensel veri ve yordam kullanlmamaldr. Byle gereksinimler snflarla karlanmaldr. Bir baka nesnenin i verilerine dorudan erimeye allmamal , bunun yerine o nesnenin yordamlar kullanlmaldr.

2. Veriye Ynelik Tasarm Veriye ynelik tasarmda, veriyle ilgili ilemler fazla dikkate alnmad iin veri ak diyagram kullanlmasna gerek yoktur.Onun yerine veri yaplarnn ve yordamlarnn tanmlamalar yaplr.Tasarm srasnda genellikle u ilemler gerekletirilir ; Veri yaplarnn zellikleri deerlendirilir. Verilerin saklama, arama ve eriim yntemleri, veri yaplarna ait temel gsterim ekilleriyle tanmlanr.

Veri yaplar yazlmn denetim sra dzeni iindeki yerine gre uyarlanr.

Bundan sonraki yazlmn genel tasarm yordamsal tanmlama eklinde yaplr. 3. Tasarm KalplarYazlm mhendisliinde en yaygn ve etkin yntemlerden biri olan nesneye ynelik zmleme ve tasarm yeni bir konunun domasna neden olmutur.Tasarm kalplar, elde edilen deneyimlerin karlan derslerin ve en iyi sonularn belgelendirilmesiyle olumu modern mimarilere problem zme disiplinleridir.3.1. Kalp Tantm Ve zellikleriTasarm kalplar zmleyicinin, tasarmcnn ve kodlaycnn ayn dili konumalarn salayarak iletiimi kolaylatrr.Bir tasarm kalb belirli bir balam iindeki bir problemi ve onun zmn kapsayan bir kuraldr.

Kalplarn ortak zellikleri arasnda unlar vardr ; Deneyimlerle ortaya kmlardr. Daha byk problemleri zmek iin beraberce kullanlabilirler. eitli soyutlama dzeylerinde bulunurlar. Yapsal bir biimde yazlrlar. Tekrar kullanlabilir elerdir. simKalb tanmlamak zere temsil ettii bilgiyi ve yapy anlatan anlaml bir isim kullanlmaldr.yi seilmi isimlerle bir kalp szl oluturularak geni bir uygulama alannn kapsanmas salanabilir. Problem

Problem , kalbn balam iindeki kullanm amacn belirleyen bir aklamadr.

BalamProblemin olutuu ve zmn arzu edildii n koullardr.

KuvvetlerAmalanan hedefle veya birbirleriyle etkileen yada elien her trl kuvveti ve kstlamalar anlatr.Problemin karmaklk derecesini ve uygulamada oluabilecek istenmeyen durumlar gsterir. zm

Arzu edilen getirinin nasl elde edileceini tanmlayan kurallardr.

rnekler Kullancnn kalbn kullanmn ve uygulanabilirliini daha iyi anlamasna yardm eden grsel ve metinsel anlatmlardr. Sonu BalamBahadr AKPINARKalbn uygulamasndan sonra oluabilecek durumlar, son koullar ve yan etkilerini tanmlar. Mantk AklamasKalp iindeki basamaklarn ve kurallarn doru olduunun aklanmasdr.

lgili KalplarAyn balam yada sistem iindeki kalplarla bu kalp arasndaki ilikiler aklanr.

Bilinen Kullanmlar

Daha nce kullanld bilinen ve halen var olan uygulamalarda bu kalbn kullanm ekli anlatlr.

3.2. Kar KalplarBir kalp en iyi uygulamay ya da pratii gsterirken bir kar kalp(anti-pattern) karlan bir dersi gsterir. Kar kalplarn iki ekli vardr; Kt sonulanan bir problem zmnde kullanlan kt bir yntemi tanmlayanlar (kt rnek). Kt bir durumdan kurtulup iyi duruma gemeyi tanmlayanlarKar kalplar, eitli basl yaynlarla kullancnn bilgisine sunulur.Srekli gelien bir bilgi topluluu olduu iin henz belirli bir standart iinde deildir.3.3. Kalp rnekleriKalp rneklerini gelitirme yapan byk deneyim sahibi firma, kurum ve kurulularda bulabilmek mmkndr. Bu konuda halen yaynlanmakta olan bir ok kaynakta vardr. Biz imdi yaygn olarak kullanlan tasarm kalplarndan baz rnekleri ksa zet halinde verelim: nyz (Faade)n yz kalb, bir nesne grubuna arayz olacak ekilde dardaki nesnelerin eriebilcei bir tek nesne salayarak dardakilerin grupla haberlemesini kolaylatrr.Genelde grup iinde yer alan nesneler arasndaki ballk kullanclar iin karmaklk getirir .Oysa kullanc karmaklnn azaltlmas istenir.Bu amala bir nyz nesnesi kullanlarak grup ile kullanc arasnda soyutlama salanr.Kullanclarn ve nesnenin arkasndaki ayrntlar bilmelerine gerek yoktur. Teklik (Singleton)Bu kalpta bir snfn yalnzca bir tek yaratm (istence) vardr. Bu snfn yaratmlarn kullanan dier nesnelerin tm ayn yaratm kullanrlar.Genel olarak zkaynan merkezden ynetilmesi amac vardr.Ynetilen zkaynak dsal bir veritaban balants olabilecei gibi, duraan bir deikende tutulan isel bir saya olabilir.Snfn tek yaratm yrtme balad anda bellee yklenir. Bu tek yaratma erimek iin snfn duraan bir ilemi bulunur. Fabrika (Factory)Fabrika kalb, kendisine aktarlan veriye bal olarak olas snflardan birinin yaratmn dndrr.Genellikle, dndrlebilen tm snflarn ortak bir temel snf ve ortak ilemleri vardr, fakat her biri baka tr verileri ileyerek baka iler yaparlar.Her birinin ayn ilemi bulunduundan kullanc asndan hangi snfn dndrld fark etmez, ancak bu snf ilemlerinin gerekletirimleri farkldr.Hangi snfn nasl ve neye gre dndrlecei tamamen fabrikaya baldr. Kullanc snf, dndrlen snflardan tamamen farkldr.178 Bileik (Composite)179Bileik kalpla aa yapsnda, birbirine benzer nesneleri zyineli (recursive) biimde oluturarak karmak nesneler yaratmak mmkndr.Hatta, tm nesnelerin ortak bir sper snf olduu iin aa yapsndaki nesneler zerinde daha tutarl ekilde ilem yapmak olduka kolaylar.Bir belgeyi oluturan karakterlerin, satrlarn, metin stunlarnn ve sayfalarn gsterimi buna rnektir.Bunlar ieren bir bileik belge nesnesi sper snf olarak kullanlarak alttaki nesnelerin ynetimi salanr.Bu ekilde karmaklk alt paralara blnerek azaltlm olur. Alttaki nesneler ise basit veya bileik olabilirler. 4. Kullanc Arayz TasarmBilgisayar tabanl sistemler insanlarn ilerini kolaylatrmak zere gelitirilirler.Ne kadar mkemmel tasarlanm ve gerekletirilmi olursa olsun, eer bir sistem kullancsna zor anlar yaatyorsa tam baarl saylamaz.Bu nedenle sistemin insanlarla olan arayzn ok etkin ve kullanl olarak, verimlilii arttracak ekilde, kullanc dostu olarak tasarlanmas gereklidir.Bilgisayar tabanl sistem arayznn nemi ok geni uygulama alanlar dnldnde daha iyi ortaya kar.Bir programlanabilir frn veya amar makinesi, bir cep telefonu, bir tbbi cihaz, bir uu kontrol alt sistemi gibi gml sistemlerin arayzleri, bir veri taban iletim sisteminin arayz , hele hele gnmzde en yaygn bilgisayar uygulamalarndan biri olan internet tabanl programlarn arayzleri insan mhendisliinin ne kadar nemli olduunu ok gzel ortaya koyan rnekler arasndadr.Bir sistemin arayzn renmek ve etkin bir ekilde kullanmak ne kadar kolay olursa o sistemin yetenek ve ilevlerinden yarar salamakta o kadar artar.4.1. nsan-Bilgisayar Etkileiminsan ile bilgisayar arasndaki etkileim genellikle grsel, iitsel ve dokunmatik olarak gerekleir.Ekrandaki bilgiler grsel iletiimi salarken, mikrofon ve hoparlr ile ses bilgileri alnr veya verilir.Bunlar yannda, girdi salamak iin klavye, mouse , joy-stick, eitli zel tular ve giri aygtlar kullanlr. Tm bunlara insan-makine arayz (Humman-Machine Interface HMI) ad verilir.Etkileimin daha ok bilgisayarla yapld durumlarda bu isim nsan - Bilgisayar Arayz (Humman-Computer Interface HCI) adn almaktadr.Bu ekilde, bir insan, bilgisayardan eitli bilgileri alabilir, kendi belleinde saklayabilir, neden-sonu ilikilerini deerlendirebilir ve kendisi yeni bilgiler girebilir.Gnmzde, insan-bilgisayar arasndaki arayz daha da iyi duruma getirebilmek iin bilimsel ve teknik almalar srdrlmektedir.rnein, bir zamanlar siyah beyaz olan ekranlar sonradan. 16 renk , 256 renk ve en sonunda da milyonlarca rengi desteleyerek geree en yakn gr vermeye balamlardr.Ayn zamanda ekranlarn znrl, canll ve bykl artm, insan gzn yormayacak (en az 72 Hz yatay tarama standard gibi) ve sal tehdit etmeyecek (dk radyasyon yaym) hale gelmilerdir.Tm bilgisayarl sistem kullanclarn ayn anlay derecesine sahip olduklarn kabul etmek yanl olur.Kimi kullanclar bilgisayara alkn olduklarndan hzl bir ekilde renip etkin olarak kullanabilirken, kimileri bilgisayar ancak ap yava bir ekilde kullanabilmektedir.Bir bilgisayar mhendisine ok uygun gelen arayz, deneyimsiz bir ii iin hite uygun olmayabilir.Bu dnceyle, kullanclar snfa ayrmak doru olur: Deneyimsiz: Sistem hakknda hibir bilgisi olmayan ancak bir miktar bilgisayar kullanabilen kiilerdir. Az deneyimli: Sistem hakknda bir miktar bilgisi olan ancak az miktarda kullanm pratiine sahip kiilerdir. ok deneyimli: Hem sistemi hem de kullanm iyi bilen, hatta daha hzl kullanabilmek iin kestirmeler arayan kiilerdir.Dolaysyla insan bilgisayar arayz, hedef kullancnn ya, fiziksel yeterlilik, eitim ve kltrel durum, dil, kiisel gd ve amalaryla konu hakkndaki bilgi ve becerisi, hatta teknolojik korkusu dikkate alnarak tasarlanmaldr.rnein, ekran ktsnda bulunan bilgi miktar karmakla yol amayacak kadar az ve z olmal, ksaltmalar herkes tarafndan anlalabilir olmal, baslacak tularn isimleri ve sras kolay takip edilebilmeli, yanl srada kullanmlar engellemek zere giri seenekleri kstlanmaldr (istenen bir bilgi girilmezse Tamam tuunun geerli hale gelmemesi gibi).4.2. nsan-Bilgisayar Arayz Tasarm Grafiksel sergileme ortaya kmadan nce bilgisayarlarla etkileim yalnzca klavye ile komut satrlarndan yaplmaktayd.renmesi olduka zor ve hata yapma pay ok yksek olan komut satr ile ilem yapmak artk geride kalm saylr.Ancak, Unix tabanl iletim sistemleri gibi yaygn baz sistemler hala komut satr kullanmakta, byk bir kullanc kitlesi de bu konutlarla daha etkin kullanm salayabilmektedir.Fakat uygulama yazlmlarn ounlukla grafiksel kullanc arayzne sahip olacak ekilde gelitirilmektedir.Gnmzdeki bilgisayar iletim sistemlerinden bir ksm tamamen pencere sitemine dayal olarak almakta iken bir ksm da ek bir pencere ynetim sisteminin (Linux ile X-Windows Sistemi, vb.) altrlmasn gerektirir.Pencere ynetim sistemleri zel olarak gelitirilebilecei gibi yaygn standartlardan biride seilebilir.Ancak dikkat edilmesi gerek nokta, seilen standarda uygun olarak yazlm gelitirme olana salayan yazlm gelitirme paketlerinin (Software Development Kit) kullanlmasdr.217Zira kendi ilerinde standart olsalar da birbirleri arasnda uyum olmayan pek ok pencere ynetim sistemi bulunmaktadr.Herhangi bir etkileimli yazlm iki eden oluur. Burada kullanc yazlma girdi salayan ve ktlar deerlendiren iletmendir.Bilgi ileme ve zm retici kendisine ulatrlan gereklenmi bilgilerin ilendii ve eldeki problemin zlmesi iin gereken bilgilerin retildii edir.EKL.

4.3. Arayz Yazlm Mimarisi

Bir uygulama yazlm tek bir yrtlebilir yazlm biriminden, yani programdan oluabilecei gibi birden fazla birimden de oluabilir.Pencere sistemi ile uyum salayan arayz yazlm ya ayr bir birim halinde gelitirilir ya da ayn birim iine gmlr.Tek birimden oluan yazlmlarda, bilgi ileme birimleri ile arayz birimleri ayn balam (context) iinde yer alrlar dier slaytta gsterilen ve birleik mimari olarak adlandrlan bu yap, tek ilemciye ait bilgisayarlar iin uygundur.225EKL.

Birden fazla ilemcisi olan bilgisayarlarda veya tamamen datk mimaride alabilmek zere dier slaytta gsterilen ayrk mimari kullanlr. Bu mimarinin yarar, bilgi ileme ile arayz birimlerini birbirinden ayrarak hem gelitirme hem de yrtme bamszl salanr.EKL.

4.4. Arayz Yazlm BirimleriArayz donanmlar cinsleri ne olursa olsun mutlaka ana sistemle tmletirilmeleri gerekir.Tmletirme ilemi iin mutlaka birer arayz donanm ve onlar etkinletiren birer yazlm birimi kullanlmaktadr.rnein, ekran uygun grafik zellikte srmek iin yeterli gce sahip bir grafik kart kullanlmaldr.Bu kartnda uygun bir src yazlm ile sistemine tantlmas gerekir.

Kullanc arayz yazlmlarnn bir ksm kullanc tarafndan fark edilmez.Ancak en ok fark edileni phesiz ki ekran zerinden k, klavye ve mouse ile giri olana salayan grafiksel arayz yazlmlardr.Gnmzde pek ok iletim sistemi de grafiksel arayz vermektedir. Bir ksm da zel paket yazlmlar yardmyla grafiksel arayze sahip olurlar. Sistemin kullanc arayz yazlmlar grafik zellikleri daha uygun olan ayr bilgisayarlar zerinde altrlabilecei gibi, sistem tasarmna ve yazlm mimarisine bal olarak, ana sistemle beraber ayn bilgisayar zerinde de alabilirler.4.5. Arayz Tasarm lkeleriAli Can AKINKullanc arayz tasarm genellikle tasarmcnn deneyimine ve uygulama alann ne kadar tandna baldr.Yazlm gelitirmeye balamadan nce uygulama alannn zellikleri dikkate alnarak arayz standartlarnn belirlenmesi byk yara salar.4.5.1. Yksek NitelikArayzn nitelikli olmasn salayabilecek baz nitelikler unlardr: Arayzde kullanlan dil kullancnn rahata anlayabilecei ve iini gvenli bir ekilde yapabilecei bir dil olmaldr.rnein, yabanc dilin geerli olduu bir kullanm ortamnda Trke bir arayz kullanmaya almak anlk eviri ve alglama gl yaratabileceinden arayzn o dilde gerekletirilmesi daha uygun olur. Arayzde uygulama alannda yaygn olarak kullanlan teknik terimler veya ksaltmalar kullanlmaldr. Bu ekilde hem grsel karmaklk giderilir, hem de kullancnn alkn olduu terimlerle almas salanm olur. Arayz zerinde tm bilgiler, uygulama alanna ve gereine uygun olarak mantksal bir sralama iinde bulunmaldr. Arayz, olabildiince tekdze olmal, alglamay azaltacak karklklara yer verilmemelidir. Arayz, sistemin o an iinde bulunduu durum, alma kipi, yrtmekte olduu ilem, hata durumlar gibi bilgileri her an kullancya gsterebilmelidir. Arayzn deiik blmlerinde bir etkinliin balatlmasnda herhangi bir eliik durum olmamaldr. rnein, dosya amak iin kullanc karsna kan bir pencerenin zellikleri, bir dosyay arayp bulup onu belgeye ekleyen bir ilev iin de ayn grntye sahip olmaldr. Kullanc, arayzn bir blmnden dier blme getiinde bir nceki blmdeki bilgiyi hatrlamak zorunda kalmamaldr.

ok gerekli olmadka kullanc onay isteyen bir uygulama dier uygulamalarn giri kn durdurmamaldr; yani tm giri odan stne almamaldr. Arayz zerinde verilen her komutun sistem tarafndan doru alglanp ileme sokulduunun bir gstergesi sergilenmelidir. Buna sistemin yant da denilebilir. Arayz, az bir retim gerektirmelidir. Gerekli olan bilgiler arayz kullanlrken verilmeli, bir tr klavuzlama, kk simgelerle anlatm ve standart terimler kullanlmaldr. Arayz, herhangi bir uygulama tarafndan gerek duyulan sesli uygulamalar, grntl yardmlar gibi eitli k trlerini desteklemelidir. Sistemin grntl, yazl, sesli ileti ve uyarlar tarafsz bir ekilde hazrlanm olmal, kesinlikle kiiselletirilmemelidir.Uyar iin kullanlan metinler ksa ve z olmal, sorunu aklamal, sulayc veya incitici ifadeler iermemelidir.4.5.2. Kullanc Dostluunsan-Bilgisayar arayz, etkileimli yazlm sistemlerinde kullanc ile bilgi al veriini salayan ksm olduundan, olabildiince kullanc dostu olmas, verimliliini ve iletiim gvenirliliini arttrr.Kullanc dostu olan bir arayznn salad yararlardan bazlar unlardr:

Kullanc, kullanm klavuzlarn yannda bulundurmak veya kullanmak zorunda kalmadan bilgisayardan yararlanabilir. Kullanc, yazlm kullanrken birok bilgiyi ayn anda karsnda grebildii iin ok miktarda bilgiyi belleinde tutmak ve gerek duyduunda anmsamak zorunda kalmaz. Kullanc, uygulama alannn terimlerini kullanabilir.

Kullanc, yazlm ve sistem aralarn kullanrken veya yardm pencerelerinde dolarken pencere ve men seimlerini kolaylkla yapabilir.

Kullanc, en seri ve doru bir ekilde bilgi girebilir ve alabilir.

4.5.3. GvenirlikArayz yeterince gvenli olmayan bir sistemin ilevleri ne denli iyi ve yksek baarml olursa olsun kullancya zor anlar yaatt ve kt srece hibir deer tamaz.Yazlmn asl bilgi ileme ksm kadar kullanc arayznn de gvenilir olmas iin unlara dikkat edilmelidir:

Veri veya komut girii srasnda yaplabilecek hatalarn birou arayzden gelecek uyarlar ile nlenebilir. Bu nedenle, giri arayz, hatalar nlemek iin tm girdileri grntlemeli, gerekli tip ve snr kontrollerini yapabilmelidir. k arayz tanmlanm snrlar iindeki deerleri gstermelidir.

Uygulama alannn zelliine gre, yaplm bir ilevi geri almak mmkn olabilmelidir.

4.5.4. YardmlarGrafiksel bir kullanc arayznn vazgeilmez zelliklerinden biri her etkileim aamasnda kullancya yardm verebilmesidir.Yardm olanaklar ve menleri tasarlanrken dikkate alnmas gerekli noktalar arasnda unlar sayabiliriz: Yardm tm ilevleri kapsayabilecei gibi, seenekli olarak, yalnzca o anda yaplan ilevlere ait olarak da tasarlanabilir.

Yardma erimek iin bir menden semek, bir tuu tklamak ya da klavyeden bir tua basmak yeterli olmaldr.

Yardmdan ana uygulamaya dnmek iin iptal veya geri tuuna basmak, pencereyi kapatmak, ka karakteri kullanmak gibi yntemler benimsenmeli, hi kmayp bir kenarda tutma zellii de dikkate alnmaldr. Yardm penceresi iinde zenginletirici eklemelerde yaplabilir. rnein:

- Arama motoru kullanlmas gnmzde pek ok yazlm paketinde yaygn olarak kullanlr hale gelmitir.- Ska sorulan sorular eklinde verilen yardm da kullancnn kendi sorunlarn ifade edebilecek hazr yaplar bulabilmesini salar.

Baz kullanclar uygulama yazlmn yardmdan giderek renmeye alrlar. Bu gerei gz nnde bulundurarak, yardmlarn aamal olarak, ynlendirici ve uygulatc bir yapya sahip olmas yararl olur.4.5.5. Hatalar Ve UyarlarKullanc arayznn bir zellii de bilgi ileyici ksm kullanc hatalarndan korumak ve hata durumlarnda kullancy uyarmaktr.Bu uyarlarn bir ksm kullancnn hatal bilgi girmesinden dolay yaplrken, bir ksm geri dn olamayan bir ilem gerekletirilmeden nce onay almak iin yaplr.Bir ksm da yazlmn btn iinde meydana gelen bir hatay kullancya bildirmek ve ne gibi bir ilem yapmas gerektiini aklamakta kullanlr.Bu bildirimler yaplrken dier slaytlarda belirtilen noktalara dikkat edilmesi yararl olacaktr. Kullancnn bilgi girmesi gerek yerde yanl biimde bilgi girmesi ya da eksik alan brakmas durumunda, kullanc arayz hatal girii belirterek gerekli uyary vermelidir. Grsel uyarlar gerekten dikkat ekecek ekilde, ekrann ortasna ve gerekli grld takdirde baka bir i yaplmasna izin vermeyecek yaplmaldr. Hata iletisi sorunu aklkla tanmlanmal, bir takm kod numaralar sergileyerek yazlnzca hata olutuunu belirtmekle yetinmemelidir. Hata iletisi iinde kesinlikle kullancy sulayc ifadeler yer almamaldr.Bu tr yaklamlar profesyonellikten uzaklama anlamna gelir.4.5.6. Yapsal zelliklerBir arayzde bulunmas gereken yapsal zellikleri de u ekilde sralayabiliriz: Bir arayzde, kullanm srasnda ortaya kabilecek programlama hatalarnn dzeltilmesi ya da daha sonra oluabilecek kullanc istekleri ile ilgili deiiklikler kolay ve hzl olarak yaplabilmelidir. Mmknse belirli bir ktphane kullanlarak standart gelitirme salanmaldr. Grafiksel kullanc arayzleri iin estetik grnm olduka nemlidir. Pencerelerde renklendirme arya kamadan, belirli bir yntem izlenerek yaplmal, tm nesneler hizalanmal ve etiketler ok dzgn yerletirilmelidir. Bu maksatla nceden hazrlanm standart elerin kullanm salanmaldr. Arayz, uzamanlar, yeni balayanlar gibi farkl kullanclar iin gerekli ilevleri (ksa yol gibi) salamaldr.4.6. Kullanc Arayz Gelitirme SreciTm sistem yazlm belirli bir disiplinin uyguland gelitirme sreci ile gerekletirilir.Kullanc arayz yazlm da ana sistem yazlmnn temel elerinden biridir. Kendi iinde bir sre uygulanarak gelitirilir.Bu sre yine standart yazlm gelitirme srecine benzer ve aamadan oluur.4.6.1. zmlemeBilgisayar tabanl bir sistem genellikle elle yaplan ileri otomatik hale getirmek zere tasarlanr ve gelitirilir.Otomasyonun ne derece olaca, iletmenlerin hangi dzeyde devreye girecei, sistemin girdi ve ktlar sistem zmlemesi srasnda belirlenir.Bu zmleme srasnda, sistemin kullanc arayz isterleride belirlenir. zmleyici bu amala sistemin amalarn ve temel ilevlerini tanmlar.Her amaca karlk den eylemleri ve bunlarn kullanc arayznden nasl balatacaklarn belirtir.Eylemler srasnda sistemin iinde bulunmas gereken durumlar tanmlar. Kullanlacak denetim aygtlarn ve dzenekleri, bu dzeneklerin sistem durumunu nasl etkileyeceini aka ortaya koyar.Kullancya sistem durumu hakkndaki bilgilerin nasl sunulacan, uyarlarn nasl yaplacan belirtir.

4.6.2. TasarmSistemin arayz tasarm srasnda kullancya ne tr arayzler salanaca, giri ve klarn hangi aygtlarla, ne ekilde yaplaca, hata ve uyar iletilerinin nasl verilecei belirlenir. zel bir donanm ile arayz gerekletirilecekse, donanm tasarm aamasnda gerekli alma yaplmal, uygulama alannn zelliklerine gre en uygun giri/k aygtlar seilmelidir. Yalnzca akran, klavye ve mouse tan oluan standart giri/k ile denetlenen bir grafiksel kullanc arayz bulunacaksa bunun gerekli tasarm yazlm gelitirme aamalarnda yaplmaldr. Grafiksel kullanc arayzn gerekletirmeden nce bir ilk rneini yapmak ve bunu kullanc ile gzden geirmek her zaman byk yarar salar.4.6.3.Gerekletirim Arayz tasarm eitli izim aralaryla yaplabilecei gibi gerekletirmede kullanlacak gelitirme aracyla da yaplabilir. Bu aralar, nceden gelitirilmi eitli grafiksel ablonlar, tular, menler ve daha pek ok grafik nesneler salayarak ok hzl gelitirme olana sunmaktadr.