This document contains a chapter from a course manual on Object Oriented Analysis and Design. The chapter discusses the inherent complexity of software systems. It identifies four main reasons for this complexity: 1) the complexity of the problem domain and changing requirements, 2) the difficulty of managing large software development teams, 3) the flexibility enabled by software which can lead to more demanding requirements, and 4) the challenges of characterizing the behavior of discrete systems. Software systems can range from simple to highly complex, depending on factors like purpose, lifespan, number of users, and role in research.