Modeling and Analyzing Software Architecture Using Object-Oriented Petri Nets and Pi-Calculus
zhenhua yu,xiao fu,yu liu,jingwang,yuanli cai
DOI: https://doi.org/10.5772/7522
2010-01-01
Abstract:Software architecture has recently emerged as a new discipline of software engineering to effectively develop and maintain complex and large-scale software systems and reduce costs of developing applications. Software architecture provides a high-level abstraction for representing components, their relationships to each other and environment, and their constraints. The overall system structure design and specifications are far more important than the selection of the specific algorithms and data structures. Therefore, software architecture is a critical factor to success for system design and development (Shaw & Clements, 2006). Software architecture can be characterized according to its evolution at runtime (Oquendo, 2004): 1. static architectures: the architecture does not evolve during the execution of the system; 2. dynamic architectures: the architecture can evolve during the execution, e.g. components can be created, deleted, reconfigured, or updated at run-time. Dynamic software architectures have several practical applications (Medvidovic & Taylor, 2000). In public information systems with high availability and in missionand safety-critical systems, the implementation of architectural evolvement at run-time can decrease the cost and risk. To support architecture-based development, architecture description languages (ADLs) and formal models have been proposed to represent software architecture in a formal way, such as UniCon (Shaw et al., 1995), Darwin (Magee, 1995), Rapide (Luckham et al., 1995), Wright (Allen et al., 1998), π-ADL (Oquendo, 2004), SAM (He et al., 2004), XYZ/ADL (Luo et al., 2000). However, the major attentions have been focused on the description of static architectures, while the description of dynamic architecture has not yet to receive the attention it deserves. Darwin and Rapide only depict predefined dynamic evolvement and cannot verify the integrality and liveness of the systems. Wright can describe the dynamic evolvement, but it is so complicated. For a two-tier client/server system, process algebra (such as π-calculus) uses two processes and one or two channels to depict it, while Wright only needs seven processes and eight channels. π-SPACE and π-ADL cannot analyze the key characteristics. Although the existing approaches provide support for dynamic software architecture, most of them cannot analyze and verify the key characteristics. Therefore, software systems cannot be ensured robustness, consistency and maintenance. To support the development of correct and robust dynamic software architectures, a visual software architecture formal model (SAFM) based on two complementary formalisms, namely Object-oriented Petri nets (OPN) and π-calculus, is proposed. SAFM divides software systems