Don't hammer screws, or vice-versa. If a program is like a building, then
Libero is like an architectural design that automatically forms the
foundation and scaffolding. In any programming language there are
directions and complexities where Libero is worth using. Until you get
there, you'll be losing time.
As far as I can see, these are some typical cases where you will profit
from Libero:
- If you need to use some kind of pseudocode or other technique to document
the program. Better to use a dialog - it will always be up to date. Libero
lets you attach comments anywhere in the dialog.
- If you are making designs that another programmer will implement (i.e.
you are doing 'analysis'). The programmer does not need to interpret your
design. Libero will generate a prototype program (with empty stubs for all
modules), so you get feedback on your design right away.
- If your program analyses text, and you don't have access to tools like
yacc. It is harder to build a parser using a dialog than to use a parser
generator, but it is still a lot simpler than doing it by hand. Libero lets
you build really large dialogs.
- If your program is a communications handler with incoming and outgoing
messages. A dialog is a perfect way of describing the handling for each
message. We've used Libero for complexTCP/IP servers in this
way.
- If your program controls a device. A dialog is a perfect way of
describing the various states that a device can be in, with the handling for
events in each state.
- If your program runs a complex task on a database; for example,
processing data from a series of tables depending on various criteria and
conditions. A dialog shows the processing logic clearly, with a state for
each main point in the processing, and an event for each condition or type of
record.
- If your program is 'just too damn complex'. It is difficult to keep the
'main logic' separate from the details. Libero does this for you, and then
splits the detailed code into individual modules. Your program is easy to
understand, easy to maintain, and easy to reuse.
- If you have to make design a program in several languages, or if you have
people working in several languages. Libero is language independent.
- If you are working in some esoteric language that has no support from
third-party tools. You can build a Libero schema for any language (or I'll
change Libero).