Forum Kahkaha
Sitemizden yararlanmak ve bu ailenin bir parçası olabilmek için lütfen üye olunuz!
yazılım mühendisliği Uyeols10


Join the forum, it's quick and easy

Forum Kahkaha
Sitemizden yararlanmak ve bu ailenin bir parçası olabilmek için lütfen üye olunuz!
yazılım mühendisliği Uyeols10
Forum Kahkaha
Would you like to react to this message? Create an account in a few clicks or log in to continue.

yazılım mühendisliği

Aşağa gitmek

yazılım mühendisliği Empty yazılım mühendisliği

Mesaj  Usta C.tesi Ekim 03, 2009 2:40 pm

Yazılım Mühendisliği

Pek çoğumuz pek çok konu hakkında uzman olmamız gerekliliğini hissederiz. Hem Delphi , hem Assembly , hem Cobol , hem C, hem C++, hem Visual C, Hem Cgi, hem Asp, hem Java hem perl vs. Bizden tüm bu dilleri bilmemiz beklenir. Ayrıca Çok iyi bir sistem analisti çok iyi bir dökümantasyon uzmanı,kusursuz bir grafiker, Animasyoncu, Prodüksiyoncu olmamız istenir. Üstüne üslük kıt kanaat maaşlara talim ederiz. Bunların hepsini aslında bilmemiz olanaksız. Bunların hepsini çok iyi biliyorum diyen kişi yalan söylüyordur. Bunları çok iyi bilmek ve kavramak için; en az 20 yılınızı bunlara ayırmanız gerekir. Hiç kimsenin bunları öğrenmek için açıktan 20 yılı olmadığına göre herkesin kendini tek bir dil yada konu üzerine kendini geliştirmesi sanırım doğru olacaktır. Fakat piyasanın durumunu da göz önüne alırsak tek bir konuda uzman olmak sizin için getiriden çok götürü gibi görünüyor.

Eğer Yazılımcı Derneği kurulursa Türk programcılığın kalitesini arttırmak mümkün. Böylece tek bir dil üzerine uzman olma şartı gelecek ve yukarıda saydığım tüm niteliklere sahip olma zorunluluğunuz ortadan kalkacaktır.

Programcılığın ve tasarımcılığın tek bir dilde uzman olma yetisine doğru gitmesi bir gerekliliği de ortaya koyuyor. Eğitim. Uzman programcı nasıl bir eğitim alır? Hepimiz şu yada bu şekilde 2 yıl bilgisayar programcığı eğitimi aldık. Hanginize yetti ki bu eğitim. Her dilden biraz sonrasını kendin geliştir. Bence Tüm bilgisayar programcılığı ve Bilgisayar Mühendisliği ortadan kaldırılarak yepyeni bir Eğitim anlayışı getirilmeli. YAZILIM MÜHENDİSLİĞİ.

Nedir Bu Yazılım Mühendisliği? Yazılım mühendisliği 6 seneye yayılmış bir Eğitim programıdır. Bu program 2 bölüme ayrılır:

Temel Yazılımcılık
Uzman Yazılımcılık
Temel yazılımcılık: Temel yazılımcılığın süresi 4 Dönemdir. Bu dört dönem içerisinde yazılımcı adayı bilgisayar yazılımcılığı hakkında temel bilgiler edinir. Algoritma geliştirme, sistem analizi, Veri tabanı analizi, Yazılım dilleri hakkında genel bilgiler.... Yani bir bilgisayar programcısı 2 yıl içerisinde ne görüyorsa o. Bu iki yıl sonunda Yazılım mühendisi adayı hangi konu hakkında kendini geliştireceğine karar verir. Seçeceği alanlar:

C ------ C++ ----- Visual C ---- Borland C++ Builder
Assembly (8/16/32)
Sistem analizi
Veri Tabanı analizi
Delphi ----- Pascal----Delphi400
Java --- JavaScript---- Perl ---- Web Tasarım --- CQI --- CGI ---ClientSERVER
Grafik
Animasyon
Projeksiyon --Promasyon --- Prodüksiyon
Cobol
AS400 ---- RPG400
Ağ yönetimi
*****er (Bildiğiniz şekilde değil)
Hacker (Bildiğiniz şekilde değil)

