With the development of computer network technology, open, heterogeneous distributed system become the mainstream of the computer application system due to its great advantages on resource sharing, high availability, parallel processing, etc. However, its development has been plagued and constrained by the constant expansion of its system, evolution, and continuous improvement of maintenance requirements, as well as its distribution, heterogeneity and autonomy.Extensive research and software development practices show that it’s an effective approach to introduce software architecture as a blueprint to guide the distributed system development and component assembly, so that the software complexity can be controlled, the software quality can be improved. As an important means for supporting for software development, evolution, data reuse and maintenance, it’s also a practical and an effective approach for getting out of the plight of distributed systems development and constructing of large distributed systems successfully.Therefore, how to improve the distributed systems development’s quality and efficiency and how to assure the quality of system maintenance and evolution by means of software architecture is the crux of distributed systems development, and also the core of this thesis.A core idea is to adopt the formal methods in the software architecture of distributed systems to ensure strict abstract architectures and verifications, and meet the changing requirement of its environment through its dynamicity, finally, make sure the effective means running from design stage to implementation stage so as to control the development and evolution of a distributed system throughout its life cycle.Based on these ideas, according to the analysis of the deficiencies and problems in current large-scale distributed systems development methodology and its support tools, in this thesis, software architecture and distributed interactive style of formal description, architecture refinement, architecture evolution and refactoring, architecture of distributed systems under the guidance of software development methods were studied and demonstrated by an actual case.The research results and main contributions of this thesis are:(1) An abstract architecture model for distributed system, DSAM, is proposed and its formal description is given. On the basis of abstracting the core concerns for the elements of a distributed system from different perspectives and constructing the system by assembling structural components, an attribute grammar -based software architecture description language, Dis_ADL. Furthermore a component interaction style description language Discid based on CCS are designed and implemented.Dis_ADL supports terms, analysis, verification and refinement of the distributed systems from the viewpoints of system structure and dynamic behavior. It provides ease of use and strict semantics via supporting both formal description and graphic description of the software architecture. It also has the dynamic configuration capabilities to adapt to changing environments and requirement. At the same time, the structural properties of a distributed system and its interface of functions and communication properties are separated strictly, by which the support for system-level component reuse could be realized.Discid is a visual interaction design solution of the problem of complex interaction protocols of distributed systems and difficulties in component interaction design. It is good at describing the dynamic interactive features of the software architecture visually. It can describe, analyze and verify the dynamic characteristics such as synchronization, concurrency and deadlock in the interaction; thereby it facilitates the most critical interaction style design in distributed system.(2) The guiding principle of architecture refinement is proposed. A set of mapping rules from the software architecture description Dis_ADL to UML model in general software design level are presented. By these rules, the refined validation architecture elements can be mapped into coding design elements. As a result, the gap between the design and implementation could be filled and the theory of software architecture could be put into practice.(3) A method which reconstructs software architecture based fuzzy clustering and analyze the reconstruction with the combination of Design Structure Matrix related algorithms and packet pattern recognition theory is proposed. It can discovery and locate the implementation against the design, solve the problem of the inconsistency between software architecture design and software implementation and make the real system consistent with the architecture. It also can make the synchronization evolution of software implement better and enable software architecture play a big role in guiding throughout the software life cycle.(4)The architecture-driven distributed system development method ADiSC is proposed, and the system architecture support is introduced into the entire life cycle of the distributed system. By combining the top-down guidance of software architecture and the bottom-up software development method based-on components assembly, the system’s structure is realized. By continuous architecture refining and mapping, the smooth conversion from requirements to design and implementation, and the automatic conversion from architecture design to object-oriented design can be achieved. It narrows the distance between the system high-level design and the software implementation. By means of architecture refining, the revolution of the high-level architecture could be restricted in a controllable context, and therefore the feasibility and validity of the entire life cycle of large-scale distributed systems could be supported. Which allows of the characteristic of controlling system high-level properties by system software architecture can really run through the whole distributed system development and maintenance process. A distributed system development life cycle model is established, which provides for distributed systems development not only the rigorous theoretical foundation but also the standard engineering principles.(5)On the above-mentioned basis, a visual modeling environment ADisDTool is designed and implemented, which supports the construction, specification, analysis, refinement and refactoring of distributed software architecture and can be used to assist the different development phases of distributed systems. ADisDTool can reduce the cognitive difficulty of distributed system designers, ensure the development quality and raise the efficiency of system design to a great extent. Meanwhile, an application case and its analysis are presented in this thesis, by which the effectiveness of the relevant main method is demonstrated. |