• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 1
  • Tagged with
  • 3
  • 3
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

Service-based automation of software construction activities

Zinn, Marcus January 2013 (has links)
The reuse of software units, such as classes, components and services require professional knowledge to be performed. Today a multiplicity of different software unit technologies, supporting tools, and related activities used in reuse processes exist. Each of these relevant reuse elements may also include a high number of variations and may differ in the level and quality of necessary reuse knowledge. In such an environment of increasing variations and, therefore, an increasing need for knowledge, software engineers must obtain such knowledge to be able to perform software unit reuse activities. Today many different reuse activities exist for a software unit. Some typical knowledge intensive activities are: transformation, integration, and deployment. In addition to the problem of the amount of knowledge required for such activities, other difficulties also exist. The global industrial environment makes it challenging to identify sources of, and access to, knowledge. Typically, such sources (e.g., repositories) are made to search and retrieve information about software unitsand not about the required reuse activity knowledge for a special unit. Additionally, the knowledge has to be learned by inexperienced software engineers and, therefore, to be interpreted. This interpretation may lead to variations in the reuse result and can differ from the estimated result of the knowledge creator. This makes it difficult to exchange knowledge between software engineers or global teams. Additionally, the reuse results of reuse activities have to be repeatable and sustainable. In such a scenario, the knowledge about software reuse activities has to be exchanged without the above mentioned problems by an inexperienced software engineer. The literature shows a lack of techniques to store and subsequently distribute relevant reuse activity knowledge among software engineers. The central aim of this thesis is to enable inexperienced software engineers to use knowledge required to perform reuse activities without experiencing the aforementioned problems. The reuse activities: transformation, integration, and deployment, have been selected as the foundation for the research. Based on the construction level of handling a software unit, these activities are called Software Construction Activities (SCAcs) throughout the research. To achieve the aim, specialised software construction activity models have been created and combined with an abstract software unit model. As a result, different SCAc knowledge is described and combined with different software unit artefacts needed by the SCAcs. Additionally, the management (e.g., the execution of an SCAc) will be provided in a service-oriented environment. Because of the focus on reuse activities, an approach which avoids changing the knowledge level of software engineers and the abstraction view on software units and activities, the object of the investigation differs from other approaches which aim to solve the insufficient reuse activity knowledge problem. The research devised novel abstraction models to describe SCAcs as knowledge models related to the relevant information of software units. The models and the focused environment have been created using standard technologies. As a result, these were realised easily in a real world environment. Softwareengineers were able to perform single SCAcs without having previously acquired the necessary knowledge. The risk of failing reuse decreases because single activities can be performed. The analysis of the research results is based on a case study. An example of a reuse environmenthas been created and tested in a case study to prove the operational capability of the approach. The main result of the research is a proven concept enabling inexperienced software engineers to reuse software units by reusing SCAcs. The research shows the reduction in time for reuse and a decrease of learning effort is significant.
2

Towards cache optimization in finite automata implementations

Ketcha Ngassam, Ernest 21 July 2007 (has links)
To the best of our knowledge, the only available implementations of FA-based string recognizers are the so-called conventional table-driven algorithm and, of course, its hardcoded counterpart suggested by Thompson, Penello, and DeRemer in 1967, 1986, and 2004 respectively. However, our early experiments have shown that the performance of both implementations is hampered by the random access nature of the automaton’s transition table in the case of table-driven, and also the random access nature of the directly executable instructions that make up each hardcoded state. Moreover, the problem of memory load and instruction load are also performance bottlenecks of these algorithms, since, as the automaton size grows, more space in memory is required to hold data/instructions relevant to the states. This thesis exploits the notion of cache optimization (that requires good data or instructions organization) in investigating various enhancements of both table-driven and hardcoding. Functions have been used to formally define the denotational semantics of string recognizers. These functions rely on various so-called strategy variables that are integrated into the formal definition of each recognizer. By appropriately selecting these variables, the conventional algorithms may be described, without loss of generality. By specializing these strategy variables, the new and enhanced recognizers can be denotationally described, and resulting algorithms can then be implemented. We first introduce the so-called Dynamic State Allocation (DSA) strategy regarded as a sort of Just-In-time (JIT) implementation of FA-based string recognizers whereby a predefined portion of the memory is reserved for acceptance testing. Then follows the State pre-Ordering (SpO) strategy that assumes some prior knowledge on the order in which states would be visited. In this case, acceptance testing takes place once each state have been allocated to its new position in memory. The last strategy referred to as the Allocated Virtual Caching (AVC) strategy is based on the premise that a portion of the memory originally occupied by the automaton’s states is virtually used as a sort of cache memory in which acceptance testing takes place, enabling therefore, the exploitation of the various performance enhancement notions on which hardware cache memory relies. It is shown that the algorithms can be classified in a taxonomy tree which is further mapped into a class-diagram that represents the design of a toolkit for FA-based string recognition. Also given in the thesis are empirical results that indicate that the algorithms suggested can, in general, outperform their conventional counterparts when recognizing large and appropriately chosen input strings. / Thesis (PhD (Computer Science))--University of Pretoria, 2007. / Computer Science / PhD / unrestricted
3

