Font Size: a A A

Pattern-based Automated Architectural Synthesis For Software Architecture

Posted on:2019-03-06Degree:DoctorType:Dissertation
Country:ChinaCandidate:Y R XuFull Text:PDF
GTID:1368330545499884Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
Architectural Synthesis(AS)activity plays a key role in architecture design as it essentially links the problem to the solution space.To reuse successful experience in software architecture design,architects use architectural patterns as reusable architectural knowledge for architectural synthesis.Using architectural patterns for architectural synthesis gets lots of benefits,and the architecture of large and complex systems is increasingly designed by composing architectural patterns.However,architectural synthesis using architectural patterns is also recognized as a challenging task,especially for novice architects due to lack of experience.(Semi-)automated pattern-based architectural synthesis approaches should be provided to architects to help them generate candidate architectural solutions for the architectural synthesis activity.The activity of pattern-based architectural synthesis is composed of two sub-processes:responsibility synthesis(RS)and pattern synthesis(PS),in which responsibility means functional requirements that should be implemented.In Object-Oriented(OO)architectural synthesis,responsibilities are represented in terms of methods and attributes in RS,and this sub-process only considers the responsibility assignment in the software architecture.Class responsibility assignment(CRA)has a great impact on the overall design of the software architecture.Unlike RS,PS sub-process is independent of business context and it only focuses on pattern implementation,which reduces the complexity and reuses successful design experience when designing software architectures.A large amount of related works on(semi-)automated responsibility synthesis and pattern synthesis have been carried out at home and abroad.As for responsibility synthesis,existing researches mainly involve following aspects:candidate architectural solutions representation,optimization function definition,and optimization algorithm,while little work has been devoted to considering exploiting Design Knowledge(DK)to improve the design quality of the generated candidate solutions.As for pattern synthesis,most existing researches focus on pattern recommendation and selection,but pay less attention to the conceptual gap between the abstract elements and the implementation units in the employed architectural patterns.In addition,one of deficiencies of these responsibility or pattern synthesis works is that they addressed the responsibility synthesis or pattern synthesis in isolation,which is inefficient for pattern-based architectural synthesis.Towards the issues about existing researches on responsibility synthesis and pattern synthesis in architectural synthesis activity,this thesis attempts to address the following key problem:"How to synthesize architectural candidate solutions automatically and effectively for pattern-based software architecture".Considering the key problem,we studied the above issues existed in existing work,and the research works conducted in this thesis can be summarized as follows.(1)A definition process for architectural pattern metrics is proposed for pattern synthesis of pattern-based architectural synthesis activity.According to the constraints of architectural patterns,the definition process for architectural pattern metrics is composed of three steps:discovering the roles of an architectural pattern,discovering the relations within an architectural pattern,and discovering the domain related metrics for an architectural pattern.Based on the idea of analytic hierarchy process(AHP)decision approach,we propose an automated approach to decide the weights for different pattern metrics for an architectural pattern.The results of this definition process for architectural pattern metrics form a starting point for automated pattern synthesis.(2)A learning based approach is proposed for the Class Responsibility Assignment(CRA)problem to improve the design quality of generated candidate solutions of the responsibility synthesis.In the proposed approach,a learning mechanism is introduced into Genetic Algorithm(GA)to extract the implicit design knowledge(DK)about which responsibilities have a high probability to be assigned to the same class,and then the extracted DK is employed automatically to improve the design quality of the generated solutions.By comparing the solutions obtained from the proposed approach and the existing approaches,the proposed approach can significantly improve the design quality of the generated solutions to the CRA problem,and the generated solutions by the proposed approach are more likely to be accepted by developers from the practical aspects.(3)A cooperative coevolution approach to responsibility and pattern synthesis is proposed that aims at synthesizing pattern-based architectural solutions automatically.In the proposed approach,it is composed of two co-evolving automated processes:responsibility synthesis(RS)and pattern synthesis(PS),which corresponding to the two sub-processes of the activity of pattern-based architectural synthesis.The cooperative coevolution approach utilizing meta-heuristic search techniques tries to optimize the corresponding pattern metrics of the selected architectural pattern while considering the responsibility assignment to architecture elements(e.g.,classes)in the resulting architecture solutions.(4)An inconsistencies resolving approach is proposed for the cooperative coevolution approach during pattern-based architectural synthesis.In the cooperative coevolution approach for synthesizing pattern-based architectural solutions,the candidate architectural solutions are generated by combining the solutions from the RS and PS sub-processes.However,it has a significant limitation when combining the design solutions from the two sub-processes when inconsistencies exist between these solutions.In the proposed approach,an association algorithm from data mining is employed to discover the responsibilities that appear together frequently between candidate solutions during responsibility and pattern synthesis.The extracted knowledge by the association algorithm is further used to resolve inconsistences between RS and PS candidate solutions.The proposed approach can resolve most inconsistencies occurred during automated pattern-based architectural synthesis and enrich the diversity of generated architectural solutions.
Keywords/Search Tags:Architectural Pattern, Architectural Synthesis, Architectural Pattern Metrics, Search-based Software Engineering, Data Mining
PDF Full Text Request
Related items