Spelling suggestions: "subject:"5oftware libraries"" "subject:"1software libraries""
1 |
Quantifying Design Principles in Reusable Software ComponentsMoore, Freeman Leroy 12 1900 (has links)
Software reuse can occur in various places during the software development cycle. Reuse of existing source code is the most commonly practiced form of software reuse. One of the key requirements for software reuse is readability, thus the interest in the use of data abstraction, inheritance, modularity, and aspects of the visible portion of module specifications. This research analyzed the contents of software reuse libraries to answer the basic question of what makes a good reusable software component. The approach taken was to measure and analyze various software metrics as mapped to design characteristics. A related research question investigated the change in the design principles over time. This was measured by comparing sets of Ada reuse libraries categorized into two time periods. It was discovered that recently developed Ada reuse components scored better on readability than earlier developed components. A benefit of this research has been the development of a set of "design for reuse" guidelines. These guidelines address coding practices as well as design principles for an Ada implementation. C++ software reuse libraries were also analyzed to determine if design principles can be applied in a language independent fashion. This research used cyclomatic complexity metrics, software science metrics, and traditional static code metrics to measure design features. This research provides at least three original contributions. First it collects empirical data about existing reuse libraries. Second, it develops a readability measure for software libraries which can aid in comparing libraries. And third, this research developed a set of coding and design guidelines for developers of reusable software. Future research can investigate how design principles for C++ change over time. Another topic for research is the investigation of systems employing reused components to determine which libraries are more successfully used than others.
|
2 |
Techniques in Active and Generic Software LibrariesSmith, Jacob N. 2010 May 1900 (has links)
Reusing code from software libraries can reduce the time and effort to construct software
systems and also enable the development of larger systems. However, the benefits
that come from the use of software libraries may not be realized due to limitations in
the way that traditional software libraries are constructed. Libraries come equipped
with application programming interfaces (API) that help enforce the correct use of
the abstractions in those libraries. Writing new components and adapting existing
ones to conform to library APIs may require substantial amounts of "glue" code that
potentially affects software's efficiency, robustness, and ease-of-maintenance. If, as a
result, the idea of reusing functionality from a software library is rejected, no benefits
of reuse will be realized.
This dissertation explores and develops techniques that support the construction
of software libraries with abstraction layers that do not impede efficiency. In many
situations, glue code can be expected to have very low (or zero) performance overhead.
In particular, we describe advances in the design and development of active libraries
- software libraries that take an active role in the compilation of the user's code.
Common to the presented techniques is that they may "break" a library API (in a
controlled manner) to adapt the functionality of the library for a particular use case.
The concrete contributions of this dissertation are: a library API that supports
iterator selection in the Standard Template Library, allowing generic algorithms to
find the most suitable traversal through a container, allowing (in one case) a 30-fold improvement in performance; the development of techniques, idioms, and best practices
for concepts and concept maps in C++, allowing the construction of algorithms
for one domain entirely in terms of formalisms from a second domain; the construction
of generic algorithms for algorithmic differentiation, implemented as an active
library in Spad, language of the Open Axiom computer algebra system, allowing algorithmic
differentiation to be applied to the appropriate mathematical object and
not just concrete data-types; and the description of a static analysis framework to
describe the generic programming notion of local specialization within Spad, allowing
more sophisticated (value-based) control over algorithm selection and specialization
in categories and domains.
We will find that active libraries simultaneously increase the expressivity of the
underlying language and the performance of software using those libraries.
|
3 |
Comparing Software LibrariesCaroline, Millgårdh January 2013 (has links)
When building an application, native or web-based, you can be faced with the dilemma of finding an external library that will fit your needs. This thesis investigates the problem from a commercial viability standpoint. A new Compliance Reporting System needed a chart library to create appealing dashboards and reports. The aim of the thesis was to develop a generic method for finding, comparing and testing software libraries. The method was developed making use of multiple phases which were then applied to different chart libraries for the Compliance Reporting System. The devised method did not result in the desired outcome of finding a library for the Compliance Reporting System. It did, however, contain a number of successful steps. The first set of prerequisites was used to define relevant search terms. The second set of prerequisites reduced the selection of libraries. The adaptability tests examined the APIs. It was also found that the quality of documentation and public interface of the library can influence the possibility of successful utilization. Testing the extendibility would also have been beneficial. As for chart libraries in general, a lexicon of standardized terminology would be of great benefit.
|
4 |
A consignment library of reusable software components for use over the World-Wide WebHicklin, R. Austin 20 January 2010 (has links)
This research project report discusses the development of a commercial,
consignment-based library (a) of reusable software components to be accessed using the
World-Wide Web. The research project consists of two parts: the development of a
prototype system that provides interface and information retrieval functionality for
such a system, and an analysis of the technical and business issues involved in making
the library operational as a commercial entity.
<p>The prototype system uses a hypertext browser and a query-based search
mechanism to access descriptions of reusable software components; these descriptions
are structured by a variation of a faceted classification system. The issues addressed
include the classification and description of reusable software components; methods of
retrieval, especially library browsing methods based on component classification; and
analysis of incentives for reuse. / Master of Science
|
5 |
Libviews - uma ferramenta web para visualização de bibliotecas e suas dependências em sistemas de informação / Libviews - a web application for visualization of software projects and their dependenciesFerrarezi, Juliana Cassiano [UNESP] 30 January 2017 (has links)
Submitted by Juliana Cassiano Ferrarezi null (juliana.ferrarezi@fc.unesp.br) on 2017-02-21T19:58:33Z
No. of bitstreams: 1
dissertacao.pdf: 4721300 bytes, checksum: aa217c83d703c5b25017bc890d505b4f (MD5) / Approved for entry into archive by Juliano Benedito Ferreira (julianoferreira@reitoria.unesp.br) on 2017-02-24T19:07:35Z (GMT) No. of bitstreams: 1
ferrarezi_jc_me_sjrp.pdf: 4721300 bytes, checksum: aa217c83d703c5b25017bc890d505b4f (MD5) / Made available in DSpace on 2017-02-24T19:07:35Z (GMT). No. of bitstreams: 1
ferrarezi_jc_me_sjrp.pdf: 4721300 bytes, checksum: aa217c83d703c5b25017bc890d505b4f (MD5)
Previous issue date: 2017-01-30 / Bibliotecas de software são importantes e comumente usadas por permitir que os desenvolvedores utilizem funções básicas já implementadas e se concentrem em atividades complexas relacionadas diretamente às regras de negócio do software em desenvolvimento. Além do que, a disponibilização de bibliotecas na internet facilita sua utilização em larga escala. No entanto, pode haver problemas no desenvolvimento de software quanto a utilização de várias bibliotecas desenvolvidas por terceiros, uma vez que são projetos independentes que funcionarão em conjunto. Este trabalho apresenta o LibViews, um software que, por meio de técnicas de Visualização da Informação, disponibiliza uma representação gráfica de projetos de software e as bibliotecas que eles utilizam. A ferramenta apresentada também possibilita a análise de cada biblioteca utilizada através de métricas que permitem analisar a evolução de bibliotecas. O LibViews foi desenvolvido para proporcionar uma melhor compreensão das bibliotecas e
suas versões, bem como a utilização de bibliotecas em projetos de software. Dessa forma, o software permite o entendimento das dependências do software, ou seja, bibliotecas de terceiros utilizadas que interferem diretamente no funcionamento do software. Pode-se afirmar, portanto, que o LibViews ajuda no planejamento, desenvolvimento e manutenção de projetos, permitindo a descoberta de informações até então desconhecidas. Como exemplo, o LibViews foi aplicado em um projeto de software administrativo de uma universidade, comprovando os benefícios de sua utilização para compreender a relação entre o projeto de software e suas dependências. / Software libraries are important and commonly used for allowing developers to use basic functions already implemented and to focus on complex activities directly related to the business rules of the software being developed. In addition, the availability of libraries on the Internet facilitates their mass use. However, there may be problems in software development regarding the use of various libraries developed by third parties, since they are independent projects that will work together. This work presents the LibViews, a software for visualization of software projects and their dependencies; And analysis of each library used through metrics that allow to analyze the evolution of libraries. LibViews was developed to provide a better understanding of libraries and their versions, as well as the use of libraries in software projects. Thus, the
software allows the understanding of the software’s dependencies, that is, third-party libraries used that interfere directly in the operation of the software. LibViews, therefore, can assist in the planning, development, and maintenance of projects, allowing the discovery of previously unknown information. As a use case, LibViews has been applied in a university administrative software project, proving the gains from its use to understand the relationship between the software project and its dependencies.
|
6 |
Creating Software Libraries to Improve Medical Device Testing of the Pacing System Analyzer (PSA) at St. Jude MedicalCanlas, Joel 01 July 2011 (has links) (PDF)
Software testing, specifically in the medical device field, has become increasingly complex over the last decade. Technological enhancements to simulate clinical scenarios and advancements in communicating to medical devices have created the need for better testing strategies and methodologies. Typical medical device companies have depended on manual testing processes to fulfill Food and Drug Administration (FDA) submission requirements specifically Class III devices which are life supporting, life sustaining devices. At St. Jude Medical, software testing of Class III devices such as implantable cardioverter-defibrillators (ICDs), pacemakers, and pacing analyzers are given top priority to ensure the highest quality in each product. High emphasis is made on improving software testing for ease of use and for catching more software errors in each device. A significant stride in testing has automated the process and has provided software verification teams with the tools they need to successfully test and deliver high quality products. By creating software libraries which interact with communication to the other interfaces needed to test medical devices, test engineers can focus on fully testing device requirements and will not be concerned with how each test will interact with the device or any other testing tools. The main focus will be a specific St. Jude Medical device known as the Pacing System Analyzer (PSA). The PSA device will be used to demonstrate how verification engineers are able to benefit from software libraries and allow the testing process and test development to be fully automated. New technologies and standards will be created to simulate clinical scenarios and to communicate to new devices. The goal is to use software engineering principles to create standard test libraries which sustain these changes while still allowing testers to focus on finding issues for each device.
|
Page generated in 0.2927 seconds