Gömülü yazılım sistemlerinde proje yönetim metodoloji seçimi
Software development methodologies selection in embedded software system
Yazar: SADIK ÖZER
Danışman: DOÇ. DR. SEZİ ÇEVİK ONAR
İstanbul Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Endüstri Mühendisliği Ana Bilim Dalı / Mühendislik Yönetimi Bilim Dalı
Derece: Yüksek Lisans, 2019
Konu: Endüstri ve Endüstri Mühendisliği = Industrial and Industrial Engineering

Özet:
Yazılım günümüzde önemi artan ve ilgili duyulan bir meslek dalı olmuştur. Yazılım genel bir kapsayıcı küme olarak düşünülebilinir. Bu kümenin alt kümeleri; masaüstü yazılımları, mobil uygulama yazılımları, web yazılımları ve gömülü yazılımlardır. 
Yazılım geliştirme metodolojileri yazılım geliştirme sürecini planlı ve kontrollü bir şekilde yürüterek projeyi başarıya götürmek için kullanılan sistemlerdir. Günümüzde bilinirliği yüksek olan ve kullanılan modellerden bazıları; şelale (waterfall), scrum, uç programlamadır (Extreme Programming). Yazılım geliştirme metodolojilerinde herhangi bir metodolojinin mutlak bir üstünlüğü yoktur, her modelin bir birine göre üstün ve zayıf yanları vardır.
Bu tez çalışmasında özel bir firma üzerinden yazılımın bir alt başlığı olan Gömülü Yazılım Sistemleri üzerinde uygulanabilinecek en ideal yazılım geliştirme metodolojisi nedir sorusuna cevap aranmıştır.
Tez çalışmasında ilk olarak yazılım geliştirme metodolojileri anlatılmış, problemin temelini oluşturan gömülü sistemler hakkında bilgiler verilmiş, ardından problemin çözümü için kullanılacak karar verme yöntemleri hakkında teorik bilgiler verilerek uygulama yapılmıştır. 
Uygulamada amaç karar verme yöntemlerinden olan AHP modelini kullanarak gömülü sistemler için en uygun yazılım geliştirme metodoloji seçimini yapmaktır. Bunun için uygulama aşamasında AHP modeli kurulmuştur, AHP modelinde kullanılacak faktörler literatürde gömülü sistemler ve yazılım proje yönetim metodolojileri ile ilgili yapılan araştırmadan elde edilmiştir. Elde edilen faktörler ile 4 basamaklı AHP modeli (amaç - ana faktörler - alt faktörler – alternatifler) oluşturulmuştur.
Gömülü sistemlerde yazılım proje yönetimi ile ilgili literatürde 25 faktör bulunmuştur, bulunan 25 faktör kendi içlerinde literatüre dayanılarak 6 ana faktör altında toplanmıştır. Bu ana faktörler, Zaman, Maliyet, Kapsam, Risk, Kalite ve İnsan kaynağı kullanımıdır. Bulunan bu faktörler ile AHP modeline dayalı anket çalışması hazırlanmış, anket konu ve metodolojiler hakkında bilgi sahibi aynı firmada çalışan 15 kişiye uygulanmıştır. Anket sonuçları excele girilerek her bir faktör ve alt faktör için ağırlıklar bulunmuş, tutarsızlık oranları hesaplanmıştır. Bu veriler ışığında alternatiflerin toplam puanları hesaplanmış ve alternatifler sıralanmıştır.
Excelde yapılan analiz sonucu ana faktörlerin ağırlıkları: Zaman %12, Maliyet %11, Kapsam %14, Risk %20, Kalite %31 ve İnsan Kaynağı %12 olarak bulunmuştur. Katılımcıların en önem verdiği konu %31 ile kalitedir. Ana faktörler için tutarsızlık oranı %2 olarak bulunmuştur. Bulunan bu değer %10'dan düşük olması sebebiyle karşılaştırmaların tutarlılığını göstermektedir. Bütün faktörlerin ağırlıkları ve alternatifler üzerlerindeki etkileri dikkate alındığında ilgili şirket için gömülü sistemlerde yazılım geliştirme metodolojisi olarak uç programlama %38 puan, scrum %31 ve şelale %31 puan almıştır. İlgili firma için en uygun metodolojinin uç programlama olduğu sonucu elde edilmiştir. Modelde elde edilen sonuç ana faktörler üzerinden duyarlılık analizinden geçirilerek modelin kararlılığı üzerinde araştırma yapılmıştır. Modelin Maliyet ve Kapsam faktörleri için duyarlı olduğu, bu iki faktörün ağırlıklarının artması durumunda Şelale yönteminin tercih edilebileceği sonucu tespit edilmiştir.
Çalışamanın sonuç bölümünde araştırma sonucu ile ilgili genel değerlendirmeler yapılmış, ileride yapılabilinecek çalışmalar için öneriler sunulmuş ve tez çalışması sonlandırılmıştır.

