A Systematic Process for Domain Engineering

Software reuse is a key aspect for improving quality and productivity. However, this process is more effective when systematically planned and managed in the context of a specific domain, where application families share some functionality. In this scenario, Domain Engineering (DE) has been seen as a facilitator to obtain the desired benefits. Nevertheless, the existing domain engineering processes present crucial problems, such as lacking of details in the three basic steps of domain engineering and not being systematic. Thus, this paper aims at defining a systematic process to perform domain engineering based on the-state-of-the-art in the area, which includes the steps of domain analysis, domain design, and domain implementation. An experimental study evaluates the viability of the use of the process and the impact of applying it to a domain engineering project.

[1]  Jeffrey Kotula,et al.  Using Patterns To Create Component Documentation , 1998, IEEE Softw..

[2]  Albert Endres Lessons learned in an industrial software lab (software development) , 1993, IEEE Software.

[3]  Daniel Lucrédio,et al.  A Systematic Approach to Design Domain-Specific Software Architectures , 2007, J. Softw..

[4]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[5]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[6]  Uday R. Kulkarni,et al.  Strategies for Software Reuse: A Principal Component Analysis of Reuse Practices , 2003, IEEE Trans. Software Eng..

[7]  Daniel Lucrédio,et al.  The Domain Analysis Concept Revisited: A Practical Approach , 2006, ICSR.

[8]  Daniel Lucrédio,et al.  An Experimental Study in Domain Engineering , 2007, 33rd EUROMICRO Conference on Software Engineering and Advanced Applications (EUROMICRO 2007).

[9]  Jaejoon Lee,et al.  Concepts and Guidelines of Feature Modeling for Product Line Software Engineering , 2002, ICSR.

[10]  Mike Mannion,et al.  Using Patterns to Model Variability in Product Families , 1999, IEEE Softw..

[11]  Rebecca Joos Software reuse at Motorola , 1994, IEEE Software.

[12]  CoplienJames,et al.  Commonality and Variability in Software Engineering , 1998 .

[13]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[14]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[15]  Salwa K. Abd-El-Hafiz,et al.  A method for documenting code components , 1996, J. Syst. Softw..

[16]  John Daniels,et al.  UML Components: A Simple Process for Specifying Component-Based Software , 2000 .

[17]  Mônica Ferreira da Silva,et al.  Packaging reusable components using patterns and hypermedia , 1996, Proceedings of Fourth IEEE International Conference on Software Reuse.

[18]  Daniel Lucrédio,et al.  Designing Domain-Specific Software Architecture (DSSA): Towards a New Approach , 2007, 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07).

[19]  D. Bauer A Reusable Parts Center , 1993, IBM Syst. J..

[20]  James Milne Neighbors,et al.  Software construction using components , 1980 .

[21]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[22]  Cláudia Maria Lima Werner,et al.  Packaging reusable components using patterns and hypermedia , 1996, ICSR.

[23]  Daniel Lucrédio,et al.  A survey on software reuse processes , 2005, IRI -2005 IEEE International Conference on Information Reuse and Integration, Conf, 2005..

[24]  Silvio Romero de Lemos Meira,et al.  A comparative study on software reuse metrics and economic models from a traceability perspective , 2005, IRI -2005 IEEE International Conference on Information Reuse and Integration, Conf, 2005..

[25]  William B. Frakes,et al.  Software reuse research: status and future , 2005, IEEE Transactions on Software Engineering.

[26]  Martin L. Griss Software reuse experience at Hewlett-Packard , 1994, Proceedings of 16th International Conference on Software Engineering.

[27]  Eila Niemelä,et al.  Component documentation - a key issue in software product lines , 2004, Inf. Softw. Technol..

[28]  Jan Bosch,et al.  On the notion of variability in software product lines , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[29]  G. Arango Domain analysis: from art form to engineering discipline , 1989, IWSSD '89.

[30]  Renata Pontin de Mattos Fortes,et al.  Domain Implementation in Software Product Lines Using OSGi , 2008, Seventh International Conference on Composition-Based Software Systems (ICCBSS 2008).

[31]  Maurizio Morisio,et al.  Success and Failure Factors in Software Reuse , 2002, IEEE Trans. Software Eng..

[32]  Krzysztof Czarnecki,et al.  Generative Programming , 2001, ECOOP Workshops.

[33]  David C. Rine,et al.  Success factors for software reuse that are applicable across domains and businesses , 1997, SAC '97.

[34]  Kyo Chul Kang,et al.  Feature Dependency Analysis for Product Line Component Design , 2004, ICSR.

[35]  D. Bauer Technical forum: a reusable parts center , 1993 .

[36]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[37]  Rubén Prieto-Díaz,et al.  Domain analysis: an introduction , 1990, SOEN.

[38]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[39]  Daniel Hoffman,et al.  Commonality and Variability in Software Engineering , 1998, IEEE Softw..

[40]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .