Font Size: a A A

Microservice Architecture Design Based On Requirement Knowledge Graph

Posted on:2021-04-16Degree:MasterType:Thesis
Country:ChinaCandidate:K ChenFull Text:PDF
GTID:2518306461465924Subject:Computer application technology
Abstract/Summary:PDF Full Text Request
A software product is developed through a software development process which starts from the software requirements analysis,design,implementation,testing,and deployment.However,the activities in these development phases are not always in a linear sequence,but they usually go through a number of iterations with feedbacks from one phase to another.Nevertheless,the most creative and challenging activities are those in the design.This is because that the design space is extremely large and it is hard getting a right or optimal design meet the complex requirements for functionalities,performance,trustworthiness and quality of services,which are often conflicting and changing.Another challenge is to define and manage the development process,which decide when,what to do and what products(artifacts)to produce,who will do it and what techniques and tool to use,according to the expertise of the members of the development team.The development process has to maintain the integrity of requirements,i.e.their consistency and completeness,among the products produced throughout the process.The source of difficulties in this include different and often competing requirements of cross-domain stakeholders;large number of development team members with different expertise,who are often geographically distributed;artifacts(including programs)created using different technical paradigms and tools,which makes reuse,system interoperable integration and maintenance very hard;and so on.The microservice architecture pattern(or style)is proposed with the purse to the above challenges.Research and industry development practices show that microservice architecture improves reusability,interoperable integration and coordination of services which are developed and deployed independently.These advantages of microservice architecture are achieved through low coupling and dependency between services.However,there is still lack of integrity solution support in the process of making a design of the architecture from a given requirements document.The motivation of the work is based on our study about some existing software design methods.In our study,we found that most of the existing method for requirements analysis and microservice design are carried out manually,and requires knowledge about the application domains.The consequence of this is low software productivity,poor requirements traceability,poor maintenance,low reliability and quality software products.Another problem with a software architecture designed in a traditional method for an application is its transferable or reusable in another similar but different domain,because of its high coupling and low cohesion.To address the above problems,we,in this dissertation propose a microservice architecture design method based on the requirement knowledge graphs and practice it.The main idea is to use natural language processing techniques for requirements capture and analysis.This increases degree of intelligence in the software design process and allows better cross-domain and crossorganization knowledge sharing.This work contributes to software development in the following innovative features.1.We propose to domain knowledge graph construction techniques and use them transform software requirements described in a natural language into a knowledge graph.To do this,we use knowledge extraction techniques to extract named entities,their relationships and attributes,plus other information from the requirements documents,and store them in the structure of Resource Description Framework(RDF).The knowledge graph can be used by different members of the development team in the design and shared among different domain experts.In addition,we propose our own knowledge extraction framework and test its effectiveness in practice.2.We develop an approach to microservice architecture design by requirements knowledge graph decomposition.The main idea in this is that we take the requirements knowledge graph obtained and represented as an RDF graph with the methods described in 1&2 above as the initial software architectures;we then use graph partition algorithms for decomposing the initial RDF graph into a graph of subgraphs,each representing a candidate microservice.In the decomposed graph,the edges between nodes in two different sub-graphs are abstractly represented as the interface between the two services corresponding to the subgraphs.The resulting graph of services connected by their interfaces is then the automatically generated microservice architecture.As an experiment for the evaluation of our method,we provide a manually labeled requirements dataset and a software system deployed in the production environment.
Keywords/Search Tags:microservices, software architecture, domain-driven development, knowledge graph, software quality
PDF Full Text Request
Related items