Yazı dizimizin üçüncü bölümünde, anlatmış olduğumuz akıllı evler için, ’nasıl bir yazılım
sistemi kullanılmalıdır?’ sorusuna cevap vereceğiz.
Yapay zekanın
önemli uygulamaları arasında olan zeki evler, dış dünyadaki değişikliklere tepki
verebilen, yaşayanların davranışlarından ne zaman ne yapacağını bilen evlerdir.
Zeki evlerin birçok tanımı yapılmasına karşın, buradaki zeki ev tanımı, öğrenebilen
ve otomatik olarak eylemlerde bulunabilen bir evdir.
Zeki
Ev Yazılımlarının Özellikleri
Zeki evler, yazılım sistemleri sayesinde zeki ev olarak nitelendirilmektedirler.
Bu yüzden yazılım sisteminin kolay geliştirilebilir olması çok öenmlidir. Zeki
ev sistemleri, çok fazla değişikliğe uğrayabilecek sistemler olduğundan (yeni
sensor kullanımı, eve yeni özellik eklenmesi, bir özelliğin çıkarılması, ...)
yazılım sisteminin değişiliklere açık yani kolay uyum sağlayabilen bir yapıda
olması gereklidir.
Yazılım sistemin aynı zamanda donanım bağımsız olması gerkemektedir. Böylelikle
yazılım mekanizmalarında yapılan değişiklikler üst seviyede kalır. Aynı zamanda
bir kez hazırlanan yazılım, farklı farklı donanımlarla kullanılabilecektir.
Zeki ev uygulamalarında kullanılan donanımlar da çok farklılık gösterebileceğinden,
donanımdan bağımsız bir yazılım çok önemlidir.
Akıllı
Ev Sistemlerindeki Yazılımların Genel Özellikleri:
1. Gerçek zamanlı çalışabilme
2. Esnek
3. Hızlı yazılım geliştirebilme
4. Kolayca ve hızlıca yeni özellikler ekleyebilme, çıkarabilme, değiştirebilme
5. Kolayca yapay zeka kısımlarını, algoritmalarını değiştirebilme, yeni yapay
zeka gerçekleştirimlerini ekleyebilme.
6. Donanım bağımsız
7. Çok sayıda sensor çeşidiyle çalışabilme
Zeki Ev Yazılım Çerçevesi
Önceki bölümlerde değinilen özelliklere sahip bir yazılım sistemi için, çok
katmanlı bir mimari ve nesneye dayalı bir programlama dili tercih edilmelidir.
Yazılımın çok katmanlı yapılması, donanım ve yazılımın birbirinden ayrılmasını
sağlayacaktır. Bu sayede, yazılım sistemi, altta çalışan donanımdan bağımsız
bir şekilde değiştirilebilecektir.
Kullanılan programlama dilinin nesneye dayalı olması ise, yazılımın modüler
olmasını sağlayacak ve esnekliği arttıracaktır. Genel olarak düşünecek olursak,
akıllı ev mimarimizde şu parçalar olmalıdır:
En altta, ev içine yerleştirilecek olan donanım, daha sonra bu sensorleri kullanacak
olan bir yazılım sistemi, son olarak da yazılımın alttaki donanımdan bağımsız
olarak çalışmasını sağlayacak, başka evlere kolay adapte edilebilecek, web arayüzünü,
pc simulasyonunu da akıllı evde çalışır gibi çalıştırabilmeyi sağlayacak çok
iyi tanımlanmış bir donanım soyutlama katmanı olmalıdır.
Bu sistemden de
görülebileceği gibi, alttaki donanım ne olursa olsun, üst tarafta tasarlanacak
yazılım sistemi, sadece donanım soyutlama katmanı değiştirilerek kullanılabilecektir.
Bu yapı öncelikle esnekliği arttıracaktır. Alt taraftan gelen mesajlar, yazılım
sisteminde işlenecek, ve donanımda gerekli fonksiyonlar cagırılacaktır.
Bu tip bir yazılım sisteminde, geliştirmek için bir simulatör de yapmak çok
kolay olacaktır çünkü donanım katmanı yerine alt tarafı, alt taraftan
gelen mesajları simukle eden basit bir bilgisayar programı yazılabilecektir.
Yazılım sisteminin esnekliği bu şekilde sağlanmış olacaktır.
Yazılım Çerçevesi Detayları
Yazılım çerçevesi,
bir akıllı ev sisteminde olması gereken birinmler dikkate alınarak modül yapısında
yapılmıştır. Bu modüllerin her biri, evde belirli bir hizmeti yerine getirecektir.
Modüllerin haberleşmesi Uygulama Yönetim Modülü tarafından, merkezi bir yapı
tarafından sağlanmaktadır. Bu sayede esnek bir yazılım çerçevesi, oluşturulmaktadır
çünkü istenilen modül, daha önce yaratılmış olan modülleri etkilemeden, merkezi
yapıda yapılacak olan bir kaç küçük değişiklikle eklenebilecektir. yazılım çerçevesinin
donanım soyutlama katmanı ile haberleşmesi, Mesaj Dağıtım Merkezi adı verilen
yapı sayesinde olmaktadır.
Mesaj Dağıtım Merkezi,
donanımdaki sensorlerden (veya simulatorden) gelen mesajları algılayıp, yazılımın
anlayaıp işleyebileceği bir hale getiren bir tür mesaj dönüştürücüdür. Daha
sonra bu dönüştürülen mesaj, Uygulama Yönetim Modül’e gelecek, ve bu yönetici,
mesajı bağmısız olarak çalışan modüllere geçirecektir.
Birbirinden bağımsız
olarak çalışan bu modüllerde bulan mesaj haritaları taranacak, eğer bu mesaja
karşılık yapılacak bir iş o listede bulunursa modül tarafından bu işlem gerçekleştirilecektir.
Aksi takdirde mesaj işlenmeden atılacakatır. Mesajın karşılığı listede varsa,
modül Donanım Soyutlama Katmanı aracılığıyla donanımdaki gerekli işlemleri yapacak
fonksiyonları çalıştıracaktır.
Yukarıdaki şekilde
de görüldüğü gibi, Donanım Soyutlama Katmanı sayesinde, alt tarafta çalışmakta
olan gerçek bir donanım, web arayüzlü bir yazılım, geliştirme aşamasında kullanılan
bir ev simulasyon yazılımı olabilecektir. Sistem, özsellikle geliştirme aşamasını
hızlandıracaktır çünkü bilgisayardaki simulasyon sayesinde, donanım detayları
ile uğraşmadan yazılım sistemine odaklanmak, yazılım sistemindeki öğrenme, çıkarsama
gibi yapay zeka modülleri ve algoritmaları üzerinde bağımsız olarak çalışmak
mümkün olacaktır.
Makale:
Akıllı Evler, Yapay Zekanın Günlük Yaşantımızdaki Kullanımı - 3 Yazılım Mühendisliği Tanıl Ergin
|