Ana içeriğe atla

Mobil Cihazların Teknik Özellikleri ve Proje Tasarım Aşamasında Dikkat Edilmesi Gerekenler

En genel tanımıyla el bilgisayarı (PDA), isim ve adreslerin saklanabildiği bir veritabanı ve kişisel iş planlarının tutulduğu bir takvimi olan, çeşitli iletişim özellikleri (Wireless, GPRS, Bluetooth) ile internet erişimine olanak sağlayan bir araçtır. PDA olarak nitelendirilebilen ilk cihaz (Psion Organizer) sadece telefon rehberi ve ajanda gibi özelliklere sahipken, her türlü komünikasyon tekniğini destekleyen, çok çeşitli programların rahatlıkla çalıştırılabildiği bir bilgisayar haline gelmiştir.
Elektronik, yazılım ve haberleşme alanlarının paralel gelişimiyle birlikte el bilgisayarlarının artan özellikleri, çok farklı alanlarda, farklı amaçlarla kullanılabilmelerine olanak sağlamıştır. Cihazların farklı kullanım amaçları için özelleştirilmesi, temelde benzer olan el bilgisayarlarının farklı isimlendirilmelerine neden olmuştur. Buna örnek olarak, telefon ve bilgisayar özelliklerini birleştiren fakat telefon işlevleri ön planda olan ‘smartphone’(Şekil 1-a), harita üzerinde konum belirleme ve rehberlik yapma özelliği ön plana çıkan ‘Navigator’(Şekil 1-b) örnek verilebilir. PDA’lar ayrıca kişisel kullanım amaçları dışında endüstriyel alanda da kullanılmaya başlanmıştır. Endüstriyel kullanıma uygun olarak barkod okuyucusu, tuş takımı ve daha uzun ömürlü güç kaynağı olan, daha sağlam cihazlar üretilmiş, endüstriyel cihazlar(Şeil1-c) olarak isimlendirilmişlerdir.
image
Bizim için önemli olan cihazların hangi işlevlerinin ön planda olduğu değil, Windows Ce tabanlı bir işletim sisteminin olup olmadığıdır. Çünkü Visual Studio ile geliştirdiğimiz smart device projelerini sadece Windows tabanlı işletim sistemi olan akıllı cihazlarda (smart device) çalıştırabiliyoruz.
El bilgisayarlarının zaman içindeki fonksiyonel gelişimi, bilgisayar elektroniğindeki gelişmeler zemininde mümkün olmuştur. İlk PDA’nın basit işlevleri için 8 bitlik işlemci, 4K ROM ve 2K RAM yeterli görünüyordu. Fakat şu anda masaüstü bir bilgisayarda gerçekleştirilen birçok işlemi, sınırlı özelliklerle de olsa gerçekleştirebilen akıllı cihazlardan bahsediyoruz. Bu işlemlere olanak sağlayan, temelde işlemci, bellek ve güç kaynağı gibi teknik özelliklerin ilk zamanlara nazaran çok ileri seviyelerde olduğunu söyleyebiliriz.
Bu makalenin konusu olan ve mobil yazılım geliştirmeyi çok yakından ilgilendiren teknik özellikleri alt başlıklar halinde, yazılım geliştirme sırasında dikkat etmemiz gereken bazı konulara da değinerek, özetlemeye çalışacağım;
İşlemci: Windows Ce tabanlı el bilgisayarlarında en çok kullanılan ve Visual Studio’ nun desteklediği işlemci tipleri; ARM, SH4 ve MIPS’ tir. Yeni çıkan cihazların işlemci hızları çoğunlukla 512 Mhz- 1 Ghz arasındadır. Fakat şu an piyasada kullanımda olan bazı eski cihazlarda işlemci hızı 100 Mhz’ ye kadar düşmektedir. Yeni üretilen el bilgisayarı işlemcileri hızlı olsa da paralel işleme yetenekleri masaüstü işlemcilerden oldukça sınırlıdır. Bu yüzden çok kanallı (multithreaded) tasarımlarda child thread’lerin işlemciyi çok fazla boğmayacak şekilde düzenlenmesi gerekmektedir.
Bellek: İlk olarak 6K’lık bellekle kendini gösteren PDA’ ların günümüzdeki temsilcileri 512 MB’ a varan bellek donanım desteğiyle piyasaya sürülmektedir. El bilgisayarlarında hard drive yoktur, “Storage” ve “Program” olarak ikiye ayrılan RAM vardır. “Storage” bölümü işletim sisteminin ve sonradan kurulan yazılım dosyalarının tutulduğu, dosya kopyalanıp silinebilen bir bellek alanıdır(ROM gibi düşünülebilir). “Program” bölümü ise, isminden de anlaşılacağı gibi, programların çalışırken kullandıkları bellek alanıdır. Masaüstü bilgisayarlardaki RAM gibi işlev görür. El bilgisayarı belleği başlangıçta her iki bölüme eşit büyüklükte yer tahsis edecek şekilde bölünür. Fakat Windows Mobile 5.0 işletim sisteminden önceki Windows CE sürümleri “program” ve “storage” bellek bölümlerinin büyüklüklerini değiştirmek için olanak sağlar.
Yeni çıkan el bilgisayarlarının bellek büyüklükleri yeterli görünebilir fakat piyasada kullanımda olan cihazların belleklerinin 32 MB – 512 MB arasında değişkenlik gösterdiği düşünülerek yazılımsal tasarım yapılmalıdır. Executable dosyaların veya dll’lerin boyutunun çok büyük olması programın çalışması sırasında bellek yetersizliği hatalarının alınmasına ve programın kullanılamamasına neden olabilir. Bellek yetersizliğine sebep olabilecek başka bir tasarım hatası da ekranların çok kalabalık olması ve anlık olarak belleğe çok büyük boyutlarda verinin yüklenmesidir. Ekranlar, masaüstü program ekranları gibi bütün işlemleri tek bir ekrandan yapacak şekilde değil, işlemi mantıksal küçük parçalara bölerek adım adım gerçekleştirecek şekilde tasarlanmalıdır.
Güç Kaynağı: El bilgisayarlarında güç kaynağı konusu, tüm mobil cihazlarda olduğu gibi problemli bir konudur. Ebatları küçük olan el bilgisayarlarına entegre edilecek güç kaynağının çok uzun ömürlü olmayacağı tahmin edilebilir. Endüstriyel cihazlarda daha dayanıklı güç kaynakları kullanılmakta, fakat onlar da tatmin edici değildir. Ayrıca cihazlar uzun süre kullanıldıkları zaman bataryaların güç depolama yetenekleri de azalmaktadır.
Mobil cihazlarda en fazla güç tüketimine neden olan işlemler, sürekli ortamdaki sinyalleri dinleyen kablosuz haberleşme process’leridir. Programın kullanmadığı veya sürekli açık kalması gerekmeyen telefon, wireless, Bluetooth, Kızılötesi, GPS gibi özellilerin kapatılması az da olsa güç kullanımını azaltır.
Ekran: PDA ekranlarının boyutları kullanım amaçlarına göre farklılık gösterir. Fakat bizim için önemli olan ekranın fiziksel büyüklüğü değil, çözünürlüğüdür. Piyasadaki el bilgisayarlarına baktığımız zaman ekran çözünürlüklerinin 240x240 piksel, 240x320 piksel, 320x320 piksel vb. şekilde tasarlandığını görürüz. Geliştirdiğimiz programlardaki ekranları ve ekran bileşenlerini kullanacağımız el bilgisayarının ekran çözünürlüğüne göre düzenlememiz gerekir. Aksi durumda, programın çalışması sırasında hem görsel hem de işlevsel sorunlarla karşı karşıya kalırız. Örneğin, 320x320 piksel ekran boyutuna göre düzenlenmiş bir ekran, 240x240 piksel çözünürlükte bir el bilgisayarında çalıştığında ekranın tamamı görünmeyeceği için, sağda ve altta scrollbar’lar çıkar. Bu durum kullanıcının ekranı sürekli sağa-sola, yukarı-aşağı kaydırmasını gerektirir ve kulanım açısından istenen bir durum değildir.
Çözünürlük dışında dikkate alınması gereken bir diğer konu da ekranın dokunmatik özelliğidir. Ekranın dokunmatik olmaması durumunda ekransal işlemler cihaz klavyesiyle yönetilecek şekilde tasarlanır. Dokunmatik özelliği olan cihazlarda ise ekran bileşenleri üzerindeki hareketleri algılayabilir, ona göre programın tepki vermesini sağlayabiliriz.
Klavye: Kulanım amacına bağlı olarak, bazı el bilgisayarlarında tuş takımı var, bazılarında da yoktur. Tuş takımı ve ekranın dokunmatik özelliği birbirini yakından ilgilendiren özelliklerdir. Çünkü birbirinin yerine kullanılabilen girdi (input) araçlarıdır. “Ekran” alt başlığında da belirttiğim gibi, ekranın dokunmatik olmaması durumunda, geliştireceğimiz programlardaki ekranlarda tüm işlemler klavye aracılığı ile gerçekleştirilmek zorundadır. Bu durumda işlemler çoğunlukla ‘kısa yol’ (shift+1, ctrl+2 vb) kullanımı ile kolaylaştırılır. Kısa yollar, hem dokunmatik ekranı hem de tuş takımı olan el bilgisayarlarında da, kullanımı daha da kolaylaştırmak için tercih edilebilir.
Günümüz el bilgisayarlarının yetenekleri oldukça iyi bir seviyeye ulaşmıştır. Fakat mobil yazılım geliştirme ortamı olarak kullandığımız “Visual Studio” da aynı oranda gelişmiş ve cihazların teknik özelliklerini zorlar bir duruma gelmiştir. Bu yüzden kullandığımız yazılım araçlarının ve el bilgisayarlarının teknik detayları dikkate alınarak, geleceği gören bir vizyonla programlarımızı tasarlamamız gerekir. Aksi durumda, programların kullanılmaya başlamasıyla karşılaşılacak birçok hata, altyapısal değişiklik gerektirir ve onarımı zordur.
Mehmet BÜYÜKAŞIK

