|

Automated Engineering of Event Driven Systems
Artifex is an integrated family of products for designing
and developing complex event-driven software
applications.
Artifex allows developers to: graphically design, model
and analyze event-driven systems;
build simulators and prototypes of computer-based systems; create
real-time simulators of the environment which surrounds an
application to automate its testing.
Artifex also enables rapid prototyping, and automatically
generates the complete application in C/C++ code for embedded systems and
workstation-based environments.
The Artifex solution
Artifex gives you
a high-level visual language to describe your system and:
- Simulation to detect flaws earlier, improve quality with early validation and provide feedback to analysis.
- Automatic model’s translation into an application running on your target platform to achieve maximum productivity.
- An always up-dated reference model that can be printed in documents with different viewpoints to maximize maintainability.
Quality and Productivity
Artifex allows
significant reductions in system development time and enhancements in design
quality through modeling, analysis and code generation capabilities.
Artifex is used to model systems graphically, with intuitive design diagrams
that describe architecture, behavior and functionality.
Iterative refinement of diagrams, their execution and simulation, allow you to
design systems correctly and rapidly.
Graphical Modeling
Artifex provides a
graphical, object-based language which enables designers to describe a
system’s behavior, functionality and structure.
The Artifex language is based on well-known formal diagrams: Petri Nets.
Artifex
tools allow development teams to
work with an extended version of these diagrams in computer-based format. The Artifex language adds to Petri Nets the concepts of timing, structure and
functionality, and is very effective in describing complex systems.
The Artifex language is easy to learn. The majority of system design elements in
Artifex models, including concurrent objects, data and message flows, parallel
flows of execution, time constraints, states and state transitions are developed
visually. Complex concepts like concurrency and synchronization are easily
described using a few graphic symbols. Simple activities may be described by
means of fragments of C/C++ code embedded within the elements of a net.
Documented Models
Each element of a
model can be described in natural language. Thus, Artifex models also embed
documentation. Furthermore, Artifex provides capability to extract all model’s
data, both textual and graphical, and generate printable documents in standard
formats, like ASCII, PostScript, HTML and LaTeX. Being automatically generated,
documents are always up-to-date and consistent with models, providing accurate
and reliable documentation.
Simulation and Animation
Artifex offers
much more than computer-based editing of graphical diagrams.
The Artifex language can be statically and dynamically analyzed in its native
graphical form at any stage of development. Therefore, developers can verify
that the design is logically correct at the system level before getting involved
with implementation issues.
Complete visual debugging facilities help developers keep simulation under
control and automatically trace a model’s execution. Artifex supports both
virtual-time and real-time event-driven simulation modes.
Application Generation and partitioning
Artifex
automatically translates models into a complete application running on a number
of workstation-based and embedded environments.
Artifex generates full C code source files and all relevant makefiles which are
directly compiled and executed. Automatically generated code can stand on its
own or be easily integrated into larger systems. Legacy code can also be
incorporated within the model.
According to a graphical scheme, Artifex can partition the generated application
into one single process or into multiple processes, which can also be
distributed over a network of computers. Artifex automatically handles
inter-process communications. The resulting code is highly portable and
extensively checked for errors.
|