The Viewpoints FAQ Anthony Finkelstein City University, Department of Computer Science, Northampton Square, LONDON EC1V 0HB, UK <acwf@cs.city.ac.uk> Ian Sommerville Department of Computing, Lancaster University, LANCASTER LA1 4YR, UK <is@comp.lancs.ac.uk> The structure of this brief paper follows an emerging convention - the FAQ - Frequently Asked Questions list. FAQs have grown out of Internet newgroups where participants, tired of seeing the same questions repeated by newcomers, provide a list of canned answers to the most frequently asked questions. An FAQ also provides a covert role in defusing tiresome or unduly acrimonious debates by summarising the arguments and pre-empting outbreaks of “flame wars”. This is our attempt, somewhat tongue-in-cheek, to do the same for viewpoints. The FAQ serves as our introduction to the theme of the special issue papers which follow. 1. What are viewpoints? The construction of a complex description or model involves many agents (aka participants or actors). These agents have different perspectives or views of the artifact or system they are trying to describe or model (the domain of discourse). These perspectives or views are partial or incomplete descriptions which arise because of different responsibilities or roles assigned to the agents. These responsibilities or roles may be organisationally defined, follow some defined structuring of the underlying artifact or system, or may reflect different modelling or descriptive capabilities. The combination of the agent and the view that the agent holds is termed a viewpoint. The study of viewpoints embraces the relations between views, between views and agents, and between agents. 2. How do viewpoints relate to software engineering? Viewpoints are a general feature of group work but crop up with particular frequency in software engineering. Software engineering is characterised by a concern with large systems displaying complex structure and with many interlocking constraints on their construction and behaviour. Working with such systems necessitates multiple viewpoints for complexity control and separation of concerns. During the specification of such systems viewpoints naturally arise out of differences of opinion, varying goals and mistakes or errors. Work on viewpoints has commonly been linked to work on requirements engineering. Though the problem is particularly acute during the early stages of development, particularly elicitation where many diverse client views are prevalent, it is not restricted to it. Viewpoints are encountered throughout the process of system development. For example, many design methods have implicit viewpoints in that they suggest the creation of several system models such as a data-flow model, an entity-relation model, etc. 3. What do viewpoint-oriented methods do? Conventional system development methods do not recognise the existence of viewpoints as user- definable entities. Instead they provide rigid structuring schemes and strictly control both the diversity of viewpoints and the relations between them. By contrast viewpoint-oriented methods make viewpoints first class objects so they can be defined by method users, relationships between them can be established, etc.