ArchJava : Home
Software architecture describes the structure of a system, enabling
more effective design, program understanding, and formal analysis. However,
existing approaches decouple implementation code from architecture, allowing
inconsistencies, causing confusion, violating architectural properties,
and inhibiting software evolution. ArchJava is an extension to Java that
seamlessly unifies software architecture with implementation,
using a type system to ensure
that the implementation conforms to architectural constraints. This site
includes a downloadable compiler for ArchJava as well as publications
describing the language, a case study, and the theory behind ArchJava.
What's new:
- (6/4/05) Uploaded maintenance relase 1.3.2. This release fixes a number
of bugs. There are also a couple of new examples: ArchJava/examples/javacalc
shows how the ArchJava/examples/calculator code might look in plain Java.
Going through the process of translating the javacalc code to ArchJava is
a good way to get familiar with ArchJava. Another new example is a prime
number sieve in ArchJava/examples/sieve.
- (11/27/04) Added a README.TXT to the ArchJava/examples directory of
the ArchJava compiler distribution describing the example ArchJava files. This
distribution is now verion 1.3.1, and is unchanged from 1.3.0 except for
this file.
- (10/26/04) Released a new version of the ArchJava IDE integrated with the
AcmeStudio architectural modeling
environment. New features include the ability to generate ArchJava code
from an Acme architecture design, and the ability to run ArchJava programs
from within the IDE environment.
- (10/5/04) Updated the publications page with a new overview paper describing the ArchJava language and type system.
- (6/12/04) Released version 1.3.0 of the ArchJava compiler and tools.
This release provides preliminary support for ownership domains. For
example code, see the examples/aliasing directory, in particular the
SequenceClient.archj and ListenerSystem.archj files which are taken
from the ECOOP paper. Not all of
the typechecking rules are implemented, and the compiler does not yet
support generics. This release of the Eclipse plugin now includes
source code, released under the GPL.
- (5/23/04) Released version 1.2.5 of the ArchJava compiler and tools. This release fixes a minor bug in generated code. In addition, starting with this release, a new version of the Eclipse plugin will be released along with every command-line compiler, to keep the two environments better synchronized.
- (4/27/04) Released version 1.2.4 of the ArchJava compiler and tools. This release contains preliminary support for Selective Open Recursion. It also fixes a bug in the way errors were reported in Windows systems.
- (2/16/04) Released version 1.2.1 of the ArchJava compiler and tools. The Eclipse environment is *much* more stable in this release. Also, the compiler now captures error messages from the back end javac compiler and reports them in terms of ArchJava source files
- (11/17/03) The new ArchJava web site is up!