SlideShare a Scribd company logo
Journey to the Center
of your 4GL application
Eric Vercelletto
eric@begooden-it.com
About the speaker
2
• Informix 4GL passionate and advocate since 1986
• Has tried many solutions about 4GL documentation
since 1986
• Understood the impact of losing an application
Architect
• Prefers doing more and better with smallest effort
than doing less and worse with biggest effort
• Loves understanding where he is before stepping
forward
Agenda
• Questions about huge old 4gl applications and
what to do with them
• Yes, having a good application documentation is
important for many different reasons!
• There are not many good solutions available for
x4gl documentation
• Explore the right solution and look to the future
with optimism
3
Our 4GL applications
fulfill company’s requirements
• They are tailored to the company’s
functionality needs
• They have been running for tens of years
• They are bug free
• Productivity and user adoption is great
• But ….
4
The environment is changing
• Young and mid-age users do not like text-based
• Company’s activity is evolving or changing
• Architectures and infrastructures are changing
• New functionality often require new
developments based on new technologies
5
Time is flying
• The application is getting more and more complex
• In-house developers are getting old
• The application architect knows everything about the
application, but
– Developers know only separate parts of it
– New developers do not know 4GL
– Management has no global nor in-depth knowledge of it
6
Panic mode!
This had to happen one day!
• The application historical designer will retire within
1 year
• He knows every single piece of the application, but
no one else does
• the application documentation is not usable
• Beautiful 1300 pages Word document, last update in 2003
• No big picture nor flowcharts helping to understand
• Comments in source code not easily accessible and lots of trash
7
Is this your 4gl application documentation?
8
Or is it more identified by that?
9
Time to stop and think
Where should we go?
• Decommission the application and purchase a famous ERP?
– Result is incertain: heavy hidden costs, customer adoption at risk,
no error is possible
• Re-develop in house with a more popular language (java,C+
+, C#,Python,php ...)?
– Risk is mainly on delivery time, app should meet requirements
• Go x4GL ? ( don’t think too much, go Querix Lycia 3 )
– Preserve app investment and re-instanciate into open, flexible
modern technologies. Probably the best solution and best return
on investiment
• Leave as is and pray ?
– How long will this situation be supportable?
10
Time to stop and think
How to avoid a mistake?
• Decommission the application and purchase a famous ERP?
• Re-develop in house with a more popular language ?
• Go x4GL ? ( Aubit, Genero, Querix)
• Leave as is and pray ?
In any case, having a clear and comprehensive
documentation is necessary if we want to take
a correctly grounded decision!
11
How to build a good documentation
if you are not happy with what you have?
• Pay for a company to build a 3000 pages documentation
– May take long to very long time
– Budget easily reaches 100’s of K$/K€ ….
– Will be deprecated as soon as it is delivered
– Not a productivity tool for dev team if dev continues with 4gl technology
• Use awk, grep and find:
– Can give good results but remains tedious and limited
• Develop a 4GL documentation tool:
– Tempting, but takes time and energy
• Use a documentation generator tool:
– Great with other languages, but nothing specific for 4GL
12
ou have been looking for it?
4GL App Analyzer does it!
• Querix 4GL App Analyzer© is a documentation generator tailored for applications
developped in x4GL language.
• It builds a structured documentation by parsing your source code
– Any flavor of 4GL
– Describes functions, reports, tables usage, variables, forms and properties
– Automatically designs functional flow charts
– Includes functions call tree (called and calling)
– Uses your own comments in source code if requested
– HTML generated pages allow easy and fast navigation thru the documentation source code,
publishable on any webserver
– Includes a smart search tool for focused research
– Multilingual tool: can generate doc in many languages
• It is a great centralized and collaborative tool for a development team
– Published on any internal or public website, read-only access
• In addition to html, many output forms possible, like .pdf, .rtf, man page
13
Main advantages
• The source code is the epicenter of your application
– the application structure doc is generated automatically: spend no time on it
– You decide what will appear in the documentation
– You can take benefit of comments already written in the source code
– Any code or comments alteration will automatically be reflected in the doc
– No need to duplicate between source and documentation, the doc is
generated from the source
– Do not waste time on layout, work on useful information
• Navigate between structural documentation and source code
– Access to the code in read-only mode
– Hyperlinks on modules, functions, tables, flowcharts etc…
– Included search tool, no more find … -exec grep «xxx » {}; and v
14
Main advantages
• The documentation provides all the relevant information for functional
people as well as for technical people.
• Work the way you need according to situations:
– Top Down: drill down from top application level to detailed description to
gain understanding
– Down Top: choose an object(table, variable, function) and evaluate its role
in the application
– Search mode: pin to a document object and understand the impact of
modifying it.
• Consider application documentation in a radically different way:
– not a painful timewaster task suddenly demanded by management
– Have fun building a great application documentation (yes, I know,
incredible, but true!)
15
H w does it work?
• You need FAA installed on linux, soon on windows
• Locate your 4gl, esql/c, C and Java source code and the forms
• Configure your project documentation file
– Where is the source code, codepage, generate html, txt, man page, doc
language and many other topics
– Use the configuration wizard or the configuration file directly
• Run fglaarun.sh and do something else
– According to application size, can take a few hours for 1000000+ lines
applications, but can also take minutes.
– The long part is the flowcharts generation, you can decide to cut it where not
necessary
16
configuration: important parameters
• INPUT_DIRECTORY: directory(ies) name where your source code is
• OUTPUT_DIRECTORY: directory where the documentation is written
• OPTIMIZE_OUTPUT_FGL YES: you parse mainly 4GL code
• SOURCE_BROWSER YES: you want to browse source code and doc
• GENERATE_HTML YES: you want to generate doc in HTML
• CALL_GRAPH YES: you want to see which functions each function calls
• CALLER_GRAPH YES: you want to which by which functions each function is called
• GENERATE_TREEVIEW YES: you want to have a documentation in tree view
• OUTPUT LANGUAGE language: you can generate the doc in your favorite language
(English, Spanish, French, Portuguese, German etc…)
Eventually you may want to
• GENERATE_RTF YES: you want to generate doc in RTF
• GENERATE_LATEXT: you want to generate PDF (needs some further steps)
17
First run result
18
Tree view: fold or
unfold objects
Main menu
Search box
Drill down f_update_lot function
19
Function flowchart
Link to source code
Call graph
Browse the source code
in read-only mode
20
Detail on a function
21
Inbound parameters
Instructions, blocks
Call Graph of the function
22
Click on function and navigate to its definition
Caller graph
23
See where tables are used
24
Table « divers »
In function « maj_technum »
used for SELECT, INSERT, UPDATE
What about the forms ?
25
Click on OPEN FORM
cAnd visualize
the form
• Forms are critical components of a 4GL
application, we need them in the doc
• More details will come in the next version,
including search capabilities
Let’s go further than
Out of the Box
• All of the previous has been obtained with no
alteration
• If you understood that FAA is really the tool you
need, put a bit of positive energy on in-source
literature
• In-source litterature is based on 4gl comments +
FAA tags
26
Before we start
• Your documentation is based on tags and comments blocks
– A comments line starts with ## or --
– A comments block stops at the next blank /empty line
– A comments block can be defined between { and }
– A tag is always put on a commented line and starts with  or @
• Any comments block located just above an object declaration is by default
part of the documentation (caution, can give ugly results if comments are
used for disabled code)
– Unless you explicitly document those objects with tags
• Modules, functions, variables, records and forms can be documented
• A markdown syntax can be used to produce a high level layout quality,
including images, new pages, hyperlinks and more
27
First step: document the module
• Use the file and brief tags, then describe what this
module is about, like this
• brief is used to show the summary, the comments end
at the next blank line
• Generally the right place to list author, date, version
28
brief tag
Result of file brief, author, bug
29
brief tag
author tag
bug tag: build a
documented bug list
Documenting the module
30
Module brief tag
List of module’s function
with brief
Detailed description
(lines after 1st brief line)
Documenting the functions
• Put comments just above the function declaration OR use the fn tag
• Use brief tag for brief description, following comments are the detailed
description
• Describe inbound parameters with the param tag
• Describe the outbound parameters with the return tag
31
brief tag for function
param: inbound parameters
return: outbound parameters
Detailed view of function doc
32
param: inbound parameters
return: outbound parameters
Function’s flowchart
Caller graph
Documenting the variables
• Some variables declaration may need
explanations. Here is how to do:
33
You are lost?
Use the Search Box
34
Type an object name or first characters
Here is what search engine found
Click on name and get there
You like writing ?
Express yourself with litterature-only
• You may need to include non code-related documentation. Create a
dedicated .4gl inactive module and use the mainpage tag. You can even
create new pages ( page pagename )and hyperlink to them (ref
pagename)
35
mainpage
section
subsection
Define new page
link to new page
Main page rendering
36
section
subsection
New page defined
Link to new page
The management insists
on having paper documentation?
• Generate a pdf document in 2 more steps
– Ensure you set the flag GENERATE_LATEX YES
– After documentation generation:
cd latex then run make
– Enjoy the pdf document
and print only it if requested
37
Write 239 pdf pages in seconds
38
Conclusion
39
With 4GL App Analyzer you will:
• Obtain a professional, complete and useful application documentation with low to
moderate effort
• Get an inner vision of your application as you never had before
• Avoid wasting 100’s of K$ for a document natively deprecated
• Enhance your team’s productivity by sharing always up to date information
Do you really want to wait till the application architect has gone fishing in some
remote location as his new activity ?
Questions ?
40
41
Journey to the Center
of your 4GL application
Eric Vercelletto
eric@begooden-it.com

More Related Content

What's hot

Prasad_GNVV Resume
Prasad_GNVV ResumePrasad_GNVV Resume
Prasad_GNVV Resume
Prasad GNVV GNVV
 
Introducing Language-Oriented Business Applications - Markus Voelter
Introducing Language-Oriented Business Applications - Markus VoelterIntroducing Language-Oriented Business Applications - Markus Voelter
Introducing Language-Oriented Business Applications - Markus Voelter
JAXLondon2014
 
SmarTek21 Presentation
SmarTek21 PresentationSmarTek21 Presentation
SmarTek21 Presentation
Liazan
 
Using OSGi R4 Service Platform in Vehicle Embedded Systems - Miguel Lopez, So...
Using OSGi R4 Service Platform in Vehicle Embedded Systems - Miguel Lopez, So...Using OSGi R4 Service Platform in Vehicle Embedded Systems - Miguel Lopez, So...
Using OSGi R4 Service Platform in Vehicle Embedded Systems - Miguel Lopez, So...
mfrancis
 
Resume
ResumeResume
Resume
Ravi Kumar
 
Resume (Ronnie B. Pedarios)
Resume (Ronnie B. Pedarios)Resume (Ronnie B. Pedarios)
Resume (Ronnie B. Pedarios)
Ronnie Pedarios
 
Donovan Campbell Detailed Resume
Donovan Campbell Detailed ResumeDonovan Campbell Detailed Resume
Donovan Campbell Detailed Resume
Donovan Campbell
 
Introduction to domino_global_workbench_8.5
Introduction to domino_global_workbench_8.5Introduction to domino_global_workbench_8.5
Introduction to domino_global_workbench_8.5
hepeiwei
 
BALWANT SINGH_RESUME
BALWANT SINGH_RESUMEBALWANT SINGH_RESUME
BALWANT SINGH_RESUME
Balwant Singh
 
I18N refactoring support and the TapiJI online translator
I18N refactoring support and the TapiJI online translatorI18N refactoring support and the TapiJI online translator
I18N refactoring support and the TapiJI online translator
mreiterer
 
Guide to Globalization, Internationalization, Localization & Translation
Guide to Globalization, Internationalization, Localization & TranslationGuide to Globalization, Internationalization, Localization & Translation
Guide to Globalization, Internationalization, Localization & Translation
Neil Payne
 
Stack skills
Stack skillsStack skills
Stack skills
Janu Jahnavi
 
Hector Hungria P - CV2016 Last Updated Long
Hector Hungria P - CV2016 Last Updated LongHector Hungria P - CV2016 Last Updated Long
Hector Hungria P - CV2016 Last Updated Long
Hector Hungria
 
Engage 2020-nerd-for-move-on-from-x pages
Engage 2020-nerd-for-move-on-from-x pagesEngage 2020-nerd-for-move-on-from-x pages
Engage 2020-nerd-for-move-on-from-x pages
Heiko Voigt
 
CV LATEST
CV LATESTCV LATEST
ArunCV_May_2015
ArunCV_May_2015ArunCV_May_2015
ArunCV_May_2015
Arun Kumar
 
Doc.next - The Future of the Documentation Project
Doc.next - The Future of the Documentation ProjectDoc.next - The Future of the Documentation Project
Doc.next - The Future of the Documentation Project
Alexandro Colorado
 
Lelani Prevost and Gina Fevrier - Two Wahines Hang Ten Languages off BMC’s Ep...
Lelani Prevost and Gina Fevrier - Two Wahines Hang Ten Languages off BMC’s Ep...Lelani Prevost and Gina Fevrier - Two Wahines Hang Ten Languages off BMC’s Ep...
Lelani Prevost and Gina Fevrier - Two Wahines Hang Ten Languages off BMC’s Ep...
LavaConConference
 
Resume
ResumeResume
Resume_YanyanYu
Resume_YanyanYu Resume_YanyanYu
Resume_YanyanYu
mandy yu
 

What's hot (20)

Prasad_GNVV Resume
Prasad_GNVV ResumePrasad_GNVV Resume
Prasad_GNVV Resume
 
Introducing Language-Oriented Business Applications - Markus Voelter
Introducing Language-Oriented Business Applications - Markus VoelterIntroducing Language-Oriented Business Applications - Markus Voelter
Introducing Language-Oriented Business Applications - Markus Voelter
 
SmarTek21 Presentation
SmarTek21 PresentationSmarTek21 Presentation
SmarTek21 Presentation
 
Using OSGi R4 Service Platform in Vehicle Embedded Systems - Miguel Lopez, So...
Using OSGi R4 Service Platform in Vehicle Embedded Systems - Miguel Lopez, So...Using OSGi R4 Service Platform in Vehicle Embedded Systems - Miguel Lopez, So...
Using OSGi R4 Service Platform in Vehicle Embedded Systems - Miguel Lopez, So...
 
Resume
ResumeResume
Resume
 
Resume (Ronnie B. Pedarios)
Resume (Ronnie B. Pedarios)Resume (Ronnie B. Pedarios)
Resume (Ronnie B. Pedarios)
 
Donovan Campbell Detailed Resume
Donovan Campbell Detailed ResumeDonovan Campbell Detailed Resume
Donovan Campbell Detailed Resume
 
Introduction to domino_global_workbench_8.5
Introduction to domino_global_workbench_8.5Introduction to domino_global_workbench_8.5
Introduction to domino_global_workbench_8.5
 
BALWANT SINGH_RESUME
BALWANT SINGH_RESUMEBALWANT SINGH_RESUME
BALWANT SINGH_RESUME
 
I18N refactoring support and the TapiJI online translator
I18N refactoring support and the TapiJI online translatorI18N refactoring support and the TapiJI online translator
I18N refactoring support and the TapiJI online translator
 
Guide to Globalization, Internationalization, Localization & Translation
Guide to Globalization, Internationalization, Localization & TranslationGuide to Globalization, Internationalization, Localization & Translation
Guide to Globalization, Internationalization, Localization & Translation
 
Stack skills
Stack skillsStack skills
Stack skills
 
Hector Hungria P - CV2016 Last Updated Long
Hector Hungria P - CV2016 Last Updated LongHector Hungria P - CV2016 Last Updated Long
Hector Hungria P - CV2016 Last Updated Long
 
Engage 2020-nerd-for-move-on-from-x pages
Engage 2020-nerd-for-move-on-from-x pagesEngage 2020-nerd-for-move-on-from-x pages
Engage 2020-nerd-for-move-on-from-x pages
 
CV LATEST
CV LATESTCV LATEST
CV LATEST
 
ArunCV_May_2015
ArunCV_May_2015ArunCV_May_2015
ArunCV_May_2015
 
Doc.next - The Future of the Documentation Project
Doc.next - The Future of the Documentation ProjectDoc.next - The Future of the Documentation Project
Doc.next - The Future of the Documentation Project
 
Lelani Prevost and Gina Fevrier - Two Wahines Hang Ten Languages off BMC’s Ep...
Lelani Prevost and Gina Fevrier - Two Wahines Hang Ten Languages off BMC’s Ep...Lelani Prevost and Gina Fevrier - Two Wahines Hang Ten Languages off BMC’s Ep...
Lelani Prevost and Gina Fevrier - Two Wahines Hang Ten Languages off BMC’s Ep...
 
Resume
ResumeResume
Resume
 
Resume_YanyanYu
Resume_YanyanYu Resume_YanyanYu
Resume_YanyanYu
 

Viewers also liked

Urbanismo
UrbanismoUrbanismo
Urbanismo
oriannicristina
 
LA CRÓNICA 723
LA CRÓNICA 723LA CRÓNICA 723
Getting Started with AWS IoT
Getting Started with AWS IoTGetting Started with AWS IoT
Getting Started with AWS IoT
Amazon Web Services
 
Story board
Story boardStory board
Story board
Christy Phillips
 
Informatica en la radio y television
Informatica en la radio y televisionInformatica en la radio y television
Informatica en la radio y television
Hector Flores
 
Mi Curriculum sintético
Mi Curriculum sintéticoMi Curriculum sintético
Mi Curriculum sintético
Ramiro Laterza
 
Building Your First Big Data Application on AWS
Building Your First Big Data Application on AWSBuilding Your First Big Data Application on AWS
Building Your First Big Data Application on AWS
Amazon Web Services
 
ADK Packworks Brochure Summer 2016 copy
ADK Packworks Brochure Summer 2016 copyADK Packworks Brochure Summer 2016 copy
ADK Packworks Brochure Summer 2016 copy
Jared Badia
 
Introduction to rust: a low-level language with high-level abstractions
Introduction to rust: a low-level language with high-level abstractionsIntroduction to rust: a low-level language with high-level abstractions
Introduction to rust: a low-level language with high-level abstractions
yann_s
 
Kotlin Bytecode Generation and Runtime Performance
Kotlin Bytecode Generation and Runtime PerformanceKotlin Bytecode Generation and Runtime Performance
Kotlin Bytecode Generation and Runtime Performance
intelliyole
 
System Development Life Cycle:SDLC
System Development Life Cycle:SDLCSystem Development Life Cycle:SDLC
System Development Life Cycle:SDLC
Ripal Ranpara
 
Delivering Modern Operations on AWS
Delivering Modern Operations on AWSDelivering Modern Operations on AWS
Delivering Modern Operations on AWS
Amazon Web Services
 
Zabbix monitoring in 5 pictures
Zabbix monitoring in 5 pictures  Zabbix monitoring in 5 pictures
Zabbix monitoring in 5 pictures
Nicola Mauri
 
[AWS Days Microsoft-LA 2015]: Amazon Workspaces-Running Microsoft Windows Des...
[AWS Days Microsoft-LA 2015]: Amazon Workspaces-Running Microsoft Windows Des...[AWS Days Microsoft-LA 2015]: Amazon Workspaces-Running Microsoft Windows Des...
[AWS Days Microsoft-LA 2015]: Amazon Workspaces-Running Microsoft Windows Des...
Amazon Web Services
 
Getting Started with AWS Security
Getting Started with AWS SecurityGetting Started with AWS Security
Getting Started with AWS Security
Amazon Web Services
 
AWS March 2016 Webinar Series - AWS IoT Real Time Stream Processing with AWS ...
AWS March 2016 Webinar Series - AWS IoT Real Time Stream Processing with AWS ...AWS March 2016 Webinar Series - AWS IoT Real Time Stream Processing with AWS ...
AWS March 2016 Webinar Series - AWS IoT Real Time Stream Processing with AWS ...
Amazon Web Services
 
AWS re:Invent 2016: Simplify Cloud Migration with AWS Server Migration Servic...
AWS re:Invent 2016: Simplify Cloud Migration with AWS Server Migration Servic...AWS re:Invent 2016: Simplify Cloud Migration with AWS Server Migration Servic...
AWS re:Invent 2016: Simplify Cloud Migration with AWS Server Migration Servic...
Amazon Web Services
 
Zillow Economic Update at NAREE
Zillow Economic Update at NAREEZillow Economic Update at NAREE
Zillow Economic Update at NAREE
Cile Montgomery
 
AWS re:Invent 2016: Deep Dive on Amazon DynamoDB (DAT304)
AWS re:Invent 2016: Deep Dive on Amazon DynamoDB (DAT304)AWS re:Invent 2016: Deep Dive on Amazon DynamoDB (DAT304)
AWS re:Invent 2016: Deep Dive on Amazon DynamoDB (DAT304)
Amazon Web Services
 

Viewers also liked (19)

Urbanismo
UrbanismoUrbanismo
Urbanismo
 
LA CRÓNICA 723
LA CRÓNICA 723LA CRÓNICA 723
LA CRÓNICA 723
 
Getting Started with AWS IoT
Getting Started with AWS IoTGetting Started with AWS IoT
Getting Started with AWS IoT
 
Story board
Story boardStory board
Story board
 
Informatica en la radio y television
Informatica en la radio y televisionInformatica en la radio y television
Informatica en la radio y television
 
Mi Curriculum sintético
Mi Curriculum sintéticoMi Curriculum sintético
Mi Curriculum sintético
 
Building Your First Big Data Application on AWS
Building Your First Big Data Application on AWSBuilding Your First Big Data Application on AWS
Building Your First Big Data Application on AWS
 
ADK Packworks Brochure Summer 2016 copy
ADK Packworks Brochure Summer 2016 copyADK Packworks Brochure Summer 2016 copy
ADK Packworks Brochure Summer 2016 copy
 
Introduction to rust: a low-level language with high-level abstractions
Introduction to rust: a low-level language with high-level abstractionsIntroduction to rust: a low-level language with high-level abstractions
Introduction to rust: a low-level language with high-level abstractions
 
Kotlin Bytecode Generation and Runtime Performance
Kotlin Bytecode Generation and Runtime PerformanceKotlin Bytecode Generation and Runtime Performance
Kotlin Bytecode Generation and Runtime Performance
 
System Development Life Cycle:SDLC
System Development Life Cycle:SDLCSystem Development Life Cycle:SDLC
System Development Life Cycle:SDLC
 
Delivering Modern Operations on AWS
Delivering Modern Operations on AWSDelivering Modern Operations on AWS
Delivering Modern Operations on AWS
 
Zabbix monitoring in 5 pictures
Zabbix monitoring in 5 pictures  Zabbix monitoring in 5 pictures
Zabbix monitoring in 5 pictures
 
[AWS Days Microsoft-LA 2015]: Amazon Workspaces-Running Microsoft Windows Des...
[AWS Days Microsoft-LA 2015]: Amazon Workspaces-Running Microsoft Windows Des...[AWS Days Microsoft-LA 2015]: Amazon Workspaces-Running Microsoft Windows Des...
[AWS Days Microsoft-LA 2015]: Amazon Workspaces-Running Microsoft Windows Des...
 
Getting Started with AWS Security
Getting Started with AWS SecurityGetting Started with AWS Security
Getting Started with AWS Security
 
AWS March 2016 Webinar Series - AWS IoT Real Time Stream Processing with AWS ...
AWS March 2016 Webinar Series - AWS IoT Real Time Stream Processing with AWS ...AWS March 2016 Webinar Series - AWS IoT Real Time Stream Processing with AWS ...
AWS March 2016 Webinar Series - AWS IoT Real Time Stream Processing with AWS ...
 
AWS re:Invent 2016: Simplify Cloud Migration with AWS Server Migration Servic...
AWS re:Invent 2016: Simplify Cloud Migration with AWS Server Migration Servic...AWS re:Invent 2016: Simplify Cloud Migration with AWS Server Migration Servic...
AWS re:Invent 2016: Simplify Cloud Migration with AWS Server Migration Servic...
 
Zillow Economic Update at NAREE
Zillow Economic Update at NAREEZillow Economic Update at NAREE
Zillow Economic Update at NAREE
 
AWS re:Invent 2016: Deep Dive on Amazon DynamoDB (DAT304)
AWS re:Invent 2016: Deep Dive on Amazon DynamoDB (DAT304)AWS re:Invent 2016: Deep Dive on Amazon DynamoDB (DAT304)
AWS re:Invent 2016: Deep Dive on Amazon DynamoDB (DAT304)
 

Similar to Querix 4 gl app analyzer 2016 journey to the center of your 4gl application

Resume Raushan
Resume RaushanResume Raushan
Resume Raushan
Raushan Choudhary
 
Engage 2020 - Best Practices for analyzing Domino Applications
Engage 2020 - Best Practices for analyzing Domino ApplicationsEngage 2020 - Best Practices for analyzing Domino Applications
Engage 2020 - Best Practices for analyzing Domino Applications
panagenda
 
Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...
Jody Garnett
 
05 RD PoSD Tutorial_xhtml_to_html5_2016
05 RD PoSD Tutorial_xhtml_to_html5_201605 RD PoSD Tutorial_xhtml_to_html5_2016
05 RD PoSD Tutorial_xhtml_to_html5_2016
Rich Dron
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development Concepts
Shafiul Azam Chowdhury
 
DITA Quick Start Webinar: Defining Your Style Sheet Requirements
DITA Quick Start Webinar: Defining Your Style Sheet RequirementsDITA Quick Start Webinar: Defining Your Style Sheet Requirements
DITA Quick Start Webinar: Defining Your Style Sheet Requirements
Suite Solutions
 
Creating a Documentation Portal
Creating a Documentation PortalCreating a Documentation Portal
Creating a Documentation Portal
Steve Anderson
 
Laura Dent: Single-Source and Localization
Laura Dent: Single-Source and LocalizationLaura Dent: Single-Source and Localization
Laura Dent: Single-Source and Localization
Jack Molisani
 
Rapid development of help files and user documentation in Dr.Explain 5
Rapid development of help files and user documentation in Dr.Explain 5Rapid development of help files and user documentation in Dr.Explain 5
Rapid development of help files and user documentation in Dr.Explain 5
Dennis Zhuravlev (a.k.a. Crane)
 
Eclipse workshop presentation
Eclipse workshop presentationEclipse workshop presentation
Eclipse workshop presentation
Miguel Pardal
 
“State of the Tooling” in Open Source Automation
“State of the Tooling” in Open Source Automation“State of the Tooling” in Open Source Automation
“State of the Tooling” in Open Source Automation
Shane Coughlan
 
What is (not) Pharo 8?
What is (not) Pharo 8?What is (not) Pharo 8?
What is (not) Pharo 8?
FAST
 
Java basics
Java basicsJava basics
Java basics
Hoang Nguyen
 
Lecture1.ppt
Lecture1.pptLecture1.ppt
Lecture1.ppt
AqeelAbbas94
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with django
Yann Malet
 
Knolidge - Discover What You Have
Knolidge - Discover What You HaveKnolidge - Discover What You Have
Knolidge - Discover What You Have
knolidge
 
Chap 6 - Software Architecture Part 1.ppt
Chap 6 - Software Architecture Part 1.pptChap 6 - Software Architecture Part 1.ppt
Chap 6 - Software Architecture Part 1.ppt
khalidnawaz39
 
Chap 6 - Software Architecture Part 1.pptx
Chap 6 - Software Architecture Part 1.pptxChap 6 - Software Architecture Part 1.pptx
Chap 6 - Software Architecture Part 1.pptx
ssuser0ed5b4
 
Introduction to the intermediate Python - v1.1
Introduction to the intermediate Python - v1.1Introduction to the intermediate Python - v1.1
Introduction to the intermediate Python - v1.1
Andrei KUCHARAVY
 
Driving Innovation with Component-based Development at Boeing
Driving Innovation with Component-based Development at BoeingDriving Innovation with Component-based Development at Boeing
Driving Innovation with Component-based Development at Boeing
Perforce
 

Similar to Querix 4 gl app analyzer 2016 journey to the center of your 4gl application (20)

Resume Raushan
Resume RaushanResume Raushan
Resume Raushan
 
Engage 2020 - Best Practices for analyzing Domino Applications
Engage 2020 - Best Practices for analyzing Domino ApplicationsEngage 2020 - Best Practices for analyzing Domino Applications
Engage 2020 - Best Practices for analyzing Domino Applications
 
Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...
 
05 RD PoSD Tutorial_xhtml_to_html5_2016
05 RD PoSD Tutorial_xhtml_to_html5_201605 RD PoSD Tutorial_xhtml_to_html5_2016
05 RD PoSD Tutorial_xhtml_to_html5_2016
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development Concepts
 
DITA Quick Start Webinar: Defining Your Style Sheet Requirements
DITA Quick Start Webinar: Defining Your Style Sheet RequirementsDITA Quick Start Webinar: Defining Your Style Sheet Requirements
DITA Quick Start Webinar: Defining Your Style Sheet Requirements
 
Creating a Documentation Portal
Creating a Documentation PortalCreating a Documentation Portal
Creating a Documentation Portal
 
Laura Dent: Single-Source and Localization
Laura Dent: Single-Source and LocalizationLaura Dent: Single-Source and Localization
Laura Dent: Single-Source and Localization
 
Rapid development of help files and user documentation in Dr.Explain 5
Rapid development of help files and user documentation in Dr.Explain 5Rapid development of help files and user documentation in Dr.Explain 5
Rapid development of help files and user documentation in Dr.Explain 5
 
Eclipse workshop presentation
Eclipse workshop presentationEclipse workshop presentation
Eclipse workshop presentation
 
“State of the Tooling” in Open Source Automation
“State of the Tooling” in Open Source Automation“State of the Tooling” in Open Source Automation
“State of the Tooling” in Open Source Automation
 
What is (not) Pharo 8?
What is (not) Pharo 8?What is (not) Pharo 8?
What is (not) Pharo 8?
 
Java basics
Java basicsJava basics
Java basics
 
Lecture1.ppt
Lecture1.pptLecture1.ppt
Lecture1.ppt
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with django
 
Knolidge - Discover What You Have
Knolidge - Discover What You HaveKnolidge - Discover What You Have
Knolidge - Discover What You Have
 
Chap 6 - Software Architecture Part 1.ppt
Chap 6 - Software Architecture Part 1.pptChap 6 - Software Architecture Part 1.ppt
Chap 6 - Software Architecture Part 1.ppt
 
Chap 6 - Software Architecture Part 1.pptx
Chap 6 - Software Architecture Part 1.pptxChap 6 - Software Architecture Part 1.pptx
Chap 6 - Software Architecture Part 1.pptx
 
Introduction to the intermediate Python - v1.1
Introduction to the intermediate Python - v1.1Introduction to the intermediate Python - v1.1
Introduction to the intermediate Python - v1.1
 
Driving Innovation with Component-based Development at Boeing
Driving Innovation with Component-based Development at BoeingDriving Innovation with Component-based Development at Boeing
Driving Innovation with Component-based Development at Boeing
 

More from BeGooden-IT Consulting

Querix lycia presentation v1.2 fr
Querix lycia presentation v1.2 frQuerix lycia presentation v1.2 fr
Querix lycia presentation v1.2 fr
BeGooden-IT Consulting
 
A15 ibm informix on power8 power linux
A15 ibm informix on power8  power linuxA15 ibm informix on power8  power linux
A15 ibm informix on power8 power linux
BeGooden-IT Consulting
 
IBM informix: compared performance efficiency between physical server and Vir...
IBM informix: compared performance efficiency between physical server and Vir...IBM informix: compared performance efficiency between physical server and Vir...
IBM informix: compared performance efficiency between physical server and Vir...
BeGooden-IT Consulting
 
A12 vercelletto indexing_techniques
A12 vercelletto indexing_techniquesA12 vercelletto indexing_techniques
A12 vercelletto indexing_techniques
BeGooden-IT Consulting
 
Informix4gl status
Informix4gl statusInformix4gl status
Informix4gl status
BeGooden-IT Consulting
 
Ibm informix security functionality overview
Ibm informix security functionality overviewIbm informix security functionality overview
Ibm informix security functionality overview
BeGooden-IT Consulting
 
F12 vercelletto innovator-c_tpc_benchmark
F12 vercelletto innovator-c_tpc_benchmarkF12 vercelletto innovator-c_tpc_benchmark
F12 vercelletto innovator-c_tpc_benchmark
BeGooden-IT Consulting
 

More from BeGooden-IT Consulting (7)

Querix lycia presentation v1.2 fr
Querix lycia presentation v1.2 frQuerix lycia presentation v1.2 fr
Querix lycia presentation v1.2 fr
 
A15 ibm informix on power8 power linux
A15 ibm informix on power8  power linuxA15 ibm informix on power8  power linux
A15 ibm informix on power8 power linux
 
IBM informix: compared performance efficiency between physical server and Vir...
IBM informix: compared performance efficiency between physical server and Vir...IBM informix: compared performance efficiency between physical server and Vir...
IBM informix: compared performance efficiency between physical server and Vir...
 
A12 vercelletto indexing_techniques
A12 vercelletto indexing_techniquesA12 vercelletto indexing_techniques
A12 vercelletto indexing_techniques
 
Informix4gl status
Informix4gl statusInformix4gl status
Informix4gl status
 
Ibm informix security functionality overview
Ibm informix security functionality overviewIbm informix security functionality overview
Ibm informix security functionality overview
 
F12 vercelletto innovator-c_tpc_benchmark
F12 vercelletto innovator-c_tpc_benchmarkF12 vercelletto innovator-c_tpc_benchmark
F12 vercelletto innovator-c_tpc_benchmark
 

Recently uploaded

14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
Yara Milbes
 
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio, Inc.
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
sjcobrien
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Peter Caitens
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
kgyxske
 
Manyata Tech Park Bangalore_ Infrastructure, Facilities and More
Manyata Tech Park Bangalore_ Infrastructure, Facilities and MoreManyata Tech Park Bangalore_ Infrastructure, Facilities and More
Manyata Tech Park Bangalore_ Infrastructure, Facilities and More
narinav14
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
Maitrey Patel
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
DevOps Consulting Company | Hire DevOps Services
DevOps Consulting Company | Hire DevOps ServicesDevOps Consulting Company | Hire DevOps Services
DevOps Consulting Company | Hire DevOps Services
seospiralmantra
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
TMU毕业证书精仿办理
TMU毕业证书精仿办理TMU毕业证书精仿办理
TMU毕业证书精仿办理
aeeva
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
Reetu63
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
Tier1 app
 

Recently uploaded (20)

14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
 
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
 
Manyata Tech Park Bangalore_ Infrastructure, Facilities and More
Manyata Tech Park Bangalore_ Infrastructure, Facilities and MoreManyata Tech Park Bangalore_ Infrastructure, Facilities and More
Manyata Tech Park Bangalore_ Infrastructure, Facilities and More
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
DevOps Consulting Company | Hire DevOps Services
DevOps Consulting Company | Hire DevOps ServicesDevOps Consulting Company | Hire DevOps Services
DevOps Consulting Company | Hire DevOps Services
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
TMU毕业证书精仿办理
TMU毕业证书精仿办理TMU毕业证书精仿办理
TMU毕业证书精仿办理
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
 

Querix 4 gl app analyzer 2016 journey to the center of your 4gl application

  • 1. Journey to the Center of your 4GL application Eric Vercelletto eric@begooden-it.com
  • 2. About the speaker 2 • Informix 4GL passionate and advocate since 1986 • Has tried many solutions about 4GL documentation since 1986 • Understood the impact of losing an application Architect • Prefers doing more and better with smallest effort than doing less and worse with biggest effort • Loves understanding where he is before stepping forward
  • 3. Agenda • Questions about huge old 4gl applications and what to do with them • Yes, having a good application documentation is important for many different reasons! • There are not many good solutions available for x4gl documentation • Explore the right solution and look to the future with optimism 3
  • 4. Our 4GL applications fulfill company’s requirements • They are tailored to the company’s functionality needs • They have been running for tens of years • They are bug free • Productivity and user adoption is great • But …. 4
  • 5. The environment is changing • Young and mid-age users do not like text-based • Company’s activity is evolving or changing • Architectures and infrastructures are changing • New functionality often require new developments based on new technologies 5
  • 6. Time is flying • The application is getting more and more complex • In-house developers are getting old • The application architect knows everything about the application, but – Developers know only separate parts of it – New developers do not know 4GL – Management has no global nor in-depth knowledge of it 6
  • 7. Panic mode! This had to happen one day! • The application historical designer will retire within 1 year • He knows every single piece of the application, but no one else does • the application documentation is not usable • Beautiful 1300 pages Word document, last update in 2003 • No big picture nor flowcharts helping to understand • Comments in source code not easily accessible and lots of trash 7
  • 8. Is this your 4gl application documentation? 8
  • 9. Or is it more identified by that? 9
  • 10. Time to stop and think Where should we go? • Decommission the application and purchase a famous ERP? – Result is incertain: heavy hidden costs, customer adoption at risk, no error is possible • Re-develop in house with a more popular language (java,C+ +, C#,Python,php ...)? – Risk is mainly on delivery time, app should meet requirements • Go x4GL ? ( don’t think too much, go Querix Lycia 3 ) – Preserve app investment and re-instanciate into open, flexible modern technologies. Probably the best solution and best return on investiment • Leave as is and pray ? – How long will this situation be supportable? 10
  • 11. Time to stop and think How to avoid a mistake? • Decommission the application and purchase a famous ERP? • Re-develop in house with a more popular language ? • Go x4GL ? ( Aubit, Genero, Querix) • Leave as is and pray ? In any case, having a clear and comprehensive documentation is necessary if we want to take a correctly grounded decision! 11
  • 12. How to build a good documentation if you are not happy with what you have? • Pay for a company to build a 3000 pages documentation – May take long to very long time – Budget easily reaches 100’s of K$/K€ …. – Will be deprecated as soon as it is delivered – Not a productivity tool for dev team if dev continues with 4gl technology • Use awk, grep and find: – Can give good results but remains tedious and limited • Develop a 4GL documentation tool: – Tempting, but takes time and energy • Use a documentation generator tool: – Great with other languages, but nothing specific for 4GL 12
  • 13. ou have been looking for it? 4GL App Analyzer does it! • Querix 4GL App Analyzer© is a documentation generator tailored for applications developped in x4GL language. • It builds a structured documentation by parsing your source code – Any flavor of 4GL – Describes functions, reports, tables usage, variables, forms and properties – Automatically designs functional flow charts – Includes functions call tree (called and calling) – Uses your own comments in source code if requested – HTML generated pages allow easy and fast navigation thru the documentation source code, publishable on any webserver – Includes a smart search tool for focused research – Multilingual tool: can generate doc in many languages • It is a great centralized and collaborative tool for a development team – Published on any internal or public website, read-only access • In addition to html, many output forms possible, like .pdf, .rtf, man page 13
  • 14. Main advantages • The source code is the epicenter of your application – the application structure doc is generated automatically: spend no time on it – You decide what will appear in the documentation – You can take benefit of comments already written in the source code – Any code or comments alteration will automatically be reflected in the doc – No need to duplicate between source and documentation, the doc is generated from the source – Do not waste time on layout, work on useful information • Navigate between structural documentation and source code – Access to the code in read-only mode – Hyperlinks on modules, functions, tables, flowcharts etc… – Included search tool, no more find … -exec grep «xxx » {}; and v 14
  • 15. Main advantages • The documentation provides all the relevant information for functional people as well as for technical people. • Work the way you need according to situations: – Top Down: drill down from top application level to detailed description to gain understanding – Down Top: choose an object(table, variable, function) and evaluate its role in the application – Search mode: pin to a document object and understand the impact of modifying it. • Consider application documentation in a radically different way: – not a painful timewaster task suddenly demanded by management – Have fun building a great application documentation (yes, I know, incredible, but true!) 15
  • 16. H w does it work? • You need FAA installed on linux, soon on windows • Locate your 4gl, esql/c, C and Java source code and the forms • Configure your project documentation file – Where is the source code, codepage, generate html, txt, man page, doc language and many other topics – Use the configuration wizard or the configuration file directly • Run fglaarun.sh and do something else – According to application size, can take a few hours for 1000000+ lines applications, but can also take minutes. – The long part is the flowcharts generation, you can decide to cut it where not necessary 16
  • 17. configuration: important parameters • INPUT_DIRECTORY: directory(ies) name where your source code is • OUTPUT_DIRECTORY: directory where the documentation is written • OPTIMIZE_OUTPUT_FGL YES: you parse mainly 4GL code • SOURCE_BROWSER YES: you want to browse source code and doc • GENERATE_HTML YES: you want to generate doc in HTML • CALL_GRAPH YES: you want to see which functions each function calls • CALLER_GRAPH YES: you want to which by which functions each function is called • GENERATE_TREEVIEW YES: you want to have a documentation in tree view • OUTPUT LANGUAGE language: you can generate the doc in your favorite language (English, Spanish, French, Portuguese, German etc…) Eventually you may want to • GENERATE_RTF YES: you want to generate doc in RTF • GENERATE_LATEXT: you want to generate PDF (needs some further steps) 17
  • 18. First run result 18 Tree view: fold or unfold objects Main menu Search box
  • 19. Drill down f_update_lot function 19 Function flowchart Link to source code Call graph
  • 20. Browse the source code in read-only mode 20
  • 21. Detail on a function 21 Inbound parameters Instructions, blocks
  • 22. Call Graph of the function 22 Click on function and navigate to its definition
  • 24. See where tables are used 24 Table « divers » In function « maj_technum » used for SELECT, INSERT, UPDATE
  • 25. What about the forms ? 25 Click on OPEN FORM cAnd visualize the form • Forms are critical components of a 4GL application, we need them in the doc • More details will come in the next version, including search capabilities
  • 26. Let’s go further than Out of the Box • All of the previous has been obtained with no alteration • If you understood that FAA is really the tool you need, put a bit of positive energy on in-source literature • In-source litterature is based on 4gl comments + FAA tags 26
  • 27. Before we start • Your documentation is based on tags and comments blocks – A comments line starts with ## or -- – A comments block stops at the next blank /empty line – A comments block can be defined between { and } – A tag is always put on a commented line and starts with or @ • Any comments block located just above an object declaration is by default part of the documentation (caution, can give ugly results if comments are used for disabled code) – Unless you explicitly document those objects with tags • Modules, functions, variables, records and forms can be documented • A markdown syntax can be used to produce a high level layout quality, including images, new pages, hyperlinks and more 27
  • 28. First step: document the module • Use the file and brief tags, then describe what this module is about, like this • brief is used to show the summary, the comments end at the next blank line • Generally the right place to list author, date, version 28 brief tag
  • 29. Result of file brief, author, bug 29 brief tag author tag bug tag: build a documented bug list
  • 30. Documenting the module 30 Module brief tag List of module’s function with brief Detailed description (lines after 1st brief line)
  • 31. Documenting the functions • Put comments just above the function declaration OR use the fn tag • Use brief tag for brief description, following comments are the detailed description • Describe inbound parameters with the param tag • Describe the outbound parameters with the return tag 31 brief tag for function param: inbound parameters return: outbound parameters
  • 32. Detailed view of function doc 32 param: inbound parameters return: outbound parameters Function’s flowchart Caller graph
  • 33. Documenting the variables • Some variables declaration may need explanations. Here is how to do: 33
  • 34. You are lost? Use the Search Box 34 Type an object name or first characters Here is what search engine found Click on name and get there
  • 35. You like writing ? Express yourself with litterature-only • You may need to include non code-related documentation. Create a dedicated .4gl inactive module and use the mainpage tag. You can even create new pages ( page pagename )and hyperlink to them (ref pagename) 35 mainpage section subsection Define new page link to new page
  • 36. Main page rendering 36 section subsection New page defined Link to new page
  • 37. The management insists on having paper documentation? • Generate a pdf document in 2 more steps – Ensure you set the flag GENERATE_LATEX YES – After documentation generation: cd latex then run make – Enjoy the pdf document and print only it if requested 37
  • 38. Write 239 pdf pages in seconds 38
  • 39. Conclusion 39 With 4GL App Analyzer you will: • Obtain a professional, complete and useful application documentation with low to moderate effort • Get an inner vision of your application as you never had before • Avoid wasting 100’s of K$ for a document natively deprecated • Enhance your team’s productivity by sharing always up to date information Do you really want to wait till the application architect has gone fishing in some remote location as his new activity ?
  • 41. 41
  • 42. Journey to the Center of your 4GL application Eric Vercelletto eric@begooden-it.com