I am sorry someone holds the opinion that EA is for the analyst types. It is not true. I think that EA tries to cover the needs of several stakeholders - Data Architects, Process Architects, Application Developers (Programmers) and many more.
EA is based on UML which facilitates code generation as class stubs. It is true that EA must step beyond that to meet a need which is valid. Recent developments in the market (executable BPMS tools that hold the features of CASE tools and code generators ) suggest that a rule based code generation is the way forward for tools like EA.
About three years ago, I suggested that EA be developed to generate code from decision tables based on decision trees / rules. Today most of the BPMS tools are doing that. This is the capability IT shops are now using to control outsoursing because we discovered that no matter how hard we try, we can never specify requirements correctly enough for correct code development in an outsourced programme.
The most difficult part of code development is managing the logic, and running a simulation to test the invariance of the rules. The ANSI standard for decision tables has been around for so long. This tool is what bridges the Business Analyst and Developer view transparently.
I recommend that people consider adding a tool known as Logic Gem (
www.catalyst.com) to their development toolkit. Unfortunately, given that I dont code, I am unable to create a bridge between EA and Logic Gem. I will leave that some brilliant developer in the EA community.
I am sure that with the inclusing of the state table, Sparxsystem will one day soon provide code generation based on their state machine feature.
About Logic Gem:
LogicGem 3.0
Logic Processor and Decision Table Analysis Tool
LogicGem has a two-fold audience, software developers (programmers) and business analysts (non-programmers). The common thread between these two diverse groups is that they both need to design logically complete business rules. For the programmer, the business rules are in fact functional requirements for a software application that are translated into a programming language that becomes part of the application. For the business analyst or domain expert, the same need exists with the exception of translating the logic to a programming language. Business analysts need to develop concise business rules that represent real life or proposed business processes and these processes need to be every bit as logically robust as a software implementation. Collectively, we can refer to both groups of programmers and business analysts as a "logic engineer".
Much of the effort in software development does not involve writing code, but rather the process of covering every possible combination of circumstances – user input, database transaction, or any other event – that the program will encounter. When the programmer or analyst overlooks a possible combination of inputs or events, the program may do things essentially at random. Even worse are errors made during program maintenance, usually by programmers who do not fully understand the interaction between dozens of different possibilities. As it is, logical analysis is tedious and error prone: it's easy to omit, duplicate, or contradict conditions.
LogicGem is a software tool called a "logic processor" that addresses these issues using decision table theory. LogicGem consists of a logic editor, and logic compiler. With the logic editor, you can create logic tables – spreadsheet-like constructions that encapsulate a set of logical rules. One part of a table contains conditions that can be linked to create a rule, and the other part contains actions that are related to the rules. Once you've defined the rules, the editor will automatically analyze them, add missing rules, and remove those that are redundant or contradictory. Decision table technology is the vehicle by which logically complete business rules may be constructed. When you're done, the logic compiler is available to generate source code in Basic, C, C++, Fortran, FoxPro, Java, Pascal, PowerBuilder, SAS, Visual Basic, Visual Basic.NET, Visual C#.NET, or Xbase. The compiler will produce a set of English, Spanish, French or German rules that can be used as documentation or as a knowledge base.
The LogicGem logic processor software tool is designed to provide a familiar, easy-to-use way to create, edit, verify and compile decision table logic. LogicGem's logic tables express a problem visually, making it easy to understand. LogicGem provides the means to prototype and expand a high-level procedural concept into a decision table, work it through analysis and design phases, and then generate English language documentation and programming source code in various programming languages. LogicGem provides tools to ensure that a table's logic is complete, unambiguous and contains every applicable rule in an expanded or reduced forma