Üniversite Adayları İçin Bilgisayar Mühendisliği

advertisement
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
FATİH
SULTAN MEHMET VAKIF ÜNİVERSİTESİ
Üniversite Adayları İçin
Bilgisayar Mühendisliği
Bilgisayar Mühendisliği Bölümü
2012
0
Fatih İstanbul
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
Önsöz
Bu çalışma; üniversite adaylarına meslek seçiminde yardımcı olmak amacıyla Bilgisayar
Mühendisliği Bölümünü tanıtmayı amaçlamaktadır. Bir meslek seçerken birçok soru öne
çıkar. Bu çalışmada; teknik ayrıntılara boğulmadan, basit, açık ve şekillere dayalı bir anlatım
yöntemiyle aşağıdaki sorulara cevap aramaktadır.





Bilgisayar Mühendisliği nedir?
Niçin Bilgisayar Mühendisi olmalıyım?
Nasıl Bilgisayar Mühendisi olunur?
İş imkânları nelerdir?
Zorlukları nelerdir?
FATİH SULTAN MEHMET VAKIF Ü NİVERSİTESİ
MÜHENDİSLİK MİMARLIK FAKÜLTESİ
BİLGİSAYAR M ÜHENDİSLİĞİ B ÖLÜMÜ
Bu belge bütünleşik olarak özgürce dağıtılabilir ve çoğaltılabilir. Ancak belge içerisindeki bilgiler
sadece kaynak belirtmek suretiyle kullanılabilir.
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
İçindekiler
Önsöz ....................................................................................................................................................... 2
Bilgisayar Mühendisliği Nedir? ................................................................................................................ 1
Yazılım.................................................................................................................................................. 2
Yazılım Mimarisi ve Yazılımın Çalışması........................................................................................... 3
Bilişim Sistemleri ve Yazılım geliştirme Süreci ..................................................................................... 4
Planlama .......................................................................................................................................... 5
Kapsam Belirleme ............................................................................................................................ 5
İhtiyaç Analizi................................................................................................................................... 6
Tasarım ............................................................................................................................................ 6
Gerçekleştirilme .............................................................................................................................. 7
Test .................................................................................................................................................. 7
Devreye Alma .................................................................................................................................. 8
Niçin Bilgisayar Mühendisliği? ................................................................................................................. 9
Teknolojinin merkezinde olmak .......................................................................................................... 9
Çok Geniş İş İmkânı.............................................................................................................................. 9
Problem çözme yeteneğini geliştirmek ............................................................................................... 9
İnsanlığa Hizmet Eden Gelişmelere Katkı Sağlamak ............................................................................ 9
Düşük Ar-GE Maliyetleri: Kendi Şirketini açabilmek ............................................................................ 9
Nasıl Bilgisayar Mühendisi Olunur? ....................................................................................................... 10
İş İmkânları ............................................................................................................................................ 11
Yazılım ve ARGE Şirketleri .............................................................................................................. 11
Kurum İçi yazılım Evleri.................................................................................................................. 11
Akademik ve Bilimsel Çalışmalar ................................................................................................... 11
Çalışılabilecek Pozisyonlar ................................................................................................................. 12
Yazılım Geliştirici............................................................................................................................ 12
Yazılım Mimarı ............................................................................................................................... 12
Kalite/Test Mühendisi ................................................................................................................... 13
Proje Yöneticisi .............................................................................................................................. 13
Sistem Analist ................................................................................................................................ 13
Ara Yüz Geliştirici ........................................................................................................................... 13
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
Sistem Uzmanı ............................................................................................................................... 14
Veritabanı Yöneticisi ...................................................................................................................... 14
Zorluklar ................................................................................................................................................ 15
Bilgisayar Mühendisli rutin bir masa başı işi değildir! ....................................................................... 15
Yazılım ürünleri karmaşıktır ............................................................................................................... 15
Bilgisayar Mühendisliği çok fazla alana dallanmıştır ......................................................................... 15
Yazılım hayata ve insana hitap eder. ................................................................................................. 16
Çalışma şartları özellikle ülkemizde ağırdır ....................................................................................... 16
Sonsöz .................................................................................................................................................... 17
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
Bilgisayar Mühendisliği Nedir?
Hayatımızın birçok alanında bilişim sistemleriyle iç içe yaşıyoruz. İnternetten cep
telefonlarına, kurumsal sistemlerden uzaya giden roketlerdeki kontrol sistemlerine kadar her
alanda bu sistemler kullanılıyor. Nerdeyse her insan yazılım kullanıcısı.
Bilişim sistemleri temelde iki altyapıdan oluşur: Yazılım ve Donanım (Şekil 1)
Son Kullanıcılar
Bilgisayar Ağları,
İnternet
Yazılım katmanı
İşletim Sistemi
Donanım katmanı
Şekil 1 Bilişim Sistemleri
Yazılım; temel olarak kodlardan oluşan bir üründür. Donanım; yazılımın çalışması için gerekli
masaüstü-dizüstü bilgisayar, cep telefonu ve diğer gibi makine altyapısıdır. Yazılım, donanım
üzerinde çalışır ve müşterinin beklediği hizmetler genellikle yazılım ara yüzleriyle yürütülür.
Bilgisayar Mühendisliği, bilimi ve teknolojiyi kullanarak, yazılım ve donanımların birlikte
çalıştıkları modern sistemlerin analiz, tasarım ve gerçekleştirilmesine yönelik çalışan
mühendislik disiplinidir [ACM-2004]. Bilgisayar Mühendisleri özellikle yazılım kısmına
yönelik çalışır. Donanım kısmı elektronik mühendisleriyle birlikte tasarlanır.
Bir bilgi işlem projesi iki temel konunun bilinmesine ihtiyaç duyar. Ürün ve süreç


