Evaluation of technical skills in software engineering course projects
* Author to whom correspondence should be addressed.
Sigma Journal of Engineering and Natural Sciences 2013, Vol. 31, Issue 4, pp. 595-603; doi.org/10.62051/ytu.sigma-journal-of-engineering-and-natural-sciences-evaluation-of-technical-skills-in-software-engineering-course-projects
Abstract
Keywords: Software engineering; software engineering education; technical skills; soft skills.
1. Gi̇ri̇ş
Yazılımın hayatımızdaki artan önemi ve ülke ekonomilerine etkileri, yazılım mühendisliğine olan ilgiyi hem akademik çevrelerde hem de endüstride artırmıştır. Dünyada birçok üniversitede, Yazılım Mühendisliği Lisans Programları oluşturulmuştur [1]. Günümüzde yazılımlarda karşılaşılan problemler, yazılım mühendisliği eğitiminin önemini vurgulamaktadır. Bu nedenle, yazılım problemlerinin çözümü ve iyileştirmeler için, gelecekteki yazılım mühendislerinin eğitimine odaklanılması gerektiği vurgulanmaktadır [2,3]. Yazılım mühendisliği eğitimi, öğrenciler mezun olmadan ve önemli tasarım ve uygulama sorumluluklara almadan önce mutlaka bazı pratik deneyimleri kazandırmalıdır [4]. 1995 yılında ABD’de yapılan çalışmada yazılım projelerinin ortalama %16.2’sinin başarılı, %31.1’inin tamamlanamadan iptal edildiğini, %52.7’si ise değiştirilmiştir. Tamamlanan projelerin ise yarıdan fazlasının tahmin edilen bütçenin %189 üzerinde bir maliyet ile tamamlandığını göstermektedir [5]. 1999 yılında yapılan araştırmada bu projelerin yaklaşık %75’inin ya zamanında tamamlanamadığını ya da iptal edildiğini göstermektedir [6]. 2009 yılında aynı grup tarafından yapılan çalışmada, başarılı projelerin ortalaması %32’ye çıkmasına rağmen halen çok düşük seviyededir. Başarısız projelerin oranı %24, değiştirilmiş projelerin oranı ise %44'tür [7]. 2013 yılında yapılan çalışmada öğrenciler yaptıkları projeleri değerlendirilmiş ve sadece %31’i projesini başarılı bulmuştur [8]. Projelerin iyi planlanamaması kuruma yüklü bir maliyet getirmekte ve iş kaybına yol açmaktadır. Yazılımda yaşanan başarısızlık endüstriler için büyük bir kayıptır. Yazılım endüstrisi, yazılım mühendisleri mezunlarının çeşitli konularda hazır olmadıkları görüşündedirler [9, 10]. Yazılım mühendisliği eğitimi söz konusu olduğunda, endüstrinin ihtiyaçları ve üniversitenin sundukları arasında bir boşluk vardır [11]. Bu boşluğun sebebi endüstrinin, gereksinimleri karşılamayan mezunlar yetiştirildiğini iddia etmesidir [12]. Birçok çalışmada bu boşluğun kapatılması için endüstriler ile üniversitelerin işbirliği yaparak ortak proje yürütmeleri önermiştir [11, 13, 14]. Bu projeler ya sadece endüstrilerde gerçekleştirilen projelerin taklidi olarak gerçekleştirilmekte [15, 16], ya da [13, 14][17-21] çalışmalarda olduğu gibi gerçek dünyadan projeler olabilir. Bu çalışmada değerlendirmeye aldığımız derslerde projeler, endüstrilerde gerçekleştirilen projelerin taklidi olarak gerçekleştirilmektedir. Georgetown Üniversitesinde gerçekleştirilen iki farklı yazılım mühendisliği dersindeki projelerden birinde bireysel çalışma diğerinde ise ekip çalışması yapılarak öğrenciler gözlemlenmiştir. Yazılım mühendisliği derslerindeki bu pratik yaklaşım ile yazılım mühendisliği lisans öğrencilerine teknik yazılım mühendisliği prensiplerini öğretmek kadar işbirliğine dayalı becerileri de öğretmek hedeflenmiştir [22]. Diğer bir çalışmada; bilgi teknolojisi şirketlerinden birinin yazılım geliştirme laboratuvarında üniversite çalışanları, öğrenciler ve laboratuvar çalışanları bir araya gelerek birlikte gerçek proje üzerinde çalışmışlardır. Gözlemler sonucunda işbirliği zayıf gruplar belirlendikten sonra zayıf olanlar iyileştirilebilmek için seçilmiştir [13]. Başka bir çalışmada ise Microsoft firmasında yeni işe başlayan 8 geliştirici seçilerek bunlara programlama, hata üzerinde çalışma, test, proje yönetimi, dokümantasyon ve iletişim gibi görevler verilerek gözlemlemişlerdir. Sonuç olarak yeni üniversite mezunlarının ilk yazılım geliştirme işlerine başladıklarında temeli, zayıf iletişim becerisi ve sosyal naiflikten kaynaklanan birçok problem yaşadıkları gözlemlenmiştir [23]. Bu çalışmanın amacı; derslerde gerçekleştirilen projelerde öğrencilerin yetersiz oldukları yetenekleri tespit edip bunları iyileştirmektir. Çalışmanın 2. bölümünde malzeme ve yöntem, 3. bölümünde analiz ve bulgular, 4. bölümünde ise sonuç ve gelecek çalışmalar sunulmaktadır.
Evaluation of Technical Skills in Software Engineering … Sigma 31, 595-603, 2013
2.1. Anketler
Yapılan anketlere Yıldız Teknik Üniversitesi, Bilgisayar mühendisliği bölümü, Sistem Analizi ve Tasarımı dersinden 86 öğrenci, Yazılım Mühendisliği dersinden 70 öğrenci ve Namık Kemal Üniversitesi, Bilgisayar mühendisliği bölümü, Çevik Yazılım Geliştirme dersinden 33 öğrenci yani toplamda 189 öğrenci katılmıştır. Projedeki gruplar derslere göre değişmekte olup 2 ile 5 arasındadır. Önerilen proje konuları ve grup arkadaşları öğrenciler tarafından belirlenmektedir. Öğrencilere yapılan bu anketler, ders projeleriyle ilgili olup 20’şer sorudan oluşmaktadır. Bu anket sorularının bir kısmı öğrencilerin sosyal yeteneklerini (ekip iletişimi, dokümantasyon, süre kısıtlılığı vb.) ölçen sorulardan oluşurken bir kısmı da teknik yeteneklerini (diyagramların kullanımları) ölçen sorulardan oluşmaktadır. Derslere ait örnek anket soruları Çizelge 1’de gösterilmektedir. Çizelge 1. Örnek anket soruları
Si̇stem Anali̇zi̇ VE Tasarimi Sorulari
Varlık İlişki, Veri Akış ve Yapı Diyagramlarından uygulama süresince yararlanıldı mı? Veri tabanı oluşturulurken varlık ilişki diyagramından yararlandınız mı? Veri akış diyagramında tasarladığınız proje ile geliştirdiğiniz projenin varlık, modül ilişkileri ve veri akışları ne ölçüde paraleldir?
Yazilim Mühendi̇sli̇ği̇ Sorulari
Aşağıdaki diyagramlardan hangisi yazılım süreçlerinde ilk oluşturduğunuz diyagramdır? Ardışıl ve sınıf diyagramını projenin hangi aşamasında kullandınız? Aşağıdaki diyagramlardan hangisi modelleme ve tasarımı ifade etmek için daha faydalıdır?
Çevi̇k Yazilim Geli̇şti̇rme Sorulari
Daha önceki projelerinizi çevik yöntemler ile kıyasladığında aşağıdakilerden hangisi sizin için daha baskın bir farktır? Test güdümlü yaklaşımı projenizde ne oranda kullandınız? Kullanıcı senaryosu ve sınıf diyagramlarını projenin hangi aşamasında kullandınız?
Ortak Anket Sorulari
Proje sonunda elde ettiğiniz ürünü nasıl değerlendiriyorsunuz? Proje içi ekip uyumunuz ne ölçüdeydi? Proje sonunda elde ettiğiniz ürüne müşteri gözünden bakarsanız nasıl değerlendirirsiniz?
2.2. Yöntem
Öncelikle anket kağıtları elektronik ortama aktarılmıştır. Anket sorularına cevap veren öğrencilerin bir kısmı sorulara cevap vermemiş veya bir soruya birden fazla cevap vermiş olabilir bu nedenle sorulardan çıkarım yapılabilmesi için anket verilerine ön işlem adımlarının uygulaması şarttır. Öğrencilerin anket sorularına cevap vermemesi durumunda ilgili sorulara cevap atanması kayıp değer yerleştirme (Missing Value Replacement) işlemine göre yapılmıştır. Kayıp değer yerleştirme yaklaşımına göre cevabı boş olan soruya cevap olarak ilgili soru için en çok cevaplanan şıkkın ataması gerçekleştirilmiştir. Aynı işlem bir soruya birden fazla cevap verilmiş sorular için de gerçeklenmiştir ve kayıp değer yerleştirme işlemiyle ön işlem adımı tamamlanmıştır. Daha sonra verilerin frekans analizi yapılarak sonuçlar bölüm 4’de verilmiştir.
3. Anali̇z VE Bulgular
Sistem Analizi ve Tasarımı, Yazılım Mühendisliği ve Çevik Yazılım Geliştirme ders anketlerindeki teknik yetenek soruları değerlendirilmiştir. Her derste kullanılan diyagramlar, metotlar ve yöntemler farklı olduğu için teknik yetenek soruları ders bazında analiz edilmiştir.
3.1. Sistem Analizi ve Tasarımı Ders Projelerinin Değerlendirilmesi
Sistem Analizi ve Tasarımı ders projesinde öğrencilerin Varlık ilişki, Veri akış ve Yapı diyagramlarından uygulama süresince yararlanılma yüzdeleri Şekil 1’de verilmiştir. Veri akış diyagramları ve Varlık ilişki diyagramları yazılım mühendisliğinin ana gösterimleridir. Yazılım mühendisleri bu diyagramları bilgi sistemini anlamak, geliştirmek ve değerlendirmek için kullanırlar [24]. Bu nedenle de bu diyagramlar projenin büyük bir kısmında uygulanmaktadır. Anket sorularına verilen cevaplar değerlendirildiğinde öğrencilerin %71’i projesinde Veri akış, Varlık ilişki ve Yapı diyagramlarından yararlanmış, %23’ ü kısmen yaralanmış ve %6’sı bu diyagramlardan yaralanmamıştır. Yani derste uygulanması istenilen diyagramlardan yararlanmayan öğrenciler sadece %6 oranındadır.
Şekil 1. Varlık ilişki, veri akış ve yapı diyagramlarından uygulama süresince yararlanma grafiği Sistem Analizi ve Tasarımı ders projesinde öğrencilerin veri tabanı oluştururken Varlık ilişki diyagramından yararlanma yüzdeleri Şekil 2’de verilmiştir. Öğrencilerin verdikleri cevaplar değerlendirildiğinde öğrencilerin sadece %10’u projesinde veri tabanı oluştururken varlık ilişki diyagramından yararlanmamıştır. Nitekim veri tabanı oluşturulurken çoğunlukla kullanılan diyagram varlık ilişki diyagramıdır [25].
Şekil 2. Veri tabanı oluştururken varlık ilişki diyagramından yararlanma grafiği
Evaluation of Technical Skills in Software Engineering … Sigma 31, 595-603, 2013
3.2. Yazılım Mühendisliği Ders Projelerinin Değerlendirilmesi
Yazılım Mühendisliği ders projesinde öğrencilerin yazılım süreçlerinde ilk oluşturdukları diyagramların yüzdeleri Şekil 3’de verilmiştir. Bir yazılım mühendisinin yaptığı ilk şey kullanıcı senaryosu diyagramlarını çizmektir [26]. Ayrıca kitabın yazarı işinde ilk olarak kullanıcı senaryosu diyagramlarını oluşturduğunu belirterek, kullanıcı senaryosu diyagramlarının kullanıcılara yardımcı olduğunu ortaya çıkarmıştır [27]. Veriler değerlendirildiğinde öğrencilerin çoğunluğu yazılım süreçlerinde kullanıcı senaryosu diyagramları kullanmıştır.
Şekil 3. Yazılım süreçlerinde ilk oluşturulan diyagramlar Şekil 4 Yazılım Mühendisliği ders projesinde öğrencilerin ardışıl ve sınıf diyagramlarını projenin hangi sürecinde kullanıldıklarını göstermektedir. Ardışıl ve sınıf diyagramları tasarım aşamasında kullanılır [28]. Nitekim anket soruları değerlendirildiğinde öğrencilerin %69’u projesinde ardışıl ve sınıf diyagramını tasarım aşamasında kullanmıştır.
Şekil 4. Ardışıl ve sınıf diyagramının kullanım aşaması grafiği
3.3. Çevik Yazılım Geliştirme Ders Projelerinin Değerlendirilmesi
Çevik Yazılım Geliştirme ders projesinde öğrencilerin yazılım süreçlerinde ilk oluşturdukları diyagramların yüzdeleri Şekil 5’de verilmiştir. Daha öncede belirtildiği gibi bir yazılım mühendisinin yaptığı ilk şey kullanıcı senaryosu diyagramlarını çizmektir ve öğrencilerin çok büyük bir kısmı ilk olarak kullanıcı senaryosu diyagramlarını çizmişlerdir.
Şekil 5. Yazılım süreçlerinde ilk oluşturulan diyagramlar Çevik Yazılım Geliştirme ders projesinde öğrencilerin kullanıcı senaryosu ve sınıf diyagramlarını projenin hangi sürecinde kullanıldıkları Şekil 6’da gösterilmektedir. Kullanıcı senaryosu diyagramları ve kavramsal sınıf diyagramları projenin analiz aşamasında, tasarım sınıf diyagramları ise projenin tasarım aşamasında kullanılır [29]. Nitekim anket soruları değerlendirildiğinde öğrencilerin %55 analiz aşamasında, %30’u tasarım aşamasında kullanmıştır. Buda diyagramların projenin hangi aşamasında kullandıklarının bilincinde olduklarını göstermektedir.
%0 Şekil 6. Kullanıcı senaryosu ve sınıf diyagramının kullanım aşaması
3.4. Sonuçların Değerlendirilmesi
Anket sorularından bazıları değerlendirildiğinde; Sistem Analizi ve Tasarımı(SAT) dersinde öğrencilerin sadece %94’ü projesinde kullanılması gereken diyagramları kullanmamış ve öğrencilerin %90’ı veri tabanı oluşturulurken yararlanılması gerekilen veri akış diyagramından yararlanmamıştır. Yazılım Mühendisliği(YM) dersinde öğrencilerin %56’sı projesinin yazılım sürecinde ilk oluşturduğu diyagram kullanıcı senaryosu diyagramıdır ve öğrencilerin %69’u ardışıl ve sınıf diyagramlarını tasarım aşamasında kullanmıştır. Çevik Yazılım Geliştirme(ÇYG) dersinde ise öğrencilerin %76’sı projesinin yazılım sürecinde ilk oluşturduğu diyagram kullanıcı senaryosu diyagramıdır ve %85’i kullanıcı senaryosu ve sınıf diyagramlarını, analiz ve tasarım aşamasında kullanmıştır. Cihan ve Kalıpsız çalışmasında [8], sosyal yetenekleri değerlendirmiş ve elde edilen sonuçlara göre; öğrencilerin sadece %55 dokümantasyonu büyük ölçüde kullanmakta, %53’ü proje içi ekip uyumunu iyi bulmakta, %49’u projedeki süre kısıtlılığı ve çalışanların çalışmamalarından dolayı zorlanmakta ve %31’i süreç sonunda elde edilen ürünü iyi bulmaktadır. Bölüm 3’de değerlendirilmesi yapılan anket sorularının yüzdeleri ve sosyal yetenek sorularının değerlendirilmesi sonucu elde edilen yüzdelerin karşılaştırılmalı biçimde grafiksel gösterimi Şekil 7’de verilmiştir.
Evaluation of Technical Skills in Software Engineering … Sigma 31, 595-603, 2013
30 20 10 0 SAT Dersi YM Dersi ÇYG Dersi Tüm Dersler Teknik Yetenek Teknik Yetenek Teknik Yetenek Sosyal Yetenek Şekil 7. Değerlendirilmesi yapılan anket sorularının karşılaştırılmalı biçimde gösterimi Şekil 7’de görüldüğü gibi öğrencilerin teknik yetenek yüzdeleri sosyal yetenek yüzlerinden daha iyidir.
4. Sonuç VE Gelecek Çalişmalar
İki farklı üniversitenin bilgisayar mühendisliği bölümündeki yazılım geliştirme derslerinden olan Sistem Analizi ve Tasarımı, Yazılım Mühendisliği ve Çevik Yazılım Geliştirme derslerinden toplamda 189 öğrenciye ders projeleri ile ilgili anket yapılmıştır. Bu çalışmada öğrencilerin projelerdeki teknik yeteneklerini ölçen sorular değerlendirilmiştir. Elde edilen teknik yetenek sonuçları ile sosyal yetenek sonuçları karşılaştırıldığında, öğrencilerin teknik yeteneklerinin sosyal yeteneklerinden daha iyi olduğu sonucu elde edilmiştir. Gerçekleştirilen projelerdeki teknik yetenek sorularının değerlendirmesi sonucunda oranların yüksek çıkması, öğrencilerin akademide aldıkları eğitimi projelerinde başarılı bir şekilde uyguladıklarını göstermektedir. Elde edilen bu sonuçlar doğrultusunda akademinin sosyal yeteneklere önem verip bu yetenekleri iyileştirilmesi durumunda hem başarılı projelerin oranı artabilir hem de daha kaliteli yazılım mühendisliği mezunları yetiştirilebilir. Gelecek çalışmalarda anketler endüstrilere uygulanarak sonuçlar değerlendirilebilir ve öğrenci profillerinden elde edilen sonuçlar ile karşılaştırılıp çıkarımlar yapılabilir. REFERENCES / KAYNAKLAR [1] [2] [3]
Mıshra, A., Cagıltay, N. E. and Kılıc, O., “Software engineering education: some important dimensions”, European Journal of Engineering Education, 32, 3, 349-361, 2007. Saiedian, H., Bagert, D. and Mead, N., “Software Engineering Programs: Dispelling the Myths and Misconceptions”, IEEE Software, 19, 5, 35-41, 2002. Hilburn, T. and Humphrey, W., “The Impending Changes in Software Education”, IEEE Software, 19, 5, 22-24, 2002.
Saiedian, H., Bagert, D. J. and Mead, N. R., “Software Engineering Programs: Dispelling the Myths and Misconceptions”, IEEE Software, 19, 5, 35-41, 2002. Standish Group, “Chaos Report”, The Standish Group International, 1995. Standish Group, “Chaos: Recipe for Success”, The Standish Group International, 1999. Standish Group, “Chaos Summary 2009: The 10 Laws of Chaos”, The Standish Group International, 2009. Cihan, P. and Kalıpsiz, O., “Assessing the Human Factors in Software Development Courses Students Project”, International Conferance on Education and Educational Technologies, 2013. Rusu, A., Rusu, A. and Elloitt R., “Work in Progress: Smoothing the Border between Academic and Professional Software Engineering Environment through Entrepreneurship”, Proceeding of 36th ASEE/IEEE Frontiers in Education Conference, 17-18, 2006. Garg, K. and Varma, V., “Software Engineering Education in India: Issues and Challenges”, IEEE 21st Conference on Software Engineering Education and Training 2008 (CSEET’08), IEEE Computer Society, 110-117, 2008. Beckman, K. and Khajenoori, S., “Collabaration Closing the Industry-Academia Gap”, IEEE Software, 14, 6, 49-57, 1997. Almi, N.E.A.M., Rahman, N. A., Purusothaman, D. et. al., “Software Engineering Education: The Gap Between Industry’s Requirements and Graduates’ Readiness”, IEEE Symposium on Computers & Informatics (ISCI), 542-547, 2011. Shami, N.S., “Together apart: An ethnographic study of industry academia collaboration”, Proceedings of the CSCW Workshop 2006 on Supporting the Social Side of Large Scale Software Development, 2006. Rusu, A., Rusu, A. and Santiago C., “Academia-Academia-Industry Collaborations on Software Engineering Projects Using Local-Remote Teams”, ACM Special Interest Group on Computer Science Education(SIGCSE’09), 2009. Aybay, H.I., “Yazılım Mühendisliği Dersi için Proje Ağırlıklı ve Problem Çözmeye Dayanan Yeni Bir Yaklaşım”, Ulusal Yazılım Mühendisliği Sempozyumu(UYMS’05), 2005. Teles, V.M. and Oliveira, C.E.T, “Reviewing the Curriculum of Software Engineering Undergraduate Courses to Incorporate Communication and Interpersonal Skills Teaching”, Proceedings of the 16th Conference on Software Engineering Education and Training, 2003. Kumar, V., Kinzel, G., Wei, S. et. al., “Multi-University Design Projects”. Journal of Engineering Education(JEE), 89, 3, 353-59, 2000. Liu, C., “Enriching software engineering courses with service-learning projects and the open-source approach”, Proceedings of the 27th international Conference on Software Engineering(ICSE’05), 613-614, 2005. Reichlmayr, T.J., “Collaborating With Industry–Strategies for an Undergraduate Software Engineering Program”, Proceedings of the international workshop 2006 on Summit on Software Engineering Education(SSEE’06), 13-16, 2006. Rusu A., Paglione, M., Snyder, F. et. al., “Overcoming Limited Resources: An AcademiaGovernment Partnership on Software Engineering and Capstone Projects”. Proceedings of 37th ASEE/IEEE Frontiers in Education Conference, IEEE Computer Society, 2007. Rusu, A., Webb, R., Shanline, D. et. al., “A Multiple-Projects-Multiple-Winners Approach for Teaching Software Engineering”, Proceedings of 9th IASTED International Conference on Software Engineering and Applications, 2005. Blake, M.B., “A Student-Enacted Simulation Approach to Software Engineering Education”, IEEE Transactions on Education, 46, 3, 2003.
Evaluation of Technical Skills in Software Engineering … Sigma 31, 595-603, 2013 [23] [24] [25] [26] [27] [28] [29]
Begel, A. ve Simon, B., “Novice Software Developers, All Over Again”, Proceedings of the Fourth international Workshop on Computing Education Research(ICER’08), 3-14, 2008. Kılıç, Ö., Çağıltay, N.E. ve Tokdemir, G., “Yazılım mühendisliği diyagramlarının kullanımındaki bilişsel ve davranışsal özellikler”, II. Ulusal Mühendislik Kongresi, 349355, 2006. Song, I.Y. and Froehlich,K.,“Entity-relationship modeling”,IEEE Potentials, 13, 5, 29-34,1994. “Introduction to Software Engineering”, Available from: http://en.wikibooks.org/wiki/Introduction_to_Software_Engineering/Print_version, [accessed February 15, 2013]. Flowler, M. and Scott, K., UML Distilled: A Brief Guide to the Standard Object Modeling Languange, Addison Wesley, 55-56, 1999. “Nesneye yönelik analiz ve tasarıma giriş”, Available from: yilmazkilicaslan.trakya.edu.tr/teaching/uml_giris.ppt, [accessed February 15, 2013]. Kalıpsız, O., Buharalı, A. ve Biricik, G., Sistem Analizi ve Tasarımı, Papatya Yayıncılık, İstanbul, 2011.
Industrial Engineering Article / Endüstri Mühendisliği Makalesi
Share and Cite
CİHAN, P.; KALIPSIZ, O. Evaluation of technical skills in software engineering course projects. Sigma Journal of Engineering and Natural Sciences 2013, Vol. 31, pp. 595-603. https://doi.org/10.62051/ytu.sigma-journal-of-engineering-and-natural-sciences-evaluation-of-technical-skills-in-software-engineering-course-projects

