This thesis is about how to start an Object-Oriented (OO) system development process. The research problem may be translated like this: "Does it make sense to postpone the drawing of the system boundary in an object-oriented system development process?" In the process of working out a solution to the problem described, we studied how the Unified Process (UP) recommends to start an OO system development process. UP is a well-known development process, which starts by identifying functional requirements by means of use cases. This may lead to setting up a fixed system boundary very early in the development process.
In this thesis, we suggest an OO framework for how to avoid setting up a fixed system boundary early in the development process. The focus should be on how objects collaborate, regardless of what may be perceived as real world tasks and computerized tasks. Some objects may even be split into one part belonging to the real world, and another part belonging to the computerized system.
By postponing the distribution of knowledge and responsibility between real world tasks and the computerized system, we are able to design OO models on a higher abstraction level. The objects inside our system should not be regarded as part of an OO model of the "real world", but as computerized enhancements to objects in the real world. Only after we have decided upon how knowledge and responsibility should be distributed between the two parts, we know where to draw the system boundary.
The OO framework presented in this thesis may be applied to any OO development process, where we want to delay the drawing of the system boundary.