Ürün; geliştirilecek sistemin bileşenleri, tasarım yöntemleri, geliştirme ortamı,
yazılım dilleri gibi bilgiler bilinmesi gereken önemli bilgilerdir.
Ürünü geliştirmekte kullanılan süreç; geliştirme aşamalarını ve aşamalar arası
bağlantıların nasıl yapılacağını belirler.
Ülkemizde Bilgisayar Mühendisliği eğitimi genellikle ürün odaklıdır. Oysa süreç de en az
ürün kadar önemlidir.
1
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
Yazılım
Yazılım; kişilerin ihtiyaçlarının bilgisayar ortamındaki yansımasıdır. Yazılımcılar; gerçek
hayatta olanları anlar, yazılım modelini tasarlar ve gerçekleştirir(kodlar). Aşağıda gerçek
hayattaki bir nesnenin(araba) yazılıma nasıl gömüldüğü gösterilmiştir(Şekil 2). (Kodlamalar
java dili yazım biçimindedir.)
Nense
public class Araba {
protected String renk;
public String getRenk() {
return renk;
Özellik
}
public void setRenk(String renk) {
this.renk = renk;
}
İşlev, Metot
public void hizlan(){
}
}
Şekil 2 Yazılım ve gerçek hayat
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
Yazılım Mimarisi ve Yazılımın Çalışması
Sosyal medyada arkadaş eklerken veya internette yeni bir ürün sipariş ederken acaba arka
planda neler oluyor? Her ikisinde de ekle butonuna basılıyor. Kullandığınız yazılımlarda ne
kadar çok benzer iş yapıldığını düşünün. Aslında arka plandaki işleyiş de birbirine
benzemektedir.
Mimari, yazılım yapısının üst düzey bir resmidir. Günümüzde, geliştirilen yazılımlarda
genellikle üç veya N katmanlı mimari kullanılır (Şekil 3). Bu mimaride kullanıcılar, ekran ve
rapor gibi ara yüzler vasıtasıyla sisteme bilgi girer, değiştirir, gözlem ve analiz yapar.
Uygulama sunucuları, yazılımların çalıştırılması ve yazılımlarda ortak olan işlemlerle ilgili
gerekli altyapıyı sağlar. Veritabanları da veri saklama ve erişim amaçlı kullanılır.
Kullanıcı Ara yüzü
Adı
Soyadı
Sicil No
…
Ekle
Kaydet
4
1
Uygulama Sunucusu
3
2
Veritabanı
Veri Saklama Ortamı
Şekil-3. Günümüzdeki yazılım geliştirme mimarisi ve yazılımın çalışması
Yazılımın Çalışması
1. Kaydet gibi bir butona basılarak sistemde bir olay tetiklenmesi: Algoritmalar, kurallar
ve ilişkiler ilgili kodların işletilmesi
2. Veritabanına ekleme, silme ve kaydetme gibi işlemlerin yapılması
3. Yapılan işlemin sonucunun döndürülmesi
4. Sonucun yorumlanması ve son kullanıcıya “Başarıyla kaydedildi gibi bir mesaj
verilmesi”
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
Bilişim Sistemleri ve Yazılım geliştirme Süreci
Bilişim sistemleri geliştirme tek adımlık bir işlem değildir, adım adım ilerleyen ve bazen de
geriye dönüşler olan bir süreç sonunda gerçekleşir(Şekil 4). Sürecin başında, projenin genel
hedefi ve süresi özet bir plan çerçevesinde belirlenir. Sonra kullanıcı ihtiyaçları ayrıntılı
analiz edilir. Takip eden tasarım aşamasında, analiz edilen ihtiyaçların nasıl karşılanacağının
modeli oluşturulur. Bu model prototipler vasıtasıyla son kullanıcılara gösterilip fikirleri
alınarak olgunlaştırılıt. Gerçekleştirme aşamasında nesne, ekran ve rapor gibi yapıların
kodlaması yapılır. Yapılanlar test edilir, hatalar düzeltilir ve test sonucu başarılı olan proje
devreye alınır. Devreye alındıktan sonra gelen istekler için proje bakım çalışmaları devam
eder.
Başlangıç
ve genel
planlama
İhtiyaç
Analizi
Tasarım
Gerçekleştirme
Test
Devreye
alma
Şekil 4 Sistem(yazılım) Geliştirme Süreci
Yazılım geliştirme ekibinin her üyesi süreçteki yerini bilmelidir. Çünkü tüm uzmanlıklar
firmaların yazılım geliştirme işlemi için kullandıkları süreçler içinde anlam kazanır.
Bilgisayar Mühendisleri genellikle sürece önce geliştirme aşamasından dahil olur. Çünkü
kodlama işin mutfağıdır ve diğer işlemlerin de hedefidir. Kodlama diğer işlemler için de
bir temel oluşturur. Bilgisayar Mühendisleri kodlama konusunda tecrübe kazandıktan
sonra mimari tasarım, takım lideri ve proje yöneticisi gibi daha fazla uzmanlık isteyen
görevlere doğru kayar.
Kodlama analizin ve tasarımın bir neticesi olduğundan Bilgisayar Mühendisleri özellikle
sistem analiz ve tasarım yeteneklerini geliştirmek için ilk günden çalışmaya başlamalıdır.
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
Planlama
Planlama; genel olarak projedeki hedeflerine ulaşmak için, belirlenmiş süre ve mali kısıtlarını
dikkate alarak, izlenecek yöntemin, yapılacakların, kullanılacak kaynakların ve süre
takvimlerinin belirlenmesidir (Şekil 5) .
Kapsam (Kalite)
Kaynaklar(Maliyet)
Kısıtlar (Zaman)
Şekil 5 Proje yönetim üçgeni
Kapsam Belirleme
İhtiyaçlar sınırsız ancak imkânlar sınırlıdır. Yapılacak projede hangi ihtiyaçlara cevap
verileceği seçilmelidir. Yapılacakları belirlemek genelde kolaydır yapılmayacakları
belirlemek daha zor olabilir (Şekil 6).
İhtiyaç: Personel eski işyerleri takibi
İhtiyaç: Personel nüfus bilgileri takibi
İhtiyaç: Unvan bilgileri takibi
İhtiyaç: Personel çocuk
bilgileri takibi
İhtiyaç: Personel hobilerinin takibi
İhtiyaç: Personel arkadaşlarının takibi
Şekil 6 Kapsam belirleme
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
İhtiyaç Analizi
İhtiyaç analizi, müşterilerin ihtiyaçlarının ve sistemden beklentilerinin ayrıntılı bir şekilde
tanımlanmasıdır (Şekil 7). İhtiyaç veya beklenti; kullanıcılar tarafından sistemin
gerçekleştirmesi istenen temel görev veya fonksiyondur.
İhtiyaç: Personel nüfus
bilgileri takibi
İhtiyaç: Unvan bilgileri
takibi
İhtiyaç: Maaş hesaplam
İhtiyaç: Personel çocuk
bilgileri takibi
İhtiyaç: Personel nüfus bilgileri takibi
Bilgiler: Adı, Soyadı, baba adı, anne adı, doğum yeri …
Kurallar: Doğum yeri Türkiye ise
sadece Türkiye illeri seçilebilir.
Şekil 7 İhtiyaç Analizi
Tasarım
Tasarım, yapılan analizin yazılım geliştirme araçlarının imkân, kural ve sınırları dâhilinde
geliştirilecek yazılım üst seviye modeline dönüştürülmesi işlemidir (Şekil 8). İhtiyaç analizi ve
tasarım uygulamada sık sık tek bir adımda gerçekleştirilmektedir. Ancak aralarındaki kavramsal
farklılıktan dolayı bu çok hatalı sonuçlara yol açar. İhtiyaç analizinde kullanıcı isteklerinin
alınmasını ve problemi öğrenmek amaçlanır. Tasarımda ise analiz sonucu ortaya çıkan
ihtiyaçların, yazılım geliştirme araçlarına uygun çeşitli seviyelerde modelleri çıkartılır. İhtiyaç
analizinde yön ihtiyacı anlamaya, tasarımda ise çözüme dönüktür. Tasarımda sınırlar keskindir.
Tasarım
Analiz
İhtiyaç: Personel nüfus
bilgileri takibi
İhtiyaç: Unvan bilgileri
takibi
İhtiyaç: Personel çocuk
bilgileri takibi
Unvan
Unvan_Id
Adı
Aciklama
…
Şekil 8 İhtiyaç Analizi ve Tasarım
Personel
Personel _Id
Adı
Soyadı
…
Çocuk
Personel_Id
ÇocukId
…
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
Gerçekleştirilme
Gerçekleştirme aşamasında, müşteri talepleri için tasarlanan model yazılım geliştirme araçları
vasıtasıyla yazılım ürününe dönüştürülür (Şekil 9). Bu aşamada fiziksel veri yapılarının
veritabanında oluşturulması, kodların, bileşenlerin, kod kütüphanelerinin, kullanıcı ara yüzü
ve raporların yazımı gibi işlemler yapılır.
class Personel {
…
}
class Cocuk {
Tasarım
Unvan
Unvan_Id
Adı
Aciklama
…
Personel
Personel _Id
Adı
Soyadı
…
…
}
Çocuk
Personel_Id
ÇocukId
…
class Cocuk {
…
}
Adı
Soyadı
Sicil No
…
Ekle
Kaydet
Şekil 9 Tasarım ve gerçekleştirme
Test
Test, yapılanların kontrol edilmesidir (Şekil 10). Kontrol iki aşamalıdır. Hedefler ve
yapılanlar test edilmelidir. “İstenilenler doğru anlaşılmış mı ?” ve “Yapılanlar doğru çalışıyor
mu? ”. Yapılanlar isteği karşılayıp karşılamadığının onaylanması ve düşünülenlerin yapılıp
yapılmadığının kontrol edilerek doğrulanması gerekir.
Şekil 10 Test: Sağlam olmalı ama yine de bir bakalım!
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
Devreye Alma
Test aşaması tamamlamasından sonra kullanıcı eğitimleri verilmesi, pilot kurulumlar ve nihai
proje kurulu yapılarak proje devreye alınır (Şekil 11). Devreye aldıktan sonra proje destek
çalışmaları başlar. Devreye alma ve bakım da oldukça zaman alır. Kendi içlerinde birçok
işlemden oluşur. Dolayısıyla bu aşamaların da ayrıntılı planlanması gerekir.
Şekil 11 Devreye alma veya kullanmaya başlama
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
Niçin Bilgisayar Mühendisliği?
Bilgisayar mühendisliğini seçmek için çok fazla sebep var [ACM-web].
Teknolojinin merkezinde olmak
Günümüz teknolojisinin merkezi bilişim sistemleri, bilişim sistemlerinin merkezi de
yazılımlardır. Yazılım geliştirme bilgisi çevredeki insan ve sistemlerin ihtiyaçları ve çalışma
sistemleri hakkında bilgi sahibi olmanın da bir yoludur.
Çok Geniş İş İmkânı
Günümüzde içerisinde yazılım olmayan hiçbir büyük proje yok! Bilgisayar mühendisleri
hemen her kurumda çalışabilen ve her projede ihtiyaç duyulan neredeyse tek mühendisliktir.
Birçok araştırma Bilgisayar Mühendisliğine talebin gelecekte de artarak devam edeceğini
göstermektedir. ABD İşçi Bakanlığına göre 2008-2020 arasında bilgisayar alanındaki ihtiyaç
%17, yazılım alandaki ihtiyaç %28 artacaktır [BLS-2008].
Problem çözme yeteneğini geliştirmek
Sürekli yeni zihni keşifler yapmak ve problem çözmek, hayatta karşılaşılan farklı birçok
problemin çözümünü de kolaylaştıracaktır.
İnsanlığa Hizmet Eden Gelişmelere Katkı Sağlamak
Bilgisayar mühendisliği insanlığa faydalı birçok alanın itici gücüdür. Hastalık teşhisi ve
tedavisi, eğitimin yaygınlaşması, bilgiye ulaşmayı kolaylaştırmak ve özgür tartışma ortamları
bu alanların sadece bir kaçıdır.
Düşük Ar-GE Maliyetleri: Kendi Şirketini açabilmek
Eşsiz bir fikriniz varsa Araştırma ve Geliştirme için siz, bilgisayarınız ve altyapı yazılımları
yeterlidir. Açık kaynak kodlu ve ücretsiz altyapılarla dünya çapında sistemlerin temelini
atmak mümkündür. Ülkemizde TÜBİTAK, Avrupa Birliği ve Kalkınma ajansları son yıllarda
özellikle bilişim alanındaki eşsiz fikirlere geniş (hibe) kaynaklar sağlamaktadır.
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
Nasıl Bilgisayar Mühendisi Olunur?
Bir projede istekler, kısıtlar, hedefler, kullanıcı karakteri, yazılım bileşenleri, yazılım dilleri,
ekip üyeleri, kurumsal yapılar, iş analiz adımları gibi yüzlerce parametrenin kaç tane
kombinasyon oluşturabileceğini bir düşünün. Dolayısıyla her bilişim projesi özel ve benzersiz
bir çabadır. Bilişim ve yazılım projeleri, araştırmaya, keşfe ve yeniliğe dayanır. Bu özellikleri
sağlayan yeteneklerin bir kısmı doğuştan gelir veya yaşamın ilk kısmında kazanılır [Drucker2006]
İyi bir üniversite eğitimi ileriye yönelik temeli kazandırır. Kendisini ve yeteneğini geliştirme
yeteneği kazandırır. Ancak unutulmaması gereken en temel hakikat:
Kimse sizi bilgisayar mühendisi yapamaz! Ancak kendi iradenizle; düşünerek,
araştırarak, keşfederek, çalışarak, danışarak ve bilgi alışverişi yaparak
“İyi bir bilgisayar mühendisi olabilirsiniz.”
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
İş İmkânları
Bilgisayar Mühendisliği hemen her şirkette iş imkânı olan bir mühendisliktir. Çalışılabilecek
şirket ve sahalar; yazılım şirketleri, akademik araştırmalar, telekom şirketleri, kamu
kuruluşları, bankalar ve askeri kuruluşlar şeklinde sayılabilir. Bu şirketler kazancı bilişime
dayanan ve diğer işlerini yürütmek için bilişimden bir hizmet olarak yararlanan şirketler
olarak ikiye ayrılabilir.
Yazılım ve ARGE Şirketleri
Yazılım ve ARGE şirketleri para kaynakları bilişim proje ve hizmetleri olan şirketlerdir.
Bunlar paket yazılım çözümleri geliştiren, şirketlere özel çözüm projeleri yapan, yurtdışı
firmaların ürünlerini satan veya danışmanlık hizmetleri veren şirketlerdir. Bir şirket bu
faaliyetlerden birkaçını ortak yürütebilir.
Yazılım ve ARGE şirketleri teknoloji kullanımı konusunda genellikle öncü rol üstlenir.
Birçok şirketin ortak ihtiyacına hitap eden ürünler çıkartırlar. Farklı kurumları tanıma, farklı
teknoloji ve projelerde çalışma imkânı sunarlar. Ancak özellikle küçük ölçekli bilgi işlem
şirketlerinin birçoğunda mesai saatlerinin çok düzenli olmadığını hatırlatmakta yarar var.
Kurum İçi yazılım Evleri
Ana parasal kaynakları bilişim projeleri olmayan, kurumun ana amacının bilişim projeleriyle
desteklendiği şirketlerdir. Telekom şirketleri, kamu kuruluşları, bankalar, holdingler, fabrika
ve diğer şirketler kendi bilgi işlem ekiplerini kurum içinde oluşturma yoluna gitmektedir.
Kurum içi yazılım evleri, kurumun ana işi bilgi işlem olmasa da birçok teknolojiye ev
sahipliği yapar. Büyük kurumsal yapıları tanıma ve bunlar için çözüm üretmek çok önemli
tecrübelerdir. Bu ortamlarda çalışma saatleri daha düzenlidir. Ancak kişinin kendisini
geliştirme imkânı bazı kurumlarda biraz daha kısıtlıdır denebilir. Çünkü kurumun ana amacı
bilgi işlem değilse çalışmaların belli süre sonra rutinleşmesi tehlikesi vardır.
Akademik ve Bilimsel Çalışmalar
Bilişim projeleri, diğer bilimsel çalışmalara da altyapı sağlar. Bilgiye ulaşmayı kolaylaştıran
sistemler, yapay sinir ağları, biyomedikal çalışmaları, robot araştırmaları, eğitim, genetik
mühendisliği bu sahalardan birkaçıdır.
Ülkemizde artan üniversite sayısı önemli bir akademisyen açığı ortaya çıkarmıştır. Görece
yeni bir saha olan bilişim için bu açık daha da büyüktür. Teşvik ve desteklerle,
akademisyenlerin ve özel sektörün birlikte çalıştıkları proje sayıları da hızla artmaktadır.
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
Çalışılabilecek Pozisyonlar
Bir bilgi işlem projesinde birçok farklı ve özelleşmiş görev bulunur (Şekil 12).
İdari
Teknik
Yazılım Ekibi:
Sistem analiz, yazılım
mimarı, yazılım
geliştirici, test
mühendisi,
Üst Yönetim
Proje Yönetimi:
Proje Yöneticisi,
Takım Lideri, İdari
Yönetim
Müşteriler
Altyapı Ekibi: Sistem
uzmanı, veritabanı
yöneticisi
Danışman ve
Uzmanlar
Son Kullanıcılar
Diğer Kişiler
Şekil 12 Bilişim projesinde çalışma yapısı
Yazılım Geliştirici
Yazılımın gerçekleştirilmesinden sorumludur. Genellikle programcı olarak anılır.
Gerçekleştirme kodlama, ekran ve raporların yazılması gibi faaliyetleri yapar. Gerçekleştirme
yapılabilmesi için kodlama seviyesinde gerekli ayrıntılı tasarımların ve modellerin
oluşturulması da yazılımcı sorumluluğundadır. Örneğin yapılacak bir sıralama işleminde
hangi sıralama algoritmasının kullanılacağını yazılımcı seçer.
Bilgisayar mühendisleri piyasada en çok yazılım geliştirici pozisyonunda çalışmaktadır!
Yazılım Mimarı
Yazılım mimarı, kullanıcı ihtiyaçlarını karşılamak için nasıl bir yazılım mimarisi
kullanılacağını belirler. Yazılım mimarisi yazılımın üst düzey bir modelidir. Yazılım mimarisi
ayrıntılı tasarımın nasıl olacağı konusunda da yol gösterir. Son yıllarda önemi artımıştır.
Analiz, tasarım ve gerçekleştirilme aşamalarının birbiriyle tutarlı olabilmesi için
yazılımın mimari yapısı doğru kurulmalıdır. Mimarinin belirlenmesi tecrübe gerektirir.
Bu yüzden mimarinin konuyla ilgili en tecrübeli kişilerden oluşan çekirdek bir ekip
tarafından hazırlanması ve diğer yazılımcıların bunu kullanarak yazılımı
gerçekleştirilmesi önerilmektedir[Brooks-1995].
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
Kalite/Test Mühendisi
Projenin kullanıcının isteklerini ve teknik gereksinimleri karşılayacak şekilde hatasız
geliştirilmesi için gerekli kontrol ve testleri yapmaktan sorumludur. Kalite ve test farklı
hedeflere yöneliktir. Kalite, istenilen alanda piyasadaki en iyi özelliklere sahip nitelikli bir
ürün çıkarmayı hedeflerken; test, hata bulmaya yöneliktir. Bu yüzden bazı şirketlerde kalite
ve test farklı kişiler tarafından yerine getirilebilir.
Test ve kalite mühendisliği yeni yeni yaygınlaşan ve gelecek vaat eden bir sahadır.
Proje Yöneticisi
Projenin istenilen kalitede ve sürede tamamlanması için gerekli planın hazırlanması, plandaki
faaliyetlerin koordinasyonu, görevlere uygun kişilerin atanması ve ekibinin plan uygun
hareket etmesinden sorumludur. Projenin başarı ve başarısızlığı durumunda hesap verecek ilk
kişidir. Kitabın tamamında görev ve sorumlulukları ayrıntılı olarak tartışılan kişi proje
yöneticisidir. Üst yöneticiler ve müşteriler gibi teknik olmayan kişileri ve bu kişilerin yazılım
ekibiyle çalışmalarını da proje yöneticisi koordine eder.
Proje yöneticisi, projenin sağlıklı yürütülebilmesi ve izlenebilmesi için gerekli standart
belirleme, belgeleme ve teknik altyapı seçimi gibi önemli kararları alır. Proje yöneticisinin alt
seviyedeki işlere sürekli müdahale etmesi, ayrıntılarla uğraşması mümkün ve doğru değildir.
Tecrübeniz geliştirdikçe bu göreve namzet olursunuz!
Sistem Analist
Kullanıcı ihtiyaçlarını tespit etmek, analiz etmek ve belgelemekle sorumludur.
Gerçekleştirilen yazılım prototiplerini ve sürümlerini kullanıcılara sunarak geri beslemeleri
yazılım ekibine aktarma işlemleri de sistem analistler tarafından yürütülür.
Sistem analizi yazılım geliştirme ekibindeki en önemli rollerden birisidir. Kullanıcı
ihtiyaçlarını anlamak kullanıcının iş sahasında belli ölçüde tecrübe kazanmayı
gerektirebilir.
Ara Yüz Geliştirici
Kullanıcıyla yazılım arasında ara yüz sağlayan ekranların tasarımından sorumludur. Özellikle
İnternet tabanlı yazılım geliştirme işleminde, kodlama ve kullanıcı ara yüz geliştirme şeklinde
iki temel görev belirginleşmiştir. Burada ara yüz geliştirici ekranın grafik tasarımından ve
özellikle de arayüzlerin görsel güzelliğinden sorumludur. Elbette arka plandaki kodlarla
ekranlardaki görsel işlevler bütünleşik ve tutarlı olmalıdır. Bunu da grafik tasarımcıyla
kodlayıcı ortak standartlara dayalı çalışarak sağlarlar.
Ara yüz geliştirme faaliyetleri genellikle meslek yüksekokul mezunu programcılarla
yürütülmektedir.
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
Sistem Uzmanı
Bir bilişim sisteminin sağlıklı çalışması; işletim sistemi, sunucu ve ağ altyapılarının sağlıklı
kurulmasına bağlıdır. Sistem uzmanları donanımlar üzerine işletim sistemi, uygulama
sunucusu, ağ protokolleri gibi yazılımların kurulumu, izlenmesini, en iyi performans için
ayarlanması, yedeklenmesi, sürüm geçişi gibi görevleri yaparlar. Bu uzmanlık ağ uzmanı ve
işletim istemi uzmanı gibi alt alanlara ayrılmaktadır.
Veritabanı Yöneticisi
Hemen her kurum verilerini veritabanlarında saklamaktadır. Veritabanı yöneticileri kurumsal
veritabanlarının kurulumu, en iyi çalışacak şekilde ayarlanması, çıkan problemlerin çözümü,
sistemlerin yedeklenmesi ve afet durumları için önlem alınması gibi işlemlerden sorumludur.
Verilerin önemi bu görevi kritik hale getirmektedir.
Sistem uzmanı ve veritabanı uzmanı görevleri birçok bilişim projesine hizmet verdiği ve
kurumsal süreklik için kesinlikle gerekli olduğundan çok kritiktir.
Mali kazançları aynı tecrübedeki bir yazılımcı geliştiriciden daha çok olabilir. Ancak bu
görevler daha rutin, araştırma ve kariyer imkânları daha kısıtlıdır.
Bu uzmanların sistemin daha az yoğun olduğu gece saatleri ve tatillerde sıklıkla mesai
yaptıkları da unutulmamalıdır. Sistem kesintilerine karşı telefonları 7x24 açıktır. Her an
çağrılma ihtimalinin nasıl bir psikoloji oluşturduğunu hayal ediniz!
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
Zorluklar ve Çözümleri
Bilgisayar mühendisliğinin olumlu yanları çok. Ancak her şey güllük gülistanlık değil. Doğru
meslek seçimi yapmak ancak zorlukların da farkında olmakla mümkün!
Zorlukları yenmenin ilk basamağı onların farklında olmaktır!
Bilgisayar Mühendisli rutin bir masa başı işi değildir!
Neredeyse her gün yeni bir teknolojik ürününü piyasaya çıkıyor. Bilgisayar mühendisleri
sürekli kendilerini güncellemelidir. Temel konuları çok iyi bilmek, değişime açık olmak ve
sürekli kendini geliştirmek bir Bilgisayar Mühendisinin temel ilkesi olmalıdır.
Yazılım ürünleri karmaşıktır
Yazılım, çok sayıda bileşenin ahenkli çalışmasını gerektiren bir üründür. Orta ölçekli bir
projede bile binlerce satır kod, onlarca ekran, rapor ve birden fazla teknoloji bütünleşik
çalışmalıdır (Şekil 13).
Adı
Soyadı
Sicil No
…
Ekle
Kaydet
Veritabanı
Şekil 13 Yazılım Bileşenleri arası ilişkiler
Bilgisayar Mühendisliği çok fazla alana dallanmıştır
Bilgisayar mühendisliği ve yazılım o kadar farklı alana dallanmıştır ki temel eğitim olarak ne
verileceği tartışma konusu olmaktadır. Kurumsal yazılımlar, mobil yazılımlar, oyun,
biyomedikal, yapay sinir ağları ve gömülü sistemler bilgisayar mühendisliğinin alt dallarının
sadece birkaçıdır. Bölümün adı bile; bilgisayar bilimleri(computer science), bilgisayar
mühendisliği(computer engineering), yazılım mühendisliği (software engineering) gibi farklı
şekillerde belirtilmektedir.
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
Yazılım hayata ve insana hitap eder.
İnsani ilişkilerdeki tüm zorluklar yazılıma da taşınır. Sosyal problemlerin nasıl kesin
çözümleri yoksa yazılım alanında da kullanıcı memnuniyeti doğrudan ölçülemez. Birileri
memnunken aynı ekrana diğer kullanıcılar çok kötü diyebilir (Şekil 14). Yazılım projelerinde
sürekli değişime ve son dakika taleplerine hazır olmanız gerekir.
Kanaatimce, bu ekran
çok güzel olmuş
Kanaatimce, bu ekran
güzel ama işlevsel değil
Kanaatimce, bu ekran çok
kötü olmuş
Personel
Müdürü
Yazılım Ekibi
Genel Müdür
Son Kullanıcı
Başka bir
son kullanıcı
Kanaatimce, bu ekran
daha güzel olabilir
Şekil 14 Kişisel kanaatler ve yazılım projeleri
Bilgisayar Mühendisi olursanız konu komşu ve eş dostun çöken bilgisayarı, yeni aldığı
modeminin kurulumu işlerini de yapmanız da gerekebilmektedir. Problemleri çözebilirseniz
ne ala. Çözemezsiniz mühendisliğiniz kuşku götürür!
Çalışma şartları özellikle ülkemizde ağırdır
Yazılım ürünü geliştirme süreci kolayca ölçülemez. Bu yüzden aşırı iyimser ve kısa planlama
sıklıkla görülür. Planlama hatalarını geliştirme ekibinin fazla mesai yaparak gidermesi sıklıkla
istenir. Maalesef bilgisayar mühendisliği mesai dışı çalışmanın özellikle de kurumsal yapısı
oturmamış şirketlerde sıklıkla görüldüğü bir alandır.
ZORLUKLARI YENMEK
İyi bir bilgisayar mühendisi olmak zorlukları yenmenin ilk basamağıdır.
Temel alanları çok iyi bilirseniz yenilikleri anlamanız kolaylaşır.
Kendinizi geliştirmeyi severseniz yenilikler ve yeni alanlar sizin için fırsattır.
Birlikte çalışmayı severseniz insanlarla ekip ortamında birlikte çalışmak sizi mutlu eder.
Sistemli çalışırsanız plansızlık sizi daha az etkiler.
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
Sonsöz
BİLGİSAYAR MÜHENDİSLİĞİNDE KEŞFEDİLECEK ALANLAR VE DAHA
ÖNCE YAPILMAMIŞ PROJELER SİZ GENÇLERİ BEKLİYOR .
GELİN BİRLİKTE BİLGİSAYAR MÜHENDİSLİĞİNİ KEŞFEDELİM !
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
MÜHENDİSLİK MİMARLIK FAKÜLTESİ
BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
FATİH SULTAN MEHMET VAKIF ÜNİVERSİTESİ
Kaynaklar
ACM-web: http://computingcareers.acm.org/?page_id=4
ACM-2004: Computer Engineering, 2004, Curriculum Guidelines for Undergraduate Degree
Programs in Computer Engineering
BLS-2008: Employment by industry, occupation, and percent distribution,2008 and projected 2018,
Biomedical Engineers, Bureau of labor
statistics ftp://ftp.bls.gov/pub/special.requests/ep/indocc.matrix/occ_pdf/occupations.xls
Brooks-1995: Brooks F.P., The MythicalManMonth, Essays on Software Engineering, ISBN-10:
0201835959, Addison Wesley, 1995
Drucker-2006: Drucker P.F., Klasik Drucker, Bahçeşehir Üniversitesi Yayınları, ISBN: 978-9944186-47-6, 2006
Download