Business Natural Languages Development In Ruby

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    Business Natural Languages Development In Ruby - Presentation Transcript

    1. Business Natural Language (BNL) Jay Fields http://jayfields.com
    2. What?
    3. Domain Specific Language (DSL)
    4. Why?
    5. Developer Developer Business QA
    6. Developer Developer Business QA
    7. Developer Developer Business QA
    8. Developer Developer Business QA
    9. Developer Developer Business QA
    10. Developer Developer Business QA
    11. Developer DSL Business
    12. Why?
    13. Benefits
    14. Benefits Managers -Improve efficiency by distributing workload
    15. Benefits
    16. Benefits Developers -Technical Decisions not Business Details
    17. Benefits
    18. Benefits Business -Time to market
    19. BNL == DSL
    20. BNL == DSL #=> false
    21. Domain Specific Languages
    22. Domain Specific Languages YACC Excel Macros Ruby on Rails Cobol Rake XML etc...
    23. So?
    24. Concise or Verbose?
    25. Concise or Verbose? Who’s the author?
    26. “DSL” is too general
    27. BNL < DSL
    28. BNL < DSL #=> true
    29. The Difference
    30. The Difference • Natural Language
    31. The Difference • Natural Language • Written by the Business - subject matter experts
    32. Today
    33. Specification Award 2 points if the fare class is A, C, D, J, Z
    34. Code account.award 2.points if [A, C, D, J, Z].include? fare
    35. Specification Award 2 points if the fare class is A, C, D, J, Z
    36. Code Award 2 points if the fare class is A, C, D, J, Z
    37. How?
    38. External
    39. Award 2 points if the fare class is A, C, D, J, Z
    40. Award 2 points if the fare class is A, C, D, J, Z account.award 2.points if [A, C, D, J, Z].include? fare
    41. Award 2 points if the fare class is A, C, D, J, Z
    42. Award 2 points if the fare class is A, C, D, J, Z •account.instance_eval
    43. Award 2 points if the fare class is A, C, D, J, Z •rule.gsub /^A/, “a”
    44. award 2 points if the fare class is A, C, D, J, Z •rule.gsub /^A/, “a”
    45. award 2 points if the fare class is A, C, D, J, Z • rule.gsub /\\d /, ‘\\1.’
    46. award 2.points if the fare class is A, C, D, J, Z • rule.gsub /\\d /, ‘\\1.’
    47. award 2.points if the fare class is A, C, D, J, Z •rule.gsub /class/, ‘’
    48. award 2.points if the fare is A, C, D, J, Z •rule.gsub /class/, ‘’
    49. award 2.points if the fare is A, C, D, J, Z •rule.gsub /([A-Z, ]+)/, '[\\1]'
    50. award 2.points if the fare is [ A, C, D, J, Z ] •rule.gsub /([A-Z, ]+)/, '[\\1]'
    51. award 2.points if the fare is [ A, C, D, J, Z ] •rule.gsub /if the ([a-z] +) is(\\[.+\\])/, 'if \\2.include? \\1'
    52. award 2.points if [ A, C, D, J, Z].include? fare •rule.gsub /if the ([a-z] +) is(\\[.+\\])/, 'if \\2.include? \\1'
    53. award 2.points if [ A, C, D, J, Z].include? fare
    54. award 2.points if [ A, C, D, J, Z].include? fare account.award 2.points if [A, C, D, J, Z].include? fare
    55. award 2.points if [ A, C, D, J, Z].include? fare account.award 2.points if [A, C, D, J, Z].include? fare Specification == Code
    56. Code, Specification,
    57. Code, Specification, and Documentation
    58. Readable Documentation
    59. Descriptive And Maintainable Phrases (DAMP)
    60. Maintainable
    61. Readable by any subject matter expert
    62. Who is the user?
    63. Training
    64. Training
    65. Statistics
    66. Developer Developer Business QA
    67. Developer Developer Business QA
    68. Developer Developer Business QA
    69. Developer BNL Business
    70. \"A change that used to take 3-4 days now takes about 10 minutes.\"
    71. Example
    72. First Class / Business Class / A, C, D, J, R, Z 2 BusinessFirst Full Fare Y, H 2 Economy Class K, M, N, B, Economy Class 1 O,V, U
    73. Business Logic
    74. BNL?
    75. No
    76. No
    77. BNL When the fare class is A, C, D, J, R, or Z then award 2 points
    78. When the fare class is A, C, D, J, R, or Z then award 2 points
    79. When the fare class is A, C, D, J, R, or Z then award 2 points rule.gsub /the fare class is /, ‘’ When A, C, D, J, R, or Z then award 2 points
    80. When A, C, D, J, R, or Z then award 2 points
    81. When A, C, D, J, R, or Z then award 2 points rule.gsub /^W/, ‘w’ when A, C, D, J, R, or Z then award 2 points
    82. when A, C, D, J, R, or Z then award 2 points
    83. when A, C, D, J, R, or Z then award 2 points rule.gsub / or /, ‘ ’ when A, C, D, J, R, Z then award 2 points
    84. when A, C, D, J, R, Z then award 2 points
    85. when A, C, D, J, R, Z then award 2 points rule.gsub /award /, ‘’ when A, C, D, J, R, Z then 2 points
    86. when A, C, D, J, R, Z then 2 points
    87. when A, C, D, J, R, Z then 2 points rule.gsub / points/, ‘’ when A, C, D, J, R, Z then 2
    88. when A, C, D, J, R, Z then 2
    89. when A, C, D, J, R, Z then 2 rule.gsub /([A-Z])/, 'FareClass::\\1'
    90. when FareClass::A, FareClass::C, FareClass::D, FareClass::J, FareClass::R, FareClass::Z then 2
    91. when FareClass::A, FareClass::C, FareClass::D, FareClass::J, FareClass::R, FareClass::Z then 2
    92. Getting it to execute
    93. BusinessLogic.rules returns the rules from the DB
    94. Developer Business
    95. Developer Business
    96. Approver Developer Business Production
    97. Deployment?
    98. Programmers: Are you out of a job?
    99. Absolutely Not
    100. Absolutely Not • Language Workbench
    101. Absolutely Not •Language Workbench •Syntax Checking
    102. Absolutely Not •Language Workbench •Syntax Checking •Test Environment
    103. Absolutely Not •Language Workbench •Syntax Checking •Test Environment •Approval Workflow
    104. Syntax Checking
    105. Syntax Checking When the fare class is A, C, D, J, R, or Z then award 2 points
    106. Syntax Checking
    107. Syntax Checking When the far Did you mean ‘fare class’?
    108. Commercial Language Workbenches
    109. Commercial Language Workbenches MPS - JetBrains Intentional
    110. Another Example
    111. Employee Compensation
    112. Corporate Datastore
    113. Example Employees
    114. Demo
    115. Bad Choice?
    116. Author?
    117. Author? Change Frequency
    118. What deserves a BNL?
    119. Ruby?
    120. BNL vs Rules Engines
    121. More Information bnl.jayfields.com
    122. Questions bnl@jayfields.com Jay Fields http://www.jayfields.com

    + ConSanFrancisco123ConSanFrancisco123, 6 months ago

    custom

    425 views, 1 favs, 0 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 425
      • 425 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 5
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories