arch:role-of-dsl-in-domain-analysis

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
arch:role-of-dsl-in-domain-analysis [2021/10/17 20:41] aavolkov_3arch:role-of-dsl-in-domain-analysis [2026/08/29 07:59] (current) – external edit 127.0.0.1
Line 14: Line 14:
  
 In this essay the role of domain specific languages on domain analysis will be discussed. In this essay the role of domain specific languages on domain analysis will be discussed.
- 
  
 ===== Opportunities and Risks ===== ===== Opportunities and Risks =====
Line 22: Line 21:
 The benefits of DSLs include: The benefits of DSLs include:
  
-- The possibility for solutions to be expressed at the level of abstraction of the problem domain. Therefore, it allows domain experts to understand, validate, modify, and develop DSL programs. +  * The possibility for solutions to be expressed at the level of abstraction of the problem domain. Therefore, it allows domain experts to understand, validate, modify, and develop DSL programs. 
-- DSL programs are concise, self-documenting to a large extent, and can be reused for different purposes [3]. +  DSL programs are concise, self-documenting to a large extent, and can be reused for different purposes [3]. 
-- DSLs enhance productivity, reliability, maintainability [4, 5], and portability [6]. +  DSLs enhance productivity, reliability, maintainability [4, 5], and portability [6]. 
-- DSLs embody domain knowledge, and thus enable the conservation and reuse of this knowledge. +  DSLs embody domain knowledge, and thus enable the conservation and reuse of this knowledge. 
-- DSLs allow validation and optimization at the domain level [7, 8, 9]. +  DSLs allow validation and optimization at the domain level [7, 8, 9]. 
-- DSLs improve testability following approaches such as [10].+  DSLs improve testability following approaches such as [10].
  
 The disadvantages of the use of a DSL are: The disadvantages of the use of a DSL are:
-- DSL programs rather costly in terms of design, implementation and maintenance. + 
-- DSL users need to be specially educated to know specific language. +  * DSL programs rather costly in terms of design, implementation and maintenance. 
-- The DSL is limited in terms of availability [11]. +  DSL users need to be specially educated to know specific language. 
-- The difficulty of finding the proper scope for a DSL. +  The DSL is limited in terms of availability [11]. 
-- The difficulty of balancing between domain-specificity and general-purpose programming language constructs. +  The difficulty of finding the proper scope for a DSL. 
-- The potential loss of efficiency when compared with hand-coded software.+  The difficulty of balancing between domain-specificity and general-purpose programming language constructs. 
 +  The potential loss of efficiency when compared with hand-coded software.
  
 ===== DSL Design Methodology ===== ===== DSL Design Methodology =====
  
 The development of a domain-specific language includes the following steps [12, 13]: The development of a domain-specific language includes the following steps [12, 13]:
-- Analysis  + 
-o (1) Identification of the problem domain. +  * Analysis  
-o (2) Gathering all relevant data and knowledge for particular domain.  + 
-o (3) Grouping the knowledge in a handful of semantic notions and operations on them.  +    - Identification of the problem domain. 
-o (4) Design a DSL that precisely describes applications domain. +    Gathering all relevant data and knowledge for particular domain. 
-- Implementation  +    Grouping the knowledge in a handful of semantic notions and operations on them. 
-o (5) Develop a library that implements the designed DSL.  +    Design a DSL that precisely describes applications domain. 
-o (6) Design and implement a compiler that converts DSL programs to a sequence of library calls. +  Implementation  
-- Use  + 
-o (7) Write DSL programs for all desired applications and compile them.+    - Develop a library that implements the designed DSL. 
 +    Design and implement a compiler that converts DSL programs to a sequence of library calls. 
 +  Use  
 + 
 +    - Write DSL programs for all desired applications and compile them.
  
 ===== DSL Analysis ===== ===== DSL Analysis =====
Line 59: Line 63:
 ===== DSL Implementation ===== ===== DSL Implementation =====
  
-The implementation steps (5) and (6) of the previous section can be carried out using several approaches:+The implementation steps (1) and (2) of the previous section can be carried out using several approaches:
  
 Interpretation or compilation Interpretation or compilation
Line 82: Line 86:
  
 Domain analysis uses domain-specific language as a methodology for producing domain models. The domain-specific language allows programs to be concise, enhance productivity, reliability, maintainability, and portability. On the other hand, DSL programs come with costs of design, implementation and maintenance. The entry threshold to working with DSL is also higher then in general purpose languages. Overall, in some cases it seems a decent solution for producing domain models in domain analysis. Domain analysis uses domain-specific language as a methodology for producing domain models. The domain-specific language allows programs to be concise, enhance productivity, reliability, maintainability, and portability. On the other hand, DSL programs come with costs of design, implementation and maintenance. The entry threshold to working with DSL is also higher then in general purpose languages. Overall, in some cases it seems a decent solution for producing domain models in domain analysis.
- 
- 
- 
  
 ===== References ===== ===== References =====
  
