Using Component-based Software Engineering approaches with Formal Methods has seen an influx of interest in the recent decades. The joining of these two disciplines have been stifled though due to unclear component specifications and expensive formal verification techniques, which hurt the reusability and scalability of complex software systems. In this work, we expand on current component-port-connector metamodels for formally specifying a system's architectural and behavioural requirements into a hierarchical component system structure by using abstract Composite Components.The Composite Components of a system model can then utilize modular verification for isolating the verification process into modules surrounding Composite Components and generating higher level properties. We formalize our metamodel in Alloy 6 and present a template for specifying system properties for modular verification which enables the reuse of previous verification efforts on satisfied modules. We conclude with an example case study system and analysis of the modular verification strategy.iii I would like to express my sincere gratitude to Professor Jason Jaskolka whose continuous encouragement and support in this project, academic journey, and pandemic enabled me to explore my own ideas while building off of the shoulders of giants before me. I thank the members of the CyberSEA Lab at Carleton for listening and providing valuable feedback on my work and ideas that further improved my research.I would especially like to thank Quentin Rouland whose vision and support propelled the project.Of course, I wouldn't have been able to begin or finish this journey without the constant love and support from my family and friends whose encouragement drove me through this difficult yet rewarding process. I would also like to thank Ericsson and Carleton for their Fellowship opportunity which supported the project financially and provided me the chance to present my work and ideas on formal methods to Ericsson employees and fellow scholars.