Yazılım Mühendisliği

Yazılım Mühendisliği Öğrencisi

Sorular ile Yazılım Mühendisliği 1/4 [Alan Blackwell(Kembiriç Üniversitesi) ile röportaj]

Yazı Hakkında

Bu yazı serisi Türkiye’de ve diğer ülkelerde Yazılım Mühendisliği denildiğinde akla gelecek kişilere bir öğrenci olarak gönderdiğim soruların cevaplarını içermektedir.

Soru Gönderdiğim Kimseler

Cihat Altuntaş : En kaliteli Türkçe Yazılım Mühendisliği sayfasının yazarı.

Özcan Acar : Dünyanın sayılı Java Şampiyonlarından birisi ayrıca www.btsoru.com ’un sahibi.

(okumak için tıklayınız)

Dr A.F. Blackwell (Kembiriç Üniversitesi’nde öğretim görevlisi bir hocamız, kendisi İnsan Bilgisayar İletişimi ile Yazılım Mühendisliği hakkında dersler veriyor

(şu andaki röportaj)

Paul Paulson (Yurtdışında Yazılım Mühendisliği yapan birisi.)

(okumak için tıklayınız)

Bu yazıda kiminle röportaj yapıcaz

Bu yazıda Kembiriç Üniversitesi’nde Yazılım Mühendisliği hakkında dersler veren Alan Blackwell isimli bir hocamıza gönderdiğim sorulara verdiği cevapları okuyacağız. Kendisinin kişisel internet adresinden( http://www.cl.cam.ac.uk/~afb21/ ) daha fazla bilgileri alabilirsiniz.

Cevaplar hakkında bir husus daha

Cevapların acizane Türkçe’ye çevirmeye gayret edeceğim ayrıca yazının en alt kısmında İngilizce metininide bulabilirsiniz.

Sorular ve Cevapları

1- Kendinizi ve Yazılım Mühendisliği ile olan geçmişinizi kısaca anlatabilir misiniz?

Yeni Zelanda Uzman Mühendislik okulunda mühendislik alanında eğitim aldım. Hem mühendislik diploması hemde aynı okul tarafından yönetilen kurulla uzman mühendislik gereksinimlerini tamamladım. İş hayatım boyunca,daha çok büyük sistemlerin yazılım bileşenlerinin geliştirilmesi ile meşgul oldum. Bununla birlikte, bir çok donanım geliştirme süreçlerinin mekanik ve elektronik sahasında da bulundum. Son birkaç yılımı, mühendislik ile alakalı yazılımcıların daha verimli yazılımlar meydana getirmesi için kullandıkları araçların geliştirilmesinde harcadım. Şu anda Kembiriç Üniversitesinde, Bilimlerarası Tasarım bölümünde doçentlik yapmaktayın ve tasarım ve mühendislik hakkında Kembiriç Üniversitesi Bilgisayar Mühendisliği Bölümüne bağlı dersler vermekteyim.

2- Sizce mühendisliğin tanımı nedir? 

Mühendislik, tasarım problemlerine yöntemli(sistematik) kaideler ile yaklaşılmasıdır. Bu yöntemli(sistematik) yaklaşım genellikle iş sahasında gerçekleşmektedir.

3- Yazılım Mühendisliği’ndeki “Mühendislik” kelimesinin sebebi nedir? Moda olarak herseyin sonuna”mühendislik” kelimesi eklemekten mi geliyor, yoksa gerçekten “Mühendislik” ile alakası var mi? 

Yazılım Mühendiliği tabiri ilk olarak 1960’lı yıllarda kullanılmaya başlandı ve o tarihden bugüne kullanılmaktadır. Ayrıca bu tarih “Bilgisayar” kelimesinin yanında “Bilimleri” tabirinin de kullanılmasına da çok yakındır. Yazılımın yanına Mühendislik koymak elbette sadece bir modadan ibaret değildir, Yazılım Mühendisliği başlı başına bir meslek dalıdır.

Eski zamanda, mühendislik eğitimi verenler ve bu sahada çalışanlar, yazılım geliştirmenin, mühendislik tabirini hakkettiğini kabul etmekte biraz gönülsüzlermiş. Bunu teknik alandaki tutuculuk olarak algılayabiliriz. Ayrıca yöntemlilik(sistematik) ve ehillilik(profesyonellik) gibi mühendislik kavramlarının, o zamanlardaki Yazılım Pazarında kabul edilmesi çok yaygın değildi.

4- Yazılım Mühendisi, sadece uml bilen programcı mıdır ? Eğer değilse tam olarak kimdir ve geliştirilen projelerde nerededir? 

Eğer geliştirilen projenin kendisi mühendislik ile ilgili ise, projenin tasarım ekibindekilerin bir çoğunun mühendislik vasıflarına sahip olması gerekir. Bu kişiler tasarımın genel yapılarını tasarlayacak veya değiştirecek kimseler olacaktırlar. Eğer roller projedeki bilgilerin yönetimi, maliyet hesaplama, sözleşmeler veya kullanıcı profili araştırma gibi daha az mühendislik ile ilgili ise bir yazılım mühendisinin hem modelleme hem de programlama araçlarına aşina olmasını beklerim. Fakat sürekli değişen teknolojide, belli araçları belirtmekten kaçınıyorum.(İş hayatımın büyük bir kısmında,  uml mevcut değildi ve uml’nin yazılım mühendisliği alanı için büyük bir değişiklik olduğuna inanmıyorum.)

5- Yazılım Mühendisinin bilmesi gereken 5 önemli şey nedir? 

  1. Birçok farklı alan yayılmış teknolojilerin yapabileceklerinden haberdar olmak
  2. Gösterilen sorunlarda, çözüme yönelik(analitik) bakış açısına sahip olunması
  3. Proje gereksinimleri ile maliyeti arasındaki değiş-tokuşu iyi yapabilmek
  4. Soyut kavramları gerçek hayata geçirebilme tekniğine sahip olmak
  5. Kalite kontrolünde katı  olmak

6- Sizce Yazılım Mühendisliği alanında kitapların dünyası ile gerçek dünya arasında farklar var mıdır? 

Evet.  Teknolojinin fikri kısmını insanlara yaymaya çalışan, teorisyen kitap yazarları ile iş dünyası arasında büyük farklar var. İş dünyasında uzmanlaşan kimselerin çok azı kitap yazma eğilimine(veya yeteneğine) sahip. Diğer yetenekli fakat kitap yazamayanlar, yeteneklerini, kurumsallaştırılmış bir eğitim metodu yerine genellikle usta-çırak ilişkisi ile aktarıyor. Fakat buna rağmen üniversitede gerçek problemlerin soyut örnekleri ile eğitime hala ihtiyaç çok fazla. Özellikle de yazılım mühendisliğinde usta( tasarımın kalitesini kişisel sorumluluğu olarak hisseden kimse) olmak için.

8- Üniversiteyi içerisi, iş hayatını da dışarısı olarak kabul ederseniz,dısarıda yani sektörde işler nasıl yürüyor? Hala içeride bulunan oğrenciler için, dışarı çıkmadan önce neler yapmalarını tavsiye ederseniz?

Bence bir mühendislik bölümü öğrencisi “dışarıdaki” hayata erişmesi için her türlü fırsata sahip olmalı. Tabi bunu gerçekleştirmek stajlar ile,  öğrenciyi işe yerleştirmek ile veya öğrencinin aldığı dersin bir bölümünü sınıfta, bir bölümü iş yerinde bulunarak müşteriye proje geliştirilmesini sağlayarak yapılması mümkün(Benim görüşüme göre). Eğer öğrencilere bu gibi olanaklar sağlanmıyorlarsa, kendilerinin bir şirket kurmalarını veya gönüllü işlerde çalışmalarını tavsiye ederim. Son olarak öğrencilerin, üniversitedeki dersleri ile gerçek dünyadaki projeler arasında bağlantı kurmalarının çok önemli olduğunu söyleyebilirim.

Soru ve cevapların asıl metni  

1- Could you introduce briefly yourself and your relationship with Software Engineering field.

I am a trained professional engineer, with both an engineering degree and a professional practice qualification administered by the Institute of Professional Engineers of New Zealand. For most of my professional life, the majority of my design responsibility related to software components of a system. However, I did also specify and design hardware components (both electronic and mechanical) when necessary. I spent some years leading a product development team creating tools for software developers to use in engineering contexts. I am now Reader in Interdisciplinary Design at the University of Cambridge, where I teach topics related to design and engineering as components of the Cambridge Computer Science degree.

2- According to you, what is meaning of engineering?

Engineering is the application of systematic principles to design problems, usually in a professional context

3- What is the reason of “Engineering” word behind of the “Software” ? Does it seriously related with engineering or it is just for trend?

The term software engineering was first proposed in the 1960’s, and has been used ever since. Given that the term “computer science” was introduced not long before that, Software Engineering is certainly not just a trend – it has existed nearly as long as the profession itself. 

For some decades, engineering educators and professionals were reluctant to accept that software development deserved to be called engineering. This was partly technical conservatism, but partly a perception that the standards of systematicity and professionalism in the software industry were too low to deserve recognition as an engineering discipline. That particular debate is now pretty much resolved – many engineering schools teach software as a discipline alongside mechanical, electrical and other traditional engineering disciplines.

4-Could you describe who is software engineer in projects ? Is he a person who knows uml and a any programming language or he is more than that? 

A software engineer can also be a woman! In most engineering projects, most members of the design team should have engineering qualifications, if they are responsible for specifying or modifying aspects of the design. Roles that are less engineering-like include repository management, budgeting, contract negotiation, and user research. I would expect a software engineer to be familiar both with modelling and programming tools, but given the pace of change of technology, I’m reluctant to specify any particular tool (the majority of my professional career predated the introduction of UML, and I don’t believe that UML in itself resulted in a qualitative change for the discipline).

5- What is the five things which are a software engineer must know? 

Capabilities of the range of currently available technologies.
Analytic approaches to representing a problem.
Trade-off between requirements and cost.
Construction techniques at a wide range of scales of abstraction.
Rigorous methods for quality assurance.

6- According to you, are there any difference between book’s world and real world in Software Engineering field? 

Yes. Most authors of such books are theoreticians who wish to promote particular conceptions of technology that may not be closely related to professional practice. Few professional practitioners have the inclination (or skills) to write such books. As with other design professions, the most effective transfer of professional skill seems to be via apprenticeship in professional practice, rather than solely through institutionalised education. Nevertheless, the need for software engineers to be highly competent in forming abstract representations of problems means that formal university education is still an important requirement for a senior software engineer (one who takes personal responsibility for an overall design).

7- If we consider university is “inside” and work is “outside”. How works is going at outside and what would you suggest for students before go “outside”? 

I think engineering students should have every possible opportunity to engage with the “outside” while still having access to the intellectual resources of the university. This can be achieved via industry placements or internships, “sandwich” courses, student design projects with external clients (my own approach) and other techniques. If students are in an environment where the university does not offer support for any of these activities, I would recommend that students start their own company, or perhaps design a product for a charity or humanitarian organisation, while they are still studying. If possible, the advice of their tutors and professors should be sought, in order to make the connections between such projects and academic course content.

Reklamlar

One comment on “Sorular ile Yazılım Mühendisliği 1/4 [Alan Blackwell(Kembiriç Üniversitesi) ile röportaj]

  1. Geri bildirim: Kerem Vatandas – Software Researcher | Yazılım Mühendisliği Röportaj 1

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

Information

This entry was posted on Temmuz 7, 2012 by in Yazılım Mühendisliği and tagged , , .
%d blogcu bunu beğendi: