this part we explain the role of functional programming paradigm in the management of complex software systems, and how the functional programming concepts play important role in the designing such systems. Key prerequisite for implementing functional programming concepts is properly designed system structure following well defined design principles and rules. That is the main goal of this lecture to introduce students with proper system modeling. Furthermore, we also explain how new emerging technologies are designed in such a way that they enforce the development of systems that comply to the design rules inspired by the functional programming. This is extremely important in view of the current network evolution and virtualization concepts, which will require many functional programming concepts in the network services and functions, as will be discussed in part II of these lecture notes. These notes provide an introduction to the subject, with the goal of explaining the problems and the principles, methods and techniques used for their solution. The worked examples and exercises serve students as the teaching material, from which they can learn how to use design principles to model effective system structures. Here we focus on students understanding of importance of effective system structures for coordination of development and management processes that are driven by business goals and further evolution.