evik, Oğuzhan Çakmak, Ercan Bayrak, Okben Ulubay, Mehmet Alemdaroğlu, Egemen Güven - Koç: Ömer Uğurata

Eray Akyüz, Enis Sipahi, Mert Konuk, Burak Türsen, İsmet Avşar, Çağatay Afşar, Onuralp Bitim, Ragıp Atar, Servet Kurnaz, Muhaymin Mustafa, Ahmet Can Duran, Leon Apaydın - Koç: Fatih Elbaş

Eray Akyüz, Enis Sipahi, Mert Konuk, Burak Türsen, İsmet Avşar, Çağatay Afşar, Onuralp Bitim, Ragıp Atar, Servet Kurnaz, Muhaymin Mustafa, Ahmet Can Duran, Leon Apaydın - Koç: Fatih Elbaş





Hesaplamalı nörobilim

Hesaplamalı nörobilim, teorik bilgilerden oluşan bir bilgisayar bilimi alanıdır.Beyin ve sinir sistemini oluşturan yapıların çalışma mekanizması açısından işlevler görmektedir. Nörobilim; bilişsel bilim ve psikolojinin çeşitli alanları elektrik mühendisliği, bilgisayar bilimi, matematik ve fizik ile ilişkilendiren, disiplinler arası bir bilimdir.

Hesaplamalı nörobilim; sinirsel ağlar gibi disiplinlere, biyolojik olarak incelenen nöronlara, bunların fizyolojisine ve dinamiklerine odaklanan psikolojik bağlantılara ve canlıların öğrenme mekanizmalarına matematiksel modeller sağlar.

Bu alandaki hesaplama modelleri, biyolojik veya psikolojik deneylerle doğrudan test edilebilen hipotezleri belirlemek için kullanılmaktadır.

Hesaplamalı nörobilim çalışmalarına örnek olarak şu alanlar verilebilir:




Maybach Music Group

Maybach Music Group, Amerikan plak şirketi. 2009 yılında hip hop sanatçısı Rick Ross tarafından kuruldu. Distribütörlüğü 2012 yılı sonu itibarıyla Atlantic Records tarafından yapılmaktadır. Maybach Music Group günümüzde Wale, Meek Mill, Omarion ve Gunplay gibi isimlere ev sahipliği yapmaktadır.





Gereksinim çözümleme

Bilgisayar bilimlerinde, gereksinim analizi ya da gereksinim çözümleme; çeşitli sistemlerin gerekliliklerini ve olası çelişkili durumlarını göz önüne alarak, yazılımı analiz etmek, belgelemek, doğrulamak ve yönetmek için yeni veya değiştirilmiş bir ürün üzerinde projenin ihtiyaçlarını, sistem gereksinimlerini ve koşullarını belirleyen görevleri kapsamaktadır.

Gereksinim analizi; bir sistem veya yazılım projesinin başarısı veya başarısızlığı açısından kritik önem taşır. İhtiyaçların belgelenmesi, uygulanabilir olması, ölçülebilir olması, test edilebilir formda olması, izlenebilir olması ve belirlenen işletmenin ihtiyaçlarına uygun olması gerekir.

Kavramsal olarak, gereksinim analizi üç tür etkinlik içermektedir:
Gereksinim analizi, pek çok hassas psikolojik becerinin katıldığı uzun ve yorucu bir süreç olabilir. Büyük sistemler, yüzlerce veya binlerce sistem gereksinimi açığa çıkararak analistlerin iş yükünü artırabilir. Yeni sistemler, ortamları ve insanlar arasındaki ilişkileri değiştirir, bu nedenle geliştiricilerin tüm ortamları tanımlamalarını, tüm ihtiyaçları göz önünde bulundurmalarını ve yeni sistemlerin etkilerini anlamalarını sağlamak önemlidir.Analistler, müşterinin gereksinimlerini ortaya çıkarmak için çeşitli teknikler kullanabilirler. Bunlar, senaryoların geliştirilmesi, kullanım durumlarının belirlenmesi, işyeri gözlemi, etnografi kullanılması, röportajlar düzenlenmesi veya gözden geçirme oturumları yapmak gibi yöntemleri içermektedir.Ve böylelikle gereksinim listeleri oluşturulabilir.Prototip belirleme yöntemi, proje sunulacak şahıs ya da kuruma örnek olarak gösterilebilecek bir sistem maksadıyla kullanılabilir. Analist, gerekirse, şahıs ya da kurumların kesin gereksinimlerini belirlemek için bu yöntemlerin bir kombinasyonunu kullanır ve böylece işletme ihtiyaçlarını karşılayan bir sistem üretilir.Gereksinim kalitesi aşağıdaki bazı yöntemlerle iyileştirilebilir:

