Yazılım Ürün Hattı Mühendisliği Sürecinin Essence Çerçevesi ile Modellenmesi

Literatürde birçok yazılım ürün hattı mühendisliği (YÜHM) yöntemi tarif edilmiş olmasına rağmen bu yöntemlerin pratikte uygulanması çoğu zaman kolay olmamaktadır. YÜHM'in beklenen hedeflerini gerçekleştirmek ve yöntemleri doğru uygulamak için hem yöntemleri hem de yapısal öğeleri tam olarak anlamak gereklidir. Essence çerçevesi, son zamanlarda plan güdümlü yöntemler ve çevik yöntemler de dahil olmak üzere geniş bir alana yayılmış yazılım geliştirme yöntem setinin modellemesi için önerilmektedir. Şu ana kadar, sadece tekil sistem geliştirme yöntemine uygulanan Essence çerçevesi henüz YÜHM yöntemleri için uygulanmamıştır. Bu çalışmada, YÜHM yöntemlerinin daha iyi anlaşılmasını sağlamak ve uyarlaması konusunda bir vizyon oluşturmak için seçilen YÜHM yönteminin Essence çerçevesi ile modellenmesi gerçekleştirilmiştir.  Çalışma sonucunda, Essence çerçevesi ve YÜHM hakkında elde edilmiş olan deneyim ve öğrenilmiş dersler, endüstriyel olarak HAVELSAN bağlamında, sunulmuştur.

Modeling Software Product Line Engineering with Essence Framework

Although several software product line engineering (SPLE) methods have been described in the literature, adopting these methods in practice is often not straightforward. Thorough understanding of the methods and their artefacts is necessary to apply the methods in a proper manner, and likewise realize the expected goals of SPLE. Recently the Essence framework has been proposed to model the essential elements of a method and to support the modeling of a broad set of software development methods including plan-driven methods and agile methods. So far, the Essence framework has been applied to single system development methods and not yet for SPLE methods. To enhance the understanding of SPLE methods and support a vision for tailoring SPLE methods, we provide a mapping of an SPLE method to the Essence framework. We present experiences about modeling an SPLE method using the Essence framework within the industrial context of Havelsan.

___

  • A Framework for Software Product Line Practice, Version 5.0: 2007. http://www.sei.cmu.edu/productlines/framework.html.
  • America, P. et al. 2000. CoPAM: A Component-Oriented Platform Architecting Method Family for Product Family Engineering. Software Product Lines. Springer US. 167–180.
  • Bayer, J. et al. 1999. PuLSE: a methodology to develop software product lines. SSR ’99 Proceedings of the 1999 symposium on Software reusability (1999), 122–131.
  • Brinkkemper, S. 1996. Method engineering: engineering of information systems development methods and tools. Information and Software Technology. 38, 4 (Jan. 1996), 275–280. DOI:https://doi.org/10.1016/0950-5849(95)01059-9.
  • Clarke, P. and O’Connor, R. V. 2012. The situational factors that affect the software development process: Towards a comprehensive reference framework. Information and Software Technology. 54, 5 (May 2012), 433–447. DOI:https://doi.org/10.1016/j.infsof.2011.12.003.
  • Clements, P. and Northrop, L. 2001. Software Product Lines: Practices and Patterns. Addison-Wesley.
  • Díaz, J. et al. 2011. Agile product line engineering - A systematic literature review. Software - Practice and Experience. 41, 8 (2011), 921–941. DOI:https://doi.org/10.1002/spe.1087.
  • Elvesæter, B. et al. 2013. A Comparison of the Essence 1.0 and SPEM 2.0 Specifications for Software Engineering Methods. Proceedings of the Third Workshop on Process-Based Approaches for Model-Driven Engineering (New York, New York, USA, 2013).
  • Giray, G. et al. 2017. Adopting the Essence Framework to Derive a Practice Library for the Development of IoT Systems. Connected Environments for the Internet of Things: Challenges and Solutions. Z. Mahmood, ed. Springer International Publishing. 151–168.
  • Giray, G. et al. 2016. Systematic Approach for Mapping Software Development Methods to the Essence Framework. The 5th International Workshop on Theory-Oriented Software Engineering (2016), 26–32.
  • Gomaa, H. 2005. Designing Software Product Lines with UML. Engineering. April (2005), 160–216. DOI:https://doi.org/10.1109/SEW.2005.5.
  • Havelsan Corporate Web site: www.havelsan.com.tr/SirketProfili/ENDefault.aspx.
  • Henderson-Sellers, B. and Gonzalez-Perez, C. 2011. Towards the Use of Granularity Theory for Determining the Size of Atomic Method Fragments for Use in Situational Method Engineering. IFIP Advances in Information and Communication Technology. 49–63.
  • Jacobson, I. et al. 2013. The Essence of Software Engineering.
  • Kalus, G. and Kuhrmann, M. 2013. Criteria for software process tailoring: a systematic review. Proceedings of the 2013 International Conference on Software and System Process - ICSSP 2013 (2013)
  • Larman, C. 2004. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition). Prentice Hall, Inc.
  • Mohan, K. et al. 2010. Integrating Software Product Line Engineering and Agile Development. IEEE Software. 27, 3 (2010), 48–55.
  • Object Management Group 2015. Essence - Kernel and Language for Software Engineering Methods. OMG. Version 1.1 (2015). DOI:https://doi.org/http://www.omg.org/spec/Essence/1.0/PDF/.
  • Object Management Group 2008. Software & Systems Process Engineering Meta-Model Specification. Version 2 (2008).
  • Park, J.S. et al. 2016. Scrum Powered by Essence. ACM SIGSOFT Software Engineering Notes. 41, 1 (2016), 1–8. DOI:https://doi.org/10.1145/2853073.2853088.
  • Péraire, C. 2013. A Step Forward in Software Engineering Education : Introducing the SEMAT Essence Framework. Latin American Congress on Requirements Engineering and Software Testing (LACREST) (Medelin, 2013).
  • Pohl, K. et al. 2005. Software product line engineering: foundations, principles, and techniques. Springer.
  • Schmid, K. and Verlage, M. 2002. The Economic Impact of Product Line Adoption and Evolution. IEEE Software. 19, 4 (2002), 50–57.
  • Schwaber, K. and Sutherland, J. 2011. The scrum guide. Scrum. org, October. 2, July (2011), 17. DOI:https://doi.org/10.1053/j.jrn.2009.08.012.
  • Software Engineering Method and Theory: http://semat.org/. Accessed: 2016-03-26.
  • Tüzün, E. et al. 2015. Empirical evaluation of a decision support model for adopting software product line engineering. Information and Software Technology. 60, (2015). DOI:https://doi.org/10.1016/j.infsof.2014.12.007.
  • Weiss, D.M. and Lai, C.T.R. 1999. Software Product-Line Engineering: A Family-Based Software Development Process. Addison-Wesley Professional.