Has anyone used Moose to deal with a large legacy Progress ABL/4GL codebase, and if yes, what are the caveats, experiences, lessons learned you can share about this?
Progress codebase analysis using Moose
268 Views Asked by p.marino At
1
There are 1 best solutions below
Related Questions in CODE-ANALYSIS
- Are there any way to export Sonarlint report from Intellij?
- generate incoming call graph
- Find line of text in MsgBox with a string literal with VBA regex
- Don't resolve typedefs in Visual Studio 2022 tooltips
- Disable "Code analysis" in Visual Studio Code with C++
- error CS1056: Unexpected character '$' during code analysis
- Generate a 'readonly record struct' using Roslyn
- How can I see debug info about the VS Code Cpptools extension's IntelliSense and Code Analysis?
- dotnet Code Analysis ignoring certain entries in .editorconfig file
- How can you distinguish between a standard library call, a third-party library call, and an API call from the repository?
- Clarification needed: core differences between two receipt selection code snippets
- Async method's return decorated with "NotNullIfNotNull" still returns variable that may be null
- Why is Visual Studio saying this cast from System.Int32 to System.Byte is redundant?
- Generic not-null validator for CA1062 in .NET 6
- How do code analysis, AST generation and SARIF report work in MSBuild?
Related Questions in PROGRESS-4GL
- How xml-node-type = 'hidden' play a role in a loop
- Import a progress 4gl file which contains multiple procedure inside a procedure
- How to export the start date and time in MS Project?
- Copy and use Progress database file at runtime
- Is it possible to find out the list of programs which reads a table per second in real time? - PROGRESS 4GL
- Using preprocessor variable as include file parameter in Progress
- CREATE trigger in an OpenEdge database
- OpenEdge ABL JSON to temp table: READ-JSON
- Get invoked Progress procedure .p file location at runtime
- How can I differentiate an Array of integer values vs an Array of Object
- OpenEdge JSON with a extent propertry
- Using XSD to generate ProDataSet, populate manually, then use ProDataSet to create XML
- Is ROWID unique across all Progress database tables?
- Initializing date format
- MTOM Request in Progress OpenEdge
Related Questions in LEGACY-CODE
- Why JavaFX shows icon image in IDE project Run, but doesn't show the image in project build?
- Seeking Guidance on PHPStan Configuration for Legacy Code Migration - "Variable $... might not be defined"
- Delphi Cannot compile used unit in from custom package
- Checking if some fields of an object are null
- How to run Julia 0.4 Code with an ASCIIString substitute?
- How to compare a legacy javascript method implementation with a new one?
- Debugging techniques: How to identify involved code in an application functionality?
- The C++ code that using templates doesn't compile in c++ 20, but was ok in c++ 17
- Refactoring old JS. Migrate from legacy JS to webpack. Do I even need bundler or stay vanila JS?
- Create artificial argv array for legacy parent class accepting main-like arguments in the constructor
- Recompiling an legacy BASIC program with .BAS files for 64-bit machines
- Maintain and Release Ionic Framework v1 in 2023
- Upgrade legacy Java Project from Ant (i.e. subant) to Maven
- How to resolve H-10 App Crash Error on Heroku?
- How to measure the code readability of a file?
Related Questions in MOOSE-TECHNOLOGY
- frozen solving environment step in installing a package in ubuntu
- Find methods with return type String
- Error on importing FAMIX Java model using the VerveineJ
- Edge from a node to itself in Roassal
- Building a tree/outliner like graphical interface in Pharo/Smalltalk using Moose Glamorous Toolkit
- Progress codebase analysis using Moose
- Make edges not clickable in Roassal visualization from within a Glamour browser
- How to get vertical labels with Roassal?
- Ask "Save or Discard edits" to user that has manipulated a Glamour Text or Smalltalk code presentation
- Avoid duplication of edges in roasal
- Is there any event that triggers right after the layout is applied in Roassal?
- Why won't my action's shortcut be executed?
- How can I find all objects that reference myObject?
- In Moose, why can't I populate my dynamic presentation with an action?
- In Moose, how can I be notified of a special key press?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
From building a Delphi parser for Moose I know that it takes quite a lot of effort to get your FAMIX model complete. I'd recommend to make your feedback cycle as short as possible. From the progress grammar I'd say the system looks a bit more complicated than Delphi. Focus on the real & perceived problems and take shortcuts to find solutions for them. So you might want to delay writing a parser in Smalltalk, and just start using the pro parse stuff to generate a MSE file containing the interesting bits.
If the system is really large you might have to be careful not to run out of memory currently.
You are aware of the humane assessment site? The blog provides lots of examples and things to do/don't.
It really is an environment for developers, extremely powerful and having still a lot of rough edges. The mailing list is very helpful
When dealing with legacy systems, there are a few things I do before starting Moose, to get a feeling for the system. I run a duplication detector and zip the individual table dumps (that works well on progress files). Large files that compress extremely well are interesting discussion topics :)