Yorumlar

Bu blogdaki popüler yayınlar

UML ve Modelleme – Bölüm 3 (Use Case Diyagramlar)

Önceki iki makalemizde (1, 2) UML’e genel olarak değinip ve modellemede kullanacağımız dokuz diyagram hakkında bilgiler vermiştik. Bu makalemizde Use Case diyagramından detaylı bahsedeceğiz. Öncelikle, genel Use case diyagramının tanımını hatırlayalım. “Bir kullanıcı ve bir sistem arasındaki etkileşimi anlatan senaryo topluluğudur.” Ivar Jacobson Senaryo tanımı için der ki:
“Aktörle sistem arasında gerçekleştirilen, sonucunda aktöre farkedilir getirisi/ faydası oluşan etkileşimli diyalogdur. ” UML Use Case Diyagramları  sistemin işlevselliğini açıklamak amacıyla kullanılır. Sistemin birbirinden ayrı özelliklerinin detaylarını göstermekten ziyade, Use Case Diyagramlar, tüm mevcut işlevselliği göstermek için kullanılabilir. Buradaki en önemli noktalardan biri,   Use Case Diyagramlar temelde sequence diyagram ve akış diyagramlarından farklıdır. Use Case diyagramlar dört ana elemandan oluşmaktadır. Aktörler, Sistem (Proje kapsamını belirtir), Use Caseler ve bunlar arasındaki ilişkiler. Şekil…

