Competency
Principles for dividing functionality into components; overview of strategies used in different languages and environments to integrate multiple software components into a single applications ; Combining multiple source modules into a single executable; approaches in different languages ; Systems composed of multiple communicating component processes. ; System architecture as a description of components and their methods of communication