Yukarıda gördüğünüz terimlere ve dillere çoğunuz pek yabancı değilsiniz. Fakat Şu Hacker ve *****er kavramlarını açıklayayım dedim.

*****er: *****er bildiğiniz anlamda bir programı kıran kişi anlamına gelmez.Aslında bir programın Kullanıcıların erişimini sınırlamak için oluşturulan sistemleri test eder ve ortaya çıkan sonuçlar doğrultusunda programa ek şifreleme sitemleri geliştiren bir sektördür. Internette yayınlanan ***** ile uzaktan yakından bir alakası yoktur.

Hacker: Bildiğiniz Hacker ile benim size anlatacağım Hacker aslında aynı işi yapar. İkisi de kurulmuş bir sistemi hesaplanmamış çevresel değişikliklerle DEAD LOCK konumuna getirmeye çalışır. Fakat benim size bahsettiğim Hacker bu Dead Lock konumundan sizi nasıl kurtaracağını da Hesaplamak ve planlamak zorundadır. Sistem analistinin oluşturduğu sisteme sanal saldırılar ve çevresel değişikliklerle dener. Dahasonra bunu sistem analistine bir rapor halinde sunar.

Uzman Yazılımcılık: Yazılım Mühendisi adayı yukarıda belirtilen konulardan herhangi birini seçer. Daha sonra bu konu hakkında ayrıntılı bilgi edinirler ve uzmanlaşırlar. Bunu şu şekilde düşünebilirsiniz. Mezun olan bir doktorun daha sonra nörolojide uzmanlaşması gibi. Bu uzmanlaşmanın en büyük avantajı sadece kendi konusunda uzmanlaşır. Böylece üretilen işin kalitesi gün geçtikçe artar. Uzman yazılımcılar yetişirse diğer sektörlerden de yazılım sektörüne göç biter. Çünkü yazılım yaptırmak isteyen herkes uzman yazılımcı arayacaktır. Böylece hem yazılım sektöründe iyi maaşla çalışan personel sayısı artacak hem de takım çalışması yapan yazılım mühendisleri daha kusursuz programlar ortaya çıkaracaktır. Orta büyüklükte bir Yazılım şirketi En az şu Yazılımcıları bulundurmak zorunda kalacak.

Sistem Analisti Yazılım Mühendisi
Hacker Yazılım Mühendisi
*****er Yazılım Mühendisi
Algoritm Yazılım Mühendisi
Veri Tabanı Analisti Yazılım Mühendisi
Grafiker Yazılım Mühendisi
Animasyon Yazılım Mühendisi
Assembly Yazılım Mühendisi
Herhangi bir dil kullanan yazılım Mühendisi
Normalde olsaydı sadece bir programcı ile tüm işlerini görebilirlerdi. Fakat bir proje geliştirmek için birden çok kişini kendi uzmanlık alanında ortaklaşa çalışması gerekir. Bu da daha fazla iş daha profesyonel yaklaşım demektir.

Ayrıca Herhangi bir Fabrika yada Özel sektör için yazılacak program için Yazılım Mühendisliği bürosu da açılabilir. Böylece özelleşmiş sorulara yerinde çözüm getirilebilir.

Günümüzde yazılım sistemleri, bankacılıktan otomotiv sanayisine, sağlık bilgi sistemlerinden şirket yönetimine, telekomünikasyon sistemlerinden hava taşımacılığına, çok geniş alanlarda kullanılan bilgisayar sistemlerinin çok önemli ve kritik bir parçasını oluşturuyor. Yazılım Mühendisliği 1968 yılında NATO tarafından gerçekleştirilen bir konferans esnasında ortaya çıkan yeni bir kavram ve yeni bir mühendislik alanı olup, yazılım sistemlerinin mühendislik prensipleri çerçevesinde tasarımı, üretimi ve işletilmesini hedeflemektedir. Bilgisayar sistemleri artık günlük hayatın her alanında yoğun ve etkin bir şekilde kullanılmakta olduğundan, Yazılım Mühendisliği tüm disiplinlerde uygulamaları olan bir alan.

