This document outlines the steps taken to develop Fundamental Modeling Concepts (FMC), which provides a standardized vocabulary and modeling methods for representing software systems. It discusses problems with current software engineering practices, such as a lack of standardized diagrams and visibility. It then describes the three steps taken to develop FMC: (1) separating primary and secondary structures, (2) representing software systems as virtual cooperation systems using the same concepts as real systems, and (3) structuring large systems into layered subsystems. FMC uses three types of structure diagrams to model the composition, process, and material of any cooperation system.