Open systems capable of handling unanticipated future changes are very desirable. A common approach towards open systems is
based on components. There are some essential issues of the component-based software paradigm. First, the most challenging
analysis issue is about component consistency – namely a component does not violate some property in another when composed. The paper presents a formal approach to the
issue by including consistency semantic to component specification. Based on this semantic information, components can be
efficiently cross-checked for the consistency among components. The second issue is on how components are realized from the
formal specification. The layered architecture is recommended for component-based system design in which component specifications are separated into layers. Subsequently,
each layer can be then respectively implemented by a corresponding module via aspect-oriented programming. The target system simply involves composing those modules together in a well-defined order.