Welcome to the ArchFeature website!

What is ArchFeature

ArchFeature is an open-source product line modeling environment developed at the School of Computing and Engineering, University of Missouri-Kansas City. It integrates the development of product line features into the product line architecture (PLA) model. The following is a screenshot of ArchFeature's' main interface. It shows that both product line architecture and product line features are modeled and developed side-by-side in a single monolithic architecture. On the left of the figure is a list of product line features that are automatically related to architecture elements in ArchFeature.

ArchFeature is implemented in ArchStudio - an Eclise-based architecture development toolset for modeling, visualizing, analyzing, and implementing a software system's architecture. In addition to the tools provided by ArchStudio, ArchFeature supports the following novel functions:

  • Integrating the development of both features and PLA in the same model
  • Automating the process of managing variation points
  • Automatically relating the product line features with corresponding architecture elements
  • Visualizing the relationship between related features and architecture elements
  • Deriving new architecture instances based on selected features

Currently, ArchFeature supports the following types of features:

  • Optional feature: exists in some products of the product line
  • Alternative feature: exists in all products of the product line. Each product may contain different variants of this feature
  • Optional-Alternative feature: it is the same as an alternative feature except that some products do not have it


Video Demonstration

The following video highlights the most important functions of ArchFeature and briefly explains how to use it.
The video is divided into two parts. In part one, we present the main functions of ArchFeature and implement them on a real product line architecture. In part two, we explain how to use ArchFeature to develop a product line architecture and how to use the functions that we introduced in part one step-by-step.

For best resolution, set YouTube quality settings to 1080p.


How to Download and Install ArchFeature

ArchFeature is implemented in ArchStudio, which is an Eclipse plug-in. Thus, to be able to use ArchFeature, you need to download and install the following:

  1. Java 2™ Standard Edition (J2SE) version 1.7 virtual machine or better ;
    You can obtain Java free of charge from Oracle Java SE site
  2. Eclipse version 4.3 or better;
    Please download and install Eclipse Standard
  3. Special version of ArchStudio (see installation details below).

To install and use ArchFeature, perform the following steps (or watch this video):

  1. Open Eclipse and select your workspace folder
  2. Click on Help menu, select Install New Software
  3. The Install dialog box will open, click on Add button
    • In the Name text box, give a name for the installation (e.g. ArchFeature)
    • In the Location text box, enter the following URL:
      https://svn.ics.uci.edu/isr-projects/archstudio4/branches/archFeature/updatesite/
  4. Click OK
  5. Select “Architecture” (see the screenshot below)


  6. Click Next
  7. Click Next
  8. Select “I accept the terms of the license agreements”
  9. Click Finish
  10. On the Security Warning dialog box, select OK
  11. Select Yes for restarting Eclipse
We have also created a video demonstration on how to install new plug-ins into Eclipse. Click here to watch the YouTube video.


Getting Started with ArchFeature

The following video is a step-by-step tutorial that will show you how to create your first project and model a feature-based product-line architecture using ArchFeature. This video assumes that you have already installed ArchFeature successfully.


ArchFeature in Action

In this section, we present two products that were fully developed using ArchFeature. The second example will be installed with ArchFeature by default for users to experiment with it.

1. Apache Solr Case Study

This case study was conducted by a software architect and a software engineer from Cerner Corporation. They used ArchFeature to developed a full-featured architecture model for an open-source software system that they use in Cerner, called Solr. Solr is a Java-based open-source standalone enterprise search server with a REST-like API. It has over fifty Java packages, more than a thousand classes, and approximately 146K SLOC. In addition, Solr has been through more than eight years of development and number of features have been added to it while the system evolved over time. As Solr is increasingly popular, many companies began to experiment with extending the capabilities of Solr. This has launched a request for a public architecture model that can be used to describe the system and its associated features.

ArchFeature was successfully used to develop a full-featured architecture of this system. The following screenshot is the result of modeling Solr system and its associated features using ArchFeature.

The Solr architecture includes:

  • 183 components
  • 28 features
    • 14 optional features
    • 11 alternative features including 143 variants
    • 3 optional-alternative features
  • Total of 224 feature-architecture relationships

2. Chatting Product Line Example

This PLA is an example of a chatting application product-line. It includes core components (Server and Clients), variation potints
(i.e. application features such as chat history, printing, playing a game, etc), and connectors. This example illustrates the importance of developing both features and product line architecture in the same artifact. It's simple and easy to understand. It also emphasises the usage of the Selector tool to create new chatting applicastions based on selecting desired features only. We encourage to download and explore this example and apply all ArchFeature functions on it. This example is included in the ArchFeature installation by default.


ArchFeature Development Team (supervised by Dr. Yongjie Zheng)

Gharib Gharibi

Current Ph.D student, School of Computing and Engineering, UMKC

Major: Software Engineering (Software Architecture and Design)

Email: ggk89@mail.umkc.edu     personal website     LinkedIn page

Varun Narisetty

Former Master student, School of Computing and Engineering, UMKC

Major: Software Engineering

Email: vnck6@mail.umkc.edu     LinkedIn page


Contact Us

Please feel free to contact us for any questions not answered by this page. Do not hesitate to email us! We would love to hear your comments and suggestions on ArchFeature!

UP