Nesnel Yazılım ürünler müşteri girişi iletişim haberler yayınlar makaleler
 
Web Hizmetleri
çözümlerimizi hayata geçirirken kullandığımız proje yönetimi yöntemleri ve teknolojiler
F. Nesnel Yazılım Web Mühendisliği İskeleti


Şekil 1: Nesnel Yazılım Web Mühendisliği iskelet şeması

F.1. Formulasyon (Formulation)

Müşteri ve geliştirci açısından sitenin yapılma amacının ve asıl hedeflerin belirlendiği aktivitedir. Ayrıca gerçek anlamda uygulamanın kapsamı da belirlenir. Formulasyonun ilk adımı üç tane sorunun cevaplanması ile başlar.
1. Web uygulaması için ana motivasyon nedir?
2. Web uygulamasına neden ihtiyaç duyuluyor?
3. Uygulamayı kim kullanacak?

F.2. Analiz (Analysis)

Formulasyon aşamasında belirlenen uygulama kapsamı, analiz modelin çıkarılması için kullanılır. Analiz, Web uygulması için verisel ve fonksiyonel ihtiyaçların belirlendiği teknik aktivitedir. Dört tip analiz mevcuttur;
1. İçerik Analizi(Content Analysis) : Uygulamada kullanılacak içerik bilgisi belirlenir. Bu içerik text, grafik, imaj, video ve audio olabilir.
2. Etkileşim Analizi(Interaction Analysis) : Kullanıcının programı nasıl kullanıcağı ile ilgili çeşitli tanımlamalar yapılır.
3. Fonksiyonel Analiz : Uygulamaya ait tüm operasyonlar ve fonksiyonlar tanımlanır. Arama, navigasyon, linkleme...
4. Konfigurasyon Analizi(Configuration Analysis) : Uygulamanın çalışacağı altyapının ve sistemin belirlendiği analizdir. Mesela site üzerinde IIS ya da Apache olan bir sunucuda çalışacabilir.

F.3. Dizayn (Design)

Web tabanlı uygulamaların sürekli bir değişim ve gelişim içinde olmasından dolayı, yapacağımız dizayn hem mühendislik kurallarına uygun olmalı hem de hızlı değişime ayak uydurabilmelidir. Üç tip dizayn aktivitesinden bahsetmek mümkündür; Mimari (Architectural) , Navigasyon (Navigational), Arayüz(Interface) dizaynları.

F.4. Mimari Dizayn (Architectural Design)

Hipermedya yapısını tanımlar. Hangi içeriğin gösterileceğine, hangi tipte kullanıcıların siteyi ziyaret edeceğine ve de sitenin diğer yapılma amaçlarına uygun tasarlanmalıdır.
Doğrusal Yapılar(Linear Structure) : Tahmin edilebilir kullanıcı etkileşimleri varsa yani bir sonraki yapılacak kondisyon belli ise doğrusal yapılar kullanılır.


Şekil 2: Doğrusal Yapı

Sunum tarzındaki siteler bu yapıda olurlar. Çünkü bir slayttan sonra hangisinin geleceği bellidir ve slaytlar birbiri ardına sıralanırlar. Müşteri sipariş giriş formu da bu yapıdadır. Formda girilmesi gereken bilgi alanları belirli bir sırayla doldurulmalıdır. Kredi kartı numarasından önce isim ve diğer fatura bilgileri girilmelidir.

Izgara Yapılar(Grid Structure) : İçeriğin kategorize ve düzenli olduğu durumlarda kullanılan yapıdır. Bu yapılarda içeriğe ait iki veya daha fazla boyut bulunmaktadır. İçerik düzenli olduğu zaman kullanışlıdır.

Şekil 3: Izgara Yapı(Grid Structure)
Golf takımı satan bir elektronik ticaret sitesinde, yatay boyut, golf takımının tipini (demir,tahta...), dikey boyut ise, çeşitli golf takımı üreticilerinin siparişlerini temsil etmektedir.
Hiyerarşik Yapılar (Hierarchical Structure) : Hızlı navigasyona olanak sağlar. Fakat kullanıcı açısından komplex olabilir.


Şekil 4: Hiyerarşik Yapı

Ağ Yapılar (Networked Structure) : Nesne tabanlı mimarilere çok benzer yapılardır. Her komponent yani web sayfası sistemdeki diğer komponente bağlıdır. Bu özelliği sayesinde kullanıcıya navigasyon esnekliği sağlar. Fakat kullanıcı açısından komplex olabilir.


Şekil 5: Ağ Yapısı (Networked Structure)

F.5. Navigasyon Dizaynı (Navigation Design)

