Software systems with intensive user-computer interactions account for a fairly large

part of the total real world software applications, such as web applications, MS Windows applications, GNOME/KDE applications etc. We call this kind of software

user-centric software, denoting a defining characteristic which is that they are usable

directly by users. Exhibited in this thesis is a systematic approach for developing a software requirements specification (SRS) for user-centric software. While this approach conforms to the well-recognized software requirements engineering process model, which

contains the processes of requirements elicitation, analysis, specification and validation,

it is tailored to user-centric software. The user-centric ideas are embodied and applied throughout our approach. In the elicitation process, the joint requirements development (JRD) sessions (known as requirement workshops) are advocated, and step-by-step guidance is developed leading to a natural flow from the raw problem descriptions to user requirements - the use case model. Further, based on the various object-oriented analysis paradigms, we build a systematic analysis process to seek analysis classes, where domain classes are harvested from the composed data hierarchies of all use cases, and application classes and functions are captured from sequence diagrams. Especially, our notation of boundary classes provides considerable flexibility in the user interface (UI) design phase. During the SRS process, functional requirements derived from the analysis model are specified according to a class specification template. Moreover, the three-level validation process positively involves the userŐs participation facilitating assurance that the right software is built. Also, to demonstrate the practicability of this approach, it is applied in a case study dealing with developing the SRS of a photodynamic therapy (PDT) treatment planning application.