Yazılımın günümüzde hızla artan önemi, tüm dünyada yazılım mühendisliği disiplinindeki çalışmaların yoğunlaşmasına neden olmuştur. Yazılım mühendisliği disiplini 1968 yıllarından bu yana oldukça gelişme kaydetmiş; yazılım geliştirme metodolojileri, programlama paradigmaları, programlama dilleri ve çeşitli araçların geliştirilmesiyle hayli ilerleme sarfetmiştir. Bu gelişime , IEEE (IEEE Computer Society) ve ACM (Association for Computing Machinery) gibi mesleki kuruluşların önemli etkisi olmuştur. Ayrıca bu kuruluşlar son yıllarda, yazılım mühendisliği çekirdek bilgisinin tanımlanması ve bu bilgilerle uyumlu yazılım mühendisliği eğitim programlarının geliştirilmesine yönelik çalışmalar da yapmaktadır. Bu bağlamda, diğer mühendislik dallarında olduğu gibi yazılım mühendisliği için de ayrı eğitim programlarının oluşturulması gündeme gelmiştir. Yazılım mühendisliği disiplinin olgunlaşma sürecinde yazılım mühendisliği eğitimi özel bir önem kazanmıştır. Özel bir önem kazanan bu eğitim programı için özel projelere başlanmıştır.
Genelde kısaltılmış adlarıyla karşımıza çıkabilecek olan bu projeler;

SWEBOK(Software Engineering Body of Knowledge) : Yazılım mühendisliği çekirdek bilgisinin tanımlanması.

SWCEPP(Software Engineering Code of Ethics and Professional Practice) : Yazılım mühendisliği etiklerinin tanımlanması.

SWEEP (Software Engineering Education Project) : SWEBOK ile uyumlu olarak örnek bir eğitim programı tanımlanması, olarak sıralanmaktadır.

Bu projeler sıralandıktan sonra birlikte çalışan IEEE ve ACM yazılım mühendisliği eğitimlerinin mufredatını tanımlamaya yönelik bir dizi çalımalar yapmış ve bu konu için araştırmalar yapması, gereklilikleri belirlemesi için bir kurul kurmuştur. Bu kurulun yaptığı araştırmalar ve ulaştığı bulgular neticesinde bir yazılım mühendisliği eğitminin müfredat açısından amaçları dolayısıyla bir bireye kazandırması amaçlanan yetenekler;

- Kullanıcı ihtiyaçlarını analiz ederek, uygun çözümlere tasarlayabilmek,
- Kullanıcının belirlediği fakat genelde sürtüşmelere yol açan zaman, maliyet, kullanılabilirlik noktalarında uzlaşma sağlayabilmek,
- Mühendislik yaklaşımlarını kullanarken etik, sosyal, yasal ve ekonomik ilgileri bütünleştirecek uygun çözümler tasarlamak.
- Yazılım tasarımı, geliştirilmesi, gerçekleştirimi ve doğrulanması için bir temel sağlayan mevcut teorileri, modelleri ve teknikleri anlamak ve uygulayabilmek.
- Yazılım geliştirme ortamında etkin olarak çalışmak, gerekli olduğunda liderlik yapabilmek ve kullanıcılarla iyi iletişim kurabilmek bir diğer deyişle proje yönetimi becerisi.
- İlgili alanlardaki gelişmeleri takip edip, uygulayabilmek

şeklinde sıralanmıştır. Sonuç olarak, amaçlardan da anlaşılacağı üzere Yazılım Mühendisliği eğitiminde teknik bilgi ve beceriler yanında hukuki kavramlar, etik değerler, takım çalışması,proje yönetimi gibi soyut fakat önemli olan kavramların da kişiye kazandırılması amaçlanmıştır.

Kurulun belirledği amaçlar doğrultusunda belirlenen Yazılım Mühendisliği Eğitimi Bilgi Alanlarını geniş bir çeerçevede inceleyelim;