Web tabanlı uygulamanın mimarisi ortaya koyulduktan ve mimariye ait sistem komponentleri (sayfalar, skriptler, appletler ve diğer fonksiyonlar) belirlendikten sonra, kullanıcların web içeriklerine ve servislerine erişmelerini sağlayacak navigasyon yolları tanımlanmalıdır. Genelde, büyük çaplı web uygulamaları, kullanıcıları çeşitli rollerde sınıflandırırlar. Bu roller ziyaretçi (visitor), kayıtlı (registered) ya da ayrıcalıklı (privileged) olabilirler. Her rol için içeriğe erişme ve servisleri kullanabilme oranı farklıdır. Mesela, bir ziyaretçi sadece içeriği görme amaçlı siteyi ziyaret edebilirken, kayıtlı kullanıcı çok daha fazlasını yapabilir. Uygulama geliştiricisi, tanımlanan her role’ün hedeflerini belirlemek için “Anlamsal Navigasyon Birimleri” (Semantic Navigation Units = SNU) tanımlar. SNU’ lar her hedef için ayrı ayrı belirlenir.

Bir SNU’yu iki veya daha fazla “Navigasyon Yolu” (Ways of Navigating = WoN) oluşturur. Her WoN kullanıcı rolleri için en verimli ve uygun navigasyon yollarını belirler. Her WoN çeşitli düğümlerin (node) birleşiminden meydana gelmiştir. Navigasyon dizaynının ilk aşamalarında, ilk yapılması gereken, kullanıcı hedefleri için WoN’ların belirlenmesidir.
Dizaynın diğer aşamasında, Navigasyon linkleri için çeşitli mekanikler belirlenir. Birçok seçenek mevcuttur; text-tabanlı, ikon, düğme... Mekaniklere ek olarak, geliştirici, navigasyon standartlarını (navigation convention) ortaya koymalıdır. İkonlar ve grafiksel linkler tıklanabilir görünmelidir. Text-tabanlı navigasyon linklerinde renk ayrımı gibi ayrımlar yapılmalıdır.

F.6. Arayüz Dizaynı (Interface Design)

Bir kullanıcı için arayüz kullanıcıdaki ilk etkiyi bırakır. Kötü dizayn edilmiş bir arayüz potansiyel kullanıcılar için hayal kırıklığı yaratır. Arayüz dizaynı ile ilgi dikkat edilmesi gerekenler;

  • Kullanıcıya gösterilen sunucu hataları, kullanıcının siteyi terk etmesine yol açar
  • Kullanıcıları çok fazla text okumaya zorlamamak gerekir. Genelde özet geçilmelidir.
  • Yapım aşamasında gibi işaretleri ya da imajları kullanılmamalıdır.
  • Kullanıcılara çok fazla scroll yaptırılmamalıdır.
  • Navigasyon ve üst taraf menülerine her sayfadan ulaşılabilmelidir.
  • Diğer sayfalara olan navigasyon linkleri açıkça belirtilmelidir.

F.7. Test

Geleneksel yazılım uygulamaları için geçerli olan test aşamaları, genelde web uygulamaları için de geçerlidir. Fakat, web uygulamaları network tabanlı oldukları, çeşitli işletim sistemleri, donanımlar, web tarayıcıları ve protokoller ile çalıştıkları için hata yakalama biraz daha detaylıdır. Çeşitli test adımları mevcuttur;

  • Web uygulaması içeriği çeşitli hataları düzeltmek için gözden geçirilir. Gramer hataları, içerik hataları ve imaj hataları kontrol edilir.
  • Navigasyon hatalarını önlemek için Web uygulaması dizayn modeli gözden geçirilir. Use-case’ler kontrol edilir.
  • Seçilen işlevsel bileşenler ve Web sayfaları üzerinde birim(unit) testi yapılmalıdır. Web uygulamalarında genelde test edilecek en küçük birim, her imajı, linki kontrol etmek zor olduğu için, bir web sayfasıdır. Geleneksel yazılım uygulamalarındaki testin aksine, alogoritmik detaylar üzerinde durmaktansa sayfa seviyeli testler yapılır.
  • Mimari inşa edilir ve entegrasyon testi yapılır. Web sayfalarını entegrasyonu için Thread-tabanlı test yapılır. Gerileme(Regression) testi ve küme(cluster) testi uygulanır.
  • Web uygulaması üzerinde kapsamlı fonksiyonellik testi yapılır. Geleneksel geçerlilik (validation) testinde olduğu gibi, kullanıcı aksiyonları ve kullanıcıya gösterilecek çıktılar üzerinde yoğunlaşılır.
  • Çeşitli konfigurasyonlar üzerinde uyumluluk (compatibility) testi yapılır. Muhtemel işletim sistemlerini, donanımları, browserları ve protokolleri içerin bir matrix yapılır. Her konfigurasyon için ayrı ayrı test yapılır.
  • Web uygulaması çeşitli kullanıcı grupları üzerinde kullandırılarak test edilir.