Spelling suggestions: "subject:"component based software"" "subject:"dcomponent based software""
21 |
A comparison of component-based software engineering and model-driven development from the ProCom perspectiveGrozev, Nikolay January 2011 (has links)
Component-based software engineering (CBSE) and model-driven development (MDD) are two approaches for handling software development complexity. In essence, while CBSE focuses on the construction of systems from existing software modules called components; MDD promotes the usage of system models which after a series of transformations result with an implementation of the desired system. Even though they are different, MDD and CBSE are not mutually exclusive. However, there has not been any substantial research about what their similarities and differences are and how they can be combined. In this respect, the main goal of this thesis is to summarize the theoretical background of MDD and CBSE, and to propose and apply a systematic method for their comparison. The method takes into account the different effects that these development paradigms have on a wide range of development aspects. The comparison results are then summarized and analyzed. The thesis also enriches the theoretical discussion with a practical case study comparing CBSE and MDD with respect to ProCom, a component model designed for the development of component-based embedded systems in the vehicular-, automation- and telecommunication domains. The aforementioned comparison method is refined and applied for this purpose. The comparison results are again summarized, analyzed and proposals about future work on ProCom are made.
|
22 |
A software component model that is both control-driven and data-drivenSafie, Lily Suryani Binti January 2012 (has links)
A software component model is the cornerstone of any Component-based Software Development (CBSD) methodology. Such a model defines the modelling elements for constructing software systems. In software system modelling, it is necessary to capture the three elements of a system's behaviour: (i) control (ii) computation and (iii) data. Within a system, computations are performed according to the flow of control or the flow of data, depending on whether computations are control-driven or data-driven. Computations are function evaluations, assignments, etc., which transform data when invoked by control or data flow. Therefore a component model should be able to model control flow, data flow as well as computations. Current component models all model computations, but beside computations tend to model either control flow only or data flow only, but not both. In this thesis, we present a new component model which can model both control flow and data flow. It contains modelling elements that capture control flow and data flow explicitly. Furthermore, the modelling of control flow is separate from that of data flow; this enables the modelling of both control-driven and data-driven computations. The feasibility of the model is shown by means of an implementation of the model, in the form of a prototype tool. The usefulness of the model is then demonstrated for a specific domain, the embedded systems domain, as well as a generic domain. For the embedded systems domain, unlike current models, our model can be used to construct systems that are both control-driven and data-driven. In a generic domain, our model can be used to construct domain models, by constructing control flows and data flows which together define a domain model.
|
23 |
Orchestra Framework: Protocol Design for Ad Hoc and Delay Tolerant Networks using Genetic AlgorithmsNaik, Apoorv 15 July 2011 (has links)
Protocol designs targeted at a specific network scenario or performance metric appear promising on paper, but the complexity and cost of implementing and tuning a routing protocol from scratch presents a major bottleneck in the protocol design process. A unique framework called 'Orchestra` is proposed in the literature to support the testing and development of novel routing designs. The idea of the Orchestra framework is to create generic and reusable routing functional components which can be combined to create unique protocol designs customized for a specific performance metric or network setting. The first contribution of this thesis is the development of a generic, modular, scalable and extensible architecture of the Orchestra framework.
Once the architecture and implementation of the framework is completed, the second contribution of this thesis is the development of functional components and strategies to design and implement routing protocols for delay tolerant networks (DTNs). DTNs are a special type of ad hoc network characterized by intermittent connectivity, long propagation delays and high loss rate. Thus, traditional ad hoc routing approaches cannot be used in DTNs, and special features must be developed for the Orchestra framework to support the design of DTN routing protocols.
The component-based architecture of Orchestra can capture a variety of modules that can be used to assemble a routing protocol. However, manually assembling these components may result in suboptimal designs, because it is difficult to determine what the best combination is for a particular set of performance objectives and network characteristics. The third contribution of the thesis addresses this problem. A genetic algorithm based approach to automate the process of routing protocol design is developed and its performance is evaluated in the context of the Orchestra framework. / Master of Science
|
24 |
Component Repository BrowserDanish, Muhammad Rafique, Khan, Sajjad Ali January 2010 (has links)
<p>The main goal of this thesis is to investigate efficient searching mechanisms for searching and retrieving software components across different remote repositories and implement a supporting prototype called “Component Repository Browser” using the plug-in based Eclipse technology for PROGRESS-IDE. The prototype enables users to search the ProCom components and to import the desired components from a remote repository server over different protocols such as HTTP, HTTPS, and/or SVN. Several component searching mechanisms and suggestions were studied and examined such as keyword, facet-based search, folksonomy classification, and signature matching, from which we selected keyword search along with facet-based searching technique to help component searchers to efficiently find the desired components from a remote repository.</p>
|
25 |
Automatic Signature Matching in Component CompositionHashemian, Seyyed Vahid January 2008 (has links)
Reuse is not a new concept in software engineering. Ideas, abstractions, and processes have been reused by programmers since the very early days of software development. In the beginning, since storage media was very expensive, software reuse was basically to serve computers and their mechanical resources, as it substantially conserved memory. When the limitations on physical resources started to diminish, software engineers began to invent reuse approaches to save human resources as well. In addition, as the size and complexity of software systems constantly grow, organized and systematic reuse becomes essential in order to develop those systems in timely and cost-effective fashion. That is one main reason why new technologies and approaches for building software systems, such as object-oriented and component-based development, emerged in the last two or three decades.
The focus of this thesis is on software components as building blocks of today's software systems. We consider components as software black boxes whose specification and external behavior are known. We assume that this information can somehow be extracted for each deployed software component. The first and basic assumption then would be the availability of a searchable repository of software components and their external behavioral specifications. Web services are a good example of such components.
The most important advantage of software components is that they can be reused repeatedly in building different software systems. Reuse presents challenging problems, one of which is studied in this thesis. This problem, the composition problem, simply is creating a composite component from a collection of available components that, by interacting with each other, provide a requested functionality. When there are a large number of components available to be reused, finding a solution to the composition problem manually would require a considerable time and human effort. This could make the search practically impossible or unwieldy. However, performing the search automatically would save a significant amount of development time, cost and human effort. Solving this problem would be a huge step forward in the component-based software development.
In this thesis, we concentrate on a subproblem of the composition problem, composition planning or synthesis, which is defined as finding a collection of useful components from the repository and the necessary communications among them to satisfy a requested functionality. For scalability purposes, we study automatic solutions to composition planning and propose two approaches in this regard. In one, we take advantage of graphs to model the repository, which is the collection of available components along with their behavioral specification. Graph search algorithms and a few composition-specific algorithms are used to find solutions for given component requests. In the other approach, we extend a logical reasoning algorithm and come up with algorithms for solving the composition planning problem. In both approaches we provide algorithms for finding the possibility of a composition, as well as finding the composition itself.
We propose different types of composition and show how applying each would impact the behavior of a composite component. We provide the necessary formalism for capturing these types of composition through two different models: interface automata and composition algebra. Interface automata is an automaton-based model for representing the behavior of software components. The other model in this regard is composition algebra, which is an algebraic model based on CSP (Communicating Sequential Processes), CCS (Calculus of Communicating Systems), and interface automata. These formal models are used to validate the results returned by the composition approaches.
We also compare the two composition approaches and show why each of them is suitable for specific types of the problem according to the repository attributes. We then evaluate the performance of the reasoning-based approach and provide some experimental results. In these experiments, we study how different attributes of the repository components could impact the performance of the reasoning-based approach in solving the composition planning problem.
|
26 |
Automatic Signature Matching in Component CompositionHashemian, Seyyed Vahid January 2008 (has links)
Reuse is not a new concept in software engineering. Ideas, abstractions, and processes have been reused by programmers since the very early days of software development. In the beginning, since storage media was very expensive, software reuse was basically to serve computers and their mechanical resources, as it substantially conserved memory. When the limitations on physical resources started to diminish, software engineers began to invent reuse approaches to save human resources as well. In addition, as the size and complexity of software systems constantly grow, organized and systematic reuse becomes essential in order to develop those systems in timely and cost-effective fashion. That is one main reason why new technologies and approaches for building software systems, such as object-oriented and component-based development, emerged in the last two or three decades.
The focus of this thesis is on software components as building blocks of today's software systems. We consider components as software black boxes whose specification and external behavior are known. We assume that this information can somehow be extracted for each deployed software component. The first and basic assumption then would be the availability of a searchable repository of software components and their external behavioral specifications. Web services are a good example of such components.
The most important advantage of software components is that they can be reused repeatedly in building different software systems. Reuse presents challenging problems, one of which is studied in this thesis. This problem, the composition problem, simply is creating a composite component from a collection of available components that, by interacting with each other, provide a requested functionality. When there are a large number of components available to be reused, finding a solution to the composition problem manually would require a considerable time and human effort. This could make the search practically impossible or unwieldy. However, performing the search automatically would save a significant amount of development time, cost and human effort. Solving this problem would be a huge step forward in the component-based software development.
In this thesis, we concentrate on a subproblem of the composition problem, composition planning or synthesis, which is defined as finding a collection of useful components from the repository and the necessary communications among them to satisfy a requested functionality. For scalability purposes, we study automatic solutions to composition planning and propose two approaches in this regard. In one, we take advantage of graphs to model the repository, which is the collection of available components along with their behavioral specification. Graph search algorithms and a few composition-specific algorithms are used to find solutions for given component requests. In the other approach, we extend a logical reasoning algorithm and come up with algorithms for solving the composition planning problem. In both approaches we provide algorithms for finding the possibility of a composition, as well as finding the composition itself.
We propose different types of composition and show how applying each would impact the behavior of a composite component. We provide the necessary formalism for capturing these types of composition through two different models: interface automata and composition algebra. Interface automata is an automaton-based model for representing the behavior of software components. The other model in this regard is composition algebra, which is an algebraic model based on CSP (Communicating Sequential Processes), CCS (Calculus of Communicating Systems), and interface automata. These formal models are used to validate the results returned by the composition approaches.
We also compare the two composition approaches and show why each of them is suitable for specific types of the problem according to the repository attributes. We then evaluate the performance of the reasoning-based approach and provide some experimental results. In these experiments, we study how different attributes of the repository components could impact the performance of the reasoning-based approach in solving the composition planning problem.
|
27 |
Architectural metrics and evaluation for component based software systemsBhattacharya, Sutirth 21 April 2015 (has links)
Component based software engineering has been perceived to have immense reuse potential. This area has evoked wide interest and has led to considerable investment in research and development efforts. Most of these investigations have explored internal characteristics of software components such as correctness, reliability, modularity, interoperability, understandability, maintainability, readability, portability and generality for promoting reuse. But experience over the past decade and a half has demonstrated that the usefulness of a component depends as much on the context into which it fits as it does on the internal characteristics of the component. Software architecture descriptions that take into account the requirements of the domain can be used to serve as this context. While the Perry, Wolf definition of software architecture has been widely acknowledged, a number of architectural description languages (ADL) have emerged that aim to capture various facets of a software, using varying degrees of formalism. There is currently no agreement towards a standard approach for documenting software architectures which would help define the vocabulary for architectural semantics. In spite of lack of any specification standards for components, Software Product Lines (SPL) and Commercial Off The Shelf (COTS) components do provide a rich supporting base for creating software architectures and promise significant improvements in the quality of software configurations that can be composed from pre-built components. However, further research is needed for evaluation of architectural merits of such component based configurations. In this research, we identify the key aspects of software that need to be specified to enable useful analysis at an architectural level. We also propose a set of metrics that enable objective evaluation of reusability potential. Architectural research has established that software architectural styles provide a way for achieving a desired coherence for component-based architectures. Different architectural styles enforce different quality attributes for a system. Thus, if the architectural style of an emergent system could be predicted, a person playing the role of a system integrator could make necessary changes to ensure that the quality attributes dictated by the system requirements were satisfied before the actual system is built and deployed, thus somewhat mitigating project risks. As part of this research, we propose a model for predicting architectural styles based on use cases that need to be satisfied by a system configuration and demonstrate how our approach can be used to determine stylistic conformance. We also propose objective methods for assessing architectural divergence, erosion and drift during system evolution and maintenance. / text
|
28 |
Vers une modélisation et un dimensionnement automatique des systèmes répartis / Automatic performance modelling of black boxes towards self-sizingHarbaoui, Ahmed 21 October 2011 (has links)
De nos jours, les systèmes distribués sont caractérisés par une complexité croissante de l'architecture, des fonctionnalités et de la charge soumise. Cette complexité induit souvent une perte de la qualité de service offerte, ou une saturation des ressources, voire même l'indisponibilité des services en ligne, en particulier lorsque la charge est importante. Afin d'éviter les désagrèments causés par d'importantes charges et remplir le niveau attendu de la qualité de service, les systèmes nécessitent une auto-gestion, en optimisant par exemple un tier ou en le renforçant à travers la réplication. Cette propriété autonome requiert une modélisation des performances de ces systèmes. Visant cet objectif, nous développons un framework basé sur une méthodologie théorique et expérimentale d'identification automatique de modèle et de dimensionnement, fournissant en premier un modèle de réseau de file d'attente pour un système distribué. Ensuite, ce Modèle est utilisé au sein de notre framwork pour dimensionner le système à travers une analyse ou une simulation du réseau de file d'attente. / Modern distributed systems are characterized by a growing complexity of their architecture, functionalities and workload. This complexity, and in particular significant workloads, often lead to quality of service loss, saturation and sometimes unavailability of on-line services. To avoid troubles caused by important workloads and fulfill a given level of quality of service (such as response time), systems need to self-manage, for instance by tuning or strengthening one tier through replication. This autonomic feature requires performance modelling of systems. In this objective, we developed a framework based on a theoretical and experimental approach for automatic identification process and sizing . This framework provid a queuing model for a distributed system. Then, this model is used in our Framwork to size the system through an analysis or simulation.
|
29 |
Visualisering av komplexa system / Visualizing complex systemsRisinger, Tore, Tinnerholm, John January 2016 (has links)
Mjukvaruutveckling är en komplicerad uppgift och olika visualiseringstekniker har genom åren använts för att underlätta förståelsen och underhållbarheten av mjukvara. I detta arbete har en prototyp tagits fram för att underlätta navigering och förståelse för mjukvarukomponenter i utvecklingsverktyget Arctic Studio. En intervju- baserad användarundersökning användes för att förstå aktuella brister med nuvarande presentationsmönster i Arctic studio och ta reda på hur användarna arbetar med verktyget. Prototypens design baserades på resultatet av användarundersökningen. Den slutgiltiga prototypen bestod utav tre delar. Ett polärdiagram för att visa komponenter och dess grannar, en matrisbaserad visualisering för att visa en vald komponents portar och dess kopplingar samt en riktad trädgraf för att visualisera hur information propagerar genom systemet. Den framtagna prototypen evaluerades med hjälp av kognitiva genomgångar med interna utvecklare. / Software development is a complicated task and different visualisation techniques have been used during the years to facilitate understandability and maintenance in software systems. In this thesis a proof of concept has been developed to augment navigation and understandability for software components in the integrated software development environment Arctic Studio. An interview based user survey was conducted to identify issues with the current environment in Arctic Studio, and to find out current usage patterns in the user base. The design of the prototype was based on the result of the user survey. The final prototype consisted of three parts. A radian diagram was used to provide a neighbourhood view for the different compositions of the system, a matrix based visualisation complemented this view to show a selected components ports and connections. The last part consisted of a directed tree graph to visualize the connection hierarchy for a selected port. The prototype was then evaluated using a cognitive walkthrough with internal developers.
|
30 |
Component Repository BrowserDanish, Muhammad Rafique, Khan, Sajjad Ali January 2010 (has links)
The main goal of this thesis is to investigate efficient searching mechanisms for searching and retrieving software components across different remote repositories and implement a supporting prototype called “Component Repository Browser” using the plug-in based Eclipse technology for PROGRESS-IDE. The prototype enables users to search the ProCom components and to import the desired components from a remote repository server over different protocols such as HTTP, HTTPS, and/or SVN. Several component searching mechanisms and suggestions were studied and examined such as keyword, facet-based search, folksonomy classification, and signature matching, from which we selected keyword search along with facet-based searching technique to help component searchers to efficiently find the desired components from a remote repository.
|
Page generated in 0.0789 seconds