Gereksinim analizi konuları kabaca şöyle listelenebilir:

Yazılım geliştirilecek kitlenin belirlenmesidir.Bununla beraber kitlenin niteliksel ya da niceliksel özelliklerinin belirlenmesi konusu da oldukça önemlidir.Bu kitle şunları kapsayabilir:

Hedef kitle ile görüşmeler, gereksinim analizinde kullanılan yaygın bir tekniktir.Kitlenin bakış açılarına ve belirlenen ihtiyaçlarına odaklanılır.Yazılım geliştirecek ekibin, kitlenin ait olduğu sistemi önceden etraflıca analiz etmesi gerekmektedir.Çünkü bu görüşmelerde, genellikle geliştiricinin ilgili çalışma sahasının yaşam döngüsü hakkındaki bilgi yetersizliğinden ve buna paralel olarak kitlenin de teknik bilgi yetersizliğinden kaynaklı sorunlar çıkmaktadır.Bunu önleyebilmek için etkili iletişim teknikleri kullanılmalıdır.

Bu oturumlarda yazılım geliştirme sürecinde iş analisti(business analyst) kullanılır.Böylelikle kolaylıkla kitlenin gereksinimleri ortaya çıkarılır, ayrıntıları analiz edilir ve işlevler arası etkileri ortaya çıkarmak için tartışmalara girilir.Bu analist tarafından kontrollü bir ortamda yürütülür.Böylelikle müşterek gereksinim geliştirme oturumları sağlanabilir.Tartışmayı belgelemek ve oturumun hedefini karşılayan uygun şartları sağlamak için tartışmayı yönetmek üzere iş analistinin düşüncelerinden bağımsız özel bir yazar bulunmalıdır.

İhtiyaçların belgelendirilmesinin geleneksel yolu, sözleşme tarzı gereksinim listeleridir. Karmaşık bir sistemde, bu tür gereksinim listeleri yüzlerce sayfaya kadar sürebilir.

İfade yerindeyse, bu liste adeta uzun bir alışveriş listesi gibidir.Modern analiz yöntemlerinde bu tür listeler çok fazla avantajlı değildir.Çünkü amaçlarına ulaşmada başarısız oldukları görülmüştür.Buna rağmen, bu teknik günümüze kadar gelebilmiştir

Bir prototip, başka bir bilgisayar programının özelliklerinin bir bölümünü sergileyen ve henüz oluşturulmamış bir uygulamayı görselleştiren bilgisayar programıdır. Popüler bir prototip biçimi, gelecekteki kullanıcıların ve diğer kitlenin sistemin nasıl görüneceği konusunda fikir sahibi olmalarına yardımcı olan bir taklit uygulamasıdır. Prototipler, tasarım kararlarını kolaylaştırır, çünkü uygulamanın geleceği, uygulama oluşturulmadan önce görülebilir ve paylaşılabilir. Kullanıcılar ve geliştiriciler arasındaki iletişimde büyük gelişmeler genellikle prototiplerin tanıtımından sonra görülmüştür.Geliştirilme aşamasından önce, uygulamalar hakkında belirtilen hedef kitle görüşleri sayesinde verimlilik artmıştır.Bu ise, daha az değişiklik ve dolayısıyla daha düşük maliyet anlamına gelmektedir.

Bir kullanım örneği, ister özgün bir çalışma, ister sonradan değiştirilmiş olsun, genellikle yazılım içeren bir sistemin işlevsel gereksinimlerini belgeleyen bir yapıdır. Her kullanım örneği, belirli bir iş hedefine ulaşmak için sistemin bir insan kullanıcısı veya başka bir sistemle nasıl etkileşim kuracağını anlatan bir dizi senaryo sağlar. Kullanım örnekleri genellikle teknik ifade biçiminden uzaktır ve bunun yerine son kullanıcının veya hedef kitlenin anlayacağı dili tercih eder. Kullanım örnekleri, genellikle sistem analisti ve hedef kitle tarafından birlikte incelenir.