UML ve Modelleme – Bölüm 4 (Class (Sınıf) Diyagramları)

Bir önceki makalemizde UML modellemede kullanılan ilk diyagram olan Use Case diyagramını incelemiştik. Bu makalemizde nesne tabanlı programlamada kullanılan sınıflar ve sınıfların arasındaki ilişkileri modelleyebileceğimiz diyagramlar olan Class(Sınıf) diyagramlarını inceleyeceğiz. UML’de sınıflar, nesne tabanlı programlama mantığı ile tasarlanmıştır. Sınıf diyagramının amacı bir model içerisinde sınıfların tasvir edilmesidir. Nesne tabanlı uygulamada, sınıfların kendi özellikleri (üye değişkenler), işlevleri (üye fonksiyonlar) ve diğer sınıflarla ilişkileri bulunmaktadır. UML’de sınıf diyagramlarının genel gösterimi aşağıdaki gibidir. Şekil 1. Class Diyagram Şekil1’de görüldüğü üzere bir dikdörtgeni 3 parçaya bölüyoruz. En üst bölüm sınıf adını, orta kısım özellik listesini (üye değişkenler) ve en son kısım, işlev listesini (üye fonksiyonlar) göstermektedir. Çoğu diyagramlarda alt iki bölüm çıkarılır. Genelde tüm özellik ve işlevler gösterilmemektedir. Amaç, diyagramın sadece belirli k…

Cluster ve clustering nedir? Cluster oluşturmanın faydaları nelerdir? (Bölüm I)

Cluster, basit anlamda benzer bir amaç için belirli bir konfigürasyon yapılarak aynı görevi birlikte ya da yedekli çalışmasını sağlayan servistir. Cluster farklı amaçlarla oluşturulabilir fakat son kullanıcı tarafından her zaman tek bir bilgisayar gibi gözükecektir. Bir cluster oluşturmak için en azından iki adet sunucuya ihtiyaç vardır ve bir cluster içindeki her bir sunucu “node” olarak adlandırılır. İhtiyaç olan hizmete göre çeşitli sayıda nodelar bir araya gelerek clusterları oluşturmaktadır. Bir cluster oluşturmak için gerekli sebepler daha fazla performans ihtiyacı, yüksek erişilebilirlik (high availability) ya da her ikisi birlikte olabilir. Şimdi cluster çeşitlerini çok fazla ayrıntıya girmeden biraz daha yakından inceleyelim. Yüksek erişilebilirlik (High-availability) clusterlarıBu tip cluster yapısında öncelik erişilebilirliği arttırmadır. Bunu tek bir sunucunun görevini herhangi bir donanım yada yazılım problemi oluştuğunda diğer bir sunucunun otomatik olarak devralması olara…