An Industrial Assessment of Software Framework Design: A case study of a rule-based framework

Software frameworks provide reusable functionality and play an important role in increasing the productivity and maintainability of large software systems. Commonly the functionality and services encapsulated by the framework is accessed through an API, obscuring the inner workings of the framework. Many companies have rules that their products and software systems are required to follow, these rules can have a wide range of technical depth and are often classified as business rules, guidelines, regulations and policies, some frameworks are driven by these rules. These frameworks are used in a system to implement a set of rules,in addition to providing the usual functionalities of a framework. We call such frameworks rule-based.These frameworks can be used by companies to enforce rules in a production environment, one of such companies is Ericsson. Ericsson develops applications that must adhere to company-specific design rules, the use of a rule-based framework eases the common implementation of these rules. e.g. by reducing boilerplate code created by several applications implementing the same design rules.Using Ericssons framework as a basis for the case study the purpose of the study was to identify and demonstrate what values rule-based frameworks can provide for different stakeholders. In addition to this the study provided insight into what factors should drive the design, development and usage of rule-based frameworks. Data was collected throughout the case study through archival data, interviews and to a lesser extent, surveys. The data was collected from a variety of stakeholders to capture the difference perspectives and experiences. The data was analyzed and modeled using iStar Goal Modeling and e-3 Value Modeling to aid in understanding the ecosystem and values of the framework.

[1]  Ray Dawson,et al.  Towards an Approach for Analysing the Strategic Alignment of Software Requirements using Quantified Goal Graphs , 2013, ArXiv.

[2]  Paul S. Rosenbloom,et al.  Improving Rule-Based Systems Through Case-Based Reasoning , 1991, AAAI.

[3]  Izuru Kume,et al.  A Feature Model of Framework Applications , 2013, 2013 14th ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing.

[4]  Schahram Dustdar,et al.  VIDRE--A Distributed Service-Oriented Business Rule Engine based on RuleML , 2006, 2006 10th IEEE International Enterprise Distributed Object Computing Conference (EDOC'06).

[5]  Ralph E. Johnson,et al.  Frameworks = (components + patterns) , 1997, CACM.

[6]  Marcus E. Markiewicz,et al.  Object oriented framework development , 2001, CROS.

[7]  Maria Ganzha,et al.  Implementing Rule-Based Automated Price Negotiation in an Agent System , 2007, J. Univers. Comput. Sci..

[8]  Harold Thimbleby,et al.  A framework for design , 2007 .

[9]  Rainer Schuster,et al.  From e3-value to REA: Modeling Multi-party E-business Collaborations , 2009, 2009 IEEE Conference on Commerce and Enterprise Computing.

[10]  Lin Liu,et al.  Designing information systems in social context: a goal and scenario modelling approach , 2004, Inf. Syst..

[11]  W. Marsden I and J , 2012 .

[12]  Douglas C. Schmidt,et al.  Object-oriented application frameworks , 1997, CACM.

[13]  Andreas Speck,et al.  A "framework" for object oriented frameworks design , 1999, Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275).

[14]  Christian Manger,et al.  Advantages and disadvantages of framework programming with reference to Yii php framework, gideon .net framework and other modern frameworks , 2010 .

[15]  V. Braun,et al.  Using thematic analysis in psychology , 2006 .

[16]  Brian Foote,et al.  Designing Reusable Classes , 2001 .

[17]  Brian Fitzgerald,et al.  Inner Source--Adopting Open Source Development Practices in Organizations: A Tutorial , 2015, IEEE Software.

[18]  Hans Albrecht Schmid,et al.  Systematic framework design by generalization , 1997, CACM.

[19]  Christine Nadel,et al.  Case Study Research Design And Methods , 2016 .

[20]  Per Runeson,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009, Empirical Software Engineering.

[21]  Paul G. Sorenson,et al.  Hooking into Object-Oriented Application Frameworks , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[22]  B. Crabtree,et al.  The qualitative research interview , 2006, Medical education.

[23]  Carolyn B. Seaman,et al.  Qualitative Methods in Empirical Studies of Software Engineering , 1999, IEEE Trans. Software Eng..

[24]  Colin Robson,et al.  Real World Research: A Resource for Social Scientists and Practitioner-Researchers , 1993 .

[25]  Edward H. Shortliffe,et al.  An Approach to Verifying Completeness and Consistency in a Rule-Based Expert System , 1982, AI Mag..

[26]  M. Harper,et al.  Member Checking: Can Benefits Be Gained Similar to Group Therapy? , 2012 .