Temel Bilgiler
Yazılım mühendisliğinin temelleri, yazılım mühendisliğinin ürettiği ürünlerin niteliklerini anlatan teorik ve bilimsel , matematiksel temellerden ve öngörülebilir sonuçlar üreten ana ilkelerden oluşur. Buradaki ana nokta, kaynakları belirlenmiş bir amaca dönüştürmek için mühendislik tasarımı ve mühendislik biliminin uygulanarak en uygun modellemenin yapılabilmesidir.

Profesyonel Uygulama
Teknik beceri gelişiminden çok düşünce gelişimini hedefleyen profesyonel uygulama, yazılım mühendislerinin, profesyonel ve etiğe uygun olarak uygulamam yapabilmeleri için sahip olmaları gereken bilgi, beceri ve davranışlarla ilgilidir.

İhtiyaçları Belirleme
Kullanıcı ihtiyaçlarını mevcut teknolojilerle en uyumlu biçimde bağdaştırarak çözüm tasarlayabilme.

Yazılım Tasarım
Adından da anlaşılacağı üzere teknikler, stratejiler, gösterimler ve desenlerle ilgilidir. Tasarım, kaynaklar, performans, güvenilirlik ve güvenlik gibi kısıtlamalar gözönüne alınarak işlevsel gereksinimlere uygun olmalıdır. Ayrıca, yazılım bileşenleri arasındaki içsel arayüzler, mimari tasarım, veri tasarımı, kullanıcı arayüzü tasarımı, tasarım araçları ve tasarımın değerlendirilmesi de bu alanın kapsamındadır.

Yazılım Oluşturma
Tasarımı belirlenmiş yazılımın dökümantasyonu aşamasıdır. İşleyiş, teknik vs. açısından bilgileri içerir.

Yazılım Gelişimi
Yazılımın kullanıma başlanmasından sonra yazılımın desteklenmesi sürecini kapsar. Yazılımın eksiklerinin giderilmesi, test edilmesi,iyileştirilmesi gibi aşamaları içeren bu aşama maliyet gerektiren önemli bir aşamadır.

Yazılım Kalitesi
Yazılımın kalite nitelikleri, kullanılabilirlik, güvenilebilirlik, güvenlik, bakıma uygunluk, esneklik, etkinlik ve performans gibi kriterleri kapsamaktadır.

Yazılım Yönetimi
Yazılımın kullanımından sonra etkin bir şekilde devam edebilmesi, varlığını sürdürebilmesi için uygulama alanındaki tüm aşamaların izlenmesi ve kontrol edilmesini kapsar. Yazılım geliştirme projelerinin başarısı, farklı kollardaki işlerin koordinasyonu, yazılım versiyonlarının bakımı, kaynakların gerekli oldukları zaman var olabilmesi, projedeki işlerin uygun olarak bölünebilmesi, iletişimin kolaylaşması için kritik önemdedir.

Yazılım mühendisliğinin gerektirdiği nitelikler olarak belirtebileceğimiz bu tanımlar ülkemizde de yer alan lisans ve yüksek lisans yazılım mühendisliği eğitimlerinde müfredatın belirlenmesinde önemli bir rol oynamaktadır.

Ben de bulduğum bir makaleyi paylaşmak istedim bu konu altında.
http://www.csharpnedir.com/makalegoster.asp?MId=230
Usta
Usta
[scroll]Yönetmen[/scroll]
[scroll]Yönetmen[/scroll]

Yaş : 27
Nerden : Hemen Karşıdan
Mesaj Sayısı : 424

Tecrube Puanı
Karizma Derecesi:
yazılım mühendisliği Imgleft20000/20000yazılım mühendisliği Emptybarbleue  (20000/20000)
Tecrube Puanı:
yazılım mühendisliği Imgleft20000/20000yazılım mühendisliği Emptybarbleue  (20000/20000)

http://forumkahkaha.yetkinforum.com

Sayfa başına dön Aşağa gitmek

Sayfa başına dön

- Similar topics

 
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz