A Multi-Perspective Framework for Method Integration
Total Page:16
File Type:pdf, Size:1020Kb
Imperial College of Science, Technology and Medicine University of London Department of Computing A Multi-Perspective Framework for Method Integration Bashar Ahmad Nuseibeh A thesis submitted in partial fulfilment of the requirements for the degree of Doctor of Philosophy in the Faculty of Engineering of the University of London, and for the Diploma of Imperial College of Science, Technology and Medicine. October 1994 1 To my parents, Ahmad & Norma, for making this possible ... 2 Abstract The development of large and complex systems necessarily involves many people - each with their own perspective on the system, defined by their skills, responsibilities and expertise. This is particularly true for composite systems, that is, systems which deploy multiple component technologies. The intersections between perspectives however, are far from obvious because the knowledge within each is represented in different ways. Furthermore, because development may be carried out concurrently by those involved, different perspectives may be at different stages of elaboration, and may be subject to different development strategies. The problem of how to guide and organise systems development in this setting, we term the “multiple perspectives problem”. This thesis focuses on the specification and design of software-based systems. In particular, it addresses the problem of method integration in this setting, which is viewed as an instance of the multiple perspectives problem. The thesis elaborates a software development framework based on loosely coupled, locally managed, distributable objects, called “ViewPoints”, which encapsulate partial representation, process and specification knowledge about a system and its domain. ViewPoint templates, denoting ViewPoint types, are introduced, and are used as the building blocks of software development methods. Such methods, and the ViewPoints that are created as a result of deploying them, are integrated via pairwise inter-ViewPoint rules, which express the relationships that must hold between ViewPoints in order to achieve consistency. The thesis proposes a model of ViewPoint interaction in which inter-ViewPoint rules are defined during method design, and invoked and applied during method deployment. Fine-grain process modelling is used as the means of providing local method guidance and of coordinating ViewPoint interaction. In the spirit of multi-perspective development, inconsistencies are tolerated and managed by prescribing rules that specify how to act in the presence of these inconsistencies. This thesis makes a novel contribution to the organisation and management of multi- perspective software development, and illustrates the role of method engineering, process modelling and consistency management in this setting. The entire ViewPoints framework is supported by a prototype environment, The Viewer, implemented to demonstrate the scope and feasibility of the approach. 3 Preface Statement of Contribution Working as part of the Distributed Software Engineering (DSE) Group at Imperial College means working in a team. Consequently, much of the work undertaken in the group is either inspired by, discussed or co-produced with colleagues in the group. This has made the task of distinguishing the author’s distinct contribution somewhat more difficult. The work described in this thesis was performed during the author’s participation in a number of UK (SERC) and European (Eureka) funded projects. Whereas a large proportion of the work in these projects was collaborative, this thesis describes those aspects to which the author made a distinct contribution. Where necessary, joint work which influenced the direction of the research, is also discussed. Where work was joint or attributable to other researchers, it is appropriately cited between square brackets. Prior to this thesis, the author produced the following related publications. The ViewPoints framework and preliminary research agenda were described in [Finkelstein et al. 1992a]. The computer-based prototype support environment, The Viewer, and associated tools were described in [Nuseibeh & Finkelstein 1992]. A preliminary model of ViewPoint interaction and associated notation for expressing inter-ViewPoint rules were described in [Nuseibeh, Kramer & Finkelstein 1993], and subsequently refined in [Nuseibeh, Kramer & Finkelstein 1994]. The work on inconsistency handling within the ViewPoints framework was described in [Finkelstein et al. 1993] and [Finkelstein et al. 1994], and an exploration of its relationship to process modelling and method guidance appeared in [Nuseibeh, Finkelstein & Kramer 1993] and [Easterbrook et al. 1994]. An account of method engineering and integration in the ViewPoints framework appeared in [Nuseibeh, Finkelstein & Kramer 1994]. Finally, the systems engineering experiences deployed in the examples and case studies described in the thesis first appeared in [Finkelstein et al. 1992d; Finkelstein et al. 1992c], and were later summarised and evaluated in [Finkelstein et al. 1992b]. In all cases, this thesis should be regarded as the definitive account of the work. 4 Preface Acknowledgements The only piece of advice from my supervisor, Anthony Finkelstein, that I have chosen to ignore, is his recommendation that I keep the acknowledgements section of this thesis short. I cannot with a clear conscience fail to acknowledge with gratitude the numerous individuals who have collectively shaped this thesis. This thesis, quite simply, could not have been written without the supervision, guidance and support of Anthony Finkelstein and Jeff Kramer. As my supervisor, Anthony provided me with the inspiration, encouragement and freedom to pursue my, occasionally bizarre, ideas. As my friend, he has been unfailingly supportive, patient and generous. He has always been ready to listen and advise me on my endless technical and social dilemmas - and for that I am deeply grateful. For over three years, Jeff consistently provided me with constructive and insightful feedback on my work. He meticulously reviewed endless reports, papers and drafts of this thesis, and effectively treated my bouts of verbal diarrhoea! Other members of the Distributed Software Engineering Group have also been unfailingly supportive. I would like to thank Keng Ng for his time-saving Mac tips; Steve Crane and Kevin Twidle for guiding me through the Unix maze; and the other members of the group - Naranker Dulay, Sue Eisenbach, Manny Lehman, Jeff Magee and Morris Sloman - who were reassuringly confident that I would write this thesis long before I even settled on a title! Many of the ideas behind the ViewPoints framework originated during Michael Goedicke’s visit to Imperial in 1989. Since then, Michael has consistently contributed to the work, and this thesis has benefited greatly from his feedback. I would also like to thank Steve Easterbrook for our numerous discussions that clarified the distinctions between inconsistencies and conflicts, and for rigorously testing my method integration notation with examples of his own. I am also indebted to Tony Hunter for guiding me through the literature on logic, including the action-based temporal logic used in chapter 7. Throughout my stay at Imperial, my fellow students, research assistants and office-mates have provided me with a comfortingly supportive environment. I am particularly grateful to Shi Ching Cheung, Olly Gotel, Stephen Morris and Kostas Karagianidis for their feedback on my work. Jonathan Moffett deserves special thanks. By the time he left Imperial College in 1992, he had established himself, in the eyes of many Ph.D. students, as a “shadow supervisor”! I could not conceive of submitting my thesis before “Jonathan had had a look at it”! I would like to thank him for meticulously reviewing a complete draft of the beast on short notice. 5 Preface The Viewer tool, described in chapter 8, was an evolutionary prototype. The feedback from audiences who sat through my early demos was invaluable. The experimental enhancements made to The Viewer by past students Alvaro Ballesteros, Fui Kien Lai, Ulf Leonhardt and Thanwadee (“Pomme”) Thanitsukkarn were especially helpful. Anne O’Neill provided me with advice on the Ph.D. procedures at Imperial College, and I am particularly grateful to her for steadying my nerves at times of “crisis”. The cheerfulness of Tracy Banton never wavered as she was transformed (through marriage) into Tracy Scott. I thank her for her secretarial support. I am grateful to my Ph.D. examiners, Pat Hall and Andrew Life, for their valuable suggestions on improving the thesis and developing the research. My friends at the Imperial College Dance Club made sure I maintained an “upright posture” and high spirits through the long months of thesis-writing, and I am grateful to them for their encouragement and companionship. Last but not least, the support of my family has sustained me throughout the duration of my Ph.D. Rania, Mustapha, Serena, Bana and Rawan have all, in different ways, contributed to this thesis. My father has never understood why I would want to engage in “smalltalk” for so many years, but encouraged me to do so all the same. My physical well-being was regimentally monitored by my mother who insisted that I simply could not write a Ph.D. thesis on an empty stomach! Thanks Mum and Dad. Financial Support The work presented in this thesis was partly funded by: • The UK Science and Engineering Research Council (SERC) as part of its Software Engineering and Engineering Design (SEED)