Building reverse engineering tools with software components

Kienle, Holger M. 20 November 2006 (has links)
This dissertation explores a new approach to construct tools in the domain of reverse engineering. The approach uses already available software components -- such as off-the-shelf components and integrated development environments -- as building blocks, combining and customizing them programmatically to realize the desired functional and non-functional requirements. This approach can be characterized as component-based tool-building, as opposed to traditional tool-building, which typically develops most of the tool's functionalities from scratch. The dissertation focuses on research tools that are constructed in a university or research lab (and then possibly evaluated in an industrial setting). Often the motivation to build a research tool is a proof-of-concept implementation. Tool-building is a necessary part of research -- but it is a costly one. Traditional approaches to tool building have resulted in tools that have a high degree of custom code and exhibit little reuse. This approach offers the most flexibility, but can be costly and can result in highly idiosyncratic tools that are difficult to use. To compensate for the drawbacks of building tools from scratch, researchers have started to reuse existing functionality, leading towards an approach that leverages components as building blocks. However, this emerging approach is pursued in an ad hoc manner reminiscent of craftsmanship rather than professional engineering. The goal of this dissertation is to advance the current state of component-based tool-building towards a more disciplined, predictable approach. To achieve this goal, the dissertation first summarizes and evaluates relevant tool-building experiences and case studies, and then distills these into practical advice in the form of lessons learned, and a process framework for tool builders to follow. The dissertation uniquely combines two areas, reverse engineering and software components. The former addresses the constructed tool's application domain, the latter forms the foundation of the tool-building approach. Since this dissertation mostly focuses on tools for reverse engineering, a thorough understanding of this application domain is necessary to elicit its requirements. This is accomplished with an in-depth literature survey, which synthesizes five major requirements. The elicited requirements are used as a yardstick for the evaluation of component-based tools and the proposed process framework. There are diverse kinds of software components that can be leveraged for component-based tool building. However, not all of these components are suitable for the proposed tool-building approach. To characterize the kinds of applicable components, the dissertation introduces a taxonomy to classify components. The taxonomy also makes it possible to reason about characteristics of components and how these characteristics affect the construction of tools. This dissertation introduces a catalog of components that are applicable for the proposed tool-building approach in the reverse engineering domain. Furthermore, it provides a detailed account of several case studies that pursue component-based tool-building. Six of these case studies represent the author's own tool-building experiences. They have been performed over a period of five years within the Adoption-Centric Reverse Engineering project at the University of Victoria. These case studies, along with relevant experiences reported by other researchers, constitute a body of valuable tool-building knowledge. This knowledge base provides the foundation for this dissertation's two most important contributions. First, it distills the various experiences -- the author's as well as others -- into ten lessons learned. The lessons cover important requirements for tools as uncovered by the literature survey. Addressing these requirements promises to result in better tools that are more likely to meet the needs of tool users. Second, the dissertation proposes a suitable process framework for component-based tool development that can be instantiated by tool builders. The process framework encodes desirable properties of a process for tool-building, while providing the necessary flexibility to account for the variations of individual tool-building projects.

Page generated in 0.0809 seconds