200 likes | 442 Views
π -Method: A Model-Driven Formal Method for Architecture-Centric Software Engineering. By Flavio Oquendo Presented by: Sajith Wickramaratne. π-Method.
E N D
π-Method: A Model-Driven Formal Method for Architecture-Centric Software Engineering By Flavio Oquendo Presented by: Sajith Wickramaratne
π-Method • This article presents the π-Method, a formal method that has been designed in the ArchWare European Project to address model-driven development of safe software systems. • It is a well-defined theoretical method relying on formal foundations. • It supports formal model-driven development of software systems having highly dynamic architectures. • Its formal language for architecture is based on: Architecture description : π-calculus. Architecture analysis : μ-calculus. Architecture transformation and refinement: Rewriting logic.
π-Method vs. Other formal methods • Formal methods such as B, FOCUS, VDM, and Z, aim to provide full support for formal development of software systems. • However, these methods do not provide any architectural support. • π-Method has been built from scratch to formally support architecture-centric component-based model-driven development.
Completeness and Correctness of Software Systems • Support the formal specification of software systems whose architecture can change (at run-time). • Support automated analysis: functional as well as non-functional properties. • Support their transformations and application synthesis, by stepwise refinement from abstract to concrete specifications and full code generation. • Support compliance with respect to application requirements (if requirements change, enable the software system to safely progress with new requirements).
π-Method • Why Formal? • Improves documentation and understanding of specifications. • Enables rigorous analysis of the system properties. • Improves rigour and quality of the whole development process. • Provides a firm foundation during the evolution process.
π-Method Why Architecture-Centric? • A key aspect of the design of any software system is its architecture. • Fundamental organization of the system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution. • Provides the conceptual abstraction for modeling complex software systems during development and then during deployment and evolution Why Model-Driven Engineering? • Models are used to understand specific system aspects. • Predicts system qualities. • Reasons about impact of changes. • Indicates major system features to stakeholders.
Approach of the π-Method • The novelty of the π-Method lies in its holistic view of formal software development. • It involves: “how” the software is to function in terms of expected behaviours. “what” is its structure in terms of components and their connectors. “which” qualities are to be guaranteed. • Furthermore, an appropriate refinement process (describing “how to build” the software).
Architecture-centric formal development “Define style” activities: • Principal actors are the “style architects”. • Represent the top level inception of a family of software architectures. • What types of architectural elements. • How elements can be combined. • Which constraints apply, and which processes can be applied to architecture elements and whole architecture descriptions. “Describe architecture” activities: • Principal actors are the “application architects”. • Use the domain specific styles defined by the style architect to describe a specific software architecture. • An architecture description, in terms of a model. • Can represent a system at various levels of abstractions. “Refine architecture” activities: • Principal actors are the “application engineers”. • Support transformations from abstract to more concrete architecture descriptions. • Derive concrete models by applying correctness preserving transformations.
Formal Languages • π-ADL: an architecture description language based on the higher-order typed π-calculus. • π-AAL: an architecture analysis language based on the μ-calculus. • π-ARL: an architecture refinement language based on the rewriting logic.
The Architecture Description Language: π-ADL • Architecture Description Language encompasses two aspects: expression and verification of architectural styles. • General principles guided the design of π-ADL: • Formality: π-ADL (formal language) provides a formal system, at the mathematical sense, for describing dynamic software architectures. • Run-time viewpoint: π-ADL focuses on the formal description of software architectures from the run-time viewpoint: structure, behavior, and how these may evolve over time. • Executability: π-ADL(executable language) is a virtual machine that runs specifications of software architectures. • User-friendliness: π-ADL supports different concrete syntaxes – textual and graphical notations (including UML-based) .
π-ADL Design principles • The principle of correspondence. • The principle of abstraction. • The principle of data type completeness. Civil rights in the language • The right to be declared. • The right to be assigned. • The right to have equality defined over them. • The right to persist.
The Architecture Analysis Language: π-AAL Architecture Analysis Language focuses two aspects: • Architectural styles (style architects) • Software Architectures (application architects). Properties of styles and architectures. • structural (e.g. cardinality of architectural elements, interconnection topology) • behavioral (e.g. safety, liveness, and fairness defined on actions of the system). The π-AAL is a formal property expression language designed to support automated verification. • Can mechanically check whether an architecture described in π-ADL satisfies property expressed in π-AAL.
The Architecture Refinement Language: π-ARL • The concrete architecture: Vertical and Horizontal transformations. • Horizontal refinement is obtained from transforming an architecture by partition. • Vertical refinement is obtained from transforming steps to add more details to abstract models until the concrete architectural model is described. • The π-Method (ARL) supports both horizontal and vertical refinements. • π- ARL’s four forms of refinement from an external or internal point of view: • behavior refinement • port refinement • structure refinement • data refinement
Application domains of the π-Method The π-Method (π-ADL, π-AAL, and π-ARL) have been applied in the following application domains: • software systems targeting J2EE platforms. • enterprise application integration systems. • grid computing systems. • human-computer interfaces for monitoring systems. • mobile agent systems. • sensor-actuator networks. • service-oriented architectures. • ambient intelligence.
Related Work for π-Method • Architecture Description (ADLs): ACME, AESOP,AML,ARMANI,CHAM-ADL, DARWIN,META-H,PADL,RAPIDE,SADL, σπ-SPACE, UNICON-2,andWRIGHT/Dynamic-WRIGHT. • Architecture Analysis (AALs): PDL, LOTOS, CADP and CCS. • Architecture Transformation and Refinement(ARLs): FOCUS,RAPIDE, SADL, B and Z.
Future Workin π-Method • π-Modeller: a tool to support visual description of software architectures in π-ADL • π-Animator: a tool to support graphical animation of software architectures described in π-ADL. • π-Analyser: a tool to support verification of structural and behavioural properties specified in π-AAL against software architectures described in π-ADL. • π-Refiner: a tool to support refinements of software architectures described in π-ADL. • π-Synthesiser: a tool to support code generation from concrete architecture descriptions in π-ADL. • π-ADL Compiler and Virtual Machine. • π-TraceChecker.
Conclusion • π-Method recognizes architecture-centric model-driven approaches, supported by adequate, compositional, formal languages and tools. • It involves π-ADL, π-AAL, and π-ARL to support architectural description, analysis, refinement, and code generation. • π-Method cost-effectively develops and evolves software systems while guaranteeing their completeness and correctness.