Font Size: a A A

Research On Software Architecture-Based Component Model And Language

Posted on:2008-02-03Degree:DoctorType:Dissertation
Country:ChinaCandidate:B ChenFull Text:PDF
GTID:1118360242499358Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
Component and software architecture technologies, the key technologies in improving software productivity and quality as well as solving software crisis, are facing challenges for the purpose at hand. For instance, it is difficult for the component technology to provide high-quality and efficient support for software development due to low reuse degree and small reuse granularity of the component. Because of the vast gap between software architecture design and implementation, software architecture can not provide effective guidence to software development, and etc. Such problems disable component and software architecture technologies from performing appropriate functions to such an extent as to have aroused prevailing attentions.On the assumption that component model and component-oriented language are the breaches to meet the challenges which current component and software architecture technologies are facing, this dissertation targets component model and component-oriented language as the primary coverage. Based upon thorough research and analysis on the status quo of studies on component model and component-oriented language and other related technologies, aimed at solving problems up against component and software architecture technologies, guided by the principles of conceptual integrity and separation of concerns, this dissertation makes a systematic exploration into several aspects including the study of novel component model, the design and implementation of novel component-oriented programming language, the approach of mapping software architecture design to implementation and the enrichment of the component interface. The contributions of the dissertation are listed as follows:1. The study of novel component model. Component model defines the natural characteristic of the component and inter-component relationship, which should be given equally substantial support as two varied concepts and concerns in component model. Nevertheless, the existing component models offer insufficient support to inter-component relationship, especially, that of interaction and collaboration. Aiming at the problem, a novel software architecture-based component model SACM is proposed. SACM brings in the concept of connector, endows it with the equivalent position as component and utilizes this concept to explicitly describe such inter-component relationship as interaction and collaboration. Consequently, the introduction of connector makes a first-class modeling entity independent of component out of inter-component interaction and collaboration so as to afford better support to the description, analysis and verification of interaction and collaboration. Moreover, passive and active connectors are further divided into, of which the former separates computation from communications while the latter segregates computation from control and communications. Therefore, the problem of mixing control and computation in the component which occurs in existing component models is solved. Furthermore, component composition methods based on the passive and the active connector are put forward after the comparison between the two preceding connectors.2. The design and implementation of novel component-oriented programming language. To provide a better support for the component-oriented software development, the programming language should have corresponding language mechanisms to support the encapsulation, reuse and composition of the component as well as a sound type system. However, to some extent, the present programming languages lack of mechanisms to support the reuse and composition of the component. Aiming at solving the above-mentioned problem, a new component-oriented programming language SAJ is brought into being. One of the features of SAJ is that it supports the core concepts of software architecture in programming language. Compared with present programming languages, SAJ further enforces the encapsulation of components with the concept of port, supports the composition and the reuse of the component with component-independent first-class entity—the connector, and lays greater emphasis on the support for component-oriented design principles in the perspective of programming language, thereby gives a stronger support for the component-oriented software development.The syntax, semantics and type system of SAJ are presented. Moreover, in the type system of SAJ, the typing rules to ensure such properties as the validity of components connecting and that of the interaction and collaboration among components are given. Besides, the type safety of SAJ is proved, which makes the SAJ-based software development safer and more practical.3. The approach of mapping software architecture design to implementation. The mapping from software architecture to implementation must be realized to better the guidance of software architecture in software development. However, no mature solutions could be found. Aiming at this problem, a method of using Two-Phase Mapping to realize the mapping from software architecture to implementation is proposed in this dissertation. Two-Phase Mapping consists of mapping from software architecture design model to detail design model (SACM-based component model) and mapping from detail design model to implementation (SAJ code). SACM and SAJ both support the core concepts of software architecture. Therefore, compared with other solutions, the method of Two-Phase Mapping is more natural and practical and the validity of mapping can be guaranteed more easily. The realization method of the mapping from detail design model to SAJ code is given in this dissertation.4. The enrichment of the component interface. Following the principle of being simple and practical, the dissertation studies on how to enrich the component interface. An idea that there are contributing relations and dependent relations among components' required services and provided services is put forward, and follows an approach of describing contributing relations and dependent relations explicitly in the component port, which can not only make the component more adaptable to its environment, but also increase its reuse degree. Based on the idea that the service parameter values can affect the component behavior protocol, the method of explicitly describing parameter values in behavior protocol is also discussed in the later part of the dissertation.To sum up, this dissertation proposes effective solutions to some key problems concerning the present component model and component-oriented programming language. To a great extent, it has a theoretical significance and practical value in promoting further theoretical studies on component model and component-oriented programming language, as well as in solving the challenges in component and software architecture technologies.
Keywords/Search Tags:Software Architecture, Component, Connector, Conceptual Integrity, Separation of Concerns, Type System
PDF Full Text Request
Related items