M Anaging Dependencies and Constraints Assembled Software
Total Page:16
File Type:pdf, Size:1020Kb
Managing Dependencies and Constraints Assembled Software Systems By Mark Northcott A thesis submitted to the Faculty of Graduate Studies and Research in partial fulfilment of the requirements for the degree of Master of Computer Science Ottawa-Carleton Institute for Computer Science School of Computer Science Carleton University Ottawa, Ontario September 2005 © Copyright 2005, Mark Northcott Reproduced with permission of the copyright owner. Further reproduction prohibited without permission. Library and Bibliotheque et 1*1 Archives Canada Archives Canada Published Heritage Direction du Branch Patrimoine de I'edition 395 Wellington Street 395, rue Wellington Ottawa ON K1A 0N4 Ottawa ON K1A 0N4 Canada Canada Your file Votre reference ISBN: 0-494-10120-2 Our file Notre reference ISBN: 0-494-10120-2 NOTICE: AVIS: The author has granted a non L'auteur a accorde une licence non exclusive exclusive license allowing Library permettant a la Bibliotheque et Archives and Archives Canada to reproduce, Canada de reproduire, publier, archiver, publish, archive, preserve, conserve, sauvegarder, conserver, transmettre au public communicate to the public by par telecommunication ou par I'lnternet, preter, telecommunication or on the Internet, distribuer et vendre des theses partout dans loan, distribute and sell theses le monde, a des fins commerciales ou autres, worldwide, for commercial or non sur support microforme, papier, electronique commercial purposes, in microform, et/ou autres formats. paper, electronic and/or any other formats. The author retains copyright L'auteur conserve la propriete du droit d'auteur ownership and moral rights in et des droits moraux qui protege cette these. this thesis. Neither the thesis Ni la these ni des extraits substantiels de nor substantial extracts from it celle-ci ne doivent etre imprimes ou autrement may be printed or otherwise reproduits sans son autorisation. reproduced without the author's permission. In compliance with the Canadian Conformement a la loi canadienne Privacy Act some supporting sur la protection de la vie privee, forms may have been removed quelques formulaires secondaires from this thesis. ont ete enleves de cette these. While these forms may be included Bien que ces formulaires in the document page count, aient inclus dans la pagination, their removal does not represent il n'y aura aucun contenu manquant. any loss of content from the thesis. i * i Canada Reproduced with permission of the copyright owner. Further reproduction prohibited without permission. Abstract Systems constructed by integrating off-the-shelf products are difficult to construct, deploy, and evolve because of the large number of dependencies that exist, between the products. Different organizations can use different products to provide similar services, leading to different constraints at each deployed site. This results in a large number of dependencies and constraints that must be satisfied in order for the sys tem to function properly. These dependencies and constraints are not managed in a rigorous manner often resulting in having to rediscover the information each time the system is deployed. This thesis presents an approach to managing the depen dencies and constraints in software systems constructed by integration off-the-shelf products. A formal specification for modeling the products and dependencies that exist in a system is developed, and it is used as the basis for describing a process for managing dependencies and constraints. The activities that are involved in this pro cess include defining the dependence model of the system, specifying the constraints, and manually verifying that the constraints are satisfied within the deployed system. These activities are intended to be executed concurrently by different organizations and individuals that are involved with the system. To facilitate this concurrency and geographic distribution, a tool is developed that provides support for open collab oration amongst all actors involved in the dependency and constraint management process. iii Reproduced with permission of the copyright owner. Further reproduction prohibited without permission. Acknowledgements I would like to thank my supervisors, Dr. Mark Vigder and Dr. Francis Bordeleau, for their continued support throughout the writing of this thesis. Their guidance helped shape the direction of this thesis, and they contributed immensely to the completed research. I would also like to thank the Software Engineering Group of the Institute for Information Technology and the Ontario Graduate Scholarship Program for providing funding throughout the term of this research. Finally, I would like to thank my parents and brothers for always being there and telling me exactly what I needed to hear. iv Reproduced with permission of the copyright owner. Further reproduction prohibited without permission. Contents 1 Introduction 1 1.1 Context and M otivation ........................................................................... 1 1.2 Problem S ta te m e n t ..................................................................................... 3 1.3 O b jectiv es ..................................................................................................... 3 1.4 C o n trib u tio n s ............................................................................................... 5 1.5 Summary ........................................................................................................... 7 2 Background 9 2.1 Identifying and Modeling Dependencies ................................................ 10 2.2 Managing Dependencies and Constraints in a Software System .... 14 2.2.1 Software Configuration Management ............................................. 14 2.2.2 Software Package Management ....................................................... 16 2.2.3 Deployment and Configuration of Component-based Systems . 18 2.3 Open Collaboration ..................................................................................... 21 2.4 Summary ........................................................................................................... 24 3 Modeling the Software Assembly Process 26 3.1 Software Development Through Assembly ............................................... 28 3.1.1 Application Assembly P ro c e s s .......................................................... 28 3.1.2 Actors and Use Cases in the Application Assembly Process . 30 3.2 Dependencies and Constraints in Assembled Software Systems .... 35 3.2.1 D ependency ............................................................................................ 35 3.2.2 C o n strain t ................................................................................................ 36 v Reproduced with permission of the copyright owner. Further reproduction prohibited without permission. 3.2.3 Discovery of Dependencies and Constraints ................................. 36 3.2.4 Evolution of Assembled Software Systems ................................. 38 3.3 Managing Constraints in Assembled Software Systems ........................... 38 3.3.1 Constraint Management Scenarios .................................................. 40 3.3.2 Constraint Management Requirements ........................................ 44 3.4 Need for a Formal Specification ................................................................... 46 3.5 Summary ........................................................................................................... 47 4 Modeling Assembled Software Systems 48 4.1 C om ponents ........................................................................................................ 50 4.1.1 Description ........................................................................................... 50 4.1.2 Definition .............................................................................................. 52 4.1.3 Graphical Notation ............................................................................. 52 4.2 D ep en d en cies ..................................................................................................... 52 4.2.1 Description ........................................................................................... 52 4.2.2 Definition .............................................................................................. 53 4.2.3 Graphical Notation ............................................................................. 53 4.3 Constraints ........................................................................................................ 54 4.3.1 Description ........................................................................................... 54 4.3.2 Definition .............................................................................................. 54 4.3.3 Graphical Notation ............................................................................. 55 4.4 Assemblies ............................................................................................................ 55 4.4.1 Description ........................................................................................... 55 4.4.2 Definition .............................................................................................. 55 4.4.3 Graphical Notation .............................................................................. 57 4.5 Configurations ..................................................................................................... 57 4.5.1 D e sc rip tio n ..........................................................................................