Abstract:
Software is a general term used to describe a collection of computer programs, procedures and documentation that perform some tasks on a micro processors. In recent years the software has become a popular profession that has become more and more important day by day. The software can be considered as a general container set. Subsets of this cluster are desktop software, mobile application software, web software and embedded software.
Software development methodologies are used to manage the project development process in a planned and controlled manner. Some of the models that are well known and used today are; Waterfall, Scrum and Extreme programming. Each of these methodologies has different advantages and disadvantages, so each methodology has strong and weekness sides. There is no one generic methodology which can be used for all cases.
In case of software development project, it is very important to use a methodology that must be cost effective and high success rate. A report of the Standish Group International on projects success rates shows that 32% of all projects delivered on time, on budget, with required features and functions, 44% were delivered late or over budget and/or with less than the required features and functions and 24% cancelled prior to completion or delivered and never used. The use of an appropriate methodology plays an important role in developing software, to assure that it is delivered within schedule, within cost and meets customers' requirements.
The aim of this thesis is trying to find best match methodology for Embedded Software Systems which is a subset of the general software, for a specific company. So that in this study firstly software development methodologies are explained then information is given about the embedded systems and then multi criteria decision model is explained because of the problem will be structured and solved with AHP (Analytic Hierarchy Process) model which is one of the multi criteria decision making methods. For this purpose, problem was structured depend on the AHP model. Factors to be used in AHP model were collect from the research about embedded systems and software project management methodologies in the literature. The four level of AHP model (Aim - main factors – sub factors - alternatives) was established with the factors obtained.
Depend on the literature software development methodologies can be divided two groups: Traditional methods and Agile methods. Waterfall is well know traditional method, Scrum and Extreme Programming are well known Agile software project management methodologies. 
Waterfall software process model was proposed by Winston W. Royce in 1970. This model became popular and provided practical guidelines for developing software product. Its name is derived from structural specification. Every phase comes after a phase is completed and tasks can be divided according to phases. The output of one phase becomes input of next phase. There are 5 steps in waterfall model: Analysis, Design, Implementation, Testing, Maintanance. 
Scrum has been improved by Heff Sutherland and Ken Schwager during the middle of 1990s. It is a methodology which is applied and leads to success in the projects that presents a high level of uncertainatiy.
Extreme programming (XP) is a discipline of software development. It emphasises productivity, flexibility, informality, teamwork. Rather than planning, analysing, and designing for the distant future, XP programmers do all of these activities in each iteration throughout development. It relies on constant code improvement, user involvement in the development team and pair programming. Extreme programming methodology is primarily designed for smaller teams with two to ten members, who work on frequently or less known assignments. Projects which take long or have difficulties in getting feedback are not suitable for this methodology. Automatic testing or version assembly is necessary for its implementation. Extreme Programming consists in five values: (Communications, Simplicity, Feedback, Courage and Respect) and fourteen practices which explain how to do.
Embedded software is computer software, written to control machines or devices that are not typically thought of as computers, e.g., cars and TV. In today's world approximately 90% of all processors are part of embedded systems, computing systems that continually and autonomously control and react to the environment. The embedded system itself is an information processing system that consists of hardware and software components. Embedded software is different than conventional software systems (e.g., desktop, web, or mobile applications). The major differences are due to close integration of software and hardware in embedded systems. Another difference of them is presence of non-human interfaces leads to further challenges in manual user-interface testing Furthermore, high level of hardware dependency and the fact that the embedded software is often developed in parallel with the hardware lead to several other consequences and challenges.
In this study, to find best methodology for embeddes software system for specific company literature checked and 6 main factors and 25 sub-factor has been found after systematic literatur review. Main factors which has affect on project success are; Schedule, Budget, Scope, Risk, Quality and Resources. Then depend on these factor an AHP decision making model structured and a survey prepaed which include pairwise comprasions between factors and alternatives. The questionnaire survey was applied to 15 employees in one of the world's leading companies in the electronics sector and in a hardware/software company which has located in many countries. Participants of this survey are pretty well educated person, most of them has PhD. and Masters and have knowledgeable about methodologies and have been working on embedded systems for many years. The questionnaire form, factor explanations guide and evaluation sample page were given to the each of the participiant. Also to clarification the purpose of the study were explained to each participant verbally. Because of the survey required detailed thinking and needed 133 pairwise comparison, filling it takes approximately 30 minutes. So that 4-days period had been given to participants to they fill form. At the end of 4 days, the questionnaires were collected and the responses were entered excel spreadsheet and survey interparated.
The results of the survey is that: main factors weight: Schedule 12%, Budget 11%, Scope 14%, Risk 20%, Quality 31% and Resource 12%. Depend on the survey result the most important factor is the quality with 31%. The inconsistency rate for main factors was found as 2%. This value shows the consistency of the survey because it is less than 10%.
Each project management methodologies has different strong and weekness factors. Depend on the survey result, Waterfall is best match for working on long term project with large team, wıth hight qaulity of documentation. Extreme programming is best match for code quality and high speed deliver, Scrum is best match for customer satisfaction.
After calculating the total effects of all factors and sub-factors of weight on alternatives, the Exterme Programming gets 38% points, Scrum 31% point and Waterfall 31% point. According the survey result the most appropriate methodology for Embeddes Software Systems for the related company is the the extreme programming. Extreme programming is best match for embedded software development methodology for company where survey applied.
In the final part of the study, general review was done according of all result of the survey, and suggestions were given for future studies then this thesis finalized.