Hızla gelişen yazılım
endüstrisinin ihtiyaçlarına cevap verebilmek için yazılım mühendisliğinde
tanımlı çeşitli yöntembilimlerin yanı sıra çevik yöntembilimler de kullanılmaya
başlanmıştır. Birbirine sıkı sıkıya bağlı yazılım, süreç ve proje kavramlarıyla
ilgili çevik yöntembilimleri başlığı altında birçok yöntem ve uygulama
geliştirilmiştir. Bunların her birisinin kendine özgü yapıları olması yanında birçok
ortak noktaları da vardır. Kavram karışıklıklarını engellemek amacıyla bu ortak
noktaları vurgulayan Çevik Yazılım Geliştirme Manifestosu ilan edilmiştir. Bu
çalışmada çevik yazılım geliştirme yöntemine dayalı uygulama ve süreçlerde öne
çıkan bu ortak özellikler sınıflandırılmaya çalışılmıştır. Çevik yazılım
geliştirme yönteminde analiz, yönetim, iyileştirme, gerçekleştirme yeniden
yapılanma ve değerlendirme gibi bazı faaliyetler öne çıkmaktadır. Çevik yöntembilimler
başlığı altında tanımlı yöntem ve uygulamalarının sınıflandırılması bu
faaliyetlere göre yapılmıştır. Sınıflandırma çalışmasının okuyucuya daha
yararlı olabilmesi için, yazılım proje yönetiminde kullanılan bazı kavram ve
uygulamaların birbirleriyle ilgi ve farklılıkları kavramsal bir çerçevede
ortaya konmaya çalışılmıştır.
To accomplish the needs
of rapidly growing software industry, in addition to varios methodologies defined
in software engineering, agile methodologies have been used. Many methods and
applications have been developed under the title of agile methodologies related
to software, process and project concepts. Each of these has its own specific structures
as well as many common points. Agile Software Development Manifest, which
emphasizes these common points, has been declared to prevent concept confusion.
In this study, it has been tried to classify these common features in the
application and processes based on agile software development method. Some
activities such as analysis, management, improvement, implementation,
reengineering and evaluation in agile software development method are
prominent. Classification of defined methods and applications under title of agile
methodologies is based on these activities. In order to make the classification
work more useful to the reader, it has been tried to reveal the interests and
differences of some concepts and applications used in software project
management within a conceptual framework.
___
Acm. (2016a). Mühendislik Pratikleri. İstanbul: Acm Software. Erişim Tarihi: 16 Mart 2016. http://www.acm-software.com/muhendislik-pratikleri/
Acm. (2016b). Scrum. İstanbul: Acm Software. Erişim Tarihi: 16 Mart 2016. http://www.acm-software.com/scrum/
Acuña, S. T. & Ferré, X. (2001). "Software Process Modelling". World Multiconference on Systemics, Cybernetics and Informatics (ISAS-SCI), 22-25 Temmuz, (ss. 237-242). ABD: Florida, Orlando. ISBN: 980-07-7541-2.
Agilealliance. (2019a). Agile Manifesto. Corryton, Tennessee, ABD: Agile Alliance. Erişim Tarihi: 24 Nisan 2019. https://www.agilealliance.org/agile101/the-agile-manifesto/
Agilealliance. Agile Manifesto. (2019b). Corryton, Tennessee, ABD: Agile Alliance. Erişim Tarihi: 24 Nisan 2019. https://www.agilealliance.org/agile101/12-principles-behind-the-agile-manifesto/
Akgül, Ö. (2010). "Model Güdümlü Yazılım Geliştirme" [Elektronik Versiyon]. Bilişim Dergi. 16, 1-4.
Akyol, M. (2015). Yazılım Kalitesi ve Standartlar [Sunum]. Erişim Tarihi: 20 Mart 2016. http://docplayer.biz.tr/5825934-Yazilim-kalitesi-ve-standartlar.html
Alkan, M. (2004). Rapid Application Development (RAD). Erişim Tarihi: 16 Mart 2016. http://www.csharpnedir.com/articles/read/?id=315
Altmann, J. & Weinreich, R. (1998). "An environment for cooperative software development realization and implications". Thirty-First Hawaii International Conference, 9 Haziran, (ss. 27-37). ABD: Hawaii, Kohala Coast. DOI: 10.1.1.615.166.
Altuntaş, C. Test Driven Development. (2007). Erişim Tarihi: 16 Mart 2016. http://www.cihataltuntas.com/test-driven-development/
Arifoğlu, A. & Doğru, A. (2001). Yazılım Mühendisliği : yöntemler, metodolojiler, CASE ortamları, günün teknolojisi. 1. Baskı. Ankara: SAS Bilişim Yayınları. ISBN: 975-97197-2-X.
Awad, M. A. (2005). A Comparison between Agile and Traditional Software Development Methodologies. Western Australia University. DOI: 10.1.1.464.6090.
Aybek, A. (2010). Çevik Yazılım Geliştirme "Agile". İstanbul: Acm Software. Erişim Tarihi: 16 Mart 2019. http://www.acm-software.com/Pdf/AboutAgile.pdf
Baelen, H. V. (2011). "Agile (Unified Process)", [Elektronik Versiyon]. Agile Record, 6, 22-24. ISSN 2191-1320
Bayar, V. (2016). Bilesen Yönelimli Yazılım Geliştirme için Süreç Modeli. Erişim Tarihi: 16 Mart 2016. http://www.emo.org.tr/ekler/de8edbbe1547786_ek.pdf
Bilge, İ. (2013). Refactoring Nedir? Erişim Tarihi: 16 Mart 2016. http://ibrahimbilge.com/refactoring
Camoğlu, K. (2008). Yazılım Geliştirme Süreci. Erişim Tarihi: 5 Nisan 2016 http://www.chip.com.tr/blog/kadircamoglu/Yazilim-Gelistirme-Sureci_524.html
Castro, J., Kolp, M. & Mylopoulos, J. (2002). "Towards requirements-driven information systems engineering the Tropos project". Information Systems 27(6), 365-389. DOI: 10.1016/S0306-4379(02)00012-1.
Çatal, Ç. (2005). RUP ve XP Süreçlerinin Karşılaştırılması. Erişim Tarihi: 16 Mart 2016. http://www.csharpnedir.com/articles/read/?id=458
Chappell, D. (2008). What is Application Lifecycle Management?. Kaliforniya: Chappell & Associates. Erişim Tarihi: 16 Mart 2019. www.davidchappell.com/WhatIsALM--Chappell.pdf
Chen, Z., Liu, Z., Ravn, A. P., Stolz, V. & Zhan, N. (2009). "Refinement and verification in component-based model-driven design". Science of Computer Programming, 74(4), 168-196. DOI: 10.1016/j.scico.2008.08.003.
Cohn, M. (2004). User Stories Applied: For Agile Software Development. Usa: Addison Wesley. ISBN: 978-0321205681.
Demir, Ö., & Acar, M. (1992). Sosyal Bilimler Sözlüğü. İstanbul: Ağaç Yayıncılık. ISBN: 9752500102.
Ebert, C., Abrahamsson, P. & Oza, N. (2012). "Lean Software Development". IEEE Software, (5), 22-25. DOI: 10.1109/ICSECOMPANION.2007.46.
Edeki, C. (2013). "Agile Unified Process". International Journal of Computer Science and Mobile Aplications, 1(3), 13-17. ISSN: 2321-8363.
EPF. (2012). What is OpenUP? Ottawa, Ontario, Kanada: The Eclipse Foundation. Erişim Tarihi: 16 Mart, 2019. https://www.eclipse.org/epf/general/OpenUP.pdf
Eryılmaz, Ö. (2014). Application Lifecycle Management Nedir? Erişim Tarihi: 16 Mart 2016. http://www.omereryilmaz.com/alm-application-lifecycle-management-nedir/
Fernandes, J. M. & Almeida, M. (2010). "A Technique to Classify and Compare Agile Methods". Departamento de Informática, Universidade do Minho, (48), 385-386. ISBN: 978-3-642-13053-3
Fernandes, J. M. & Almeida, M. (2010). "Classification and Comparison of Agile Methods". 7th International Conference Information and Communications Technolog, 29 Eylül-2 Ekim, (ss. 391-396). Portekiz: Oporto. DOI: 10.1109/QUATIC.2010.71.
Güçlü, T. (2004). Yazılım Geliştirmede Disiplin ve PSP Yöntemi. Erişim Tarihi: 16 Mart 2016. http://www.csharpnedir.com/articles/read/?id=321
Gürcan, V. B. (2013). Agile Software Development (Çevik Yazılım Geliştirme). Erişim Tarihi: 16 Mart 2016. http://www.barbarosgurcan.com/post/Agile-Software-Development
Gürsoy, İ. (2011). Nesne Yönelimli Programlama (OOP) Nedir? Erişim Tarihi: 16 Mart 2016. http://www.ismailgursoy.com.tr/nesne-yonelimli-programlama-oop-nedir/
Hofmeister, C., Kruchten, P., Nord, R. N., Obbink, H., Ran, A. & America, P. (2007). "A General Model of Software Architecture Design", [Elektronik Versiyon]. Systems and Software (80), 106-126. DOI: 10.1016/j.jss.2006.05.024.
Hui, Y. (2015). "Compare Essential Unified Process (EssUP) with Rational Unified Process (RUP)". Industrial Electronics and Applications (ICIEA), 15-17 Haziran, (ss. 472-476). New Zealand: Auckland. DOI:10.1109/ICIEA.2015.7334159.
Humphrey, W. S., Chick, T. A. & Nicolas, W. (2010). "Team Software Process Body of Knowledge Technical Report (Rapor No: CMU/SEI-2010-TR-020)". Hanscom: Software Engineering Institute Carnegie Mellon University.
Iacovelli, A. & Souveyet, C. (2008). "Framework for Agile Methods Classification". Proceedings of Model Driven Information Systems Engineering (MoDISE-EUS), 16-17 Haziran, (ss. 91-102). France: Montpellier. ISSN: 1613-0073.
IBM (2008). "Collaborative Application Lifecycle Management with IBM Rational Products (Rapor No: SG24-7622-00)". New York: International Business Machines Corporation (IBM).
İrgin, D. (2013). Aspect-Oriented Programming Kavramı. Erişim Tarihi: 16 Mart 2016. http://www.denizirgin.com/post/2013/10/07/Aspect-Oriented-Programming
Kara, B. (2010a). Agile Unified Process.. Erişim Tarihi: 16 Mart 2016. İş Analizi Nedir: http://www.isanalizinedir.com
Kara, B. (2010b). Essential Unified Process. Erişim Tarihi: 16 Mart 2016. http://www.isanalizinedir.com
Keskinkılıç, M., Özmen, E. (2018). "Yazılım Projelerinde Yazılım Geliştiricilerin Yazılım Süreç Modellerini Kullanım Farkındalıkları". Akademi Sosyal Bilimler Dergisi, 5 (15), 61-78.
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C. V., Loingtier, J.-M. (1997). "Aspect-Oriented Programming". ECOOP'97—Object-oriented programming, 9-13 Haziran, (ss. 220-242). Finland: Jyväskylä. ISBN 978-3-540-63089-0
Koskela, M., Rahikainen, M. & Wan, T. (2007). Software Development Methods: SOA vs. CBD, OO and AOP. DOI: 10.1.1.111.9582.
Kruchten, P. (2003). "The Rational Unified Process White Paper (TP026B, Rev 11/01)". Boston: Addison-Wesley.
Larman, C. (2003). Agile and Iterative Development. Boston Massachusetts, ABD: Addison Wesley. ISBN: 0-13-111155-8.
Mahanti, R., Neogi, M. S. & Bhattacherjee, V. (2012). "Factors Affecting the Choice of Software Life Cycle Models in the Software Industry". Computer Science 8(8), 1253-1262. ISSN: 1549-3636.
McGregor, S. L. & Murnane, J. A. (2010). "Paradigm, methodology and method intellectual integrity in consumer scholarship". International Journal of Consumer Studies, (34), 419-427. DOI: 10.1111/j.1470-6431.2010.00883.x.
Microsoft (2003). "Microsoft Solutions Framework version 3.0 Overview White Paper (MSF_V3)". Microsoft Corporation.
MSF. (2016). Microsoft Solutions Framework Overview. Erişim Tarihi: 16 Mart 2016. https://msdn.microsoft.com/tr-tr/library/jj161047(v=vs.120).aspx Mujumdar, A., Masiwal, G. & Chawan, P. M. (2012). "Analysis of various Software Process Models. Engineering Research and Applications", 2(3), 2015-2021. ISSN: 2248-9622.
NASA. (1990). "Manager's Handbook for Software Development (No: SEL-84-101)" . Greenbelt: Goddard Space.
Nizam, A. (2014). Yazılım Proje Yönetimi. 1. Basım. İstanbul: Papatya Yayıncılık. ISBN 978-605-4220-74-4.
O'Regan G. (2017). Concise Guide to Software Engineering from Fundamentals to Application Methods (Undergraduate Topics in Computer Science), Springer International Publishing AG 2017. ISBN 978-3-319-57749-4.
Oussalah, M. C. (2014). Software Architecture 1. Somerset, US: Wiley-ISTE. ISBN: 9781848216006.Over, J. (2010). Introduction to the Team Software Process. Pittsburgh: Software Engineering Institute Carnegie Mellon University.
Paulish, D. J. (1993). Paulish, D. J. (1993). "Software process improvement methods technical report (No: CMU/SEI-92-TR-026)". Carnegie-Mellon Univ. Pittsburgh Pa Software Engineering Inst.
Poppendieck, M. & Poppendieck, T. (2003). Lean Software Development. Boston: Addison Wesley. ISBN: 978-0321150783.
Pressman, R. S. (2001). Software Engineering: A practitioner's approach(5'th Edition). Usa: McGraw-Hill Eduactıon. ISBN: 0073655783.
Ranniko, P. (2011). User-Centered Design in Agile Software Development. (Yayımlanmış Master Tezi). University of Tampere School of Information Sciences.
Rational, S. (2003). The Rational Unified Process: An Introduction (3rd Ed.). Lexington: Rational Software Development. ISBN: 0-321-19770-4.Reddy, A. R., Naidu, M. M. ve Govindarajulu, P. (2006). "Programming Methodologies and Software Architecture". Computer Science and Network Security, 6(11), 29-39. ISSN: 1738-7906
Royce, W. W. (1987). "Managing the Development of Large Software Systems : Concepts and techniques ". 9th international conference on Software Engineering, 30 Mart-2 Nisan, (ss. 328-338). Kalifornya: IEEE Computer Society. ISBN: 0-89791-216-0
Sarıdoğan, M, Erhan. (2004). Yazılım Mühendisliği, 1. Basım. İstanbul: Papatya Yayıncılık. ISBN 975-6797-57-6.
Sasankar, A. B. & Chavan, V. (2011). "SWOT Analysis of Software Development Process Models". International Journal of Computer Science, 8(5), 390-399. ISSN: 1694-0814.
Sliger, M. & Broderick, S. (2008). The Software Project Manager`s. Usa: Adison Wesley. ISBN: 978-0321502759
Sommerville, I. (2011). Software Engineering (9'th Ed.). Usa: Pearson Education Inc. ISBN: 978-0137035151.
Stamelos, I. G. & Sfetsos, P. (2007). Agile Software Development Quality Assurance. ISBN: 978-1599042169.
Taheri, M. & Sadjadi, S. M. (2015). "Tool-Selection Classification Software Development". The 27th International Conference on Software Engineering and Knowledge Engineering Conference, 6-8 Haziran, (ss. 700-704). ABD: Pittsburgh, Wyndham Pittsburgh University Center. DOI: 10.18293/SEKE2015-234
Tekinerdoğan, B. (2003). Classifying Software Architecture Design Methods. Enschede: Twente Research and Education on Software Engineering.
Thakur, D. Software Process Assessment. (2016). Erişim Tarihi: 16 Mart 2016. ecomputernotes.com/software-engineering/software-process-assessment
Tüfekçi, Ö., Çokkeçeci, İ. & Çetin, S. (2015). Gereksinim Güdümlü Uygulama Geliştirme. Erişim Tarihi: 16 Mart 2016. www.cs.com.tr/TR/themes/touch/images/haberler/
Türkiye Bilişim Ansiklopedisi (2006). İstanbul: Papatya Yayıncılık. ISBN 975-6797-38-X
Turan, O. (2011). Lean Düşüncesinin Doğuşu. Erişim Tarihi: 16 Mart 2016. www.prince2turkey.com/cevik-yontemler/33-lean-yazilim-gelistirme.html
TÜRCERT. (2016). ISO 15504 Yazılım Süreç Değerlendirme Sistemi. Erişim Tarihi: 16 Mart 2016. http://www.turcert.com/belgelendirme/sistem-belgelendirme/
Ülgen, S. (2016). Yazılım Geliştirme Süreçleri. Erişim Tarihi: 16 Mart 2016. http://www.sulc3.com/surecler.html
Versionone. (2016). What Is Agile Methodology? Erişim Tarihi: 4 Ağustos 2016. https://www.versionone.com/agile-101/agile-methodologies
Vinarek, J. & Hnetynka, P. (2016). "Towards an Automated Requirements-driven Development of Smart Cyber-Physical Systems". International Workshop on Formal Engineering approaches to Software Components & Architectures, 3 Nisan, (ss. 59-68). Netherlands: Eindhoven. DOI: 10.4204/EPTCS.205.5.
Yazıcıoğlu, S. (2011). SOA Nedir? Erişim Tarihi: 16 Mart 2016. http://blog.serkanyazicioglu.com/2011/12/soa-nedir/ Yazılım Geliştirme Süreci. (t.y). Erişim Tarihi: 27.05.2018, https://forum.java.com.tr/yazilim-gelistirme-sureci/
Yousuf, F. (2012).Reengineering Software Development. Erişim Tarihi: 17 Mart 2016. slideshare.net/faizayousuf/reengineering-software-development-process