Kullanım örnekleri, yazılım veya sistemlerin davranışlarını açıklamak için suni ve basit araçlardır. Kullanım örneği, kullanıcıların yazılım veya sistemin nasıl çalışacağı ile ilgili metinsel bir açıklama içerir. Kullanım örnekleri, sistemin iç işleyişlerini ya da mekanizmalarını içermemelidir.Ve sistemin nasıl uygulanacağını açıklamamalıdır. Bunun yerine, sıralı varsayımlar olmaksızın bir görevi gerçekleştirmek için gerekli adımları açıkça belirtmelidir.(Örneğin bir muhasebe programında yeni bir ürünün nasıl ekleneceği bilgisi paylaşılabilir.)

Steve McConnell, Rapid Development adlı kitabında, kullanıcı gereksinimlerinin karşılanmasını engelleyen bir dizi sorunu ayrıntılarıyla anlatıyor:
Bu durum, sistem veya ürün geliştirmeye başladığında bile kullanıcı gereksinimlerinin değişmeye devam etmesine neden olabilir.

Gereksinim analizi sırasında mühendislerden ve geliştiricilerden kaynaklı sorunları şunlardır:

Kod yazmaya yönelik doğal bir eğilim vardır,bu durum gereksinim analizi tamamlanmadan önce yazılım geliştirmenin başlamasına yol açabilir ve bunun sonucu da muhtemelen, gerçek gereksinimleri bilinmeden geliştirilen ve öngörülemeyen ya da yeniden yapılandırılamayan yazılımlar doğurabilir.

Geliştiriciler ve hedef kitlenin anlaşmaları bozulabilir.Sonuç olarak, geliştiriciler projeyi teslim edebilmek için çalışırlar.Tamamlanan bir ürünün, geliştirilinceye kadar olan sürecini yönetirler ama buna karşın hedef kitlenin kanaatleri, başlangıçtaki anlaşmanın doğrultusunda olmayabilir yani anlaşmayı bozabilirler.

Mühendisler ve geliştiriciler, gereksinimleri, müşterinin ihtiyaçlarına özel bir sistem geliştirmek yerine mevcut bir sisteme veya modele uydurmaya çalışabilir.

Analiz, müşterinin ihtiyaçlarını doğru bir şekilde anlamak için farklı istihdam alanlarında bilgisi olan personel yerine, mühendisler veya programcılar tarafından sıklıkla uygulanabilir.Bu ise gerçeklik küresine uygun olmayan çözümler üretilmesine sebebiyet verebilir.

İletişim sorunlarına çözüm denemesinde iş veya sistem analizinde uzmanlar çalıştırılması vardı.

1990'larda prototiplendirme, birleşik modelleme dili(UML), şablon kullanma ve çevik yazılım geliştirme gibi teknikler, önceki yöntemlerde sık karşılaşılan sorunların çözümleri olarak düşünülmüş ve buna paralel olarak geliştirilmiştir.

Ayrıca, uygulama simülasyonunun yeni bir sınıfı veya uygulama tanımlama araçları piyasaya girdi. Bu araçlar, işletme kullanıcıları ile yazılım geliştirme organizasyonu arasındaki iletişim boşluğunu gidermek ve herhangi bir kod üretilmeden önce uygulamaların test yoluyla pazarlanmasını sağlamak için tasarlanmıştır. Bu araçların en nitelikli olanları şunlardır:




Biçimsel yöntemler

Bilgisayar bilimlerinde, özellikle yazılım mühendisliği ve donanım mühendisliğinde biçimsel yöntemler; yazılım ve donanım sistemlerinin spesifikasyonu, geliştirilmesi ve doğrulanması için matematiksel olarak belirli teknikler bütünüdür. Yazılım ve donanım tasarımı için biçimsel yöntemlerin kullanılması, diğer mühendislik disiplinlerinde olduğu gibi, uygun matematiksel analizin yapıldığı bir tasarımın güvenilirliğine ve sağlamlığına katkıda bulunabileceği beklentisiyle geliştirilir.

Biçimsel yöntemler, en temel teorik bilgisayar bilimi konularının, özellikle mantık, biçimsel diller, otomata teorisi