11 |
Structural abstraction: a mechanism for modular program constructionHuang, Shan Shan 07 July 2009 (has links)
Abstraction mechanisms in programming languages aim to allow orthogonal pieces of functionality to be developed separately; complex software can then be constructed through the composition of these pieces. The effectiveness of such mechanisms lies in their support for modularity and reusability: The behavior of a piece of code should be reasoned about modularly---independently of the specific compositions it may participate in; the computation of a piece of code should allow specialization, so that it is reusable for different compositions. This dissertation introduces structural abstraction: a mechanism that advances the state of the art by allowing the writing of highly reusable code---code whose structure can be specialized per composition, while maintaining a high level of modularity.
Structural abstraction provides a disciplined way for code to inspect the structure of its clients in composition, and declare its own structure accordingly. The hallmark feature of structural abstraction is that, despite its emphasis on greater reusability, it still allows modular type checking: A piece of structurally abstract code can be type-checked independently of its uses in compositions---an invaluable feature for highly reusable components that will be statically composed by other programmers.
This dissertation introduces two structural abstraction techniques: static type conditions, and morphing. Static type conditions allow code to be conditionally declared based on subtyping constraints. A client of a piece of code can configure a desirable set of features by composing the code with types that satisfy the appropriate subtyping conditions. Morphing allows code to be iteratively declared, by statically reflecting over the structural members of code that it would be composed with. A morphing piece of code can mimic the structure of its clients in composition, or change its shape according to its clients in a pattern-based manner. Using either static type conditions or morphing, the structure of a piece of code is not statically determined, but can be automatically specialized by clients. Static type conditions and morphing both guarantee the modular type-safety of code: regardless of specific client configurations, code is guaranteed to be well-typed.
|
12 |
An investigation into the application of systematic software reuse in a project-centric organisationChapman, Mark Jonathon 31 January 2007 (has links)
The software development continues to become more competitive and demanding, placing pressure on developers. Changes in the international political climate have resulted in shrinking military budgets, putting developers of defence software under further pressure. At present, systematic reuse is probably the most realistic way of addressing this pressure by improving software development productivity and quality. Software product line (SPL) engineering provides a comprehensive approach to systematic software reuse and is becoming widely accepted.
The focus of this interpretive case study was ground station software development in a small multidisciplinary project-centric company which produces avionics systems for military aircraft. The purpose of the study was to investigate the potential implementation of systematic software reuse in the company.
The study consisted of three phases, a literature study, a contextualisation and a set of field interviews, and used elements of the Carnegie-Mellon Software Engineering Institute (SEI) Product Line Practice Framework to examine the suitability of SPL engineering for the company.
The findings of the study highlight the potential challenges that SPL engineering poses for the company, and emphasise how the company's project-centric structure could impede its implementation of systematic software reuse. / Computing / M.Sc. (Information Systems)
|
13 |
An investigation into the application of systematic software reuse in a project-centric organisationChapman, Mark Jonathon 31 January 2007 (has links)
The software development continues to become more competitive and demanding, placing pressure on developers. Changes in the international political climate have resulted in shrinking military budgets, putting developers of defence software under further pressure. At present, systematic reuse is probably the most realistic way of addressing this pressure by improving software development productivity and quality. Software product line (SPL) engineering provides a comprehensive approach to systematic software reuse and is becoming widely accepted.
The focus of this interpretive case study was ground station software development in a small multidisciplinary project-centric company which produces avionics systems for military aircraft. The purpose of the study was to investigate the potential implementation of systematic software reuse in the company.
The study consisted of three phases, a literature study, a contextualisation and a set of field interviews, and used elements of the Carnegie-Mellon Software Engineering Institute (SEI) Product Line Practice Framework to examine the suitability of SPL engineering for the company.
The findings of the study highlight the potential challenges that SPL engineering poses for the company, and emphasise how the company's project-centric structure could impede its implementation of systematic software reuse. / Computing / M.Sc. (Information Systems)
|
14 |
IPS: um plug-in para templates de códigos associativos / IPS: a plug-in for associative code templatesMoraes, Rodrigo Vieira de 25 November 2016 (has links)
Submitted by Milena Rubi (milenarubi@ufscar.br) on 2017-06-01T17:00:50Z
No. of bitstreams: 1
MORAES_Rodrigo_2016.pdf: 42751751 bytes, checksum: 25891a495567a6bce1d41328abf03d12 (MD5) / Approved for entry into archive by Milena Rubi (milenarubi@ufscar.br) on 2017-06-01T17:00:58Z (GMT) No. of bitstreams: 1
MORAES_Rodrigo_2016.pdf: 42751751 bytes, checksum: 25891a495567a6bce1d41328abf03d12 (MD5) / Approved for entry into archive by Milena Rubi (milenarubi@ufscar.br) on 2017-06-01T17:01:04Z (GMT) No. of bitstreams: 1
MORAES_Rodrigo_2016.pdf: 42751751 bytes, checksum: 25891a495567a6bce1d41328abf03d12 (MD5) / Made available in DSpace on 2017-06-01T17:01:09Z (GMT). No. of bitstreams: 1
MORAES_Rodrigo_2016.pdf: 42751751 bytes, checksum: 25891a495567a6bce1d41328abf03d12 (MD5)
Previous issue date: 2016-11-25 / Não recebi financiamento / The APIs are becoming increasingly more popular and they play a important role in software development. However, many APIs are large and complex that makes them hard to learn. Among avaliable resources to learn to use an API, there are the code samples. A code sample can be used to demonstrate to a programmer how to use API’s components together to attain a specific goal. But, code sample are static and they haven’t information about how to adapt the code snippet shown as example to programmer’s context. Tools have been proposed to assist the programmers in finding and adapting code snippets that may be useful for a programming task. A specific type of these tools are the code template tools. Code templates are code snippets manually registered containing integration directives. The integration directives instruct the code template tool on how to adapt a code snippet to programmer’s context. In this work, code snippet tools are investigated and it is proposed a code template tool called IPS. It presents some novelties in relation to other code template tools. In the IPS, a code template can be associated to a Java class and the IPS has a code template recommender that is automatically updated as the source code is edited by the programmer. Also it is proposed the role parameters, a new concept for the parameters of code templates that extends the concept of the parameters associated to a type which is present in current code template tools. The role parameters has the objective of accepting arguments that would at first be incompatible with a specific type, but that obey a expected pattern. / As APIs têm se tornado cada vez mais populares e elas têm um papel fundamental no desenvolvimento de software. No entanto, muitas APIs são grandes e complexas o que torna a aprendizagem delas difícil. Entre os recursos disponíveis para se aprender a utilizar uma API, há os exemplos de código. Um exemplo de código pode demonstrar a um programador como componentes de uma API podem ser utilizados juntos para atingir um determinado objetivo. Porém, exemplos de código são estáticos e não contêm informações de como adaptar o trecho de código apresentado como exemplo para o contexto do programador. Ferramentas têm sido propostas para auxiliar os programadores a encontrarem e adaptarem trechos de códigos que possam ser úteis para uma tarefa de programação. Um tipo específico dessas ferramentas são as ferramentas de templates de código. Templates de código são trechos de códigos cadastrados manualmente contendo diretivas de integração. As diretivas de integração instruem a ferramenta a como adaptar um trecho de código para o contexto do programador. Neste trabalho, ferramentas de trechos de código são investigadas e é proposta uma ferramenta de template de código denominada IPS. Ela apresenta novidades em relação às outras ferramentas de templates de código. No IPS, um template de código pode ser associado a uma classe Java e o IPS possui um recomendador de templates de código que é automaticamente atualizado conforme o código fonte é editado pelo programador. Também é proposto os parâmetros do tipo role, um novo conceito que estende o conceito dos parâmetros associados a um tipo que está presente nas ferramentas de templates de código atuais. Os parâmetros do tipo role têm como objetivo aceitar argumentos que seriam a princípio incompatíveis com um determinado tipo, porém que sigam um determinado padrão esperado.
|
15 |
An on-line library of design patternsWu, Weizhong 01 January 2004 (has links)
This project is to develop an on-line library to help software engineers who utilize design patterns for developing e-commerce applications it translates generic design patterns to concrete design patterns. The graphical user interface was developed to allow the user to develop their own design patterns by modifying or changing stored design patterns.
|
16 |
Towards a reusable process model structure for higher education institutionsVan der Merwe, Aletta Johanna 30 June 2005 (has links)
One of the tools used during re-engineering of an environment is the process model as modelling
tool. The identification of process models within an institution is a difficult and tedious task. A problem is that often process model structures is identified for one specific project and not stored for future reuse. The ideal for institutions is to reuse process model structures within the institution. This study focused on the generic structures within the higher education application domain where the hypothesis for this study was that a generic educational process model structure for higher education institutions can be established; a process management flow procedure can be used to manage the flow within an educational process model; and that aneducational process model can be stored and reused in re-engineering efforts.
The study was divided into three research questions, where the first focused on the identification of generic process model structures, the second on the usability of the process model structures within a re-engineering effort, and the last on the preservation of a process model structure. For the first research question, the identification of process model structures, three institutions were used for data collection. It was necessary to develop a requirements elicitation procedure for data collection. The structure derived was confirmed at a fourth institution. For the second research question, which focuses on the usability of process model structures, an ordinal measurement was defined to measure the usefulness of the process model structures in a reengineering
effort. A re-engineering procedure was developed for re-engineering the application domain, called the process management flow procedure, and used for a re-engineering effort at
one institution. Lastly, for the third research question the preservation of the process model
structures, the abstraction of the process model structure was investigated as well as the
feasibility of implementing the process model structures physically using existing repository
software.
The conclusion after the investigation of the three research questions was that the hypothesis
was confirmed that there is indeed a set of process model structures within the higher education institution that are generic, preservable and reusable in a re-engineering effort. / Computing / Ph. D. (Computer Science)
|
17 |
Towards a reusable process model structure for higher education institutionsVan der Merwe, Aletta Johanna 30 June 2005 (has links)
One of the tools used during re-engineering of an environment is the process model as modelling
tool. The identification of process models within an institution is a difficult and tedious task. A problem is that often process model structures is identified for one specific project and not stored for future reuse. The ideal for institutions is to reuse process model structures within the institution. This study focused on the generic structures within the higher education application domain where the hypothesis for this study was that a generic educational process model structure for higher education institutions can be established; a process management flow procedure can be used to manage the flow within an educational process model; and that aneducational process model can be stored and reused in re-engineering efforts.
The study was divided into three research questions, where the first focused on the identification of generic process model structures, the second on the usability of the process model structures within a re-engineering effort, and the last on the preservation of a process model structure. For the first research question, the identification of process model structures, three institutions were used for data collection. It was necessary to develop a requirements elicitation procedure for data collection. The structure derived was confirmed at a fourth institution. For the second research question, which focuses on the usability of process model structures, an ordinal measurement was defined to measure the usefulness of the process model structures in a reengineering
effort. A re-engineering procedure was developed for re-engineering the application domain, called the process management flow procedure, and used for a re-engineering effort at
one institution. Lastly, for the third research question the preservation of the process model
structures, the abstraction of the process model structure was investigated as well as the
feasibility of implementing the process model structures physically using existing repository
software.
The conclusion after the investigation of the three research questions was that the hypothesis
was confirmed that there is indeed a set of process model structures within the higher education institution that are generic, preservable and reusable in a re-engineering effort. / Computing / Ph. D. (Computer Science)
|
Page generated in 0.1036 seconds