Objectives and aim of software technology. Different approaches to solving the problem are discussed. The object oriented approach is discussed in detail. Definition of module and class, levels of abstractions within them, information hiding. Relationships among classes and objects: inheritance, association and aggregation. Object class diagram. The static model of software. States of classes. Definition of states and events. State diagram, dynamic model. Functional modelling. Design methodology. Programming style.