The major goal of analysis is to establish the functional requirements of the system to be developed and to establish the real-world facts that are involved in these requirements. Because every system is concerned with a certain reality outside itself, analysis of real-world facts is a necessary step in the system development cycle. Analysis is gaining importance as the demand for complex systems grows. It helps developers to understand and document the business domain. Moreover, analysis helps in detecting errors early in the development cycle, thereby reducing the cost to correct them. In this work, an object-oriented approach was adopted to perform analysis. It is generally accepted that this approach offers significant advantages over more traditional advantages. These advantages are mainly due to proper support for encapsulation, decomposition, specialization and polymorphism. However, we observed that there still exist some serious problems in applying an object-oriented approach during analysis. We believe that the major problems are due to the vague border between analysis and design, to the lack of adequate modelling constructs, guidelines and quality criteria and to problems in transitioning from analysis to design. The goal of this thesis is threefold. A first objective is to evaluate a part of the Unified Modeling Language (UML), the default standard modelling language for object-orientation, as a language for analysis. A second objective is to offer patterns that guide the analyst in building quality models and allow him to focus on the business domain. A third objective is to define principles that help to evaluate modelling language constructs and guidelines. We do not consider the UML in its present form as an appropriate modelling language for precisely and completely specifying functional requirements and observed facts in the business domain. Several patterns will be described to represent objects, properties, business rules and functional requirements. Seven principles, such as the principles of completeness, abstraction and extendibility, will be defined to evaluate the proposed modelling constructs and guidelines. "Doctoreren es vele schriv'n" "Wat niet gemodelleerd kan worden is de waarheid niet" No thesis is written in a vacuum. During the long process of writing I have received support, without which this thesis would not exist, from colleagues and loved ones. First of all, I would like to especially thank Prof. Dr. Eric Steegmans, the promoter of this thesis. I am in debt for the time he has spent with me in almost endless discussions. I highly appreciate the fruitful and constructive meetings, during which he provided me with valuable insights. I wish to express my sincere gratitude to him. My thanks go to the other members of the reading committee, Prof. Dr. Carlos De Backer and Prof. Dr. Karel De Vlaminck, for their comments, which have improved the quality of this text, and to the other members of the jury for taking the time to read the text. It is a pleasant task of acknowledging t...