-1. Ruben Prieto-Diaz. Domain analysis: an introduction, Apr 1990. +  - Ruben Prieto-Diaz. Domain analysis: an introduction, Apr 1990. 
-2. Paul Klint, Joost Visser. Domain-Specific Languages, June 2000. +  Paul Klint, Joost Visser. Domain-Specific Languages, June 2000. 
-3. D. A. Ladd and J. C. Ramming. Two application languages in software production. In USENIX Very High Level Languages Symposium Proceedings, pages 169–178, October 1994. +  D. A. Ladd and J. C. Ramming. Two application languages in software production. In USENIX Very High Level Languages Symposium Proceedings, pages 169–178, October 1994. 
-4. A. van Deursen and P. Klint. Little languages: Little maintenance? Journal of Software Maintenance, 10:75–92, 1998. +  A. van Deursen and P. Klint. Little languages: Little maintenance? Journal of Software Maintenance, 10:75–92, 1998. 
-5. R. B. Kieburtz, L. McKinney, J. M. Bell, J. Hook, A. Kotov, J. Lewis, D. P. Oliva, T. Sheard, I. Smith, and L. Walton. A software engineering experiment in software component generation. In Proceedings of the 18th International Conference on Software Engineering ICSE-18, pages 542–553. IEEE, 1996. +  R. B. Kieburtz, L. McKinney, J. M. Bell, J. Hook, A. Kotov, J. Lewis, D. P. Oliva, T. Sheard, I. Smith, and L. Walton. A software engineering experiment in software component generation. In Proceedings of the 18th International Conference on Software Engineering ICSE-18, pages 542–553. IEEE, 1996. 
-6. R. M. Herndon and V. A. Berzins. The realizable benefits of a language prototyping language. IEEE Transactions on Software Engineering, SE-14:803–809, 1988. +  R. M. Herndon and V. A. Berzins. The realizable benefits of a language prototyping language. IEEE Transactions on Software Engineering, SE-14:803–809, 1988. 
-7. A. Basu, M. Hayden, G. Morrisett, and T. von Eicken. A language-based approach to protocol construction. In Kamin [43], pages 1–15. +  A. Basu, M. Hayden, G. Morrisett, and T. von Eicken. A language-based approach to protocol construction. In Kamin [43], pages 1–15. 
-8. D. Bruce. What makes a good domain-specific language? APOSTLE, and its approach to parallel discrete event simulation. In Kamin [43], pages 17–35. +  D. Bruce. What makes a good domain-specific language? APOSTLE, and its approach to parallel discrete event simulation. In Kamin [43], pages 17–35. 
-9. V. Menon and K. Pingali. A case for source-level transformations in MATLAB. In DSL-99 [27], pages 53–66. +  V. Menon and K. Pingali. A case for source-level transformations in MATLAB. In DSL-99 [27], pages 53–66. 
-10. E. G. Sirer and B. N. Bershad. Using production grammars in software testing. In DSL-99 [27], pages 1–14. +  E. G. Sirer and B. N. Bershad. Using production grammars in software testing. In DSL-99 [27], pages 1–14. 
-11. C. W. Krueger. Software reuse. ACM Computing Surveys, 24(2):131–183, June 1992. +  C. W. Krueger. Software reuse. ACM Computing Surveys, 24(2):131–183, June 1992. 
-12. J. C. Cleaveland. Building application generators. IEEE Software, pages 25–33, July 1988. +  J. C. Cleaveland. Building application generators. IEEE Software, pages 25–33, July 1988. 
-13. A. van Deursen and P. Klint. Little languages: Little maintenance? Journal of Software Maintenance, 10:75–92, 1998 +  A. van Deursen and P. Klint. Little languages: Little maintenance? Journal of Software Maintenance, 10:75–92, 1998 
-14. J. M. Neighbors. The Draco approach to constructing software from reusable components. IEEE Transactions on Software Engineering, SE-10(5):564–74, September 1984. +  J. M. Neighbors. The Draco approach to constructing software from reusable components. IEEE Transactions on Software Engineering, SE-10(5):564–74, September 1984. 
-15. G. Arango. Domain analysis: From art form to engineering discipline. In Fifth International Workshop on Software Specification and Design, pages 152–159, May 1989. Appeared as ACM SIGSOFT Engineering Notes 14(3). +  G. Arango. Domain analysis: From art form to engineering discipline. In Fifth International Workshop on Software Specification and Design, pages 152–159, May 1989. Appeared as ACM SIGSOFT Engineering Notes 14(3). 
-16. R. N. Taylor, W. Tracz, and L. Coglianese. Software development using domain-specific software architectures. ACM SIGSOFT Software Engineering Notes, 20(5):27–37, 1995. +  R. N. Taylor, W. Tracz, and L. Coglianese. Software development using domain-specific software architectures. ACM SIGSOFT Software Engineering Notes, 20(5):27–37, 1995. 
-17. J. L. Bentley. Programming pearls: Little languages. Communications of the ACM, 29(8):711–721, August 1986 +  J. L. Bentley. Programming pearls: Little languages. Communications of the ACM, 29(8):711–721, August 1986
  • arch/role-of-dsl-in-domain-analysis.1634503313.txt.gz
  • Last modified: 2026/08/29 07:59
  • (external edit)