Implementing a reusable design pattern Library in C#

Show simple item record

dc.contributor.advisor Bishop, Judith
dc.contributor.postgraduate Van Leeuwen, Alastair
dc.date.accessioned 2014-02-26T11:17:02Z
dc.date.available 2014-02-26T11:17:02Z
dc.date.created 2013-09-04
dc.date.issued 2013 en_US
dc.description Dissertation (MSc)--University of Pretoria, 2013. en_US
dc.description.abstract Design patterns in software systems are described as a universal reusable solution to a commonly recurring problem in software design. Design patterns were, however, not intended to be reusable in terms of code. A symptom of their non-reusability is the problems experienced with the way the implementation of design patterns negatively affects their traceability, maintainability and contribution to productivity. This thesis shows how design patterns can be elevated to a higher level of reusability. This work presents design patterns as reusable components that developers can use to implement solutions that utilise patterns, without having to implement a major part of a pattern’s structure and behaviour anew each time. A component is a reusable software section, with possible library classes, that is usually in source form. Previous research has shown that a high proportion of patterns (65%) can be “componentized” in Eiffel, which leads to the idea that a language supporting the same set of features would also have the same success in pattern componentization. This thesis has looked at the componentization of twelve design patterns in C#. The C# language has more advanced language features than Eiffel, including functional and dynamic language features and, as such, should lend itself better to pattern componentization than Eiffel does. The language features that are reviewed in this thesis are inheritance, design by contract™, attributes, method references (or delegates), anonymous functions, lambda expressions, mixins (or extension methods), duck typing, dynamic types and meta-programming. Each pattern’s reusable components are discussed in detail, including the success of the reusable component transformation. All the design patterns reviewed in this thesis could be transformed into fully or partially reusable components. Implementing design patterns using reusable library components is thus a step in the right direction in making design pattern implementations more traceable, reusable, maintainable and more productive. Other object-oriented languages implementing the same or similar language features as those reviewed in this thesis should have the same level of success in transforming design patterns into reusable components. en_US
dc.description.availability unrestricted en_US
dc.description.department Computer Science en_US
dc.description.librarian gm2014 en_US
dc.identifier.citation Van Leeuwen, A 2013, Implementing a reusable design pattern Library in C#, MSc dissertation, University of Pretoria, Pretoria, viewed yymmdd <http://hdl.handle.net/2263/36776> en_US
dc.identifier.other E13/9/1141/gm en_US
dc.identifier.uri http://hdl.handle.net/2263/36776
dc.language.iso en en_US
dc.publisher University of Pretoria en_ZA
dc.rights © 2013 University of Pretoria. All rights reserved. The copyright in this work vests in the University of Pretoria. No part of this work may be reproduced or transmitted in any form or by any means, without the prior written permission of the University of Pretoria. en_US
dc.subject Design patterns en_US
dc.subject C# 4.0 en_US
dc.subject Language features en_US
dc.subject Reusable en_US
dc.subject Duck typing en_US
dc.subject UCTD en_US
dc.title Implementing a reusable design pattern Library in C# en_US
dc.type Dissertation en_US


Files in this item

This item appears in the following Collection(s)

Show simple item record