  Microservice architecture refers to the use of numerous small-scale and
independently deployed services, instead of encapsulating all functions into
one monolith. It has been a challenge in software engineering to decompose a
monolithic system into smaller parts. In this paper, we propose the Feature
Table approach, a structured approach to service decomposition based on the
correlation between functional features and microservices: (1) we defined the
concept of {\em Feature Cards} and 12 instances of such cards; (2) we
formulated {\em Decomposition Rules} to decompose monolithic applications; (3)
we designed the {\em Feature Table Analysis Tool} to provide semi-automatic
analysis for identification of microservices; and (4) we formulated {\em
Mapping Rules} to help developers implement microservice candidates. We
performed a case study on Cargo Tracking System to validate our
microservice-oriented decomposition approach. Cargo Tracking System is a
typical case that has been decomposed by other related methods (dataflow-driven
approach, Service Cutter, and API Analysis). Through comparison with the
related methods in terms of specific coupling and cohesion metrics, the results
show that the proposed Feature Table approach can deliver more reasonable
microservice candidates, which are feasible in implementation with
semi-automatic support.
